Sunteți pe pagina 1din 12

Pentru nota 5

I.

Cerinta :

1. Tipuri de date( ce reprezinta, descriere tipuri de baza, dimensiune, domeniu,


implementare boolean si char)

Fiecare categorie de date este caracterizata de atributele:

Nume;

Valoare;

Tip;

Tipul unei date


Tipul unei date consta ntr-o multime de valori pentru care s-a adoptat un anumit mod de reprezentare n
memoria calculatorului si o multime de operatori care pot fi aplicati acestor valori. Tipul unei date determina
lungimea zonei de memorie ocupata de acea data. n general, lungimea zonei de memorare este dependenta de
calculatorul pe care s-a implementat compilatorul.
Tipurile de baza sunt:

char un singur octet (1 byte=8 biti), capabil sa contina codul unui caracter din setul local de caractere;

int numar intreg, reflecta in mod tipic marimea naturala din calculatorul utilizat;

float numar real, in virgula mobila, simpla precizie;

double numar real, in virgula mobila, dubla precizie.

TIP NUMERIC

DIMENSIUNE IN BITI

DOMENIU

unsigned char
char
unsigned int
short int
int
unsigned long

8
8
16
16
16
32

0..255
-128..127
0..65535
-32768..32767
-32768..32767
0..4294967295

long

32

-2147483648..2147483647

Obs:
a) In C++ nu exista tipul boolean. In acest caz, orice valoare diferita de 0 este considerata ca fiind
TRUE si orice valoare 0 este considerata ca fiind FALSE.
b) Tipul caracter este asimilat tipurilor intregi. Memorarea unui caracter se face folosind codul ASCII

al acestuia. In operatiile referitoare la caractere ne putem referi atat la caracter cat si la codul sau
ASCII (conversia se face automat, in functie de context).
De ex:
char a='c',b=99;
cout<<a<<" "<<b; //Se tipareste de 2 ori caracterul 'c' (care are codul ASCII 99)
cout<<a+101;
//Se tipareste 200 (a fost adunat codul ASCII al caracterului 'c' cu 101)

2. TIPURILE REALE

NUME TIP
float
double
long double

DIMENSIUNE IN BITI
32
64
80

MAXIMA (in valoare absoluta)


3.4*pow(10,38)
1.7*pow(10.308)
1.1*pow(10,4932)

In header-ul <limits.h> sunt definite constantele simbolice (cum ar fi: INT_MIN,


etc.) care au ca valoare limitele
inferioara si ale intervalului de valori pentru tipurile de date enumerate. (de exemplu
INT_MAX reprezinta valoarea intregului maxim care se poate memora, etc. )
SHRT_MIN, USHRT_MIN, LONG_MIN, CHAR_MIN, UINT_MAX ,

CITIRE/AFISARE
(fisier antet utilizat, operatori, 4 exemple diferite)

In header-ul <iostream> sunt definiti operatorii de scriere << si preluare de la tastatura>> impreuna
cu instructiunile aferente:
pentru afisare: cout(console output)
pentru citire cin(console input)
1. cout<<a<<+<<b<<=<<s;
2. cout<<Oana s-a nascut in data de <<ziua<</<<luna<</<<an;
3. daca se citesc valorile 10, 20 si 30
-

int a,b; cin>>a>>b>>a;


cout<<a<< <<b<<endl<<a;
se va afisa
30 20
30

4. Secventa urmatoare afiseaza 0; Datorita instructiunii vide. Structura merge in gol


for(x=5;x>=1;x--);
cout<<x<< ;

2. Operatori C++, citire/afisare, expresii. Din manual

. Operatorii aritmetici: +,-,* ,

/,%.

Operatorul div [ / ] se comporta diferit in functie de tipul operanziilor:


-daca ambii operanzi sunt numere intregi atunci rezultatul va fI tot numar intreg.
-daca cel putin unul dintre operanzi este un numar real atunci si rezultatul va fi tot un numar real
Operatorul [ % ] poate fi aplicat numai intre operanzi de tip intreg.
2. Operatorii relationali: <,

<=, > , >= ,== , != .

Operatorul [ == ] se foloseste pentru a verifica egalitatea dintre doua expresii.


Expresiile relationale sunt evaluate la adevarat (unu) sau fals (zero).
a == b => are valoare 1 atunci cand cele 2 sunt egale respectiv 0 atunci cand cele 2 sunt diferite.
a != b => are valoare 1 atunci cand cele 2 sunt diferite si respectiv 0 atunci cand cele 2 sunt egale.
3. Operatotii logici: !

