Ir para o conteúdo

Programa com subprogramas

program util;
uses crt;
var opcao:char;
procedure opcao1;
var numero1,numero2,operador,result:longint;
begin
 writeln ('==================================================');
 writeln ('1: Calculadora Simples');
 writeln ('==================================================');
 writeln ('Insira o primeiro valor:');
 readln (numero1);
 writeln ('Insira o segundo valor:');
 readln (numero2);
 clrscr;
 writeln ('|-----------------------------------|');
 writeln ('|        Valores Escolhidos         |');
 writeln ('|-----------------------------------|');
 writeln ('|Primeiro Numero: ',numero1,'                 |');
 writeln ('|Segundo Numero: ',numero2,'                  |');
 writeln ('|-----------------------------------|');
 writeln ('');
 repeat
  begin
   writeln ('|-----------------------------------|');
   writeln ('|        Escolha de Operador        |');
   writeln ('|-----------------------------------|');
   writeln ('|[1] - Adicao                       |');
   writeln ('|[2] - Subtracao                    |');
   writeln ('|[3] - Multiplicacao                |');
   writeln ('|[4] - Divisao Inteira              |');
   writeln ('|-----------------------------------|');
   writeln ('Insira a sua escolha:');
   readln (operador);
   case operador of
    1: result := (numero1+numero2);
    2: result := (numero1-numero2);
    3: result := (numero1*numero2);
    4: result := (numero1 div numero2);
   else
    writeln ('Escolha de operador invalida.. tente novamente.');
   end;
   writeln ('O resultado da operacao e: ',result);
   writeln ('Prima qualquer tecla para voltar ao menu');
   readkey;
  end;
 until (operador <> 0);

end;

procedure opcao2;
var valor1,valor2:real;
function calculamedia (v1,v2:real):real;
 begin
  calculamedia := (v1+v2)/2;
 end;
begin
 clrscr;
 writeln ('==================================================');
 writeln ('2: Calcular Media 2 Valores');
 writeln ('==================================================');
 repeat
  writeln ('Insira o primeiro valor:');
  readln (valor1);
  writeln ('Insira o segundo valor:');
  readln (valor2);
 until (valor1 <> 0) and (valor2 <> 0);
 clrscr;
 writeln ('|-----------------------------------|');
 writeln ('|        Valores Escolhidos         |');
 writeln ('|-----------------------------------|');
 writeln ('|Primeiro Numero: ',valor1,'               |');
 writeln ('|Segundo Numero: ',valor2,'                |');
 writeln ('|-----------------------------------|');
 writeln ('');
 writeln ('O Resultado da Media: ', calculamedia (valor1,valor2):2:1);
 writeln ('Prima qualquer tecla para voltar ao menu');
 readkey;
end;

procedure opcao3;
begin
 clrscr;
 readkey;
end;
begin {Inicio do Programa}
 repeat
  repeat
  clrscr;
  writeln ('===============================');
  writeln ('Programa Util - v1.1 by Jlopes90');
  writeln ('v1.0 - BETA Revisao 01-02-08');
  writeln ('===============================');
  writeln ('[1] Calculadora Simples');
  writeln ('[2] Calcular Media 2 Valores');
  writeln ('[3] Brevemente');
  writeln ('[4] Sair');
  writeln ('===============================');
  opcao := readkey;
  Until (opcao >= '1') and (opcao <= '4');
  Case opcao of
  '1' : opcao1;
  '2' : opcao2;
  '3' : opcao3;
  end;
  Until (opcao = '4');
end.