偶是Delphi新手!请教在delphi实现edit1中输入几个数逆序输出在edit2中,在edit3中从小到大排序输出的代码

 我来答
己闻楣Sx
2011-04-19 · TA获得超过1935个赞
知道大有可为答主
回答量:1057
采纳率:93%
帮助的人:913万
展开全部
edit1中几个数是以空格分隔吗?如果是的话,参见如下程序
procedure GetReverseAndOrdered( const sSource : string; var sResult1, sResult2 : string );
var
SL : TStringList;
i : Integer;
L : Integer;
begin
SL := TStringList.Create;
try
// 如果有用多个空格分隔的,合并为一个
sSource := AnsiStringReplace( sSource, #$20#$20, #$20 );
// 将空格转换为回车,继而变成StringList的各行
SL.Text := AnsiStringReplace( sSource, #$20, #$0D#$0A );
{ 逆序输出,顺带求出最长的数字串至L }
sResult1 := '';
L := 0;
for i := SL.Count - 1 downto 0 do
begin
sResult1 := Format( '%s %d', [ sResult1, SL[i] ] );
if Length( SL[i] ) > L then
L := Length( SL[i] );
end;
{ 规整各行数字串,前面补上0,使得按照字符串排序和与按照数值排序效果一致 }
for i := 0 to SL.Count - 1 do
SL[i] := Format( '%.*d', [ L, StrToInt( SL[i] ) ] );
SL.Sorted := True;
{ 输出排序后的序列 }
sResult2 := '';
for i := 0 to SL.Count - 1 do
sResult2 := Format( '%s %d', [ sResult2, StrToInt( SL[i] ) ] );
finally
SL.Free;
end;
end;

调用方法
var
s2, s3 : string;
......
GetReverseAndOrderd( edit1.Text, s2, s3 );
edit2.Text := s2;
edit3.Text := s3;
ysjqrmpv
2011-04-20 · TA获得超过116个赞
知道小有建树答主
回答量:202
采纳率:0%
帮助的人:206万
展开全部
button的onclick事件中
var
i,j:integer;
begin
edit2.text:='';
edit3.text:='';
for i:=length(edit1.text) downto 0 do//逆序输出;
edit2.text:=edit2.text+edit1.text[i];
end;

//下面的是从小到大排序,纯手写,没试过自己试一下看行不行。
var
i,j:integer;
begin
for i:=0 to length(edit1.text) do
begin
for j:=1 to length(edit1.text) do
begin
if strtoint(edit1.text[i])>strtoint(edit1.text[j]) then
edit3.text:=edit3.text+edit1.text[i]
else
edit3.text:=edit3.text+edit1.text[j];
end;
end;
end;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
坏葱巡h
2011-04-27 · 超过24用户采纳过TA的回答
知道答主
回答量:78
采纳率:0%
帮助的人:65.7万
展开全部
代码他们都发了 基本就那样。我建议你去了解下冒泡算法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式