Sunteți pe pagina 1din 13

Informatic clasa a IX-a

ALGORITMI

1 / 13

Un algoritm (cuvntul are la origine numele matematicianului persan Al-Khwarizmi) nseamn


n matematic i informatic o metod sau o procedur de calcul, alctuit din paii elementari
necesari pentru rezolvarea unei probleme sau categorii de probleme.
Cele mai importante proprieti ale unui algoritm sunt urmtoarele:
Corectitudinea - este proprietatea algoritmului de a furniza o soluie corect a problemei
date.
Generalitatea - este proprietatea unui algoritm de a rezolva o clas sau categorie de
probleme, i nu doar o singur problem particular.
Claritatea - proprietatea algoritmului de a descrie cu exactitate i fr ambiguiti paii care
trebuiesc parcuri n rezolvarea problemei.
Verificabilitatea - proprietate care permite ca fiecare pas s poat fi verificat ntr-un timp
rezonabil de ctre om, folosind mijloace de validare de ncredere.
Optimalitatea - proprietatea unui algoritm de a se termina dup un numr minim de pai.
Finitudinea - este proprietatea algoritmului de a se termina ntr-un numr finit de pai.
Eficiena - este proprietatea unui algoritm de a se termina nu numai ntr-un numr finit, ci
i "rezonabil" de pai, chiar dac acesta nu este cel mai mic posibil (nu este optim).
Etapele rezolvarii unei probleme:
-stabilirea cerintelor problemei
-stabilirea datelor de intrare si a datelor de iesire
-stabilirea unui rationament general de rezolvare a problemei
-reprezentarea algoritmului problemei intr-o forma simpla si clara
-verificarea rationamentului pentru valori concrete
-implementarea algoritmului intr-un limbaj de programare
Notiunile cu care opereaza algoritmii
Algoritmii opereaza cu urmatoarele notiuni:
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).
n program datele apar fie sub forma unor constante (valori cunoscute anticipat, care nu se
modifica pe parcursul executiei), fie sub forma de variabile.
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.

Informatic clasa a IX-a

2 / 13

ALGORITMI
Datele se pot clasifica dupa tipul lor in:
Caractere
Intregi
Reale
Logice
Sir de caractere
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
Expresiile : 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
Operatori pentru tipuri numerice :
operator
semnificatie
+
adunare
scadere
*
inmultire
/
catul impartirii
%
restul impartirii
Operatori relationali :
operator
semnificatie
=
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
Datele de tip logic pot avea doua valori : A (adevarat) si F (fals)
Reguli de compunere a operatorilor logici :
expresie
! expresie
A
F
F
A

Informatic clasa a IX-a

ALGORITMI

Expresie1
A
A
F
F

Expresie2
A
F
A
F

Expresie1 SI Expresie2
A
F
F
F

Expresie1
A
A
F
F

Expresie2
A
F
A
F

Expresie1 SAU Expresie2


A
A
A
F

3 / 13

Programarea structurata a inceput la inceputul anilor 70. Este un concept cu o importanta


fundamentala in scrierea algoritmilor. In general, algoritmii se eleboreaza prin utilizarea exclusiva a
anumitor structuri (liniara, alternativa, repetitiva). Prin structura se intelege o anumita forma de
imbinare a operatiilor cu care lucreaza algoritmii.

Un limbaj pseudocod este un ansamblu de convenii, respectate n mod sistematic, care


definesc operaiile permise (instruciuni) pentru reprezentarea algoritmilor.
Limbajul pseudocod folosete cuvinte cheie preluate din limbajul natural care descriu
instruciunile din algoritm. (dac, atunci, altfel, ct timp, altfel, execut). Acestea formeaz
vocabularul (lexicul) limbajului.
Regulile de folosire a cuvintelor cheie pentru formarea instruciunilor mpeun cu alte cuvinte
sau simboluri determin sintaxa limbajului.
STRUCTURI DE CONTROL
1. STRUCTURA LINIARA
Parcurgerea instruciunilor n secven, n ordinea lor, reprezint o structur liniar (secvenial).
A. Declararea datelor
variabila tip;
La nceputul oricrui algoritm, vom preciza datele de intrare, datele de ieire, datele
intermediare, precum i tipul lor. nainte de a utiliza orice variabil, se va declara, preciznd numele i
tipul ei. O variabil nu poate fi declarat de mai multe ori n acelai algoritm.
Exemple:
x real;
c character;
i ntreg;
B.Operaia de citire
citete variabila1, variabila2,, variabilan;

