Sunteți pe pagina 1din 5

//6. Sa se citeasca 2 valori intregi.

//Sa se calculeze si sa se afiseze restul impartirii celor 2 numere.

#include <iostream>

using namespace std;

int main()
{
int a, b, c, r;
//definim 4 variabile intregi care vor memora cele 2 numere (a, b),
//catul (c) si restul (r) impartirii dintre acestea

cout<<"a=";
cin>>a;
cout<<"b=";
cin>>b;

c = a/b;
r = a%b;
//restul se calculeaza cu ajutorul operatorului rest (%)

cout<<a<<" / "<<b<<" = "<<c<<" rest "<<r;


}

//7. Se introduce de la tastatura un caracter. Sa se afiseze codul ASCII


//al caracterului citit, folosind un mesaj de forma:
//Caracterul ... are codul ASCII ... !!!

#include <iostream>

using namespace std;

int main()
{
char c;
//declaram o variabila caracter care va memora caracterul al carui
//cod ASCII dorim sa-l afisam

cout<<"Introduceti un caracter: ";


cin>>c;

cout<<"Caracterul "<<c<<" are codul ASCII "<<(int)c<<" !!!";


//codul ASCII il aflam prin convertirea caracterului la tipul intreg,
//printr-o constructie cast ((int)c)
}
//8. Se introduc de la tastatura valorile intregi pentru a si b.
//Folosind operatorul ternar, sa se afiseze maximul dintre a,b.

#include <iostream>

using namespace std;

int main()
{
int a, b, max;
//declaram 3 variabile intregi pentru memorarea celor doua numere si a
//maximului dintre acestea

cout<<"a=";
cin>>a;
cout<<"b=";
cin>>b;

max = a>b ? a : b;
//daca conditia din fata semnului inytrebarii ? este adevarata (a>b in
//cazul nostru), atunci expresia va lua valoarea de dinainte de : (a in
//cazul nostru), si valoarea de dupa : daca expresia este falsa (b in
//cazul nostru prin urmare, daca a>b atunci max va lua valoarea a,
//respectiv b in cazul in care a nu este mai mare decat b.

cout<<"Maximul dintre "<<a<<" si "<<b<<" este "<<max;


}
//9. Sa se citeasca un numar intreg format din 4 cifre (abcd).
//Sa se calculeze si sa se afiseze valoarea expresiei reale:
//4*a + b/20 -c + 1/d.

#include <iostream>

using namespace std;

int main()
{
int n, a, b, c, d;
float exp;
//declaram 5 variabile intregi: n - numarul format din 4 cifre,
//a, b, c, d - cifrele numarului,
//si un numar real exp ce va memora rezultatul expresiei

cout<<"Introduceti un numar format din 4 cifre (abcd): ";


cin>>n;

d = n%10;
//ultima cifra a numarului va fi restul impartirii numarului la 10;
c = (n/10)%10;
//pentru a afla cifra c, trebuie mai intai sa indepartam ultima cifra
//(d). Aceasta se face impartind numarul la 10 (numarul este intreg si
//rezultatul impartirii la 10 va fi tot un numar intreg).
//Dupa ce am eliminat ultima cifra, c va fi restul impartirii la 10
b = (n/100)%10;
//cifra b va fi restul impartirii la 10 a numarului rezultat dupa
//indepartarea ultimelor doua cifre din b (b/100)
a = n/1000;
//cifa a o aflam indepartand celelalte 3 cifre ale numarului (n/1000)

exp = 4*a + (float)b/20 -c + 1.0/d;


//cifrele numarului fiind numere intregi, rezultatele efectuarii unor
//impartiri intre acestea si alte numere vor fi tot numere intregi, chiar
//daca exp este un numar real. Pentru ca rezultatele impartirilor sa fie
//numere reale, ori transformam cifra in numar real cu ajutorul unei
//constructii de tip cast ca in cazul ((float)b/20), fie prin
//transformarea constantei intrei 1 in constanta real 1.0 ca in
//cazul (1.0/d)

cout<<"\n4*a + b/20 -c + 1/d = "<<exp;


}
//10. Scrieti un program care separa cifrele numerelor intregi de trei
//cifre si le afiseaza cu cate doua spatii intre ele. De exemplu, daca
//numarul este 671, programul ar trebui sa afiseze: 6 7 1

#include <iostream>

using namespace std;

int main()
{
int n, a, b, c;

cout<<"Introduceti un numar de 3 cifre: ";


cin>>n;

c = n%10;
b = (n/10)%10;
a = n/100;

cout<<a<<" "<<b<<" "<<c;


}
//11. Fiind date declaratiile int a=2, b=2, c=1, e=4; determinati si
//afisati valoarea urmatoarelor expresii:
// a++ / ++c * --e
// --b * c++ -a
// -b - --c
// e / --a * b++ /c++

#include <iostream>

using namespace std;

int main()
{
int a, b, c, e, exp;

a=2; b=2; c=1; e=4;


cout<<"a="<<a<<" b="<<b<<" c="<<c<<" e="<<e<<endl;
//cand operatorul este in forma postfixata (dupa numele de variabila),
//mai intai se va utiliza in expresie valoarea actuala a variabilei,
//urmand ca abia apoi sa fie incrementata/decrementata. Cand operatorul
//este in forma prefixata (inaintea numelui de variabila), mai intai se
//va incrementa/decrementa variabila, urmand ca in expresie sa fie
//utilizata cu noua valoare

exp = a++ / ++c * --e;


// exp = 2 / 2 * 3 = 3
cout<<"exp = a++ / ++c * --e = "<<exp<<endl;

a=2; b=2; c=1; e=4;


exp = --b * c++ - a;
// exp = 1 * 1 - 2 = -1
cout<<"exp = --b * c++ - a = "<<exp<<endl;

a=2; b=2; c=1; e=4;


exp = -b - --c;
// exp = -2 - 0 = -2
cout<<"exp = -b - --c = "<<exp<<endl;

a=2; b=2; c=1; e=4;


exp = e / --a * b++ /c++;
// exp = 4 / 1 * 2 / 1 = 8
cout<<"exp = e / --a * b++ /c++ = "<<exp<<endl;
}