, && , || .

Operatorul de negatie [ ! ] transforma adevarul in fals si falsul in adevar.


Operatorul de conjunctie [ && ] produce valoare 1 cand toate expresiile sunt adevarte, respectiv
valoare 0 atunci cand cel putin una este falsa.
Operatorul de disjunctie [ || ] produce valoare 1 atunci cand cel putin o expresie este adevarata ,
respectiv 0 cand toate sunt false.
4. Operatorii de atribuire: =,

+= , -= ,*= , /= , %= .

Atribuire simpla: variabila = expresie


Atribuire multipla: v1=v2=v3=vn = E;
5. Operatorii prefixati: ++ ,

Forma generala:
1) ++ var <=>
a) var=var+1;

b) se foloseste var;
2) var <=>
a) var=var-1;
b) se foloseste var;
6. Operatorii postfixati: ++ ,

Forma generala: 1) var ++ <=> a) se foloseste var;


b) var=var+1;
2) var <=> a) se foloseste var;
b) var=var-1;
7. Operatorii conditionali: ?

Conditie

:.

? Ea : Ef

Atunci cand conditia este adevarata rezultatul expresiei va fi Ea iar cand conditia este falsa rezultatul
va fi Ef.
ex: max dintre doua numere.
8. Operatorul de converie de tip

Se foloseste pentru schimbarea tipului unei expresii.


tip = expresie
Daca se doreste transformarea unui singur termen parantezele care incadreaza expresia pot lipsi.
ex: (int) 5.7 => 5

3. Structuri de control. Structura alternativa simpla

if (expresie)
instructiune1;
[ else
instructiune2; ]

Structura repetitiva cu test initial


while (expresie_logica)
instructiune;

Structura repetitive cu test final


do{ instructiuni;}
while(conditie);

Forma echivalenta cu test initial este


if(conditie){
do{ instructiuni;}
while(conditie);
}

Structura de decizie generalizata

switch (expresie)
{
case expresie_const_1: instructiune_1;
[break;]
case expresie_const_2: instructiune_2;
[break;]

. . . . . . . .. .
case expresie_const_n-1: instructiune_n-1;
[break;]
[ default: instructiune_n; ]
}

Structura repetitiva cu numar cunoscut de pasi

for(exp_init; conditie; expr_reinit)


instructiune;

echivalent cu

expr_init;
while(conditie)
{instructiune;
expr_reinit;}

Modalitati de obtinere a diverselor SIRURI DE NUMERE

REZOLVATI
4. Se citesc n numere de la tastatura sa se afiseze suma lor

5. Se introduc de la tastatura mai multe numere pana cand ultima valoare citita este 0 sa
se calculeze suma lor

6. Sa se calculeze suma numerelor din intervalul [a,b], a,b numere intregi introduse de
la tastatura.

7. Se citeste o valoare n. Sa se calculeze suma numerelor mai mici sau egale decat n.

8. Se citeste o valoare n sa se determine primele n numere pozitive, nenule pare.

9. Se citesc de la tastatura mai multe numere pana cand ultimul citit este 0. Sa
deteremine cate numere consecutive au aceeasi paritate.
EX.
3
4
a

54 61 2 32 43 0
3
b
a b

a b
a
Se afiseaza 2(2 numere consecutive au aceeasi) paritate

10. Se citesc de la tastatura n perechi de numere a,b. Sa se determine cate perechi au


aceeasi paritate
EX. n=5, se introduce 5 perechi
a b
34 54

i=1

51 23

i=2

21 32

i=3

33 21

i=4

22 32 i=5

11. Scrieti o secventa care afiseaza primele n numere naturale in ordine crescatoare.

//sau

12. Scrieti o secventa care afiseaza primele n numere naturale in ordine descrescatoare

Pentru nota 6-7 Algorimi elementari


1. Algoritmul de interschimbare
2. Algoritm pentru determinarea
maximului (minimului).
Varianta 1. Dintr-un sir de n
numere.

//varianta 1

//varianta 2
Varianta 2. Dintr-un sir de valori
introduse pana la intalnirea valorii
0.
3. Algoritm pentru extragerea
cifrelor unui numar. Suma cifrelor
unui numar n.

4.a) Algoritmi de compunere a unui


numar pornind de la cifrele sale:
Sa se verifice daca un numar n este
palindrom. (Compunerea unui
numar pornind de la cifra cea mai
semnificativa adica aplicarea

//a)

expresiei nrnr*10+cifra)
4.b). Algoritmi de compunere a unui numar
pornind de la cifrele sale:
Sa se elimine dintr-un numar n toate cifrele
egale cu 0. (Algoritm de construire a unui
numar pornind de la cifra cea mai putin
semnificativa. Aplicarea expresiilor
nrnr+p*cifra; pp*10; )
5 . Algoritm pentru calcularea
cmmdc.

