//Faça uma algoritmo para ler salários, onde o Flag será um Salário igual a 0 e escreva quais os três
//maiores valores dos salários lidos.
program salariosLer;
uses crt;
var
i,flag,primeiro,segundo,terceiro,auxiliar:integer;
begin
writeln('********************');
writeln('* Salarios *');
writeln('********************');
writeln('informe no minimo 3 valores de salario');
flag:=1;
i:=0;
while (flag<>0) do
begin
i:=i + 1;
writeln('---> 0 para sair <----');
writeln('informe o salario:');
repeat
readln(flag);
if (flag <0) then
begin
writeln('Invalido! deve ser maior que 0.');
end;
until flag>=0;
if (flag <> 0) then
begin
if (i <= 3) then
begin
case i of
1: primeiro:=flag;
2: segundo:=flag;
3: terceiro:=flag;
end;
end else begin
if (flag >= primeiro) then
begin
auxiliar:=primeiro;
primeiro:=flag;
terceiro:=segundo;
segundo:=auxiliar;
end else begin
if (flag >=segundo) then
begin
auxiliar:=segundo;
segundo:=flag;
terceiro:=auxiliar;
end else begin
if (flag >= terceiro) then
begin
terceiro:=flag;
end;
end;
end;
end;
//ordenação de 3 numeros
if (i =3) then
begin
if(primeiro > segundo)or( primeiro > terceiro)then
begin
if(terceiro > segundo) then
begin
auxiliar:=primeiro;
primeiro:=segundo;
segundo:=auxiliar;
end else begin
auxiliar:=primeiro;
primeiro:=terceiro;
terceiro:=auxiliar;
end;
end;
if(segundo > terceiro)then
begin
auxiliar:=segundo;
segundo:=terceiro;
terceiro:=auxiliar;
end;
// troca primeiro com terceiro
auxiliar:=primeiro;
primeiro:=terceiro;
terceiro:=auxiliar;
end;
end else begin
i:=i-1;
if (i<3)then
begin
writeln('ERRO: quantidade de salario menor que 3');
end else begin
writeln('maior salario informado = ',primeiro);
writeln('segundo maior salario informado = ',segundo );
writeln('terceiro maior salario informado = ',terceiro);
end;
end;
end;
readkey;
end.
Nenhum comentário:
Postar um comentário