Pascal 帕斯卡小数点

Pascal 帕斯卡小数点,pascal,division,decimal-point,Pascal,Division,Decimal Point,你能帮我做作业吗?我只是一个初学者,对Pascal知之甚少:( 我应该为除法编写一个程序,但根据其十进制数有特殊条件。输出应如下所示: 没有小数,那么20/5=4(只能有4;不能像4.00) 如果是小数,则只有1个小数9/4=2.3 如果小数点是相同数字的无穷大,则1/3=0。(3) 我该怎么做?我想把它放到数组中,但我不知道如何找到小数点在哪里,也不知道如何将括号写入输出。我无法解决第三个问题,但下面是前两个问题的代码: Var x,y : integer; z : real; B

你能帮我做作业吗?我只是一个初学者,对Pascal知之甚少:(

我应该为除法编写一个程序,但根据其十进制数有特殊条件。输出应如下所示:

  • 没有小数,那么20/5=4(只能有4;不能像4.00)

  • 如果是小数,则只有1个小数9/4=2.3

  • 如果小数点是相同数字的无穷大,则1/3=0。(3)


  • 我该怎么做?我想把它放到数组中,但我不知道如何找到小数点在哪里,也不知道如何将括号写入输出。

    我无法解决第三个问题,但下面是前两个问题的代码:

    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,但是通过这段代码你几乎可以完成你的家庭作业


    我将尝试解决第三次问题,过一段时间后再次检查答案。

    解决第三点:将x和y看作一个分数。以下是基本思路:

  • A:=A/GCD(A,B);B:=B/GCD(A,B)
  • 整数部分:=A div B;A:=A mod B
  • 非周期部分:当mod 2=0时,开始C:=C*2;A:=A div 2;结束;当mod 5=0时,开始C:=C*5;A:=A div 5;结束
  • 求M,使A*M=999..999

  • 如果你根本无法开始,你需要向你的导师寻求帮助。他们显然没有做好他们的工作,为你提供完成作业所需的信息。(顺便说一句,这被称为“小数点”——这不是“小数点”。)