Sunteți pe pagina 1din 20

LECIA 3

ELEMENTELE LIMBAJELOR DE PROGRAMARE


C/C++

program surs, program obiect, program executabil, programare


structurat, atomi lexicali, identificatori, constante, funcie C, program
principal, mediu de programare

1. ETAPELE GENERRII UNUI PROGRAM EXECUTABIL


Formularea problemei. Algoritmul de rezolvare
programul surs. Compilarea. Editarea de legturi.

problemei.

2. PROGRAMUL SURS N LIMBAJUL C


Funcia n limbajul C. Exemplu simplu de program surs C.

3. VARIABILE
Noiunea de variabil. Tipuri de variabile. Declararea i utilizarea
variabilelor. Iniializarea variabilelor.

4. LIMBAJUL C. CARACTERISTICI GENERALE


Apariia limbajului. Caracteristici. Atomi lexicali. Cuvinte rezervate.
Identificatori. Comentarii. Constante. iruri constante. Operatori.
Semne de punctuaie.

5. MEDIUL DE PROGRAMARE

Prezentarea etapelor de generare a programului executabil

Definirea elementelor caracteristice ale limbajului C

nelegerea modului de ntocmire a programului surs

Utilizarea variabilelor simple i a operaiilor de citire/scriere

Capacitatea iniia sesiuni simple de lucru n mediul Visual C++ Express


Edition 2008

NOTIE

ELEMENTELE LIMBAJELOR C/C++

LECIA 3

1. ETAPELE GENERRII UNUI PROGRAM EXECUTABIL


Un program pentru calculator (o aplicaie software) este rezultatul unor
activiti n dou etape:
- de analiz, prin care se formuleaz problema de soluionat i se descrie
modul de rezolvare a acesteia printr-un algoritm;
- de programare, n urma creia se obine programul propriu zis, care
ulterior este testat pentru eliminarea eventualelor erori.
n continuare se prezent etapele necesare pentru elaborarea unui program
executabil, pornind de la o problem concret. n funcie de complexitatea
problemei i experiena programatorului, etapele pot avea, n mod explicit, una sau
mai multe din faze sau pot fi omise.

a) Formularea problemei
-

Verificarea posibilitii rezolvrii prin metode numerice,


programabile;

Realizarea modelului matematic, dac este cazul;

Verificarea modelului matematic cu un set de date real,


pentru care se cunosc soluiile;

Identificarea datelor de intrare, a datelor de ieire precum


i a variabilelor intermediare;

Alegerea tipurilor de date folosite pentru memorarea lor n


cursul procesrii;

Specificarea modului de interfaare cu utilizatorul la nivel


de intrare-ieire.

b) Algoritmul de rezolvare a problemei


-

Generarea schemei logice sau a pseudocodului ce descrie


algoritmul propus pentru rezolvarea problemei;

Verificarea algoritmului creat cu un set date reale. n caz


de erori, se verific algoritmul creat pentru a le depista.

c) ntocmirea programului surs


program surs

Scrierea codului sau programului surs prin transpunerea


algoritmului ntr-un limbaj de programare oarecare;

Se obine un fiier text, fiier surs;

Extensia fiierului este fixat de mediul de programare


2

LECIA 3

ELEMENTELE LIMBAJELOR C/C++

NOTIE

(C++ .cpp, Pascal, Delphi .pas, Visual Basic .bas etc.

d) Compilare, obinerea programului obiect


-

Programul surs (format text) este transformat in format


obiect (format binar) ;

Programul obiect, fiierul obiect: format binar incomplet,


lipsesc poriunile de funcii bibliotec;

compilare

Extensia implicit este .obj ;

Eliminarea erorilor de sintax din fiierul surs.

e) Editare de legturi (build, link,..)


-

Obinerea programului executabil prin introducerea


codului compilat al funciilor de bibliotec n programul
obiect;

Programul executabil este un fiier cu extensia .exe;

Testarea programului, versiuni alfa, beta,..

Eliminarea erorilor de logic (bug-uri),

debbuger
faciliti de

debugger.

2. PROGRAMUL SURS N LIMBAJUL C


2.1.

FUNCIA N LIMBAJUL C
Limbajul de programare C este un limbaj structurat, n care
componenta de baz este funcia. Un program este constituit
dintr-o mulime de funcii grupate n module program.

