Sunteți pe pagina 1din 6

Se citesc numere până la introducerea numărului 0.

Să se afişeze numărul de numere


citite, suma şi media aritmetică a numerelor citite.

#include <iostream>

using namespace std;

int main()
{
int Suma_numerelor=0, nr_de_nr=0, nr_citit;
float Medie_aritmetica;
while (nr_citit!=0) //pana cand se introduce valoarea 0
{
cout<<"Introduceti numarul citit nr_citit=";cin>>nr_citit; //aici se citeste efectiv
numarul
if(nr_citit!=0)
{
nr_de_nr=nr_de_nr+1; //aici se mareste cu o unitate numarul de numere citite
Suma_numerelor=Suma_numerelor+nr_citit;
}
}
cout<<"Numarul de numere introduse pana la introducerea valorii 0 este:"<<
nr_de_nr<<endl;
cout<<"Suma numerelor introduse pana la introducerea valorii 0 este:"<<
Suma_numerelor <<endl;
Medie_aritmetica=(float)Suma_numerelor/nr_de_nr;
cout<<"Media numerelor introduse pana la introducerea valorii 0
este:"<<Medie_aritmetica<<endl;
return 0;
}

Să se citesc n numere. Să se afişeze valoarea maximă. După aceasta, să se afişeze de câte


ori apare această valoare.

#include <iostream>

using namespace std;

int main()
{
int i,n,nr_citit, maxim_nr=0,nr_aparitii_maxim=0;
cout<<"Numarul de numere citite n=";cin>>n;
cout<<"Introduceti primul numar nr_citit ";cin>>nr_citit;
maxim_nr=nr_citit;
nr_aparitii_maxim=nr_aparitii_maxim+1;
for(i=2;i<=n;i++)
{
cout<<"Numarul citit la etapa "<<i<<" este nr_citit=";cin>>nr_citit; //se citesc pe
rand cele n numere
if(nr_citit>=maxim_nr) //se compara - se verifica - fiecare numar citit cu maximul
precedent obtinut
{
maxim_nr=nr_citit; //daca numarul citi este mai mare decat maximul precedent
acesta - numarul citit!!!! - devine maxim actual
nr_aparitii_maxim=nr_aparitii_maxim+1;
}
}
cout<<"Maximul celor "<<n<<" numere introduse este:"<<maxim_nr<<endl;
cout<<"Numarul de aparitii a valorii maxime "<<maxim_nr<<" este:"<<
nr_aparitii_maxim<<endl;
return 0;
}

Se citește un număr n de la tastatură. Se cere să se numere cifrele pare/impare

#include <iostream>

using namespace std;

int main()
{
int nr_introd, nr_cifre_pare=0, nr_cifre_impare=0,ultima_cifra; //numarul introdus
va avea un numar de cifre pare si un numar de cifre impare
//Ex. nr_introd=12458 => nr_cifre_pare=3 si nr_cifre_impare=2
cout<<"nr_introd=";cin>>nr_introd;
while(nr_introd!=0) //testez cat timp numarul introdus este diferit de 0 => pot sa
verific paritatea cifrelor sale
{
cout<<"La acest miment numarul nostru este:"<<nr_introd<<endl;
ultima_cifra=nr_introd%10; //se determina ultima cifra a numarului introdus Ex.
12458%10 = 8
cout<<"Ultima cifra a numarului de vericat este:"<<ultima_cifra<<endl;
if(ultima_cifra%2==0) //testez (verific) daca ultima cifra a numarului introdus este
PARA
nr_cifre_pare=nr_cifre_pare+1; //numarul de cifre pare creste cu 1 => aceeasi
scriere este nr_cifre_pare++
else //se intelege ca ultima cifra nu este para DECI ESTE IMPARA
nr_cifre_impare=nr_cifre_impare+1;
nr_introd=nr_introd/10; //dupa ce se verifica paritatea ultimei cifre se renunta la
ultima cifra a numarului astfel incat numarulul introdus sa devina numarul initial
FARA ULTIMA CIFRA
//nr_introd=12458 => la aceasta etapa nr_introd devine 1245 PENTRU CA
12458/10=1245
}
cout<<"Numarul de cifre pare din numarul initial introdus
este:"<<nr_cifre_pare<<endl;
cout<<"Numarul de cifre impare din numarul initial introdus
este:"<<nr_cifre_impare<<endl;
return 0;
}

