Sunteți pe pagina 1din 10

LIMBAJUL C

1.Introducere
Limbajul C face parte din familia limbajelor concepute pe principiile programării
structurale, ca i limbajul Pascal.
Ceea ce este caracteristic acestui tip de programare este faptul că rezolvarea unei
probleme se realizează prin descompunerea acesteia într-o serie de probleme mai simple care
sunt rezolvate separat. Prelucrările de date sunt structurate separat. Programul constă din
proceduri (sau funcŃii) i structurile de date asupra cărora acestea operează.
Procedurile efectuează activităŃi bine definite i sunt separate de exterior, comunicând
printr-o interfaŃă care constă într-un set de parametri de intrare i eventual printr-un rezultat.
Restul variabilelor utilizate în cadrul funcŃiei sunt locale i invizibile pentru alte proceduri.
Compartimentarea prelucrărilor continuă i la nivelul unei proceduri prin unitate
structurală numită bloc. Blocul posedă aceea i calitate de a masca în exterior variabilele
locale i constituie un ansamblu de instrucŃiuni executate în secvenŃă. Pentru controlul
succesiunii de prelucrări există instrucŃiuni specializate pentru programarea directă a
diferitelor tipuri de structuri de ciclare i decizie.
Datele pot fi structurate în colecŃii de elemente de diferite tipuri. Programatorul are
posibilitatea să- i definească propriile structuri ceea ce facilitează reprezentarea adecvată a
informaŃiilor prelucrate.
Toate acestea contribuie substanŃial la cre terea clarităŃii programelor i a
productivităŃii activităŃii de programare.
Spre deosebire de alte limbaje orientate spre programarea structurală, limbajul C nu
admite definirea unei funcŃii în interiorul alteia. Spre deosebire de Pascal unde există
proceduri i funcŃii în C există numai funcŃii. În acest fel structura programelor devine mai
simplă.
Conceput iniŃial pentru a înlocui limbajul de asamblare pentru aplicaŃiile mai vaste
limbajul C s-a impus rapid pentru toate tipurile de aplicaŃii, de la compilatoare la editoare de
texte i aplicaŃii numerice, baze de date, etc..
Trebuie remarcat faptul că acest limbaj a fost conceput pentru programatori i din
această cauză el oferă posibilităŃi foarte largi în ceea ce prive te flexibilitatea, sintaxa concisă
i clară a instrucŃiunilor, dar face ca pentru începători înŃelegerea unui program scris de
altcineva să pară mai greoaie.
Trebuie menŃionat de asemenea că nu există funcŃii incorporate în limbaj, dar acesta se
livrează cu o bibliotecă de funcŃii care acoperă cele mai diverse necesităŃi de asemenea fiecare
programator poate să- i creeze propria biblioteco de funcŃii care să completeze biblioteca
standard.
InstrucŃiunile limbajului sunt în mare similare cu ale limbajului Pascal, cunoscătorii
acestuia având foarte puŃine probleme la trecerea în C. Biblioteca de funcŃii conŃine i funcŃii
ce permit recunoa terea funcŃiilor scrise în Pascal.
Ca dezavantaje (dar numai pentru programatorii începători) se poate menŃiona faptul
că de multe ori compatibilizarea diferitelor tipuri de date cu spaŃiul alocat prin declaraŃii este
lăsată pe seama programatorului, ceea ce cre te flexibilitatea programelor dar face mai dificilă
depanarea acestora. Trebuie menŃionat faptul că în C nu se admite definirea unei funcŃii în
interiorul altei funcŃii, deci definiŃiile funcŃiilor sunt externe oricărui bloc sau oricărei funcŃii.
2. Mediul de dezvoltare integrat
2.1 GeneralităŃi
Mediul de dezvoltare integrat se prezintă cu o interfaŃă cu mai multe ferestre de
diferite tipuri cu diferite destinaŃii:
• bara de selecŃie;
• ferestre de selecŃie;
• ferestre de help (informaŃii ajutătoare, indicaŃii);
• ferestre de lucru (editare);
• casete de dialog.
Există posibilitatea de a avea acces la mai multe ferestre de editare odată ceea ce facilitează
operaŃiile de copiere dintr-o fereastră în alta.
După lansarea în execuŃie, mediul de dezvoltare integrat afi ează următorul ecran,
format din patru zone:
- în zona superioară, o bară de selecŃie numită ‚meniul principal’ care prezintă setul
de servicii oferite;
- în centru, zona ferestrei de editare;
- sub fereastra de editare zona ferestrei de mesaje;
- în zona inferioară o bară de stare care specifică operaŃia curentă executată de
Turbo C, informaŃii relative la opŃiunea selectată din meniu (rezumatul funcŃiilor
oferite) sau comenzi utile în contextul curent (o listă de taste pentru acces rapid la
funcŃii).
Pentru operare se poate folosi un mouse sau comenzi de la tastatură.

