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

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

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

2 страниц V < 1 2  
 Ответить  Открыть новую тему 
> Детская считалочка, двунаправленные списки
TOPEHTO
сообщение 3.12.2006 21:02
Сообщение #21


Пионер
**

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

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


Ребят ну помогите плиз...Я в начале обрадовался, когда мии_графити идею дала, но не воплотилась она у мну в жизнь...Завтра сдавать надо, плиз помогите... wink.gif ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TOPEHTO
сообщение 4.12.2006 19:24
Сообщение #22


Пионер
**

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

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


Все сдал...всем спасибо кто помог... blum.gif ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
iceman
сообщение 8.05.2007 19:09
Сообщение #23





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

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


Всем привет!
У меня точно такая же задача. Написал через однонаправленный кольцевой список. У меня вот так (пока черновой вариант) получилось:

uses crt;
type
point=^item;
item=record
number:integer;
next:point;
end;
var
first,r:point;
n,k,l,e:integer;
procedure create(n:integer; var first,r:point);
var
m:integer;
begin
m:=n;
n:=n-1;
first:=nil;
while n>0 do
begin
new®;
r^.next:=first;
r^.number:=n;
first:=r;
n:=n-1;
end;
while r^.next<>nil do
begin
r:=r^.next;
end;
new(r^.next);
r^.next^.number:=m;
r^.next^.next:=first;
end;
procedure print(e:integer;first:point);
var
r:point;
i:integer;
begin
r:=first;
for i:=1 to e do
begin
write(' ',r^.number);
r:=r^.next;
end;
end;
procedure main(first,r:point; n,k:integer);
var
i,a:integer;
q,curr:point;
begin
writeln;
curr:=first;
for a:=1 to n do
begin
i:=0;
for i:=1 to k-1 do
begin
r:=r^.next;
end;
q:=r^.next;
r^.next:=r^.next^.next;
q^.next:=nil;
dec(e);
print(e,r);
writeln;
end;
end;
begin
clrscr;
write('Vvedite n: ');readln(n);
write('Vvedite k: ');readln(k);
create(n,first,r);
e:=n;
write('Kolco: ');
print(e,first);
writeln;
main(first,r,n,k);
readkey;
end.


В общем дело вот в чем, результат(n=7,k=4):

1 2 3 4 5 6 7

2 4 5 6 7 1
6 1 2 4 5
4 6 1 2
2 6 1
2 1
1

Т.е. первое значение, почему-то определяется неправильно. Прошу помощи. Заранее благодарен.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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