Jump to content

Programa com Subprogramas


jlopes90

Recommended Posts

Boas,

Vou aqui deixar um programa que utiliza um menu com vários 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.
Link to comment
Share on other sites

Boas,

Então tens no código uma linha que diz "procedure opcao3" e de seguida o begin de abertura desse procedimento certo?

Metes o codigo do cronometro entre esse begin e end e no fim do programa, na linha writeln ('[3] Brevemente'); alteras o brevemente para o texto que quiseres, por ex: cronometro.

Espero ter ajudado,

Abraço

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.