2013-11-09 57 views
-1

你能幫我做作業嗎?我只是一個初學者,所知甚少帕斯卡爾:(帕斯卡小數點

我應該寫一個部門的計劃,但有這取決於它們的十進制數的特殊條件的輸出應該是這個樣子:

  1. 沒有小數然後用20/5 = 4(只能有4個;它不能像4.00)

  2. 如果小數則僅1個十進制數9/4 = 2.3

  3. 如果小數點是相同數量t的無限大(3)

我該怎麼辦?我正在考慮把它放入數組中,但我不知道如何找到小數點的位置,也不知道如何將括號寫入輸出。

+4

如果你根本無法入門,則需要嚮導師尋求幫助。他們顯然沒有正確地完成工作,爲您提供完成作業所需的信息。 (順便說它被稱爲「十進制」點 - 它不是「demical」)。) –

回答

2

我不能設法解決的第三個點,但這裏是第2代碼:

Var 
    x,y : integer; 
    z : real; 
Begin 
    z := x/y; 
    if z = x div y 
     then Write(z:4:0) //Write a real var without any decimals 
     else Write(z:4:1); //Write a real var with just 1 decimal 
End. 

你必須改變周圍的事物,喜歡讀書的X和Y,但是從這個代碼你幾乎可以做你的功課。

我會盡量解決第三次,一段時間後再次檢查答案。

0

要解決第三點:考慮x和y約爲分數。這裏的基本思想是:

  1. A:=/GCD(A,B); B:= B/GCD(A,B)
  2. 整數部分:= A DIV B; A:= A mod B
  3. 非定期部分:while A mod 2 = 0 do BEGIN C:= C * 2; A:= div 2;結束;而A mod 5 = 0 BEGIN C:= C * 5; A:= div 5; END
  4. 找到M,使A * M = 999..999。