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

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

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

> R-список, Нужна помощь
Dunkel_L
сообщение 13.12.2005 14:47
Сообщение #1


Новичок
*

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

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


Нужно написать процедуру в R-списе(info:string) (кольцевой список), которая меняет местами слова с четными номерами и нечетными (1-е со 2-м и т.д.)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 13.12.2005 14:53
Сообщение #2


Гость






Твою реализацию кольцевого списка - в студию !!! smile.gif
 К началу страницы 
+ Ответить 
Dunkel_L
сообщение 13.12.2005 15:13
Сообщение #3


Новичок
*

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

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


Код

uses crt;
type ptr=^node;
node=record
info:string;
link:ptr;
end;
var front,fin:ptr;
procedure inqueue(c:string);
var p:ptr;
begin
new(p);
p^.info:=c;
p^.link:=nil;
if fin<>nil then
begin
fin^.link:=p;
end
else
front:=p;
fin:=p;
end;
function outqueue:string;
var p:ptr;
begin
if front<>nil then
begin
outqueue:=front^.info;
p:=front^.link;
dispose(front);
front:=p;
if front=nil then
fin:=nil;
end
else
begin
TextColor(red);
writeln('   Ошибка! Список пуст');
outqueue:=' ';
TextColor(7);
writeln(' Для продолжения работы нажмите Enter '); end
end;
procedure show;
var p,q:ptr;
var inf:string;
begin
q:=front;
repeat
p:=q^.link;
inf:=q^.info;
write(inf,';   ');
q:=p;
until(q=nil);
end;
procedure out;
var p:ptr;
begin
if front<>nil then
repeat
p:=front^.link;
dispose(front);
front:=p;
until(front=nil);
end;
procedure pe(p:ptr);   Вот сама процедура
var
r:ptr;
begin
if front<>nil then
begin
new(r);
r^.info:=p^.info;
r^.link:=p^.link;
p^.link:=r;
pe(r^.link);
end;
end;
----конец----
var n,i:integer;
var k,z:string;
begin
front:=nil;
fin:=nil;
repeat
clrscr;
writeln('Выберете деиствие');
writeln('1-Ввести элемент');
writeln('2-Убрать элемент');
writeln('3-Посмотреть все');
writeln('4-Перестановка');
writeln('5-Выход');
writeln;
write('   Введите команду и нажмите ВВОД:   ');
readln(n);
if n=1 then
begin
writeln('   Введите символ');
write('   ');
readln(k);
inqueue(k);
end
else
if n=2 then
begin
write(outqueue);
readln;
end
else
if n=3 then
begin
write('   Список:   ');
show;
readln;
end
else
if n=4 then
begin
pe(front);
end
until(n=5);
out;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



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