Scopul lucrarii este familiarizarea studentilor cu alfabetul limbajului, cuvintele-cheie, conventiile de
denumire a variabilelor, tipurile de date de baza precum si declaratia si definitia unei variabile.
I. OBSERVATII TEORETICE
1.1. Cuvinte-cheie. Alfabetul limbajului
Ca in orice limbaj de programare exista o multime de combinatii (simboluri) care sunt
rezervate, adica este interzisa folosirea lor in alte situatii (sau contexte de lucru) decat cele
impuse de compilatorul acelui limbaj.
Aceste simboluri rezervate acopera atat tipurile de date de baza (pe care le vom studia la
punctul 1.3.), a modificatorilor acestora (acelasi paragraf), cat si situatiile in care se impun
decizii sau in cazurile in care se definesc tipurile de date omogene sau neomogene (enumerari,
structuri si uniuni). Vom vedea pe parcursul laboratoarelor exact despre ce este vorba.
Pentru comunicarea in C exista o serie de cuvinte (multimi de simboluri) pe care
compilatorul le aduce, predefinite, si pe care un programator trebuie sa le retina. Prin exercitii, el
va trebui sa faca asocierile necesare pentru a le folosi asa cum se impune.
Cuvintele-cheie sunt:
auto enum short while
break extern sizeof
case float static
char for struct
const goto switch
continue if typedef
default int union
do long unsigned
double register void
else return volatile
Prima remarca este aceea ca numarul acestor cuvinte-cheie este rezonabil, adica nu atinge un
numar exagerat de mare. Acesta constituie, fara indoiala, un avantaj.
Toate aceste simboluri au asociata o serie de reguli de sintaxa, care le defineste complet
modul de folosire, si care cuprinde si exceptiile de la regula generala.
Un exemplu este regula de sintaxa pentru const: acesta este un modificator de format, in
sensul ca aduce reguli in plus la folosirea tipurilor de data de baza. Apare de obicei inaintea, dar
poate si succede, unui cuvant-cheie ce specifica un tip de data de baza (cum sunt char, int sau
Programarea Calculatoarelor - indrumar de laborator 14
float). Efectul este acela al declararii unei constante de acel tip, ceea ce inseamna ca, fara
initializarea variabilei respective in momentul declararii, ea nu are nici un sens.
Un exemplu corect:
const int a = 10; // constanta in baza 10, initializata la declarare
si unul incorect:
const int a; // aici apare marcata o eroare de sintaxa
In cel de-al doilea caz, nespecificand o valoare de inceput constantei a, nu o vom putea folosi
decat dupa specificarea unei valori, adica:
a = 10; // si aici apare o eroare de sintaxa
printf("n Valoarea lui a: %i", a);
// aici este folosita, pentru afisare, valoarea lui a.
Apare contradictia: orice constanta nu are dreptul de a aparea intr-o atribuire -
instructiunea C prin care se stabileste o valoare pentru entitatea din partea stanga a semnului de
egalitate. Deci, pe linia:
a=10;
vom avea un mesaj de eroare din partea compilatorului, de genul:
5 - C:BCMyAppLaboratorlab2_1.cpp - uninitialized const 'a'
6 - C:BCMyAppLaboratorlab2_1.cpp - assignment of read-only variable 'a'
Cifrele de la inceputul randurilor care denumesc eroarea arata numarul liniei din program
unde a aparut acea eroare.
Observatie:
In sursele salvate cu extensie cpp compilatorul (fiind unul propriu C++) sunt valabile si
unele dintre functiile considerate ne-standard, impreuna cu fisierele header asociate (v. getch()
alaturi de conio.h).
Modificatorul short este aplicabil doar tipului intreg (int).
Dupa cum vedeti, exista, bine stabilite, anumite caracteristici si comportamente ale
compilatorului, in diferite contexte de lucru, asa cum aminteam la inceput. Rolul exercitiilor de
pe parcursul laboratoarelor este acela de a evidentia aceste particularitati.
! Luati toate notitele pe care le considerati necesare pentru a retine cat mai multe dintre
aspectele intalnite. Rapiditatea si modul de intelegere depind si de felul in care va marcati prin
comentarii aceste erori. !
Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.