Se citește un număr n. Să se testeze dacă acesta este palindrom Ex. 1 nr=1247


oglinda=7421 Dar 1247 != 7421 adica 1247 NU ESTE PALINDROM! Ex. 2 nr=12421
oglinda=12421 Dar 12421 = 12421 adica 12421 ESTE PALINDROM!

oglina=0
nr=1246 => 1246/10 =124 (div) si 1246%10=6 (mod) => oglinda=0*10+6=6
nr=124 => 124/10=12 (div) si 124%10=4 (mod) => oglinda=6*10+4=64
nr=12 => 12/10=1 (div) si 12%10=2 (mod) =>oglinda=64*10+2=642
nr=1 => 1/10=0 (div) si 1%10=1 (mod) =>oglinda=642*10+1=6421
STOP!!! (a iesit din while)
OGLINDA= OGLINDAVECHE*10+ULTIMA CIFRA

#include <iostream>

using namespace std;

int main()
{
int ultima_cifra,nr_introdus,oglinda_nr_introdus=0,copie_nr_introdus;
cout<<"Introduceti numarul de testat PALINDROM -
nr_introdus=";cin>>nr_introdus;
copie_nr_introdus=nr_introdus; //se face o copie a numarului introdus deoarece pe
parcursul programului numarul introdus o sa devina 0!!!!
while (nr_introdus!=0)
{
ultima_cifra=nr_introdus%10; //instructiunea standard pentru determinarea
ultimei cifre dintr-un numar - restul impartirii numarului la 10
oglinda_nr_introdus=oglinda_nr_introdus*10+ultima_cifra; //instructiunea
standard de obtinere a oglinditului unui numar
nr_introdus=nr_introdus/10; //numarul introdus devine la fiecare etapa (pana la
0!!!!) numarul precedent fara ultima cifra
}
cout<<"Numarul introdus initial este:"<<copie_nr_introdus<<endl;
cout<<"Oglinditul numarului introdus initial este:"<<oglinda_nr_introdus<<endl;
if(copie_nr_introdus==oglinda_nr_introdus)
cout<<"NUMARUL INTRODUS ESTE PALINDROM!!!"<<endl;
else
cout<<"NUMARUL INTRODUS NU ESTE PALINDROM!!!"<<endl;
return 0;
}
Se citește un număr n. Să se afișeze cel mai mare număr care se poate forma cu cifrele
acestui număr.

Data viitoare se fac vectorii!!! Această aplicație o să fie făcută data viitoare cu vectori!

Se citește un număr n. Să se calculeze S=2/(2*3) + 2/(3*4)+...+2/(n*(n+1)). – suma


fericirii!!!

#include <iostream>

using namespace std;

int main()
{
int i,n;
float S=0;
cout<<"Introduceti valoarea lui n => n=";cin>>n;
for(i=2;i<=n;i++) //stim numarul de pasi => folosesc instructiunea repetitiva cu
numar cunoscut de pasi FOR
{
cout<<"La aceasta etapa a for-ului i-ul este "<<i<<endl;
S=S+(float)2/(i*(i+1));
cout<<"La aceasta etapa suma este suma trecuta + 2/(i*(i+1)) adica "<<
(float)2/(i*(i+1))<<endl;
}
cout<<"*************************************************"<<endl;
cout<<"SUMA FINALA A EXPRESIEI fericirii este:"<<S<<endl;
return 0;
}

Să se transforme un număr n din baza 10 în baza 2. – transformarea aceasta se numește


CONVERSIE!!!! => practic ne propunem să facem conversia unui număr scris în baza
10 (baza naturală) în baza 2 (baza binară).

Exemplu: nr_baza_10=15 baza=2 => se împarte tot timpul la 2!!!!


