Maximul dintre 3 numere

Enunţ:

Să se determine valoarea maxima dintre trei numere memorate în variabilele a, b şi c.

Rezolvare:

Tinând cont de exemplul anterior o modalitate simplă de rezolvare ar consta în compararea două câte două valorile variabilelor a, b, şi c. Se compară, spre exemplu, prima dată valoarea variabilei a cu valoarea variabilei b şi presupunem că relaţia a>b este adevărată. Dacă menţinem adevărată această presupunere, atunci valoarea maximă obţinută până acum este a. Mai rămâne să comparăm valoarea variabilei c faţă de valoareaa. În această situaţie există două cazuri şi anume:

Cazul 1: reprezentat în următorul desen:

rezultă că valoarea variabilei c este mai mare decât valoarea variabilei a, deci valoarea maximă dintre cele trei numere este valoarea lui c;

Cazul 2: reprezentat în următorul desen:

când valoarea variabilei c este mai mică decât valoarea variabilei a (nu contează în acest moment raportul dintre variabilele b şi c), deci rezultă căvaloarea maximă dintre cele trei numere este valoarea lui a.

Algoritm în pseudocod

citeste a

citeste b

citeste c

daca a>b atunci

| daca c>a atunci

| | max=c

| | altfel

| | max=a

| |_▄

| altfel

| daca c>b atunci

| | max=c;

| | altfel

| | max=b

| |_▄

|_▄

scrie max

Program în Code Bloks

#include<iostream>

using namespace std;

int main()

Rezultat asteptat

{int a,b,c,max;

cout<<"a="; cin>>a;

cout<<"b="; cin>>b;

cout<<"c="; cin>>c;

if(a>b)

if(c>a)

max=c;

else

max=a;

else

if(c>b)

max=c;

else

max=b;

cout<<"Valoarea maxima este "<<max;

return 0;

}

Dar, acest mod de determinarea valorii maxime este greu de aplicat atunci când numărul variabilelor creşte la mai mult de trei. Pentru a obţine un algoritm simplu de aplicat pentru determinarea valorii maxime dintre oricâte variabile se va proceda astfel:

· Pas 1 : Compar prima dată valoarea variabilei a cu valoarea variabilei b, şi dacă valoarea lui a este mai mare decât valoarea lui b interschimb valorile celor două variabile, obţinând în acest fel valoarea maximă dintre primele două variabile în variabila b.

· Pas 2: Compar de aceasta data valoarea variabilei b cu valoarea variabilei c, şi dacă valoarea variabilei b este mai mare decât valoare lui cinterschimb valorile celor două variabile, obţinând astfel valoarea maximă dintre cele trei variabile în variabila c.

· Pas 3: afişez valoarea variabilei c ca fiind valoarea maxima dintre a,b si c.

Algoritm în pseudocod

intregi a,b

citeste a

citeste b

citeste c

daca a>b atunci

| aux=a

| a=b

| b=aux

|_▄

daca b>c atunci

| aux=b

| b=c

| c=aux

|_▄

scrie max

Program în Code Blocks

#include<iostream>

using namespace std;

int main()

{int a,b,c,aux;

cout<<"a="; cin>>a;

cout<<"b="; cin>>b;

cout<<"c="; cin>>c;

if(a>b)

{ aux=a;

a=b;

b=aux;

};

if(b>c)

{aux=b;

b=c;

c=aux;

}

cout<<"Valoarea maxima este "<<c;

return 0;

}

Rezultat afişat