2.2. Sistemul de meniuri ierarhizate i accesul serviciile oferite


Bara de meniu principal aflată în partea superioară a ecranului, propune 11 meniuri:
system (reprezentată prin una sau trei linii orizontale), File, Edit, Search, Run, Compile,
Debug, Proiect, Options, Window i Help. Fiecare dintre acestea permite accesul la sub-
meniuri, a căror funcŃii se afi ează vertical într-o fereastră de selecŃie. Unele funcŃii se execută
direct, altele propun sub-meniuri sau necesită informaŃii suplimentare furnizate prin
intermediul unor casete de dialog.
Accesul la bara de meniu principal se face cu tasta dedicată F10. SelecŃia unei opŃiuni
se face prin poziŃionarea cu săgeŃile i apoi tastarea tastei Enter, ceea ce determină afi area
ferestrei de selecŃie corespunzătoare. Cu un mouse, selecŃia unui meniu se face direct prin
poziŃionarea pe acel meniu i cu clic pe butonul din stânga.
În funcŃie de context, anumite opŃiuni din meniuri nu sânt utilizabile i ca atare nu sunt
accesibile. Acestea sunt afi ate distinct (de obicei numele opŃiunii este mai puŃin contrastant)
i nu pot fi selectate.
Oricând un meniu sau un sub-meniu poate fi dezactivat apăsând tasta Esc.

2.3. Casete de dialog


Casetele de dialog oferă acŃiuni intuitive, ce nu pot fi realizate u or utilizând un meniu.
Acestea sunt deschise atunci când este activat un sub-meniu al cărui nume este urmat de trei
puncte ”…” . O casetă de dialog conŃine obiecte de tipurile următoare:
- Butoane de comandă: fiecare propune realizarea unei acŃiuni, executată în urma
selectării (cu TAB) i apăsarea tastei Enter. Exemplu OK (validare) Cancel
(anulare), etc..
- Butoane radio: alcătuiesc liste de opŃiuni mutual exclusive, din care se alege cea
activă prin intrarea în casetă i simpla poziŃionare cu săgeŃi; opŃiunea selectată este
marcată. (.).Exemplu, Butoanele Direction i Origin din caseta de dialog din sub-
meniul Find din meniul Search.
- Casete de bifare: fiecare oferă o opŃiune care poate fi activată (marcată cu [X]) sau
dezactivată (marcată [ ]) prin apăsarea tastei spaŃiu sau cu ajutorul mouse-ului .
Exemplu, Butoanele Options din caseta de dialog din sub-meniul Find din meniul
Search.
- Casete de introducere: permit introducerea unui text, de exemplu numele unui
fi ier. Aceste casete oferă facilitatea ’’istoric’’ prin memorarea valorilor introduse
anterior. Accesul la aceste valori se face folosind săgeata verticală indicată în
dreapta casetei. Exemplu, caseta din partea superioară (Text to find) a castei de
dialog din sub-meniul Find din meniul Search.
- Casete de afi are: oferă o listă de elemente din care se poate alege unul prin
poziŃionare i apăsarea tastei Enter. De exemplu opŃiune de deschidere a unui fi ier
sursă (File/Open) oferă într-o fereastră lista numelor fi ierelor din directorul
curent.
La un moment dat un singur obiect din cele prezentate anterior poate fi selectat. Cu tasta tab
se poate trece de la un obiect la următorul. Fiecare obiect (sau opŃiune) are ata ată o o literă
care permite selecŃia directă.

