curs02

19
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

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