Analogia cu o funcie din matematic este perfect: funcia are argumente


de un anumit tip i returneaz o valoare de un anumit tip, n urma evalurii unei
expresii de definiie.
Atunci cnd este apelat (executat), o funcie calculeaz i returneaz un
rezultat i/sau realizeaz anumite aciuni descrise n corpul funciei, care un efect
colateral.
Corpul funciei formeaz un bloc i cuprinde, ntre delimitatorii acolade { i
}, linii de program (instruciunile componente, declaraii de variabile etc.).

Orice program surs n C trebuie s conin o funcie principal


main(), care este apelat de sistemul de operare cnd programul
este lansat n execuie.

main()

ELEMENTELE LIMBAJELOR C/C++

NOTIE

LECIA 3

Cel mai simplu program, corect din punct de vedere al compilatorului este
funcia principal main(), fr nici un parametru, care nu are nici o linie de
program n corpul su. Evident c la execuie nu are nici un efect.

main()
{}

2.2.

EXEMPLU SIMPLU DE PROGRAM SURS C

Un program simplu, care conine numai funcia main(), fr parametri i


afieaz un mesaj pe monitor este urmtorul exemplu.

printf()

#include <stdio.h>

//(1)

main()

//(2)

//(3)

printf("\n Program in C. \n");

//(4)

//(5)

Pentru crearea acestuia trebuie parcuri urmtorii pai :


1.

Folosind un editor de texte, se scrie textul de mai sus, eventual mai puin
comentariile (numerele de linie) //(1)..//(5), care nu au nici un efect la
compilare;

2.

Se salveaz acest text, numit program surs, ntr-un fiier numit de


exemplu "p01.cpp", comanda Save (Ctrl+F2);

3.

Compilarea i generarea fiierului executabil, "p01.exe" (Build, F7).

Cnd programul este rulat (executat) (Start, Ctrl+F5), atunci va apare pe


ecran textul:

Program in C.

n exemplul de mai sus:


Linia (1)
1.

#include <stdio.h>

Liniile care ncep cu "#" se numesc directive de preprocesare (precompilare). Acestea


comunic cu preprocesorul.
Directiva #include determin preprocesorul s includ o copie a fiierului antet (header)
stdio.h n acest punct al programului surs. Parantezele unghiulare <> indica faptul c
acest fiier se gsete n biblioteca C. Acest tip de fiiere conin informaii despre funciile de
bibliotec ale limbajului, n cazul anterior despre funcia printf().
Linia (2)

LECIA 3
2.

ELEMENTELE LIMBAJELOR C/C++

NOTIE

main()

Fiecare program are o funcie numit main(), care constituie programul principal.
Parantezele ce urmeaz dupa cuvntul cheie main indic faptul c aceasta este o funcie.
Linia (3), linia (5)
3.

4.

Acolada stng { ncepe corpul programului principal. Acolada dreapt corespunztoare }


este sfritul programului principal (funciei main()).
Linia (4)
4.

stdio.h

printf("\n Program in C. \n");

Funcia printf() este o funcie al crei prototip este descris n biblioteca stdio.h. La apelul
acestei funcii se tiprete pe ecran irul care este parametrul funciei scris ntre parantezele
( ): "\n Program in C. \n"
Un ir constant n C const dintr-un numr de caractere ncadrate ntre ghilimele. Acest ir
este un argument al functiei printf().
Caracterele \n de la nceputul i sfritul irului (se citesc "backslash n") reprezint o

secven de control a tipririi, numit "newline" care are ca efect nceperea tipririi (saltul

/n

cursorului) pe o linie nou a ecranului.

3. VARIABILE
3.1.

NOIUNEA DE VARIABIL

ntr-un algoritmul care descrie rezolvarea unei probleme numerice, variabila


este o mrime care poate lua valori de un anumit tip, dintr-o mulime sau interval
de date.
Pentru un program surs, scris ntr-un limbaj de programare, variabila are n
plus cteva precizri particulare.
O variabil reprezint o zon din memorie intern, referit
printr-un identificator de variabil (nume), n care se va stoca
sau modifica datele utile programului, pe parcursul execuiei
acestuia.
Caracteristicile generale ale variabilelor sunt:
-

fiecare variabil are un nume, dat de ctre programator;

fiecare variabil aparine unui tip de dat;

