curs02
-
Upload
moisi-ionut -
Category
Documents
-
view
2 -
download
0
Transcript of curs02
1
Scopul cursului
CAP.2. Introducere în programarea în limbajului C
2.1. Componentele unui program C
2.2. Un simplu program în C
2.3. Declararea variabilelor şi asignarea valorilor
2.4. Introducerea numerelor de la tastatură
2.5. Introducerea caracterelor
2.6. Operatori aritmetici
2.7. Adăugarea comentariilor la un program
Programarea calculatoarelor I -Gyorodi Cornelia
2
Principiile limbajului C
Programele C conţin una sau mai multe funcţii
Toate instrucţiunile se termină cu ;.
C nu recunoaşte sfârşitul liniei ca terminator.
function_name ( )
{
secvenţa instrucţiunilor
}
Limbajul C recunoaşte deosebirile dintre literemari şi litere mici.
Programarea calculatoarelor I -Gyorodi Cornelia
3
Componentele unui program C
Funcţia main ( ) este funcţia cu care începe execuţia programului.
O componentă comună celor mai multe programe C sunt fişierele header.Aceste fişiere header pot fi adăugate programului folosind directivapreprocesor # include.
Un exemplu de program C:
# include <stdio.h>
int main ( )
{
printf ("Acesta este un scurt program C ");
}
unde:
printf( ) este funcţie de bibliotecă care afişează pe ecran caracterele caresunt cuprinse între ghilimele.
Programarea calculatoarelor I -Gyorodi Cornelia
Componentele unui program C
Comentarii: Textele despartite prin/* si*/ sunt ignorate
Folosite pentru a descrie un program
#include <stdio.h>
Directiva preprocesor
Spune calculatorului sa incarce continutul unui anumit fisier
<stdio.h> permite operatii intrare iesire
standard
4Programarea calculatoarelor I -
Gyorodi Cornelia
Un program C simplu:Tiparirea unei linii de text
# include <stdio.h>
int main ( )
{
printf (“Welcome to C!\n ");
return 0;
}
int main()
Programele C++ contin una sau multe functii, dintre care una trebuie sa fie functia main
Parantezele sunt folosite pentru a indica o functie
int inseamna ca main “returneaza" o valoare de tip intreg
Acoladele ({ si }) indica un bloc
Corpurile tuturor functiilor trebuie sa fie incluse intre acolade
5Programarea calculatoarelor I -
Gyorodi Cornelia
Un program C simplu:Tiparirea unei linii de text
printf( "Welcome to C!\n" );
Instruieste calculatorul sa realizeze o acțiune
Mai exact, afișează șirul de caractere inclus între ghilimele (“ ”)
Linia intreaga este numita instrucțiune
Toate instrucțiunile trebuie să se termine cu caracterul (;)
Caracterul escape (\)
Indică faptul ca printf trebuie sa realizeze ceva neobisnuit
\n este caracterul pentru trecerea la linie nouă
6Programarea calculatoarelor I -
Gyorodi Cornelia
Un program C simplu:Tiparirea unei linii de text
return 0;
O modalitate de a ieși dintr-o funcție
return 0, in acest caz, semnifică faptul că funcția s-a terminat
normal
Acolada dreapta }
Indica faptul că s-a ajuns la sfarșitul funcției main
Linker-ul
Cand o funcție este apelată, linker-ul o localizează automat în librărie
O insereaza in programul obiect
Dacă se greseste numele unei functii, linker-ul va genera o eroare deoarece nu va putea găsi funcția în librărie
7Programarea calculatoarelor I -
Gyorodi Cornelia
8
Declararea variabilelor şi asignarea valorilor
O variabilă este o locaţie de memorie căreia i s-a atribuit un nume şi care poate conţine diferite valori.
Cele 5 tipuri de date suportate de limbajul C sunt: caracter - char
întreg - int
virgulă flotantă - float
dublă precizie - double
vid - void
Pentru a declara o variabilă se foloseşte următoarea formă generală: type var_nume;
Exemplu:
int x, y; /* declararea variabilelor x şi y de tip întreg*/
Forma generală a unei instrucţiuni de asignare (atribuire) este: var_nume = valoare;
De exemplu:
x = 100;
Programarea calculatoarelor I -Gyorodi Cornelia
9
Introducerea numerelor de la tastatură
Introducerea valorilor numerice de la tastatură se facecu funcţia scanf( ).
scanf ("%specif_format", &var_nume);
unde:
%specif_format - este specificatorul de format, care determină cum va fitratat al doilea argument.
Specificatorii de format sunt: %c – pentru caracter
%f - pentru float şi double
%d - pentru întreg.
De exemplu:
scanf(“%d“, &x);
printf ("Afisam numarul %d ", x);
Programarea calculatoarelor I -Gyorodi Cornelia
Funcția scanf()
scanf( "%d", &integer1 );
Obtine o valoare de la utilizator
scanf foloseste intrarea standard (de obicei tastatura)
Aceasta instructiune scanf are doua argumente
%d – indica faptul ca e vorba de un numar intreg
&integer1 – locatia din memorie unde se stocheaza
variabila
& este confuz pentru inceput – momentan, doar tineti minte ca trebuie sa il includeti in instructiunile scanf
Cand se executa programul, utilizatorul raspunde la comanda scanf scriind un numar si apoi tastand ENTER
10Programarea calculatoarelor I -
Gyorodi Cornelia
Program de adunare a două numere întregi
11
1 /* Fig. 2.5: fig02_05.c
2 Addition program */3 #include <stdio.h>45 int main()6 {7 int integer1, integer2, sum;
/* declaration */89 printf( "Enter first integer\n" );
/* prompt */10 scanf( "%d", &integer1 );
/* read an integer */11 printf( "Enter second”);
integer\n" ); /* prompt */12 scanf( "%d", &integer2 );
/* read an integer */13 sum = integer1 + integer2;
/* assignment of sum */14 printf( "Sum is %d\n", sum );
/* print sum */1516 return 0; 17 } Programarea calculatoarelor I -
Gyorodi Cornelia
Program de adunare a două numere întregi
int integer1, integer2, sum;
Declararea variabilelor
Variabile: Locatii din memorie unde pot fi stocate date
int inseamna variabile care stocheaza nr intregi (-1, 3, 0, 47)
Nume de variabile (identificatori)
integer1, integer2, sum
Identificatori: litere, cifre (nu pot sa inceapa cu o cifra) si linii de subliniere ( _ )
Tine cont de litere mari si mici
Declaratiile apar inaintea sectiunilor executabile
Daca o sectiune executabila refera o variabila nedeclarata, se va produce o eroare de sintaxa (de compilator)
12Programarea calculatoarelor I -
Gyorodi Cornelia
Program de adunare a două numere întregi
scanf( "%d", &integer1 );
Obtine o valoare de la utilizator
scanf foloseste intrarea standard (de obicei tastatura)
Aceasta instructiune scanf are doua argumente
%d – indica faptul ca e vorba de un numar intreg
&integer1 – locatia din memorie unde se stocheaza
variabila
& este confuz pentru inceput – momentan, doar tineti minte ca trebuie sa il includeti in instructiunile scanf
Cand se executa programul, utilizatorul raspunde la comanda scanf scriind un numar si apoi tastand ENTER
13Programarea calculatoarelor I - Gyorodi Cornelia
Program de adunare a două numere întregi
= (operatorul de atribuire)
Atribuie o valoare unei variabile
E un operator binar (are doi operanzi)
sum = variable1 + variable2;
sum primeste valoarea variable1 + variable2;
Variabila primeste valoarea in partea stanga
printf( "Sum is %d\n", sum );
Similar cu scanf
%d inseamna ca va fi tiparit un intreg
sum specifica ce intreg va fi tiparit
Se pot efectua calcule in interiorul instructiunii printf
printf( "Sum is %d\n", integer1 + integer2 );
14Programarea calculatoarelor I - Gyorodi Cornelia
Concepte legate de memorie
Variabile
Numele variabilelor corespund cu locatii din memoria calculatorului
Fiecare variabila are un nume, tip, dimensiune si valoare
De fiecare data cand o noua valoare este atribuita unei variabile(prin scanf, de exemplu), vechea valoare este inlocuita,
distrusa
Citirea variabilelor din memorie nu le altereaza
O reprezentare vizuala
15
integer1 45
Programarea calculatoarelor I -Gyorodi Cornelia
Operatori aritmetici
Programarea calculatoarelor I -Gyorodi Cornelia 16
Operatia C
Operator
aritmetic
Expresia
algebrica
Expresie C
Adunare + f + 7 f + 7
Scadere - p – c p - c
Inmultire * bm b * m
Impartire / x / y x / y
Modulo % r mod s r % s
Regulile precedenței operatorilor
Programarea calculatoarelor I -Gyorodi Cornelia 17
Operatori Operatii Ordinea evaluarii
() Parenteze Evaluata prima data. Daca parantezele sunt imbricate,
expresia cea mai din interior este evaluata prima data.
Daca sunt mai multe perechi de paranteze “pe acelasi
nivel” (i.e., neimbricate), sunt evaluate de la stanga la
dreapta.
*, /, sau % Inmultire,
impartire, rest Evaluate al doilea. Daca sunt mai multe, sunt evaluate de la
stanga la dreapta
+ sau - Adunare
Scadere
Evaluate ultima data. Daca sunt mai multe, sunt evaluate
de la stanga la dreapta.
Operatorii de egalitate sau relaționali
Programarea calculatoarelor I -Gyorodi Cornelia 18
Operatori de egalitate
sau relationali standard
Operatori de
egalitate sau
relationali din
C
Exemple de
conditii C
Descriere
Operatori de egalitate
= == x == y x este egal cu y
not = != x != y x este diferit de y
Operatori relationali
> > x > y x mai mare decat y
< < x < y x mai mic decat y
>= >= x >= y x mai mare sau
egal decat y
<= <= x <= y x mai mic sau egal
decat y
19
Introducerea caracterelor
Exemplu:
# include <stdio.h>
main( )
{
char ch;
ch = getchar(); /*citeste un caracter */
printf ("A fost tastat caracterul : %c", ch);
}
Introducerea unui caracter de la tastatură se realizează prin apelulfuncţiei de bibliotecă getchar().
Programarea calculatoarelor I -Gyorodi Cornelia