Informatic clasa a IX-a

4 / 13

ALGORITMI
Efect: Prin operaia de citire (operaia de intrare) se preiau succesiv valori de la tastatur i se
asociaz, n ordine, variabilelor specificate.
C.Operaia de scriere
scrie expresie1, expresie2,, expresien;

Efect: Operaia de scriere (operaia de ieire) presupune evaluarea n ordine a expresiilor


specificate i afiarea pe ecran a valorilor lor pe aceeai linie.
D.Operaia de atribuire
variabila expresie;
Efect: se evalueaz expresia, apoi se atribuie valoarea expresiei variabilei din membrul stng.
Aplicaii rezolvate
1. Fie a un numr real, citit de la tastatur, care reprezint lungimea laturii unui cub. S se scrie un
algoritm care s calculeze i s se afieze volumul i aria total a cubului.
Date de intrare a real;
Date de ieire: V real;
A real;
nceput
citete a;
Va*a*a;
scrie volumul cubului este: , V;
A6*a*a;
scrie aria cubului este: , A;
sfrit
2. De ziua lui, Andrei a primit S lei i ar vrea s-i invite colegii la o ngheat. tiind c o ngheat
cost P lei, s se scrie un algoritm care s calculeze i s afieze numrul maxim de colegi pe care
Ionel i poate invita i suma de bani care i mai rmne lui Ionel.
Date de intrare: S natural;
nceput
P natural;
citete S,P;
nr natural;
nr S/(P+1);
/*P+1 pt c i Andrei
Date de ieire: rest natural;
mnnc ngheat*/
rest S%(P+1);
scrie numrul maxim de invitai este:
,nr;
scrie Suma rmas este: , rest;
sfrit
3.

Fie x un numr natural format din 5 cifre(x4x3x2x1x0). S se afieze un triunghi format din
cifrele numrului x astfel:
prima linie (n vf. triunghiului) se va afla cifra din mijloc x2.
x2
-

Informatic clasa a IX-a


-

ALGORITMI
Pe linia a doua se vor afla cifrele x3x2x1
a treia linie se vor afla toate cifrele lui x

Date de intrare: x natural;


Date de ieire: x4,x3,x2,x1,x0
natural;
nceput
citete x;
x0x%10; /*rein cifra
unitilor*/
xx/10; /*elimin cifra
unitilor*/
x1x%10; /*rein cifra
zecilor*/

5 / 13
x3x2x1
x4x3x2x1x0

xx/10; /*elimin cifra zecilor*/


x2x%10; /*rein cifra sutelor*/
xx/10; /*elimin cifra sutelor*/
x3x%10; /*rein cifra miilor*/
xx/10;
/* elimin cifra miilor, n x rmne
cifra zecilor de mii*/
scrie ,x2; scrie ,x3,x2, x1; scrie
x,x3,x2,x1,x0 ;
sfrit

Probleme propuse
1. Ce va afia urmtorul algoritm pentru valorile citite 7 i 23 :
Date intrare/iesire: a natural,b natural;
nceput
citete a,b;
aa+b;
ba-b;
aa-b;
scrie a= ,a, b=,b;
sfrit
2. Ce va afia urmtorul algoritm dac se citete valoarea:
Date de intrare: a natural;
Date intermediare: b natural;
Date de ieire: c natural;
nceput
citete a;
ba % 100;
a[a/100];
cb*100+a;
scrie c;
sfrit
3. Ce valoare va avea variabila a la sfritul urmtoarei secvene de instruciuni?
a, b ntregi;
a3; b7;
ba+b/2: aa-b/2*a;
4. Fie a, b,c i d patru variabile reale. Care din urmtoarele instruciuni atribuie variabilei d
media aritmetic a valorilor variabilelor a, b i c?
a) d(a+b+c)/3;
c) da+b+c/3;
b) da/3+b/3+c/3;
d) d(a+b+c)/3-1;

