Model de problemă cu meniuri

Scrieţi un algoritm care să convertească în euro o sumă în lei româneşti dacă se apasă tasta 1, în lire sterline dacă se apasă tasta 2 şi în franci elveţieni dacă se apasă tasta 3. Altfel, să se afişeze suma iniţială (1RON=4.5EUR=5GBP=4CHF).

start

scrie “Bine aţi venit la cursul BNR. Doriţi ca suma dumneavoastră să fie convertită în EUR (1), în GBP (2) sau în CHF (3)”

citeşte x,suma

dacă x==1 atunci eur←suma*4.5

scrie eur

altfel dacă x==2 atunci gbp←suma*5

scrie gbp

altfel dacă x==3 atunci chf←suma*4

scrie chf

altfel scrie suma

stop

Obţinerea cifrelor unui număr

Pentru a obţine cifrele unui număr cu n cifre se vor folosi operaţiile de cât şi rest al împărţirii astfel:

(exemplu) Scrieţi un algoritm care citeşte un număr x de 4 cifre şi îi află cifrele.

start

citeşte x

d←x%10

c←(x/10)%10

b←(x/100)%10

a←x/1000

scrie a,b,c,d

stop

Ordonarea a n numere

Ordonarea a n numere se realizază cu ajutorul algoritmului de interschimbare.

Astfel, valorile numerelor vor fi interschimbate două câte două în ordine, pentru a se obţine o ordine crescătoare sau descrescătoare.

Exemplu: Să se afişeze în ordine crescătoare numerele a, b, c.

Pentru ca numerele să fie în ordine crescătoare, următoarele condiţii vor trebui să fie îndeplinite: a<b, b<c şi ab atunci aux←a

a←b

b←aux

dacă b>c atunci aux←b

b←c

c←aux

dacă a>c atunci aux←a

a←c

c←aux

scrie a,b,c

stop

Algoritmul de interschimbare (regula paharului)

Într-un algoritm, valorile numerelor citite pot fi interschimbate în 3 metode

1. Cu ajutorul unei variabile

(exemplu) Scrieţi un algoritm citeşte două numere a şi b şi le interschimbă valorile, afişându-le pe ecran.

start

citeşte a,b

x←a

a←b

b←x

scrie a,b

stop

În acest caz am realizat permutarea circular spre stânga. Acest lucru se poate face şi spre dreapta.

start

citeşte a,b

x←b

b←a

a←x

scrie a,b

stop

2. Cu ajutorul adunării şi al scăderii

start

citeşte a,b

a←a+b

b←a-b

a←a-b

scrie a,b

stop

3. Cu ajutorul înmulţirii şi al împărţirii

start

citeşte a,b

a←a*b

b←a/b

a←a/b

scrie a,b

stop

Maximul şi minimul a n numere

Există 3 metode prin care putem afla maximul şi minimul a n numere.

1. Prin utilizarea următoarelor formule:

max(x,y)=(x+y+|x-y|)/2

min(x,y)=(x+y-|x+y|)/2

Astfel, se va afla maximul sau minimul primelor 2 numere, apoi cel dintre numărul obţinut şi următorul număr, până ce se ajunge la ultimul.

(exemplu) Scrieţi un algoritm care să calculeze şi să afişeze maximul dintre 4 numere.

D.I.: x, y, z, t

D.O.: max(x,y,z,t)

start

citeşte x,y,z,t

max1←(x+y+abs(x-y))/2

max2←(max1+z+abs(max1-y))/2

max←(max2+t+abs(max2-t))/2

scrie max

stop

 

2. Prin utilizarea structurii alternative cu două instrucţiuni.

start

citeşte x,y,z,t

dacă x>y atunci max1←x

altfel max1←y

dacă max1>z atunci max2←max1

altfel max2←z

dacă max2>t atunci max←max2

altfel max←t

scrie max

stop

 

3. Prin atribuirea primului număr maximului sau minimului şi utilizarea structurii alternative cu o instrucţiune (comparaţii succesive).

start

citeşte x,y,z,t

max←x

dacă y>max atunci max←y

dacă z>max atunci max←z

dacă t>max atunci max←t

scrie max

stop