Program Calculadora ;
Uses crt;
Var opt: char;
x, y, z: real;
M: array [1..4, 1..4] of real;
i, j: integer;
{Função para calcular os resultados}
Function Calculo (x:real; y:real; z:real): real;
begin
Case opt of
#43: begin
z:= x+y
end;
#45: begin
z:= x-y
end;
#42: begin
z:= x*y
end;
#47: begin
z:= x / y;
if y = 0 then
begin
Writeln('Divisão inválida, digite um número diferente de zero para o divisor ');
end;
end;
end;
Calculo:= z
end;
{Procedure para adição}
Procedure Adicao;
begin
clrscr;
writeln;
writeln ('Insira a primeira parcela');
readln (x);
writeln;
writeln('+');
writeln;
writeln ('Insira a segunda parcela');
readln(y);
writeln;
writeln(Calculo(x, y, z):0:2);
readkey;
clrscr;
end;
{Procedure para a subtração}
Procedure Sub;
begin
clrscr;
writeln;
writeln ('Insira o minuendo');
readln (x);
writeln;
writeln('-');
writeln;
writeln ('Insira o subtraendo');
readln(y);
writeln;
writeln(Calculo(x, y, z):0:2);
readkey;
clrscr;
end;
{Procedure para a multiplicação}
Procedure Mult;
begin
clrscr;
writeln;
writeln ('Insira o primeiro fator');
readln (x);
writeln;
writeln('*');
writeln;
writeln ('Insira o segundo fator');
readln(y);
writeln;
writeln(Calculo(x, y, z):0:2);
readkey;
clrscr;
end;
{Procedure para a divisão}
Procedure quo;
begin
clrscr;
writeln;
writeln ('Insira o dividendo');
readln (x);
writeln;
writeln('/');
writeln;
writeln ('Insira o divisor');
readln(y);
writeln;
writeln(Calculo(x, y, z):0:2);
readkey;
clrscr;
end;
{Procedure para colocar os resultados em uma matriz e apresenta-los}
Procedure Matriz;
begin
for i:=1 to 3 do
begin
for j:=1 to 3 do
begin
M[i,j]:=z
end;
end;
for i:=1 to 3 do
begin
for j:=1 to 3 do
begin
writeln(M[i,j]:0:2);
end;
end;
end;
{Procedure com o menu que dá as opções}
Procedure Menu;
Begin
Repeat
clrscr;
writeln;
writeln('Escolha uma operação usando os simbolos: (+),(-)(*),(/).');
writeln;
writeln('Tecle espaço para imprimir a matriz de resultados');
writeln;
writeln('Esc para sair do programa');
opt:=readkey;
Case opt of
#43: begin
adicao
end;
#45: begin
sub
end;
#42: begin
mult
end;
#47: begin
quo
end;
#32:begin
matriz
end;
#27: begin
exit;
end;
end;
writeln('Esc para sair ou Backspace para voltar ao menu principal');
opt:=readkey;
Until(opt = #27 );
End;
Begin
Menu
End.