Codeblocks

Forma generala a unui program in C++ (Codeblocks) este: #include <iostream> program. Fisierul contine intrare/ iesire using namespace std; clase specifice P.O.O int main() principala { cout <<"Salut" << endl; return 0; //include fisierul iostream(in out stream) in // declaratiile unor functii pt. operatii de //spatiul de nume std grupeaza logic functii si //programul (functia) //inceput program //corpul programului

} //sfarsitul programului Programul de mai sus afisaza „Salut” pe ecran. In C++ este diferenta intre literele mari si mici. Ex: Void ≠void , MAIN ≠main Tipuri standard de date: 1)Tipul INTREG 100 , -100 2)Tipul REAL ex. 2.1231, -123.32, 102 LIMITE true(1) false(0) [0 , 255] [-32.768 , 32.767] [0 , 65.535] [-2.147.483.648 , 2.147.483.647] [0 , 4.294.967.295] [-2.147.483.648 , 2.147.483.647] [0 , 4.294.967.295] [-9.223.372.036.854.775.808 , 9.223.372.036.854.775.807] [0 , 18.446.744.073.709.551.615] [1.17549e-038 , 3.40282e+038] [2.22507e-308 , 1.79769e+308] [3.3621e-4932 , 1.18973e+4932]

TIP bool char short int unsigned short int int unsigned int long unsigned long long long unsigned long long float double long double

MEMORIE OCUPATA 1B 1B 2B 2B 4B 4B 4B 4B 8B 8B 4B 8B 12B

Afisarea momoriei ocupate si a limitelor datelor pentru un tip specificat se face: g << "Dimensiune int: " << sizeof(int) << endl; g << "Limite: " << numeric_limits<int>::min() << ' ' << numeric_limits<int>::max() <<endl;

Tipul char

(int) in fata unui caracter returneza codul ASCII a caracterului Ex: #include <iostream> using namespace std; char a,b,c; int main() { cout<<"dati un caracter " ; cin>>a; cout <<"caracterul citit este: " <<a<<" si are codul ASCII "<<(int)a<<endl; b=82;//82 este codul ASCII a R cout<<b<<" are codul ASCII "<<(int)b<<endl; //afiseaza caracterul cu codul ASCII 82 c=b+1; //variabila c va memora caracterul cu codul ASCII 83 adica S cout<<c<<" are codul ASCII "<<(int)c; //afiseaza caracterul cu codul ASCII 83 return 0; } VOCABULARUL Setul de caractere 1) Litere a,b,..z,A,B…Z 2) cifre 0,1,2,…9 3) caractere speciale @!#%<,.?/ etc. Identificatori - nume de costante , variabile sau functii - incep cu o litera sau cu _ urmata de litere sau cifre. Ex: a12s, as33, _007, 1a ,nt@ Cuvinte cheie - while,for,if , int cout,cin etc Comentarii // pentru un rand /* pentru mai multe randuri */ Separatori space , (virgila) ; enter Citirea ( cin ) – realizeaza citirea variabilelor de la tastatura cin>>a; //citeste variabila a de la tastatura cin>>a>>b>>x; //citeste variabilele a,b si x de la tastatura Afisarea (cout) – realizeaza afisarea pe ecran a unui mesaj si/sau a unei variabile 1)cout<<"Salut"; //afiseaza cuvantul salut pe ecran 2)cout<<s; //afiseaza cotinutul variabilei s pe ecran 3)cout<<"suma este: "<<s<<endl; //daca variabila s are valoarea 201 se afiseaza pe ecran „ suma este: 201” si apoi cursorul trece la rand nou 4)cout<<"suma este: "<<s<<endl << cout<<"produsul este: "<<p; //afiseaza suma este: 201 produsul este: 330 (pe randuri diferite din cauza lui „endl”) Atribuirea ( = ) x=2; // x primeste valoarea 2 a=a+1; //a creste cu 1 s=s+x; //s creste cu x

p=p*x; //p creste de x ori x=y; // lui x i se atribuie valoarea lui y Probleme 1.Suma a doua numere 2.Aria unui dreptunghi 3.Media aritmetica a 3 numere

Operatori in C++
a)Operatori aritmetici

+ (adunare) a+b - (scadere) a-b * (inmultire) a*b % (modulo restul impartirii 10%3 este 1, 125%10 este 5) / (impartire sau div) 1) / este „div” - atunci cand ambele numere din operatie sunt intregi
#include <iostream> using namespace std; long b , a, x; int main() { cout << "dati a si b"; cin >> a >> b; x = a / b; cout << "x=" << x << endl; return 0; } Pentru a=101 si b=20 se afiseaza 5

2) / „este impartire” - atunci cand cel putin unul din numere este real
#include <iostream> using namespace std; float b , a, x; int main() { cout << "dati a si b"; cin >> a >> b; x = a / b; cout << "x=" << x << endl; return 0; } Pentru a=101 si b=20 se afisaza 5.05 Daca avem int a; si float b; sau float a; si int b; rezultatul afisat va fi acelasi. Impartirea a doua numere intregi se face prin conversia catre un numar real cu „(float)” #include <iostream> using namespace std; int a,b; float x; int main() { cout << "dati a si b"; cin >> a >> b;

(x=22. int a.int Daca la programul anterior se face atribuirea x=a. cout << "b="<<b << endl.b--. cin >> a>>b. cout << "a="<<a << endl.35 se afiseaza 2 (a primeste doar valoarea 2 nu si 0. return 0. a=x. cout << "a=" << a << endl. int main() { cout << "dati a si b". a++.35) 2) float <.05 In C++ se pot face atribuiri de genul: 1) int <-float #include <iostream> using namespace std.00) b) Operatori relationali > (mai mare) < (se subintelege!!!) >= (mai mare si egal) <= (mai mic si egal) == (egal !!!!!!!) != (diferit) c) Operatori de incrementare/decrementare ++ (incrementare cu 1 adica creste cu 1) --(decrementare cu 1 adica scade cu 1) a++ ( explicatie: a=a+1.22 si a=100) in x se va memora 100 (adica 100. } Daca a=1000 si x=2. int main() { cout << "dati a si x". return 0. } Daca a=101 si b=20 se afisaza 5. return 0. } Pentru a=100 si b=20 se afisaza a=101 si b=19 ++a este diferit de a++ daca a este implicat intr-o operatie #include <iostream> . int a.b. cout << "x=" << x << endl. a creste cu 1) ++a (a creste cu 1) #include <iostream> using namespace std.x = a / (float)b. float x. cin >> a >> x.