Informatic clasa a IX-a

6 / 13

ALGORITMI
5. Se consider polinomul P(x)=ax +bx +cx+d. Se citesc valorile a,b,c,d i x0. S se calculeze
valoarea P(x0).
6. Se citete un numr natural cu exact trei cifre. S se afieze suma cifrelor acestui numr.
7. Fie x1,x2,x3,x4, x5 cinci valori reale. Scriei un algoritm care s foloseasc o singur variabil
suplimentar pentru a permuta circular valorile celor cinci variabile (ex: 1,2,3,4,5 s devin
2,3,4,5,1).
8. Se citete un numr ntreg ce reprezint un numr de ore. S se afieze acest numr n
minute, apoi n secunde.
9. S se determine ctul i restul mpririi lui a la b fr a realiza efectiv mprirea.
10. Fie a, b i c trei numere reale, care reprezint lungimile laturilor unui triunghi. S se scrie un
algoritm care s calculeze i s afieze perimetrul i aria triunghiului.
11. O broasc estoas parcurge o distan de D kilometri n H ore. S se scrie un algoritm care
s calculeze i s se afieze viteza cu care se deplaseaz broasca estoas (exprimat n
metri/secund).
12. Doi colegi (Victor i Florin) pleac simultan din oraele n care locuiesc, unul ctre cellalt.
tiind c distana dintre cele 2 orae este D, c Victor merge cu viteza v1, iar Florin merge
cu viteza v2 (D,v1,v2 numere reale), scriei algoritmul care calculeaz dup ct timp se
ntlnesc cei doi colegi i la ce distan de oraul locuiete Victor.
13. Fie A i B dou puncte n plan, specificate prin coordonatele lor carteziene. S se scrie un
algoritm care s calculeze i s afieze lungimea segmentului AB.
14. A fost odat un balaur cu 6 capete. ntr-o zi Ft-Frumos s-a suprat i i-a tiat un cap. Peste
noapte i-au crescut alte 6 capete n loc. Pe acelai gt! A doua zi, Ft-Frumos i-a tiat iar un
cap, dar peste noapte balaurul i-au crescut n loc alte 6 capete...i tot aa timp de n zile. n
cea de-a (n+1)-a zi, Ft-Frumos s-a plictisit i a plecat acas scriei un algoritm care citete
de la tastatur n, numrul de zile i care afieaz pe ecran cte capete avea balaurul dup n
zile. De exemplu: pentru n=3, algoritmul va afia: Dupa 3 zile balaurul are 15 capete.
(Olimpiada 2002 cl a V-a)
15. S se calculeze ma a dou numere a,b reale.
16. Se citesc de la tastatur dou numere naturale nenule. S se calculeze media aritmetic,
media geometric i media armonic a celor 2 numere.
3

2. STRUCTURA ALTERNATIV
dac condiie atunci
instructiune_1
altfel
instruciunea_2
sf.dac
Efect:
Se evalueaz expresia.
Dac valoarea expresiei este Adevrat, atunci se execut instruciune_1.
Dac valoarea expresiei este Fals, se execut instruciune_2.
Observaii
1. Att ramura atunci, ct i pe ramura altfel este permis executarea unei singure instruciuni.
n cazul n care este necesar efectuarea mai multor operaii, acestea se grupeaz ntr-o
singur instruciune compus.
2. Dac pe ramura altfel ne este necesar efectuarea nici unei operaii, aceasta poate lipsi
(structura alternativ cu o ramur vid).
Selectarea instruciunii ce urmeaz s fie executat n funcie de valoarea unei expresii reprezint o
structur alternativ.
Aplicaii
1. Modulul unui numr
Se intoduce de la tastatur un numr ntreg x. Scriei un algoritm care calculeaz i afieaz
modulul numrului x.
Date de intrare: x ntreg;
Date de ieire: rezultatul testului
citete x;
dac x<0 atunci m-x;
altfel mx;
scrie modulul este: ,m;.
sf.dac
2. Paritatea
S se introduc de la tastatur un numr ntreg x. Scriei un algoritm care testeaz dac x este
un numr par.
Date de intrare: x ntreg;
Date de ieire: m ntreg;
citete x;
dac (x%2=0) atunci scrie x, este par;
altfel scrie x, este impar;
sf.dac
3. S se rezolve ecuaia de gradul I pentru coeficienii a,b reali dai .
citeste a,b
daca a0 atunci {
x (-b/a)
scrie x
}
altfel daca b0

