用程序在Pascal中制作计算器

时间:2014-01-23 22:35:13

标签: delphi calculator pascal procedures

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

无论如何,提前谢谢!

这是代码(我在Delphi中写的):

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.

1 个答案:

答案 0 :(得分:2)

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

只需调用Read(),您的程序就会获得操作员角色的CR,结尾ReadLn()将获取最后一个缓冲的CR并结束该程序。

如果您的代码出现问题,请使用调试功能单步执行该程序以了解正在发生的事情。

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