Doriți să reacționați la acest mesaj? Creați un cont în câteva clickuri sau conectați-vă pentru a continua.

    C++ tutorial - partea I

    CenzuraH
    CenzuraH
    Fondator


    Mesaje : 487
    Data de inscriere : 02/04/2014
    Varsta : 26
    Localizare : Brasov
     Warn-uri acumulate : 0% warn

    C++ tutorial - partea I Empty C++ tutorial - partea I

    Mesaj  CenzuraH Vin 11 Iul 2014, 14:48

    Introducerea in limbajul C++

    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:

    Cod:
    #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.

    Cod:
    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.
    Cod:
    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.
    Cod:
    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:
    Cod:
    (a+b>c) && (b+c>a) && (c+a>b)

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

    Dreptunghic:
    Cod:
    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:
    Cod:
    (a==b) && (b==c) && (c==d) && (d==a)

    Romb:
    Cod:
    (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: (Select All)
    (x>-50 && x<-20) && (x>-30 && x<20) || (x>=10 && x<=40) && x==1 || x==2 || x==3;


    Pentru x nu apartine Multimii:
    Code: (Select All)
    (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: (Select All)
    #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: (Select All)
    int a=3,b,c;

    float d;


    Partea de citire a variabilelor:

    Code: (Select All)
    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: (Select All)
    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: (Select All)
    #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: (Select All)
    #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: (Select All)
    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: (Select All)
    if(condite)              //daca conditia este adevarata, sa se afiseze expresia, iar daca nu, nu se afiseaza nimic.

        expresie;




    Acuma inapoi la exercitiu B:

    Code: (Select All)
    #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: (Select All)
    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: (Select All)
    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: (Select All)
    int a=5;

    a++=5;

    a=6;






    Exercitiu:

    Code: (Select All)
    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: (Select All)
    #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: (Select All)
    #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: (Select All)
    #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: (Select All)
    #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: (Select All)
    #include<iostream.h>

    #include<math.h>       http://math.h 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: (Select All)
    #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: (Select All)
    #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: (Select All)
    while(conditie)

    {

         secventa de actiune;

    }




    Sa se afiseze suma cifrelor a unui numar;

    Code: (Select All)
    #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: (Select All)
    #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;

        }

    }






    Partea a doua a tutorialului cu cele mai importante notiuni ale clasei a noua, va fi postata de mine in decursul saptamanii urmatoare. Sper ca acest tutorial va fost de folos. Daca aveti intrebari, nu ezitati sa le puneti.



    Partea a doua: http://codebox.ro/forum/index.php?/topic...#entry9914

      Data/ora curentă este: Dum 28 Apr 2024, 00:50