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

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

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

 
 Ответить  Открыть новую тему 
> Список и рекурсия
сообщение
Сообщение #1


Фанат Delphi
**

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

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


Дан список символов. Необходими расположить элементы в обратном порядке. Желательно использовать рекурсию, но можно и без нее. Помогите, пжлста..Никак не могу написать эту процеруру give_rose.gif
Код
Type
  point = ^MyWord;
  MyWord = record
    ch: char;
    next: point
  end;
var
   slovo:point;


--------------------
ICQ (384-043-857)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Покажи, как пытался, и как создавал вообще список...

(Думаешь, под новым ником ты неузнаваем? Ошибаешься...)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Фанат Delphi
**

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

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


Цитата(volvo @ 11.12.2006 19:02) *

Покажи, как пытался, и как создавал вообще список...

Код
uses crt;
Type
  point = ^MyWord;
  MyWord = record
    ch: char;
    next: point
  end;
var
   slovo:point;

procedure Print (first: point);
Var r: point;
begin
  R:= first;
  write('C/\OBO = ');
  While r<>nil do
    begin
      Write (r^.ch);
      R:=r^.Next;
  end;
  writeln;
end;

procedure Vvod(var first:point);
var r, last:point;
begin
  first:= nil; last := nil;

  writeln('HABEPuTE C/\OBO C "." HA KOHCE ');
  while r^.ch <> '.' do begin
      new(r);
      r^.next := nil;
      read(r^.ch);

      if first = nil then first := r
      else last^.next := r;

      last := r;
  end;
end;
{---------------------------------------------------------------------------}
begin
clrscr;
  vvod(slovo);
  print(slovo);
  {PrintReverse(slovo);}  {сосбтвенно это искомая процедура}
  readkey
  end.


Цитата
(Думаешь, под новым ником ты неузнаваем? Ошибаешься...)

гы гы гы...Да, я и не хотел прятаться...Просто нужно было срочно на форум good.gif Может лучше старый разблокируешь? Я учел свои ошибки и больше так делать не буду nea.gif

Сообщение отредактировано: NTL -


--------------------
ICQ (384-043-857)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






no1.gif Не пойдет вот этот кусок:
  writeln('HABEPuTE C/\OBO C "." HA KOHCE ');
while r^.ch <> '.' do begin ...

У тебя пока R не инициализирован... На FPC тут же выбило Segmentation Fault, в Турбо паскале нельзя доверять результату этой процедуры... Поменяй на такое:
  writeln('HABEPuTE C/\OBO C "." HA KOHCE ');
repeat
new( r );
r^.next := nil;
read(r^.ch);

if first = nil then first := r
else last^.next := r;

last := r;
until r^.ch = '.';

, тогда ошибка уйдет, и больше не вернется smile.gif ...

Ну, а твоя процедура должна быть такой, например:
procedure printreverse(first: point);
begin
if first^.ch <> '.' then
printreverse(first^.next);

write(first^.ch);
end;
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Фанат Delphi
**

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

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


мистика какая-то smile.gif smile.gif smile.gif Большое спасибо! Респект


--------------------
ICQ (384-043-857)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 18.01.2021 8:29
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name