While




Instructiunea While



     1.Se citesc pe rand n valori intregi. Sa se calculeze suma valorilor pare care au exact doua cifre.

#include<iostream.h>
int main()
{int n,x,i,s;
cout<<”Introduceti nr. de valori “;cin>>n;
i=1;s=0;
while(i<=n)
           {cout<<”Citeste valoare”;cin>>x;
             i++;
             if((x%2==0)&&(x%100>9)&&(x/100==0))
                   s=s+x;
            }
cout<<”Suma numerelor pare cu exact doua cifre este “<<s;
return 0;
}

     2.Se citesc pe rand n valori intregi. Sa se afiseze acele valori citite consecutive, care reprezinta si valori alaturate in intervalul numerelor intregi.

#include<iostream.h>
int main()
{int n,i,x,y;
cout<<”Introduceti nr de valori “;cin>>n;
i=2;
cout<<”Dati prima valoare “;cin>>x;
while(i<=n)
          {cout<<”Dati urmatoarea valoare “;cin>>y;
            i++;
            if(abs(x-y)==1)
                cout<<x<<” “<<y<<endl;
            x=y;
           }
return 0;
}

     3.Se citesc pe rand n valori intregi. Sa se calculeze media aritmetica a tuturor valorilor care sunt divizibile cu propria cifra a unitatilor.
#include<iostream.h>
int main()
{int n,x,y,i,k,s;
cout<<”Introduceti nr. de valori “;cin>>x;
i=1;s=0;k=1;
while(i<=n)
           {cout<<”Dati valoarea”;cin>>x;
             y=x%10;
             if(x%y==0)   {s=s+x;
                                       k++;
                                      }
             i++;
            }
cout<<”Media aritmetica este “<<s/k;
return 0;
}

     4.Se citesc pe rand n caractere. Sa se numere cate dintre acestea reprezinta litere mici, cate litere mari si cate sunt alte caractere. Afisati rezultatele pe randuri separate insotite de cate un mesaj.

#include<iostream.h>
int main()
{int n,i,k,m,v;
cout<<”Dati nr. de valori “;cin>>n;
i=1;k=0;m=0;v=0;
while(i<=n)
           {cout<<”Dati valoarea”;cin>>x;
             if(x>=’a’&&x<=’z’)   k++;
             else if(x>=’A’&&x<=’Z’)   m++;
             else v++;
             i++;
            }
cout<<”Exista”<<k<<”lietre mici”<<endl;
cout<<”Exista”<<m<<”lietre mari”<<endl;
cout<<”Exista”<<v<<”alte caractere”;
return 0;
}

     5.Se citesc pe rand n numere intregi. Calculati raportul dintre duma valorilor pare si numarul valorilor impare.

#include<iostream.h>
int main()
{int n,x,i,k,s;
cout<<”Introduceti nr. de valori “;cin>>n;
i=1;s=0;k=1;
while(i<=n)
       {cout<<”Citeste valoarea “;cin>>x;
         if(x%2==0)  s=s+x;
             else   k++;
         i++;
        }
cout<<”Raportul este “<<k/s;
return 0;
}

     6.Se citesc pe rand n valori reale. Sa se determine in procente cat la suta dintre valorile citite sunt negative.

#include<iostream.h>
int main()
{float n,x,i,k;
cout<<”Dati nr. de valori “;cin>>n;
i=1;k=0;
while(i<=n)
          {cout<<”Dati valoarea “;cin>>x;
            if(x<0)   k++;
            i++;
           }
cout<<”Procentul nr. negative este “<<(k*100)/n<<”%”;
return 0;
}

     7.Se citesc valori intregi pana la intalnirea unui numar negative. Sa se determine cea mai mare valoare para sic ea mia mica valoare impara citita. Sa se afiseze rezultatele pe acesi rand cu virgula intre ele.

#include<iostream.h>
int main()
{int x,min,max;
max=-32000;
min=32000;
cout<<”x=”;cin>>x;
while(x>=0)
           {if(x%2==0&&x>max)   max=x;
             if(x%2!=0&&x<min)   min=x;
             cout<<”x=”;cin>>x;
            }
cout<<”Cea mai mare valoare pare este “<<max<<endl;
cout<<”Cea mai mica valoare impara este “<<min;return 0;
}

     8.Se citesc valori intregi de la tastatura pana se introduce o valoare egala cu primul numar citit. Calculati in procente cate numere pare sic ate numere impare s-au citit. Afisati rezultatele pe randuri separate.

