pascal 程序填空

pascal 程序填空,第1张

var

i,k,n:integer

begin

write('Input n:')

readln(n)

k:=1//k表示行数

for i:=1 to n*n do

begin

if i=(k-1)*(k-1)+1 then write('':n+1-k)//每行,在输出星号前,需要输出空位

write('*') //因为每次循环,只输出一个星号;所以,循环要执行n*n次

if i=k*k then begin writelnk:=k+1 end//每行输出完星号,需要换行;k需要加1,即行数加1

end

end.

一、预备知识

首先我们要先看清楚,题目的分数类型是“假分数”中的“带分数”,带分数的例子:、。

附带分数的加减法方法(摘自百度百科):异分母分数相加减,

先通分,即运用分数的基本性质将异分母分数转化为同分母分数,改变其分数单位而大小不变,

再按同分母分数相加减法去计算,最后要约分。

然后,我们来手动模拟一下分数运算,

 +  =( 整数1+4) + ( 分子 5*9+7*7 )/ ( 分母 7*9 )= (整数 5) + (  分子 94) / ( 分母 63)

= (整数 5  +  94 div 63 ) + (  分子 94 mod 63) / ( 分母 63) =  (整数 6) + (  分子 31) / ( 分母 63)。

这个例子刚好两个分数相加后分子分母没有最大公约数,如果相加后分子分母有最大公约数,还要再约分一下

然后来看看这个程序吧。

二、

没有题号看得有点费劲哦。

function gcd...

1、if r=0 then break//有点多此一举的语句,但感觉只能填这个了

{下面是oier经常用的gcd代码形式的伪代码,不知道会不会给你点启示}

func gcd(a,b)

  if a mod b=0 then exit(b)

  else exit(gcd(b, a mod b))

function lcm...

2、*b div gcd(a,b)//a和b的最小公倍数当然等于 a*b/a和b的最大公约数

主程序

{

下面几个空请自己模拟一下上面“预备知识”中例子就可以理解。

3和4是进行分数中分子通分的处理

5 还有它下面的那行语句 是 把假分数化为真分数(分子比分母小的分数)

}

3、(l div u)

4、(l div c[i])

5、l

三、声明

上面的所有内容除了注明了的之外都是本人(天蝎的猪)亲手打出来的,鉴于各种原因,不排除会有非智力的错误出现,欢迎指正~


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11859222.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存