Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2008, 23:52   #1
SNap
 
Регистрация: 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.
SNap вне форума Ответить с цитированием
Старый 24.11.2008, 11:18   #2
SNap
 
Регистрация: 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.
SNap вне форума Ответить с цитированием
Старый 24.11.2008, 19:33   #3
SNap
 
Регистрация: 23.11.2008
Сообщений: 5
По умолчанию

хм... написано в дельфе
SNap вне форума Ответить с цитированием
Старый 24.11.2008, 19:35   #4
SNap
 
Регистрация: 23.11.2008
Сообщений: 5
По умолчанию

и оформить нужно было в виде подпрограммы, с вводом в едит1 и нажатием ентера-вывод в едит2
SNap вне форума Ответить с цитированием
Старый 24.11.2008, 19:54   #5
SNap
 
Регистрация: 23.11.2008
Сообщений: 5
По умолчанию

люди, киньте хотя бы идею как массив из чисел перевести в строку и вывести в едит (используя функцию, или процедуру)
SNap вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прошу помощи. Brian Lee Jones Свободное общение 0 19.06.2008 00:21
прошу помощи! alexxxx Фриланс 1 07.06.2008 17:05
Прошу всех... MAcK PHP 5 12.12.2006 08:08