Задача на списки |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Задача на списки |
dream-x |
4.05.2008 17:34
Сообщение
#1
|
Пионер Группа: Пользователи Сообщений: 64 Пол: Мужской Реальное имя: Макс Репутация: 1 |
Здравствуйте! Я был бы очень рад если бы вы мне помогли бы с маленькой пробдемой...
Программа должна переставить элементы списка по следующему звкону: если текущий элемент больше некоторого числа Р то поместитьследующий заним элемент в конец цепочки; если текущий элемент меньше или равен Р перенести его в начало цепочки (первый оставить безизменения) Вот код но это не вся программа почемуто у меня список не хочет присваиваться и выводится на экран...
Заранее СПАСИБО... Сообщение отредактировано: dream-x - 4.05.2008 18:56 |
compiler |
4.05.2008 18:05
Сообщение
#2
|
Человек Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: 3 |
ух, ну ты и намудрил... возьми модуль для работы с деками из ЧаВО и считай программа готова...
-------------------- Спасибо!
Удачи! |
dream-x |
4.05.2008 18:09
Сообщение
#3
|
Пионер Группа: Пользователи Сообщений: 64 Пол: Мужской Реальное имя: Макс Репутация: 1 |
|
compiler |
4.05.2008 18:20
Сообщение
#4
|
Человек Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: 3 |
Не не катит... ну если хочешь заняться, как говорит сегодняшний именинник, изобретением велосипеда, тогда избавься от изменения глобальных переменных в процедурах, гляди и программа читабельной станет...зы но еще раз подумай о деках, программа будет в десять строк и иметь четкую структуру... -------------------- Спасибо!
Удачи! |
dream-x |
4.05.2008 18:57
Сообщение
#5
|
Пионер Группа: Пользователи Сообщений: 64 Пол: Мужской Реальное имя: Макс Репутация: 1 |
ну если хочешь заняться, как говорит сегодняшний именинник, изобретением велосипеда, тогда избавься от изменения глобальных переменных в процедурах, гляди и программа читабельной станет... зы но еще раз подумай о деках, программа будет в десять строк и иметь четкую структуру... Вот я не могу понять (я вроде исправил переменные) почему не выводит 2 раза список:
|
compiler |
4.05.2008 19:02
Сообщение
#6
|
Человек Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: 3 |
я вроде исправил переменные исправленный код в студию...для проверки, точно ли ты исправил), можешь перенести раздел объявления глобальных переменных ПОСЛЕ процедур... -------------------- Спасибо!
Удачи! |
dream-x |
4.05.2008 19:05
Сообщение
#7
|
Пионер Группа: Пользователи Сообщений: 64 Пол: Мужской Реальное имя: Макс Репутация: 1 |
|
compiler |
4.05.2008 19:08
Сообщение
#8
|
Человек Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: 3 |
Он вверху щаз посмотрим твой всевышний код)и сразу вопрос строка List1:=List1; имеет скрытый смысл? а теперь непосредственно по теме: можешь описать что делает OutPutList? для подсказки, можешь заменить ее описание на Procedure OutPutList(const List:TLink); ... в общем она не только выводит данные... upd забыл изменит var на const( Сообщение отредактировано: compiler - 4.05.2008 19:48 -------------------- Спасибо!
Удачи! |
dream-x |
4.05.2008 19:12
Сообщение
#9
|
Пионер Группа: Пользователи Сообщений: 64 Пол: Мужской Реальное имя: Макс Репутация: 1 |
щаз посмотрим твой всевышний код) и сразу вопрос строка List1:=List1; имеет скрытый смысл? Это от безысходности Добавлено через 1 мин.
Переделанный... Как ты просил... |
compiler |
4.05.2008 19:20
Сообщение
#10
|
Человек Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: 3 |
я обновил предыдущий пост...
-------------------- Спасибо!
Удачи! |
dream-x |
4.05.2008 19:23
Сообщение
#11
|
Пионер Группа: Пользователи Сообщений: 64 Пол: Мужской Реальное имя: Макс Репутация: 1 |
|
compiler |
4.05.2008 19:30
Сообщение
#12
|
Человек Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: 3 |
Ну что я зделал неправильно, я понять не могу тут все Должно павыводиться! процедуры вывода не должны менять значения чего либо... скажем есть урывок var i:integer;ты хотел бы что бы i менялась? наверное, нет... а у тебя в процедуре List меняется на nil. . и в следующий раз ничего не выводится... добавь в процедуру дополнительную переменную и меняй ее, а List не трож! Сообщение отредактировано: compiler - 4.05.2008 19:32 -------------------- Спасибо!
Удачи! |
dream-x |
4.05.2008 19:34
Сообщение
#13
|
Пионер Группа: Пользователи Сообщений: 64 Пол: Мужской Реальное имя: Макс Репутация: 1 |
процедуры вывода не должны менять значения чего либо... скажем есть урывок var i:integer;ты хотел бы что бы i менялась? наверное, нет... а у тебя в процедуре List меняется на nil. . и в следующий раз ничего не выводится... добавь в процедуру дополнительную переменную и меняй ее, а List не трож! Где именно
Если сдесь сдесь должно так быть и я щас попробывал одно и тоже... Добавлено через 2 мин. Это же ввод списка а перед вводом его обнулить надо |
compiler |
4.05.2008 19:39
Сообщение
#14
|
Человек Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: 3 |
причем здесь InPutList? мы ж вроде говорили о другой процедуре...
Procedure OutPutList(Var List:PLink); -------------------- Спасибо!
Удачи! |
dream-x |
4.05.2008 19:42
Сообщение
#15
|
Пионер Группа: Пользователи Сообщений: 64 Пол: Мужской Реальное имя: Макс Репутация: 1 |
причем здесь InPutList? мы ж вроде говорили о другой процедуре... Procedure OutPutList(Var List:PLink); ммм... а если тут убрать это тогда цикл зациклится |
volvo |
4.05.2008 19:45
Сообщение
#16
|
Гость |
Цитата а если тут убрать это тогда цикл зациклится А если убрать Var вот тут:Цитата Procedure OutPutList(Var List:PLink); Ты б лучше привел пример, что должно быть в результате, если список вот такой: <5, 6, 7, 8, 9>, а число P = 7? Сообщение отредактировано: volvo - 4.05.2008 19:45 |
compiler |
4.05.2008 19:45
Сообщение
#17
|
Человек Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: 3 |
ммм... а если тут убрать это тогда цикл зациклится это из серии невероятное рядом?я же написал Цитата добавь в процедуру дополнительную переменную и меняй ее, а List не трож! читаем внимательней....-------------------- Спасибо!
Удачи! |
dream-x |
4.05.2008 19:49
Сообщение
#18
|
Пионер Группа: Пользователи Сообщений: 64 Пол: Мужской Реальное имя: Макс Репутация: 1 |
|
volvo |
4.05.2008 19:54
Сообщение
#19
|
Гость |
Цитата мне кажется так: А теперь - по шагам, для тех кто не понимает Паскаля, пройди и попробуй получить по своему алгоритму (приведенному в первом посте) из того, что написал я, твой результат... Что и куда переносится, напиши... Вот так вот: 1. исходный список: <5, 6, 7, 8, 9> элемент P = 7 2. текущий элемент = 5, меньше P, переносим его туда-то, получаем то-то... 3. ... и так далее ... Я хочу видеть в результате проход по всему списку, и что у тебя получилось... Прежде, чем что-то программировать, надо понять, что это должно делать... |
dream-x |
4.05.2008 19:55
Сообщение
#20
|
Пионер Группа: Пользователи Сообщений: 64 Пол: Мужской Реальное имя: Макс Репутация: 1 |
Уважаемый volvo! Поздравляю с днем Рождения!
И все заработало ну в смысле все выводиться щас дальше делать буду) Спасибо volvo и compiler |
Текстовая версия | 27.04.2024 7:33 |