Задача на списки |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Задача на списки |
dream-x |
Сообщение
#21
|
Пионер Группа: Пользователи Сообщений: 64 Пол: Мужской Реальное имя: Макс Репутация: 1 |
Вот так вот: 1. исходный список: <5, 6, 7, 8, 9> элемент P = 7 2. текущий элемент = 5, меньше P, оставляем без изменения получем <5, 6, 7, 8, 9> 3. текущий элемент = 6, меньше P, оставляем без изменения т.к. он и так 2-ой получем <5, 6, 7, 8, 9> 4. текущий элемент = 7, равен P, переносим еговначало но после 5 т.к. 5 это начало списка получем <5, 7, 6, 8, 9> 5. текущий элемент = 8, больше P, переносим в конец получем <5, 6, 7, 9, 8> 6. текущий элемент = 9, больше P, переносим в конец получем <5, 6, 7, 8, 9> |
dream-x |
Сообщение
#22
|
Пионер Группа: Пользователи Сообщений: 64 Пол: Мужской Реальное имя: Макс Репутация: 1 |
Вот еще вопрос появился , я список перегнал в однородный массив и как мне теперь вставить элемнт между элементами массива... Например есть массив <1 2 3 4 5 6> как мне всавить 3 между единицей и 2 чтобы получилось так <1 3 2 4 5 6>
|
compiler |
Сообщение
#23
|
Человек Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: 3 |
Вот еще вопрос появился , я список перегнал в однородный массив и как мне теперь вставить элемнт между элементами массива... Например есть массив <1 2 3 4 5 6> как мне всавить 3 между единицей и 2 чтобы получилось так <1 3 2 4 5 6> не захотел делать с деками - ладно, но зачем сувать сюда массивы? та за такое... или у тебя задания придумать самый НЕ оптимальный способ?это же список, тут вся прелесть в работе с указателями.... насчёт массива, если он статический -- вставляешь в нужное место, а остальные сдвигаешь, если динамический - в зависимости от реализации.. -------------------- Спасибо!
Удачи! |
dream-x |
Сообщение
#24
|
Пионер Группа: Пользователи Сообщений: 64 Пол: Мужской Реальное имя: Макс Репутация: 1 |
не захотел делать с деками - ладно, но зачем сувать сюда массивы? та за такое... или у тебя задания придумать самый НЕ оптимальный способ? это же список, тут вся прелесть в работе с указателями.... насчёт массива, если он статический -- вставляешь в нужное место, а остальные сдвигаешь, если динамический - в зависимости от реализации.. Массивами это я как вариант... |
compiler |
Сообщение
#25
|
Человек Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: 3 |
Массивами это я как вариант... смотрим примеры работы со списками и пишем аналогично(примеры можно взять с любого учебника или поискать по форуму)-------------------- Спасибо!
Удачи! |
dream-x |
Сообщение
#26
|
Пионер Группа: Пользователи Сообщений: 64 Пол: Мужской Реальное имя: Макс Репутация: 1 |
Задание слегка изменилось но суть таже... Составить программу вставки элемента O после каждого элемента списка, превышающее некоторое значение Р.
Вот код... но есть проблема он стирает последующие символы...
я не могу понять почему он затирает последующие символы... |
compiler |
Сообщение
#27
|
Человек Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: 3 |
Вот код... я не могу понять почему он затирает последующие символы... чесно говоря, я тоже не очень понимаю твою программу... но если заменить insert, на что-то подобноеprocedure insert(var p_now:PLink; const data:TData);то, вроде, функциональность уже ближе к желаемой... я так и не понял, почему ты туда хочешь передавать три параметра... и еще у тебя в программе есть не используемые переменные. и,если разговор зашел о переменных, я продолжаю рекомендовать объявлять глобальные переменные ПОСЛЕ процедур.. Сообщение отредактировано: compiler - -------------------- Спасибо!
Удачи! |
dream-x |
Сообщение
#28
|
Пионер Группа: Пользователи Сообщений: 64 Пол: Мужской Реальное имя: Макс Репутация: 1 |
чесно говоря, я тоже не очень понимаю твою программу... но если заменить insert, на что-то подобное procedure insert(var p_now:PLink; const data:TData);то, вроде, функциональность уже ближе к желаемой... я так и не понял, почему ты туда хочешь передавать три параметра... и еще у тебя в программе есть не используемые переменные. и,если разговор зашел о переменных, я продолжаю рекомендовать объявлять глобальные переменные ПОСЛЕ процедур.. Спасибо!!! Ну что такое, всего-то надо было присвоить ссылке следующее значение и все еще раз спасибо огромное, все понятно. Что-то я ступил... |
compiler |
Сообщение
#29
|
Человек Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: 3 |
Спасибо!!! всегда пожалуйста...Что-то я ступил... посмотри еще примеры... и попытайсяя делать код "чище"...-------------------- Спасибо!
Удачи! |
dream-x |
Сообщение
#30
|
Пионер Группа: Пользователи Сообщений: 64 Пол: Мужской Реальное имя: Макс Репутация: 1 |
всегда пожалуйста... посмотри еще примеры... и попытайсяя делать код "чище"... Еще раз спасибо! Все учту... З.Ы. А щас курсач доделывать буду... Добавлено через 5 мин. Если кому нужна эта задача то вот исходник Сообщение отредактировано: dream-x - Прикрепленные файлы SPISOK.PAS ( 1.8 килобайт ) Кол-во скачиваний: 272 |
compiler |
Сообщение
#31
|
Человек Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: 3 |
прошу прощения за оффтоп..
А щас курсач доделывать буду... это был курсач? если не секрет, где такие "курсачи" дают и на каком курсе...или курсач на другую тему? онтоп а лишние переменные ты так и не убрал... Сообщение отредактировано: compiler - -------------------- Спасибо!
Удачи! |
dream-x |
Сообщение
#32
|
Пионер Группа: Пользователи Сообщений: 64 Пол: Мужской Реальное имя: Макс Репутация: 1 |
прошу прощения за оффтоп.. это был курсач? если не секрет, где такие "курсачи" дают и на каком курсе... или курсач на другую тему? онтоп а лишние переменные ты так и не убрал... Нет курсач у меня Пятнашки у меня там проблема с записью в файл имя игрока и его рекорд... А ссылки это так лаба была... |
compiler |
Сообщение
#33
|
Человек Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: 3 |
Нет курсач у меня Пятнашки у меня там проблема с записью в файл имя игрока и его рекорд... курс? учебное заведение?А ссылки это так лаба была... и это переменные нашёл? у тебя их там три штуки... и OutPutList ты до ума не довел... заведи там отдельную переменную(зато сократится одна глобальная), но не меняй входные данные... и напоследок, освобождение памяти тоже делать надо... -------------------- Спасибо!
Удачи! |
dream-x |
Сообщение
#34
|
Пионер Группа: Пользователи Сообщений: 64 Пол: Мужской Реальное имя: Макс Репутация: 1 |
курс? учебное заведение? и это переменные нашёл? у тебя их там три штуки... и OutPutList ты до ума не довел... заведи там отдельную переменную(зато сократится одна глобальная), но не меняй входные данные... и напоследок, освобождение памяти тоже делать надо... 1 курс, Рязанский Радиотехнический Государственный Университет спец, САПР ВС... это я щас все сделаю... а про память это как ее освоюождать? Сообщение отредактировано: dream-x - |
compiler |
Сообщение
#35
|
Человек Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: 3 |
Рязанский Радиотехнический Государственный Университет интересно... а я тоже собираюсь в такой же поступать, только в Харьковский)это я щас все сделаю... ну , тут, батенька, поиск.. даже в ЧаВо єто есть, если псевдокодом..Код процедура освобождения(var список) var указатель_на старый_элемент begin пока список не указывает на нил[не речка)] begin старому элементу присвоить текущие значение(список) список указывает на следующий элемент освободить старый элемент(dispose(p_old);) end; end; -------------------- Спасибо!
Удачи! |
volvo |
Сообщение
#36
|
Гость |
Цитата Если кому нужна эта задача то вот исходник Не могу понять программистов, которые делают непонятные (интуитивно) программы... Если я ввожу данные в список так: <1, 2, 3, 4, 5> - почему тут же получаю распечатку в виде: <5, 4, 3, 2, 1> ? Что, настолько сложно сделать добавление в конец списка? Всего навсего: Procedure InPutList(Var List:PLink);неужели настолько много изменилось? Второе: по условию - Цитата Программа должна переставить элементы списка по следующему звкону: если текущий элемент больше некоторого числа Р то поместитьследующий заним элемент в конец цепочки; если текущий элемент меньше или равен Р перенести его в начало цепочки (первый оставить безизменения) Все. Точка... Вводить надо только список и значение P. С какой стати программа требует ввода какого-то O? Хоть бы объясняла, зачем оно, а то, собственно, что вводить-то?Добавлено через 11 мин. P.S. Опять же... Основная программа: ... Нет... Зачем выводить пустоту? А при вводе в O значения, которое превышает P (я не знаю, что туда надо было вводить, поэтому экспериментирую в режиме телепатии) программа вообще зацикливается... |
dream-x |
Сообщение
#37
|
Пионер Группа: Пользователи Сообщений: 64 Пол: Мужской Реальное имя: Макс Репутация: 1 |
А при вводе в O значения, которое превышает P (я не знаю, что туда надо было вводить, поэтому экспериментирую в режиме телепатии) программа вообще зацикливается... Уважаемый volvo вот собственно задание: Составить программу вставки элемента O после каждого элемента списка, превышающее некоторое значение Р. Вот код... но есть проблема он стирает последующие символы... |
volvo |
Сообщение
#38
|
Гость |
Цитата но есть проблема он стирает последующие символы... Я тебе написал, какие у тебя ЕЩЕ проблемы в коде... В условии не сказано, что вводимое значение O должно быть меньше, чем значение P, правда?Вводим O = 8 и P = 3 при списке = <5, 4, 3, 2, 1> и получаем зацикливание... Если хочешь - расскажу, в чем причина зацикливания, но тебе будет полезнее пройтись по программе в режиме отладки и найти ошибку самостоятельно... А все потому, что ты не хочешь делать так, как нужно (а как нужно - написано в FAQ-е, в теме про ДСД), а хочешь все время сделать по-своему, к тому же неправильно, и при этом еще утверждаешь, что программа у тебя рабочая (см. свой же пост №30) |
dream-x |
Сообщение
#39
|
Пионер Группа: Пользователи Сообщений: 64 Пол: Мужской Реальное имя: Макс Репутация: 1 |
Я тебе написал, какие у тебя ЕЩЕ проблемы в коде... В условии не сказано, что вводимое значение O должно быть меньше, чем значение P, правда? Вводим O = 8 и P = 3 при списке = <5, 4, 3, 2, 1> и получаем зацикливание... Если хочешь - расскажу, в чем причина зацикливания, но тебе будет полезнее пройтись по программе в режиме отладки и найти ошибку самостоятельно... А все потому, что ты не хочешь делать так, как нужно (а как нужно - написано в FAQ-е, в теме про ДСД), а хочешь все время сделать по-своему, к тому же неправильно, и при этом еще утверждаешь, что программа у тебя рабочая (см. свой же пост №30) Я не заметил прошу прощение щас пройдусь и все посмотрю спасибо огромное! |
dream-x |
Сообщение
#40
|
Пионер Группа: Пользователи Сообщений: 64 Пол: Мужской Реальное имя: Макс Репутация: 1 |
Вот собственно что я придумал... Но все равно он удаляет предшествующие элементы после 2 повторения цикла
|
Текстовая версия | 24.12.2024 1:30 |