fiecare variabil reine o valoare sau un set de valori utile pentru


program (simple, indexate sau compuse).

Numele de variabile au urmtoarele restricii specifice identificatorilor, ca


atomi lexicali:
-

nu pot ncepe cu un numr ( 5j ),

identificator

ELEMENTELE LIMBAJELOR C/C++

NOTIE

LECIA 3

nu pot fi cuvinte rezervate ( int, main etc. ),

nu pot conine caractere speciale ($ @ # & etc.), cu excepia


caracterului "underscore" (_).

Numele unei variabile se alege sugestiv.

Limbajul C este n mod implicit "case sensitiv" (adic face distincie ntre literele mici i
mari folosite n scrierea codului surs): nota_1, Nota_1, NOTA_1 definesc trei
variabile distincte.

Cnd se dorete ca un nume de variabil s fie compus din dou cuvinte ele trebuie unite
cu linie inferioar _ (nume_prenume, clasa_1 etc.).

3.2.

TIPURI DE VARIABILE
a) Tipuri fundamentale

n general, ntr-un limbaj de programare avem nevoie de dou categorii de


variabile, care s poat fi folosite pentru stocarea unor valori numerice i pentru
stocarea unor caractere sau iruri de caractere.
Limbajul C a fost prevzut cu urmtoarele tipuri fundamentale de date:
- int, numere ntregi;
- float, pentru numere zecimale , calcul n virgul mobil;
- char, codul unui caracter sau un numr ntreg reprezentat pe
un byte.

int/float/char

Un caz particular este irul de caractere : tipul char [n] definete o variabil
care va memora un ir de n caractere sau ntregi.

b) Tipul void

void

Este un tip de date special, pentru care mulimea valorilor este vid. Se
utilizeaz pentru a specifica absena oricrei valori, de exemplu pentru valoarea
ntoars de funcia main, care n format ANSI C are forma void main(){}.

c)

Variabile simple/indexate

Dac unei variabile i corespunde o dat izolat, fr legtur cu alte date,


variabila este simpl. n mod frecvent ns data face parte dintr-un grup, o list de
valori cu un anumit format compus din tipuri simple, definit de utilizator, cazul
variabilelor indexate (tablouri i structuri).

3.3.

DECALARAREA I UTILIZAREA VARIABILELOR

n limbajul C, orice variabil, nainte de utilizare, trebuie declarat.


Declaraia unei variabile stabilete:
-

legtura dintre numele variabilei i tipul de dat pe care le poate avea;


6

LECIA 3

ELEMENTELE LIMBAJELOR C/C++

aloc zona de memorie necesar (numrul de bytes) pentru stocarea


valorilor acesteia.

poriunea din programul surs n care se poate utiliza, este vizibil


(variabile locale sau globale, noiuni precizate n leciile urmtoare).

NOTIE

Declararea unei variabile


tip_data lista_variabile;

int i, j, k;
float a, b, c, x1, x2;
char c1, c2;
char sir_c[10];

// variabilele i, j, k intregi
// variabile a, b, c, x1, x2 de tip real
// variabilele c1, c2 de tip char
// variabila sir_c sir de 10 char

Pe parcursul execuiei programului, valorile unei variabile pot fi:


-

pot fi introduse (citite) de la tastatur sau de la alt dispozitiv de intrare;

pot fi afiate (scrise) pe ecran sau pe un alt dispozitiv de ieire;

depuse n memorie prin iniializare sau prin operaii de atribuire n


program.

O modalitate simpl de citire/scriere a valorilor variabilelor utilizate de un


program C++ sunt procesele (fluxurile de intrare/ieire) cin, respectiv cout, care
sunt coninute n biblioteca limbajului numit iostream.h, utilizate dup formatul
general:
cin>>nume_variabila;
/* nume_variabila primeste valoarea introdusa de la tastatura */
cout<<nume_variabila;
// afiseaza pe ecran valoarea din nume_variabila
cout<<"sir_caractere";
// afiseaza pe ecran textul sir_caractere
cout<<endl;

cin/cout

/* termina afisearea pe linia curenta, inceput de linie noua */


Exemplele urmtoare utilizeaz variabile de tip predefinit numerice (int,
float), dup secvena:
1.

se citete sau se asigneaz (atribuie) o valoare variabilei;

