Sunteți pe pagina 1din 8

Universitatea “Politehnica” din Bucureşti

Facultatea de Electronică, TelecomunicaŃii şi


Tehnologia InformaŃiei
Cuprins

Programarea Calculatoarelor
(limbajul C) 4.1. Operatori şi modul de evaluare al expresiilor

4.2. InstrucŃiuni de scriere şi citire


Curs 4 – Operatori şi Modul de
Evaluare al Expresiilor

Ş.l. Bogdan IONESCU


Prof. Dragoş BURILEANU
Prof. Claudius DAN

2
2010-2011 Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 1/44

Operatorii folosiŃi în limbajul C

> Am vorbit până acum de variabile şi constante, precum şi


de tipuri de date, dar cum ne folosim de valorile acestora
pentru efectuarea anumitor calcule ?
4.1. Operatori şi modul de evaluare al  pe baza operatorilor
expresiilor
> În limbajul C, spre deosebire de alte limbaje de programare
în care operatorii sunt definiŃi folosind cuvinte cheie, operatorii
sunt definiŃi folosind simboluri ce nu fac parte din alfabet, dar
care sunt disponibile pe orice tip de tastatură.

 acest lucru face ca limbajul C să fie mai compact,


precum şi mai accesibil pentru toate limbile.

Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 2/44 Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 3/44

Operatorii folosiŃi în limbajul C (continuare) Operatorii folosiŃi în limbajul C (continuare)


> Limbajul C propune următorii operatori: A. Operatorul de atribuire
A. operatorul de atribuire, > În limbajul C atribuirea unei valori unei variabile se face
B. operatori aritmetici, folosind “=”.
C. operatori de atribuire mixtă, Exemplu: a = 3; a ia valoarea 3
D. operatori de incrementare şi decrementare, a = b;
 a ia valoarea lui b
E. operatori relaŃionali, B. Operatorii aritmetici
F. operatori logici,
• operatori clasici: “+” (adunare), “-” (scădere),
G. operatorul virgulă,
“*” (înmulŃire) şi “/” (împărŃire),
H. operatori de lucru cu biŃi,
• operatorul modulo: “%” (restul împărŃirii întregi, doar
I. operatorul de forŃare a tipului, pentru numere întregi)
Exemplu: 5 % 3 = 2
J. operatorul sizeof(),
3%1= 0

Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 4/44 Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 5/44
Operatorii folosiŃi în limbajul C (continuare) Operatorii folosiŃi în limbajul C (continuare)

B. Operatorii aritmetici (continuare) C. Operatorii de atribuire mixtă


• împărŃirea întreagă: “/” (acelaşi operator de împărŃire) > Există o modalitate de scriere prescurtată a operaŃiilor de
Cum se specifică că este vorba de o împărŃire întreagă ? atribuire pentru a facilita utilizarea lor directă în alte expresii.

dacă numerele sunt întregi  Formă generală: +, -, *, /, %


Exemplu: 13 / 3 = 4
împărŃire întreagă, <variabilă> <operator> = <expresie>
13.0 / 3 = 4.33 dacă un număr este real 
împărŃire reală. Rezultat:
Exemple: <variabilă> = <variabilă> <operator> <expresie>
... x=7.00 ... y=0.7 Exemple: i+=3;  i=i+3;
float x; float x=3.5,y;
x=23/3; ??? y=x/5; ??? x*=y+2;  x=x*(y+2);
... ... a%=14;  a=a%14;

7 8
Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 6/44 Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 7/44

Operatorii folosiŃi în limbajul C (continuare) Operatorii folosiŃi în limbajul C (continuare)


D. Operatorii de incrementare şi decrementare E. Operatorii relaŃionali
> Aceştia sunt: “++” şi respectiv “--”. > În limbajul C se folosesc următorii operatori relaŃionali:
y++; este echivalentul scrierii y=y+1; • operatori clasici: “>” (mai mare), “<” (mai mic),
y--; este echivalentul scrierii y=y-1; “<=” (mai mic sau egal) şi “>=” (mai mare sau egal),
> MotivaŃie: sunt mai rapizi decât executarea clasică a
• operatorul egal: “==” (în sens logic)
operaŃiei de atribuire.
Exemplu: dacă (x==y)  adevărat dacă x are valoarea y,
> Pot fi utilizati atât ca prefix cât şi ca sufix, eficientizând astfel
 fals dacă x diferit de y.
scrierea operaŃiilor (++x sau x++, --y sau y--).
Exemplu: AtenŃie: dacă (x=y)  x ia valoarea lui y

