說明:我在Ada 95中製作的程序假設根據用戶的輸入輸出一個稅表,如下所示:Ada 95 - 子程序內循環給出輸出*** inf ***
價格:無稅|稅收|價格與稅收
如果用戶輸入價格:10,最新價格: 20,步驟: 0.5和稅爲整數。程序然後在停止之前以0.5的步長從10重複到20。
我面臨的問題是「稅收」和「含稅價格」的輸出值。我得到的結果是兩列都是**** inf ****。我不知道這實際上意味着什麼,我也找不到任何其他信息。所以我做了另一次嘗試,得到了我想要的結果,除了迭代中的第一行外。它從Value 10 Taxes = 0開始,最後Pris的稅額= 0,但所有其他列和行都是正確的。
是不是假設像在Main中一樣,用與子程序一樣的方式來處理子程序?我在另一個文件中有完全相同的程序,不同之處在於它全部在Main中,而不是在子程序中。
有沒有其他人經歷過這一點,並知道如何解決它?
--------代碼------------------------------------- -----------------
with Ada.Text_IO; use Ada.Text_IO;
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
with Ada.Float_Text_IO; use Ada.Float_Text_IO;
procedure Momstabell is
-- First Price, Last Price, Steps & Taxes(in Integer),- Subprogram
procedure Hamta(S : in String;
Tal : out Float) is
begin
Put(S);
loop
Get(Tal);
exit when Tal > 0.0;
end loop;
end Hamta;
procedure Skriv_Ut(Forsta_Pris, Sista_Pris, Steg, Momsprocent : in
Float) is
First_Price, Last_Price, Steps, Price_With_Tax, Tax_Percentage, Tax :
Float;
begin
New_Line;
Put("=== Price List ===");New_Line;
Put("Price without tax ");
Put("Tax ");
Put("Price with tax");
-- Local Variables --
First_Price := Forsta_Pris;
Last_Price := Sista_Pris;
Steps := Steg;
Tax_Percentage := Momsprocent;
Tax := Tax_percentage/First_Price;
Price_With_Tax := First_Price + Tax;
while First_Price <= Last_Price loop
New_Line;
Put(" ");
Put(First_Price, Aft => 2, Exp => 0);
Put(" ");
Put(Tax, Aft => 2, Exp => 0);
Put(" ");
Put(Price_With_Tax, Aft => 2, Exp => 0);
-- Iteration --
First_Price := First_Price + Steps;
Tax := First_Price/Tax_Percentage;
Price_With_Tax := First_Price + Tax;
end loop;
end Skriv_Ut;
-- Deklaration of Variables
Forsta_Pris: Float;
Sista_Pris: Float;
Steg: Float;
Momsprocent: Float;
Moms : Float;
begin
Hamta("Mata in första pris: ",Forsta_Pris);
Hamta("Mata in sista pris: ", Sista_Pris);
Hamta("Mata in Steg: ",Steg);
Hamta("Mata in Momsprocent: ",Moms);
Skriv_Ut(Forsta_Pris, Sista_Pris, Steg, Momsprocent);
end Momstabell;
問候 羅伯特
代碼的快照會獲得合理答案非常有用。 – kaza
優先複製/粘貼到快照。 Codepen/JsFiddle更喜歡複製/粘貼:) – admcfajn
你的問題是關於Ada,所以複製/粘貼。沒有Javascript,所以沒有JsFiddle,也可能沒有Codepen。 –