2.

calculeaz valori i le memoreaz ntr-o variabil;

3.

afieaz (scrie) valorile variabilelor pe ecran.

stdafx.h
<iostream>

Exemplu de utilizare a variabilelor de tip int


#include "stdafx.h"
#include <iostream>

ELEMENTELE LIMBAJELOR C/C++

NOTIE

LECIA 3

using namespace std;


int main()
{
int zile, ore, minute;

namespace std

// declarare variabile intregi

cout<<"Introduceti zile = ";


cin>>zile;
// citeste o valaore intreaga
ore=24*zile;
minute=60*ore;
cout<<zile; cout<<" zile =";
cout<<ore; cout<<" ore = ";
cout<<minute; cout<<" minute.";
cout<<endl;
return 0;
}

La rulare, dac se introduce 5 pentru zile, pe ecran va aprea:


Introduceti zile := 5
5 zile =120 ore = 7200 minute.
Press any key to continue . . .

n exemplul anterior:
1.

#include <iostream>

Directiva prin care se include n programul surs fiierul antet iostream.h, care conine
prototipurile pentru cin, cout, endl.
2.

using namespace std;

Directiv prin care se specific domeniul de nume (spaiul numelor) std n care sunt definite
funcii, variabile, constante etc. utilizate n program (n acest exemplu cin, cout, operatorii
de extragere sau citire <<, respectiv de inserie sau ieire >> i manipulatorul endline
endl).

Exemplu de utilizare a variabilelor de tip float

float x, y;

// declaratie variabile de tip real

x = 1.0;
y = 2.0;
cout<<"Suma dintre x si y este ";
cout<<x+y;
cout<<endl;
...
8

LECIA 3

ELEMENTELE LIMBAJELOR C/C++

NOTIE

Pe ecran se va afia:
Suma dintre x si y este 3
Press any key to continue . . .

3.4.

INIIALIZAREA VARIABILELOR

Dup declararea unei variabile, zona de memorie alocat conform tipului de


dat, va conine o valoare oarecare (numit garbage), existent n zona respectiv,
la lansarea n execuia a programului. Din acest motiv este de preferat ca
variabilelor s li se atribuie nainte de utilizarea propriu zis a acestora n program,
valori implicite, iniiale.
Iniializarea se poate face printr-o operaie de atribuire sau la declararea
variabilei prin iniializatorii explicii, plasai dup numele variabilei, separai de
acesta prin semnul egal.

int n=0;
// variabila intraga cu valoarea initiala 0
float x= -0.2345;
// variabila reala cu valoarea -0.2345
char c=A;
// variabila caracter cu valoarea A
char nume[]={ "Alexandru"};
// sir de caracter
...

Prezena unei iniializri n declararea variabilelor indic o declaraie definitorie (ce


specific ce valoare va fi stocat n spaiul de memorie).

Nu pot exista dou declaraii definitorii ntr-un program.

Aceeai variabil nu se poate iniializa cu dou valori, dect n cazul n care se renun la
valoarea anterioar, cu care a fost iniializat.

4. LIMBAJUL C. CARACTERISTICI GENERALE


4.1.

ISTORIC

a) Apariia limbajului

garbage

ELEMENTELE LIMBAJELOR C/C++

NOTIE

LECIA 3

Limbajul C, dezvoltat n 1972 este Dennis M. Retchie la Laboratoarele AT&T Bell, este primul
limbaj pentru crearea de sisteme de operare. Sistemele de operare erau dezvoltate n limbaj
de asamblare pentru a fi mai rapide.
Numele limbajului provine din faptul c este rezultatul mbuntirii limbajului B, folosit n
scrierea sistemului de operare UNIX pentru minicalculatorul DEC PDP7.
Prima documentaie despre acest limbaj a fost "The C Programing Language", scris de
Dennis M. Retchie1 i Brian Kernighan n 1977. naintea ei exista doar "The C Reference
Manual", scris de Dennis M. Retchie.

ANSI C

Dup adaptarea compilatorului pentru sistemul de operare MS-DOS, Institutul National


pentru Standarde al Americii (ANSI), a definit o versiune oficial pentru limbajul C, rezultnd
astfel ANSI C.

b) Caracteristici
Poate fi considerat simultan i un limbaj de nivel nalt i un limbaj de nivel
sczut pentru c:
-

