IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Детская считалочка, двунаправленные списки
TOPEHTO
сообщение 18.11.2006 0:06
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 87
Пол: Мужской

Репутация: -  0  +


Привет народ! тут вот такая задачка:
должна быть реализованная с помощью двунаправленного списка...пользователь вводит последовательность чисел("номер ребенка в круге") и число (размер считалочки) и начиная с того числа которое он ввел, по часововй стрелочки идет отсчет, то число, на котором останавливает счет-запоминается и удаляется из последовательности и счет продолжается...
вообщем пример: если вводятся числа 1,2,3,4,5,6,7,8,9,10 и размер считалочки 4...то ответ должен быть таким: 4,8,2,7,3,10,9,1,6,5 если Я не ошибся...
Ума не приложу как делать эту прогу, есть только процедура заполнения, но по словам препода она слишком простая... norespect.gif ...
Если кто может, или тут была прогу-помогите ПЛИЗ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
Ответов(1 - 19)
volvo
сообщение 18.11.2006 0:24
Сообщение #2


Гость






задача "считалка"
Казнь

(обе реализации - с массивом... На списки попробуй переделать сам...)
 К началу страницы 
+ Ответить 
TOPEHTO
сообщение 18.11.2006 0:48
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 87
Пол: Мужской

Репутация: -  0  +


Окей, спасиБо огромное... smile.gif ...

ПРо казнь программу понял туго, да и разбиратсья в ней неохота+ считалочка мне подходит на 100% тока форму вывода надо поменять, чтобы в итоге выводил 1 строчку, или так оставить еще не решил...
В чужих прогах разбираюсь плохо, да и в программировании слабоват, постараюсь конечно, но обещать не могу что получиться-но ПОПРОБУЮ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TOPEHTO
сообщение 18.11.2006 19:49
Сообщение #4


Пионер
**

Группа: Пользователи
Сообщений: 87
Пол: Мужской

Репутация: -  0  +


Собрал все свои мозги в кучу...что-то не получается, даже 1% переделать...
А сразу со списками нет? просто знакомых программистов не имею, а вас просить не удобно...sad.gif...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 19.11.2006 0:38
Сообщение #5


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


э... не поняла. ты нас НЕ просишь (раз неудобно)? или просишь?

в общем, FAQ по спискам читал? Создать список сможешь (пока без реализации алгоритма считалочки - просто создать)?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TOPEHTO
сообщение 19.11.2006 0:53
Сообщение #6


Пионер
**

Группа: Пользователи
Сообщений: 87
Пол: Мужской

Репутация: -  0  +


мисс_граффити
Прошу конечно, просто неудобно у Вас время воровать своими детскими прогами... smile.gif ...
Процедуру создания списка писали на лекции, так что...наверное написать и отладить смогу...еще есть распечатка, но со слов парня, который её писал(он просто разбирается в программировании) это "Зеленая демо-бета версия" так что до ума её еще доводить и доводить... nea.gif ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 19.11.2006 1:42
Сообщение #7


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


Ну вот smile.gif Пробуй. Когда разберешься с этим - можно будет говорить о реализации какого-либо алгоритма обработки (переделки считалочки).
З.Ы. "Детские" - это, судя по всему, 2 курс?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TOPEHTO
сообщение 19.11.2006 1:55
Сообщение #8


Пионер
**

Группа: Пользователи
Сообщений: 87
Пол: Мужской

Репутация: -  0  +


АГА... wacko.gif ...откуда ты знаешь?... smile.gif ...
по теме: вообщем создание списка постараюсь зава сделать... unsure.gif ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TOPEHTO
сообщение 19.11.2006 15:20
Сообщение #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;

Самое основное вспомнил, что начали мы её реализовавыть через циклические списки...вот процедура создания списка...пока больше ничего придумать не могу...ПОМОГИТЕ плиз... mega_chok.gif ...

Сообщение отредактировано: TOPEHTO - 19.11.2006 15:21
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 19.11.2006 18:08
Сообщение #10


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


так циклические или двунаправленные? или циклические двунаправленные?
насколько я вижу,
zap=record
info:integer
link:lob
end;

содержит только 1 указатель...

на циклических двунаправленный алгоритм вроде как будет намного проще, чем на массивах.

Сообщение отредактировано: мисс_граффити - 19.11.2006 18:10


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TOPEHTO
сообщение 19.11.2006 18:34
Сообщение #11


Пионер
**

Группа: Пользователи
Сообщений: 87
Пол: Мужской

Репутация: -  0  +


Вообщем мне нуна:
или всю прогу на двунаправленных списках...
или всю на циклических...
3-го не дано... smile.gif ...но желательно черех двунаправленные сделать, то проца которую Я выложил, теоритически через циклические... wacko.gif ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TOPEHTO
сообщение 20.11.2006 22:25
Сообщение #12


