Team BlueWater Game Online Tutorial's
Bine ati venit la Team-BlueWater!!Tutorial's 4 all Games!

C++ Clasa IX, Partea I

Go down

C++ Clasa IX, Partea I

Post  Karma on Sun Jul 31, 2011 7:31 am

NU VA LASATI COPLESITI DE DIMENSIUNEA ACESTUI TUTORIAL, ACEST TUTORIAL CONTINE TOATA MATERIA CLASEI A IX, SI NU SE POATE INVATA INTR-O SINGURA ZI.

Va sugerez sa-l scoateti la imprimanta, pentru a evita daune la nivelul ochilor.



Acest tutorial contine cele mai importante notiuni c++ ale clasei a IX. Informatiile din acest tutorial sunt luate de pe internet si din caietul meu de info de a noua. Deasemenea am atasat programele claselor a IX si a X.





Bun... sa incepem...



Introducerea in limbajul C++[/b]



In limbajul C++ lucram cu mai multe tipuri de date:



1. Date de tip int (numere intregi, ca de ex. -5, -3, 1, 2, 3, 25, 665, 12345)



2. Date de tip unsigned int (numere intregi fara semn inainte, asadar naturale)



3. Date de tip float (numere reale cu maxim 4 cifre dupa virgula, ca de ex. -5.2 , -3.5, 1.2, 52.6, 32.423, -234.4)



4. Date de tip unsigned float (numere reale cu maxim 4 cifre dupa virgula si fara semn inainte, asadar naturale)



5. Date de tip double (numere reale cu maxim 15 cifre dupa virgula, de ex, 251.241251251261, -123.4215166272)

Obs: double se foloseste intotdeauna singur... nu exista unsigned double, float double etc...



6. Date de tip short sau long:

-Ambele se folosesc deobicei cu signed si unsigned pentru a avea urmatoarele valori:



signed short: Valori intre -32767 si 32767

unsigned short: Valori intre 0 si 65535



signed long: Valori intre -2147483647 si 2147483647

unsigned long: Valori intre 0 si 4294967295

signed long long: Valori intre -9223372036854775807 si 9223372036854775807

unsigned long long: Valori intre 0 si 18446744073709551615



7. Date de tip char (siruri de caractere, ca de ex. "Studiez informatica", "I got a viruS")

Obs: Sirurile pot avea intre 0 si 255 de caractere.



8. Date de tip bool (Poate avea doua valori, 1 (adevarat) sau 0 (fals)) Puteti reveni mai tarziu la aceast tip de data, dupa ce parcurgeti structura programelor:



Code:


#include<iostream.h>                  //Am inclus in program baza de data iostream.h

void main()                          //Am declarat un antit main, de tip void           

{                                    //Am deschis antitul main, pentru a incepe programarea

   int a=2,b=3;                                          //Am declarat doua variabile de tip int, a si b, a avand valoarea 2 si b avand valoarea 3.

   bool cod;                                              //Am declarat o variabila de tip bool, care se numeste cod;

   if(a+b==5)                                              //Daca a+b este 5

      cod=true;                                      //valoarea bool va lua valoarea de adevarat, adica 1.

   if(cod==1)                                              //Daca valoarea bool, cod, este adevarata, adica 1.

      cout<<"Rezultatul este 5"<<endl;                //se va afisa pe monitor Rezultatul este 5, si se va trece la un rand nou (endl)

   else                                                    //iar daca cod nu este egal cu 1 (adevarata),

      cout<<"Rezultatul este incorect"<<endl;        //se va afisa Rezultatul este incorect, si se va trece la un rand nou (endl)

}




Dupa cum ati observat la programul de mai sus, la declararea valorilor de acelasi tip, le-am despartit prin virgula si la sfarsit am pus punct si virgula ;.

Obs: Variabilele bool, vor avea intotdeauna la inceput, valoarea de adevarat.



Code:


Variabilele se declara astfel:

tip_data variabila;

int a;

float c;

double d,f;





Operatorii limbajului C++