este un limbaj de programare de scop general;

permite programarea structurat (limbaj de nivel nalt);

ofer posibilitatea lucrului la nivel de bii i cu adrese de


memorie (limbaj de nivel sczut, main);

poate fi utilizat pentru scrierea softului de baz (sistem de


operare).

nvarea limbajul C este util i pentru c:


-

are o libertate foarte mare n scrierea codului, el acceptnd multe forme de


scriere care n alte limbaje nu sunt premise;

versiunile sale OOP (Object Oriented Programming), C++ i Visual C++,


sunt printre cele mai folosite limbaje de programare;

permite trecerea cu uurin la programarea Web: Java, C#, PHP, Pearl etc.

4.2.

ATOMII LEXICALI

Un limbaj de programare are un alfabet i reguli pentru scrierea programelor


corecte folosind semne de punctuaie. Aceste reguli formeaz sintaxa limbajului C.
Compilatorul mparte mulimea caracterelor din programul surs
n atomi lexicali, care reprezint vocabularul de baz al
limbajului.
1

Dennis MacAlistair Ritchie (n. 9 septembrie 1941) a dezvoltat mpreun cu Ken Thomson i ali
programatori prima versiune a sistemului de programare UNIX . mpreun cu Thompson i Brian
Kernighan a dezvoltat limbajul de programare C i mpreun cu Kernighan a scris cartea Limbajul de
programare C (englez The C Programming Language).
[citat din http://ro.wikipedia.org/wiki/Dennis_Ritchie]

10

LECIA 3

ELEMENTELE LIMBAJELOR C/C++

n ANSI C (ANSI = American National Standards Institute) sunt ase tipuri


de atomi lexicali, care se mai numesc i elemente lexicale sau uniti lexicale:
1. cuvinte rezervate (sau cuvinte cheie);
2. identificatori;
3. constante;
4. iruri constante;
5. operatori;
6. semne de punctuaie.

4.3.

ALFABETUL
Un program C este o secven de caractere. Caracterele permise n

programele C sunt:
- litere mici : a b ... z
- litere mari : A B ... Z
- cifre

: 0 1 ... 9

- alte caractere: */ = ( ) { } [ ] < > ' " ! @ # $ % & _ | ^ ~ \ .


,;:?
- spaii

4.4.

: blank, newline, tab

COMENTARII
Comentariile sunt iruri de caractere cuprinse ntre delimitatorii
/* i */. Comentariile nu reprezint atomi lexicali.

Compilatorul va traduce comentariile ntr-un singur caracter spaiu, de aceea


comentariile nu fac parte din codul executabil.
/*
Comentariul care poate contine
mai multe linii
*/
//

Comentariu pn la sfritul liniei curente (C++)

11

NOTIE

LECIA 3

ELEMENTELE LIMBAJELOR C/C++

NOTIE


Principalul scop al folosirii comentariilor este facilitarea documentrii


ulterioare, explicarea clar a folosirii programelor.

Uneori un comentariu poate conine informaii ce argumenteaz demonstraia


corectitudinii acelui algoritm.

Este recomandat utilizarea comentariilor n timpul introducerii textului


programului.

4.5.

CUVINTE REZERVATE
Cuvintele rezervate (cheie) reprezint atomi individuali, cu un
nelesuri stricte i care nu pot fi redefinite sau utilizate n alte
contexte.

auto

do

goto

signed

break

double

if

sizeof

int

static

volatile

long

struct

while

case

else

char

enum

const

extern

unsigned
void

register switch

continue float

return

typedef

default

short

union

for

Anumite implementri (Turbo C) pot conine i alte cuvinte rezervate:


asm cdecl far

huge

interrupt

near

pascal

Comparativ cu alte limbaje de programare, C are un numr mic de 32 de


cuvinte rezervate. Limbajul Ada, de exemplu, are 62 cuvinte rezervate. Aceasta
este o caracteristic a limbajului C, de a avea doar cteva simboluri speciale i
cuvinte rezervate.

4.6.

IDENTIFICATORI
Identificatorii sunt secvene de caractere create pentru a da
nume unice diverselor obiecte dintr-un program (variabile, nume
de funcii, tipuri de date etc.).

Un identificator este un atom lexical compus dintr-o secven de litere, cifre


sau underscore ("_") cu urmtoarele restricii:
-

ca primul caracter este o liter sau underscore;

nu pot conine caractere speciale sau caracterul spaiu.

12

LECIA 3

ELEMENTELE LIMBAJELOR C/C++

n general, se obinuiete ca identificatorii s fie scrii cu nume sugestive,


care s faciliteze citirea i documentarea programului.

k, _id, contor, un_identificator

/* sunt identificatori */

gresit#unu, 100_gresit_doi, -plus

/*nu sunt identificatori*/

Cuvintele rezervate pot fi privite ca fiind identificatori. De asemenea numele


funciilor din bibliotecile limbajului pot fi considerate identificatori, precum "printf"
sau "scanf" care sunt funcii de intrare/ieire.

4.7.

CONSTANTE
Constantele de ntregi, reali, caractere i enumerare sunt
considerate de compilator ca fiind atomi lexicali.

a) Constanta ntreag
Este o succesiune de cifre i poate fi:
-

