Documente Academic
Documente Profesional
Documente Cultură
numr finit de pai bine definii ,obinndu-se astfel un set de date de ieire.
Exist probleme rezolvabile i probleme nerezolvabile .Problema este rezolvabil dac exist un
algoritm care s o rezolve. O problem este nerezolvabil dac nu exist un algoritm care s o
rezolve.Pentru ca o succesiune de pai s constituie un algoritm acetia trebuie s ndeplineasc
urmatoarele proprieti :
1. claritatea la orice moment trebuie s tim paii care au fost parcuri i paii care urmeaz s fie
efectuai. ntotdeauna pasul urmtor trebuie s fie unic determinant i bine definit.
2. generalitatea un algoritm trebuie s rezolve toate problemele dintr-o anumit categorie ,adic
s obii date de ieire pentru orice set de date de intrare.
3. finititudinea un algoritm trebuie s se termine dup un numr finit de pai.
Datele cu care lucreaz algoritmii se clasific astfel :
1. Dup felul lor : _date de intrare ;
_date de ieire ;
_date de manevr ;
2. Dup stabilitatea lor : _date constante ;
_date variabile ;
3. Dup natura lor : _date numerice _ntregi ;
_reale ;
_date alfabetice _caractere sau iruri de caractere ;
_date logice _adevrat ;
_fals.
Constantele sunt date care nu i schimb valoarea de-a lungul unui algoritm. O constant se definete
prin numele i valoarea ei la nceputul algoritmului.
Variabilele sunt date care i pot schimba valoarea de adevr de-a lungul unui algoritm. O variabil se
declar prin nume i tip , tot la nceputul algoritmului.
1
Operatorii matematici (aritmetici).
Se aplic la date numerice ; Rezultatul obinut este numeric.
a) operatori unari (doar semnele + i - ) ;
b) operatori binari : 1. operatori multiplicativi _nmulirea - * ;
_mprirea - / ;
_mod;
_div.
Mod returneaz restul mpririi primului operand la cel de-al doilea.
Div returneaz partea ntreag mpririi primului operand la cel de-al doilea.
2. operatori aditivi _adunarea ;
_ scderea .
Operatori relaionari (de comparaie).
Sunt operatori binari . Acetia se aplic la date numerice, alfabetice, logice. Pentru datele alfabetice se
compar codurile ASCII corespunztoare caracterelor. Rezultatul
obinut n urma aplicrii operatorilor relaionari este logic.
Operatorii logici.
a) operatori unari : NOT (negaia n limba englez) ;
b) operatori binari : _ AND conjuncia;
_OR disjuncia;
_XOR exclusiv.
Operatorii logici se aplic la date de tip logic , rezultatul fiind tot logic.
a not a a b a and b
A A A
A F A F F
F A F A F
F F F
Operatorul or Operatorul xor
a b a or b a b a xor b
A A A A A F
A F A A F A
F A A F A A
F F F F F F
2
Orice algoritm , atunci cnd este conceput, trebuie s respecte teorema de structur a lui Jacopini
Bohm.
TEOREMA DE STRUCTUR se enunt astfel :
Orice algoritm poate fi reprezentat , folosind doar structurile de control (liniar , alternativ i
repetitiv).
Un algoritm poate fi reprezentat n mai multe moduri :
1. Limbaj natural este accesibil deoarece folosete pentru descrierea pailor cuvintele limbii romne .
2. Schema logic pentru fiecare operaie se folosete o reprezentare grafic . Pentru algoritmii de o
complexitate mai mare , schemele logice pot devenii greu de urmrit.
START STOP
Bloc de nceput Bloc de sfrit
CITETE SCRIE
Operaia de citire Operaia de scriere
3. Limbaj pseudocod este format din reguli sintactice i cuvinte cheie cu ajutorul crora putem codifica
operaiile unui algoritm. Aceste cuvinte cheie aparin limbii romne.
operaia de citire ; operaia de scriere ; operaia de atribuire ; operaia de incrementare ; operaia de
decrementare.
A incrementa a mrii cu o unitate valoarea unei variabile : inc (a) sau a a+1 .
A decrementa a micora cu o unitate valoarea unei variabile : dec (a) sau a a - 1.
3
exemplu : nceput
instruciune 1 ;
instruciune 2 ;
.
instruciune n ;
sfrit.
a a b.
I. FORMA COMPLET.
1. Sintaxa :
dac < expresie logic > atunci
< instruciune 1 >
altfel
< instruciune 2 > ;
sfrit dac.
2. Execuia pe pai :
Pasul 1 . Se evalueaz expresia logic.
2. Dac este adevrat , atunci se execut instruciunea 1.
3. Dac este fals , atunci se execut instruciunea 2.
dac a > b atunci
scrie a > b
altfel
scrie b > a ;
sfrit dac.
4
3. Observaii :
a) n loc de instruciune 1 , 2 putem avea orice alt structur de control.
b) Instruciunea 1 face parte din ramura de TRUE a structurii alternative.
c) Instruciunea 2 face parte din ramura de FALSE a structurii alternative.
d) La o execuie a structurii alternative se realizeaz FIE instruciune 1 , FIE instruciune 2 .
e) Ramura de false poate lipsi , atunci este o form incomplet a structurii alternative .
1. Sintaxa :
cttimp < condiie > execut
< instruciune>
sfrit cttimp.
2. Execuia :
Pasul 1. Se evalueaz expresia.
2. Dac este adevarat condiia se execut instruciunea.
3. Se repet execuia instruciunii cttimp condiia este adevrat.
4. Cnd condiia devine fals se trece mai departe n program.
3. Observaii :
a) n loc de instruciune putem avea orice alt structur de control ( liniar, alternativ sau
repetitiv ).
b) Dac de la nceput condiia este fals se trece mai departe n program fr ca instruciunea s se
execute vreodat .
Observatii !!!
1. ntotdeauna suma se iniializeaz cu valoarea 0 .
2. ntotdeauna produsul se iniializeaz cu valoarea 1.
3. ntotdeauna maximul se iniializeaz cu o valoare foarte mic i minimul se
iniializeaz cu o valoare foarte mare.
5
1. CEL MAI MARE DIVIZOR COMUN.
D.I. : a, b ; { naturale }
nceput program
citete a, b ; { naturale }
cttimp a <> b execut
dac a > b atunci
a a b
altfel
b b a ;
sfrit dac
sfrit cttimp
scrie c.m.m.d.c. este , a ;
sfrit program.
D.I. : a, b ; { naturale }
D.M. : d , i, r ; {naturale }
nceput program
citete a, b ; { naturale }
da;
ib;
r d mod i ;
cttimp r <> o execut
nceput
di;
i r;
r d mod i ;
sfrit
sfrit cttimp
scrie c.m.m.d.c. este , i ;
sfrit program.
6
2. CIFRELE UNUI NUMR.
D.I. : n ; { natural }
D.O. : s, p ; { naturale }
D.M. : c ; { naturala }
nceput program
citete n ; { natural }
s0;
p1;
cttimp n <> 0 execut
nceput
c n mod 10 ;
ss+c;
pp*c;
n n div 10 ;
sfrit
sfrit cttimp
scrie suma este , s ;
scrie produsul este , p ;
sfrit program.
3. PALINDROM.
D.I. : x ; { natural }
D.M. : c ; { natural }
nceput program
citete x ; { natural }
xo 0 ;
zx;
cttimp x <> 0 execut
nceput
c x mod 10 ;
xo xo * 10 + c ;
x x div 10 ;
sfrit
dac z = xo atunci
scrie x este palindrom , x ;
altfel
scrie x nu este palindrom , x ;
sfrit dac
sfrit cttimp
sfrit program .
7
4. DIVIZORII UNUI NUMR.
D.I. : n ; { natural }
D.O. : s , p ; { naturale }
D.M. : d ; { natural }
nceput program
citete n ; { natural }
s0;
p1;
d2;
cttimp d <= n div 2 execut
nceput
dac n mod d = 2 atunci
nceput
ss+d;
pp*d;
sfrit
sfrit dac
dd+1;
sfrit
sfrit cttimp
scrie suma este , s ;
scrie produsul este , p ;
sfrit program.
5. NUMR PRIM.
D.I. : a ; { natural }
D.M. : d , nr ; { naturale }
nceput program
citete a ; { natural }
d2;
nr 0 ;
cttimp d <= a div 2 execut
nceput
dac a mod d = 0 atunci
nr nr + 1 ;
sfrit dac;
dd+1;
sfrit
sfrit cttimp
dac nr = 0 atunci
scrie a este prim ;
altfel
scrie a nu este prim ;
sfrit dac
sfrit program.
8
6. MAXIMUL DINTR-UN IR DE NUMERE.
9
8. VALIDAREA DATEI DE INTRARE.
D.I. : n ; {natural}
D.M. : c, c min, nr ; {natural}
D.O. : c min ; {natural}
nceput program
repet
citete n ;{natural}
nr 0 ;
repet
nceput
c n mod 10 ;
n n div 10 ;
nr nr +1 ;
sfrit
pn cnd n=0 ;
pn cnd nr <=9 ;
scrie cifra minim este ,c min ;
sfrit program.
9. C.M.M.M.C.
D.I. : a, b ; {natural}
D.M. : c ;{natural}
D.O. : x, y ; {natural}
nceput program
citete a, b ; {natural}
p 1 ;
x a ;
y b ;
repet
dac a >b atunci
a a b ;
altfel
b b a ;
sfrit dac;
p x * y;
pn cnd a = b ;
c p/a;
scrie c.m.m.d.c. este ,a;
scrie c.m.m.m.c este ,c;
sfrit program.
10
10. NUMR PERFECT.
D.I. : n; {natural}
D.M. : d, sd ;{natural}
nceput program
citete n ;{natural}
sd 0 ;
pentru d 1, n div 2 execut
dac n mod d =0 atunci
sd sd +d;
sfrit dac;
dac n = sd atunci
scrie n este perfect;
altfel
scrie n nu este perfect;
sfrit dac ;
sfrit program.
D.I. : n ; {natural }
D.M. : i ;{natural}
D.O. : f ; {natural}
nceput program
citete n ; {natural}
f 1;
pentru i 1, n execut
f f * i;
scrie f este , f;
sfrit program.
D.I.:n, a, b ; {naturale}
D.M.: c, i ;{naturale}
D.O. : c; {natural}
nceput program
citete n ;{natural}
a 1;
scrie a;
b 1;
scrie b;
pentru i 3, n execut
nceput
c a +b;
scrie c;
a b;
b c;
sfrit
sfrit program.
11
13. TRECEREA NUMRULUI n DIN BAZA 10 N BAZA b.
D.I.: n, b ;{naturale}
D.O. : nr ;{natural}
D.M. :p, nr ;{natural}
nceput program
citete b ;{natural}
scrie introducei n n baza 10 ;
citete n ;{natural}
nr 0 ;
p 1 ;
cttimp n >0 execut
nceput
nr nr +p * (n mod 10);
n n div b;
p p*10;
sfrit
sfrit cttimp.
scrie nr;
sfrit program.
D.I. : n, b; {naturale}
D.O. :nr ; {natural}
D.M. : p , nr ;{natural}
nceput program
citete b ; {natural}
citete n ;{natural}
nr 0 ;
p 1 ;
cttimp n > 0 execut
nceput
nr nr +p * (n mod 10);
n n div 10;
p p * b;
sfrit
sfrit cttimp.
scrie nr;
sfrit program.
12
15. DESCOMPUNEREA N FACTORI PRIMI.
D.I. : n ;{ natural }
D.M. : d, e, j ;{ naturale }
nceput program
citete n ;{ natural }
jn;
d2;
cttimp n > 1 execut
nceput
e0;
cttimp n mod d = 0 execut
nceput
ee+1;
n n div d ;
sfrit
sfrit cttimp ;
dac e > 0 atunci
scrie d , ^, e ;
sfrit dac ;
dd+1;
sfrit
sfrit cttimp ;
sfrit program .
s0;
i0;
cttimp i <> 10 execut
nceput
s s +1 ;
i i +1 ;
sfrit
sfrit cttimp ;
scrie s, i .
s0;
i0;
repet
ss+1;
ii+1;
pn cnd i = 10 ;
scrie s, i .
13
1 . Sintaxa .
repet
< instruciune >
pn cnd < condiie > ;
2. Execuia .
a) Se execut instruciunea ;
b) Evalum condiia ;
c) Se repet execuia instruciunii atta timp ct condiia este fals .
d) Cnd condiia devine adevrat se trece mai departe n program .
3. Observaii .
a) n loc de < instruciune > putem avea orice alt structur de control ;
b) Indiferent de valoarea de adevr a condiiei , instruciunea se execut mcar o dat .
14
1 . Sintaxa .
2. Execuia ( evaluarea ) .
3. Observaii .
SISTEMUL ROMAN
I V X L C D M
1 5 10 50 100 500 1000
1. Dac sunt 2 simboluri identice atunci valoarea se obine prin adunarea valorilor .
II = 1 + 1 = 2
2. Dac naintea unui simbol se afl un simbol de valoare mai mic atunci valoarea se obine
prin scderea valorii mai mici din valoarea mai mare .
IV = V I = 5 1 = 4
3. Dac dup un simbol avem un simbol de valoare mai mic atunci valoarea se obine prin
adunarea valorilor celor 2 simboluri .
15
C = LL = 100
Alte sisteme de numeraie poziionale : sistemul octal ( 07 ) , sistemul hexazecimal
( 09 , a , b , c , d , e , f ) , sistemul binar ( 0 , 1 ) .
1263 : 16 = 78 rest 15
78 : 16 = 4 rest 14
4 : 16 = 0 rest 4
1 1 0001 9 9 1001
2 2 0010 10 A 1010
3 3 0011 11 B 1011
4 4 0100 12 C 1100
5 5 0101 13 D 1101
6 6 0110 14 E 1110
7 7 0111 15 F 1111
16
Un program C++ are o structur de bloc ; blocul are 2 pri :
1. partea declarativ (opional) ;
2. partea executabil (obligatorie).
Partea declarativ conine declaraii de obiecte utilizate n program : tipuri de date, variabile,
constante, funcii.
Partea executabil conine o niruire de instruciuni (citire, scriere, atribuire, insturciunea de
control care transform n limbaj de programare structurile de control).
PARTEA DECLARATIV
PARTEA EXECUTABIL
Cuprinde :
1. Sintaxa regulile respectate n scrierea unui program ;
2. Semantica nelesul elementelor folosite ntr-un program ;
3. Setul de caractere _ caractere alfabetice : literele alfabetului englez az ;AZ ;
_caractere numerice : cifrele sistemului zecimal 09 ;
_ caractere speciale : ; , , , [ , ] etc.
Identificatorii
Sunt nume cu ajutorul crora se recunosc diferitele obiecte din program .
Caracteristici : _31 de caractere ( lungimea maxim ) ;
_conine : caractere alfabetice , numerice i caracterul special _ ;
_ nu trebuie s nceap cu o cifr .
Separatorii
, separ identificatorii dintr-o list ;
; separ instruciunile .
Comentariile
Sunt opionale i utilizate pentru a oferi informaii suplimentare legate de program . Sunt
delimitate astfel :
1. dac sunt pe mai multe rnduri : / *
*/ .
2. dac sunt pe un singur rnd : //
Delimitatorii
{}
17
Clasificarea datelor cu care lucreaz algoritmii :
1. Dup stabilitatea lor : constante ; variabile .
2. Dup natura lor : numerice ( ntregi ; reale ) ; caracter ; ir de caractere ;
3. Dup structura lor : simple ; structurate .
Datele pot fi structurate astfel ;
_n memoria intern , avnd un numr finit de elemente de acelai tip ( tipul tablou ) ;
_n memoria extern , avnd elemente de acelai tip dar n numr nu neaparat finit (tipul fiier).
TIPURI NTREGI
Caracterele se ncadreza la tipurile ntregi deoarece sunt memorate cu ajutorul codurilor ASCII.
Numerele ntregi sunt memorate n cod complementar lui 2 (binar) .
MODIFICATORII DE TIP
SIGNED ; UNSIGNED ; SHORT ; LONG .
Tpul CHAR suport modificatorii signed i unsigned .
Tipul INT suport toi cei 4 modificatori .
Tpul FLOAT nu suport niciun modificator .
Tipul SIGNED i SHORT nu au efect asupra tipurilor de baz .
UNSIGNED permite n domeniul de valori doar numere pozitive iar LONG modific spaiul
ocupat n memorie cu 2 B (O) .
18
CONSTANTE
1.Constante numerice
a) constante ntregi : zecimale 09 ; octale 07 (0 este nesmnificativ) ; hexazecimale 09 sau
af sau AF + prefixul ox .
b) constante reale : 3.15 ; 0.5 .Format tiinific folosete notaia cu mantis i exponent
ex. 3.5e-2 = 3.5 *10 2 .
2.Constante caracter
Aceste constante sunt delimitate cu ajutorul apostrofurilor.
Ex. a , B ,secvene escape (sunt delimitate cu ajutorul apostrofurilor i ncep cu \ )
\\ , \ , \ ;
\n are ca efect trecerea cursorului la nceputul unui rnd nou .
\123 constant octal , cele zecimale nu se afieaz .
\x123 constant hexazecimal.
3.Constante ir de caractere
Sunt delimitate cu ajutorul ghilimelelor .
Mocanu Ana
4.Constante cuvinte-cheie
NULL
OPERATORII
2.Operatorii relaionari
< , > , <= , >= , == , != .
a b ~a a&b a^b a |b
0 0 1 0 0 0
0 1 1 0 1 1
1 0 0 0 1 1
1 1 0 1 0 1
19
5. Operatorii de incrementare decrementare
a) incrementare ++;
b) decrementare - - ;
Sunt operatori unari .
Acetia au 2 forme : _forma prefixat ++a , - - a .
_ forma postfixat a++ , - - a .
Se aplic la operanzi numerici, iar rezultatul este tot numeric.
Evaluarea formei prefixate : mai nti se aplic operatorul apoi se evalueaz expresia .
Evaluarea formei postfixate : mai nti se evalueaz expresia apoi se aplic operatorul .
6. Operatorii de atribuire ( = )
Atribuirea se realizeaz de la dreapta la stnga i dac este cazul nainte de atribuire se
realizeaz conversia implicit ( tipul expresiei din dreapta operatorului se convertete la tipul variabilei
din stnga operatorului ).
< v > = < exp >
Este de mai multe tipuri :
a) Simpl : < v >= <exp >.
b) Multipl : < v >= < exp1 >= <exp2 >==< exp n >.
c) Combinat : se obine prin combinarea operatorului de atribuire cu operatorii binari logici
pebii , cei de deplasare .
+= , -= , *= , /= , |= , &= , ^= , %= , <<= , >>= .
7. Operatorii de deplasare
Lucreaz la nivel de bit.
<< - operatorul de deplasare spre stnga . Este binar i deplaseaz spre stnga bii primului
operand cu un numr de poziii dat de cel de-al doilea operand .
a=01010101
a<<3=10101000
>> - operatorul de deplasare spre dreapta . Este binar i deplaseaz spre dreapta bii primului
operand cu un numr de poziii dat de cel de-al doilea operand.
a=10010
a>>2=00100
8. Operatorul sizeof
Este un operator unar ce returneaz spaiul ocupat n memorie de un anumit tip sau de o
anumit variabil .
sizeof (dat) ; sizeof (tip)
int a ; sizeof a = 2 B (O) ; sizeof ( float ) = 4 B (O) .
20
NR. CRT. Operatori Categoria
1. () Paranteze
2. ! , ~ , + , - , + + , - - , sizeof , cast Unari
3. *,%,/ Multiplicativi
4. +,- Aditivi
5. < , <= , > , >=
6. == , ! = Egalitate
7. << , >> De deplasare
8. & i pebii
9. ^ Xor pebii
10. | Sau pebii
11. && i logic
12. || Sau logic
13. ?: Ternar
14. =, +=, - =, *=, /=, %=, &=, |=, ^=, <<=, >>= Atribuire
1. Instruciunea IF
Transcrie n limbaj C structura alternativ .
if (expresie logic )
<instruciune1>
else
<instruciune2>.
2. Instruciunea WHILE
Transcrie n limbaj C structura repetitiv cu test iniial .
while (condiie)
<instruciune>.
3. Instruciunea DOWHILE
Transcrie n limbaj C structura repetitiv cu test final .
do
<instruciune>
while (expresie logic ).
Evaluare :
a) Se execut instruciunea ;
b) Se evalueaz condiia ;
c) Se repet execuia instruciunii cttimp condiia este adevrat ;
d) Cnd condiia devine fals se trece mai departe n program .
4. Instruciunea FOR
for (exp1 ; exp2 ; exp3 )
<instruciune>.
Evaluare : exp1 se folosete pentru a iniializa valoarea contorului . Cu ajutorul exp2 se testeaz
dac s-a ajuns sau nu la valoarea final a contorului . Exp3 reprezint modul n care evolueaz contorul
, acesta poate fi incrementat sau decrementat. Instruciunea este executat cttimp contorul are valori
cuprinse ntre valoarea exp1 i valoarea exp2.
21
Operaii de intrare ieire
Citirea datelor de la intrarea standart (tastatura) se realizeaz astfel :
cin>> variabil ;
Afiarea datelor la ieirea standart (monitorul ) se realizeaz astfel :
cout << variabil ;
OBS. Dac se dorete afiarea mai multor variabile n instruciunea cout atunci numele
variabilelor se scriu separat cu ajutorul caracterelor << .
1. C.M.M.D.C.
a) #include<iostream.h>
int a , b ;
void main ( )
{
cin>>a ;
cin>>b ;
while (a!=b)
if (a>b)
a - = b;
else
b-=a.
cout<<a ;
}
b) #include <iostream.h>
int a, b, d, i, r ;
void main ( )
{
cin>>a ;
cin>>b ;
d=a;
i=b;
r=d%i;
while (r!=0)
{
d=i;
i=r;
r=d%i;
}
cout << i ;
}
22
2. PALINDROM
#include<iostream.h>
int x, z, xo, c ;
void main ( )
{
cin>> x ;
xo = 0 ;
z=x;
while (z != 0)
{
c=z % 10 ;
xo = xo *10 + c ;
z = z /10 ;
}
if ( x == xo )
cout << x este palindrom << x ;
else
cout << x nu este palindrom<< x .
}
3. NUMR PRIM
#include<iostream.h>
unsigned int a, d, nr ;
void main ( )
{
cin>>a ;
d=2;
nr = 0 ;
while ( d <= a/2 )
{
if ( a % d ==0 )
nr += 1 ;
d += 1 ;
}
if ( nr == 0 )
cout <<a este prim <<a ;
else
cout <<a nu este prim <<a ;
}
23
4 .MAXIMUL DINTR-UN IR DE NUMERE
#include<iostream.h>
int n, x, i, max ;
void main ( )
{
cin>>n;
i=0;
max = 0 ;
while ( i<=n)
{
cin>>x ;
if (x> max)
max = x ;
i += 1 ;
}
cout<<max ;
}
#include<iostream.h>
int n, x, i, min ;
void main ( )
{
cin>>n;
min = 10000 ;
i=0;
while ( i <=n )
{
cin>>x ;
if (x<min )
min = x ;
i +=1 ;
}
cout <<min ;
}
24
6 . C.M.M.M.C.
#include<iostream.h>
int a, b, c, x, y, p ;
void main ( )
{
cin >> a ;
cin >>b ;
p=1;
x=a;
y=b;
do
if (a>b)
a-=b;
else
b-=a;
p = x*y ;
while (a != b) ;
c = p/a ;
cout <<c.m.m.d.c.=<<a ;
cout <<c.m.m.m.c.= <<c ;
}
#include<iostream.h>
int a, b, c, i, n ;
void main ( )
{
cin >>n ;
a=1;
cout <<a ;
b=1;
cout <<b ;
for (i=3 ; i<=n ; i++)
{
c=a+b;
cout<<c ;
a=b;
b=c;
}
}
25
8. TRECEREA NUMRULUI n DIN BAZA 10 N BAZA b
#include<iostream.h>
int n, b, p, nr ;
void main ( )
{
cin >>b ;
cout << introducei n n baza 10 ;
cin >>n ;
nr = 0 ;
p = 1;
while ( n>0 )
{
nr = nr + p * ( n % 10 ) ;
n = n /b ;
p = p*10 ;
}
cout<<nr ;
}
#include<iostream.h>
int n, b, p, nr ;
void main ( )
{
cin >> b ;
cin >> n ;
nr = 0 ;
p=1;
while ( n> 0 )
{
nr = nr + p*( n % 10 ) ;
n = n/ 10 ;
p = p*b ;
}
cout<<nr ;
}
26
10 . DESCOMPUNEREA N FACTORI PRIMI
#include<iostream.h>
int n, d, e , j ;
void main ( )
{
cin >> n ;
j=n;
d=2;
while ( n> 1 )
{
e=0;
while ( n% d == 0 )
{
e += 1 ;
n = n /d ;
}
if ( e > 0 )
cout << e ;
d += 1 ;
}
}
11 . NUMR PERFECT
#include<iostream.h>
int n, d, sd ;
void main ( )
{
cin>>n ;
sd = 0 ;
for ( d = 1 ; d <=n/2 ; d ++)
if ( n%d ==0 ) ;
sd = sd + d ;
if ( n== sd )
cout <<n este perfect <<n ;
else
cout << n nu este perfect<<n ;
}
27
# include < math.h >
28
Fiierele sunt :
1 . de intrare dac se folosesc pentru a citi datele din ele ;
2. de ieire dac se folosesc pentru a afia rezultatele .
Exemplu :
*S se determine i s se afieze toate numerele prime mai mici ca o valoare n dat . Valoarea lui
n se va citi dintr-un fiier iar rezultatele se vor afia ntr-un alt fiier .
Orice fiier are un nume ce conine obligatoriu o extensie . n program se lucreaz cu o variabil
asociat fiierului .
#include<fstream.h>
#include<math.h>
ifstream f ( IN.TXT) ;
ofstream g ( OUT.TXT) ;
void main ( )
{
unsigned int d, n, i, nr ;
f >>n ;
for (i =1 ; i<=n ; i++)
{
nr = 0 ;
for (d= 2 ; (int)d<=sqrt(i) ; d++)
if (i % d ==0 )
nr ++;
if (nr == 0 )
g <<i<<endl ; // g<<i << ; // g << i ;
}
f.close ( ) ;
g .close ( ) ;
}
29