#include<iostream.h>
int main()
{int x,a,i,ip,ii;
i=1;ip=0;ii=0;
cout<<”a=”;cin>>a;
if(a%2==0)   ip++;
    else  i++;
cout<<”x=”;cin>>x;
while(x!=a)
           {i++;
             if(x%2==0)  ip++;
                  else   ii++;
             cout<<”x=”;cin>>x;
            }
cout<<”Numere pare “<<(ip*100)/i<<”%”<<endl;
cout<<”Numere impare “<<(ii*100)/i<<”%”;
return 0;
}

     9.Se citesc valori intregi pana la citirea lui 0. sa se verifice daca printer numerele citite exista numere care au toate cifrele egale. Se va scrie mesajul DA sau NU.

#include<iostream.h>
int main()
{int x,ok,k;
k=0;
cout<<”x=;cin>>x;
while(x!=0)
           {ok=1;
             while(x/10!=0)
                        {if(x%10!=x/10%10)   ok=0;
                          x=x/10;
                         }
             if(ok==1)   k++;
             cout<<”x=”;cin>>x;
            }
if(k==0)   cout<<”NU”;
     else   cout<<”DA”;
return 0;
}

     10.Se citesc caractere, pe rand, de la tastatura pana la intalnirea caracterului punct. Numarati si afisati cate caractere aflanumerice s-au citit.

#include<iostream.h>
int main()
{int x,k;
cout<<”x=”;cin>>x;
k=0;
while(x!=’.’)
           {if(x>=’a’&&x<=’z’&&x>=’A’&&x<=’Z’&&x>=’0’&&x<=’9’)   k++;
             cout<<”x=”;cin>>x;
            }
cout<<k<<” caractere aflanumerice”;
return 0;
}

     11.Se citesc pe rand valori itregi pana la citirea unui numar mai mare decat o valoare z cunoscuta. Calculati suma tuturor care se divid cu ultima cifra a primei valori citite.

#include<iostream.h>
int main()
{int x,z,i,s,a;
cout<<”z=”;cin>>z;
i=1;s=0;
cout<<”a=”;cin>>a;
cout<<”x=”;cin>>x;
while(x!=z)
           {if(x%(a%10)==0)   s=s+x;
             i++;
            }
cout<<”Suma este “<<s;
return 0;
}

     12.Sa se afiseze toate numerele naturale pana la n cu proprietatea ca suma cifrelor impare din numar este un numar par.

#include<iostream.h>
int main()
{int n,x,c,s,a;
cout<<”Dati nr. de valori “;cin>>n;
x=1;
while(x<=n)
           {a=x;
             s=0;
             while(a!=0)
                        {c=a%10;
                          if(c%2!=0)   s=s+c;
                          a=a/10;
                         }
              if(s%2==0&&s!=0)   cout<<x<<endl;
              x++;
             }
return 0;
}

     13.Se citeste un singur numar cu cel mult 9 cifre. Sa se verifice daca cifrele impare din numar incepand de la unitati sunt in ordine strict crescatoare.

#include<iostream.h>
int main()
{int x,ok,c;
cout<<”x=”;cin>x;
while(x%10%2==0)
           {x=x/10;
             ok=1;
             c=x%10;
             x=x/10;
             while(x!=0)
                       {if(x%10%2==0)
                             x=x/10;
                            else if(c>x%10)   ok=0;
                         x=x/10;
                         c=x%10;
                        }
            }
if(ok==1)  cout<<”Da”;
    else   cout<<”Nu”;
return 0;
}

     14.Sa se citeasca un numar intreg din mai mult de 5 cifre. Sa se formeze un alt numar cu ultimele k cifre in ordinea in care apar ele in numarul initial. Determinati cifra cea mai mica si cea mai mare din  noul numar.

#include<iostream.h>
int main()
{int nr,x,max,min,c;
cout<<”nr=”;cin>>nr;
max=0;min=9;
x=nr%1000;
while(x!=0)
          {c=x%10;
            if(c>max)   max=c;
                else if(c<min)  min=c;
            x=x/10;
          }
cout<<”Cea mai mare cifra este “<<max<<endl;
cout<<”Cea mai mica cifra este “<<min;
return 0;
}

     15.Sa se parcurga toate numerele din 3 cifre. Pentru fiecare numar din acest interval, care nu se termina cu cifra zero, sa se calculeze cmmdc-ul intre prima si ultima cifra a sa.

#include<iostream.h>
int main()
{int x,a,b;
x=100;
while(x<=999)
           {if(x%10!=0)
                 {a=x/100;
                   b=x%10;
                   while(a!=b)
                              if(a>b)  a=a-b;
                                  else   b=b-a;
                   cout<<x<<”~”<<a<<endl;
                 }
             x++;
           }
return 0;
}