...
z=z+1;  se evaluează această valoare
x=(z-w) % 100;
x=((++z) – (w--)) % 100;
...
 w=w-1;
 dacă este diferită de 0 atunci
adevărat, altfel fals.
10
Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 8/44 Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 9/44

Operatorii folosiŃi în limbajul C (continuare) Operatorii folosiŃi în limbajul C (continuare)

E. Operatorii relaŃionali (continuare) F. Operatorii logici (continuare)

sau logic - “||”


• operatorul diferit: “!=”
0 || 0 = 0 (10>3) || (15<4) = 1 (Adevărat)
1 || 0 = 1
F. Operatorii logici 0 || 1 = 1
(3==4) || (5<4) = 0 (Fals)
1 || 1 =1
şi logic - “&&”
0 && 0 = 0 (10>3) && (15<4) = 0 (Fals) negarea - “!”
1 && 0 = 0 !(10>3) = 0 (Fals)
0 && 1 = 0 !0 = 1
(3==3) && (5>4) = 1 (Adevărat) !1 = 0
1 && 1 =1 !((3==3) && (5>4)) = 0 (Fals)

11 12
Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 10/44 Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 11/44
Operatorii folosiŃi în limbajul C (continuare) Operatorii folosiŃi în limbajul C (continuare)
G. Operatorul virgulă
F. Operatorii logici (continuare)
> Operatorul “,” este folosit pentru a separa două sau mai
EnunŃ: i este o variabilă întreagă şi c este o variabilă multe expresii ce sunt incluse într-o formulare în care de regulă
P se aşteaptă doar o expresie.
alfanumerică (caracter). Să se scrie condiŃia logică care
returnează valoarea 1 dacă i mai mic ca 10 şi c diferit de Formă generală:
‘x’, şi respectiv valoarea 0 dacă i mai mare sau egal cu (<expresie1>, ..., <expresieN>,<expresie>);
10 sau c are valoarea ‘x’:
> Se evaluează toate expresiile, dar în cazul în care se
 i>=10 returnează 0 foloseşte valoarea operatorului atunci doar ultima expresie este
 (i<10) && (c!=‘x’) returnată.
Exemplu:
 c==‘x’ returnează 0
a = (b=3, i=i+1, b+2);  b←3, i←i+1, a←b+2=5
13 14
Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 12/44 Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 13/44

Operatorii folosiŃi în limbajul C (continuare) Operatorii folosiŃi în limbajul C (continuare)

H. Operatorii de lucru cu biŃi I. Operatorul de forŃare a tipului (casting)

> Aceştia modifică variabilele pe baza modificării valorilor > Acesta permite conversia temporară a unei date de un
binare ce corespund acestora. anumit tip, într-un tip de bază ce este specificat de utilizator.

Operator Echivalent Descriere Formă generală: sau C++


& ŞI operaŃia logică ŞI pe biŃi (<tip_nou>) <expresie> <tip_nou>(<expresie>)
| SAU operaŃia logică SAU pe biŃi float(y)
float( )/4;
ex.: x=float(
Exemple:
^ SAU excl. operaŃia logică SAU excl. pe biŃi
~ negaŃie operaŃia de inversare biŃi int i; float x;
<< SHL operaŃia de shiftare pe biŃi float f=3.14; int y=9;
int) f;
i=(int) i=3 float) y/4;
x=(float) x=2.25
>> SHR operaŃia de shiftare pe biŃi

15 16
Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 14/44 Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 15/44

Operatorii folosiŃi în limbajul C (continuare) PrecedenŃa operaŃiilor

J. Operatorul sizeof() > În limbajul C toŃi operatorii au o prioritate, iar operatorii cu


prioritate mai mare sunt evaluaŃi înaintea celor cu prioritate
> Acest operator acceptă un singur parametru şi anume, fie
mai mică.
un tip de dată fie o variabilă, şi returnează dimensiunea în
bytes a acestora. > Operatorii cu aceeaşi prioritate sunt evaluaŃi de la stânga
la dreapta.
> Este necesar la alocarea dinamică a memoriei pentru a
specifica dimensiunea datelor. Exemplu: a-b-c este evaluat astfel: (a – b) - c

Exemple: corect
a=1 int i; i=8 Exemplu: a=5+7%2 este evaluat aşa? 5+(7%2)
int a;
a=sizeof(char); double a;
i=sizeof(a); sau aşa? (5+7)%2

17 18
Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 16/44 Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 17/44
PrecedenŃa operaŃiilor (continuare) PrecedenŃa operaŃiilor (continuare)
> Prioritatea operatorilor în C (de la prioritatea maximă la > Exemplu:
cea minimă): a < 10 && 2 * b < c ???

> Să vedem care sunt priorităŃile:


nivelul 6 - * (înmulŃirea)
nivelul 9 - <, > (relaŃii)
nivelul 14 - && (şi logic)

(a < 10) && ((2 * b) < c)

> În general ca să fim siguri de execuŃia corectă a operaŃiilor


este recomandat să folosim parantezele.
sursă www.cplusplus.com

19 20
Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 18/44 Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 19/44

Evaluarea expresiilor Evaluarea expresiilor (continuare)

> Din evaluarea unei expresii în C rezultă o valoare. Tipul şi > Regulile de conversie de evaluare a unei expresii ce nu
implicit valoarea rezultatului unei expresii se stabilesc pe baza implică operatorul de atribuire sunt (continuare):
unor reguli de conversie. R2. pentru toate perechile de operanzi, dacă unul dintre
operanzi este de tip long double, celălalt operand este
> Vorbim de reguli de conversie în cazul în care în expresie
convertit la long double.
apar constante, variabile şi funcŃii de tipuri diferite.
R3. dacă unul dintre operanzi este de tip double, celălalt
> Regulile de conversie de evaluare a unei expresii ce nu operand este convertit la double.
implică operatorul de atribuire sunt următoarele:
R4. dacă unul dintre operanzi este long, celălalt operand este
convertit la long.
R1. toate datele de tip char şi short int sunt convertite la int.
Toate datele de tip float sunt convertite la double. R5. dacă unul dintre operanzi este unsigned, celălalt operand
este convertit la unsigned.
21 22
Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 20/44 Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 21/44

Evaluarea expresiilor (continuare) Evaluarea expresiilor (continuare)

> Pentru operaŃia de atribuire, regula de conversie de tip este: > Exemplu:

RA. valoarea din partea dreaptă a operatorului de atribuire rezultat = (ch / i)


i) + (f * d) – (f + i);
(“=”) este convertită la tipul variabilei din partea stângă. Dacă
această conversie nu este posibilă, compilatorul va semnala o int double double
eroare. int double double
char ch;
Concluzie: întotdeauna are loc evaluarea expresiei din partea
int i; double
dreaptă aplicându-se regulile de conversie R1-R5 şi după float f;
aceea se aplică regula RA pentru operaŃia de atribuire. double d, rezultat;
double
R1  R2  R3  R4  R5  RA
double

23 24
Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 22/44 Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 23/44
InstrucŃiuni de scriere şi citire a datelor

> În această secŃiune vom discuta despre instrucŃiunile clasice


de scriere şi citire a datelor în limbajul C.
 acestea se găsesc în biblioteca <stdio.h>
4.2. InstrucŃiuni de scriere şi citire
> Vom vorbi despre:

- instrucŃiunea printf (scriere date),

- instrucŃiunea scanf (citire date).

25 26
Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 24/44 Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 25/44

InstrucŃiuni de scriere a datelor InstrucŃiuni de scriere a datelor (continuare)


InstrucŃiunea printf (continuare)
InstrucŃiunea printf
Exemplu simplu:
printf(“Acesta este un text simplu”);
> InstrucŃiunea printf scrie pe dispozitivul standard de ieşire
(stdout, de regulă ecran), o secvenŃă de date formatată.
c:\>Acesta este un text simplu
Prototipul funcŃiei:
> Modul de formatare (şirul de caractere) este specificat
int printf (const char *format, a, b, 15, ... ); între “ şi “ (precum un string),
> În cazul în care nu inserăm variabile sau constante nu se mai
format (şir de caractere) specifică după “,” se specifică foloseşte enumerarea de după “,”.
modul de afişare (formatare) variabilele sau constantele
cât şi tipul datelor afişate anunŃate în format. > Şirul de caractere furnizat este afişat întocmai (respectând
spaŃiile existente).
27 28
Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 26/44 Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 27/44

InstrucŃiuni de scriere a datelor (continuare) InstrucŃiuni de scriere a datelor (continuare)


InstrucŃiunea printf (continuare) InstrucŃiunea printf (continuare)
> Şirul de caractere specificat poate conŃine atât text cât şi %[indicatori][lăŃime][.precizie][lungime]specificator
parametri de afişare ce vor fi interpretaŃi şi substituiŃi la
• specificator: (obligatoriu) specifică tipul şi modul de afişare
afişare cu argumentele specificate după “,” (variabile, valori, ...).
a valorii argumentului.
> Modul de specificare al parametrilor de afişare este > Cei mai frecvent folosiŃi specificatori sunt:
următorul: c – tipul caracter (char)
%[indicatori][lăŃime][.precizie][lungime]specificator d sau i – tipul întreg (decimal: signed int)
[ ] înseamnă opŃional e sau E – tipul real în scrierea ştiinŃifică
3.9265e e-2 = 3.9265x10-2
• caracterul special %: specifică faptul că vrem să afişăm f – tipul real (float)
o variabilă sau constantă. Este înlocuit la afişare cu valoarea s – tipul şir de caractere (string)
argumentului corespunzător de după “,” % – se afişează caracterul rezervat ‘%’
29 30
Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 28/44 Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 29/44
InstrucŃiuni de scriere a datelor (continuare) InstrucŃiuni de scriere a datelor (continuare)
InstrucŃiunea printf (continuare) InstrucŃiunea printf (continuare)
%[indicatori][lăŃime][.precizie][lungime]specificator %[indicatori][lăŃime][.precizie][lungime]specificator
• lăŃime: (opŃional) specifică numărul minim de caractere pe • .precizie: (opŃional)
care va fi afişată valoarea argumentului. Surplusul de caractere - pentru valori întregi: specifică numărul minim de cifre
alocate nefolosite este bordat cu spaŃii. (digiŃi) cu care va fi afişată valoarea (nu trunchiază),
• indicatori: (opŃionali) specifică să zicem “detalii” de afişare: - pentru valori reale: specifică numărul de cifre
“-” - aliniere a textului la stânga pe lăŃimea specificată (digiŃi) de după virgulă (rotunjeşte),
(implicit este la dreapta) - pentru şiruri de caractere: specifică numărul maxim
de caractere ce vor fi afişate (trunchiază),
“+” - forŃează afişarea semnului chiar dacă numărul
este pozitiv, • lungime: (opŃional) specifică mai precis tipul datei:
0 - bordează numărul cu zerouri la stânga în loc de h - short int sau unsigned short int,
spaŃii dacă se specifică lăŃimea de afişare. l - long int sau unsigned long int.
31 32
Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 30/44 Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 31/44

InstrucŃiuni de scriere a datelor (continuare) InstrucŃiuni de scriere a datelor (continuare)