o constant octal, precedat e 0 (cifra zero), i format cu cifre de la 0 la 7;

o constant hexazecimal, precedat de 0x sau 0X (cifra 0 i litera x) i cifre


hexazecimale (includ literele de la A la F i de la a la f cu valori de la 10 la 15);

o constant zecimal (n orice alt caz).

31

/* 31 format zecimal */

037

/* 31 format octal */

0x1f

/* 31 format hexazecimal */

0X1F

/* 31 format hexazecimal */

b) Constant cu tip explicit


Este o constant ntreag urmat de literele l, L, u sau U:
-

o constant ntreag (zecimal, octal sau hexazecimal) urmat imediat de


litera l sau L este o constant lung. Aceasta va fi memorat n calculator
pe 4 bytes;

o constant ntreag zecimal urmat imediat de litera u sau U este o


constant de tip ntreg fr semn. Litera u sau U poate fi precedat de
litera l sau L.

13

NOTIE

ELEMENTELE LIMBAJELOR C/C++

NOTIE

123L

/* 123 lung, pe 4 bytes*/

123u

/* 123 fara semn, pe 2 bytes */

LECIA 3

c) Constanta flotant
Const dintr-o parte ntreag, un punct zecimal, o parte fracionar, litera e sau
E i opional, un exponent care este un ntreg cu semn. Partea ntreag i partea
fracionar sunt constituite din cte o succesiune de cifre.

123.456e7

/* 1234560000.0 */

0.12e3

/* 120.0 */

235.5e-2

/* 2.355 */

d) Constanta caracter
Const dintr-un singur caracter scris ntre apostrofuri, de exemplu 'x'.
Valoarea unei constante caracter este valoarea numeric a caracterului, n setul de
caractere al calculatorului (de exemplu codul ASCII).
Caracterul 0 (zero), are valoarea 48 n zecimal, diferit de valoarea
numeric zero.
'0'

4.8.

/* caracterul 0 are valoarea 48 */

IRURI CONSTANTE
Un ir este o succesiune de caractere scrise ntre ghilimele.
Ghilimelele nu fac parte din ir. Ele servesc numai pentru
delimitarea irului.

irul constant este neles de compilator ca fiind un singur atom lexical i


este tratat diferit fa de constantele de tip caracter. De exemplu, "a" nu este
totuna cu caracterul 'a'.
Ghilimeaua, ", reprezint un singur caracter (nu dou apostrofuri). Dac
dorim s apar ntr-un ir constant, atunci ea trebuie precedat de caracterul \
(backslash). Dac dorim ca ntr-un ir s apar \, atunci trebuie s fie precedat tot
cu \ (devenind astfel \\).
Dou iruri constante care sunt separate doar printr-un spaiu vor fi
concatenate de compilator ntr-unul singur.

14

LECIA 3

ELEMENTELE LIMBAJELOR C/C++

"sir text"
""
"

/* sirul vid */
"

/* sir de spatii */

" un sir ce contine ghilimea \" "


" un sir ce contine backslash \\ "
abc" "def"

4.9.

/* echivalent cu "abcdef" */

OPERATORI

Limbajul C prezint un numr mare de operatori care pot fi clasificai dup


