limbajulc

16
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

Upload: burican-bogdan-alexandru

Post on 17-Dec-2015

217 views

Category:

Documents


0 download

DESCRIPTION

info

TRANSCRIPT

Limbajul C

Limbajul C

1.Introducere

Limbajul C face parte din familia limbajelor concepute pe principiile programrii 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. Prelucrrile de date sunt structurate separat. Programul const din proceduri (sau funcii) i structurile de date asupra crora acestea opereaz.

Procedurile efectueaz activiti bine definite i sunt separate de exterior, comunicnd printr-o interfa care const ntr-un set de parametri de intrare i eventual printr-un rezultat. Restul variabilelor utilizate n cadrul funciei sunt locale i invizibile pentru alte proceduri.

Compartimentarea prelucrrilor continu i la nivelul unei proceduri prin unitate structural numit bloc. Blocul posed aceeai calitate de a masca n exterior variabilele locale i constituie un ansamblu de instruciuni executate n secven. Pentru controlul succesiunii de prelucrri exist instruciuni specializate pentru programarea direct a diferitelor tipuri de structuri de ciclare i decizie.

Datele pot fi structurate n colecii de elemente de diferite tipuri. Programatorul are posibilitatea s-i defineasc propriile structuri ceea ce faciliteaz reprezentarea adecvat a informaiilor prelucrate.

Toate acestea contribuie substanial la creterea claritii programelor i a productivitii activitii de programare.

Spre deosebire de alte limbaje orientate spre programarea structural, limbajul C nu admite definirea unei funcii n interiorul alteia. Spre deosebire de Pascal unde exist proceduri i funcii n C exist numai funcii. n acest fel structura programelor devine mai simpl.

Conceput iniial pentru a nlocui limbajul de asamblare pentru aplicaiile mai vaste limbajul C s-a impus rapid pentru toate tipurile de aplicaii, de la compilatoare la editoare de texte i aplicaii numerice, baze de date, etc..

Trebuie remarcat faptul c acest limbaj a fost conceput pentru programatori i din aceast cauz el ofer posibiliti foarte largi n ceea ce privete flexibilitatea, sintaxa concis i clar a instruciunilor, dar face ca pentru nceptori nelegerea unui program scris de altcineva s par mai greoaie.

Trebuie menionat de asemenea c nu exist funcii incorporate n limbaj, dar acesta se livreaz cu o bibliotec de funcii care acoper cele mai diverse necesiti de asemenea fiecare programator poate s-i creeze propria biblioteco de funcii care s completeze biblioteca standard.

Instruciunile limbajului sunt n mare similare cu ale limbajului Pascal, cunosctorii acestuia avnd foarte puine probleme la trecerea n C. Biblioteca de funcii conine i funcii ce permit recunoaterea funciilor scrise n Pascal.

Ca dezavantaje (dar numai pentru programatorii nceptori) se poate meniona faptul c de multe ori compatibilizarea diferitelor tipuri de date cu spaiul alocat prin declaraii este lsat pe seama programatorului, ceea ce crete flexibilitatea programelor dar face mai dificil depanarea acestora. Trebuie menionat faptul c n C nu se admite definirea unei funcii n interiorul altei funcii, deci definiiile funciilor sunt externe oricrui bloc sau oricrei funcii.

2. Mediul de dezvoltare integrat

2.1 Generaliti

Mediul de dezvoltare integrat se prezint cu o interfa cu mai multe ferestre de diferite tipuri cu diferite destinaii:

bara de selecie;

ferestre de selecie;

ferestre de help (informaii ajuttoare, indicaii);

ferestre de lucru (editare);

casete de dialog.

Exist posibilitatea de a avea acces la mai multe ferestre de editare odat ceea ce faciliteaz operaiile de copiere dintr-o fereastr n alta.

Dup lansarea n execuie, mediul de dezvoltare integrat afieaz urmtorul ecran, format din patru zone:

n zona superioar, o bar de selecie 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 operaia curent executat de Turbo C, informaii relative la opiunea selectat din meniu (rezumatul funciilor oferite) sau comenzi utile n contextul curent (o list de taste pentru acces rapid la funcii).

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 cror funcii se afieaz vertical ntr-o fereastr de selecie. Unele funcii se execut direct, altele propun sub-meniuri sau necesit informaii suplimentare furnizate prin intermediul unor casete de dialog.

Accesul la bara de meniu principal se face cu tasta dedicat F10. Selecia unei opiuni se face prin poziionarea cu sgeile i apoi tastarea tastei Enter, ceea ce determin afiarea ferestrei de selecie corespunztoare. Cu un mouse, selecia unui meniu se face direct prin poziionarea pe acel meniu i cu clic pe butonul din stnga.

