free pascal 题目

来源:百度知道 编辑:UC知道 时间:2024/06/10 06:22:38
如何编写字母塔程序?
就是:
__________________________A
_________________________ABA
________________________ABCBA
………………………………
_ABCDEFGHIJKLMNOPQRSTUVWXYZYXWVUTSRQPONMLKJIHGFEDCBA

呵呵,让我来害你吧
program lettertower;
var ch,c:char;
begin
for c:=’A’ to ‘Z’ do
begin
write(‘ ‘:ord(‘Z’)-ord(c)+10); {输出空格数}
for ch:=’A’ to c do write(ch); {输出一行的左半部分}
for ch:=pred(c) downto ‘A’ do write(ch); {输出一行的右半部分}
writeln; {换行}
end;
end.
或把程序中输出一行时是通过两个循环来实现的,能不能通过一个循环来实现呢?用字符型变量来控制循环不太方便,可以用整型变量来控制循环列方便一些,相应的程序段如下:
for I:=1 to 26 do
begin
write(‘’:36-I);
for j:=1-I to I-1 do write(chr(64+I-abs(j)));
writeln;
end;

您是要代码还是思路?

代码的话还是算了,要不就是在害你...

思路:
从最底层开始,统计字数,每上一层从中间减少2个字符,以_填充不足的空间(其实就是一个),注意最上一层的处理。

可以先按这个思路写一个可以运行的代码,然后加以迭代优化。