I. Operatori aritmetici

II. Operatori relationali

III. Operatori logici.

Si vor mai veni si alti mai tarziu pe parcursul acestui tutorial.





I. Operatori aritmetici



1. Operatorul adunare, +



int a=5,b=7;

a+b asadar 5+7;



2. Operatorul diferenta, -



int a=5;

float d=3.34;

a-d asadar 5-3.34;



3. Operatorul inmultire, *



int a=5,b=7,c=3;

a*b*c asadar 5*7*3;



4. Operatorul impartire, /



int a=5,c=3;

float b=7;

a/c asadar 5/3=1 De ce 1 si nu 1.6666? Deoarece a si c sunt variabile de tip intreg (adica numere naturale)

b/c asadar 7/3=2.3333 Aici avem o variabila float si o variabila int, asadar rezultatul va fi cu virgula.



5. Operatorul pentru restul impartirii a doua numere intregi, %



int x=11,z=3;

x%z asadar 11%3=2 3 merge in 11 de 3 ori... si ramane rest 2.



6. Operatorul radical, sqrt(variabila)



int a=7;

float b=7;

sqrt(a) asadar radical din 7 = 2 a este numar intreg

sqrt(b) asadar radical din 7 = 2,64575131 b este numar real, de tip float



7. Operatorul de ridicare la putere, pow(baza,exponent)



int a=7,b=2;

pow(7,2) asadar 7 la putrea 2 = 49





II. Operatori relationali





-Sunt folositi pentru a stabili daca relatia intre doua variabile este adevarata

1. Operatorul egalitate, ==



int a=7,b=2;

(a==b)=0 Asadar fals!



2. Operatorul diferit, !



int a=7,b=2;

(a!=b)=1 Asadar adevarat! (a este diferit de b)



3. Operatorul mai mare, >



int a=7,b=2;

a>b =1 Asadar adevarat!



4. Operatorul mai mare sau egal, >=




int a=7,b=2,c=2

a>=b =1

b>=c =1 Ambele sunt adevarate.



5. Operatorul mai mic, <



int a=7,b=2;

a<b =0 Fals.



6. Operatorul mai mic sau egal, <=



int a=7,b=2,c=2;

a<=b =1

c<=b =1 Ambele sunt adevarate.



Haideti sa va arat cateva exemple de exercitii cu operatorii relationali:



A.
Code:
int a=2,b=5,c=3,d=0;         

    (a!=b)>=(d==c)


a este diferit de b, asadar 1; iar d nu este egal cu c, asadar 0

1>=0

Rezultat final 1, relatia de mai sus este adevarata;



B.
Code:
int a=1,b=2,c=1,d=3;

  (a!=c)>((d-b)<=c)


a nu este diferit de c, asadar 0; iar d-b, 3-2 este mai mic sau egal cu c , asadar 1

0>1

Rezultat final 0, relatia de mai sus este falsa;







III. Operatori logici




-au valoarea logica doar 0 sau 1, in functie de valoarea de adevar.



1. Operatorul de negatie NOT, !



a | !a

1 | 0 Diferitul lui a=1, este 0.

0 | 1 Diferitul lui a=0, este 1.





2. Operatorul SI sau AND, &&



a | b | a&&b

1 | 1 | 1

0 | 0 | 0

1 | 0 | 0

0 | 1 | 0



a=1 SI b=1 rezulta valoarea de adevar 1

a=0 SI b=0 rezulta valoarea de fals, 0 (offtopic: rezulta valoarea de fals... suna aiurea, e corect macar?)

a=1 SI b=0 rezulta valoarea de fals, 0

a=0 SI b=1 rezulta valoarea de fals, 0



3. Operatorul SAU sau OR, ||




a | b | a||b

1 | 1 | 1

0 | 0 | 0

1 | 0 | 1

0 | 1 | 1



a=1 SI b=1 rezulta valoarea de adevar 1.

a=0 SI b=0 rezulta valoarea de fals 0.