n funcie de context, anumite opiuni din meniuri nu sunt utilizabile i ca atare nu sunt accesibile. Acestea sunt afiate distinct (de obicei numele opiunii este mai puin contrastant) i nu pot fi selectate.

Oricnd un meniu sau un sub-meniu poate fi dezactivat apsnd tasta Esc.

2.3. Casete de dialog

Casetele de dialog ofer aciuni intuitive, ce nu pot fi realizate uor utiliznd un meniu. Acestea sunt deschise atunci cnd este activat un sub-meniu al crui nume este urmat de trei puncte . O caset de dialog conine obiecte de tipurile urmtoare:

Butoane de comand: fiecare propune realizarea unei aciuni, executat n urma selectrii (cu TAB) i apsarea tastei Enter. Exemplu OK (validare) Cancel (anulare), etc..

Butoane radio: alctuiesc liste de opiuni mutual exclusive, din care se alege cea activ prin intrarea n caset i simpla poziionare cu sgei; opiunea 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 opiune care poate fi activat (marcat cu [X]) sau dezactivat (marcat [ ]) prin apsarea tastei spaiu 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 fiier. Aceste casete ofer facilitatea istoric prin memorarea valorilor introduse anterior. Accesul la aceste valori se face folosind sgeata 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 afiare: ofer o list de elemente din care se poate alege unul prin poziionare i apsarea tastei Enter. De exemplu opiune de deschidere a unui fiier surs (File/Open) ofer ntr-o fereastr lista numelor fiierelor 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 urmtorul. Fiecare obiect (sau opiune) are ataat o o liter care permite selecia direct.

2.4. Gestiunea ferestrelor

Mediul integrat se bazeaz pe noiunea de fereastr, care reprezint o poriune a ecranului. Orice fereastr are un titlu care descrie la ce este folosit i, n general, un numr care o identific. Ferestrele sunt deschise automat la activarea funciilor care le utilizeaz:

ferestre de editare, pentru crearea sau modificarea unui fiier surs;

fereastra de mesaje utilizat de compilator i de editorul de legturi pentru afiarea rezultatului operaiei;

fereastra de observare (watch) n care depanatorul afieaz valorile unor variabile selectate de utilizator;

fereastra de inspecie/modificare a unor variabile selectate de utilizator.

Manevrarea ferestrelor se face simplu cu ajutorul unui mouse. Ferestrele au anumite poriuni pe chenar utilizate pentru comenzi de la mouse:

Caseta de nchidere se afl n colul din stnga sus (; selectarea ei determin nchiderea ferestrei.

Caseta de mrire/micorare (zoom) se afl n dreapta sus, marcat cu o sgeat; prin selectarea ei se poate comuta ntre dou dimensiuni ale ferestrei.

Colurile permit modificarea arbitrar a dimensiunii ferestrei. n acest scop se plaseaz cursorul n col, se apas butonul stnga i se deplaseaz mouse-ul pn la obinerea 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 poziionnd mouse-ul pe linia dubl i acionnd ca i n cazul colurilor.

Pentru a schimba fereastra activ se poziioneaz mose-ul n fereastra ce trebuie activat i se face clic stnga.

2.5. Editarea programelor

Editarea este iniiat prin comenzi iniiate din meniul File. Comenzile de editare sunt similare cu cele ale oricrui editor de texte. Faciliti suplimentare de editare sunt oferite de meniurile Edit i Search.

Pentru a crea un fiier nou se selecteaz din meniul File comanda New; fiierul va primi implicit numele Noname00, nume ce se poate modifica la prima salvare.

Pentru a ncrca un fiier surs existent pentru modificare se selecteaz comanda open din meniul File; se lanseaz o caset de dialog care permite editarea numelui i afieaz toate fiierele din directorul curent care corespund unui anumit filtru de selecie, n ordine alfabetic.

Se pot deschide mai multe ferestre de editare simultan, fiecare fereastr purtnd numele fiierului editat.

Salvarea fiierelor editate se face cu comanda Save sau cu Save As din meniul File.

Copierea i mutarea unor blocuri marcate n cadrul unui fiier deschis sau ntre dou fiiere deschise pentru editare se poate realiza cu ajutorul comenzilor Copy, Cut, Paste din meniul Edit. Marcarea blocurilor se face cu ajutorul mouse-ului la fel ca la orice editor de texte.

Este oferit facilitatea de cutare i eventual nlocuire a unui ir de caractere specificat prin intermediul comenzilor Find i Replace din meniul Search.

2.6. Compilarea, editarea legturilor i execuia unui program

Presupunnd c exist un fiier surs deschis n fereastra activ, care nu a fost compilat, comanda Run din meniul Run (Ctrl+F9) realizeaz urmtoarele operaii:

compilarea programului surs i crearea pe disc n directorul curent, a unui modul obiect cu acelai nume i cu extensia .obj.

editarea legturilor modului obiect astfel creat cu consultarea bibliotecilor cerute; se obine programul executabil cu acelai nume i cu extensia .exe.

lansarea n execuie a programului obinut.

Pentru vizualizarea rezultatului programului este oferit accesul n fereastra de ieire (utilizator) cu comanda User Screen din meniul Windouws (Alt+F5). Pentru revenirea n fereastra de editare se apas oricare tast.

Comanda Run analizeaz automat relaiile temporale (dependenele) dintre fiierele antet, obiect i executabil. n lipsa unor modificri la programul surs, o nou lansare n execuie nu mai determin o nou compilare i editare a legturilor. Deoarece exist unele incompatibiliti ntre limbajul C i C++ dei regula general este c C++ poate compila toate programele n C exist i unele excepii ce vor prezentate ulterior. Fiierele surs cu extensia .c vor fi compilate ca programe C iar fiierele 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 legturi deschid automat fereastra de mesaje n care se afieaz eventualele erori. n fereastra de mesaje, se poate selecta fiecare mesaj de eroare prin deplasarea barei cursor cu sgei. Coninutul ferestrei de editare se modific pentru a afia zona de program n care apare eroarea i pentru a evidenia linia eronat. Pentru a trece la evidenierea liniei eronate este suficient s apsm Enter.

Se poate realiza corectarea erorilor prin solicitarea compilrii separate (fr lansare n execuie) cu comanda Compile to Obj din meniul Compile. Obinerea fiierului .exe fr lansarea lui n execuie se obine cu opiunea Make Exe File din meniul Compile.

2.6.1. Compilare separat

Programele mari pot fi realizate din mai multe fiiere surs compilate separat, legnd apoi mpreun diferitele module obiect.

Pentru a realiza programe formate din mai multe module, este necesar crearea unui fiier proiect n care se specific fiierele componente ale programului..

Cu comanda Open Proiect din meniul Proiect se deschide un fiier cruia i se poate specifica un nume (extensia implicit va fi .PRJ) Se deschide o nou fereastr n care se introduc numele fiierelor surs apelnd de fiecare dat comanda Add Item din meniul Proiect sau tastnd Ins. Aceast fereastr poate fi nchis dar fiierul proiect rmne 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 urmtoarele operaii:

se compileaz pe rnd fiecare fiier surs i se creeaz fiierul obiect corespunztor;

se efectueaz editarea legturilor pentru modulele obiect respective, iar programul executabil astfel creat va avea numele fiierului proiect i extensia .EXE.:

se lanseaz n execuie programul obinut.

2.7. Depanarea programului

Depanatorul mediului integrat ofer o gam larg de faciliti:

execuie parial sau pas cu pas a programului;

ntreruperea execuiei la anumite instruciuni prin plasarea unor puncte de ntrerupere (breakpoint), eventual condiionate;

evaluarea unei expresii dup o ntrerupere i modificarea eventual a valorii unor variabile;

urmrirea permanent a valorii unor variabile sau expresii;

Cu comanda Run/Go to Cursor se execut programul pn la linia unde se gsete cursorul n fereastra de editare.

Execuia instruciune cu instruciune se execut cu comanda Run/Trace, care permite i intrarea n subrutine sau cu Run/Step over fr a intra n subrutine.

Plasarea n program a punctelor de ntrerupere se realizeaz prin poziionarea cursorului pe linia de program respectiv i comanda Debug/Toggle Breakpoint. Linia va fi evideniat pe ecran. Pentru anulare se utilizeaz aceeai comand dup poziionarea cursorului pe linia respectiv sau folosind butonul Delete din meniul Debug/Breakpoints.

Pentru a condiiona 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 poziionat cursorul, care permite introducerea n caseta Contition a condiiei de apariie a ntreruperii sub forma unei expresii i specificarea n caseta Pas Count a unui numr care indic la a cta execuie a instruciunii are loc ntreruperea (frecvena opririlor).

Comanda Debug/Evaluate-modify deschide o fereastr de dialog, a crei caset de introducere Expression permite specificarea unei expresii. Butonul evaluate determin apariia valorii acestei expresii n caseta Result. Dac aceast expresie este o variabil, valoarea ei poate fi modificat n caseta de dialog New Value acionnd butonul Modify.

Urmrirea permanent a valorii unei expresii se face n fereastra de observaie Watch deschis cu comanda Windows/Watch. Pot fi introduse noi expresii de urmrit cu Ins. Se poate interveni asupra expresiilor cu obiunile Add Watch, delete Watch, Edit Watch din meniul Debug/Watches, pentru care bara de stare indic tastele de selecie direct.

Un meniu Help interactiv este permanent apelabil cu tasta F1.

3. Scurt iniiere n limbajul C

Pentru o bun nelegere a modului de prezentare a sintaxei i a posibilitilor instruciunilor i funciilor C vom utiliza urmtoarele reguli de prezentare simplificat:

alternativele sunt enumerate pe linii separate;

parantezele unghiulare < > delimiteaz elemente opionale sau care pot lipsi n anumite situaii:

cuvintele cheie ale limbajului sunt tiprite cu caractere Bold (accentuate).

n meniul help din mediul integrat Turbo C++ exist cteva 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 opionale.

3.1. Elemente de baz ale limbajului C

Entitile sintactice de baz utilizate n redactarea unui program sunt:

Cuvinte cheie (keywords) rezervate n principal pentru declararea de tipuri de date i pentru instruciuni;

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

AutoasmBreakCasecdeclcharConstcharconstcontinue

DefaultdoDoubleElseenumexternFarfloatforgoto

HugeifIntinterruptlongnearPascalregisterreturnshort

SignedsizeofStaticStructswitchtypedefUnionunsignedvoidvolatile

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 funcii, cu sintaxa:

identificator:noncifr

identificator noncifr

identificator cifr

noncifr: az AZ _

cifr: 09

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 cuvnt 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, reprezentnd valori numerice ntregi sau raionale, caractere sau iruri de caractere.

De exemplu n declaraia:

int var1=251

251 este o constant care se atribuie variabilei ntregi definit prin identificatorul var1.

Operatori: sunt simboluri utilizate pentru specificarea unor operaii de efectuat; o combinaie valid de valori (variabile sau constante) i operatori formeaz o expresie.

Operatorii utilizai n C vor fi prezentai n capitolul urmtor.

Delimitatori: sunt simboluri care separ diferite entiti. n C, unele simboluri au dubl semnificaie, de operator i delimitator (n funcie de context).

3.2. Structura unui program

n limbajul C fiecare program este o colecie distinct de module care se numesc funcii. Structura general a unui program C este:

Program_C

funcii

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 oricrui 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 activiti pe care trebuie s le realizeze procesorul nainte de compilare (de exemplu includerea n fiierul curent al unor fiiere, care declar macrodefiniii. Directivele procesor sunt precedate de semnul #.

Declaraiile globale permit declararea unor variabile i tipuri de date globale, ce vor fi valabile pentru toate funciile 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 bii)

Orice program C conine o funcie principal numit main i execuia programului ncepe cu aceasta. Restul funciilor din cadrul unui program sunt subrutine care realizeaz prelucrri de date definite de programator sau oferite de biblioteca de funcii.

n interiorul fiecrei funcii (deci i funciei main) se pot declara tipuri de date i de variabile, care au valabilitate numai n interiorul funciei respective spre deosebire de datele declarate global care i pstreaz valabilitatea pentru toate funciile din program.

O funcie C are urmtoare structur:

nume_funcie(){

declaraii locale

secven de instruciuni

}

tip_r reprezint tipul rezultatului pe care l va ntoarce funcia. Dac acesta nu este specificat se consider implicit rezultat de tip ntreg (int). Dac o funcie nu ntoarce un rezultat (efectueaz doar o serie de prelucrri) atunci este nevoie ca s se specifice ca tip al rezultatului cuvntul cheie void.

Pentru ca o funcie s poat prelucra o serie de date iniiale este necesar ca acestea s fie precizate. Precizarea datelor iniiale ce urmeaz a fi prelucrate n cadrul funciei se realizeaz n lista de parametri, unde datelor iniiale li se asociaz o list de variabile, numite parametri formali.

list_parametri reprezint enumerarea declarailor parametrilor funciei, sub forma:

list_parametri: tip_p nume parametru

Pentru apelarea funciei se scrie numele funciei urmat de lista valorilor cu care se iniializeaz parametrii funciei, ncadrat ntre paranteze. Trebuie remarcat c att n definirea funciei ct i la apelare, parantezele rotunde sunt obligatorii; aceste paranteze urmeaz dup numele funciei chiar i atunci cnd funcia nu are parametri. La definirea funciei fr parametri se trece n locul listei de parametri cuvntul cheie void.

Acoladele {} sunt delimitatori care ncadreaz o construcie denumit instruciune compus (sau bloc) alctuit din declaraii i instruciuni. Declaraiile din interiorul unui bloc sunt declaraii locale i sunt valabile numai n interiorul blocului. Definiia unei funcii const deci din antetul care definete interfaa cu restul programului i blocul asociat care descrie prin instruciuni operaiile efectuate.

3.3. Prezentarea unor funcii de intrare ieire pentru consol

Funciile de intrare ieire pentru consol permit programului s citeasc caractere introduse de la tastatur (funcii de intrare) i s afieze diferite caractere pe ecranul monitorului. Prototipurile funciilor de intrare ieire sunt cuprinse n biblioteca programului n fiierul stdio.h sau n fiierul conio.h. Pentru ca aceste fiiere s poat fi incluse n cadrul unui program este necesar ca n partea de directive procesor a programului s fie introdus directivele:

#include

#include n cadrul acestui punct vom face o prezentare succint a unora dintre funcii care s permit utilizarea lor pentru realizarea unor programe simple care s exemplifice diferitele elemnete ale limbajului C.

3.3.1. Operaii de citire scriere fr formatare

Funcia getchar

Funcia ntoarce primul caracter tastat le imprimant dintr-un ir de caractere tastate, iar transferul spre program al acestuia se realizeaz numai dup apsarea tastei Enter. Caracterul este transformat ntr-un ntreg fr semn. n caz de eroare se ntoarce valoarea 1. Prototipul funciei se afl n fiierul stdio.h, iar apelul funciei se face cu:

int getchar(void);

Funcia getche

Funcia ateapt apsarea unei taste, ntoarce caracterul corespunztor i l afieaz pe ecran (nu ateapt apsarea tastei Enter). Prototipul funciei se afl n fiierul conio.h, iar apelul funciei se face cu:

int getche(void)

Funcia getch

Funcia este similar cu ghetche() dar nu afieaz ecou pe ecran. Prototipul funciei se afl n fiierul conio.h, iar apelul funciei se face cu:

int getch(void)

Funcia putchar

Funcia transfer un caracter ctre ecran i ntoarce ca rezultat caracterul transmis iar n caz de eec valoarea 1. Prototipul funciei se afl n fiierul stdio.h, iar apelul funciei 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 evidenia principalele caracteristici al oricrui program.

Se introduce de la tastatur programul:

/* aplicatia 1_1*/

#include

int a,b;

void main(void)

{int var_1,var_2;

var_1=getchar();

a=var_1;

putchar(var_1);

}

Aplicaia va atepta introducerea unui caracter sau a unui sir de caractere de la tastatur, dup apsarea tastei Enter va prelua primul caracter din irul introdus pe care l va memora n variabila var_1 i l va afia 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 realizndu-se prin inserarea comentariului ntre semnele /* */.

Urmtoarea linie de program este o directiv procesor care comunic procesorului s includ n program fiierul stdio.h aflat n biblioteca de funcii.

Urmeaz apoi o declaraie de variabile globale; variabilele a i b sunt declarate de tipul ntreg i ele vor fi recunoscute ca atare n oricare din funciile programului.

n linia urmtoare este declarat funcia main care aa cum am artat reprezint nceputul programului.

Blocul de instruciuni i declaraii aferent funciei main este ncadrat ntre acolade.

{}. n interiorul acestui bloc sunt incluse:

declaraii locale prin care sunt declarate ca variabile de tip int variabilele cu numele var_1 i var_2;

apelul funciei getchar() a crei definiie se afl n fiierul stdio.h. primul caracter din irul de caractere introdus de la tastatur va fi memorat la apsarea tastei Enter n variabila local var_1;

valoarea memorat n variabila local var_1 este atribuit variabilei globale a;

este afiat pe ecran valoarea memorat n var_1.

Se vor realiza n continuare trei aplicaii similare aplicaiei prezentate care s:

a) exemplifice modul de lucru al funciilor getche (va prelua un caracter de la tastatur, l va memora ntr-o variabil local i l va afia),

b) exemplifice modul de lucru al funciilor getch (va prelua un carcater de la tastatur, l va memora ntr-o variabil local i l va afia)

c) exemplifice modul de lucru al funciilor getch (va prelua un carcater de la tastatur, l va memora ntr-o variabil local i ntr-o variabil global i va afia i va afia att variabila local ct i pe cea global.