structura unui program in c

3
Structura unui program in C/C++ Un program scris în limbajul C (sau C++) este compus din unul sau mai multe fişiere sursă. Un fişier sursă este un fişier text care conţine codul sursă (în limbajul C) al unui program. Fiecare fişier sursă conţine una sau mai multe funcţii şi eventual, referinţe către unul sau mai multe fişiere header (figura 1). Funcţia principală a unui program este numită main. Execuţia programului începe cu execuţia acestei funcţii, care poate apela, la rândul ei, alte funcţii. Toate funcţiile folosite în program trebuie descrise în fişierele sursă (cele scrise de către programator), în fişiere header (funcţiile predefinite, existente în limbaj), sau în biblioteci de funcţii. Un fişier header este un fişier aflat în sistem sau creat de către programator, care conţine declaraţii şi definiţii de funcţii şi variabile. Acţiunile din fiecare funcţie sunt codificate prin instrucţiuni (figura 2.a.). Există mai multe tipuri de instrucţiuni, care vor fi discutate în capitolul următor. O instrucţiune este orice expresie validă (de obicei, o asignare sau un apel de funcţie), urmată de simbolul ;. În figura 2.b. este dat un exemplu de instrucţiune simplă. Uneori, ca instrucţiune poate apare instrucţiunea nulă (doar ;), sau instrucţiunea compusă (privită ca o succesiune de instrucţiuni simple, încadrate între acoladele delimitatoare {}. Fişiere header main Funcţii Fişier sursă Program Biblioteci C++ Funcţii din bibliotecă Figura 1. Structura unui program în limbajul C

Upload: adrian-dobrin

Post on 04-Aug-2015

146 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Structura Unui Program in C

Structura unui program in C/C++

Un program scris în limbajul C (sau C++) este compus din unul sau mai multe fişiere

sursă. Un fişier sursă este un fişier text care conţine codul sursă (în limbajul C) al unui

program. Fiecare fişier sursă conţine una sau mai multe funcţii şi eventual, referinţe către unul

sau mai multe fişiere header (figura 1).

Funcţia principală a unui program este numită main. Execuţia programului începe cu execuţia

acestei funcţii, care poate apela, la rândul ei, alte funcţii. Toate funcţiile folosite în program

trebuie descrise în fişierele sursă (cele scrise de către programator), în fişiere header (funcţiile

predefinite, existente în limbaj), sau în biblioteci de funcţii.

Un fişier header este un fişier aflat în sistem sau creat de către programator, care conţine

declaraţii şi definiţii de funcţii şi variabile.

Acţiunile din fiecare funcţie sunt codificate prin instrucţiuni (figura 2.a.). Există mai multe

tipuri de instrucţiuni, care vor fi discutate în capitolul următor. O instrucţiune este orice

expresie validă (de obicei, o asignare sau un apel de funcţie), urmată de simbolul ;. În figura

2.b. este dat un exemplu de instrucţiune simplă. Uneori, ca instrucţiune poate apare

instrucţiunea nulă (doar ;), sau instrucţiunea compusă (privită ca o succesiune de instrucţiuni

simple, încadrate între acoladele delimitatoare {}.

Fişiere header

main

Funcţii

Fişier sursă

Program

Biblioteci C++

Funcţii din bibliotecă

Figura 1. Structura unui program în limbajul C

Page 2: Structura Unui Program in C

O expresie este o structură corectă sintactic, formată din operanzi şi operatori (figura 2.c.).

Un fisier care contine textul programului sau o parte a acestuia se numeste fisier sursă. Prin

compilarea unui fisier sursă, compilatorul generează un fisier obiect , cu extensia .obj .

Fisierele sursă care intră în compunerea unui program pot fi compilate separat sau împreună.

Fisierele obiect, corespunzătoare unui program, pot fi reunite într-un program executabil, prin

editarea de legături (link - editare), rezultând un fisier executabil, cu extensia .exe. Executia unui program începe cu prima instructiune a functiei main.

Dacă functia main( ) face apel la alte functii, acestea vor intra în actiune când vor fi chemate

de main( ).

Exemplu:

# include <stdio.h>

void main(void)

{

printf("Cel mai simplu program C \n");

}

Prima linie este o directivă pentru compilator, pentru a include în textul sursă fisierul

cu numele stdio.h (standard input output) aflat într-un director predefinit. Directivele

de compilator au marcajul #.

A doua linie este antetul functiei main() - functia principală. Cuvântul void arată că

functia este fără tip (nu furnizează valori) iar void dintre paranteze arată că functia este

fără parametri.

Corpul functiei este delimitat de paranteze acolade { }.

Functia main contine un apel la altă functie,

printf() - functie de bibliotecă. Ea realizează tipărirea sau afisarea unui mesaj,

conform unui anumit format (print format). Functia printf este o functie de intrare/iesire, care

se găseste în fisierul header stdio.h; de aceea acest fisier trebuie inclus în toate programele în

care se fac operatii de citire / scriere.

În limbajul C, nu există instructiuni de intrare / iesire (pentru citire si scriere date) ca de

exemplu read, write din Pascal sau Fortran.

Instrucţiunea1

Instrucţiunea2

Instrucţiunea3 .

.

.

.

FUNCŢII

Expresie;

INSTRUCŢIUNI

Operatori

Operanzi

EXPRESII

Figura 2. Funcţie, instrucţiune, expresie

2.a. 2.b. 2.c.

Page 3: Structura Unui Program in C

Acest fapt se justifică prin dependenta instructiunilor de intrare/iesre de sistemul de operare.

Autorii limbajului C au optat pentru realizarea operatiilor de intrare / iesire cu ajutorul

functiilor de bibliotecă. Semnul ; este separator de instructiuni (ca în Pascal).

Functia printf() are un singur parametru = sir de caractere, delimitat de ghilimele ". . . ".

Ultimele caractere sunt de tip neimprimabil si determină trecerea la linie nouă, după

imprimarea textului.

Biblioteci standard

Oferă o mare varietate de functii, grupate după tipul operatiilor efectuate (familii de functii).

Pentru fiecare familie, există un fisier header (*.h), care contine prototipurile functiilor.

Principalele fisiere header sunt:

Stdio.h contine functii standard de intrare/ iesire printf(), scanf().

conio.h - contine functii pentru testarea apartenentei la clase de caractere: litere mari,

litere mici, cifre, caractere tip spatiu, de control etc.

string.h - contine functii pentru operatii cu siruri de caractere.

Math.h - contine functii matematice: sin(), cos(), exp(), log(), pow()

Stdlib.h - contine functi utilitare: de conversie, de generare a numerelor aleatoare,

alocare eliberare memorie etc.

stdarg.h - contine macroinstructiuni pentru crearea de functii cu număr variabil de

argumente.

time.h - contine functii pentru gestionarea timpului (data si ora): numele zilei, lunii,

anul, minutul, secunda, reprezentarea datei.

limits.h în aceste fisiere sunt definite constante care dau valorile minime si float.h

maxime pentru tipurile de bază; aceste valori depind de implementare: Borland

C, Turbo C, Turbo C++ etc.

Conio.h - contine functii standard pentru gestionarea ecranului în modul text (25 linii si

40 sau 80 de coloane)

graphics.h - contine functii (peste 60) pentru gestionarea ecranului în modul grafic (de ex.

VGA: 480 x 640 pixeli); numărul de pixeli depinde de tipul de monitor si de

adaptorul grafic.

Pentru a utiliza o functie, aceasta trebuie apelată. Forma generală a apelării este:

nume_functie(lista de parametri efectivi);

Cu exceptia functiilor de tip void, orice functie returnează o valoare care înlocuieste numele

functiei.

Functiile de tip void se numesc procedurale, deoarece realizează anumite prelucrări (operatii)

dar nu returnează o anumită valoare.