Scopul lucrării este prezentarea unui scurt istoric a limbajului C şi a noţiunilor legate de lucrul pe
calculator (limbaj de programare, compilare, baze de numeraţie) iar în final iniţierea în folosirea
compilatorului Developer C++ prin rularea unor aplicaţii tipice de conversie dintr-o bază de numeraţie
în alta.
I. OBSERVAŢII TEORETICE
1.1. Scurt istoric C
Limbajul C a fost creat prima dată de către Dennis Ritchie şi Brian Kernighan la
laboratoarele BELL Labs. din SUA. Versiunea premergătoare lui C a fost B. Odată creat el a fost
folosit - împreună cu limbajul de asamblare - la scrierea completă a sistemului de operare UNIX.
Aceasta arată că limbajul are o putere şi flexibilitate aparte.
1.2. Limbajul C - caracteristici generale
Limbajul C se bucură de următoarele caracteristici:
- este de uz general, adică poate fi folosit atât în scrierea de programe tip aplicaţie cât
şi în situaţii dedicate (cum sunt metodele numerice - calcule ştiinţifice, grafică,
editoare de text ş.a.);
- de nivel mediu - cu relativ puţine instrucţiuni se pot spune relativ multe lucruri; pe
scara aceasta de clasificare a limbajelor de programare C se află deasupra limbajului
de asamblare, dar sub limbajele de nivel înalt: Pascal, C++, Java, SmallTalk, Python,
Eiffel, ADA, Fortran etc. (figură cu clasificarea limbajelor de programare din punct
de vedere al nivelului lor - scăzut, mediu şi înalt);
- compilat - în urma etapelor de compilare şi editare a legăturilor rezultă un fişier
executabil (.exe sau .com); dacă se şterg de pe hard-disk toate fişierele cu excepţia
acestui executabil despre care vorbim - presupunând că nu se şterg şi fişierele sistem
- acest program va rula fără probleme majore; C este diferit de limbajele interpretate
(Visual Basic sau Java) în cazul cărora în urmă procesului de traducere a sursei în
limbaj apropiat de limbajul maşinii pe care rulăm nu avem un fişier executabil
concret. Ce se întâmplă în acest caz? Odată lansat codul sursă, datorită asocierii,
este lansat automat interpretorul acelui limbaj, care preia sursa şi o execută,
succesiv, linie cu linie. Efectele instrucţiunilor se reflectă ca şi în cazul unui program
executabil. De obicei compilatoarele sunt mai rapide decât interpretoarele, în sensul
că generează cod obiect mai rapid. În ultima vreme, deoarece limbajul Java se
Îndrumar de laborator 2
impune ca un standard de facto în programarea Internet (s-a şi impus, de altfel),
unde este nevoie de rapiditate - suntem foarte aproape de cerinţele unui software în
timp real -, nu ar fi deloc de acceptat o întârziere în încărcarea paginilor Web, tocmai
datorită timpului de interpretare datorat applet-urilor Java cuprinse de acele
pagini. Programele compilate sunt, în plus, şi mai compacte decât cele interpretate;
- portabil - adică odată dus de pe o platformă hardware pe o alta programul nu are
nevoie de modificări, sau are nevoie de foarte puţine modificări pentru a rula corect.
Comportamentul programului aste analog (se poate spune aproape perfect analog)
pe cele două platforme. La aceasta contribuie şi standardizarea limbajului.
- flexibil şi puternic - C combină flexibilitatea limbajului de asamblare cu puterea
nivelului său mediu.
1.3. Baza de numeraţie 2 (sistemul BINAR)
Ca în orice bază de numeraţie, cifrele folosite în reprezentarea numerelor sunt cuprinse în
intervalul:
[0, baza-1]
Rezultă că în baza 2 avem o reprezentare a numerelor folosind doar cifrele 0 şi 1.
Fiecare dintre cifrele semnificative ale unei baze de numeraţie poartă denumirea de digit. În
baza 2 deoarece sunt doar doi digiţi posibili aceştia au preluat denumirea de binary digit (bit). De
aici provenienţa cuvântului bit.
În baza 10 aceste cifre sunt 0...9. Alte baze de numeraţie folosite în legătură cu sistemul binar
sunt: 4, 8 (octal) şi 16 (hexazecimal). Pentru baza 16 cifrele de reprezentare sunt:
0..9 şi A..F
deoarece nu s-ar putea spune dacă, de exemplu, combinaţia 12 este obţinută prin alăturarea
cifrelor 1 şi 2 ca cifre utile de reprezentare, sau este luată ca atare (12). Ar rezulta un mod de
reprezentare echivoc, din moment ce 12 este şi valoare separată, dar şi o alăturare de alte două
cifre semnificative ale bazei de numeraţie 16. S-a convenit atunci folosire primelor litere ale
alfabetului, cu semnificaţia:
A ţine locul lui 10
B lui 11
...
E lui 14
F lui 15.
În calculatoarele actuale baza de numeraţie este 2. Au existat încercări de creare a unor
calculatoare în bază 10, dar nu s-au putut ridica la performanţele calculatoarelor binare. S-a
păstrat astfel sistemul binar ca standard pentru calculatoarele digitale.
Să luăm un exemplu de număr în baza 2:
0110 1101
Ce înseamnă acesta? Cum poate fi interpretat astfel încât să poată fi înţeles de către noi
(adică tradus în baza 10)?
Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.