diverse criterii:
- operatori unari, binari i ternari,
- operatori aritmetici, logici, relaionali
- operatori pe bii etc.
Operatorii sunt caracterizai prin nivele de prioritate sau preceden (ordinea
efecturii operaiilor).
Clasele de operatori care corespund la diferite nivele de prioritate se
prezint detaliat ntr-un capitol separat.

4.10. SEPARATORI
Un separator este un caracter sau un ir de caractere care separ
unitile lexicale ntr-un program.

Separatorul cel mai frecvent este spaiul alb (blanc) care conine unul sau
mai multe spaii, tab-uri, newline-uri sau comentarii. Aceste construcii sunt
eliminate n faza de analiz lexical a compilrii.
Ali separatori admii n limbajul C sunt:
-

( ) Parantezele mici ncadreaz lista de argumente ale unei funcii sau


delimiteaz anumite pri n cadrul expresiilor aritmetice etc.;

{}
Acoladele ncadreaz blocurile, care sunt constituie din instruciuni, linii de
program etc. sau sunt corp de funcii;

[]
Parantezele mari ncadreaz dimensiunile de masiv sau indicii elementelor
de masiv (variabile indexate);

""

Ghilimelele ncadreaz un ir de caractere;

''

Apostrofurile ncadreaz un singur caracter sau o secven de evitare;

Punct i virgula termin o instruciune;

/*

Slash asterisc nceput de comentariu;

*/

Asterisc slash sfrit de comentariu.

15

NOTIE

NOTIE

ELEMENTELE LIMBAJELOR C/C++

LECIA 3

5. MEDIUL DE PROGRAMARE
Exemplele de programe surs din acest curs sunt testate n mediul de
programare Visual C++ 2008 Express Edition , al firmei Microsoft.
Prezentarea elementelor eseniale ale limbajului nu implic (pentru
simplitate) utilizarea de la nceput interfeelor Windows, majoritatea programelor
rulate fiind n modul consol (CLR Console Application).
Pentru realizarea unei aplicaii pe lng fiierul surs .cpp mai sunt necesare
alte informaii stocate n fiiere antet, biblioteci etc. Acestea mpreun formeaz un
proiect (project).
Un proiect nou de tip CLR Console Application se ncepe prin secvena de
comenzi din meniu:

File  New  Project  CLR  CLR Console Application


La deschiderea unui nou proiect (project), mediul IDE (Integrated
Developement Environment) pentru editarea, compilarea, editarea legturilor i
rularea programelor de tip Console Application are urmtorul aspect:

Din acest model de start, este obligatoriu s se pstreze directiva #include


