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;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful