Documente Academic
Documente Profesional
Documente Cultură
problemei.
3. VARIABILE
Noiunea de variabil. Tipuri de variabile. Declararea i utilizarea
variabilelor. Iniializarea variabilelor.
5. MEDIUL DE PROGRAMARE
NOTIE
LECIA 3
a) Formularea problemei
-
LECIA 3
NOTIE
compilare
debbuger
faciliti de
debugger.
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.
main()
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.
printf()
#include <stdio.h>
//(1)
main()
//(2)
//(3)
//(4)
//(5)
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.
3.
Program in C.
#include <stdio.h>
LECIA 3
2.
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.
stdio.h
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
3. VARIABILE
3.1.
NOIUNEA DE VARIABIL
identificator
NOTIE
LECIA 3
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
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
3.3.
LECIA 3
NOTIE
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
cin/cout
2.
3.
stdafx.h
<iostream>
NOTIE
LECIA 3
namespace std
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.
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).
float x, y;
x = 1.0;
y = 2.0;
cout<<"Suma dintre x si y este ";
cout<<x+y;
cout<<endl;
...
8
LECIA 3
NOTIE
Pe ecran se va afia:
Suma dintre x si y este 3
Press any key to continue . . .
3.4.
INIIALIZAREA VARIABILELOR
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
...
Aceeai variabil nu se poate iniializa cu dou valori, dect n cazul n care se renun la
valoarea anterioar, cu care a fost iniializat.
ISTORIC
a) Apariia limbajului
garbage
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
b) Caracteristici
Poate fi considerat simultan i un limbaj de nivel nalt i un limbaj de nivel
sczut pentru c:
-
permite trecerea cu uurin la programarea Web: Java, C#, PHP, Pearl etc.
4.2.
ATOMII LEXICALI
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
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
4.4.
COMENTARII
Comentariile sunt iruri de caractere cuprinse ntre delimitatorii
/* i */. Comentariile nu reprezint atomi lexicali.
11
NOTIE
LECIA 3
NOTIE
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
huge
interrupt
near
pascal
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.).
12
LECIA 3
/* sunt identificatori */
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:
-
31
/* 31 format zecimal */
037
/* 31 format octal */
0x1f
/* 31 format hexazecimal */
0X1F
/* 31 format hexazecimal */
13
NOTIE
NOTIE
123L
123u
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.
IRURI CONSTANTE
Un ir este o succesiune de caractere scrise ntre ghilimele.
Ghilimelele nu fac parte din ir. Ele servesc numai pentru
delimitarea irului.
14
LECIA 3
"sir text"
""
"
/* sirul vid */
"
/* sir de spatii */
4.9.
/* echivalent cu "abcdef" */
OPERATORI
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:
-
{}
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);
""
''
/*
*/
15
NOTIE
NOTIE
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:
16
LECIA 3
17
NOTIE
NOTIE
LECIA 3
compilare
fiier obiect
editare de
legturi
ANSI C
variabila
int
float
char
programare
structurat
18
LECIA 3
atomi lexicali
/*..*/
//
cuvinte cheie
101L
-23.5e-2
0X1F
separatori
main()
#include
printf()
stdio.h
stdafx.h
TC1. Activiti
(coninute n fiierul Activiti 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
Ghid
pentru
autodidaci,
Editura
ROSETI
20
pentru
laborator,