2.4. Gestiunea ferestrelor


Mediul integrat se bazează pe noŃiunea de fereastră, care reprezintă o porŃiune a
ecranului. Orice fereastră are un titlu care descrie la ce este folosită i, în general, un număr
care o identifică. Ferestrele sunt deschise automat la activarea funcŃiilor care le utilizează:
- ferestre de editare, pentru crearea sau modificarea unui fi ier sursă;
- fereastra de mesaje utilizată de compilator i de editorul de legături pentru afi area
rezultatului operaŃiei;
- fereastra de observare (watch) în care depanatorul afi ează valorile unor variabile
selectate de utilizator;
- fereastra de inspecŃie/modificare a unor variabile selectate de utilizator.
Manevrarea ferestrelor se face simplu cu ajutorul unui mouse. Ferestrele au anumite
porŃiuni pe chenar utilizate pentru comenzi de la mouse:
- Caseta de închidere se află în colŃul din stânga sus ( ); selectarea ei determină
închiderea ferestrei.
- Caseta de mărire/mic orare (zoom) se află în dreapta sus, marcată cu o săgeată;
prin selectarea ei se poate comuta între două dimensiuni ale ferestrei.
- ColŃurile permit modificarea arbitrară a dimensiunii ferestrei. În acest scop se
plasează cursorul în colŃ, se apasă butonul stânga i se deplasează mouse-ul până la
obŃinerea dimensiunii dorite, după care se eliberează butonul mouse-ului.
- Marginea de sus a ferestrei este marcată cu două linii i permite deplasarea pe
orizontală a întregii ferestre (scroll). Deplasarea se poate realiza poziŃionând
mouse-ul pe linia dublă i acŃionând ca i în cazul colŃurilor.
Pentru a schimba fereastra activă se poziŃionează mose-ul în fereastra ce trebuie
activată i se face clic stânga.
2.5. Editarea programelor
Editarea este iniŃiată prin comenzi iniŃiate din meniul File. Comenzile de editare sunt
similare cu cele ale oricărui editor de texte. FacilităŃi suplimentare de editare sunt oferite de
meniurile Edit i Search.
Pentru a crea un fi ier nou se selectează din meniul File comanda New; fi ierul va
primi implicit numele Noname00, nume ce se poate modifica la prima salvare.
Pentru a încărca un fi ier sursă existent pentru modificare se selectează comanda open
din meniul File; se lansează o casetă de dialog care permite editarea numelui i afi ează toate
fi ierele din directorul curent care corespund unui anumit filtru de selecŃie, în ordine
alfabetică.
Se pot deschide mai multe ferestre de editare simultan, fiecare fereastră purtând
numele fi ierului editat.
Salvarea fi ierelor editate se face cu comanda Save sau cu Save As din meniul File.
Copierea i mutarea unor blocuri marcate în cadrul unui fi ier deschis sau între două
fi iere deschise pentru editare se poate realiza cu ajutorul comenzilor Copy, Cut, Past din
meniul Edit. Marcarea blocurilor se face cu ajutorul mouse-ului la fel ca la orice editor de
texte.
Este oferită facilitatea de căutare i eventual înlocuire a unui ir de caractere specificat
prin intermediul comenzilor Fiind i Replace din meniul Search.

2.6. Compilarea, editarea legăturilor i execuŃia unui program