a=1 SI b=0 rezulta valoarea de adevar 1.

a=0 SI b=1 rezulta valoarea de adevar 1.










Exerciti cu operatorii din acest tutorial



A. Sa se stabiliasca conditiile prin care se reprezinta cele 3 laturii ai unui triunghi oarecare, isoscel si dreptunghic:



Oarecare:
Code:
(a+b>c) && (b+c>a) && (c+a>b)


Isoscel:
Code:
(a==b) || (c=b) || (b==c)


Dreptunghic:
Code:
pow(a,2) + pow(b,2) == pow (c,2)




B. Sa se stabiliasca condiitile prin care se reprezinta laturile unui patrat si a unui romb:



Patrat:
Code:
(a==b) && (b==c) && (c==d) && (d==a)


Romb:
Code:
(a==b) && (b==c) && (c==d) && (d==a) && pow(a,2) + pow(d,2) == pow(b,2) + pow(c,2)




C. Sa se verifice daca elementul x apartine multimii de mai jos:



x ∈ [-10,5) ∪ (-30,20) ∪ [10,40] ∩ {1,2,3}

Pentru x ∈ Multimii :
Code:
(x>-50 && x<-20) && (x>-30 && x<20) || (x>=10 && x<=40) && x==1 || x==2 || x==3;


Pentru x nu apartine Multimii:
Code:
(x<=-50 || x>=-20) || (x<=-30 || x>=20) && (x<10 || x>40) || x!=1 && x!=2 && x!=3




Avand in sfarsit tipurile de date si operatorii terminati, putem trece la partea practica a programarii c++, la structura programelor.





Structura programelor



Code:
#include<iostream.h>                    //Am folosit comanda #include , pt a include baza de date iostream.h    (i=input, o=output, .h=header)

void main()                  //Am descis antitul void main(), in care vom scrie programul

{

      //Partea de declarat a variabilelor

      //Partea de citire a variabilelor

      //Opratiile cu variabilele respective

      //Partea de afisare a rezultatelor finale

}




Partea de declarat a variabilelor:

Code:
 int a=3,b,c;

float d;



Partea de citire a variabilelor:

Code:
cout<<"b=";

cin>>b;

cout<<"c=";

cin>>c;

cout<<"d=";

cin>>d;



Asa se citestc variabilele; Variabila a nu se mai citeste, deoarece iam atribuit lui a deja valoarea 3 (int a=3)



int n;

cout<<"Mesajul in care dau o valoare variabilei n de la tastatura:"              Obs: Intre " " de la cout<<, poate sa fie orice mesaj doriti dvs.

cin>>n;                cin este comanda prin care administram variabilei n, valoarea citita de la tastatura.





Operatiile cu variabilele respective si partea de afisare a rezultatelor finale:

Code:


int rezultat

a+b+c+d=rezultat;

cout<<"Rezultatul final al sumei celor 4 variabile este:"<<rezultat<<endl;              endl -> reprezinta un rand nou;





Ce am scris mai sus se mai poate scrie si asa:

cout<<"Rezultatul final al sumei celor 4 variabile este:"<<a+b+c+d<<endl;                  Obs: aici nu am mai folosit variabila rezultat.






Bun... acuma tot programul adunat din aceste 4 bucati:

Code:


#include<iostream.h>           

void main()                         

{

      int a=3,b,c;

      float d;

      cout<<"b=";

      cin>>b;

      cout<<"c=";

      cin>>c;

      cout<<"d=";

      cin>>d;

      int rezultat;

      rezultat=a+b+c+d;

      cout<<"Rezultatul sumei celor 4 variabile este:"<<rezultat<<endl;

}






Exercitii



A. Se citesc de la tastatura 2 variabile de tip int si float. Sa se faca suma,produsul,diferenta si impartirea lor. Deasemenea sa se verifice daca cele doua valori sunt egale (adevarat, 1, sau fals, 0).



Code:


#include<iostream.h>           

void main()                         

