ตามหัวข้อข้างบนครับ มันเป็นโปรแกรมเครื่องคิดเลข(จำนวนเต็ม) และถ้าผม อยากให้มัน รับค่าทศนิยมได้ ผมควรแก้ไขจุดไหน อะไรยังไงครับ
นี่คือส่วนของ code ครับ
with Text_IO;
with Gnat.Io; use Gnat.Io;
procedure Calc is
Op: Character;
Disp: Integer := 0;
In_Val: Integer;
begin
loop
Put(Disp);
New_Line;
Put("> ");
loop
Get(Op);
exit when Op /= ' ';
end loop;
exit when Op = 'Q' or Op = 'q';
Get(In_Val);
Text_IO.Skip_Line;
case Op is
when '=' => Disp := In_Val;
when '+' => Disp := Disp + In_Val;
when '-' => Disp := Disp - In_Val;
when '*' => Disp := Disp * In_Val;
when '/' => Disp := Disp / In_Val;
when '^' => Disp := Disp ** In_Val;
when '0'..'9' => Put_Line("Please specify an operation.");
when others => Put_Line("What is " & Op & "?");
end case;
end loop;
end Calc;
ขอบคุณล่วงหน้าครับ
ช่วยอธิบายการทำงานของโปรแกรมนี้ทีครับ
นี่คือส่วนของ code ครับ
with Text_IO;
with Gnat.Io; use Gnat.Io;
procedure Calc is
Op: Character;
Disp: Integer := 0;
In_Val: Integer;
begin
loop
Put(Disp);
New_Line;
Put("> ");
loop
Get(Op);
exit when Op /= ' ';
end loop;
exit when Op = 'Q' or Op = 'q';
Get(In_Val);
Text_IO.Skip_Line;
case Op is
when '=' => Disp := In_Val;
when '+' => Disp := Disp + In_Val;
when '-' => Disp := Disp - In_Val;
when '*' => Disp := Disp * In_Val;
when '/' => Disp := Disp / In_Val;
when '^' => Disp := Disp ** In_Val;
when '0'..'9' => Put_Line("Please specify an operation.");
when others => Put_Line("What is " & Op & "?");
end case;
end loop;
end Calc;
ขอบคุณล่วงหน้าครับ