Presupunând că există un fi ier sursă deschis în fereastra activă, care nu a fost
compilat, comanda Run din meniul Run (Ctrl-F9) realizează următoarele operaŃii:
- compilarea programului sursă i crearea pe disc în directorul curent, a unui modul
obiect cu acela i nume i cu extensia .obj.
- editarea legăturilor modului obiect astfel creat cu consultarea bibliotecilor cerute;
se obŃine programul executabil cu acela i nume i cu extensia .exe.
- lansarea în execuŃie a programului obŃinut.
Pentru vizualizarea rezultatului programului este oferit accesul în fereastra de ie ire
(utilizator) cu comanda User Screen din meniul Windouws (Alt-F5). Pentru revenirea în
fereastra de editare se apasă oricare tastă.
Comanda Run analizează automat relaŃiile temporale (dependenŃele) dintre fi ierele
antet, obiect i executabil. În lipsa unor modificări la programul sursă, o nouă lansare în
execuŃie nu mai determină o nouă compilare i editare a legăturilor. Deoarece există unele
incompatibilităŃi între limbajul C i C++ de i regula generală este că C++ poate compila toate
programele în C există i unele excepŃii ce vor prezentate ulterior. Fi ierele sursă cu extensia
.c vor fi compilate ca programe C iar fi ierele sursă cu extensia .cpp vor fi compilate ca
programe C++. Mediul integrat C++ are posibilitatea de selectare a modului de compilare C
sau C++ prin comanda editor din meniul Options/Environmenrt.
Compilatorul i editorul de legături deschid automat fereastra de mesaje în care se
afi ează eventualele erori. În fereastra de mesaje, se poate selecta fiecare mesaj de eroare prin
deplasarea barei cursor cu săgeŃi. ConŃinutul ferestrei de editare se modifică pentru a afi a
zona de program în care apare eroarea i pentru a evidenŃia linia eronată. Pentru a trece la
evidenŃierea liniei eronate este suficient să apăsăm Enter.
Se poate realiza corectarea erorilor prin solicitarea compilării separate (fără lansare în
execuŃie) cu comanda Compile to Obj din meniul Compile. ObŃinerea fi ierului .exe fără
lansarea lui în execuŃie se obŃine cu opŃiunea Make Exe File din meniul Compile.
2.6.1. Compilare separată

Programele mari pot fi realizate din mai multe fi iere sursă compilate separat, legând
apoi împreună diferitele module obiect.
Pentru a realiza programe formate din mai multe module, este necesară crearea unui
fi ier proiect în care se specifică fi ierele componente ale programului..
Cu comanda Open Proiect din meniul Proiect se deschide un fi ier căruia i se poate
specifica un nume (extensia implicită va fi .PRJ) Se deschide o nouă fereastră în care se
introduc numele fi ierelor sursă apelând de fiecare dată comanda Add Item din meniul Proiect
sau tastând Ins. Această fereastră poate fi închisă dar fi ierul proiect rămâne deschis, iar
pentru a fi memorat pe disc trebuie salvat cu comanda Options/Save/Proiect.
Dacă s-a creat un proiect, în urma comenzii Run, se execută următoarele operaŃii:
- se compilează pe rând fiecare fi ier sursă i se creează fi ierul obiect
corespunzător;
- se efectuează editarea legăturilor pentru modulele obiect respective, iar programul
executabil astfel creat va avea numele fi ierului proiect i extensia .EXE.:
- se lansează în execuŃie programul obŃinut.

2.7. Depanarea programului

Depanatorul mediului integrat oferă o gamă largă de facilităŃi:


- execuŃie parŃială sau pas ci pas a programului;
- întreruperea execuŃiei la anumite instrucŃiuni prin plasarea unor puncte de
întrerupere (breakpoint), eventual condiŃionate;
- evaluarea unei expresii după o întrerupere i modificarea eventuală a valorii unor
variabile;
- urmărirea permanentă a valorii unor variabile sau expresii;
Cu comanda Run/Go to Cursor se execută programul până la linia unde se găse te
cursorul în fereastra de editare.
ExecuŃia instrucŃiune cu instrucŃiune se execută cu comanda Run/Trace, care permite
i intrarea în subrutine sau cu Run/Step over fără a intra în subrutine.
Plasarea în program a punctelor de întrerupere se realizează prin poziŃionarea
cursorului pe linia de program respectivă i comanda Debug/Toggle Breakpoint. Linia va fi
evidenŃiată pe ecran. Pentru anulare se utilizează aceea i comandă după poziŃionarea
cursorului pe linia respectivă sau folosind butonul Delete din meniul Debug/Breakpoints.
Pentru a condiŃiona întreruperea, meniul Debug/Breakpoints propune o fereastră de
dialog în care sunt listate punctele de întrerupere existente. Cu butonul edit se deschide o nouă
casetă de dialog pentru punctul de întrerupere pe care este poziŃionat cursorul, care permite
introducerea în caseta Contition a condiŃiei de apariŃie a întreruperii sub forma unei expresii i
specificarea în caseta Pas Count a unui număr care indică la a câta execuŃie a instrucŃiunii are
loc întreruperea (frecvenŃa opririlor).
Comanda Debug/Evaluate-modifz deschide o fereastră de dialog, a cărei casetă de
introducere Expression permite specificarea unei expresii. Butonul evaluate determină apariŃia
valorii acestei expresii în caseta Result. Dacă această expresie este o variabilă, valoarea ei
poate fi modificată în caseta de dialog New Value acŃionând butonul Modify.
Urmărirea permanentă a valorii unei expresii se face în fereastra de observaŃie Watch
deschisă cu comanda Windows/Watch. Pot fi introduse noi expresii de urmărit cu Ins. Se
poate interveni asupra expresiilor cu obŃiunile Add Watch, delete Watch, Edit Watch din
meniul Debug/Watches, pentru care bara de stare indică tastele de selecŃie directă.
Un meniu Help interactiv este permanent apelabil cu tasta F1.
3. Scurtă iniŃiere în limbajul C
Pentru o bună înŃelegere a modului de prezentare a sintaxei i a posibilităŃilor
instrucŃiunilor i funcŃiilor C vom utiliza următoarele reguli de prezentare simplificată:
- alternativele sunt enumerate pe linii separate;
- parantezele unghiulare < > delimitează elemente opŃionale sau care pot lipsi în
anumite situaŃii:
- cuvintele cheie ale limbajului sunt tipărite cu caractere ‚Bold’ (accentuate).
În meniul help din mediul integrat Turbo C++ există câteva deosebiri i anume că:
- parantezele unghiulare sunt utilizate pentru delimitarea unor cuvinte care nu sunt
cuvinte cheie iar
- parantezele drepte sunt utilizate pentru delimitarea elementelor opŃionale.

3.1. Elemente de bază ale limbajului C


EntităŃile sintactice de bază utilizate în redactarea unui program sunt:

Cuvinte cheie (keywords) rezervate în principal pentru declararea de tipuri de


date i pentru instrucŃiuni;
Setul de cuvinte cheie al limbajului C este prezentat în tabelul de mai jos.

Tabel 2.1. Setul de cuvinte cheie ale limbajului Turbo C


Auto asm Break Case cdecl char Const char const continue
Default do Double Else enum extern Far float for goto
Huge if Int interrupt long near Pascal register return short
Signed sizeof Static Struct switch typedef Union unsigned void volatile
While _cs _ds _es _ss

Pentru cuvintele cheie se folosesc numai litere mici.

Identificatori care pot fi nume de constante, tipuri de date, variabile sau


funcŃii, cu sintaxa:
identificator: noncifră
identificator noncifră
identificator cifră
noncifră: a…z A…Z _
cifră: 0…9
Un identificator începe întotdeauna cu o noncifră i are lungimea maximă de 32 de caractere;
de asemenea este necesar ca un identificator să nu fie identic cu un cuvânt cheie.
Exemple: var1 poate fi un identificator pentru o variabilă ;
1var nu poate fi utilizat ca identificator deoarece începe cu o cifră;
const_minim poate fi un identificator pentru un nume de constantă;

Constante: sunt valori fixe, reprezentând valori numerice întregi sau raŃionale,
caractere sau iruri de caractere.
De exemplu în declaraŃia:
int var1=251
251 este o constantă care se atribuie variabilei întregi definită prin identificatorul var1.
Operatori: sunt simboluri utilizate pentru specificarea unor operaŃii de efectuat; o
combinaŃie validă de valori (variabile sau constante) i operatori formează o expresie.
Operatorii utilizaŃi în C vor fi prezentaŃi în capitolul următor.

Delimitatori: sunt simboluri care separă diferite entităŃi. În C, unele simboluri au


dublă semnificaŃie, de operator i delimitator (în funcŃie de context).

3.2. Structura unui program


În limbajul C fiecare program este o colecŃie distinctă de module care se numesc funcŃii.
Structura generală a unui program C este:

Program_C
<directive procesor>
<declaraŃii globale>
funcŃii

Pe prima linie a programului este trecută denumirea programului. Denumirea


