用程序在帕斯卡中制作计算器



正如标题所说,我刚刚在Pascal中学到了一些叫做过程的东西,但我遇到了一个问题。因此,计算器很简单,它只有 4 个操作(仍在学习程序)。问题是当您输入操作(+,-,*或/)时,它只会退出程序。

无论如何,提前感谢!

这是代码(我是用德尔福写的):

program Calculator;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
n1, n2, s, m, multi, d: real;
op: char;
procedure Sum(n1, n2: real; var s: real);
begin
s := n1 + n2; // sum of 1st and 2nd number
end;
procedure Minus(n1, n2: real; var m: real);
begin
m := n1 - n2 // 1st number minus 2nd number
end;
procedure Multip(n1, n2: real; var multi: real);
begin
multi := n1 * n2; // multiplication
end;
procedure Division(n1, n2: real; var d: real);
begin
d := n1 / n2; // division
end;
begin
write('Insert first number: ');
readln(n1);
write('Insert 2nd number: ');
read(n2);
write('Insert operation: ');
readln(op);
if op = '+' then
begin
Sum(n1, n2, s);
writeln('Result is: ', s);
end
else if op = '-' then
begin
Minus(n1, n2, m);
writeln('Result is: ', m);
end
else if op = '*' then
begin
Multip(n1, n2, multi);
writeln('Result is: ', multi);
end
else if op = '/' then
begin
Division(n1, n2, d);
writeln('Result is: ', d);
end;
readln;
end.

您忘了调用变量 n2 的ReadLn()过程。

只需调用Read()程序将获取运算符字符的 CR,并且结束ReadLn()将获取最后一个缓冲的 CR 并结束程序。

当您的代码出现问题时,请使用调试可能性对程序进行单步操作,以了解发生了什么。

在他的评论中使用 Ken 的建议或查看文档。

最新更新