"stdafx.h", necesar programelor rulate n modul consol i eventual instruciunea
return 0, care precizeaz valoarea returnat de funcia main() la terminarea
programului.
Se terg argumentele funciei main() array<System::String ^> ^args,
Console::WriteLine(L"Hello
linia using namespace System; i linia
World");

16

LECIA 3

ELEMENTELE LIMBAJELOR C/C++

Proiectul modificat n acest se salveaz numele p00 i va fi folosit machet


de start pentru toate exemplele urmtoare.
// p01.cpp : main project file.
#include "stdafx.h"
#include <stdio.h>
int main()
{
// linii de program de introdus
return 0;
}
Cu aceste precizri primul program n C++, realizat n mediul Visual C++
Express Edition 2008 are urmtoarea form:
// p01.cpp : main project file.
#include "stdafx.h"
#include <stdio.h>
int main()
{
printf("\n Program in C. \n");
return 0;
}

Un program pentru calculator (o aplicaie software) este rezultatul unor


activiti de analiz i de programare. Etapele necesare elaborrii unui program
executabil sunt: formularea problemei, descrierea algoritmului de rezolvare,
ntocmirea programului surs, compilarea i editarea legturilor.
Limbajul de programare C este un limbaj structurat, n care componenta de
baz este funcia. Un program este constituit dintr-o mulime de funcii grupate n
module program. Orice program surs n C trebuie s conin o funcie principal
main(), care este apelat de sistemul de operare cnd programul este lansat n
execuie.
O variabil reprezint o zon din memorie intern, referit printr-un

identificator de variabil (nume), n care se va stoca sau modifica datele utile


programului, pe parcursul execuiei acestuia.
Limbajul C a fost prevzut cu urmtoarele tipuri fundamentale de date: int,
numere ntregi; float, pentru numere zecimale , calcul n virgul mobil; char, codul
unui caracter sau un numr ntreg reprezentat pe un byte.

17

NOTIE

ELEMENTELE LIMBAJELOR C/C++

NOTIE

LECIA 3

O modalitate simpl de citire/scriere a valorilor variabilelor utilizate de un


program C++ sunt procesele (fluxurile de intrare/ieire) cin, respectiv cout, care
sunt coninute n biblioteca limbajului numit iostream.h.
Iniializarea variabilelor se poate face printr-o operaie de atribuire sau la
declararea variabilei prin iniializatorii explicii, plasai dup numele variabilei,
separai de acesta prin semnul egal.
n programarea structurat, prelucrrile i datele sunt separate. Programul
const din proceduri (subprograme sau funcii) i structurile de date asupra crora
opereaz acestea.
Blocul constituie un ansamblu de linii de program, bine delimitate,
executate secvenial. Posed calitatea de a masca de exterior variabilele definite n
interiorul blocului, numite i variabile locale.
Datele sunt grupate n colecii de tipuri simple: ntregi, reale, caractere etc..
Programatorul are posibilitatea s defineasc structuri de date, compuse din mai
multe tipuri simple.
Un limbaj de programare are un alfabet i reguli pentru scrierea programelor
corecte folosind semne de punctuaie. Aceste reguli formeaz sintaxa limbajului C.
Compilatorul mparte mulimea caracterelor din programul surs n atomi
lexicali, care reprezint vocabularul de baz al limbajului.
n ANSI C (ANSI = American National Standards Institute) sunt ase tipuri
de atomi lexicali, care se mai numesc i elemente lexicale sau uniti lexicale: 1.
cuvinte rezervate (sau cuvinte cheie); 2. identificatori; 3. constante; 4. iruri
constante; 5. operatori; 6. semne de punctuaie.

Completai cu explicaii succinte semnificaia termenilor, expresiilor sau funciilor din


tabelul urmtor.
program surs

fiier cu linii de text, care conine transpunerea algoritmului ntr-un


limbaj de programare oarecare

compilare
fiier obiect
editare de
legturi
ANSI C
variabila
int
float
char
programare
structurat

18

LECIA 3

ELEMENTELE LIMBAJELOR C/C++

atomi lexicali
/*..*/
//
cuvinte cheie
101L
-23.5e-2
0X1F
separatori
main()
#include
printf()
stdio.h
stdafx.h

TC1. Activiti
(coninute n fiierul Activiti 03)

Intrai pe platforma de e-learning MOODLE,


HTTP://DISTANCE.IDUORADEA.RO,

cursul Programarea calculatorului II

Deschidei i citii coninutul documentului Activiti 03.

Efectuai activitile incluse i rezolvai problemele propuse.

TC2. Completai i reinei semnificaia termenilor din Glosar de termeni.


TC3. Efectuai Testul on-line pentru Lecia 03.

1. Aaron MillerandJerry Lee Ford, Jr., Microsoft Visual C++ 2005 Express Edition
Programming for the Absolute Beginner, Course Technology, 2006.
2. Ana ntuneric, .a., Informatic. Teste gril C/C++, Editura Polirom, Iai, 2003.
3. Brian Overland, C++: Ghid pentru nceptori, Editura Corint, Bucureti, 2008.
4. Cerchez, Emanuela, erban, Marinel, Programarea n limbajul C/C++ pentru liceu,
Editura Polirom, Iai, 2005.
5. Ivor Hortons, Beginning Visual C++ 2005, Published by Wiley Publishing, Inc.,
2006.

19

NOTIE

NOTIE

LECIA 3

ELEMENTELE LIMBAJELOR C/C++


6. Jeff Kent, C++ fr mistere.
EDUCATIONAL, Bucureti, 2007.

Ghid

pentru

autodidaci,

Editura

ROSETI

7. Kris Jamsa, Lars Klander, Totul despre C i C++. Manual fundamental de


programare n C i C++, Editura Teora, Bucureti, 2004.
8. Loudon, Kyle, C++ poket guide, Editura ALL, Bucureti, 2006.
9. Pele, Alexandru-Viorel, Cursurile i aplicaiile
http://distance.uoradea.ro, cheie pc2, 2009.
10. ***, Microsoft Visual C++ 2008 Express Edition Online Help
11. ***, Surse Internet

20

pentru

laborator,

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