atunci scrie nu exista solutii


altfel scrie o infinitate de solutii
sf.daca
sf.daca
4. S se calculeze valoarea funciei
f(x)= x2 ,
daca x<0
2x+1 , daca x>=0
pentru un x real dat.
citeste x
daca x<0 atunci f x*x
altfel f 2*x+1
sf.daca scrie f
Structura alternativ generalizat
La acest tip de structur se face selectarea ntre mai multe aciuni, n funcie de o variabil de
memorie numit selector, care poate lua mai multe valori, dintr-o mulime ordonat de
leemente de acelai tip cu selectorul.
Sintaxa:
n cazul c selector
caz1 v1: instruciune1
caz2 v2: instruciune2

cazn vn: instruciunen


altfel instruciune n+1
sf.cazuri

// (optional)

Selector este o variabil sau o expresie de tip


ntreg sau caracter (nu este permis tipul real).
caz1,cazn se numesc etichete i sunt valori
pe care la poate lua selectorul.
Dac selector=v1 se execut instruciune1.
Dac selector=v2 se execut instruciune2
Dac selectorv k(k=1,n) i exist ramura
altfel atunci se execut instruciune n+1;
Dac nu exist ramuar else (altfel) atunci nu se
execut nimic i se trece la urmtoarea
instruciune de dup case(cazuri).

Probleme propuse
1. Fie ecuaia de gradul al II-lea ax2+bx+c=0 cu a0. Scriei un algoritm care s rezolve ecuaia n
mulimea numerelor reale.
2. Fie a i b dou nr ntregi. Scriei un algoritm care s verifice dac a i b sunt numere
consecutive.
3. Stabilii relaia de ordine dintre dou numere reale oarecare , citite de la tastatur .
4. Se citesc trei numere a,b,c. S se tipreasc maximul dintre ele .
5. Se citete media unui candidat la examenul de capacitate. Dac media este 9.18, candidatul este
admis n liceul solicitat, altfel este transferat la alt liceu. Dac media este cel puin 9.50, este
admis la profilul informatic-intensiv, altfel la matematic-informatic. Citind media
candidatului, stabilii cum este repartizat.
6. Se citesc de la tastatur dou numere i un caracter. Dac caracterul este +, calculai suma
celor dou numere, dac este -, diferena lor, dac este *, produsul, iar dac este /
calculai, dac este posibil, ctul.
7. Citindu-se o liter mic, s se precizeze dac aceasta este vocal sau consoan.
8. Pe baza datei curente exprimat prin trei valori naturale nenule (zi,lun,an), s se calculeze data
zilei urmtoare.

