Детская считалочка, двунаправленные списки |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Детская считалочка, двунаправленные списки |
TOPEHTO |
Сообщение
#1
|
Пионер Группа: Пользователи Сообщений: 87 Пол: Мужской Репутация: 0 |
Привет народ! тут вот такая задачка:
должна быть реализованная с помощью двунаправленного списка...пользователь вводит последовательность чисел("номер ребенка в круге") и число (размер считалочки) и начиная с того числа которое он ввел, по часововй стрелочки идет отсчет, то число, на котором останавливает счет-запоминается и удаляется из последовательности и счет продолжается... вообщем пример: если вводятся числа 1,2,3,4,5,6,7,8,9,10 и размер считалочки 4...то ответ должен быть таким: 4,8,2,7,3,10,9,1,6,5 если Я не ошибся... Ума не приложу как делать эту прогу, есть только процедура заполнения, но по словам препода она слишком простая... ... Если кто может, или тут была прогу-помогите ПЛИЗ... |
volvo |
Сообщение
#2
|
Гость |
|
TOPEHTO |
Сообщение
#3
|
Пионер Группа: Пользователи Сообщений: 87 Пол: Мужской Репутация: 0 |
Окей, спасиБо огромное... ...
ПРо казнь программу понял туго, да и разбиратсья в ней неохота+ считалочка мне подходит на 100% тока форму вывода надо поменять, чтобы в итоге выводил 1 строчку, или так оставить еще не решил... В чужих прогах разбираюсь плохо, да и в программировании слабоват, постараюсь конечно, но обещать не могу что получиться-но ПОПРОБУЮ... |
TOPEHTO |
Сообщение
#4
|
Пионер Группа: Пользователи Сообщений: 87 Пол: Мужской Репутация: 0 |
Собрал все свои мозги в кучу...что-то не получается, даже 1% переделать...
А сразу со списками нет? просто знакомых программистов не имею, а вас просить не удобно...... |
мисс_граффити |
Сообщение
#5
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
э... не поняла. ты нас НЕ просишь (раз неудобно)? или просишь?
в общем, FAQ по спискам читал? Создать список сможешь (пока без реализации алгоритма считалочки - просто создать)? -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
TOPEHTO |
Сообщение
#6
|
Пионер Группа: Пользователи Сообщений: 87 Пол: Мужской Репутация: 0 |
мисс_граффити
Прошу конечно, просто неудобно у Вас время воровать своими детскими прогами... ... Процедуру создания списка писали на лекции, так что...наверное написать и отладить смогу...еще есть распечатка, но со слов парня, который её писал(он просто разбирается в программировании) это "Зеленая демо-бета версия" так что до ума её еще доводить и доводить... ... |
мисс_граффити |
Сообщение
#7
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
Ну вот Пробуй. Когда разберешься с этим - можно будет говорить о реализации какого-либо алгоритма обработки (переделки считалочки).
З.Ы. "Детские" - это, судя по всему, 2 курс? -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
TOPEHTO |
Сообщение
#8
|
Пионер Группа: Пользователи Сообщений: 87 Пол: Мужской Репутация: 0 |
АГА... ...откуда ты знаешь?... ...
по теме: вообщем создание списка постараюсь зава сделать... ... |
TOPEHTO |
Сообщение
#9
|
Пионер Группа: Пользователи Сообщений: 87 Пол: Мужской Репутация: 0 |
Цитата type lob=^zap zap=record info:integer link:lob end; var p,t:lob; n,k:integer; procedure zapol (n:integer, var t:lob) var i:integer; begin t^.info:=1; t^.link:=t; for i:=2 to n do degin new(p); p^.info=i; t^.link:=p; p^.link:=t; end; end; Самое основное вспомнил, что начали мы её реализовавыть через циклические списки...вот процедура создания списка...пока больше ничего придумать не могу...ПОМОГИТЕ плиз... ... Сообщение отредактировано: TOPEHTO - |
мисс_граффити |
Сообщение
#10
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
так циклические или двунаправленные? или циклические двунаправленные?
насколько я вижу, zap=record содержит только 1 указатель... на циклических двунаправленный алгоритм вроде как будет намного проще, чем на массивах. Сообщение отредактировано: мисс_граффити - -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
TOPEHTO |
Сообщение
#11
|
Пионер Группа: Пользователи Сообщений: 87 Пол: Мужской Репутация: 0 |
Вообщем мне нуна:
или всю прогу на двунаправленных списках... или всю на циклических... 3-го не дано... ...но желательно черех двунаправленные сделать, то проца которую Я выложил, теоритически через циклические... ... |
TOPEHTO |
Сообщение
#12
|
Пионер Группа: Пользователи Сообщений: 87 Пол: Мужской Репутация: 0 |
Ну товарищи помогите плиз...почитал в FAQ начал творить потихоньку, но мозга не хватает...до следущего понедельника надо помочь... ...
|
мисс_граффити |
Сообщение
#13
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
Что не получается? Спрашивай конкретно.
Через циклические двусвязные проще всего. Вопрос такой: куда выводить инфу? Просто печатать номера, или сохранять в список? -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
TOPEHTO |
Сообщение
#14
|
Пионер Группа: Пользователи Сообщений: 87 Пол: Мужской Репутация: 0 |
Зава скину то что получилось, щас флехи нет рядом...
а вывод нужен 2-х типов...первый после того как ввел, т.е.информационная часть(номер дитя)...второй вот порядок их выбывания, т.е. примерно мона и такой вывод как в задачке с массивами, который выложил volvo, но луче сразу выводить число которое выбыло и все... Выложить-Я то выложу, что сумел сотворить, но...на этом весь мой мозг закончится помогите уж тода процами какими... Совсем забыл: должно быть сделано меню, 1-Ввод данных(ну там кол-во детей, номер каждого впринципе мона и авто заполнение, если мона сделать, и сама считалочка) 2-Вывод того что тока что заполнил 3-Вывод после считалочки Если кто чем может помогите плиз... ... |
мисс_граффити |
Сообщение
#15
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
что тебе нужно сделать для начала:
1. Обеспечить нормальный ввод (это ты вроде как разобрался более-менее. Домучивай) 2. Научиться "ходить" по списку, чтобы найти исключаемый элемент. Это делается в цикле. Умеешь? 3. Научиться удалять элемент из списка. Это делается при помощи перестановки указателей. Менюшку и все такое можно сделать потом... пока что нужно создать основу. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
TOPEHTO |
Сообщение
#16
|
Пионер Группа: Пользователи Сообщений: 87 Пол: Мужской Репутация: 0 |
Цитата Обеспечить нормальный ввод (это ты вроде как разобрался более-менее. Домучивай) Дотворил откомпилировал-выложу на Ваш суд, чтобы глянули как оно... ... Цитата Научиться "ходить" по списку, чтобы найти исключаемый элемент. Это делается в цикле. Умеешь? ВОт с этим Вам придется мне помочь... ... Цитата Научиться удалять элемент из списка. Это делается при помощи перестановки указателей. Помойму Я что-то такое написал, но оно для линейных списков...ну тоже выложу... Прога будет печером, поехал в универ за флехой, надеюсь на вашу помощь... ... |
TOPEHTO |
Сообщение
#17
|
Пионер Группа: Пользователи Сообщений: 87 Пол: Мужской Репутация: 0 |
Код type lob=^zap; zap= record info:integer; link:lob end; var p,t:lob; n,k:integer; procedure ZAPOL(n:integer; var t:lob); var i:integer; begin t^.info:=1; t^.link:=t; for i:=2 to n do begin new(p); p^.info:=i; t^.link:=p; p^.link:=t; end; end; {procedure print(var t:lob; k:integer); var i:integer; begin if (p^.link<>p) then begin I:=i+k; t:=p^.link; p^.link:=p^.link^.link; dispose(t); end; end;} procedure Print(p:lob); var r:lob; begin r:=p; while r<>nil do begin writeln ('Ќ®¬Ґа = ' ,r^.info); r:=r^.link; end; end; procedure DEL(var p:lob); var r:lob; begin r:=p^.link; p^.link:=p^.link^.link; r^.link:=nil end; function menu:integer; var k:integer; begin writeln; writeln; writeln('1-‡ Ї®«Ёвм бЇЁб®Є'); writeln('2-ђ бЇҐз в вм бЇЁб®Є'); writeln('3-ђ бЇҐз в вм Ї®а冷Є ўлЎлў Ёп н«Ґ¬Ґв®ў'); writeln('0-‚л室 Ё§ Їа®Ја ¬¬л'); writeln('‚ и ўлЎ®а'); readln(k); menu:=k; end; begin{Ћб®ў п Їа®Ја ¬¬ } clrscr; k:=1; writeln('Џа®Ја ¬¬ ,Ї®Є §лў ой п Ї®а冷Є ўлЎлў Ёп ¤ҐвҐ© Ё§ ЈагЇЇл ЇаЁ § ¤ ®¬ Є®«ЁзҐб⢥ б«®ў ў бзЁв «®зЄҐ '); writeln('‚ўҐ¤ЁвҐ Є®«ЁзҐбвў® ¤ҐвҐ©'); readln(n); writeln('‡ Ї®«ЁвҐ ¬ ббЁў, ўўҐ¤ЁвҐ ' , n ,' н«Ґ¬Ґв®ў ¬ ббЁў '); for i:=1 to n do read(a[i]); while k<>0 do begin k:=menu; Case k of 1:Sort1(b,n,m); 2:Sort2(b,n,m); 3:Sort3(b,n,m); 0: writeln('Љ®Ґж а Ў®вл Їа®Ја ¬¬л'); end; BblBOD(b,n,m); end end. begin{Ћ‘ЌЋ‚ЌЂџ ЏђЋѓђЂЊЊЂ} Воть...собсна, вроде компилируется, сильно не судите, т.к. в программирование слабоват... ... Плиз помоги с выводом данных и самой работой проги... ... |
мисс_граффити |
Сообщение
#18
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
вообще "хождение" имеет вид примерно такой:
for i:=1 to step-1 do {делаем заданное количество шагов.} поскольку список циклический, можно не волноваться, что p^.link=nil а вот проверить, чтобы изначально список был не пустой - имеет смысл. для упрощения алгоритма (если мы работаем с односвязными списками, то есть перейти на предыдущий элемент нет возможности) можно делать на шаг меньше и останавливаться на элементе, предшествующем удаляемому. Это упростит удаление... А вывод примет вид: writeln((p^.link)^.info) Сообщение отредактировано: мисс_граффити - -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
TOPEHTO |
Сообщение
#19
|
Пионер Группа: Пользователи Сообщений: 87 Пол: Мужской Репутация: 0 |
СпасиБо...вы мне ТТТТТТТТТТААААААААААКККККККККК помогли... ...
|
Гость |
Сообщение
#20
|
Гость |
ну никак не получается эта прога...хоть убейте...
вот заполняет, выводит, осталось само выбывание... Народ, помогите плиз... Код uses crt; type lob=^zap; zap= record info:integer; link:lob end; var p,t:lob; n,k,i:integer; procedure ZAPOL(n:integer; var t:lob); var i:integer; p,z:lob; begin t^.info:=1; t^.link:=t; for i:=n downto 2 do begin new(p); z:=t^.link; p^.link:=z; t^.link:=p; p^.info:=i; end; end; procedure Print(r:lob); var i:integer; begin r:=p; while p<>r^.link do begin writeln ('Ќ®¬Ґа = ' ,r^.info); r:=r^.link; end; writeln('Ќ®¬Ґа = ', r^.info); end; procedure DEL(var p:lob); var r:lob; begin r:=p^.link; p^.link:=p^.link^.link; dispose®; r^.link:=nil end; {procedure ydal (var t:lob; d:integer); var i:integer;p:lob; begin } function menu:integer; var k:integer; begin writeln; writeln; writeln('1-‡ Ї®«Ёвм бЇЁб®Є'); writeln('2-ђ бЇҐз в вм бЇЁб®Є'); writeln('3-ђ бЇҐз в вм Ї®а冷Є ўлЎлў Ёп н«Ґ¬Ґв®ў'); writeln('0-‚л室 Ё§ Їа®Ја ¬¬л'); writeln('‚ и ўлЎ®а'); readln(k); menu:=k; end; begin{Ћб®ў п Їа®Ја ¬¬ } clrscr; k:=1; writeln('Џа®Ја ¬¬ ,Ї®Є §лў ой п Ї®а冷Є ўлЎлў Ёп ¤ҐвҐ© Ё§ ЈагЇЇл ЇаЁ § ¤ ®¬ Є®«ЁзҐб⢥ б«®ў ў бзЁв «®зЄҐ '); {writeln('‚ў®¤ЁвҐ а §¬Ґа бзЁв «®зЄЁ'); readln(k);} while k<>0 do begin k:=menu; Case k of 1:begin writeln('‚ўҐ¤ЁвҐ Є®«ЁзҐбвў® ¤ҐвҐ©'); readln(n); zapol(n,t); end; 2:print(t); {3:} 0:begin writeln('Љ®Ґж а Ў®вл Їа®Ја ¬¬л'); readln; end; end; end end. осталось 3 процедуру только сделать... ... |
Текстовая версия | 19.09.2024 20:26 |