s. b=++a. se afiseaza 120 (se face mai intai s=b+a si apoi se face a++) Ex 1: a=3. int main() { cout << "dati a si b". => b=4 si a=4 ex2: a=3. return 0.b. //mai intai se face ++a si apoi se face s=b+a cout << "a="<<a << endl. a=3.) *= (p=p*a  p*=a) += (s=s+a  s+=a) -= (s=s-a  s-=a) /= (x=x/10  x/=10) %= (cif=cif%10  cif%=10) &= |= ^= . cin >> a>>b. cu s=b+(a++). } Daca a=100 si b=20 se afiseaza a=101 si s=121 Daca se inlocuieste s=b+(++a).using namespace std. cout << "s="<<s << endl. => b=3 si a=4 d) Operatori logici ! not (negat) && and (si) || or (sau) Ex: a<=b && a<c (explicatie: a<=b si a<c) c!=a || c!=b (c diferit de a sau c diferit de b) !a (explicatie: not a) !(a<=b)  a>b (atentie !!!!!!!!!!!!!) !(a<b)  a>=b (atentie !!!!!!!!!!!!!) !(a!=b)  a==b (atentie !!!!!!!!!!!!!) e) Operatori de atribuire = se da (ex: a=x. s=b+(++a). b=a++. int a.

3(10)=11(2) => 1100(2) deplasat => 12(10) deci 3(10)= 12(10) Practic a<<x este a*2x a=1. b=7. cout<<(a<<3). b=7. se afisaza 5 13(10)=1101(2) 7(10)= 111(2) & 0101(2) =5(10) Operatorul sau exclusiv „^” a=13. se afiseaza 3 Operatorul sau „|” a=13. cout<<a|b. cout<<(a<<2). se afisaza 15 13(10)=1101(2) 7(10)= 111(2) | 1111(2) =15(10) Operatorul not „~” ~1101=0010 f) Operatori logici pe biti . 17(10)=10001(2) => 100(2) deplasat => 4(10) deci 17(10)= 4(10) Practic a>>x este a/2x (div) a=13.– actioneaza la nivel de bit pe numere (adica pe reprezentarea numarului in baza 2 !!!) << deplasare la stanga >> deplasare la drepta & si | sau ^ sau exclusiv ~ not a b a&b a|b a^b 0 0 0 0 0 0 1 0 1 1 1 0 0 1 1 1 1 1 1 0 ~1=0 ~0=1 Operatorul deplasare la stanga „<<” a=3. se afisaza 9 13(10)=1101(2) 7(10)= 0111(2) 1010(2) =10(10) Operatorul deplasare la dreapta „>>” a=17. se afiseaza 8 Operatorul si „&” a=13. b=7. cout<<(a>>2). cout<<(a>>3). cout<<a^b. cout<<a&b.

div sau impartire.) acestea se grupeaza intre acolade {…. * / % inmultire. == != operatori relationali egal.3. = += -= /= %= >>= <<= operatori de atribuire Instructiunea IF f.a-3. && „si” operator logic 12.Prioritatea operatorilor 1. iar daca este falsa se executa „operatie2”. +5. diferit 9. } varianta c) Explicatii: Varianta a) Daca conditia este adevarata se executa „operatie1”.a++. + a+b. || „sau” operator logic 13. Daca if-ul are mai multe operatii ( 2.. ! ~ + . * -> pointeri 4.b). < > <= >= operatori relationali 8.) acestea se grupeaza intre acolade {…. | „sau” operator logic pe biti 12.3. not pe biti. } varianta a) varianta b) if(conditie) operatie1.. mod 5. & „si” operator logic pe biti 10.a-b 6.} In C++ 0 este fals si ≠0 adevarat Tabel pentru conditii logice: 0 false 1 true . operatie2. La executia if-ului se executa „operatie1” sau „operatie2”. ( )[ ] paranteze rotunde. Varianta b) Daca if-ul sau else-ul au mai multe operatii ( 2.not logic. si daca conditia este falsa nu se face nimic. sau if(conditie) { operatii 1. >> << deplasare pe biti 7.++ -.} Varianta c) La if-ul simplificat se realizeaza executia „operatie1” daca condita este adevarata. nu se poate sa nu se execute nici una. ^ „sau exclusiv” operator logic pe biti 11. } else { operatii2 .. Nu se pot executa ambele operatii ( „operatie1” si „operatie2” ). operatii else 1.c) ) if(conditie) if(conditie) { operatie1. generala (variante a). paranteze vectori 2..-5.

Max a 5 numere #include <iostream> #include <iostream> using namespace std. if(c>=a && c>=b) cout<<"Maximul este c"<<endl.c. << endl. e. Min a doua numere #include <iostream> using namespace std. maxi=b.b. maxi=d. cout<<"maximul este:"<<maxi.d. cout<<"Max if(d>=a && d>=c && d>=b && d>=e) este:"<<maxi. maxi=c. int main() int main() { { cout << "dati 5 cout << "Dati valori pentru a.c. d. . >> e. if(b>=a && b>=c && b>=d && b>=e) if (maxi < c) maxi = c. int main() { cout <<"Dati valori pentru a si b". if (maxi < d) maxi = d. return 0. cin >> a >> b >> c >> d cin >>a>>b>>c>>d>>e. if(b>=a && b>=c) cout<<"Maximul este b"<<endl.b. cin>>a>>b.d si e" numere". if(e>=a && e>=c && e>=d && e>=b) } maxi=e.b.maxi.a F F A A b F A F A a&&b F F F A a||b F A A A Pr1. else cout << "minimul este:"<<b<<endl.b. return 0. if(a>=b && a>=c) cout<<"Maximul este a"<<endl. return 0. int main() { cout << "Dati valori pentru a. cin >>a>>b>>c. c. if(c>=a && c>=b && c>=d && c>=e) if (maxi < e) maxi = e. } Pr2. if (maxi < b) maxi = b. int a. b. if (a<b) cout << "minimul este:"<<a<<endl. maxi. int a. return 0. int a.c. b si c" << endl. Max a 3 numere #include <iostream> using namespace std. } Pr3. maxi=a. int a. if(a>=b && a>=c && a>=d && a>=e) maxi = a.e. using namespace std.

Relatia intre 3 numere(<.=) #include <iostream> using namespace std. int main() { cout << "Dati coeficientii ecuatiei a si b" << endl. cin >> a >> b >> c. if(a!=0){ d=b*b-4*a*c.b. } Pr6. int a.II #include <iostream> #include <cmath> using namespace std. x2. cout<<x<<endl. int a. b.I #include <iostream> using namespace std.b. Ec de gr. else cout<<"nu exista solutii". c. Ec de gr. if(a!=0){ x=-(float)b/a. int main() { cout << "Dati valori pentru a. d.} Pr4. b" << endl. . cout <<x1<<endl. cout<<"x1="<<x1<<endl<<"x 2="<<x2. int a. } else cout <<"nu exista solutii reale".c. } else{ if (c==b) cout<<"orice x1 e solutie a ecuatiei". cin >>a>>b. } else{ if(b!=0){ x1=-(float)c/b. else cout<<"nu exista solutie pt ecuatie". b si c" << endl.>. } else if(b==a) cout<<"orice x este solutie"<<endl. x2=(-b-sqrt(d))/(float)(a*2). if(a>b) cout<<"a >b"<<endl. }} return 0. float x1. return 0. if(d>=0){ x1=(-b+sqrt(d))/(float)(a*2). cin>>a>>b. float x. int main() { cout << "Dati valori pentru a. } Pr5.

h = h1 + h2. } if (m >= 60) { m = m . s2. m. if(a==b) cout<<"a==b"<<endl.60.if(a<b) cout<<"a<b"<<endl. s.a=c≠b. dreprunghic.60. h = h + 1. Precizati tipul triunghlui: oarecare. m1.b=c≠a Tema Inversul unui numar de 3 cifre Min 4 nr . echilateral. Fie 3 numere a.b. Fie a. Comparati doua date calendaristice Pr10.s2:" << endl. isoscel. h2. return 0.a=b≠c. m2. Pr11.a≠b≠c. return 0. int main() { cout << "Dati valori pentru h1. } cout << h << " " << m << " " << s << endl. m = m + 1. cin >> h1 >> m1 >> s1 >> h2 >> m2 >> s2. Inversul unui numar short int Pr9. precizati relatiile dintre ele: a=b=c.c laturile unui triunghi. if (s >= 60) { s = s . dreptunghic isoscel. s1. h1.h2.m1 si m2.s1.c. int h. } Pr7. s = s1 + s2. m = m1 + m2.b. } Pr8. Adunarea a doua durate de timp 9 3 13 30’ 20” (h1 m1 s1) 42’ 50” (h2 m2 s2) 13’ 10” (h m s ) + #include <iostream> using namespace std.

se afiseaza pe ecran 2 4 6 8 10 Ex2: Calculati suma s=1+2+3+…100 s=0. i++ ) { operatii1 } unde vali – valoare initiala valf – valoare finala executie: i .n.Instructiuni repetitive (for.vali+1. Probleme: 1. este:"<<p.i++) s+=i.Calculati p=2*4*6* . cin>>n.. se afiseaza pe ecran 1 2 3 4 5 .i=i+2) p*=i.i<=n.i<=n.S=2+5+8+…. for(i=1. …. } } 3.E=1/1+1/2+1/3+…+1/n //p=2*4*. cin>>n.*n #include <iostream> #include <iostream> using namespace std.i=i+3) s+=i. for(i=1. cout<<"Suma este:"<<s. return 0. Ex1: for(i=1. return 0. } 6. i++ ) operatie1 sau for( i=vali. int i.i--) cout<<i<<” ”.*n 2. se afiseaza pe ecran n n-1 .valf-1.. cin>>n.ia valorile vali. s=0. for(i=2. i<=valf.p. 3 2 1 Exista for(i=2.*n 4.i<=n.. cout<<"Produsul nr pare din sir cout<<"Suma este:"<<s. while. E=1 + 1*2 + 1*2*3 + 1*2*3*4 +… +1*2*3*.valf si pentru fiecare valoare a lui i se executa „operatie1”. int i.n. cout<<”suna este: ”<<s. cout<<"Dati n: ". for(i=2.i=i+2) cout<<i<<” ”. using namespace std. int main() { cout << "Dati un nr n:". int main() { cout<<"Dati un numar n par: ".i++) cout<<i<<” ”.i>=1.n.n Exista for(i=n..s. i<=valf. for(i=2.s. p=1.i++) s+=(float)1/i.S=23+43+63+…+n3 #include <iostream> using namespace std.i<=n.+n #include <iostream> using namespace std.i<=11. cin>>n.i=i+2) s+=i*i*i.. do while) for forma generala: for( i=vali. s=0. cout<<"Suma este:"<<s. return 0.i<=n. return 5. int i. int main() int main() { { cout<<"Dati un numar n par: ".n. int i.i<=n. Suma a n numere //suma a n numere ..vali+2. float s.

Pentru un sir de n numere aflati minimul par. return 0. s. cin>>n.i++){ cin>>x. } 9. s += x.mini. s += p. } cout<<"Maximul este:"<<maxi.i++) { cin >> x. int i. for (i = 1. int i. mini. 10. int main() { cout << "Dati un nr n:".#include <iostream> using namespace std. cin >> n. if(x>maxi) maxi=x.i++) { p *= i. for (i = 1. return 0. x. .x. Pentru un sir de n numere aflati maximul. //minimul dintr-un sir de numere #include <iostream> using namespace std.n. mini = 32. int main() { cout << "Dati un nr n:". } 9. //minimul par dintr-un sir de n #include <iostream> using namespace std. return 0.i<=n. for(i=1.i <= n.i++) { cin >> x. cin>>n. n. for(i=1. n. } cout << "Suma este:" << s. if (x < mini) mini = x.i++){ cin>>x.n. } cout << "Suma este:" << s.i++) { cin >> x.maxi.i <= n. if(x%2==0 && x<mini) mini=x.Suma numerelor pare dintr-un sir #include <iostream> using namespace std. cin >> n. int i. x. p.Pentru un sir de n numere aflati minimul. int main() { cout << "Dati un nr n:". int i. } 7.i <= n. int i. //Maximul dintr-un sir #include <iostream> using namespace std. int main() { cout << "Dati un nr n: ". } 8. x. int main() { cout << "Dati un nr n:".i <= n. return 0. n.i. mini=2000000000. } if(mini==2000000000) cout<<"Nu exista minim". } #include <iostream> using namespace std. return 0. Pentru un sir de n numere aflati cate elemente pozitive. for (i = 1. } cout << "Minimul din sir este:" << mini. int main() { cout << "Dati un nr n:".i<=n. cin >> n. for (i = 1. s. return 0. cin >> n. int x. if(x%2==0)s += x. p = 1.Media aritmetica a mumerelor pozitive dintrun sir.000. else cout<<"Minimul par este:"<<mini. } cout << "Suma celor pare este:" << s. } 9. n. negative si nule sunt. s.

#include <iostream> using namespace std. Fie doua numere. negative si nule sunt intrun sir. pozitive este:" << kp<< endl. else { si+=x. using namespace std. cout<<"Dati un nr x:". if(y%i==0) k2++. if (x == 0) ko = ko + 1. Afisati numarul ce are cei mai multi divizori.Verificati daca un numar este perfect. 15. i<=y. i++) if(x%2==0){ sp+=x. return 0.i++) { cin >> x. else if(k1==k2) cout<<"x si y au acelasi nr de ki++. cin >> n. cout<<"Media aritmetica a nr impare este:"<<mai. cout << "Nr el. #include <iostream> int i. return 0. 12.i<=n. mai=(float)si/ki. cout << "Nr el. cin>>y.x.si. { float map. Afisati numarul ce are cei mai multi divizori. i<=x. float ma. kp.i++) { cin >> x.n.} if(k1>k2) cout<<"x are mai multi divizori". if (x > 0) kp = kp + 1. cin>>x.n. k++. int main() { cout << "Dati un nr:". cout << "ma=" << ma. return 0. int main() cin>>x. kp++.Fie doua numere. int main() int i.} divizori".*(1+2+3+…+n) 11. } } ma = (float)s / k. if (x > 0) { s += x. +1/(n*n) S=(1)*(1+2)*(1+2+3)*. for (i = 1. Media aritmetica a numerelor pare 16. int x. 13. } cout<<"Media aritmetica a nr pare este:"<<map<<endl. s. k. x..sp.k2. si media aritmetica a numerelor #include <iostream> impare. nule este:" << ko.i <= n.Divizorii unui numar x.//cate numere pozitive.i <= n. int main() { cout << "Dati un nr:". .ki. if (x<0) kn = kn + 1. map=(float)sp/kp.. cout << "Dati un nr n:". n. s.k1.mai.y. for(i=1.x. } cout << "Nr el.+12 S=1/(1*1)+ 1/(2*2)+ 1/(3*3)+. negative este:" << kn<< endl. kn. { cout<<"Dati un nr y:". int i. pozitive dintr-un sir #include <iostream> using namespace std.Verificati daca un numar este prim. } Tema S=100+98+96+94+…. i.kp. for (i = 1. i++) for(i=1. cin>>n. 14. cin >> n. ko.i++){ if(x%i==0) k1++. } else cout<<"y are mai multi divizori". return 0. } //media aritmetica a nr. n. using namespace std. for(i=1.

Probleme 1. DO WHILE . return 0. #include <iostream> . d. Cand conditia (cond) este falsa se iese din repetare. int x. int main() { cout << "Dati un nr n:". Execututie: Daca conditia (cond) este adevarata se realizeaza executia repetata. Suma a n numere dintr-un sir #include <iostream> using namespace std. int main() { cout << "Dati un nr x:". i++. int i. d = 2. i=1. }while(cond). } cout<<"Suma nr din sir este:"<<s. cin >> x. Cmmdc a doua numere. un numar x #include <iostream> using namespace std. x = x / d. } 3.x.structura repetitiva cu test initial Forma generala: while(cond) instructiune1. cin>>n. while (x % d == 0) { p++.structura repetitiva cu test final Forma generala: do{ instructiune1.s. } 4. } return 0. p. sau while(cond){ instructiuni1. Cand conditia (cond) este falsa se iese din repetare. } if (p > 0) cout << d << " " << p << endl.Cmmmc a doua numere.n. while (x != 1) { p = 0.} WHILE . while(i<=n){ cin>>x. } Execututie: Daca conditia (cond) este adevarata se realizeaza executia repetata. s+=x.Descompunerea in factori primi pt. d++. #include <iostream> 2.

Media aritmetica a numerelor pare si media aritmetica a numerelor impare dintr-un sir. int i. cin>>y. #include <iostream> using namespace std. i++) if(x%i==0) k1++. } . while (x!=y){ if(x>y) x=x-y. cout<<"Media aritmetica a nr pare este:"<<map<<endl.mai. i<=x. } Probleme cu structuri repetitive 1.x. int x. } 3. if(x%2==0){ sp+=x. } cout<<"cmmdc a nr x si y este:"<<x. for(i=1. else b=b-a. return 0.n.n. int main() { cout << "Dati un nr n:". #include <iostream> using namespace std. Afisati un mesaj ce precizeaza care numar are mai multi divizori.x. float map. cin>>x.} } map=(float)sp/kp. if(k1>k2) cout<<"x are mai multi divizori". int i. cin>>a>>b.k1.si. 2. int main() { cout<<"Dati un nr x:".ok. int a. int main() { cout << "Dati un nr n:". else if(k1==k2) cout<<"x si y au acelasi nr de divizori". int main() { cout << "Dati doua nr x si y:". #include <iostream> using namespace std. } cmmmc=p/a.} else { si+=x. cout<<"Media aritmetica a nr impare este:"<<mai. kp++. i++) if(y%i==0) k2++.k2.ki. for(i=1. i<=y. while(a!=b){ if(a>b) a=a-b. return 0.Precizati daca exista numere impare intr-un sir. ki++. cout<<"cmmmc="<<cmmmc. int i.b.n.x.i<=n. cin>>n. mai=(float)si/ki. float cmmmc. return 0. Fie doua numare x si y.y. cin>>x>>y. else cout<<"y are mai multi divizori".p.y. else y=y-x.i++){ cin>>x.sp. for(i=1. } using namespace std. cout<<"Dati un nr y:".kp. p=a*b. return 0.using namespace std. int main() { cout << "Dati doua nr a si b:".

int a. ofstream g("sir.i++){ cin>>x.in"). f.maxi. -> indicatorul g va indica la fisierul „gigel. for(i=1. fstream g("sir.close().s.i<=n. fstream f("gigel. for(i=1. return 0.out” //ifstream f("gigel. g<<"Maximul nu este:"<<maxi<<endl.out"). #include <iostream> #include<fstream> using namespace std.n.i<=n.Afisati minimul.in"). } 2.close(). } g<<"Minimul nu este:"<<mini<<endl.ios::in). g<<"suma este:"<<s. -> indicatorul f va indica la fisierul „gigel. int main() { f>>n. ok=0. int main() { f>>a>>b. //ofstream g("gigel.x. fstream f("sir.ios::out). return 0. f. mini=32000. Problema Suma a doua numere. } if(ok==1) cout<<"Da".close(). return 0. } 1.i. Afisarea rezultatelor se poate face pe ecran sau intr-un fisier.out".ios::in).in” si afisarea sumei se face in fisierul „gigel.out"). for(i=1.cin>>n.close(). if(mini>x) mini=x.in". maxi=-32000. Citirea numerelor se face din fisierul „gigel. if(x%2==1) ok=1.i++){ f>>x.out". int main() { f>>n. ifstream f("sir.b.n.ios::out).out”. int i.in” fstream g("gigel.i<=n. else cout<<"Nu". } g<<"suma este:"<<s. } Fisiere Intr-o problema citirea datelor se poate face de la tastatura sau din fisier.s. while(mini!=maxi) .i++){ f>>x. maximul si cmmdc dintre minim si maxim #include <iostream> #include<fstream> using namespace std.x. int mini. g. g.in". s+=x. if(maxi<x) maxi=x.//suma unui sir de numere cu fisiere #include <iostream> #include<fstream> using namespace std. s=a+b.

return 0.k.close().} if(k==0) g<<"Da". int main() { f >> a >> b.close().j++){ if(x%j==0) k++. int main() { f>>x. b. f. return 0. ios::in).ios::in). int n.close().break.j++) { if (x % j == 0) k++. } f.close(). k. } Vectori . for(i=2. int a. #include <iostream> #include<fstream> using namespace std.ios::out).i++) { x = i.if(mini>maxi) mini=mini-maxi. else maxi=maxi-mini.ios::in). else g<<"Nu". for(j=1.out".close(). g.i++) if(x%i==0){ k=1. return 0.k.i++){ f>>x.Suma numerelor prime dintr-un sir de n. g.x.in". g<<"cmmdc este:"<<mini. i.j <= x. for (j = 1. fstream f("sir. } } 4. fstream g("sir.i. fstream g("sir. fstream f("sir. f. int main() { f>>n.i<=sqrt(x). } g<<s. fstream g("sir.s. 3.close().} if(k==2) s=s+x. f. #include <iostream> #include<fstream> #include<cmath> using namespace std.i <= b. ios::out). k=0. g.j<=x.out".b]. s=0.out". } if (k == 2) g << x << " ".close().k = 0. x. int x. for (i = a.ios::out). fstream f("sir.Afisati numerele prime din intervalul [a.j. g. j.Precizati daca un numar este prim. return 0. #include <iostream> #include<fstream> using namespace std.close(). } 5. for(i=1.in".in".i.i<=n.

i <= n.i <= n.i++) f >> a[i]. for (i = 1. cout<< "minimul este: "<<mini. 4) minimul dintr-un sir mini=320000. cin >> n. ios::out). n. for (i = 1.i <= n. 6) inlocuiti elementele pare cu ultima cifra numarului si cele impare cu penultima cifra for (i = 1. cout<< "Suma este: "<<s.i++) cout<< a[i]<< " ".i <= n. Ex: un vector cu 10 elemente: a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 Declararea vectorui de mai sus in C++ se face astfel: int a[10] .i <= n. s.Un vector reprezinta un sir de elemente cu un nume comun asezate in ordine.i++){ cout<<"dati element". } b)din fisier f >> n. for (i = 1.out". int a[1000]. i.i++) if(a[i]%2==0) k++. Elementele sale sunt: a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] In general nu vom folosi elemetul a[0].i++) if (min>a[i]) mini=a[i]. for (i = 1.i++) 2) afisarea elementelor unui vector a)afisarea pe ecran for (i = 1. for (i = 1. else a[i]=a[i]/10%10 pr1 Suma numerelor dintr-un sir #include <iostream> #include<fstream> using namespace std.in". . cin >> a[i]. cout<< "k este: "<<k. ios::in).i <= n.i <= n. Operatii de baza cu vectori 1) citirea elementelor unui vector a)de la tastatura cout<<"dati n". fstream g("sir. for (i = 1. 3) suma elementelor unui vector s=0. int main() { f >> n.i++) g<< a[i]<< " ".i++) s+=a[i]. 5) cate elemente pare sunt intr-un sir k=0. fstream f("sir. b)in fisier for (i = 1.i <= n.i++) if(a[i]%2==0) a[i]=a[i]%10.i <= n.

g. for(i=1. s.out".in". ios::in). i. int main() { f >> n. } f. int a[100].i++) { x = a[i]. } g << "Suma nr prime din sir este:" << s.i<=n.n.ios::in). int main() { f>>n. for(i=1. g << "Suma este:" << s.close().i <= n. x. int a[1000]. j. y=a[i+1]. if (k == 0) s += x. } //afisati numerele vecine ce au aceiasi paritate Varianta 2 . return 0.y.out". fstream f("sir. k=0. f. fstream g("sir.j <= sqrt(x). for (i = 1.i++){ x=a[i].ios::out).i <= n. fstream f("sir. } Pr2 Suma numerelor prime dintr-un sir #include <iostream> #include<fstream> #include<cmath> using namespace std.i<n. } Pr3 //afisati numerele vecine ce au aceiasi paritate Varianta 1 #include <iostream> #include<fstream> using namespace std.close().i <= n. n. return 0. for (i = 1.close().i++) s+=a[i].for (i = 1.j++) if (x % j == 0) k++.close().i++) f >> a[i]. fstream g("sir. return 0.x.i++) f>>a[i].in".close().close(). g. f. g. k. for (j = 2. ios::out).i. if((x%2==0&&y%2==0)||(x%2==1&&y%2==1)) g<<a[i]<<" "<<a[i+1]<<endl.

in". fstream f("sir. } f. Afisati sirul ordonat crescator. g. y=a[i+1].i++) f>>a[i].i<=n.ios::out). } f. int a[145]. for(i=1. fstream g("sir. } Fie doua multimi a si b. int main() { f>>n.j<=m. fstream f("sir. int a[1000].close(). for(j=1. for(i=1.i++) for(j=1. return 0. int a[1000].ios::in).j++) f>>b[j].i++) f>>a[i].ios::in). if(k==0) g<<b[j]<<" ".#include <iostream> #include<fstream> using namespace std.out". for(i=1.close(). Afisati intersectia celor doua multimi. Afisati sirul ordonat crescator. for(i=1. fstream g("sir.n.out".n.out".i. fstream g("sir.in".b[1000].j<=m. int main() { . return 0.j. Afisati reuniunea celor doua multimi.(Met bulelor) #include <iostream> #include<fstream> using namespace std. if(x%2==y%2)) g<<a[i]<<" "<<a[i+1]<<endl.ios::out). int main() { Fie un sir de n elemente. g.out". int a[1000]. int main() { f>>n. int a[136]. fstream g("sir.ios::in).aux. #include <iostream> #include<fstream> using namespace std.j++) if(a[i]==b[j]) g<<a[i]<<" ". fstream f("sir. fstream g("sir.m.j<=m.i<=n. } Fie un sir de n elemente.j.b[1000].i++) f>>a[i]. fstream f("sir.k.ios::out). for(j=1.i++){ x=a[i]. g.j++){ k=0.n.i++) if(b[j]==a[i]) k++.i.in".i<=n.m. #include <iostream> #include<fstream> using namespace std. for(i=1. return 0.i<=n.j.ord.close().out". for(i=1. for(j=1.i.i<=n.i.in". f>>m.ios::out).i.close(). int main() { f>>n.ios::in).i++) g<<a[i]<<" ".(Met selectiei) #include <iostream> #include<fstream> using namespace std.aux. for(i=1.y.i<n.in".n.j<=m.i<=n.j++) f>>b[j]. f>>m.x. fstream f("sir.n.ios::out).close(). } Fie doua multimi a si b.ios::in).

j<=n. for (j= 1. int a[1000].i++) { f >> x.i<=n. } .i. } for (j = 1.aux.j++) if(a[i]>a[j]){ aux=a[i].i<=n.out".j<=n.1000]. int main() { f>>n.} } while(ord==0). int main() { f >> n. fstream f("sir.i++) if(a[i]%2==0) g<<a[i]<<" ".Afisati elementele ce apar de cele mai multe ori.i++) f>>a[i]. fstream f("sir.i++) f>>a[i]. int fr[1001].j++) if (maxi == fr[j]) g << j<< " ".i++) f>>a[i].close(). fstream g("sir. for (i = 1.cif.j++) if(a[i]<a[j]){ aux=a[i]. } Fie un sir de numere in intervalul[1. x.j. a[i+1]=aux. (cu frecventa) sir.i<=n. return 0.i<=n.ios::out). g. ios::out). fr[x]++. a[j]=aux.i++) for(j=i+1. for(i=1. while(x!=0){ cif=x%10.out 38 #include <iostream> #include<fstream> using namespace std.i<=n.i++) if(a[i]>a[i+1]){ aux=a[i].out 42 36 14 5 #include <iostream> #include<fstream> using namespace std.in".i++) for(j=i+1. ios::in).j++) if (maxi < fr[j]) maxi = fr[j].close().i<n. a[i]=a[j]. g.n. return 0. i.i++) g<<a[i]<<" ".i <= n.f>>n. f. for(i=1.close(). x=x/10.in 6 838753 sir. a[j]=aux.out". n. maxi = 0.} for(i=1. f. a[i]=a[i+1]. return 0.i<=n.close().i++) g<<a[i]<<" ".ios::in). } for(i=1. for(i=1. x=a[n]. g<<endl. for(i=1. for(i=1. for(i=1. do{ ord=1.x. } g<<sc.sc. sc+=cif.j.j <= 1000.i<n.close(). ord=0. g. return 0. maxi. fstream g("sir. for(i=1. a[i]=a[j]. } f>>n.i<=n. } //afisati elementele pare descrescator si suma minimului sir.in 6 21 14 42 81 91 36 sir.in".j <= 1000.

for(i=1. g<<endl.j<=n.j<=n.i++){ for(j=1.j++) g<<a[i][j]<<" ".i<=m.i++) for(j=1.j++) f>>a[i][j]. } afisarea pe ecran for(i=1. } b)afisarea unei matrici afisarea in fisier for(i=1.j<=n.i<=m.i<=m.i<=m. cin>>a[i][j].j++) { cout<<"dati element:". citirea de la tastatura cout<<"dati numarul de linii si coloane:". Operatii cu matrici a)citirea unei matrici citirea de la tastatura f>>m>>n.i++) for(j=1. for(i=1. cout<<endl. cin>>m>>n. Ex: o matrice a 4x5 a[1][5] a[2][5] a[3][5] a[4][5] a[4][5] Prima linie este formata din elementele: a[1][1] a[1][2] a[1][3] a[1][4] a[1][5] A treia coloana: a[1][3] a[2][3] a[3][3] a[4][3] Un element din matrice este a[i][j] si el se afla in matrice pe linia i si coloana j.j++) cout<<a[i][j]<<" ".Matrici a[1] [1] a[2] [1] a[3] [1] a[4] [1] a[4] [1] a[1] [2] a[2] [2] a[3] [2] a[4] [2] a[4] [2] a[1] [3] a[2] [3] a[3] [3] a[4] [3] a[4] [3] a[1] [4] a[2] [4] a[3] [4] a[4] [4] a[4] [4] (tablouri bidimensionale) O matrice este un tablou cu m linii si n coloane. } .j<=n.i++){ for(j=1.

close ().j<=n.i<=m.i++){ for(j=1.j<=n. g<<s<<endl.j. return 0.in".j++) if(a[i][j]<mini) mini=a[i][j].i<=m. mini=32.i++) for(j=1. g<<s1<<endl.n.j.i++) for(j=1.} f. ofstream g("sir.j<=n. cout<<"suma din matrice este: "<<s. int a[15][20]. int a[100][100].i.000.ios::out).ios::out).i<=m.j<=n. int main() { f>>m>>n.close ().m.j++) g<<a[i][j]<<" ".j++) a[i][j]=j. for(i=1. f. int main() { f>>m>>n.n. fstream g("sir. for(i=1. for(j=1.i++) for(j=1.out". for(i=1. else a[i][j]=j.j<=n.i++) for(j=1. g.i<=m.i++) for(j=1. for(i=1. } Suma de pe prima linie si suma de pe ultima coloana #include <iostream> #include<fstream> using namespace std.j++) g<<a[i][j]<<" ". g<<endl. int a[100][100].i++){ for(j=1.j<=n. ifstream f("sir.n.m. ofstream g("sir.j. . return 0. fstream f("sir. int main() { f>>m>>n.i<=m. #include <iostream> #include<fstream> using namespace std.in").i. int main() { f>>m>>n.ios::in).s1. g<<endl.j++) if(i<j) a[i][j]=i.close ().mini. fstream f("sir.i++) for(j=1.j++) g<<a[i][j]<<" ".close (). int a[10][10].j<=n.j<=n. for(i=1. for(i=1.out".i<=m.c)suma elementelor dintr-o matrice s=0.j<=n.m. for(i=1.j<=n.i<=m.j<=n.out").i<=m.j++) s1+=a[1][j].} for(i=1. g. Sa se construiasca o matrice astfel incat a[i][j] este minimul dintre i si j Pentu mxn(3x4) rezulta matricea 1111 1222 1233 #include <iostream> #include <fstream> using namespace std.ios::in).close ().in").m. } Afisati elementele divizibile cu 3 si minimul.j. for(i=1. return 0.i.j++) s+=a[m][j]. g<<endl.j++) f>>a[i][j].out"). } f.j++) s+=a[i][j].j<=n.i<=m.n.i. g<<endl. for(i=1.i++) for(j=1.close (). ifstream f("sir.i++){ for(j=1. fstream g("sir. for(j=1.i<=m.in".j++) f>>a[i][j].j++) if(a[i][j]%3==0) g<<a[i][j]<<" ".s. } Construiti matricea mxn Ex: pentru o matrice 5x4 rezulta 1234 1234 1234 1234 1234 #include <iostream> #include <fstream> using namespace std. g.

close(). for(i=1. int a[10][10].i<=m. return 0. fstream f("sir.i++) for(j=1.j<=n.i<=m.close(). fstream g("sir. for(i=1.i<=m.in".n.close().i. for(j=1. Suma elementelor si numarul elementelor pare #include <iostream> #include<fstream> using namespace std.out".i.out". for(j=1.s.j. return 0.s.k.j<=n.i<=m. g<<s<<endl.i++) for(j=1. for(i=1. fstream f("sir.n.in". f.g<<mini. } Suma pe fiecare linie dintr-o matrice(cu un vector suplimentar) var II #include <iostream> #include<fstream> using namespace std.i. g.j++) sp+=a[p][j]. int main() { f>>m>>n>>p.j++) s+=a[i][j].close(). fstream g("sir.j++) if(a[i][j]%2==0) k++.i++) for(j=1.i++) for(j=1.i<=m. return 0.out". g<<k.m.close().close(). g.n.j<=n.sp. for(i=1. f.j<=n.ios::out).in".j. fstream g("sir. } Suma de pe linia p #include <iostream> #include<fstream> using namespace std. g.m.p.j++) s+=a[i][j].close(). int main() { f>>m>>n.i<=m.j<=n. f.ios::out).in". g<<sp.i++) for(j=1.ios::in). f.j.ios::in). for(i=1.i<=m.m.j++) f>>a[i][j].i<=m.j<=n. } .j++) f>>a[i][j].j++) f>>a[i][j]. fstream f("sir.j<=n. int a[10][10].b[10].j++) b[i]+=a[i][j].i++) g<<b[i]<<endl.j<=n.m.close().close().ios::in).j<=n. for(i=1. for(i=1. fstream g("sir. for(i=1. g. g. return 0.i++) for(j=1. int main() { f>>m>>n.i<=m.j. return 0.close().i.j++) f>>a[i][j].ios::out).i++) for(j=1. for(i=1.i++){ s=0. } } Suma pe fiecare linie dintr-o matrice Var I #include <iostream> #include<fstream> using namespace std. int main() { f>>m>>n. } f.n.ios::in). fstream f("sir.out".ios::out). int a[10][10]. int a[10][10]. g<<s<<endl.

j.ios::out).j<=n.j<=n.j++){p++.ios::in).i++){ for(j=1.j<=n. b[i]=b[j].i.i<=m.close().out".i++) for(j=i+1.i<=m.n.i++) for(j=1.in 33 168 345 279 sir. b[p]=a[i][j]. fstream g("sir. g.out".b[100].j++) g<<a[i][j]<<" ". int a[10][10].close(). g. fstream f("sir.in". for(i=1.i.out 168543279 #include <iostream> #include<fstream> using namespace std.j++) f>>a[i][j].ios::in). int a[10][10].aux.p.} for(i=1. for(i=1.out 112 234 7 8 10 #include <iostream> #include<fstream> using namespace std. int main() { f>>m>>n.j<=n.i<=m. return 0. for(i=1.j<=n.j<=n.i<=m.close().n. fstream g("sir. p++.ios::out).j>=1.i<=m. for(i=1.Afisarea in zig-zag a unei matrici sir. } f.m. g<<endl.i<=p.j++) if(b[i]>b[j]){ aux=b[i].i++){ if(i%2==1) for(j=1. fstream f("sir. return 0.i++) for(j=1.j.} for(i=1. for(i=1. } .close(). int main() { f>>m>>n.j++){ a[i][j]=b[p]. b[j]=aux.i<=m.} p=1. } Ordonarea elementelor dintr-o matrice sir.m.} f.i++) for(j=1.in 33 7 2 1 10 8 4 3 1 2 sir.j--) g<<a[i][j]<<" ".j++) g<<a[i][j]<<" ". else for(j=n.i++) for(j=1.j<=p.j++) f>>a[i][j].in".

m.m.i<=n. for(i=1. fstream f("sir.p. } Afisarea numarului de elemente vecine pare pentru fiecare element din matrice(vecinii de sus.i++) for(j=1. for(i=1. dreapta) #include <iostream> #include<fstream> using namespace std.j++) a[0][j]=1. for(i=1.s[900]. g.j++) f>>a[i][j]. fstream f("sir.ios::in).i++){ for(j=1.ios::in).i++) for(j=1.j<=n+1.j++) a[i][j]=a[i+1][j]. f.j<=n.j<=n.ios::out).j++){ k=0.i<=2*n-1.j<=n.i<=m. fstream g("sir.i++) for(j=1.j++) a[m+1][j]=1. } Sumele pe diagonalele paralele cu diagonala secundara #include <iostream> #include<fstream> using namespace std.i<=m+1.ios::in).s[19]. int main() { f>>n. } Sumele pe diagonalele paralele cu diagonala principala #include <iostream> #include<fstream> using namespace std.i<=n. return 0. for(i=1.ios::in). int main(){ f>>m>>n>>p.close(). fstream f("sir.j. b[i][j]=k. for(i=1. return 0.i. int main() { f>>n. f. for(i=1. for(i=0. g.i<=m.in".n.ios::out).i++) g<<s[i]<<endl.j<=n.j<=n.in".i<=n.in".i++) a[i][n+1]=1. fstream g("sir. for(j=0.n.i.i.j.i<=n.out".j<=n+1.n.close().j++) g<<a[i][j]<<" ".i<=m. fstream g("sir.i. for(i=1. int a[10][10].in".close().i<=m+1.out".j. for(j=0. } .j<=n. if(a[i-1][j]%2==0) k++. for(i=1.b[13][60].out". int main() { f>>m>>n. for(i=2.j++) s[i+j]+=a[i][j]. int a[24][40].i<=m. if(a[i][j-1]%2==0) k++. int a[24][40].j<=n. m--.j++) f>>a[i][j].i++) g<<s[i]<<" ".i++) a[i][0]=1.i++) for(j=1. if(a[i][j+1]%2==0) k++.close(). for(i=p.ios::out).i<=2*n. int a[30][30]. jos.j<=n. fstream g("sir.k.i++) for(j=1.Stergerea liniei p dintr-o matrice #include <iostream> #include<fstream> using namespace std.n.close().close().i++) for(j=1.} f.out". return 0.j++) s[n-i+j]+=a[i][j].ios::out). g<<endl.j. fstream f("sir.i<m. stanga.i++) for(j=1.i++) for(j=1. g. for(i=0.j++) f>>a[i][j]. if(a[i+1][j]%2==0) k++. for(i=1.j<=n.j++) f>>a[i][j].

long sum_div(long a){ //suma divizorilor lui a .close(). // x.i<=m.j<=n. // !!!!!!!!! while(x){ cif=x%10.} Functii //doua feluri int sau void //forma generala( tip nume parametri functiei return apel) // v local si globale p. int x.int b){ //suma a doua numere int s. } f.for(i=1. //variabile globale int suma(int a.cif. Sa se scrie care o functie(de tip int) pentru fiecare cerinta: a)suma a doua numere b)calculul ipotenuzei unui triunghi dreptunghic c)suma cifrelor unui numar x d)suma divizorilor unui numar x #include <fstream> #include<cmath> using namespace std. return s. } long sumacif(long x){ //suma cif lui x long cif.out"). formali sau efectivi // transmiterea parametrilor prin valoare sau referinta /* tip rezultat nume_functie (parametri functiei){ variabile locale(daca este cazul) corpul functiei (instructiunile functiei) return rezultat } */ Pr1. return 0.close().float b){ //ipotenuza unui triunghi dreptunghic return sqrt(a*a+b*b). s=a+b.s.in"). g.} return s. g<<endl.i++){ for(j=1.y. } float ipotenuza(float a. ifstream f("functii.j++) g<<b[i][j]<<" ". ofstream g("functii.s variabile locale s=0. s+=cif.s. } int t. x=x/10.

g<<"suma cifrelor lui y este "<<sumacif(y)<<'\n'. return s.d++) .out").d<=a. // x. return 0.s=0.long &s){ //suma a doua numere s=x+y.float &rez){ //ipotenuza unui triunghi dreptunghic rez=sqrt(a*a+b*b).long &s){ //suma cifrelor lui x long cif.cif. g<<"ipotenuza este:"<<ipotenuza(x. g<<"suma este:"<<suma(x.ss. //variabile globale void suma(long x. } void ipotenuza(float a. } void sumacif(long x. f>>x>>y. Sa se scrie care o functie(de tip void) pentru fiecare cerinta: a)suma a doua numere b)calculul ipotenuzei unui triunghi dreptunghic c)suma cifrelor unui numar x d)suma divizorilor unui numar x e)inversarea continutului a doua variabile //functii void //forma generala( void nume parametri functiei apel) // v local si globale p.g. for(d=1. // !!!!!!!!! while(x){ cif=x%10. x=x/10.in"). g<<"suma divizorilor lui x este "<<sum_div(x)<<'\n'. ifstream f("functii. s=0.y.} } void sum_div(long a. formali sau efectivi // transmiterea parametrilor prin valoare sau referinta #include <fstream> #include<cmath> using namespace std.close().d++) if(a%d==0) s+=d. } int main() { int d. long y. f.close(). } Pr2. s+=cif.y)<<'\n'.int d. long x.y)<<'\n'. for(d=1.float b. ofstream g("functii.d<=a.long &s){ //suma divizorilor lui x int d. g<<"suma cifrelor lui x este "<<sumacif(x)<<'\n'.s.s variabile locale s=0.

}*/ pr4 . while(x){ cif=x%10. long sumacif(long x){ long cif.i<=n.close().i++) if(sumacif(a[i])==10) g<<a[i]<<" ". int n.ip).a[100]. ofstream g("functii.i++) f>>a[i].g. g<<"ipotenuza este: "<<ip<<'\n'.close().s. g<<"x si y dupa inversare"<<x<<" "<<y<<'\n'. sum_div(x.if(a%d==0) s+=d.s). sumacif(x.b). for(i=1. //se poate si cu comanda swap(a. } pr3 Afisati numerele dintr-un sir ce au suma cifrelor egala cu 10 #include <fstream> using namespace std.in"). ipotenuza(x. } float ip.} return s. inverseaza(x.out"). } void inverseaza(long &a.close().i<=n.close().y. g<<"suma cifrelor lui x este "<<s<<'\n'. g<<"suma divizorilor lui x este "<<s<<'\n'. x=x/10. f. f. //inverseaza a cu b aux=a. s=0. g<<"suma este:"<<ss<<'\n'. return 0. int main() { f>>x>>y. return 0.long &b){ // & transmitere prin adresa int aux. sumacif(y. suma(x. } int main() { f>>n.s).ss). s+=cif.g.s). for(i=1. ifstream f("functii.y.b=aux.a=b.i. g<<"suma cifrelor lui y este "<<s<<'\n'.y).

i. pr5 . } int main() { f>>n.i++) f>>a[i]. x=x/10. int n. ofstream g("functii.g. return 0.j. ifstream f("functii.i<=n.i++) for(j=1. for(i=1. y=x. f. inv=inv*10+cif.n)<<" ".in"). int palin(long x){ long cif.s=0.j++) if(palin(a[i][j])&&palin(a[i][j]*a[i][j])) g<<a[i][j]<<" ".int n){ int i.g. } // Afisati suma numerele dintr-un sir #include <fstream> using namespace std.i. while(x){ cif=x%10. inv=0.inv.j<=n.close(). } if (y==inv) return 1.j<=n. int n. ofstream g("functii. for( i=1.y.a[100].Afisati numerele dintr-o matrice ce au prop.i++) s+=x[i]. ifstream f("functii. f. for(i=1.out").in"). //vectorii se transmit prin referinta(prin adresa) implicit //regula: se transmit datele si se primesc rezultatele // in rest toate variabile vor fi locale (pentru siguranta) int suma(int x[100].j. else return 0. g<<suma(a.close().out"). ca atat ele cat si patratul lor sunt palindroame #include <fstream> using namespace std.close(). return s.i++) for(j=1. for(i=1.i<=n.a[10][10].i<=n.close().j++) f>>a[i][j]. } int main() { f>>n.i<=n.

out"). } .i<=n.i.j.i++) g<<x[i]<<" ".a[10][10].j<=n.int n){ int i. ifstream f("functii.in").j<=n.j++) if(x[i]>x[j]) swap(x[i].a[100].close(). } // Ordonati elementele dintr-un sir cu o functie de citire vector. ifstream f("functii. afiseaza(a.g. //vectorii se transmit prin adresa implicit !!!! void citeste(int x[100].i. g<<'\n'.int n){ int i.j++) s+=a[i][j]. afiseaza(a. return 0. //matricile si vectorii se transmit prin adresa //regula: se transmit datele si se primesc rezultatele // in rest totul variabile locale(pentru siguranta) int suma1(int x[10][10]. int n.i++) for(j=1.x[j]).i++) for(j=i+1.i<=n.int &n){ int i.i<=n. for( i=1. afisare vector.out").return 0. } void ordonare(int x[100].// functie ce inverseaza a[i] cu a[j] !!! } int main() { citeste(a.s=0.n). return s.j.i<=n. ofstream g("functii. ordonare(a.in"). ordonare vector #include <fstream> using namespace std. ofstream g("functii.j. } void afiseaza(int x[100]. int n.n).j. f>>n. f.n).i++) f>>x[i].//este echivalent cu g<<endl.n). for( i=1.close().} pr 6 pr7 Afisati suma numerele dintr-o matrice #include <fstream> using namespace std. for( i=1.int n){ int i. for( i=1.

j++) f>>a[i][j].i. return 1. suma numerelor prime dintr-un sir #include <fstream> #include<cmath> using namespace std. f. for(i=1.close(). } Pr9 Calc. Minimul dintr-o matrice ( citirea si afisarea pentru matrici) //pr7.i<=n. g<<s. for(i=1.g. ifstream f("functii. . long prim(long a){ int d. long x. g<<suma1(a. suma a doua numere daca ambele sunt prime si produsul in caz contrar #include <fstream> #include<cmath> using namespace std. long a[100].close(). return 0. if(x==0||x==1) return 0.n. ifstream f("functii. Calc.in"). } //pr6.n)<<" ". ofstream g("functii.close(). for(i=1. f. Inversati doua linii p si q dintr-o matrice //pr8.close().y.i<=n. ofstream g("functii. Determinati punctele de "sa" dintr-o matrice(a[i][j] este "sa" daca este //minimul de pe linie si maximul de pe coloana sau invers Pr8.d<=sqrt((float)x).i++) if(prim(a[i])) s+=a[i]. return 0.j<=n.s. } int main() { f>>n. for(d=2.d++) if(x%d==0) return 0.out").g.i++) for(j=1.i++)f>>a[i].int main() { f>>n. long prim(long x){ int d.in").i<=n.k.out").

long prim(long a ){ int d. for(d=2.cal. x nr. j. if(kk==2) return 1. } int main() { int d. d<=a.close(). b[10000]. divizori z cate cif pare are Pr10. d=0. kk. for(d=1. else return 0. kk=0. return 0. Construiti o matrice cu primele elemente in ordine crescatoare ce au exact trei divizori. if(k==2)return 1. f.for(d=1. k=0. return 1. if(prim_eficient(x)&&prim_eficient(y)) g<<x+y. if(a==0||a==1) return 0. ifstream f("sir. a[1000][1000]. int i.d<=sqrt((float)a).d<=a.z. pt. else g<<x*y. n.d++) if(a%d==0) k++. } //tema fie 3 nr x. } nr++. f>>x>>y. ofstream g("sir. nr. b[k]=nr.g. } long prim_eficient(long a){ int d. d++) if(a%d==0) kk++.out"). k.y. else return 0. nr=2. } .de cifre y nr. n=4 se va afisa matricea de mai jos: 4 9 25 49 121 169 289 361 529 841 961 1369 1681 1849 2209 2809 obs: numerele cautate sunt patrate de numere prime!! #include <fstream> using namespace std.} int main() {f>>n.close().d++) if(a%d==0) return 0. while(k<=n*n){ if(prim(nr)) {k++.in").

j. i<=n.} return 0. } Pr11. for(i=1 . j<=n.out"). } void afisare (int x[100][100].in"). for(i=1.a[100][100]. j<=n. //suma elementelor dintr-o matrice #include <fstream> using namespace std. j++) g<<x[i][j]<<' '. ifstream f("sir. void citire(int x[100][100]. i++){ for(j=1. return s. for(i=1 . int n){ int i. g<<suma (a. i++) for(j=1.n). j<=n. i<=n. ofstream g("sir. i<=n.in"). int n){ int i. i++) for(j=1. j++){ a[i][j]=b[k]*b[k]. j++) g<<a[i][j]<<' '. i++){ for(j=1. i<=n. ifstream f("sir. int n. i++) for(j=1. for(i=1. } int main() { citire (a. return 0. } Pr12 //minimul dintr-o matrice #include <fstream> using namespace std. . } for(i=1. j++) s+=x[i][j]. s=0. f>>n.}} int suma (int x[100][100]. g<<'\n'. g<<'\n'.i. afisare(a. j++) f>>x[i][j]. int &n){ int i.n)<<endl.k=1. j<=n. i<=n. k++. j<=n.j. n).

i++){ for(j=1. i<=n. } int main() { citire (a.a[100][100]. j++) g<<x[i][j]<<' '. for(i=1 . j++) if(x[i][j]<mini) mini=x[i][j]. int &n){ int i. i<=n. i<=n. ifstream f("sir. for(i=1. j++) f>>x[i][j]. ofstream g("sir. int &n){ int i. return mini. mini=32000. j++) f>>x[i][j]. void citire(int x[100][100]. f>>n. i++) for(j=1. j<=n.in"). j<=n. for(i=1 . g<<'\n'. int n){ int i. } void afisare (int x[100][100]. f>>n. int n){ int i. q. g<<minim (a.out").out 789 456 123 #include <fstream> using namespace std. p.a[100][100]. i<=n.out").j. afisare(a.i.ofstream g("sir.}} int minim (int x[100][100]. for(i=1 . } . void citire(int x[100][100]. int n. i++) for(j=1.in 3 123 456 789 1 3 (se va inversa linia 1 cu linia 3) Sir. j<=n.j. int n. return 0. j. j<=n.mini.n). n).n)<<endl.i. i++) for(j=1. } Pr13 // inverseaza doua linii specificate dintr-o matrice Sir.

} Pr14. n).i<=n. while(x){ cif=x%10. x=x/10.j<=n. for(j=1. ifstream f("functii.in").i.j<=n. } int calcul (int x){ int cif.int&n){ int i. for(i=1 .n). ofstream g("functii.a[100][100].x[q][j]). for(i=1. j++) swap(x[p][j]. } return 1.n). int n){ int i.i++) for(j=1. void citire (int x[100][100].n).i++) for(j=1.j++) if(calcul(a[i][j])) k++. } int main() { citire (a. g<<'\n'. j++) g<<x[i][j]<<' '.}} void inversare (int x[100][100]. f>>p>>q.out"). inversare (a. j<=n. for(i=1. if(k==n*n) g<<"DA". int n. } int main(){ int k=0. if(cif%2==1) return 0. //Se considera o matrice patratica // Sa se scrie o functie ce calculeaza //cate elemente din matrice au toate cifrele pare #include <fstream> using namespace std.void afisare (int x[100][100].i<=n. . i++){ for(j=1. f>>n. int n){ int i.j. afisare(a.j. citire (a. return 0.j++) f>>x[i][j]. i<=n. j. j<=n.

g.out"). else g<<"NU".close().out").i. //verificati daca un sir este ordonat crescator #include <fstream> using namespace std.close(). } Pr16. int x. k=0. f. return 0.close().else g<<"NU". int stergere(int x){ int cif.i++) if(a[i]>a[i+1]) return 0. } int main(){ f>>x.close(). } int main(){ f>>n. ifstream f("functii. g<<stergere(x). ofstream g("functii. } .close(). int ordonare_cresc(int x[100]. return 0. if(cif%2==0) y=y*10+cif. while(x){ cif=x%10. if (ordonare_cresc(a. g. x=x/10.close().y=0.i<=n-1. ofstream g("functii. f.k.in"). f.n)==1) g<<"DA".i++) f>>a[i]. g.i<=n. return 0. for(i=1. return 1. ifstream f("functii.n. } return y. for(i=1. int a[100]. int n){ int i.in").} pr15 //pentru un numar x construiti numarul format din cifrele sale pare //ex: pt x=12798 => 82 #include <fstream> using namespace std.

Sign up to vote on this title
UsefulNot useful