Documente Academic
Documente Profesional
Documente Cultură
NOTIUNI GENERALE
Algoritmul este conceptul fundamental al informaticii. Orice echipament de calcul poate fi
considerat o masina algoritmica.
Într-o definitie aproximativa algoritmul este un set de pasi care defineste modul în care poate fi dusa
la îndeplinire o anumita sarcina. Exemplu de algoritm: algoritmul de interpretare a unei bucti muzicale
(descris în partitura).
DEFINITII SI CARACTERISTICI
Definitie:
Algoritmul este un set finit de pasi executabili, descrisi fara echivoc, care solutioneaza o clasa de
probleme.
Caracterul finit: orice algoritm bine proiectat se termina într-un numar finit de pasi;
Claritatea : algoritmul trebuie descris clar, fara ambiguitati
Generalitatea: orice algoritm trebuie sa rezolve toate problemele dintr-o clasa de probleme;
Completitudinea-presupune tratarea cazurilor speciale (a exceptiilor) unei probleme.
Realizabilitatea: orice algoritm trebuie sa poata fi codificat într-un limbaj de programare;
Eficienta- se refera la timpul de executie (in care sunt folosite resursele calculatorului:
memorie, procesor) si la spatiul de memorie utilizat. Un algoritm este cu atat mai eficient cu
cat spatiul de memorie utilizat este mai mic si numarul de operatii mai putine.
Un algoritm prelucreaza datele de intrare in scopul obtinerii unor rezultate (a datelor de iesire)
utilizand si date intermediare.
Datele sunt valori concrete specifice fiecarei probleme care vor fi retinute de calculator in
anumite zone de memorie.
Dimensiunea zonelor de memorie depinde de tipul datelor respective.
Intuitiv, memoria poate fi reprezentata ca locatii succesive (zone de memorie) identificate prin
adrese (numere de ordine).
Programatorul are sarcina de a gandi algoritmul unei probleme si de a utiliza cat mai eficient
memoria.
În program datele apar fie sub forma unor constante (valori cunoscute anticipat, care nu se
modifica pe parcursul executiei), fie sub forma de variabile. Constantele si variabilele sunt
obiectele informationale de baza manipulate într-un program.
Putem defini o variabila ca fiind un nume dat unei zone de memorie.
Datele se caracterizeaza printr-un anumit tip care va determina :
-o anumita multime din care data poate lua valori
- un anumit mod de reprezentare în memoria calculatorului
- 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.
-variabilele: retin date de un tip anume. O variabila isi poate schimba valoarea dar tipul nu.
O variabila pentru a fi prelucrata trebuie sa fie declarata (anuntata). Acest lucru consta de fapt in
precizarea tipului variabilei.
Exemplu:
caracter car
intreg a
real b,c
logic x
sir y
- expresii: o expresie este alcatuita din unul sau mai multi operanzi legati intre ei prin operatori.
Operanzii pot fi constante sau variabile.
Exemplu:
4.5+2*a
unde 4.4, 2, a sunt operanzi iar + si * sunt operatori
operator semnificatie
+ adunare
- scadere
* inmultire
/ catul impartirii
% restul impartirii
Operatori relationali :
operator semnificatie
= De egalitate
<> diferit
> Mai mare
>= Mai mare sau egal
< Mai mic
<= Mai mic sau egal
Operatori logici :
operator semnificatie
! Negatie logica
si Si logic
sau Sau logic
! A F
F A
si A F
A A F
F F F
sau A F
A A A
F A F
Structura liniara
Atribuirea
var<- expresie ; // Pasul 1. se evalueaza expresia ; Pasul 2 variabila var primeste valoarea expresie
Citeste var1, var2,..., varn; //se introduc datele pt variabilele var1, var2,.....in ordine
Exemplu 1:
citeste a, b
cif1<- a%10
cif2<- b%10;
scrie cif1, cif2
In pseudocod :
I. DACĂ condiţie
ATUNCI instructiune1;
ALTFEL instructiune2;
Exemplu:
1.Se citesc 2 valori reale. Să se afiseze valoarea maximului dintre cele 2 numere.
ALGORITM max_2_nr
max, a, b real;
DACA a >= b
ALTFEL max<-b;
SCRIE max; // 20
Structura liniara
aux= a; // aux=234
a=b; // a=456
b=aux // b=234
Tema – aplicatiile 2 si 3
2. Cunoscand cele 4 note obtinute de un elev la informatica pe parcursul unui semestru si nota de la
teza scrieti un algoritm care sa afiseze media lui.
3. Fie un numar format din trei cifre. Sa se afiseze cifrele sale incepand cu cifra unitatilor.
4. Se citeste un numar natural format din 4 cifre. Afisati numerele obtinute in urmatoarele moduri:
–schimband prima cifra cu ultima
-schimband intre ele cifrele din mijloc
n=1234
nr1=4231
nr2=1324
Date de intrare: n natural;
Date de iesire: nr1, nr2 naturale;
Date ajutatoare: u,z,s,m natural;
Citeste n; n=1234
u<-n%10; u=4
n<-n/10; n=123
z=n%10; z=3
n<-n/10; n=12
s=n%10; s=2
n<-n/10; n=1
m<-n%10; m=1
nr1<-u*1000+s*100+z*10+m; nr1=4*1000+2*100+3*10+1=4231
nr2<-m*1000+z*100+s*10+u; nr2=1324
scrie “nr1=”, nr1;
scrie “nr2=”, nr2;
5. Fie a un numar natural format din 5 cifre. Scrieti un algoritm care sa determine si sa afiseze
numarul format din prima, a treia si a cincea cifra din a.
a=34256 nr=326
6. Un melc a cazut intr-o fantana adanca de x metri. Ziua, melcul urca a cm iar noaptea aluneca b cm.
In cate zile va iesi melcul din fantana?
date de intrare: x natural;
date de iesire: nrz natural;
citeste x,a,b; x=2 m, a=30cm, b=10cm;
x<-x*100; x=200 cm
nrz<- x/(a-b); nrz= 200/20=10 zile
scrie nrz;
7. In fiecare zi lucratoare din saptamana, Pinocchio spune o minciuna in urma careia ii creste nasul
cu x cm pe zi. Sambata si duminica, cand vine Gepetto acasa, pentru a nu-l supara, nu spune nici o
minciuna, ba chiar ii scade nasul cu y cm/zi. In fiecare saptamana, singur acasa, Pinocchio continua
sirul minciunilor. Care este lungimea nasului dupa z zile, stiind ca initial nasul are p cm? (Zilele incep
cu luni)
8. Ana a ramas singura acasa si vrea sa faca placinte. Pentru aceasta are nevoie de x grame faina, y
grame zahar, z ml lapte, p oua, m kg mere. Stiind ca pretul unui kg de faina este px, al unui kg de
zahar este py, litrul de lapte costa pz, kilogramul de mere costa pm si ouale sunt pp lei/buc, sa se afle
pretul placintei Anei.
11. Sa se determine ultima cifra a sumei x+y, unde x si y sunt date de la tastatura.
12. Fiind dat un numar de 4 cifre, sa se construiasca inversul acestuia si sa se faca media
aritmetica a cifrelor sale.
14. O persoana are initial la banca o suma de bani S. In primele 6 luni ale anului, dobanda a fost
p%, iar in urmatoarele 6 luni a fost q% din suma la care s-a adaugat si dobanda pe lunile anterioare, sa
se determine suma pe care o va avea persoana la sfarsitul anului.
Structura alternativa
a intreg;
CITESTE a; // a=20
DACA a%2=0
17. Scrieti un algoritm care sa determine cel mai mare dintre doua numere intregi citite.
18. Scrieti un algorim care sa determine cel mai mare dintre 3 numere intregi citite.
19. Scrieti un program care citeste de la tastatura trei valori numerice a, b, c si apoi afiseaza pe
ecran cea mai mare diferenta dintre oricare doua valori date.
20. Se da un numar din 3 cifre.Sa se genereze cel mai mare numar care are aceleasi cifre ca el.
21. Intr-un parc se joaca 3 copii care au greutatile a,b,c. Sa se stabileasca daca se pot aseza pe un
balansoar astfel incat acesta sa stea in echilibru.
22. Sa se rezolve ecuatia de gradul I cu o necunoscuta: ax+b=0 unde a si b sunt coeficienti reali
cititi. Discutie.
23. Sa se rezolve ecuatia de gradul al II-lea cu 2 necunoscute: ax2+bx+c=0 unde a,b,c sunt
coeficienti reali cititi. Discutie (solutie unica reala, solutii distincte reale, solutii complexe)
24. Sa se verifice daca 3 numere a,b,c sunt pitagorice patratul unuia poate fi scris ca suma
patratelor celorlalte doua)
25. Fie 2 numere cu 4 cifre. Sa se afiseze acela care are suma cifrelor mai mare.
26. Se citesc de la tastatura 3 numere reale. Sa se scrie un algoritm care verifica daca acestea
pot constitui lungimile laturilor unui triunghi. In caz afirmativ se va afisa tipul triunghiului
(oarecare, isoscel sau echilateral).
27. Se citesc de la tastatura coordonatele extremitatilor a doua segmente. Sa se afiseze
lungimea segmentului mai mare.
28. Sa se verifica daca o fractie a/b se poate simplifica prin k. Sa va afisa DA sau NU.