Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




INTRODUCERE IN LIMBAJUL DE PROGRAMARE C

c


INTRODUCERE IN LIMBAJUL
DE PROGRAMARE C



Limbajul C a fost inventat si implementat prima data in anii '70 de catre Dennis Ritchie, programator de sistem la Bell Laboratories. El isi are originea in limbajul BCPL (Basic Computer Programming Language) care, prin perfectionari si dezvoltari succesive a devenit limbajul B si in final limbajul C.

Raspandirea initiala a limbajului C se datoreaza folosirii sale in scrierea sistemului de operare UNIX, sistem care cunoaste astazi o ascensiune con 242e48c stanta printre sistemele de operare existente.

Una din versiunile remarcabile ale limbajului C este cea furnizata impreuna cu versiunea a 5 a sistemului de operare UNIX. Aceasta versiune este descrisa prima oara in cartea lui Brian Kernighan si Dennis Ritchie intitulata The C Programming Language. Cartea este cunoscuta ca un punct de referinta in evolutia limbajului, fiind asimilata cu un adevarat standard.

Aparitia microcalculatoarelor a contribuit la raspandirea spectaculoasa a limbajului C in diverse variante. Desi diferenta dintre ele nu a fost niciodata semnificativa, totusi, pentru eliminarea anumitor neconcordante, in anul 1983 o comisie speciala incepe lucrul pentru elaborarea standardului ANSI (American National Standards Institute) al limbajului C, care apare 6 ani mai tarziu, in anul 1989. La ora actuala majoritatea compilatoarelor C sunt compatibile cu acest standard.

In primele 12 capitole ale lucrarii se prezinta limbajul C standard. Datorita importantei domeniului s-a considerat utila si o initiere, in capitolul al 13-lea, in grafica pe calculator, folosind functiile video Borland C

Locul limbajului C In familia limbajelor de programare

Familia limbajelor de programare se poate clasifica in: limbaje de nivel coborat, limbaje de nivel inalt si limbaje de nivel mediu.

Prima categorie cuprinde limbajul cod-masina si limbajul de asamblare. Ambele sunt specifice tipului de masina de calcul pe care sunt implementate. Limbajul cod masina este limbajul alcatuit din acele instructiuni elementare care sunt intelese si executate de un anumit tip de calculator. Limbajul de asamblare foloseste in locul codurilor numerice reprezentari simbolice, numite si mnemonice, care usureaza munca de programare. Operatiile limbajului de asamblare sunt operatii de baza ale calculatorului. El nu accepta structuri de control si date structurate, dar permite adresarea simbolica a locatiilor de memorie. Din aceste motive programele in limbaj de asamblare sunt lungi si se scriu anevoios, dar sunt performante din punct de vedere al vitezei de executie si al posibilitatilor de acces la resursele hardware.

A doua categorie, cea a limbajelor de nivel inalt, include nume binecunoscute: Fortran, Cobol, Basic, Pascal etc.. O parte din trasaturile lor comune se refera la posibilitatea de a folosi structuri de control, date structurate, de a elabora cu usurinta programe portabile (care se pot adapta usor la implementarea pe diverse categorii de sisteme de calcul). Limbajele din aceasta categorie pierd insa calitatea esentiala a limbajelor de nivel coborat, aceea de a exploata eficient resursele masinii de calcul pe care sunt implementate.

Categoria limbajelor de nivel mediu imbina trasaturile principale ale limbajelor de nivel inalt cu cele ale limbajelor de nivel coborat. Limbajul C este un limbaj de nivel mediu.

CAteva trasAturi ale
limbajului C

Limbajul C ofera posibilitatea organizarii programelor in module si permite implementarea unor structuri de control si tipuri de date care faciliteaza programarea structurata. Ca si limbajele de nivel inalt este usor de invatat si de folosit, iar in plus are un numar foarte mic de cuvinte cheie ( cuvinte dupa standardul ANSI C). Portabilitatea specifica limbajelor de nivel inalt este accentuata in C prin folosirea functiilor de biblioteca in realizarea operatiilor de intrare/iesire si de prelucrare a fisierelor. Numarul mic de cuvinte cheie si prezenta unei bogate familii de operatori permit realizarea unor programe concise, cu un cod sursa relativ mic. Compilatorul C este mai putin sever in comparatie cu majoritatea compilatoarelor limbajelor de nivel inalt. Daca la aceste trasaturi adaugam si posibilitatea de a oferi facilitati ale limbajelor de nivel coborat (lucru cu adrese de memorie, accesarea registrilor, incrementari, decrementari, apelul unor functii ale sistemului de operare) obtinem imaginea unui limbaj puternic si flexibil preferat in special de programatorii profesionisti.

Structura generalA
a unui program C

Structura generala a unui program C este urmatoarea:

directive preprocesor

declaratii globale

tip main(lista de parametri)

A

declaratii locale

instructiuni

I

tip f1(lista de parametri)

A

declaratii locale

instructiuni

I

tip f2(lista de parametri)

A

declaratii locale

instructiuni

I

tip fn(lista de parametri)

A

declaratii locale

instructiuni

I

