|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
18.11.2007, 16:25 | #1 |
Пользователь
Регистрация: 11.11.2007
Сообщений: 45
|
Операции над данными в ListBox
Вот описал процедуру выполняющую требуемое задание.
Задание: В лист-боксе имеется последовательность целых чисел. Во втором лист-боке показать те числа из первого лист-бокса, которые являются простыми числами. Процедура: Код:
Помогите пожалуйста переделать данный код, для выполнения следующей задачи: Задача: Дана последовательность чисел. Построить последовательность номеров позиций, откуда начинаются подряд идущие значения, расположенные в порядке убывания. Спасибо!
end;
end. |
18.11.2007, 18:37 | #2 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
Поскольку Ваша задача не имеет ничего общего с приведенным кодом, то переделывать его нет смысла. Лучше написать новый. Зачем Вам ListBox? Задача в три действия 1. Создать массив. 2.Выполнить условие задачи. Вывести результат. На форме нужны 1 кнопка, и три эдита (лабеля, мемо) . И такой код:
Код:
|
18.11.2007, 18:58 | #3 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Если вам по условию нужны именно листбоксы, то:
Код:
|
18.11.2007, 23:24 | #4 |
Пользователь
Регистрация: 11.11.2007
Сообщений: 45
|
Вот честно сказать, - никак не пойму как можно эту задачу решить первым из предложеных вариантов! Зачем целых три эдита и три лэйбла? В тексте обработчиков событий и близко речь не идёт о выводе результатов в лэйблы!
В обоих вышепредложенных вариантах решения задачи, программа запускается, но результатов нет! Может я не так понимаю формулировку задачи!? Дана последовательность чисел.(В лист-боксе1. имеется столбец из целых чисел!) Построить последовательность номеров позиций, откуда начинаются подряд идущие значения, расположенные в порядке убывания. (В лист-боксе2. сделать такой столбец, который будет являтся столбцом из лист-бокса1. но уже отсортированым в порядке убывания!) Хотелось бы всё-таки разобраться с этой задачей!
end;
end. |
18.11.2007, 23:55 | #5 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Цитата:
"Построить последовательность номеров позиций, откуда начинаются подряд идущие значения, расположенные в порядке убывания." Это означает не отсортировать значения из первого листбокса ("В лист-боксе2. сделать такой столбец, который будет являтся столбцом из лист-бокса1. но уже отсортированым в порядке убывания!"), а построить столбец из строк, в который войдут индексы (опять-таки не значения, а номера позиций, т.е. индексы значений из первого листбокса) строк первого листбокса, в которых находятся числа, идущие подряд в порядке убывания. То есть, если в 1-ом листбоксе последовательность строк такая: 3,5,1,2,5,7,9,6,5,4,3 то во второй листбокс будут записаны следующие строки: 7,8,9,10 (индексы строк 6,5,4,3) И все... Потому что только помеченные красным числа - идут подряд, то есть различаются на 1 - убывают Что непонятного??? Мой вариант именно это и делает. Проверил, все чудненько... Уточню - возможно, "подряд" имеется в виду просто последовательность чисел, каждое следующее из которых меньше предыдущего, тогда в моем варианте строка if (StrToInt(ListBox1.Items[i])-1=StrToInt(ListBox1.Items[i+1])) then заменяется на if (StrToInt(ListBox1.Items[i])>StrToInt(ListBox1.Items[i+1])) then |
|
19.11.2007, 01:33 | #6 |
Пользователь
Регистрация: 11.11.2007
Сообщений: 45
|
Вот теперь всё ясно и понятно! Большое спасибо за помощь и пояснения!
Сама задача была сформулирована и описана довольно-таки скудно и запутано! Поэтому я её неправильно понял! Но теперь я во всём разобрался!
end;
end. |
19.11.2007, 01:38 | #7 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Поздравляю. Успехов!
|
19.11.2007, 01:51 | #8 |
Пользователь
Регистрация: 11.11.2007
Сообщений: 45
|
Спасибо! И Вам успехов!
end;
end. |
19.11.2007, 05:31 | #9 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
Читать немного учитесь. В программе только Едиты. А в скобках написано, что эдиты можно заменить или лабелями или мемо или, как ты сделал, листбоксами. Т.е. в твоей задаче можно использовать любые компоненты, в которых можно вводить и выводить текст. А программа у меня прекрасно работает и выводит индексы, с которых НАЧИНАЕТСЯ убывание на единицу, т.е. то, что записано в условии задачи.
|
21.11.2007, 02:21 | #10 |
Пользователь
Регистрация: 11.11.2007
Сообщений: 45
|
Хорошо, буду более внимательно и вдумчиво читать условия задач да и вообще любых текстов!
У меня тут появилась необходимость немного модернезировать свои праграммки, а именно сделать дополнительный вывод результатов в StringGrid! Добавил на форму компоненту StringGrid, добавил новую кнопку и описал процедуру: Код:
Выглядит это так: Где-то я сделал что-то неверно! Помогите пожалуйста разобраться! P.S. В StringGrid поменял значения на: ColCount=1, RowCount=1, FixedRows=0, FixedCols=0.
end;
end. Последний раз редактировалось Mr.User; 21.11.2007 в 02:29. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
непонятки с данными | KiSH333 | БД в Delphi | 5 | 01.09.2008 08:36 |
Файл с данными | werser | БД в Delphi | 1 | 24.05.2008 23:40 |
Обмен данными по сети | Altera | Работа с сетью в Delphi | 2 | 23.02.2008 00:13 |
Операции над данными | yulia | БД в Delphi | 24 | 21.05.2007 01:18 |
обмен данными с сервером | BioS | Работа с сетью в Delphi | 15 | 12.02.2007 15:32 |