P. 1
Curs Code Blocks

Curs Code Blocks

|Views: 496|Likes:
Published by Filipoiu Nicolae
curs ce te ajuta sa intelegi utilizarea programului Code Blocks
curs ce te ajuta sa intelegi utilizarea programului Code Blocks

More info:

Published by: Filipoiu Nicolae on Jun 06, 2013
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

02/06/2015

pdf

text

original

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;

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

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

cout<<(a<<2). 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. cout<<(a>>3). se afisaza 5 13(10)=1101(2) 7(10)= 111(2) & 0101(2) =5(10) Operatorul sau exclusiv „^” a=13. cout<<(a<<3). cout<<a&b. 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. 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. b=7. se afiseaza 3 Operatorul sau „|” a=13. cout<<a|b. b=7. 17(10)=10001(2) => 100(2) deplasat => 4(10) deci 17(10)= 4(10) Practic a>>x este a/2x (div) a=13. cout<<a^b.– 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->