2013-11-09 61 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。