打印数字金字塔的PASCAL程序

112112321123432112345432112345654321123456765432112345678765432112345678987654321打印上述... 1
1 2 1
1 2 3 2 1
1 2 3 4 3 2 1
1 2 3 4 5 4 3 2 1
1 2 3 4 5 6 5 4 3 2 1
1 2 3 4 5 6 7 6 5 4 3 2 1
1 2 3 4 5 6 7 8 7 6 5 4 3 2 1
1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1

打印上述数字金字塔,请用PASCAL语言编写程序
6楼的#什么意思啊
展开
 我来答
淡蓝蓝蓝_CGL
2007-08-18 · TA获得超过580个赞
知道答主
回答量:764
采纳率:0%
帮助的人:414万
展开全部
我的最简方法:

var i,j:byte;
begin
for i:=1 to 9 do begin
for j:=1 to i do write(j,' ');
for j:=i-1 downto 1 do write(j,' ');
writeln;
end;
end.

以后有问题问我吧~

这个能帮助您:

第五章 循环结构程序设计

5.1 For语句
5.2 While语句

5.3 Repeat-Until语句

练习与作业

5.1 For语句

1.递增型FOR循环。

FOR 循环控制变量:=循环初值 TO 循环终值 DO 循环的语句(或语段)
例: FOR I:=5 TO 10 DO WRITELN (I);
输出的结果为: 5 6 7 8 9 10 即循环一共执行了6次
如果要重复多个语句,一定要用BEGIN-END形式:
例:
FOR I:=1 TO 10 DO
BEGIN
WRITELN (I);
WRITELN (10-I);
END;
2.递减型FOR循环

FOR 循环控制变量:=循环初值 DOWNTO 循环终值 DO 循环语句
递减型FOR循环与递增型FOR循环基本相同,只是循环控制变量每次递减。
3.FOR循环的几点注意内容:
(1)循环控制变量必须是顺序类型的变量。所谓顺序类型的变量,就是指整型,字符型,枚举型,子界型,不允许是实型。
(2)不允许在循环体内再对循环控制变量赋值。
例如:
A:=10;B:=50;
FOR K:=A TO B DO
BEGIN
K:=K+1;{这一句是错误的!!!!!!!!}
WRITELN (K);
END;
(3)当循环初值或循环终值中包含变量时,允许在循环体内改变这些变量的值,但并不改变原定的循环次数。
例:
A:=1;B:=10;
FOR I:=A TO B DO
BEGIN
A:=5;B:=4;
END;
在上面例子中,A,B的值在循环的内部发生了变化,但并不影响循环的次数,依然是10次。
4.多重循环 循环体由PASCAL语句构成,当然也可以包含FOR语句,这就构成了循环的嵌套,形成多重循环。
例如,以下FOR循环输出5行,每行输出10个星号(*)
FOR i:=1 to 5 DO
BEGIN
FOR j:=1 TO 10 DO
Write('*');
END;
初学者应当特别注意,内层的循环变量不能和外层的循环变量相同。也就是说,嵌套的各层循环应当使用不同的变量作为循环变量。
5.2 While语句

1.WHILE循环的执行形式 WHILE 布尔表达式 DO 语句
例如:
k:=10;
WHILE k>0 DO
BEGIN
Writeln (k);
k:=k-1
END;
其中
(1)WHIlE 和DO是PASCAL保留关键字,是WHILE循环语句的组成部分。
(2)保留关键字DO后面的“语法”只能是一条语句,称为“循环体”;如果循环 体中需要包含多个语句则应该如上例所示,采用一条复合语句。

2.WHILE循环的执行功能 当执行到WHILE语句时
(1)求出布尔表达式的值
(2)若布尔表达式的值为真,则执行循环体内的语句;若为“假”,执行步骤4
(3)重复步骤1和2
(4)循环结束,执行循环后面的语句。
5.3 Repeat-Until语句

1.REPEAT-UNTIL类型的循环的执行形式
REPEAT
语句1
语句2
……
语句n
UNTIL 布尔表达式
例如:以下循环求n=1+2+3+……+100
n:=0;t:=i;
REPEAT
n:=n+t; t:=t+1;
UNTIL t>100;
其中
(1)REPEAT和UNTIL是PASCAL保留关键字。
(2)在REPEAT和UNTIL之间的语句构成循环。在它们之间可以有任意多个语句,这一点和FOR,WHILE循环不同,FOR,WHILE循环体在语法上只允许一条语句。
2.REPEAT-UNTIL循环的执行功能
(1)遇到REPEAT语句后,即进入循环体,顺序执行循环体内的语句。
(2)遇到UNTIL语句后,求布尔表达式的值。若值为假,则返回步骤1;若为“真”,执行步骤3
(3)循环结束,执行UNTIL后面的下一条语句。
思考与练习:
1、计算下列式子的值:
(1)1+2+……+100
(2)1+3+5+……+97+99

2、输入一个四位数,求它各位上数字的和。

3、求水仙花数。所谓水仙花数,是指一个三位数abc,如果满足a^3+b^3+c^3=abc,则abc是水仙花数。

4、宰相的麦子:相传古印度宰相达依尔,是国际象棋的发明者。有一次,国王因为他的贡献要奖励他,问他想要什么。达依尔说:“只要在国际象棋棋盘上(共64格)摆上这么些麦子就行了:第一格一粒,第二格两粒,……,后面一格的麦子总是前一格麦子数的两倍,摆满整个棋盘,我就感恩不尽了。”国王一想,这还不容易,刚想答应,如果你这时在国王旁边站着,你会不会劝国王别答应,为什么?

5、打印下列图案:(输入N值来控制图案的规模,下列图案均以N=3为例)

&
& &
& & &
& & &
& & &
& & &
*
* * *
* * * * *
# @
# # @ @
# # # @ @ @

6、输入一整数A,判断它是否质数。(提示:若从2到A的平方根的范围内,没有一个数能整除A,则A是质数。)

7、求两个数的最小公倍数和最大公约数。(提示:公约数一定小于等于两数中的小数,且能整除两数中的大数。公倍数一定大于等于两数中的大数,且是大数的倍数,又能给两数中的小数整除。)

8、编写一个译码程序,把一个英语句子译成数字代码。译码规则是以数字1代替字母A,数字2代替字母B,……,26代替字母Z,如遇空格则打印一个星号‘*’,英文句子以‘.‘结束。

9、“百钱买百鸡”是我国古代的著名数学题。题目这样描述:3文钱可以买1只公鸡,2文钱可以买一只母鸡,1文钱可以买3只小鸡。用100文钱买100只鸡,那么各有公鸡、母鸡、小鸡多少只?与之相似,有"鸡兔同笼"问题。
10、输入一个正整数N,把它分解成质因子相乘的形式。
如:36=1 X 2 X 2 X 3 X 3; 19=1 X 19
(提示:设因子为I,从2开始到N,让N重复被I除,如果能整除,则用商取代N,I为一个因子;如果不能整除,再将I增大,继续以上操作,直到I等于N。)
AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图... 点击进入详情页
本回答由AiPPT提供
genie2014
2007-08-04 · TA获得超过6488个赞
知道小有建树答主
回答量:1140
采纳率:0%
帮助的人:916万
展开全部
program jinzita (input,output);
var
k,z,i,j:integer;
begin
k:=0;
for i:=1 to 9 do
begin
write(' ':40-k);
for j:=1 to i do
write(j:1);
for z:=(i-1) downto 1 do
write(z:1);
writeln;
end
end.
(这是我很早以前编的,现在我转别的语言了,对这个不太熟悉了,不知道还能不能用)

调试过了,没问题!!!嘿嘿.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阳光上的桥
2007-08-04 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65813
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
刚才下载安装了DEPHI,经过调试,修改了程序两个地方,下面的程序绝对没有问题:

program test;
{$apptype console}
var i,j:integer;
begin
for i:=1 to 9 do{循环9次打印9行}
begin
{每行第1步、打印(9-i)*2个空格}
for j:=1 to 2*(9-i) do write(#32);
{每行第2步、打印数字1~i}
for j:=1 to i do write(j,#32);
{每行第3步、打印数字i-1~1}
for j:=i-1 downto 1 do write(j,#32);
{每行第4步、换行}
writeln;
end;
end.

本来金字塔的程序比较经典,我再写一遍,并这么认真的验证,主要是想楼主知道,只要善于分解任务,程序设计其实是相当简单而有趣的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
三天起个名
2007-08-04 · TA获得超过952个赞
知道大有可为答主
回答量:1445
采纳率:0%
帮助的人:1705万
展开全部
program haha
var
i, j, k: Integer;

begin
//初始化
i := 1;
j := 1;
k := 1;

for i := 1 to 9 do
begin
for j := 1 to i do
begin
write(j, ' ');
end;
for k := i downto 1 do
begin
write(k, ' ')
end;
writeln;
end;

end.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
翎魔
2007-08-10
知道答主
回答量:9
采纳率:0%
帮助的人:0
展开全部
如下是简洁的程序,可以很快验证,
program jzt;
var i,j:integer;
begin for i:=1 to 9 do {控制行数}
begin for j:=1 to i do write(j,#32);
for j:=i-1 downto 1 do write(j,#32);
writeln;
end;
end.
楼主,6楼的‘#’相当于‘CHR',
CHR(x)含义:序号为x的字符;和 #x 含义一样,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式