{

      int a;

      float b;

      cout<<"a=";

      cin>>a;

      cout<<"b=";

      cin>>b;

      cout<<"suma este:"<<a+b<<endl;

      cout<<"produsul este:"<<a*b<<endl;

      cout<<"diferenta este:"<<a-b<<endl;

      cout<<"rezultatul impartiri este:"<<a/b<<endl;

      cout<<"Operatorul de egalitate are valoarea<<(a==b)<<endl;

}




B. Se citesc de la tastatura 3 variabile de tip int. Sa se stabileasca care este variabila cea mai mare.



Pentru a face acest exercitiu, va voi explica structuriile de control: "simpla" si "cu ramura vida". Cea simpla are forma:

Code:


if(conditie)            //daca conditia este adevarata sa se afiseze expresia 1, iar daca nu, expresia 2.

      expresie 1;

else

      expresie 2;



Strucutra de control cu ramura vida are forma:

Code:


if(condite)              //daca conditia este adevarata, sa se afiseze expresia, iar daca nu, nu se afiseaza nimic.

    expresie;





Acuma inapoi la exercitiu B:

Code:


#include<iostream.h>

void main()

{

      int a,b,c;

      cout<<"a=";

      cin>>a;

      cout<<"b=";

      cin>>b;

      cout<<"c=";

      cin>>c;

      if(a>b && a>c)

            cout<<"a este cea mai mare variabila"<<endl;

      if(b>a && b>c)

            cout<<"b este cea mai mare variabila"<<endl;

      if(c>a && c>b)

            cout<<"c este cea mai mare variabila"<<endl;

      if(a=b || b=c || c=a)

            cout<<"Doua sau toate variabilele sunt egale<<endl;

}






IV. Operatori logici pe biti in baza 2.



OBS: biti oricarui numar in baza 2 trebuie sa fie multipli de 4. Asadar se completeaza in fata cu 0, pana devine multiplu de 4.



1. Operatorul de negatie, ~



a | ~a

1 | 0

0 | 1



2. Operatorul SI (AND), &



a | b | a&b

1 | 1 | 1

0 | 0 | 0

1 | 0 | 0

0 | 1 | 0





3. Operatorul SAU (ori), |




a | b | a|b

1 | 1 | 1

0 | 0 | 0

1 | 0 | 1

0 | 1 | 1



4. Operatorul SAU-Exclusiv, ^



a | b | a^b

1 | 1 | 0

0 | 0 | 0

1 | 0 | 1

0 | 1 | 1



Daca valorile nu sunt egale, rezultatul va fi adevarat, asadar 1.





Bun... acestia sunt cei 4 operatori, acuma sa aflam cum se afla biti unui numar in baza doi.



int a=13,b=19;



Numarul se imparte la 2, pana da rezultatul 0.



13/2=6 rest 1; 19/2=9 rest 1;

6/2=3 rest 0; 9/2=4 rest 1;

3/2=1 rest 1; 4/2=2 rest 0;

1/2=0 rest 1; 2/2=1 rest 0;

................... 1/2=0 rest 1;



13 in baza 2 = 00001101

19 in baza 2 = 00010011



Asa se folosesc operatorii logici pe biti in baza 2:

Code:


            7  6  5  4  3  2  1  0 

        a | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 13= 2 la 0 + 2 la 2 + 2 la 3 = 1 + 4 + 8       

        b | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 19= 2 la 0 + 2 la 1 + 2 la 4 = 1 + 2 + 16

      ~a | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 242     

      ~b | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 136     

      a|b | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 31     

      a&b | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 2     

      a^b | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 30




V. Operatori de incrementare si decrementare





1. Prefixati



++ pentru incrementare si -- pentru decrementare inaintea unei variabile.

Operatorii prefixati de incrementare maresc mai intai cu 1 si apoi memoreaza.

Operatorii prefixati de decrementare scad mai intai cu 1 si apoi memoreaza.



Exemplu:

Code:


int a=5;               

++a=6;            Valoarea se memoreaza intotdeauna.

--a=5;

--a=4;

