编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛  
全能 ASP / PHP / ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
发新话题
打印

[求助]输出结果如下

[求助]输出结果如下


A
BBB
CCCCC
DDDDDDD
CCCCC
BBB
A
谢谢了

[此贴子已经被作者于2007-11-1 20:58:43编辑过]

TOP

很不明确:
1.要求用什么方法(算法),要是没什么要求的话,你直接把字母搬进去输出不就行了?
2.在哪输出?

Repeat  Life=Study;Until (death);        //<a href="http://hi.baidu.com/yzidan" target="_blank"><font color="green">***>[B]欢 迎 光 临 我 的 博 客[/B]

TOP

用FOR循环
比如输出 *
***
*****
*******
就这样写
procedure TForm1.Button5Click(Sender: TObject);
var
i,j: integer;
s: string;
begin
for i := 1 to 4 do
begin
for j := 1 to 4-i do
s := s + ' ';
for j := 1 to 2 * i - 1 do
s := s + '*';
s := s + chr(13);
end;
showmessage(s);
end;

end.

怎么那个循环语句
老师今天刚刚讲Delphi



有志者立大志 无志者常立志

TOP

其实就是循环的问题,
提供两个参数的传递
一个就是第一个要输出的字符,
另一个就是输出最大的字符所在的行数或者最大的字符
通过字符的asc码进行递增就可以了。


其实这个用c++实现起来特别的清爽,
不过你用delphi的控制台实现起来也很清爽的。
大家都是朋友,有空就来坐坐!

TOP

var
i,j,k,l: integer;
s,st: string;

begin

for i := 1 to 4 do
begin
for j := 1 to 4-i do
s := s + ' ';
for j := 1 to 2 * i - 1 do
begin
st:=chr(ord('A')+i-1);
s := s + st;
end;
s := s + chr(13);

end;
for k := 3 downto 1 do
begin
for l := 3-k downto 1 do
s:=s+'';
for j := 2*k-1 downto 1 do
begin
st:=chr(ord('D')-(4-k));
s:=s+st;
end;
s:=s+chr(13);
end;


showmessage(s);
end;

你微笑的面對整個世界,整個世界也將會微笑的面對你。

TOP

var
i,j,k,l: integer;
s,st: string;

begin

for i := 1 to 4 do
begin
for j := 1 to 4-i do
s := s + ' ';
for j := 1 to 2 * i - 1 do
begin
st:=chr(ord('A')+i-1);
s := s + st;
end;
s := s + chr(13);

end;
for k := 3 downto 1 do
begin
for l := 3-k downto 1 do
s:=s+'';{ 空格没打出来,看了半天才看出来 }
for j := 2*k-1 downto 1 do
begin
st:=chr(ord('D')-(4-k));
s:=s+st;
end;
s:=s+chr(13);
end;


showmessage(s);
end;

谢谢了 刚学这 你后半部分可不可以不用DOWNTO写 就用都TO怎么写 我脑筋不会把它变过来 太苯了我







有志者立大志 无志者常立志

TOP

不用downto用to 的話就和你前面差不多了,自己多嘗試一下,控制循環次數就行
s:=s+'';{ 空格没打出来,看了半天才看出来 }
這個在''中加一個空格就行了,

[此贴子已经被作者于2007-11-2 14:04:00编辑过]

你微笑的面對整個世界,整個世界也將會微笑的面對你。

TOP

我觉得还是有个downto好,不用downto恐怕要用个判断,增加程序的复杂度.
var
i,j,k,l: integer;
s,st: string;

begin

for i := 1 to 4 do
begin
for j := 1 to 4-i do
s := s + ' ';
for j := 1 to 2 * i - 1 do
begin
st:=chr(ord('A')+i-1);
s := s + st;
end;
s := s + chr(13);

end;
for i :=3 downto 1 do
begin
for j := 1 to 4-i do
s := s + ' ';
for j := 1 to 2 * i - 1 do
begin
st:=chr(ord('A')+i-1);
s := s + st;
end;
s := s + chr(13);
end;
showmessage(s);
end;

Repeat  Life=Study;Until (death);        //<a href="http://hi.baidu.com/yzidan" target="_blank"><font color="green">***>[B]欢 迎 光 临 我 的 博 客[/B]

TOP

看懂了 thank you !!!!!!
以后还会有问题请教的
不介意吧
有志者立大志 无志者常立志

TOP

呵呵,请教谈不上.我菜鸟一个.
其实5楼的版主的那思路很好的.
Repeat  Life=Study;Until (death);        //<a href="http://hi.baidu.com/yzidan" target="_blank"><font color="green">***>[B]欢 迎 光 临 我 的 博 客[/B]

TOP

发新话题