Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сортировка массива


Страницы:   1 2

Vitaly38 ©   (2009-10-12 17:25:00) 

Добрый вечер всем. Прошу помощи. Задача следующая.

2. Дан  массив,  состоящий  из  символов. Преобразовать  его  по  следующему
правилу:  сначала  должны находиться цифры,  а  затем  все  остальные  символы,
сохраняя  при  этом  взаимное  расположение  символов  в  каждой  из  этих  двух
групп.

Задачу решить испоьзуя стринг грид. Вывод организовать в едит.

Принцип сам понимаю.
вот код

Count := Length(edtBegin.Text);
 SetLength(SymArr, Count);

 // заполнение массима
 for inx := 0 to Count - 1 do
 begin
   SymArr[inx] := edtBegin.Text[inx + 1];
 end;

 curr_pos := 0;
 for inx := 0 to Count - 1 do
 begin
   if (SymArr[inx] >= '0') and (SymArr[inx] <= '9') then
   begin
     CurrCh := SymArr[inx];
     for idx := inx downto curr_pos + 1 do
     begin
       SymArr[idx] := SymArr[idx - 1];
     end;
     SymArr[curr_pos] := CurrCh;
     curr_pos := curr_pos + 1;
   end;
 end;

 // вывод информации в интерфейс
 edtEnd.Text := '';
 for inx := 0 to Count - 1 do
 begin
   edtEnd.Text := edtEnd.Text + SymArr[inx];
 end;
end;

Но это при условии что мы работаем через едит. А как сделать через массив? Поскажите пожалуйста.


vitaly38   (2009-10-12 18:30:00) [21]

Задача из методички. Точь в точь сформулирована как в методичке.

   КОМПОНЕНТ StrinGrid (массив одномерный)

                                                     Кнопка ВЫПОЛНИТЬ

                            окно Tedit (сюда вывести отсортированный массив)

Это он после сказал. Структуру саму.


Сергей М.   (2009-10-12 18:25:00) [22]


> написал то на что мозгов хватило


Полагаю, что и задачу ты формулировал тоже сам ? Или это уже отсебячина в форме вольной интерпретации оригинального текста задания ?

Не мог же, наверно, препод так безобразно ее сформулировать)


vitaly38   (2009-10-12 18:19:00) [23]

я написал то на что мозгов хватило. Остальное прошу добавить либо исправить))


Сергей М.   (2009-10-12 18:17:00) [24]


> vitaly38 ©   (12.10.09 18:14) [8]


Ну а почему же тогда он, массив, "дан" ?
Программа -то у тебя начинает работу, когда ни длина ни содержимое этого массива еще не известны ..


vitaly38   (2009-10-12 18:14:00) [25]

Да. Именно так.


Сергей М.   (2009-10-12 18:05:00) [26]


> КОМПОНЕНТ StrinGrid


Т.е. StringGrid нужен для ввода пользователем содержимого будущего сортируемого массива ?


vitaly38   (2009-10-12 18:03:00) [27]

Наверное забыл указать саму структуру программы.

                                КОМПОНЕНТ StrinGrid (массив одномерный)


                                                      Кнопка ВЫПОЛНИТЬ

                             окно Tedit (сюда вывести отсортированный массив)


Сергей М.   (2009-10-12 17:59:00) [28]

Length() прекрасно подходит для определения длины дин.массива, каковым у тебя кака раз и является массив SymArr


> Я заполняю отсортированный массив


Какой же он отсортированный, если собственно его сортировка у тебя происходит послеего заполнения ?


Медвежонок Пятачок   (2009-10-12 17:57:00) [29]

edtBegin.Text - это и так уже массив. почти.

сделав с помощью эдита ты все сделал с помощью массива.


vitaly38   (2009-10-12 17:55:00) [30]

Но ведь определение длины Count := Length(edtBegin.Text)  не походит для массива.
Сергей М. Я заполняю отсортированный массив.
Поскажите код именно для работы с массивом.


Медвежонок Пятачок   (2009-10-12 17:48:00) [31]

сделать едит невидимым, а преподу сказать, что усе сделано через массив.
хотя и с эдитом все равно у тебя все уже сделано через массив


Сергей М.   (2009-10-12 17:47:00) [32]


> как сделать через массив?


А ничего и делать не надо - все уже сделано, даже лишнего.

>  // заполнение массима

Зачем, спрашивается, его заполнять, если он тебе уже данготовый, т.е. ужезаполненный, неважно где,кем и как ?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо