![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Krjuger |
![]()
Сообщение
#1
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
В общем задача заключается в том чтобы после елемента списока P1,с ключем Х,равным задаваемому значению А,вставить список P2.
Тут я беру элемент из списка п2 и записываю его после элемента с ключем Х.В общем моя идея заключалась в том,чтобы создать процедуру,которая будет юзять insert и потихоньку выдирая из п2 по 1 элементу вставлять их каждый раз сдвигая ключ на 1,тем самым впихнуть весь список, но как это реализовать хз. Так же есть вопрос немного в другой области.Необходимо взять из конца дека V элементов и вставить их в стек,вот тут приветствуются лбые идеи,потому что своих совсем нет((( P.s.Просьба на фак не тыкать прочитал и не один,но если есть конкретные вещи из фака ,тобуду только рад. |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата В общем моя идея заключалась в том,чтобы создать процедуру,которая будет юзять insert и потихоньку выдирая из п2 по 1 элементу вставлять их каждый раз сдвигая ключ на 1,тем самым впихнуть весь список Идея неправильная. Для того, чтобы сделать то, что надо, достаточно найти в первом списке элемент, который равен X (это просто, один цикл. В результате имеешь некий указатель P, такой, что P^.info = X), затем запомнить поле next этого элемента (оно нам еще пригодится), ну и:P^.next := list_2; { <--- вставляешь список после P } Это все, что нужно... Чтобы понять как оно работает - начерти на бумаге 2 списка, и сделай то, что я посоветовал... |
Krjuger |
![]()
Сообщение
#3
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Ну вроде как то так получилось,но все равно не работает.
Тут Invalid qualifier в строке write( P1^.number );хз че сделать. |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Цитата Тут Invalid qualifier в строке Абсолютно справедливо: нельзя разыменовывать Pointer. Чтобы обратиться куда-то через указатель, надо знать, на что этот указатель указывает (странно, правда?). А Pointer - указывает куда-то, а вот на что - неясно. Используй Point вместо Pointer, должно получиться... |
Krjuger |
![]()
Сообщение
#5
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Тьфу ты, совсем с катушек сьезжаю,А насчет поиска и замены,что нить сказать можеш?
И еще там внизу я скинул так другую задачу,по сути мне надо создать дек,заполнить его чем либо,и проходя с конца,записывать в пустой стек,но если переносить их по мере прохода от конца до V в стеке они будут прямо или обратно выстроены? И еще можно оценить такой вариант создания списка из файла.
Сообщение отредактировано: Krjuger - 12.05.2009 19:46 |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Цитата по сути мне надо создать дек,заполнить его чем либо,и проходя с конца,записывать в пустой стек Реализации стека и дека свои приведи, потом будем разговаривать.Цитата Просьба на фак не тыкать прочитал и не один Значит, перечитай более внимательно. Я не знаю, что и где ты читал, но у нас в FAQ-е есть то, что тебе нужно.Цитата можно оценить такой вариант создания списка из файла. Лучше не оценивать. Ничего цензурного в голову не приходит. Что это у тебя за Chartoint ??? Это делается в одну строку:Function CharToInt(ch: Char): Integer; Зачем понадобилась рекурсивная процедура Probel? Что, программа слишком быстро работает и ошибки легко отлавливать? Хочешь усложнить этот процесс? Ты б лучше задание точное привел, а не Цитата мне надо создать дек,заполнить его чем либо,и проходя с конца,записывать в пустой стек Чем заполнить, что записывать, с какого конца проходить (дек - он позволяет проходить и с переднего и с заднего конца) - уточняй... |
Krjuger |
![]()
Сообщение
#7
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
"Взять из дека последние V элементов и записать их в стек".Вот такое вот задание,А сделать, как угодно.
Насчет рекурсивного пробела,уже привычка,с того момента,как синтаксический анализатор писал.Реализацию стека и дека чуть позже выыложу,а щас,пересмотрел идею с функцией char to int и пришел к такому варианту
Оба списка корректно заполняются,а вот вывод почему дает пустой вариант и еще добавление у меня не получилось проверить. Сообщение отредактировано: Krjuger - 12.05.2009 21:07 |
Krjuger |
![]()
Сообщение
#8
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Ну так кто нибуть может что нить дельное по этому поводу сказать?)
|
volvo |
![]()
Сообщение
#9
|
Гость ![]() |
Цитата Ну так кто нибуть может что нить дельное по этому поводу сказать?) Дельное? Пользуйся сам своими же советами:И еще процедуры должны быть говорящие,а то хрен поймеш что за апы и дауны,когщда до списков дойдеш будеш так голову вскрывать... Напомнить, откуда?![]() ![]() У тебя, конечно всякие M, R и тому подобные переменные - говорящие, да? Форматировать программу тоже не мешало бы. Есть утилита PTOP (даже где-то на форуме выкладывалась), если не хочешь делать это вручную. Procedure SeachAndInsert(P1, P2: point ; x : integer);Не проверял, Паскаля под рукой нет, но не вижу причин, чтоб не отработало... Теперь - о том, что я выделил комментариями... У тебя было: Цитата while (P1<>nil) and flag=true do while ((P1<>nil) and flag)=true do ...Хорошо ли это? Я вот не думаю, что хорошо. И надо либо проставлять скобки, чтоб компилятор понял, чего ты хочешь, либо перестать извращаться, и не делать "масло масляное". Без сравнения с true понятно, что While flag аналогично While flag = true, на то и логическая переменная. |
Krjuger |
![]()
Сообщение
#10
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Насчет флага,спасибо учту.Насчет говрящих имен..Я про процедуры говорил
![]() P.S.Других критиковать всегда легче,а если сам что нить непонимаеш,то иногда такие глюпые вещи совершаешь) В общем ошибки исправил,учел и обещаю исправица ![]() ![]()
|
![]() ![]() |
![]() |
Текстовая версия | 19.06.2025 2:26 |