![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сортировка массива
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]
> как сделать через массив?
А ничего и делать не надо - все уже сделано, даже лишнего.
> // заполнение массима
Зачем, спрашивается, его заполнять, если он тебе уже данготовый, т.е. ужезаполненный, неважно где,кем и как ?