Metode evoluate de programare Limbajele c şi C++


Structura generală a unui program C



Yüklə 1,64 Mb.
səhifə2/44
tarix07.04.2018
ölçüsü1,64 Mb.
#46828
1   2   3   4   5   6   7   8   9   ...   44

1. Structura generală a unui program C




1.1. Istoric, concepţie , evoluţie

Limbajul C a fost finalizat în 1972 de Dennis M. Ritchie şi Brian W. Kernighan de la firma americană Bell Laboratories. Prima versiune a limbajului se numeşte BCPL apoi următoarele poartă numele de A, B şi C. Cei doi autori au dezvoltat aceste prime versiuni în jurul sistemului de operare UNIX. La vremea respectivă din aproximativ 13000 linii sursă ale UNIX-ului doar 200 de linii sursă nu erau scrise în limbajul C. De acest fapt se leagă detractorii limbajului care spun că limbajul C nu este un limbaj deosebit ci doar un fel de limbaj “oficial” al sistemului de operare UNIX.

În anul 1978 apare manualul The C Programming Language care este de fapt şi prima standardizare a limbajului. Cei doi autori intră astfel în istorie...

După anul 1980 odată cu dezvoltarea hardware apar şi primele PC-uri iar acestea implică şi produse software adecvate. Principalele firme producătoare de sofware - MICROSOFT şi BORLAND - au dezvoltat unelte adecvate pentru programarea şi utilizarea limbajului C. Deocamdată firma BORLAND deţine supremaţia prin versiunile mediului BORLAND C. Cele mai folosite sunt versiunile 2.0, 3.1, 4.0. În ultimii doi ani au apărut aşa numitele medii “visuale”: VISUAL C versiunile 4.5 şi 5.0, C++ BUILDER care sunt de fapt extensii ale mediului BORLAND C adaptate programării orientate obiect şi interfeţei grafice WINDOWS 95. Mediile de programare BORLAND C pot compila 3 tipuri de programe sursă C:



  1. fişiere cu extensia .C (fişiere cu programe standard C);

  2. fişiere cu extensia .CP (fişiere cu programe C+, un C extins);

  3. fişiere cu extensia .CPP (fişiere cu programe C++).

Menţionăm că limbajul C++ a fost elaborat de Bjarne Stroustrup de la AT&T. El este un superset al limbajului C şi permite principalele concepte ale programării prin abstractizarea datelor şi programării orientate spre obiecte.

Limbajul C este un limbaj hibrid având facilităţi caracteristice limbajelor de asamblare cât şi facilităţi ale limbajelor de înalt nivel.


Câteva dintre principalele caracteristici ale limbajului C sunt:


  1. portabilitate: chiar dacă acest concept nu-i definit foarte riguros spunem că

că un program este portabil dacă el poate fi transferat uşor de la

un tip de calculator la altul; limbajul C este un astfel de limbaj;



b) flexibilitate: compilatorul face un număr mai redus de controale (face multe

conversii implicite);



c) programare structurată: limbajul are principalele structuri ale programării structurate:

structura secvenţială, structura iterativă şi structura de selecţie;



d) compactizare: unele instrucţiuni sunt scrise foarte compact; de exemplu i:=i+1

se poate scrie mai scurt ca i++;



e) lucrul pe biţi şi calcule cu adrese.


1.2. Conceptul de funcţie

Un program C se compune din una sau mai multe funcţii. Funcţia este o unitate lexicală de program compilabilă independent. Una dintre funcţii este funcţie principală, numele ei este predefinit şi anume main. Execuţia programului începe cu prima instrucţiune din funcţia principală. Dăm în continuare 2 exemple de structuri de program (fişiere sursă):




  1. directive de preprocesare 2) directive de preprocesare

declaraţii de date globale declaraţii de date globale

declaraţie prototip funcţia f1 implementare funcţia f1

. . . . . .

declaraţie prototip funcţia fn implementare funcţia fn

void main(void) void main(void)

{ declaraţii { declaraţii

instrucţiuni instrucţiuni

} }

implementare funcţia f1



. . .

implementare funcţia fn


Funcţia principală main este obligatorie pentru orice program celelalte elemente fiind optionale. Pentru ca o anumită funcţie să poată fi apelată e necesar ca ea să aibă declarat prototipul dacă implementarea (definiţia) ei se află după funcţia main (exemplul 1). Dacă funcţia principală se află la sfârşitul fişierului atunci nu mai e necesar prototipul funcţiei apelate ci doar implementarea ei (exemplul 2). Comparând structura unui program C cu structura unui program PASCAL se observă nivelul de imbricare diferit. În PASCAL apare o imbricare a procedurilor şi funcţiilor pe când în C nu există o astfel de imbricare.


PASCAL C

...

1.2.1. Definiţia unei funcţii

Definiţia unei funcţii în limbajul C se compune din antet şi corp. O funcţie poate fi apelată dacă este precedată de definiţia sau de prototipul ei. Aceste lucruri care sunt valabile în limbajul C se regăsesc şi în limbajul C++.

1.2.2. Antet şi prototip



Antetul simplificat al unei funcţii în C are formatul:
tip nume_funcţie (lista_parametrilor_formali)
unde: tip - reprezintă tipul valorii returnate de funcţie sau dacă funcţia nu returnează nici

o valoare se pune cuvântul cheie void;



nume_funcţie - reprezintă un identificator clasic format dintr-un mixaj de litere

şi cifre, primul caracter fiind obligatoriu literă;

printre litere se numără şi liniuţa de subliniere(‘_’);

lista_parametrilor_formali nume de variabile sau expresii separate prin virgule.

Exemple:
1) double radical (double x) // calculeaza radacina patrata din x si returneaza valoarea gasita

2) double radical_n (double x, int n) // calculeaza radacina de ordinul n din x
Prototipul unei funcţii este asemănător antetului dar la sfârşit se pune caracterul “;”


1.2.3. Corpul unei funcţii



Corpul unei funcţii C se compune din declaraţii de variabile locale şi instrucţiuni scrise între acolade conform figurii următoare:
{ declaraţii

instrucţiuni

}

Şi pentru că autorii limbajului C consideră că un limbaj de programare se învaţă mai repede scriind şi executând programe cât mai timpuriu vom da un mic exemplu de funcţie.


int modul (int i) // determina valoarea absoluta a intregului i si returneaza aceasta valoare

{ if (i < 0) return – i;

if (i = = 0) return 0;

else return i;

}
sau scris şi altfel

int modul (int I) // determina valoarea absoluta a intregului i si returneaza aceasta valoare

{ if(i)

if (i > 0) return i;



else return – i;

else return 0;

}


Yüklə 1,64 Mb.

Dostları ilə paylaş:
1   2   3   4   5   6   7   8   9   ...   44




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin