Documente Academic
Documente Profesional
Documente Cultură
2. Citirea de la tastatur Pentru citirea datelor de la tastatur se utilizeaz funcia int scanf(format, adresa <ar_1, adresa <ar_2,...., adresa <ar_n); &uncia scanf returneaz o valoare ntreag reprezent$nd numrul de variabile citite corect. Parametrul format conine o list de specificatori de format, care indic tipul variabilelor citite. Adresa unei variabile poate fi accesat utiliz$nd operatorul de refereniere '. Prototipul funciei scanf se gsete de asemenea n fiierul antet stdio.h Exemplu: #itirea unei variabile reale pe ( octei i a unei variabile ntregi:
#include<stdio.h> <oid main() dou1le a; int n; scanf(=$lf $d>, ?a, ?n );
ista principalilor speci!icatori de !rormat )n continuare sunt listai principalii specificatori de format. Pentru informaii suplimentare i ali specificatori vezi curs. Speci!icator "d "u "f "lf "-f "e sau "0 "x Semni!icaie *ariabil de tip ntreg pe + octei (int *ariabil de tip unsigned int *ariabil real pe , octei (float *ariabil ral pe ( octei (double *ariabil real pe ./ octei *ariabil real n form exponenial (pe , octei *ariabil ntreag n form 1exazecimal (baza ., n care pentru cifrele 1exazecimale ./, .., .2, .3, .+ se folosesc literele mici a, b, c, d, e #a i "x dar se folosesc literele mari n loc de cele mici
"4
"c "s
*ariabil de tip caracter (c1ar (inclusiv spaii albe *ariabil de tip ir de caractere
"#ser$aii% Prin utilizarea unui numr dup semnul " n specificatorul de format la afiarea cu printf se poate indica numrul minim n de caractere pe care se realizeaz afiarea. 5ac numrul de caractere necesare pentru afiarea valorii expresiei este mai mic dec$t n, se completeaz restul de caractere cu spaii albe. 6odul de aliniere este implicit la dreapta. Exemplu: printf(=@umerele $5d,$5d,$5d>,a,1,c);
*ariabilele a,1,c de tip ntreg vor fi afiate pe minim + caractere. 5ac se dorete afiarea unei variabile reale cu un anumit numr de zecimale, se utilizeaz pentru aceasta dup " un numr real a crui parte zecimal indic numrul de zecimale afiate (precizia . 5ac numrul de zecimale al variabilei afiate este mai mare dec$t precizia, atunci numrul afiat se rotun7ete. Exemplu: printf(=@umarul real $+.5f>,x); *ariabila x va fi afiat pe minim 8 caractere cu exact + zecimale. Pentru alinierea la st$nga a variabilelor afiate, se insereaz n specificatorul de format, imediat dup semnul " caracterul 9. Exemplu: printf(=@umarul xA$B(.2lf>,x); Pentru trecerea la urmtorul r$nd se folosete n irul de caractere %n Pentru introducerea caraterului tab se folosete %t
/* exemplu scanf */ #include <stdio.h> int main () char str CD,E; int i;
printf (!7nter Four familF name# !); scanf (!$s!,str); printf (!7nter Four a/e# !); scanf (!$d!,?i); printf (!Gr. $s , $d Fears old.%n!,str,i); printf (!7nter a hexadecimal num1er# !); scanf (!$x!,?i); printf (!Hou ha<e entered $#x ($d).%n!,i,i); return ,; ;
&atrice
'e!iniie : matrice este un tablou bidimensional cu m linii i n coloane. 5ac A este o matrice, A;i<;j< reprezint elementul de pe linia i i coloana j.
a // a ./ A= a m9.,/
a /. a .. a m9.,.
: matrice ptratic este o matrice cu acelai numr de coloane i linii (deci m = n . 5iagonala principal a unei matrice ptratice este format din elementele A;i<;i<, i= /, n 9 . > 5iagonala secundar a unei matrice ptratice este format din elementele A;i<;n9i9.<, i= /, n 9 . >
5iagonala principal:
a // a n ., / a /,n . a n .,n .
5iagonala secundar:
a // a n ., / a /,n . a n .,n .
'eclararea unui ta#lou Pentru a declara un tablou avem urmtoarele forme generale:
tip numeCdim1ECdim2E;
Exemplu%
int matriceC2,EC2,E;
Parcurgerea matricilor &ie matricea mat;<;< de dimensiuni m, n (m linii, n coloane . Putem parcurge elementele matricii n dou moduri: (a parcurg pe r$nd fiecare linie (parcurgerea pe linii , (b parcurg pe r$nd fiecare coloan.
Acest bloc for afieaz pe ecran elementele matricei sub form de tablou bidimensional. Parcurgerea matricilor ptratice. #onsider m = n, artunci mat;<;< este matrice ptratic . (a Parcurgerea elementelor de pe diagonala principal:
for (iA,;i<n;i66) instrucKiuni folosind elementul matCiECiE;
for (iA,;i<n;i66) for (IAi61;I<n;I66) printf(=$d>,aCiECIE); (d Parcurgerea elementelor de sub diagonala principal (fr elementele diagonalei :
a // a n ., /
a /,n . a n .,n .
for(iA,;i<nB1;i66) for(IA,;I< nBiB1;I66) printf(=$d>,aCiECIE); (f Parcurgerea elementelor de sub diagonala secundar (fr elementele diagonalei :
a // a n ., /
a /,n . a n .,n .
(ema
1. #itii o variabil de tip int i verificai ce se nt$mpl dac se afiaz utiliz$nd diferii specificatori de format ("d, "f, "lf, "c, "x . *erificai acelai lucru i pentru o variabil de tip dou1le utiliz$nd specificatorii de format ("f, "lf, "d, "e . 2. ? se citeasc de la tastatur o variabil de tip dou1le. ? se verifice dac valoarea citit are partea real nul (este de fapt o valoare ntreag . 3. ? se afieze codul A?#@@ pentru litere i cifre. (:bservaie: codul A?#@@ asociaz fiecrui caracter un numr ntreg. Pentru literele alfabetului codurile A?#@@ sunt consecutiveA . Preferabil afiare frumoas sub form de tablou. +. ? se citeasc un ir de litere i s se ordoneze n ordine lexicografic (de la BaC la BzC 5. ?e citete un ir de variabile de tip char. ? se afieze c$te dintre ele sunt litere. ,. ? se citeasc un numr de cel puin , cifre i s se afieze media aritmetic a cifrelor sale cu o precizie de + zecimale. 7. ? se afieze primele n numere (divizibile cu 3 , c$te cinci pe linie. )ntre dou cifre pe aceeai linie s fie un tab, iar numerele s fie afiate pe minim + caractere. (. ? se citeasc o matrice de valori reale. ? se calculeze media aritmetic a elementelor nenule de pe diagonala principal i s se afieze n form exponenial. D. ? se calculeze maximele pe linii dintr9o matrice de ntregi i s se afieze aceste maxime pe o linie, pe minim + caractere, desprite prin tab9uri.