Пионер
**

Группа: Пользователи
Сообщений: 87
Пол: Мужской

Репутация: -  0  +


Ну товарищи помогите плиз...почитал в FAQ начал творить потихоньку, но мозга не хватает...до следущего понедельника надо помочь... wink.gif ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 20.11.2006 22:59
Сообщение #13


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


Что не получается? Спрашивай конкретно.
Через циклические двусвязные проще всего.
Вопрос такой: куда выводить инфу? Просто печатать номера, или сохранять в список?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TOPEHTO
сообщение 20.11.2006 23:43
Сообщение #14


Пионер
**

Группа: Пользователи
Сообщений: 87
Пол: Мужской

Репутация: -  0  +


Зава скину то что получилось, щас флехи нет рядом...
а вывод нужен 2-х типов...первый после того как ввел, т.е.информационная часть(номер дитя)...второй вот порядок их выбывания, т.е. примерно мона и такой вывод как в задачке с массивами, который выложил volvo, но луче сразу выводить число которое выбыло и все...
Выложить-Я то выложу, что сумел сотворить, но...на этом весь мой мозг закончитсяsad.gifsad.gifsad.gif
помогите уж тода процами какими...
Совсем забыл: должно быть сделано меню,
1-Ввод данных(ну там кол-во детей, номер каждого впринципе мона и авто заполнение, если мона сделать, и сама считалочка)
2-Вывод того что тока что заполнил
3-Вывод после считалочки
Если кто чем может помогите плиз... wink.gif ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 21.11.2006 1:41
Сообщение #15


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


что тебе нужно сделать для начала:
1. Обеспечить нормальный ввод (это ты вроде как разобрался более-менее. Домучивай)
2. Научиться "ходить" по списку, чтобы найти исключаемый элемент. Это делается в цикле. Умеешь?
3. Научиться удалять элемент из списка. Это делается при помощи перестановки указателей.

Менюшку и все такое можно сделать потом... пока что нужно создать основу.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TOPEHTO
сообщение 21.11.2006 10:38
Сообщение #16


Пионер
**

Группа: Пользователи
Сообщений: 87
Пол: Мужской

Репутация: -  0  +


Цитата
Обеспечить нормальный ввод (это ты вроде как разобрался более-менее. Домучивай)

Дотворил откомпилировал-выложу на Ваш суд, чтобы глянули как оно... rolleyes.gif ...
Цитата
Научиться "ходить" по списку, чтобы найти исключаемый элемент. Это делается в цикле. Умеешь?

ВОт с этим Вам придется мне помочь... yes2.gif ...
Цитата
Научиться удалять элемент из списка. Это делается при помощи перестановки указателей.

Помойму Я что-то такое написал, но оно для линейных списков...ну тоже выложу...
Прога будет печером, поехал в универ за флехой, надеюсь на вашу помощь... wub.gif ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TOPEHTO
сообщение 21.11.2006 18:14
Сообщение #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{Ћ‘ЌЋ‚ЌЂџ ЏђЋѓђЂЊЊЂ}


Воть...собсна, вроде компилируется, сильно не судите, т.к. в программирование слабоват... yes2.gif ...
Плиз помоги с выводом данных и самой работой проги... mega_chok.gif ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 21.11.2006 19:08
Сообщение #18


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


вообще "хождение" имеет вид примерно такой:
for i:=1 to step-1 do {делаем заданное количество шагов.}
p:=p^.link;{каждый раз переходя на следующий элемент}
writeln(p^.info); {а теперь выводим, на какой элемент указывает p}

поскольку список циклический, можно не волноваться, что p^.link=nil
а вот проверить, чтобы изначально список был не пустой - имеет смысл.

для упрощения алгоритма (если мы работаем с односвязными списками, то есть перейти на предыдущий элемент нет возможности) можно делать на шаг меньше и останавливаться на элементе, предшествующем удаляемому. Это упростит удаление... А вывод примет вид:
writeln((p^.link)^.info)


Сообщение отредактировано: мисс_граффити - 21.11.2006 19:11


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TOPEHTO
сообщение 21.11.2006 19:15
Сообщение #19


Пионер
**

Группа: Пользователи
Сообщений: 87
Пол: Мужской

Репутация: -  0  +


СпасиБо...вы мне ТТТТТТТТТТААААААААААКККККККККК помогли... smile.gif ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 3.12.2006 17:39
Сообщение #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 процедуру только сделать... mega_chok.gif mega_chok.gif mega_chok.gif ...
 К началу страницы 
+ Ответить 

2 страниц V  1 2 >
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 8.08.2025 4:02
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"