15:2 = 7 rest 1 (pentru ca 7 – catul – este diferit de 0 => continuăm împărțirea)
7:2 = 3 rest 1 (pentru ca 3 – catul – este diferit de 0 => continuăm împărțirea)
3:2 =1 rest 1 (pentru ca 1 – catul – este diferit de 0 => continuăm împărțirea)
1:2 = 0 rest 1 (pentru ca 0 – catul – este egal cu 0 => NE OPRIM!!!!)
Adică putem scrie numărul în bază 2 ca fiind nr_baza_2 = “lipirea resturilor obținute
DE LA COADĂ LA CAP” => nr_baza_2=1111

Exemplu: nr_baza_10=17 baza=2 => se împarte tot timpul la 2!!!!


17:2 = 8 rest 1 (pentru ca 8 – catul – este diferit de 0 => continuăm împărțirea)
8:2 = 4 rest 0 (pentru ca 4 – catul – este diferit de 0 => continuăm împărțirea)
4:2 =2 rest 0 (pentru ca 2 – catul – este diferit de 0 => continuăm împărțirea)
2:2 = 1 rest 0 (pentru ca 1 – catul – este diferit de 0 => continuăm împărțirea)
1:2 = 0 rest 1 (pentru ca 0 – catul – este egal cu 0 => NE OPRIM!!!!)
Adică putem scrie numărul în bază 2 ca fiind nr_baza_2 = “lipirea resturilor obínute
DE LA COADĂ LA CAP” => nr_baza_2=10001

#include <iostream>

using namespace std;

int main()
{
int nr_in_baza10, nr_in_baza2=0,oglinda_nr_in_baza2=0, restul, ultima_cifra;
cout<<"Introduceti numarul in baza 10 => nr_in_baza10=";cin>>nr_in_baza10;
while(nr_in_baza10!=0)
{
restul=nr_in_baza10%2; //se face împărțirea la bază!!!!
oglinda_nr_in_baza2=oglinda_nr_in_baza2*10+restul; //aici se construiste cifra cu
cifra oglinditul numarului in baza 2
nr_in_baza10=nr_in_baza10/2; //aici numarul introdus (cel in baza 10) devine catul
impartirii la 2
}
cout<<"Oglinditul numarului in baza 2 este:"<<oglinda_nr_in_baza2<<endl;
while (oglinda_nr_in_baza2!=0)
{
ultima_cifra=oglinda_nr_in_baza2%10; //se face împărțirea la 10!!!!
nr_in_baza2=nr_in_baza2*10+ultima_cifra;
oglinda_nr_in_baza2=oglinda_nr_in_baza2/10;
}
cout<<"Numarul obtinut prin conversia in baza 2 este:"<<nr_in_baza2<<endl;
return 0;
}

Să se transforme un număr n din baza 2 în baza 10. – transformarea aceasta se numește


CONVERSIE!!!! => practic ne propunem să facem conversia unui număr scris în baza
2 (baza binară) în baza 10 (baza naturală).

Exemplu: nr_baza_2=10110 baza=2 !!!! 2^3 – 2 la puterea 3 adica 2*2*2=8


nr_baza10 =1*2^4+0*2^3+1*2^2+1*2^1+0*2^0
nr_baza10 =1*16+0*8+1*4+1*2+0*1
nr_baza10 =16+0+4+2+0 = 22
#include <iostream>
#include <math.h> //o folosim aici pentru functia putere POW!!!

using namespace std;

int main()
{
int nr_in_baza2, nr_in_baza10=0, ultima_cifra,puterea_lui_2=0;
cout<<"Introduceti numarulul in baza 2 => nr_in_baza2=";cin>>nr_in_baza2;
while (nr_in_baza2!=0)
{
ultima_cifra=nr_in_baza2%10; //aici se determină ultima cifră a numarului in baza 2
nr_in_baza10=nr_in_baza10+ultima_cifra*pow(2,puterea_lui_2); //aici se construiește
numarul în bază 10
nr_in_baza2=nr_in_baza2/10; //numarul in baza 2 ramane fara ultima cifra
puterea_lui_2=puterea_lui_2+1; //aici crește puterea lui 2 cu o unitate
}
cout<<"Numarul in baza 10 obtinut prin conversia numarului scris in baza 2
este:"<<nr_in_baza10<<endl;
return 0;
}

S-ar putea să vă placă și