++a=5





2. Postfixati





++ pentru incrementare si -- pentru decrementare dupa variabile.

Operatorii prefixati de incrementare maresc mai intai memoreaza valoarea originala, apoi maresc cu 1.

Operatorii prefixati de decrementare scad mai intai memoreaza valoarea originala, apoi scad cu 1.



Exemplu:

Code:


int a=5;

a++=5;

a=6;







Exercitiu:

Code:


int a=3,b=2,c=4

++a + a++ - ++b * c++= ?    A. 

4 + 4 - 3 * 4 = -4

++c * a++ - (10 + ++b) =?    B.  //VALORILE SE MEMOREAZA DE LA PRIMUL EXERCITIU, A.

6 * 5 - 14 = 30 - 14 = 16







VI. Operatori de atribuire





-Se noteaza cu egal



1. Atribuire simpla:



Ex: int a=4 -> am atribuit variabili a de tip intreg, valoarea 4

float d=12.4 -> am atribuit variabili de tip float, valoarea 12.4



2. Atribuirea multipla:



Ex: int a,b,c;

a=b=c=5 -> am atribuit celor 3 variabile, valoarea 5




3. Atribuirea cu operatorii:



Este de forma nume_variabila operator = valoare



A. Operatorul +



int a=5;

a+=7;

a=5+7;

a=12;



B. Operatorul -



int a=5;

a-=7;

a=5-7;

a=-2;



C. Operatorul *



int a=5;

a*=7;

a=5*7;

a=35;



D. Operatorul /



int a=5;

a-=7;

a=5/7;

a=0;



E. Operatorul %



int a=5;

a%=7;

a=5%7;

a=5;



VII. Operatorul virgula ,



-separa doua sau mai multe operatii de atribuire



Ex: int a=5,b=9;

float c=11, d=2;

a+=b-=7,b/=a%2,c/=b%=a*2; <--- Operatorul virgula ,

a+=2 ---> a=5+2+7=14;

b%=14 ---> b=2%14=2;

c/=2 ---> c=11/2=5.5;





VIII. Operatorul Conditional



-evalueaza o expresie in functie de conditie.

-Are forma: cout<<(conditie ? expresie1:expresie2)

-Daca conditia este adevarata, se va executa expresia 1, iar daca nu, expresia 2



Ex:int a=10,b=20,c=30;

cout<<(a>b ? a-=b : b-=a) , asadar se va afisa a-=b, adica -10





OK!!! Bucurativa... am terminat operatori din c++. Finaly !







Structuri de control



I. Liniara



II. Alternativa

A. Simpla

B. Cu ramura vida

C. Generalizata



III. Repetitiva cu numar cunoscut de pasi



IV. Structura repetitiva cu numar cunoscut de pasi:

A. Conditionata anterior.

B. Conditionata posterior.





Structura alternativa simpla si cu ramura vida am facut-o mai sus.



Incepem cu cea liniara.



I. Liniara



-are forma:

Expresie 1;

Expresie 2;

...

Expresie n;



Aceasta structura cuprine toate operatiile de citire, scriere si expresi cu diferite calcule si algoritmi.



II. Alternativa



C. Generalizata



-Efectueaza/alege o actiune din mai multe posibile.



Are forma:



Code:


#include<iostream.h>

void main()

{

      int opt;

      cout<<"Introduceti optiunea:";

      cin>>opt;

      switch(opt)

      {

      case 1: secventa_de_actiune1;              //Secventele de actiune consta din verificarea relatiilor, afisarea mesajelor, calcule etc...

            break;                                //Oprim optiunea 1.  Case reprezinta butonul de la tastatura. (Butonul cu numarul 1)

      case 2: secventa_de_actiune2;              //Daca foloseam litere in loc de numere, forma era :  case 'a': secventa_de_actiune1;

            break;

      default:cout<<"Optiunea aleasa nu exista";  //Default reprezinta mesajul care apare, daca ai ales o optiune inexistenta.

      }

}








III. Structura repetitiva