9. Se citesc trei numere naturale nenule a,b,c. S se verifice dac cele trei valori pot fi laturile
unui triunghi i, n caz afirmativ, s se calculeze aria lui cu formula lui Heron. De asemenea s
se specifice i dac este un triunghi particular (isoscel sau echilateral).
10. Se citesc patru numere ntregi oarecare. S se verifice dac ele alctuiesc o mulime n sens
matematic, adic valorile sunt distincte.
11. Se citete de la tastatur un numr natural cu exact patru cifre. S se verifice dac numrul este
palindrom, adic citindu-l de la sfrit spre nceput se obine acelai numr.
12. Se dau dou numere de tip ntreg. S se verifice dac ele sunt numere consecutive.
13. n planul cartezian xOy, se da un dreptunghi prin colurile stanga-jos (x s,ys) i dreaptasus(xd,yd
). S se detemine dac un punct oarecare (x,y) se afl sau nu n interiorul dreptunghiului.
14. S se verifice dac o fracie a/b, pentru a i b numere naturale nenule cu maxim 5 cifre, se
simplific prin k. n caz afirmativ se va afia i fracia simplificat. Numerele a,b,k se citesc de
la tastatur n aceast ordine.
15. Se citesc patru numere naturale. S se afieze maximul dintre s14 i s23, unde s14 este suma
dintre primul i ultimul numr, iar s23 dintre al doilea i al treilea numr.
16. Se citesc dou numere ntregi a, b cu a>b. S se testeze dac cele dou numere se divid. n caz
afirmativ s se afieze un mesaj corespunztor, n caz contrar afai ctul i restul mpririi lui
a la b.
17. Fiind date numere ntregi a, b, c, d s se afieze minimul dintre ele.
18. Cunoscnd numrul natural n s se calculeze suma 1+2+3+...+n.
19. Cunoscnd k i n (k<=n) numere naturale, s se calculeze suma k+(k+1)+...+n.
20. S se determine ultima cifr a sumei x+y, unde x i y sunt numere naturale date de la tastatur.
21. Fie a,b i c salariile a trei persoane. S se precizeze cte dintre acestea sunt cel puin egale cu o
valoare dat x reprezentnd salariul mediu pe economie.
22. S se determine ultima cifr a numrului 2x, pentru x numr natural dat.
23. Folosind o singur comparaie, s se verifice dac trei numere naturale cu cel mult trei cifre
fiecare sunt pitagoreice. Se va afia un mesaj corespunztor.
24. Ionel are H1 cm, Gigel are H2 cm, iar Danu are H3 cm. Scriei un algoritm care s afieze
numele celor 3 copii n ordinea cresctoare a nlimii.
25. Un iepura zglobiu iei din pdure i ncepu s alerge pe cmpie cu o vitez constant v 1 m/s.
Dup un timp t0, apare la marginea pdurii un leu. Leul zrii iepurele i ncepu s alerge dup
el cu o vitez constant v2 m/s. Scriei un algoritm care afieaz dup cte secunde prinde leul
iepurele sau valoarea +1 dac leul nu prinde iepurele.
26. Orice sum de bani S (S>7) poate fi pltit numai cu monede de 3 i 5 lei. Dat fiind S>7, scriei
un program care s determine o modalitate de plat a sumei S numai cu monede de 3 i 5 lei.
27. Se citesc trei numere a, b i c. S se verifice dac ele pot fi termenii unei progresii aritmetice.
28. Se citesc 2 numere naturale a i b. S se afieze cte numere pare sunt n intervalul [a,b].
29. Se citesc dou intervale de timp exprimate n ore minute i secunde (h1,m1,s1) i (h2,m2,s2).
S se calculeze suma celor 2 intervale de timp.
30. Se citete un numr ntreg n care reprezint un an calendaristic. S se verifice dac anul este
bisect sau nu (condiia ca un an, s fie bisect este ca, dac anul este divizibil cu 100, s fie
divizibil cu 4; altfel s fie divizibil cu 400).
31. Se d o dreapt n planul cartezian xoy. S se determine dac un punct p de coordonate x,z
aparine sau nu dreptei.

3. STRUCTURA REPETITIVA
De multe ori, n construirea algoritmilor de rezolvarea unor prtobleme, este necesar
repetarea unor operaii atta timp ct condiia este adevrat:
ct timp este culoarea verde, mai trece o main.
ct timp mai sunt bilete, vindei biletele; sau vindei bilete pn le terminai.
Ct timp mai avei greeli de corectat, corectai greelile.
ct timp mai avei numere, le adunai.
ct timp mai avei cifre ntr-un numar afisai-le.
ncepnd de la 1 scriei n ordine numerele pn la 100.
Metoda de implementare a unei repetiii este structura repetitiv.
Structura repetitiv cuprinde: un grup de instruciuni, numite corpul ciclului, ce se execut
repetat, i testarea unei condiii care face ca procesul de repetare s continue sau nu.
Ex: Se introduce de la tastatur numere pn cnd ultimul numr este 0, i se calculeaz suma
numerelor. DI: S iniial 0, i a valoarea citit ce se adaug la sum pn cnd a=0.
Spunem pe scurt ct timp a<>0, adun-l pe a la S.
Procesul de control cuprinde trei aciuni:
Iniializarea- stabilete starea iniial, starea dinainte de prima parcurgere a corpului ciclului.
Operaia de atribuire s0, i citirea primului numr (citete a).
Testarea- compar starea curent cu starea final care face ca procesul de repetare s se sfreasc.
Se compar numrul a cu 0 (a<>0) dac condiia este adevrat se continu citirea lui a. Procesul
de executare repetat se termin cnd valoarea introdus pentru a este 0.
Modificarea- Schimb starea curent astfel nct s se avanseze ctre starea final. Modificarea
face parte din corpul ciclului i n exemplul dat const n citirea unei noi valori a lui a (citete a),
care poate s fie 0.
Structura repetitiv
Executarea repetat a unor aciuni, sub un proces de control, este conceput algoritmic printr-o
structur repetitiv.
Procesul de control presupune trei aciuni:

