sábado, 11 de junho de 2011

Ordenamento

Program Pzim ;
{2. Escrever um programa que lê um conjunto de 4 valores i, a, b, c, onde i é um
valor inteiro e positivo (faça a validação) e a, b, c, são quaisquer valores reais e
os escreva.
A seguir:
a) Se i=1 escrever os três valores a, b, c em ordem crescente.
b) Se i=2 escrever os três valores a, b, c em ordem decrescente.
c) Se i=3 escrever os três valores a, b, c de forma que o maior entre a, b, c fique
entre os outros dois.}
var
i:integer;
n1, n2, n3, a, b, c:real;

 Begin
 writeln('Digite o código do ordenamento (1, 2 ou 3) : ');
 writeln(' 1 - para ordem CRESCENTE');
 writeln(' 2 - para ordem DECRESCENTE');
 writeln(' 3 - para ordem MAIOR NO MEIO');

   read(i);
   if ((i>0) and (i<4)) then               {condição pra fazer entre 1 e 3}
    begin                            {se atender a condição ...}
    write('digite o 1o. número : ');
    read(a);
    write('digite o 2o. número : ');
    read(b);
    write('digite o 3o. número : ');
    read(c);                            {recebe os tres numeros, a, b, c}
    if ((a > b) and (b > c)) then
  begin                              
  n1:=a;
  n2:=b;
  n3:=c;
  end
  else
  if ((a > c) and (c >b)) then
  begin
  n1:=a;
  n2:=c;
  n3:=b;
  end
  else
  if ((b > a) and (a > c)) then
  begin
  n1:=b;
  n2:=a;
  n3:=c;
  end
  else
  if ((b > c) and (c > a)) then
  begin
  n1:=b;
  n2:=c;
  n3:=a;
  end
  else
  if ((c > a) and (a > b)) then
  begin
n1:=c;
  n2:=a;
  n3:=b;
      end
      else
  if ((c > b) and (b > a)) then
  begin
  n1:=c;
  n2:=b;
  n3:=a;
  end;                                {ordena os tres numeros}
 
      if (i=1) then                             {condição de exibição de acordo com o 'i'}
      writeln('Sequencia escolhida - CRESCENTE : ', n3:1:2, ' - ', n2:1:2, ' - ', n1:1:2)
      else
      if (i=2) then
      writeln('Sequencia escolhida - DECRESCENTE : ', n1:1:2, ' - ', n2:1:2, ' - ', n3:1:2)
      else
      if (i=3) then
      writeln('Sequencia escolhida - MAIOR NO MEIO : ', n2:1:2, ' - ', n1:1:2, ' - ', n3:1:2)
      end                         {o :1:2, é pra formatar a quant de decimal de um numero real}
     else
      writeln('Digite um número entre " 1 e 3 "'); {se não atender a condição de 'i', entre 1 e 3, mostra a mensagem}
 
 End.