1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| reboot |
Сообщение
#1
|
|
Новичок ![]() Группа: Пользователи Сообщений: 15 Пол: Мужской Репутация: 0 |
помогите с такой задачей:
Дан список, состоящий из N вещественных чисел. Удалить из него те звенья, значения которых меньше следующих. Организовать вывод начальной и конечной последовательности значений в списке. вопрос первый: сдесь нужен массив записей, или можно обойтись нетипизированным файлом? вопрос второй: если использовать массив то как обращаться к элементу списка при его заполнении рандомными числами? понимаю что вопросы глупые и легкие(для кого-то), но у меня просто не очень хорошо общение со списками идет. |
![]() ![]() |
| volvo |
Сообщение
#2
|
|
Гость |
Смотри. Тебе надо идти на один элемент "позади" проверяемой пары, чтобы ты мог контролировать указатель текущего элемента, и (если надо), перебросить его через один элемент:
temp := root;Но... При таком проходе по списку одна пара от тебя ускользнет: это самый первый и второй элементы, они не будут сравниваться, сравнение начнется с пары "второй - третий". Это нехорошо. Чтоб решить проблему - введи еще одну переменную, типа Boolean, и перед проходом, который я показал, присвой ей True если root^.znach < root^.sled^.znach... Иначе - False. Что это тебе даст? Потом, после прохода, и удаления меньших элементов в паре, тебе надо напечатать список? Вот если переменная равна True, удалишь из списка первый элемент, а потом начнешь печатать. Если False - ничего делать не надо, первый элемент не меньше второго, и его удалять не надо. Теперь о печати списка. Опять же, не делается это через цикл For, вот так надо: temp := root; Попробуй реализовать... Это не сложно, просто надо понять алгоритм. Начерти список со связями на бумаге, и разберись, что делается в том алгоритме, который я привел, что чему присваивается... Когда разберешься - будешь щелкать такие задачи как семечки |
reboot списки-динамическая структура 25.05.2009 1:18
volvo Список - это список. Если ты хочешь реализовать ег… 25.05.2009 1:28
reboot прошу прощения, я понял свою ошибку. У меня просто… 25.05.2009 1:38
reboot вобщем проблем не избежал, задача такая: Дан списо… 29.05.2009 16:13
volvo for i:=1 to number do begin
if temp^.znach < te… 29.05.2009 16:23
reboot дело в том, что при выполнении условия мне надо пе… 29.05.2009 20:08
reboot спасибо огромное! ты тут описал как раз то что… 29.05.2009 22:57
reboot появился новый вопрос: когда я "корню" п… 5.06.2009 23:14![]() ![]() |
|
Текстовая версия | 7.11.2025 0:02 |