Are forma:

for(contor=expresie_initializare; conditie; expresie_incrementare sau expresie_decrementare;



*contor este o variabila care se initializeaza cu 1;

*conditie verifica daca o conditie este adevarata;

*expresie_incrementare sau expresie_decrementare aduna sau scade 1 la valorile contorului;



Se folosesc urmatoarele variabile:



1. O variabila de tip int notata cu i;

2. Numarul de valori care se citesc, notate cu n;

3. Valorile care se citesc, notate cu val;



*Suma se noteaza cu int s=0; si produsul cu int p=1;





Exemplu, citirea valorilor:

Code:


#include<iostream.h>

void main()

{

      int n,i,val;

      cout<<"n=";

      cin>>n;

      for(i=1;i<=n;i++)                            //Daca n este 5

      {

            cout<<"val=";                          //Vom avea de scris de la tastatura 5 valori.

            cin>>val;

      }

}






Deci... daca n=5 , atunci pentru:

i=1 -> val=a

i=2 -> val=b

i=3 -> val=c

i=4 -> val=d

i=5 -> val=e



Valorile pot sa aiba aceasi valoare... de exemplu:

i=1 -> val=6

i=2 -> val=6

i=3 -> val=11

i=4 -> val=36


i=5 -> val=6



Suma va fi atunci 6+6+11+36+6.

Produsul va fi atunci 6*6*11*36*6.





Exercitii:



Se citesc de la tastatura n valori, sa se scrie un program in c++ care face suma si produsul valorilor citite:



Code:


#include<iostream.h>

void main()

{

      int n,i,val,s=0,p=1;

      cout<<"n=";

      cin>>n;

      for(i=1;i<=n;i++)                           

      {

            cout<<"val=";                         

            cin>>val;

            s=s+val;              //Asa se face suma valorilor

            p=p*val;              //Asa se face produsul valorilor

      }

      cout<<"Suma este:"<<s<<" si produsul<<p<<endl;

}




Se citesc 2 numere de tip int, a si b, care reprezinta capetele unui interval. Sa se scrie un program care afiseaza suma numerelor cu 1 cifra, si produsul celor cu 2 cifre si media aritmetica a tututor numerelor:

Code:


#include<iostream.h>

void main()

{

      int a,b,i,p=1,nr=0,s1=0,s2=0;

      cout<<"a=";

      cin>>a;

      cout<<"b=";

      cin>>b;

      for(i=a;i<=b;i++)                    //a si b reprezinta capetele unui interval, si i numerele din el. asadar... daca a=5 si b=123..

      {                                            //(incepe de la a) i va merge din 1 in 1 (i++) pana la sfarsitul intervalului (b) 

            if(i>=0&&i<=9)                //Daca numerele sunt de 1 cifra, se va face suma

                  s1=s1+i;

            if(i>=10&&i<=99)            //Daca numerele sunt din 2 cifre, se va face produsul

                  p=p*i;

            s2=s2+i;                          //Am facut suma tututor numerelor intre a si b si leam numarat pentru a face media aritemtica

            nr++;

      }

      cout<<"Suma numerelor de 1 cifra este"<<s1<<endl;

      cout<<"Produsul numerelor de 2 cifre este"<<s2<<endl;

      cout<<"Media arimtetica a tututor numerelor este"<<(float)s2/nr<<endl;        //Am scris float, deoarece vreau sami arate rezultatu cu virgula

}





Se citesc 2 variabile a si b, care reprezinta capetele a unui interval. Sa se afiseze cate numere contine intervalul, numerele pare, numerele impare si numarul lor:



Code:


#include<iostream.h>

#include<math.h>      [You must be registered and logged in to see this link.] se foloseste la radical si la putere

void main()

{

      int a,b,nr=0,i;

      cout<<"a=";

      cin>>a;

      cout<<"b=";

      cin>>b;

      for(i=a;i<=b;i++)

      {

            if(i%2==0)

                  cout<<i<<" ";      //sa se afiseze numerele pare (i%2==0), separate prin cate un spatiu

            cout<<endl              //rand nou dupa afisare

            if(i%2==1)

            {

                  cout<<i<<" ";      //sa se afiseze numerele impare (i%2==1), separate prin cate un spatiu

                  nr++;                  //nr++ incepe sa numere valorile impare

            }

            cout<<endl;              //rand nou dupa afisare

      }

      cout<<"Sunt "<<nr<<" numere impare."<<endl;

      cout<<"Intervalul contine "<<b-a<<" numere"<<endl;

}




Sa se scrie un program care afiseaza in ordine crescatoare si descrescatoare alfabetul englez:

Code:


#include<iostream.h>

void main()

{

      char i;        //folosim char, deoarece dorim sa afisam litere

      for(i='a';i<='z';i++)                  //ordine crescatoare

            cout<<i<<" ";

      cout<<endl;

      for(i='z';i>='a';i--)                    //ordinea alfabetului este descrescatoare, incepem cu ultima litera, pana la prima (i--)

            cout<<i<<" ";

      cout<<endl;

}




Probabil va intrebati de ce folosesc inainte de a scrie ceva in c++, doua slashuri //... In caz ca vreti sa dati copy paste in visul c++, a programelor scrise in acest tutorial, informatiile bonus scrise de mine nu va vor disturba/erona programul. Dupa cele 2 slashuri puteti scrie ce doriti.



Se citesc de la tastatura a si b, doua variabile de tip int care reprezinta capetele unui interval si c. Sa se afiseze multipli de c, numerele divizibile cu 3, cate 3 pe fiecare rand, numerele din 3 in 3, cate 5 pe fiecare rand:



Code:


#include<iostream.h>

void main()

{

      int a,b,c,i,nr1=0,nr2=0;

      cout<<"a=";

      cin>>a;

      cout<<"b=";

      cin>>b;

      cout<<"c=";

      cin>>c;

      for(i=a;i<=b;i++)                  //Afisarea multiplilor de c

      {     

            if(i%c==0)

            {

                  cout<<i<<" ";

            }

      }

      cout<<endl;

      for(i=a;i<=b;i++)                  //Afisarea numerelor divizibile cu 3

      {

            if(i%3==0)

            {

                  cout<<i<<" ";

                  nr1++;

                  if(n1%3==0)            //la fiecare 3 numere sa sara la rand nou

                        cout<<endl;

            }

      }

      cout<<endl;

      for(i=a;i<=b;i+=3)              //i+=3 , din 3 in 3 numere sa citeasca

      {

            cout<<i<<" ";

            nr2++;

            if(nr2%5==0)                  //la fiecare 5 numere sa sara la rand nou

                  cout<<endl;

      } 

      cout<<endl;

}






IV. Structuri repetitive cu numar necunoscut de pasi



Are forma:



Code:


while(conditie)

{

      secventa de actiune;

}




Sa se afiseze suma cifrelor a unui numar;

Code:


#include<iostream.h>

void main()

{

    long n;

    cout<<"n=";

    cin>>n;

    while(n!=0)                  //cat timp n este diferit de 0, executa secventa urmatoare de actiuni

    {

          s=s+n%10;            //acesta este algoritmu pentru a imparti un numar in mai multe cifre... n%10, rand nou n=n/10

          n=n/10;

    }   

cout<<"Suma cifrelor este:"<<s<<endl;

}




Algoritm pentru inversul unui numar:

Code:


#include<iostream.h>

void main()

{

    long n;

    long inv;

    cout<<"n=";

    cin>>n;

    while(n!=0)

    {

          inv=inv*10+n%10;            //algoritmul de invers al unui numar n

          n=n/10;

    }

}


avatar
Karma
Admin
Admin

Mesaje : 1092
Data de inscriere : 2011-04-22
Varsta : 27
Localizare : Craiova

View user profile http://team-bluewater.forumz.ro

Back to top Go down

Back to top


 
Permissions in this forum:
You cannot reply to topics in this forum