Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2008, 20:22   #1
lubafffka
Пользователь
 
Регистрация: 05.11.2008
Сообщений: 46
Восклицание Динамические списки

Символы вводимой с клавиатуры строки сохранить в динамическом списке. Вставить после каждой компоненты списка символ пробела.
lubafffka вне форума Ответить с цитированием
Старый 17.12.2008, 21:28   #2
Whiplash
Пользователь
 
Регистрация: 08.11.2008
Сообщений: 24
По умолчанию

Код:
Program List;
Uses Crt;
Type
  TPtr = ^Element;
  Element = record
    Inf: Char;
    Link: TPtr;
  end;
Var
  Head, ListEnd, P: TPtr; (*Голова, конец списка и вспомогательный указатель*)
  C: Char;
  N, i: Integer;

Procedure Create_List;
Begin
  New(Head);      (*отдельно создаем голову*)
  ReadLn(Head^.Inf);
  Head^.Link:=NIL;
  ListEnd:=Head; (*Присваиваем значение концу списка*)
  for i:=2 to N do
  begin
    New(P);
    ReadLn(P^.Inf);
    P^.Link:=NIL;
    ListEnd^.Link:=P;
    ListEnd:=ListEnd^.Link;
  end;
end;

Procedure Write_List(S: String);
Begin
  Write(S);
  P:=Head;
  while P <> NIL do
  begin
    Write(P^.Inf,' ');
    P:=P^.Link;
  end;
  Write('.');
  WriteLn;
end;

Procedure Insert;
Var X: TPtr; (*Вспомогательный указатель*)
Begin
  P:=Head;
  while P <> NIL do
  begin
    New(X);
    X^.Inf:=#32; (*то же самое, что и ' '*)
    X^.Link:=P^.Link;
    P^.Link:=X;
    P:=X^.Link; (*Через один элемент*)
  end;
end;

Begin
  ClrScr;
  Write('Количество элементов списка: ');
  ReadLn(N);
  Create_List;
  Write_List('Созданный список: ');
  Insert;
  Write_List('После вставки: ');
  ReadLn;
End.
Это было бы смешно, если бы не было так серьезно. "451 по Фаренгейту".
Whiplash вне форума Ответить с цитированием
Старый 17.12.2008, 21:40   #3
lubafffka
Пользователь
 
Регистрация: 05.11.2008
Сообщений: 46
По умолчанию

Спасибочки огромное!!! =))) а потиму он ток 1 символ пишет??????
lubafffka вне форума Ответить с цитированием
Старый 17.12.2008, 21:53   #4
Whiplash
Пользователь
 
Регистрация: 08.11.2008
Сообщений: 24
По умолчанию

1 символ где?))
На выходе?
Это было бы смешно, если бы не было так серьезно. "451 по Фаренгейту".
Whiplash вне форума Ответить с цитированием
Старый 17.12.2008, 21:57   #5
lubafffka
Пользователь
 
Регистрация: 05.11.2008
Сообщений: 46
По умолчанию

прости.. ошиблась.... =))) я узе разобралсь... пасиб огромное... ти мну спас=)))
lubafffka вне форума Ответить с цитированием
Старый 17.12.2008, 21:58   #6
Whiplash
Пользователь
 
Регистрация: 08.11.2008
Сообщений: 24
По умолчанию

Прости, невнимательно прочитал задание.
Тогда можно так:
Код:
Procedure Create_List;
Begin
  New(Head);
  Head^.Inf:=S[1];
  Head^.Link:=NIL;
  ListEnd:=Head;
  for i:=1 to Length(S)-1 do
  begin
     New(P);
    P^.Inf:=S[i];
    P^.Link:=NIL;
    ListEnd^.Link:=P;
    ListEnd:=ListEnd^.Link;
  end;
end;
Это было бы смешно, если бы не было так серьезно. "451 по Фаренгейту".
Whiplash вне форума Ответить с цитированием
Старый 17.12.2008, 21:59   #7
Whiplash
Пользователь
 
Регистрация: 08.11.2008
Сообщений: 24
По умолчанию

Рад был помочь))
Это было бы смешно, если бы не было так серьезно. "451 по Фаренгейту".
Whiplash вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамические списки Ольчик Паскаль, Turbo Pascal, PascalABC.NET 4 15.01.2012 14:33
сохранение структуры (динамические списки очередей) в файле AlenaZ Помощь студентам 2 09.06.2008 20:14
Помогите исправить косяк в задаче на динамические переменные списки Taisja Помощь студентам 2 31.05.2008 21:49