Sunteți pe pagina 1din 4

Probleme rezolvate în pseudocod

1. Se consideră algoritmul de mai jos:

citeste n (număr natural nenul)


i←1
cât timp n>0 execută
dacă n%2 = 0 atunci
scrie i

i← i+1
n← [n/2]

a.) Ce se va afişa pentru n=333?


b.) Scrieţi cea mai mică valoare strict pozitivă pentru variabila n astfel încât să se
afişeze succesiunea de valori 12345?
a. Pentru n=333, algoritmul realizează următoarele:
N=333 I=1
N=166 I=2 Scrie 2
N=83 I=3
N=41 I=4
N=20 I=5 Scrie 5
N=10 I=6 Scrie 6
N=5 I=7
N=2 I=8 Scrie 8
N=1 I=9
N=0 I=10

b. Pentru n=32, algoritmul realizează urmatoarele:


N=32 I=1 Scrie 1
N=16 I=2 Scrie 2
N=8 I=3 Scrie 3
N=4 I=4 Scrie 4
N=2 I=5 Scrie 5
N=1 I=6
N=0 I=7

2. Fie algoritmul de mai jos în care s-a notat a mod b restul împărțirii lui a la b și cu a
div b câtul împarțirii lui a la b.

citeşte a, b (a şi b numere naturale)


k←1
cât timp a+b>0 execută
dacă a mod 10 ≠ b mod 10 atunci
k←0

a ← a div 10
b ← b div 10
a.) Ce se va afişa pentru a=123 şi b=213 ?
b.) Indicaţi o valoare pentru variabila a şi o valoare pentru variabila b astfel încât
algoritmul să afişeze valoarea 1.

a.
A=123 b=213 k=1
A=12 b=21 k=0
A=1 b=2 k=0
A=0 b=0
Scrie 0

b. Pentru a=123 și b=123 se va afișa valoarea 1.

a=123 b=123 k=1


a=12 b=12 k=1
a=1 b=1 k=1
a=0 b=0
Scrie 1

Probleme ce utilizează structura liniară în pseudocod


1. Se citesc 2 valori numerice reale, care reprezintă
dimensiunile (lungimea si lățimea unui dreptunghi). Să se calculeze și să se afișeze aria
dreptunghiului.

Date de intrare: a,b;


Date de iesire: p;
Citeste a,b
p←a*b;
Afiseaza p.

2. Se cere să scrie un algoritm care să permită inițializarea a două variabile a si b


respectiv 2 si 5 și afișarea a sumei și a produsului celor două valori.

Date de intrare: a,b;


Date de iesire: s,p;
a←2;
b←5;
s←a+b;
p←a*b;
Afiseaza s,p.
3. Să se citească două numere a și b. Să se afișeze produsul cifrelor unităților
numerelor.

Date de intrare: a,b;


Date de iesire: p;
Citeste a,b
p← (a%10)*(b%10);
Afiseaza p.

Observație: a%10 este restul împărțirii lui a la 10

4. Fie a, b și c trei numere reale, care reprezintă lungimile laturilor unui triunghi. Să se
scrie un algoritm care să calculeze și să afișeze perimetrul și aria triunghiului.

Date de intrare: a, b, c;
Date de iesire: A, P;
Date de manevra: p;
Citeste a, b, c;
P← a+b+c;
p← P/2;
A← sqrt (p*(p-a)*(p-b)*(p-c));
Afiseaza A, P.

Observație: sqrt (a) reprezintă √𝑎.

5. Fie x1, x2, x3, x4, x5 cinci valori reale. Scrieți un


algoritm care să folosească o singură variabilă suplimentară pentru a permuta circular
valorile celor cinci variabile.

Date de intrare: x1, x2, x3, x4, x5;


Date de iesire: x1, x2, x3, x4, x5;
Date de manevra: n;
Citeste x1, x2, x3, x4, x5
n←x1;
x1←x2;
x2←x3;
x3←x4;
x4←x5;
x5←n;
Afiseaza x1, x2, x3, x4, x5.

6. O broască țestoasă parcurge o distanță de D kilometri


in H ore. Să se scrie un algoritm care să calculeze și să afișeze viteza cu care se
deplasează broasca țestoasă(exprimata in metri/secunda).
Date de intrare: D,H reale;
Date de iesire: V real;
Citeste D,H
/*transform distanța în metri și timpul în secunde*/
D←D*1000;
H←H*3600;
V←D/H;
Afiseaza V.

7. Fie A si B două puncte în plan, specificate prin coordonatele lor carteziene. Să se


scrie un algoritm care să calculeze și să afișeze lungimea segmentului AB.

Date de intrare: L real; /*lungimea segmentului AB*/


Citeste xA,yA,xB,yB;
L←sqrt((xA-xB)*(xA-xB)+(yA-yB)*(yA-yB));
Scrie “L=”, L .