Iniializare- Stabilete, starea dinainte de prima parcurgere a corpului ciclului. (ex.s0,


i1)
Testare - compar starea curent cu starea care termin procesul de repetare i are rolul de
a termina procesul de ciclare.(i<=n)
Modificare-Schimb starea curent astfel nct s se avanseze ctre starea final, care
ncheie procesul de repetare. (ii+1)

Clasificarea structurilor repetitive


Structura repetitiv poate fi:
- cu numr necunoscut cunoscut de pai
- cu numr cunoscut de pasi
Structura repetitiv cu numr necunoscut de pai poate fi:
- cu test iniial
- cu test final
Sintaxa instruciunii repetitive cu numr necunoscut de pai cu test iniial ct_timp
Structura repetitiv cu test initial se numete instruciunea ct_timp si are urmtoarea sintax:

ct_timp (condiie) execut


instrucinune;
sfrit_ct_timp
Efectul instruciunii:
Pas 1: Se evalueaz condiia care este o expresie.
Pas 2: Dac expresia este fals, se iese din instruciunea ct_timp; Dac valoarea este adevrat,
se execut instructiunea, apoi se revine la Pas 1, la evaluarea expresiei.
Observaii:
1. Instruciunea se execut, ct timp valoarea expresiei din condiiei este adevrat. Pentru ca
ciclul s nu fie infinit, este obligatoriu ca instruciunea care se execut s modifice cel puin
una din variabilele care intervin n expresie, astfel nct acesta s poat lua valoarea fals.
2. Dac expresia din condiie are de la nceput valoarea fals, instruciunea nu se execut nici
mcar o dat.
3. Instruciunea din corpul ciclului ct_timp poate s conin o alt instruciune ct_timp. n
acest caz se spune c instruciunile ct_timp sunt imbricate.
Probleme propuse
1) S se calculeze suma S=1+2+3=....+n , respectiv produsul P=1*2*3*....*n , pentru numrul
n natural nenul dat.
2) S se calculeze media aritmetic a n valori reale citite pe rnd de la tastatur.
3) Se citesc pe rnd de la tastatur numere ntregi nenule ntr-o variabil x, pn la
introducerea valorii 0. S se calculeze suma numerelor pozitive introduse i produsul celor
negative.
4) Se citesc pe rnd n numere ntregi i apoi o valoare ntreag a. S se determine numrul de
apariii ale valorii a printre numerele citite.
5) Precizai ce se va afia n urma execuiei secvenei de program de mai jos pentru n=5 (s,n
i k sunt variabile ntregi).
Date de intrare: n intreg.
Date de iesire:S intreg
Citeste n;
S0;
k1;
cat_timp(k<=n)executa
s=s+k;
k=k+2;
Sf_cat_timp
Scrie s=, s;
a) s=4 b) s=16
c) s=9 d) s=15
e)s=0
6) S se afiseze cifrele numarului natural n citit de la tastatura.(Atentie nu se cunosc numarul
cifrelor lui n).
7) Fie secventa cu x=179
Date de intrare: x intreg;
Date de iesire: s intreg;
Date intermediare: c,d;
citeste x;