programului este un comentariu i, ca orice comentariu în limbajul C, va trebui încadrat între
semnele: /* */. Încadrarea oricărui ir de caractere între aceste două semne comunică
compilatorului că este inserat un comentariu ce nu trebuie compilat i convertit în cod obiect.
Inserarea titlului programului este utilă dar nu obligatorie.
Directivele procesor sunt activităŃi pe care trebuie să le realizeze procesorul înainte de
compilare (de exemplu includerea în fi ierul curent al unor fi iere, care declară macrodefiniŃii.
Directivele procesor sunt precedate de semnul #.
DeclaraŃiile globale permit declararea unor variabile i tipuri de date globale, ce vor fi
valabile pentru toate funcŃiile incluse în program. Tipul unei date indică valoarea pe care un
tip de date o poate lua, (de exemplu între –128 i +127 pentru tipul char) i modul în care
acestea sunt reprezentate în memorie (exemplu tipul int este reprezentat pe 16 biŃi)
Orice program C conŃine o funcŃie principală numită “main” i execuŃia programului
începe cu aceasta. Restul funcŃiilor din cadrul unui program sunt subrutine care realizează
prelucrări de date definite de programator sau oferite de biblioteca de funcŃii.
În interiorul fiecărei funcŃii (deci i funcŃiei main) se pot declara tipuri de date i de
variabile, care au valabilitate numai în interiorul funcŃiei respective spre deosebire de datele
declarate global care î i păstrează valabilitatea pentru toate funcŃiile din program.
O funcŃie C are următoare structură:
<tip_r>nume_funcŃie(<listă parametri>)
{
declaraŃii locale
secvenŃă de instrucŃiuni
}
tip_r reprezintă tipul rezultatului pe care îl va întoarce funcŃia. Dacă acesta nu este
specificat se consideră implicit rezultat de tip întreg (int). Dacă o funcŃie nu întoarce un
rezultat (efectuează doar o serie de prelucrări) atunci este nevoie ca să se specifice ca tip al
rezultatului cuvântul cheie void.
Pentru ca o funcŃie să poată prelucra o serie de date iniŃiale este necesar ca acestea să
fie precizate. Precizarea datelor iniŃiale ce urmează a fi prelucrate în cadrul funcŃiei se
realizează în lista de parametri, unde datelor iniŃiale li se asociază o listă de variabile, numite
parametri formali.
listă_parametri reprezintă enumerarea declaraŃilor parametrilor funcŃiei, sub forma:
listă_parametri: tip_p nume parametru
<,tip_p nume_parametru>

Pentru apelarea funcŃiei se scrie numele funcŃiei urmat de lista valorilor cu care se
iniŃializează parametrii funcŃiei, încadrată între paranteze. Trebuie remarcat că atât în
definirea funcŃiei cât i la apelare, parantezele rotunde sunt obligatorii; aceste
paranteze urmează după numele funcŃiei chiar i atunci când funcŃia nu are parametri.
La definirea funcŃiei fără parametri se trece în locul listei de parametri cuvântul cheie
void.
Acoladele {} sunt delimitatori care încadrează o construcŃie denumită
instrucŃiune compusă (sau bloc) alcătuită din declaraŃii i instrucŃiuni. DeclaraŃiile din
interiorul unui bloc sunt declaraŃii locale i sunt valabile numai în interiorul blocului.
DefiniŃia unei funcŃii constă deci din antetul care define te interfaŃa cu restul
programului i blocul asociat care descrie prin instrucŃiuni operaŃiile efectuate.

3.3. Prezentarea unor funcŃii de intrare ie ire pentru consolă


FuncŃiile de intrare ie ire pentru consolă permit programului să citească
caractere introduse de la tastatură (funcŃii de intrare) i să afi eze diferite caractere pe
ecranul monitorului. Prototipurile funcŃiilor de intrare ie ire sunt cuprinse în biblioteca
programului în fi ierul stdio.h sau în fi ierul conio.h. Pentru ca aceste fi iere să poată
fi incluse în cadrul unui program este necesar ca în partea de directive procesor a
programului să fie introdusă directivele:
#include <stdio.h>
#include <conio.h>
În cadrul acestui punct vom face o prezentare succintă a unora dintre funcŃii
care să permită utilizarea lor pentru realizarea unor programe simple care să
exemplifice diferitele elemnete ale limbajului C.

3.3.1. OperaŃii de citire scriere fără formatare

FuncŃia getchar
FuncŃia întoarce primul caracter tastat le imprimantă dintr-un ir de caractere tastate,
iar transferul spre program al acestuia se realizează numai după apăsarea tastei Enter.
Caracterul este transformat într-un întreg fără semn. În caz de eroare se întoarce valoarea –1.
Prototipul funcŃiei se află în fi ierul stdio.h, iar apelul funcŃiei se face cu:
int getchar(void);

FuncŃia getche
FuncŃia a teaptă apăsarea unei taste, întoarce caracterul corespunzător i îl afi ează pe
ecran (nu a teaptă apăsarea tastei Enter). Prototipul funcŃiei se află în fi ierul conio.h, iar
apelul funcŃiei se face cu:
int getche(void)

FuncŃia getch
FuncŃia este similară cu ghetche() dar nu afi ează ecou pe ecran. Prototipul funcŃiei se
află în fi ierul conio.h, iar apelul funcŃiei se face cu:
int getch(void)

FuncŃia putchar
FuncŃia transferă un caracter către ecran i întoarce ca rezultat caracterul transmis iar
în caz de e ec valoarea –1. Prototipul funcŃiei se află în fi ierul stdio.h, iar apelul funcŃiei se
face cu:
int putchar(int c)

3.4. Exemplificarea structurii programului


Vom analiza în continuare un prim exemplu de program simplu prin care vom
evidenŃia principalele caracteristici al oricărui program.
Se introduce de la tastatură programul:

/* aplicatia 1_1*/
#include <stdio.h>

int a,b;

void main(void)
{int var_1,var_2;
var_1=getchar();
a=var_1;
putchar(var_1);
}

AplicaŃia va a tepta introducerea unui caracter sau a unui sir de caractere de la


tastatură, după apăsarea tastei Enter va prelua primul caracter din irul introdus pe care îl va
memora în variabila var_1 i îl va afi a pe ecranul monitorului.
Programul exemplifică structura generală a unui program prezentată anterior, astfel:
Pe prima linie este trecut sub forma unui comentariu numele programului (aplicatia
1_1), precizarea pentru procesor a faptului că acesta este un comentariu realizându-se prin
inserarea comentariului între semnele /* … */.
Următoarea linie de program este o directivă procesor care comunică procesorului să
includă în program fi ierul stdio.h aflat în biblioteca de funcŃii.
Urmează apoi o declaraŃie de variabile globale; variabilele a i b sunt declarate de tipul
întreg i ele vor fi recunoscute ca atare în oricare din funcŃiile programului.
În linia următoare este declarată funcŃia main care a a cum am arătat reprezintă
începutul programului.
Blocul de instrucŃiuni i declaraŃii aferent funcŃiei main este încadrat între acolade.
{…}. În interiorul acestui bloc sunt incluse:
- declaraŃii locale prin care sunt declarate ca variabile de tip int variabilele cu
numele var_1 i var_2;
- apelul funcŃiei getchar() a cărei definiŃie se află în fi ierul stdio.h. primul caracter
din irul de caractere introdus de la tastatură va fi memorat la apăsarea tastei Enter
în variabila locală var_1;
- valoarea memorată în variabila locală var_1 este atribuită variabilei globale a;
- este afi ată pe ecran valoarea memorată în var_1.
Se vor realiza în continuare trei aplicaŃii similare aplicaŃiei prezentate care să:
a) exemplifice modul de lucru al funcŃiilor getche (va prelua un caracter de la
tastatură, îl va memora într-o variabilă locală i îl va afi a),
b) exemplifice modul de lucru al funcŃiilor getch (va prelua un carcater de la
tastatură, îl va memora într-o variabilă locală i îl va afi a)
c) exemplifice modul de lucru al funcŃiilor getch (va prelua un carcater de la
tastatură, îl va memora într-o variabilă locală i într-o variabilă globală i
va afi a i va afi a atât variabila locală cât i pe cea globală.

S-ar putea să vă placă și