![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#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. |
![]() |
![]() |
![]() |
#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. |
![]() |
![]() |
![]() |
#3 |
Регистрация: 23.11.2008
Сообщений: 5
|
![]()
хм... написано в дельфе
|
![]() |
![]() |
![]() |
#4 |
Регистрация: 23.11.2008
Сообщений: 5
|
![]()
и оформить нужно было в виде подпрограммы, с вводом в едит1 и нажатием ентера-вывод в едит2
|
![]() |
![]() |
![]() |
#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 |