Precizari. Faza de analiza a unei probleme evidentiaza uzual o functie principala si mai multe functii secundare ale acesteia. Rezultatul acestei faze il constituie o reprezentare modulara, care reflecta interdependenta dintre functiile problemei. In principiu, orice program C este o secventa de functii aflate la acelasi nivel.

Cuvintele main f1,f2,.,fn sunt nume de functii C. Orice functie dintr-un program poate apela oricare alta functie din program. Exceptie face functia main() care poate apela alte functii, dar nu poate fi apelata dintr-o functie a programului. La executia unui program C prima functie apelata este main(): executia programului incepe si se termina cu instructiuni din main(). Ea este obligatorie si poate figura oriunde in program. De obicei este plasata la inceputul programului, pentru a-i mari lizibilitatea.

Directivele preprocesor sunt instructiuni destinate compilatorului, care face transformari preliminare asupra textului inainte de a incepe compilarea. Faza preprocesarii are drept rezultat obtinerea unei unitati de compilare. Unitatea de compilare este analizata sintactic (compilata), iar rezultatul este depus in module obiect. Modulele obiect rezultate, impreuna cu modulele obiect corespunzatoare functiilor de biblioteca folosite sunt >legate> cu ajutorul programului linkeditor (editor de legaturi) obtinandu-se programul executabil. Directivele se constituie ca un limbaj in interiorul limbajului C si ofera anumite facilitati: compilarea conditionata a unor portiuni de cod, inlocuirea in text a unui identificator la fiecare aparitie cu un set de caractere, includerea unui fisier sursa in program etc..

O functie C este alcatuita din antet si un bloc de declaratii si instructiuni delimitat de acoladele A si I, numit si corpul functiei. Antetul contine numele functiei, tipul valorii returnate (intreg, real etc.) si o lista de parametri formali care poate fi eventual vida.

O functie este definita daca este prezentata complet, adica are forma:

antet

corpul functiei

Daca se prezinta doar antetul functiei, se spune ca functia este declarata.

Declaratia moderna a unei functii poarta numele de prototip.

Apelul functiei se face sub forma

nume_functie(lista de parametri actuali)

si presupune transferul controlului executiei programului catre instructiunile din corpul functiei, executia acestora si revenirea in functia apelanta in punctul unde se executa operatia care urmeaza. Schema de apel este urmatoarea:

functie    functie

apelanta    apelata


Figura 10.1 - Schema de apel a unei functii.

O functie C nu poate fi declarata sau definita in interiorul altei functii.

Declaratiile globale se refera la entitati (tipuri de date, variabile etc.) care sunt recunoscute de toate functiile. Declaratiile locale limiteaza valabilitatea acestor entitati doar la nivelul functiei unde se fac. Prezenta prototipului unei functii in zona declaratiilor globale face posibila recunosterea sa in toate functiile care o apeleaza si permite evitarea unor erori de apelare, inca din faza de compilare.

In constructia unui program C se pot folosi doua categorii de functii:

functii utilizator, elaborate de programator;

functii standard (predefinite), care pot fi preluate din biblioteca standard a limbajului C.

Functiile standard ale limbajului se pot clasifica in: functii de intrare/iesire, functii pentru prelucrarea caracterelor, functii pentru prelucrarea sirurilor de caractere etc.. In mod corespunzator prototipurile acestor functii sunt grupate in fisiere speciale numite fisiere antet sau header (au extensia <.h>). De exemplu, functiile matematice sunt grupate in fisierul antet "math.h", functiile de manipulare a sirurilor de caractere in "string.h" etc.. Pentru a utiliza o functie standard in program trebuie cunoscut prototipul ei. Acest lucru este posibil prin includerea fisierului antet in program utilizand directiva #include

Un program C poate avea functiile editate intr-un singur fisier (programe monofisier) sau in mai multe fisiere (programe multifisier).    Un exemplu simplu de program C este urmatorul:

Exemplul 10.1

Primul program C

#include "stdio.h"

void main(void)

A

printf("tnPrimul program C!");

I

Se observa ca programul este alcatuit dintr-o singura functie, functia main() si foloseste functia standard printf() cu prototipul in "stdio.h".

TESTE DE CONTROL

Limbajul C a fost inventat de:

a)      Niklaus Wirth

b)      Dennis Ritchie

c)      Brian Kernighan

Limbajul C este:

a)      un limbaj de nivel coborat

b)      un limbaj de nivel mediu

c)      un limbaj de nivel inalt

In C, o functie:

a)      nu se poate declara sau defini in interiorul alteia

b)      poate apela o alta functie

c)      este alcatuita din antet si un bloc de declaratii si instructiuni delimitat de cuvintele begin si end

Functia main()

a)      poate sa lipseasca dintr-un program C

b)      este obligatorie si figureaza prima in program

c)      este obligatorie si poate figura oriunde in program

In C, o functie:

a)      poate include declaratia sau definitia altei functii

b)      poate fi declarata sau definita in interiorul altei functii

c)      se poate apela numai din main()

d)      se poate apela din orice alta functie

RASPUNSURI

10.1-b    10.2-b 10.3-a, b 10.4-c 10.5-d



Document Info


Accesari: 2613
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )