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;

cin >> a>>b. } Daca a=101 si b=20 se afisaza 5. float x.b.b--. return 0. a++. a creste cu 1) ++a (a creste cu 1) #include <iostream> using namespace std.35 se afiseaza 2 (a primeste doar valoarea 2 nu si 0. cout << "a=" << a << endl.35) 2) float <. return 0.int Daca la programul anterior se face atribuirea x=a. cout << "b="<<b << endl.05 In C++ se pot face atribuiri de genul: 1) int <-float #include <iostream> using namespace std. cout << "a="<<a << endl. a=x. (x=22.22 si a=100) in x se va memora 100 (adica 100. cin >> a >> x. int main() { cout << "dati a si b".x = a / (float)b. cout << "x=" << x << endl. } 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> . } Daca a=1000 si x=2. return 0. int main() { cout << "dati a si x". int a.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. int a.

int main() { cout << "dati a si b".b. //mai intai se face ++a si apoi se face s=b+a cout << "a="<<a << endl. b=++a. => b=4 si a=4 ex2: a=3. } Daca a=100 si b=20 se afiseaza a=101 si s=121 Daca se inlocuieste s=b+(++a). se afiseaza 120 (se face mai intai s=b+a si apoi se face a++) Ex 1: a=3. 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) &= |= ^= .using namespace std. s=b+(++a). 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. b=a++. return 0. cin >> a>>b. int a.s. cu s=b+(a++).

17(10)=10001(2) => 100(2) deplasat => 4(10) deci 17(10)= 4(10) Practic a>>x este a/2x (div) a=13. se afiseaza 8 Operatorul si „&” a=13. cout<<(a>>2). 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^b. cout<<(a>>3). se afiseaza 3 Operatorul sau „|” a=13. se afisaza 15 13(10)=1101(2) 7(10)= 111(2) | 1111(2) =15(10) Operatorul not „~” ~1101=0010 f) Operatori logici pe biti .– 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. cout<<(a<<3). cout<<a&b. cout<<a|b. cout<<(a<<2). b=7. se afisaza 9 13(10)=1101(2) 7(10)= 0111(2) 1010(2) =10(10) Operatorul deplasare la dreapta „>>” a=17. b=7. se afisaza 5 13(10)=1101(2) 7(10)= 111(2) & 0101(2) =5(10) Operatorul sau exclusiv „^” a=13.

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

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

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

a=b≠c.h2.c. int main() { cout << "Dati valori pentru h1. s1. if (s >= 60) { s = s .if(a<b) cout<<"a<b"<<endl.s1. m2. } Pr7. echilateral.b=c≠a Tema Inversul unui numar de 3 cifre Min 4 nr .a≠b≠c.c laturile unui triunghi. m. } if (m >= 60) { m = m . isoscel.m1 si m2. m = m1 + m2.b. h = h1 + h2. h2. h = h + 1.a=c≠b. 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. Precizati tipul triunghlui: oarecare. s = s1 + s2. return 0. Comparati doua date calendaristice Pr10. dreprunghic. s2. return 0. dreptunghic isoscel. m = m + 1. Fie a.60. s. } Pr8.b. if(a==b) cout<<"a==b"<<endl. h1. Inversul unui numar short int Pr9. precizati relatiile dintre ele: a=b=c. Pr11. cin >> h1 >> m1 >> s1 >> h2 >> m2 >> s2. m1.s2:" << endl. } cout << h << " " << m << " " << s << endl. int h. Fie 3 numere a.60.

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

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

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

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

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

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

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

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++) s+=a[i]. int main() { f >> n. 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]. cin >> a[i]. for (i = 1.i <= n. 6) inlocuiti elementele pare cu ultima cifra numarului si cele impare cu penultima cifra for (i = 1.i++) f >> a[i]. 4) minimul dintr-un sir mini=320000.i <= n.i++) if(a[i]%2==0) k++.i++) 2) afisarea elementelor unui vector a)afisarea pe ecran for (i = 1. . for (i = 1. cout<< "minimul este: "<<mini.i <= n. cin >> n. fstream f("sir. for (i = 1. ios::out). Operatii de baza cu vectori 1) citirea elementelor unui vector a)de la tastatura cout<<"dati n". b)in fisier for (i = 1.out".in". for (i = 1.i <= n.i++) g<< a[i]<< " ". cout<< "k este: "<<k.i <= n. for (i = 1. n. i. fstream g("sir. 5) cate elemente pare sunt intr-un sir k=0. cout<< "Suma este: "<<s.i <= n.i++) cout<< a[i]<< " ". for (i = 1.i++){ cout<<"dati element".Un vector reprezinta un sir de elemente cu un nume comun asezate in ordine. s. else a[i]=a[i]/10%10 pr1 Suma numerelor dintr-un sir #include <iostream> #include<fstream> using namespace std.i <= n. 3) suma elementelor unui vector s=0.i++) if(a[i]%2==0) a[i]=a[i]%10. int a[1000]. ios::in). } b)din fisier f >> n.i <= n.i <= n.

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

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

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

cout<<endl. for(i=1.i++){ for(j=1.i++){ for(j=1.i<=m.j<=n. citirea de la tastatura cout<<"dati numarul de linii si coloane:". 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. } b)afisarea unei matrici afisarea in fisier for(i=1.j<=n.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.i<=m.j++) f>>a[i][j]. g<<endl. cin>>m>>n. for(i=1.i<=m. cin>>a[i][j].j++) cout<<a[i][j]<<" ".i++) for(j=1. Operatii cu matrici a)citirea unei matrici citirea de la tastatura f>>m>>n.j++) { cout<<"dati element:".j++) g<<a[i][j]<<" ".j<=n.j<=n. } afisarea pe ecran for(i=1.i++) for(j=1.i<=m. } .

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

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

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

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

// x. x=x/10. ofstream g("functii.} return s. g. g<<endl.} Functii //doua feluri int sau void //forma generala( tip nume parametri functiei return apel) // v local si globale p.float b){ //ipotenuza unui triunghi dreptunghic return sqrt(a*a+b*b). ifstream f("functii. return s.out").close(). } int t. s=a+b.j++) g<<b[i][j]<<" ".int b){ //suma a doua numere int s. } f. 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.s variabile locale s=0.for(i=1.close(). // !!!!!!!!! while(x){ cif=x%10.i<=m.y. } float ipotenuza(float a. long sum_div(long a){ //suma divizorilor lui a . //variabile globale int suma(int a. s+=cif.j<=n.s. 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. int x. return 0.s.i++){ for(j=1.in").cif. } long sumacif(long x){ //suma cif lui x long cif.

// !!!!!!!!! while(x){ cif=x%10. return s.d<=a. g<<"suma cifrelor lui x este "<<sumacif(x)<<'\n'.s. g<<"suma este:"<<suma(x.y)<<'\n'. formali sau efectivi // transmiterea parametrilor prin valoare sau referinta #include <fstream> #include<cmath> using namespace std. ofstream g("functii.float &rez){ //ipotenuza unui triunghi dreptunghic rez=sqrt(a*a+b*b). g<<"ipotenuza este:"<<ipotenuza(x.out"). long x. g<<"suma cifrelor lui y este "<<sumacif(y)<<'\n'.long &s){ //suma cifrelor lui x long cif. 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. } Pr2. g<<"suma divizorilor lui x este "<<sum_div(x)<<'\n'.close(). ifstream f("functii. x=x/10. for(d=1. // x.} } void sum_div(long a.g.float b.in").long &s){ //suma a doua numere s=x+y. } void ipotenuza(float a.ss. } int main() { int d.d<=a. f>>x>>y.s=0. f. //variabile globale void suma(long x.close(). long y.d++) .d++) if(a%d==0) s+=d.y)<<'\n'. return 0. s+=cif.int d. } void sumacif(long x. for(d=1.y.s variabile locale s=0.long &s){ //suma divizorilor lui x int d. s=0.cif.

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

a[100]. inv=0.i++) s+=x[i].g.inv.Afisati numerele dintr-o matrice ce au prop. f.i<=n.i<=n.int n){ int i. } if (y==inv) return 1.out").close().i.out"). while(x){ cif=x%10.close(). x=x/10.in"). return 0. for(i=1. f. y=x. g<<suma(a.i++) for(j=1. ifstream f("functii.a[10][10]. for( i=1.g.n)<<" ". for(i=1.close(). } // Afisati suma numerele dintr-un sir #include <fstream> using namespace std. for(i=1. //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]. inv=inv*10+cif. else return 0.i.s=0. ofstream g("functii. ca atat ele cat si patratul lor sunt palindroame #include <fstream> using namespace std. } int main() { f>>n. return s.j.j<=n. ofstream g("functii.in").i<=n. int n.y. int n. } int main() { f>>n.j. ifstream f("functii.i++) for(j=1.j<=n.i<=n.i++) f>>a[i]. int palin(long x){ long cif.j++) if(palin(a[i][j])&&palin(a[i][j]*a[i][j])) g<<a[i][j]<<" ".j++) f>>a[i][j].close(). pr5 .

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

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

nr=2. Construiti o matrice cu primele elemente in ordine crescatoare ce au exact trei divizori. k. n. for(d=1. b[10000].z.in").g.} int main() {f>>n.d++) if(a%d==0) k++. else g<<x*y.close(). a[1000][1000]. kk=0. d++) if(a%d==0) kk++. f>>x>>y. } int main() { int d. else return 0. x nr.d++) if(a%d==0) return 0. } //tema fie 3 nr x. nr.for(d=1. } long prim_eficient(long a){ int d. k=0. b[k]=nr. pt.d<=a. d=0. if(kk==2) return 1.y. int i.out"). divizori z cate cif pare are Pr10. return 1. d<=a. while(k<=n*n){ if(prim(nr)) {k++. if(k==2)return 1. kk. } nr++.cal. } . return 0. for(d=2.close(). long prim(long a ){ int d. if(prim_eficient(x)&&prim_eficient(y)) g<<x+y.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.d<=sqrt((float)a). ifstream f("sir. else return 0. j. f. if(a==0||a==1) return 0. ofstream g("sir.

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

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

}} void inversare (int x[100][100]. } Pr14. int n){ int i. . for(i=1.j<=n. f>>p>>q.a[100][100].out").j<=n. } int main() { citire (a. g<<'\n'. ifstream f("functii.i<=n.int&n){ int i. int n){ int i.j++) if(calcul(a[i][j])) k++.i<=n.i. return 0. j. void citire (int x[100][100]. //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. n). f>>n.j. } int calcul (int x){ int cif. j++) swap(x[p][j]. j<=n.n). for(j=1. } return 1.i++) for(j=1. inversare (a. for(i=1. i++){ for(j=1.n). while(x){ cif=x%10. ofstream g("functii. i<=n. int n. for(i=1 . citire (a.j++) f>>x[i][j]. if(cif%2==1) return 0.void afisare (int x[100][100].x[q][j]). x=x/10.n).j.i++) for(j=1. afisare(a. if(k==n*n) g<<"DA".in"). j<=n. j++) g<<x[i][j]<<' '. } int main(){ int k=0.

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

Sign up to vote on this title
UsefulNot useful