InstrucŃiunea printf (continuare) InstrucŃiunea printf (continuare)
Exemple: Exemple (continuare):
printf("Caractere:
printf %c %c",
%c 'a', 65); printf(“Precedat
printf de zerouri: %010d", 1977);

c:\>Caractere: a A c:\>Precedat de zerouri: 0000001977

printf(“Valori
printf intregi: %i %ld", 1977, 650000); printf(“Numere
printf reale: %4.2f %+.0e %E ", 3.1416, 3.1416, 3.1416);

c:\>Valori intregi: 1977 650000 c:\>Numere reale: 3.14 +3e+000 3.141600E+000

printf(“Precedat
printf de spatii: %10d", 1977); printf(“
printf %s”, “Un sir de caractere”);

c:\>Precedat de spatii: 1977 c:\> Un sir de caractere


33 34
Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 32/44 Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 33/44

InstrucŃiuni de scriere a datelor (continuare) InstrucŃiuni de scriere a datelor (continuare)


InstrucŃiunea printf (continuare) InstrucŃiunea printf (continuare)
> Există şi o serie de comenzi speciale de formatare: EnunŃ: folosind instrucŃiunea printf să se afişeze pe
P ecran valorile reale 3.12, 34.5, 400.0, 56.789, cu 3
\n - “new line”: la întâlnirea acestei comenzi cursorul trece pe
linie nouă (echivalent tastă Enter), zecimale, sub forma unui tablou (se foloseşte indentarea)
\t - “tab”: la întâlnirea acestei comenzi cursorul avansează SoluŃie:
un anumit număr de caractere la dreapta (echivalent tastă Tab),
printf(“Solutia este\n");
Exemplu: printf("%8.3f \t %8.3f \n", 3.12, 34.5);
int i=10; printf("%8.3f \t %8.3f", 400.0, 56.789);
float x=3.14;
%d \n x=%f
printf(“i=% %f",
%f i, x);
3.120 34.500
i=10 400.000 56.789
x=3.14
35 36
Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 34/44 Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 35/44
InstrucŃiuni de citire a datelor InstrucŃiuni de citire a datelor (continuare)
• InstrucŃiunea scanf (continuare)
• InstrucŃiunea scanf
Exemplu simplu:
- se aşteaptă introducerea de la
scanf(“%d”, &a); tastatură a unui număr întreg ce va
> InstrucŃiunea scanf permite citirea datelor de pe dispozitivul
fi stocat în variabila a.
standard de intrare (stdin, de regulă tastatură), şi le stochează
în locaŃiile de memorie specificate de utilizator (pointeri). > Modul de formatare a datelor (şirul de caractere format)
este specificat între “ şi “ (precum un string),
Prototipul funcŃiei: > După “,” urmează specificarea locaŃiei de memorie unde va
int scanf (const char *format, &a, &b, ... ); fi stocată valoarea introdusă.
desemnată
în memorie: de a (valoare)
după “,” se specifică
format (şir de caractere) specifică unde vor fi stocate datele 00110010 10110111 00000000 desemnată
tipul datelor citite. (adrese de memorie) adresă 10 adresă 11 adresă 12 de &a (adresă)

Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 36/44 Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 37/44

InstrucŃiuni de citire a datelor (continuare) InstrucŃiuni de citire a datelor (continuare)


• InstrucŃiunea scanf (continuare) • InstrucŃiunea scanf (continuare)
> Şirul de caractere format, ce specifică tipul datelor citite, > Şirul de caractere format, ce specifică tipul datelor citite,
poate conŃine următoarele informaŃii: poate conŃine următoarele informaŃii (continuare):
- spaŃii goale (“whitespace”): funcŃia va ignora toate
- specificatori de format: aceştia specifică tipul şi modul în
spaŃiile goale indiferent de cantitate (aceasta include care vor fi introduse datele:
spaŃiile, tab şi linie nouă), [ ] înseamnă opŃional
- alte caractere diferite de spaŃiu şi % : orice alt caracter %[*][lăŃime][modificatori]tipdate
ce nu este spaŃiu sau alt caracter ce face parte din
specificarea formatului datelor are ca efect: • caracterul special %: specifică faptul că vrem să citim o
 citirea de la tastatură a unui caracter, şi compararea anumită valoare de la tastatură. Aceasta este stocată la adresa
acestuia cu caracterul în cauză, specificată după “,”.
dacă ==, nu este luat în calcul şi funcŃia continuă cu
 numărul de valori = numărul de adrese.
următorul caracter din şirul format, dacă != exit.
40
Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 38/44 Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 39/44

InstrucŃiuni de citire a datelor (continuare) InstrucŃiuni de citire a datelor (continuare)


• InstrucŃiunea scanf (continuare) • InstrucŃiunea scanf (continuare)
%[*][lăŃime][modificatori]tipdate %[*][lăŃime][modificatori]tipdate
• caracterul asterix *: (opŃional) specifică faptul că datele • tipdate: (continuare) :
primite de la dispozitivul de intrare vor fi ignorate (nu vor fi
d – tip întreg cu semn (decimal integer),
stocate).
u – tip întreg fără semn (unsigned decimal integer),
• lăŃime: (opŃional) specifică numărul maxim de caractere
(alfanumerice) ce vor fi citite de la tastatură. f, e, E – tip real în forma standard sau ştiinŃifică (conversie
implicită la float),
• tipdate: (obligatoriu) specifică tipul datelor ce vor fi citite. Se s – tip şir de caractere (char *).
foloseşte aceeaşi convenŃie ca la instrucŃiunea printf:
• modificatori: (opŃional) specifică mai precis tipul datei:
c – tip caracter (char), citeşte un caracter, dacă [lăŃime]
h - short int sau unsigned short int,
diferit de 1, funcŃia citeşte N=lăŃime caractere şi le stochează
l - long int sau unsigned long int sau double pentru f,e,E.
în locaŃii succesive ale vectorului specificat ca argument.
41 42
Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 40/44 Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 41/34
InstrucŃiuni de citire a datelor (continuare) InstrucŃiuni de citire a datelor (continuare)
• InstrucŃiunea scanf (continuare) • InstrucŃiunea scanf (continuare)
Exemple: Exemple:
int x,y; int x;
scanf(“a%%d %d", &x, &y); %2d",
%2
scanf(“%2 &x);
%d, y=%
printf(“x=% %d", x, y); %d", x);
printf(“x=%

c:\> (tastăm ‘b’ enter)  ??? stop c:\> (tastăm “12345” enter)  ??? x=12
c:\> (tastăm ‘a’ enter ‘2’ enter ‘4’ enter)  ???
int a;
x=2, y=4 float y;
int x=20;
%*d",
%*
scanf(“%* &x); scanf(“% %d %f", &a, &y);
%d", x);
printf(“x=% %d, y=%f
printf(“a=% %f",
%f a,y); a=10, y=0.130000

c:\> (tastăm “33” enter)  ??? x=20 c:\> (tastăm “10” enter “13e-2” enter)  ???
43 44
Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 42/44 Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 43/44

Sfârşitul Cursului 4

45
Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 44/44

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