Sunteți pe pagina 1din 5

2.

Implementarea tehnicii Greedy n rezolvarea problemelor de


maxim i minim

De determinat cele mai mari 2 numere ntregi introduse de la tastatur

Se cere de determinat cele mai mari 2 numere dintr-un ir de numere ntregi


nenule introduse de la tastatur.Citirea de la tastatur se va termina atunci cnd se
va introduce cifra 0.

program tehnica_greedy;
uses crt;
var a1,a2,n,c:integer; { a1<a2 }
begin
clrscr;
a1:=-maxint;
a2:=-maxint;
n:=-maxint;
writeln('Ultimul numar introdus va fi cifra 0 ');
while n<>0 do
begin
if n>a1 then a1:=n;
if a2<a1 then
begin
c:=a1;
a1:=a2;
a2:=c;
end;
write('Introdu numarul n= ');
readln(n);
end;
writeln('Cele mai mari 2 numere :');
writeln('a1 = ',a1);
writeln('a2 = ',a2);
readkey;
end.
De determinat cele mai mari 3 numere ntregi introduse de la tastatur

Se cere de determinat cele mai mari 3 numere dintr-un ir de numere ntregi nenule
introduse de la tastatur. Citirea de la tastatur se va termina atunci cnd se va
introduce cifra 0.

program tehnica_greedy;
uses crt;
var a1,a2,a3,n,c,t:integer; { a1<a2<a3 }
begin
clrscr;
a1:=-maxint;
a2:=-maxint;
a3:=-maxint;
n:=-maxint;
writeln('Ultimul numar introdus va fi cifra 0 ');
while n<>0 do
begin
if n>a1 then a1:=n;
if a2<a1 then
begin
c:=a1;
a1:=a2;
a2:=c;
if a3<a2 then
begin
t:=a2;
a2:=a3;
a3:=t;
end;
end;
write('Introdu numarul n= ');
readln(n);
end;
writeln('Cele mai mari 3 numere :');
writeln('a1 = ',a1);
writeln('a2 = ',a2);
writeln('a3 = ',a3);
readkey;
end.
De determinat cele mai mari 2 numere ntregi impare introduse de la
tastatur

Se cere de determinat cele mai mari 2 numere pare (impare) dintr-un ir de numere
ntregi nenule introduse de la tastatur. Citirea de la tastatur se va termina atunci
cnd se va introduce cifra 0.

program tehnica_greedy;
uses crt;
var a1,a2,n,c:integer;
begin
clrscr;
a1:=-maxint;
a2:=-maxint;
n:=-maxint;
writeln('Ultimul numar introdus va fi cifra 0 ');
while n<>0 do
begin
if odd(n) then begin {odd(n)-par, not(odd(n))-impar}
if n>a1 then a1:=n;
if a2<a1 then
begin
c:=a1;
a1:=a2;
a2:=c;
end;end;
write('Introdu numarul n= ');
readln(n);
end;
writeln('Cele mai mari 2 numere :');
writeln('a1 = ',a1);
writeln('a2 = ',a2);
readkey;
end.
De determinat cele mai mari 3 numere ntregi pare introduse de la tastatur

Se cere de determinat cele mai mari 3 numere pare dintr-un ir de numere


ntregi nenule introduse de la tastatur. Citirea de la tastatur se va termina atunci
cnd se va introduce cifra 0.

program tehnica_greedy;
uses crt;
var a1,a2,a3,n,c,t:integer; { a1<a2<a3 }
begin
clrscr;
a1:=-maxint;
a2:=-maxint;
a3:=-maxint;
n:=-maxint;
writeln('Ultimul numar introdus va fi cifra 0 ');
while n<>0 do
begin
if not(odd(n)) then begin
if n>a1 then a1:=n;
if a2<a1 then
begin
c:=a1;
a1:=a2;
a2:=c;
if a3<a2 then
begin
t:=a2;
a2:=a3;
a3:=t;
end;
end;end;
write('Introdu numarul n= ');
readln(n);
end;
writeln('Cele mai mari 3 numere :');
writeln('a1 = ',a1);
writeln('a2 = ',a2);
writeln('a3 = ',a3);
readkey;
end.
De determinat cel mai mare element par a2 i cel mai mare element impar a1
ale unui vector de componente ntregi, cu condiia c a1< a2.
program tehnica_greedy;
uses crt;
var a1,a2,n:integer;
begin
clrscr;
a1:=-maxint;
a2:=-maxint;
n:=-maxint;
writeln('Ultimul numar introdus va fi cifra 0 ');
while n<>0 do
begin
if not odd(n) then
if n>a1 then a1:=n;
if odd(n) then
if n>a2 then a2:=n;
write('Introdu numarul n= ');
readln(n);
end;
writeln;
writeln('Cel mai mare numar par :');
writeln('a1 = ',a1);
writeln('Cel mai mare numar impar :');
writeln('a2 = ',a2);
readkey;
end.

S-ar putea să vă placă și