|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.11.2008, 23:52 | #1 |
Регистрация: 23.11.2008
Сообщений: 5
|
Прошу хелпа
Хай! Люди помогите плз, (задача:Дана строка символов, состоящая из произвольных десятичных чисел, раз-деленных пробелами. Вывести на экран числа этой строки в порядке возраста-ния их значений). Сам алгоритм в принципе есть, только это все не получается вывести(вечно че-то с типами)
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; procedure FormCreate(Sender: TObject); procedure Edit1KeyPress(Sender: TObject; var Key: Char); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} function FWrd(st : string) : string; type mn=set of byte; arr=array of string; var b:arr; A:mn; n,i,m,j,p,w: integer; st1,st2,d,s: string; begin p:=0; n:=0; m:=Length(st); for i:=m downto 1 do begin if st[i]<>' ' then begin inc(n); end; if st[i]=' ' then begin st1:=copy(st,i+1,n); // отсуда моя нерабочая бредовуха начинается =) d:=st1; n:=0; inc(p); b[p]:=d; end; end; for i:=2 to p do for j:=p downto i do if b[j-1]>b[j] then begin s:=b[j-1]; b[j-1]:=b[j]; b[j]:=s; end; result:=b; end; // Конец функции FWrd procedure TForm1.FormCreate(Sender: TObject); begin Edit1.Clear; Edit2.Clear; end; procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then Edit2.Text:=FWrd(Edit1.Text); end; end. |
24.11.2008, 11:18 | #2 |
Регистрация: 23.11.2008
Сообщений: 5
|
или такой вариант:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; procedure FormCreate(Sender: TObject); procedure Edit1KeyPress(Sender: TObject; var Key: Char); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} function FWrd(st : string) : string; type mn=set of byte; arr=array of integer; var b:arr; A:mn; n,i,j,p,s: integer; st1,st2,d,d1: string; begin p:=0; n:=0; for i:=Length(st) downto 1 do begin if st[i]<>' ' then begin inc(n); end; if st[i]=' ' then begin st1:=copy(st,i+1,n); n:=0; inc(p); b[p]:=strtoint(st1); end; end; for i:=2 to p do for j:=p downto i do if b[j-1]>b[j] then begin s:=b[j-1]; b[j-1]:=b[j]; b[j]:=s; end; for i:=1 to p do d1:=inttostr(b[i]); insert(d1,d:string;lenght(d)+1:inte ger); // ему здесь не нравится result:=d; end; procedure TForm1.FormCreate(Sender: TObject); begin Edit1.Clear; Edit2.Clear; end; procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then Edit2.Text:=FWrd(Edit1.Text); end; end. |
24.11.2008, 19:33 | #3 |
Регистрация: 23.11.2008
Сообщений: 5
|
хм... написано в дельфе
|
24.11.2008, 19:35 | #4 |
Регистрация: 23.11.2008
Сообщений: 5
|
и оформить нужно было в виде подпрограммы, с вводом в едит1 и нажатием ентера-вывод в едит2
|
24.11.2008, 19:54 | #5 |
Регистрация: 23.11.2008
Сообщений: 5
|
люди, киньте хотя бы идею как массив из чисел перевести в строку и вывести в едит (используя функцию, или процедуру)
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Прошу помощи. | Brian Lee Jones | Свободное общение | 0 | 19.06.2008 00:21 |
прошу помощи! | alexxxx | Фриланс | 1 | 07.06.2008 17:05 |
Прошу всех... | MAcK | PHP | 5 | 12.12.2006 08:08 |