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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2009, 10:16   #1
medved6216
Пользователь
 
Регистрация: 28.10.2009
Сообщений: 56
Восклицание Код сортировки чисел

Проблема вот в чём:
Есть четыре числа записанные в полях Edit1.text, Edit2.text, Edit3.text, Edit4.text
И при нажатии кнопки(Button1) нужно их отсортировать в порядке убывания и записать соответственно в
1.(Самое большое) - label1.caption
2. label2.caption
3. label3.caption
4.(Самое маленькое) - label4.caption

Пишу прогу на Delphi.

P.S.: в голове вертится код, но привести его в жизнь не получается... Помогите, пожалуйста, очень нужно.

Последний раз редактировалось medved6216; 28.10.2009 в 10:25.
medved6216 вне форума Ответить с цитированием
Старый 28.10.2009, 10:49   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
в голове вертится код
Код в студию.
Сортировать массивы умеешь?
Вот пихай в массив эти значения, сортируй (примеров тут куча - например на метод пузырька).
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.10.2009, 11:00   #3
medved6216
Пользователь
 
Регистрация: 28.10.2009
Сообщений: 56
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код в студию.
Сортировать массивы умеешь?
Вот пихай в массив эти значения, сортируй (примеров тут куча - например на метод пузырька).
Вот метод пузыря у меня и вертится в голове, но мозг загружен всеми кодами программы,а она пишется уже третий день и поэтому сооброжалка не сильно работает
Вот код пузыря, и что к чему уже подставить не могу
Код:
Program BubbleSort;
Var A : array[1..1000] of integer;
N,i,j,p : integer;
Begin
{Определение размера массива A (N) и его заполнение}
…
{сортировка данных}
for i:=1 to n do
for j:=1 to n-i do
if A[j]>A[j+1] then
begin {Обмен элементов}
p:=A[j];
A[j]:=A[j+1];
A[j+1]:=P;
end;
{Вывод отсортированного массива A}
…
End.
Я помню мы проходили это на первом курсе, но это было давненько А сортировку я не часто использую, или даже вообще не использовал. Вот только первая прога, в которой она потребовалась. а то методом сравнения(if a>b then) пытался решить у меня начал мозг кипеть, только потом я вспомнил про сортировку
medved6216 вне форума Ответить с цитированием
Старый 28.10.2009, 11:36   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

заносишь все значения в массив
хотя бы так:
Код:
  n := 4;
  A[1] := StrToInt(Trim(Edit1.Text));
  A[2] := StrToInt(Trim(Edit2.Text));
  A[3] := StrToInt(Trim(Edit3.Text));
  A[4] := StrToInt(Trim(Edit4.Text));

тут сортировка массива A
/// ....

// теперь значения обратно в Editэы
  Edit1.Text := IntToStr(A[1]);
  Edit2.Text := IntToStr(A[2]);
  Edit3.Text := IntToStr(A[3]);
  Edit4.Text := IntToStr(A[4]);
а вообще эту задачу можно решить множеством разных способов..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.10.2009, 11:45   #5
medved6216
Пользователь
 
Регистрация: 28.10.2009
Сообщений: 56
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
заносишь все значения в массив
хотя бы так:
Код:
  n := 4;
  A[1] := StrToInt(Trim(Edit1.Text));
  A[2] := StrToInt(Trim(Edit2.Text));
  A[3] := StrToInt(Trim(Edit3.Text));
  A[4] := StrToInt(Trim(Edit4.Text));

тут сортировка массива A
/// ....

// теперь значения обратно в Editэы
  Edit1.Text := IntToStr(A[1]);
  Edit2.Text := IntToStr(A[2]);
  Edit3.Text := IntToStr(A[3]);
  Edit4.Text := IntToStr(A[4]);
а вообще эту задачу можно решить множеством разных способов..
Мне главное направление было понять, разгребсти так сказать мысли, все я понял решение, сейчас попробую
medved6216 вне форума Ответить с цитированием
Старый 28.10.2009, 12:07   #6
medved6216
Пользователь
 
Регистрация: 28.10.2009
Сообщений: 56
По умолчанию

Всем спасибо получилось
Код:
procedure TForm1.Button3Click(Sender: TObject);
Var A : array[1..1000] of integer;
N,i,j,p : integer;
begin
{Код скрыт}
begin
{Распределение первого места}
n := 4;
A[1] := StrToInt(Trim(panel60.caption));
A[2] := StrToInt(Trim(panel61.caption));
A[3] := StrToInt(Trim(panel62.caption));
A[4] := StrToInt(Trim(panel63.caption));
for i:=1 to n do
for j:=1 to n-i do
if A[j]>A[j+1] then
  begin {Обмен элементов}
    p:=A[j];
    A[j]:=A[j+1];
    A[j+1]:=P;
  end;
  label41.caption := IntToStr(A[1]);
  label39.caption := IntToStr(A[2]);
  label37.caption := IntToStr(A[3]);
  label35.caption := IntToStr(A[4]);
{Код скрыт}
{----END---}
{Код скрыт}
end;
end;
medved6216 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуйста связать поле Memo с процедурой сортировки Алексей_xXx Помощь студентам 8 04.05.2009 21:19
С чего начать написание кода для графика? Slavik Microsoft Office Excel 1 25.03.2009 20:47
Помогите пожалуйста в Pascal (Алгоритм сортировки) JayDe Помощь студентам 3 29.01.2009 19:13
написание кода и музыкальное сопровождение veter_s_morya Свободное общение 0 27.09.2008 20:46