dx;
s0;
cat_timp(d<>0)executa
cd % 10;
ss+c;
d[d / 10];
Sf_cat_timp
scrie s;
Ce se afiseaz?
a) 16
b) 18
c)17 d) 0
e) 971
8) Se citete o succesiune de numere ntregi pn la introducerea valorii 0. S se calculeze
media aritmetic a numerelor pozitive citite i numrul numerelor negative.
9) Se citesc pe rnd numere ntregi pn la introducerea valorii 1. S se calculeze media
aritmetic a valorilor nenule citite.
10) Pentru un numr natural nenul n dat, s se determine p natural cu proprietatea 2p<=n.
11) S se realizeze nmulirea a dou numere naturale nenule a i b date prin adunri repetate.
Structura repetitiv cu test final
Sintaxa:
repet
instructiune
pn cnd condiie
Efect:
- se execut secvena de instructiuni (orice instruciune pseudocod) care formeaz corpul
ciclului, apoi se verific condiia, care este o expresie logic;
- dac condiia este fals, se execut din nou secvena, s.a.m.d.;
- corpul ciclului se execut n mod repetat pn cnd condiia devine adevrat (adic ct
timp este fals).
Observaii:
- este un ciclu cu test final pentru c mai nti se execut secvena i apoi se verific
condiia;
- este un ciclu cu numr necunoscut de pai, numrul minim de execuii asigurat pentru
secven este 1 (cnd din start condiia este adevrat);
- pentru a evita buclarea infinit, corpul ciclului trebuie s conin cel puin o instruciune
care s asigure ieirea din bucl (la un moment dat condiia s devin adevrat).
Probleme propuse
Se citete un ir de numere ntregi pn la ntlnirea valorii 0. S se calculeze media
aritmetic a numerelor din ir.
1. Se considera algoritmul urmator:
citeste n
repeta
cifra n mod 10;
scrie c;
n [n / 10]

pana cand n=0


Determinati ce se afiseaza pentru n =1234.
2. Sa se afiseze inversul numarului n.
3. Sa se calculeze cmmdc-ul, respectiv cmmmc-ul a doua numere a, b.
4. Sa se realize algoritmul de determinarea produsului a doua numere a si b prin adunari
repetate.
5. S se calculeze ctul i restul mpririi a dou numere naturale nenule , a i b date , prin
scderi repetate.
6. S se descompun un numr natural nenul dat n factori primi , afisnd pentru fiecare factor
prim i puterea corespunztoare
7. S se verifice dac un numr natural nenul dat este palindrom , adic citit de la dreapta la
stnga i de la stnga la dreapta reprezint acelai numr .
8. S se determine numrul de apariii ale unei valori date, printre elementele unui ir dat cu n
elemente.
Structura repetitiv cu numr cunoscut de pai
Sintaxa:
pentru v = vi , vf , pas execut
instructiune
Sf.pentru
Observaii:
- v = variabila contor (de tip ntreg sau caracter);
- vi = valoarea iniial de la care ncepe numrarea;
- vf = valoarea final la care se oprete numrarea;
- pas = din ct n ct se numr (pasul contorului).
vi , vf i pas sunt constante, variabile sau expresii de acelai tip cu v.
Dac
a). vi <= vf i pas >0 - contor cresctor
b). vi >= vf i pas<0 - contor descresctor
Efect:
- se ncarc variabila contor cu valoarea iniial de la care ncepe numrtoarea (vi);
- ct timp nu s-a depit valoarea final vf la care se oprete numrarea (adic vi <= vf pentru
un contor cresctor, sau vi >= vf pentru un contor descresctor) se execut secvena care
formeaz corpul ciclului i se modific variabila contor v cu valoarea pasului (crete sau scade
cu valoarea pas);
- cnd valoarea final vf este depit, instruciunea se ncheie.
Observaii:
- este un ciclu cu numr cunoscut de pai:
-

nr pai =

vf - vi

pas

+1

nu se recomand modificarea variabilei contor v n corpul ciclului deoarece ea este modificat


implicit de ctre instruciune cu valoarea pasului pas; modificarea explicit a lui v duce la
comportri imprevizibile ale instruciunii.
- dac pas lipsete din sintax se consider c pas = 1 (vezi mai sus)