//a)

a) Euclid.
b) Scaderi repetate
//b)

6. Algoritm pentru testarea unui


numar prim

7. Algoritm pentru prelucrarea


divizorilor unui numar (Afisarea
sau suma lor)

8. Algoritm pentru generarea


divizolor primi ai unui numar
9. Algoritmi pentru conversii intre
sisteme de numeratie

//a)

a) n10 nq
b) nqn10
//b)
10. Sirul lui Fibbonacii

Pentru nota 7-8


1. Se introduc de la tastatura n numere,

//b)

sa se afiseze valoarea maxima si de


cate ori apare in sir.
2. Se citesc de la tastatura mai multe
numere pana cand ultimul introdus
este 0. Cate din numere sunt pare?
3. Se citesc doua numere naturale a,b.
Cate valori din intervalul [a,b] sunt
pare?
4. Se introduc de la tastatura n numere,
sa se afiseze cele mai mari doua
valori din sir si de cate ori apar fiecare
in sir.
5. Se citesc mai multe numere, care
reprezinta cifrele unui numar binar,
pana cand, ultimul citit nu mai este o
cifra binara. Sa se afiseze numarul
binar.

6. Se introduc n numere, sa se afiseze


cea mai mare cifra a fiecaruia.
7. Sa introduc de la tastatura doua valori
a si b, reprezentand extremitatile
unui interval [a,b]. Cate numere din
interval sunt prime?
8. Se citesc de la tastatura mai multe
numere pana cand ultimul introdus
este 0. Cate din numere sunt
palindrom?
9. Se citesc doua numere naturale a,b.
Afisati numerele din intervalul [a,b]
care sunt palindrom.

Pentru nota >=8


1. Se introduce de la tastatura un sir de numere naturale, pana la citirea numarului 0. Sa se
afiseze fiecare numar obtinut prin eliminarea cifrelor =0.

2. Se introduce de la tastatura un sir de numere naturale, pana la citirea numarului 0. Sa se


afiseze perechile consecutive de numere din sir care au proprietatea ca sunt prime intre
ele. Fiecare pereche va fi afisata pe cate un rand nou. Daca nu exista astfel de perechi in
sir, se va afisa mesajul nu exista

3. Se introduce de la tastatura un sir de numere naturale, pana la citirea numarului 0. Sa se


afiseze perechile consecutive de numere din sir care au proprietatea primul element are
suma cifrelor para iar al doilea suma cifrelor impara. Fiecare pereche va fi afisata pe cate
un rand nou. Daca nu exista astfel de perechi in sir, se va afisa mesajul nu exista

4. Se introduc de la tastatura n numere. Sa se afiseze pentru fiecare numar in parte


descompunerea in factori primi.

5.

Se citesc de la tastatura n numere intregi si o valoare intreaga x. Afisati pe ecran


numerele din sir care sunt prime cu x. (cmmdc (nr,x) =1)

6. Se introduc mai multe numere de la tastatura pana cand ultimul citit este 0. (cel putin
doua numere). Afisati perechile consecutive de numere din sir care au suma cifrelor
egale.

7. Se citesc de la tastatura n numere intregi. Afisati pe ecran suma cifrelor fiecarui numar.

8. Se introduc mai multe numere de la tastatura pana cand ultimul citit este 0. (cel putin
doua numere). Afisati perechile consecutive de numere din sir care sunt prime intre ele.

9. Sa introduc de la tastatura doua valori a si b, reprezentand extremitatile unui interval


[a,b]. Afisati numerele din interval care au suma cifrelor un numar prim

10. SUMA A DOUA FRACTII A/B+C/D


Rezolvare
int a,b,c,d,r,q,numarator,numitor,r1,q1;
cout<<"a="; cin>>a;
cout<<"b="; cin>>b;
cout<<"c="; cin>>c;
cout<<"d="; cin>>d;
cout<<"fractia este"<<a<<"/"<<b<<"+"<<c<<"/"<<d<<endl;
r1=a*d+b*c; r=r1;
q1=b*d; q=q1;
while(r!=q)//cmmdc
if(r>q)
r=r-q;
else
q=q-r;
numarator=r1/r;
numitor=q1/r;
cout<<"fractia ireductibila este"<<numarator<<"/"<<numitor;
return 0;

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