terça-feira, 11 de setembro de 2012

Exemplo Calculadora com procedure e function


{[pascal] Outra calculadora com uso de funções}

Program CALCULADORA;
uses crt;

var
OPCAO: char;
X, A, B: real;

PROCEDURE ENTRADA;

begin
gotoxy(05,06); write('Entre com um valor para A: '); readln(A);
gotoxy(05,07); write('Entre com um valor para B: '); readln(B);
end;

{**** Funcao para realizar a escolha do calculo que será realizado ****}

function CALCULO (R, T: REAL; OPERADOR: char):real;
begin
Case OPERADOR of
    '+' : CALCULO :=R+T;
    '-' : CALCULO :=R-T;
    '*' : CALCULO :=R*T;
    '/' : CALCULO :=R/T;
END;
end;

{**** Procedimento para mostrar o resultado do calculo ****}

Procedure SAIDA;

VAR
TECLA: char;

begin
gotoxy(05,10); write('O resultado equivale a ', X:5:2);
gotoxy(25,24); writeln('Tecle algo para voltar ao menu');
TECLA:= readkey;
end;

{Procedimento para realizar o calculo da Adicao entre o
 valores armazenados nas variáveis globais A e B ***}

procedure ROT_ADICAO;

begin
clrscr;
gotoxy(32,01); write('Rotina de Adicao');
ENTRADA;
x:= Calculo(A, B, '+');
SAIDA;
end;

{Procedimento para realizar o calculo da Subtracao entre o valores
 armazenados nas variáveis globais A e B ***}

procedure ROT_SUBTRACAO;

begin
clrscr;
gotoxy(30, 1); write('Rotina de Subtração');
ENTRADA;
x:= Calculo(A, B, '-');
SAIDA;
end;

{Procedimento para realizar o calculo da Multiplicacao entre o valores
 armazenados nas variáveis globais A e B ***}

procedure ROT_MULTIPLICACAO;

begin
clrscr;
gotoxy(28,01); write('Rotina de Subtração');
ENTRADA;
x:= Calculo(A, B, '*');
SAIDA;
end;

{Procedimento para realizar o calculo da Divisao entre o valores
 armazenados nas variáveis globais A e B}

procedure ROT_DIVISAO;

begin
clrscr;
gotoxy(32, 1); write('Rotina de Subtração');
ENTRADA;
x:= Calculo(A, B, '/');
SAIDA;
end;

{**** P R I N C I P A L ****}

BEGIN
OPCAO:='0';
while (OPCAO  '5') do begin
    begin
                   clrscr;
    gotoxy(33,01); write('Menu principal');
gotoxy(28,06); write('1.....................Soma');
gotoxy(28,08); write('2............Subtracao');
gotoxy(28,10); write('3......Multiplicacao');
gotoxy(28,12); write('4................Divisao');
gotoxy(28,14); write('5..Fim do programa');
gotoxy(28,18); write('Escolha uma opcao ..........: ');
readln(OPCAO);
IF (OPCAO < '5') THEN
case OPCAO OF
    '1': ROT_ADICAO;
    '2': ROT_SUBTRACAO;
    '3': ROT_MULTIPLICACAO;
    '4': ROT_DIVISAO;
ELSE
    gotoxy(27,25); writeln('Opcao invalida - tecle algo');
    OPCAO := readkey;
end;
end;

END.

Nenhum comentário:

Postar um comentário