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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.02.2009, 18:35   #1
pulsar
 
Регистрация: 19.02.2009
Сообщений: 4
По умолчанию Динамические данные. Списки.

Здравствуйте. Необходима ваща помощь. В институте задали ЛР на тему "Динамические данные. Списки.".
Вот само задание:
Если слово содержит более четырех букв, то удалить из него три буквы, непосредственно предшествующие последней букве слова. Тип списка: однонаправленный.
Совсем не могу понять как решить задание с помощью этих списков. Если не затруднит к коду программы прилагать коментарий=)
Подобной темы не нашел, если пропустил - извинитиляюсь
pulsar вне форума Ответить с цитированием
Старый 19.02.2009, 19:07   #2
Armorer
Подтвердите свой е-майл
 
Регистрация: 07.04.2007
Сообщений: 120
По умолчанию

Действительно непонятно при чем тут списки=) Может быть в списке хранятся эти слова, по нему надо пройтись и преобразовать все слова по предложенному алгоритму?

Как я понял из вопроса проблем с организацией списка и работой со строками нет, проблема только как применить это.

Если так то:
Сначала просто напиши функцию которая на входе принимает строку, делает
Цитата:
Если слово содержит более четырех букв, то удалить из него три буквы, непосредственно предшествующие последней букве слова.
и возвращает результат.

Останется просто пройти по списку и в каждом элементе преобразовывать строки. Естественно, в начале список лучше заполнить какими нибудь значениями.
Armorer вне форума Ответить с цитированием
Старый 19.02.2009, 19:16   #3
capta1n
Форумчанин
 
Аватар для capta1n
 
Регистрация: 06.12.2008
Сообщений: 613
По умолчанию

Код:
program xd;

type
  link = ^linelink;
  linelink = record
              c : char;
              next : link
             end;

var
 top,p : link;
 str1 : string;
 i : byte;

 procedure create_stack ( var t : link; ch : char );
 begin
   new(t);
   t^.c:=ch;
   t^.next:=nil
 end;

 procedure add_stack ( var t : link; ch : char );
 var
  tp : link;
 begin
   new (tp);
   tp^.c:=ch;
   tp^.next:=t;
   t:=tp
 end;

 procedure delete3 ( var t : link );
 var
  x : link;
 begin
   x:=t^.next;
   t^.next:=t^.next^.next^.next^.next;
   dispose (x^.next^.next);
   dispose (x^.next);
   dispose (x);
 end;

begin
  writeln ('Vvedite stroku: ');
  readln (str1);
  top:=nil;
  if length(str1) > 4 then
  begin
    for i:=1 to length(str1) do
     if top=nil then create_stack ( top, str1[i] )
                else add_stack ( top, str1[i] );
    delete3 ( top );
    p:=top;
    str1:='';
    while p<>nil do
    begin
      str1:=p^.c+str1;
      p:=p^.next
    end
  end;

  writeln ('Vasha novaya stroka: ');
  writeln (str1);
  readln;

end.
В программе вводится строка, если в строке больше 4 букв, то создается стек ( один из видов однонаправленных линейных списков ) на основе букв строки, из него удаляется по условию три предпоследих буквы и стек выводится в строковую переменную;; иначе если в строке не больше 4 букв, то строка просто выводится

Последний раз редактировалось capta1n; 19.02.2009 в 19:20.
capta1n вне форума Ответить с цитированием
Старый 19.02.2009, 19:31   #4
pulsar
 
Регистрация: 19.02.2009
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Armorer Посмотреть сообщение
Как я понял из вопроса проблем с организацией списка и работой со строками нет, проблема только как применить это.
К сожалению именно организация списка и есть главная проблема =) Однако спасибо за совет.
capta1n, благодарю!
pulsar вне форума Ответить с цитированием
Старый 19.02.2009, 19:38   #5
capta1n
Форумчанин
 
Аватар для capta1n
 
Регистрация: 06.12.2008
Сообщений: 613
По умолчанию

пожалуйста, только "спасибо" на форуме делается так: нажимаешь на весы под моей аваторкой - вот тебе и благодарность
capta1n вне форума Ответить с цитированием
Старый 19.02.2009, 19:49   #6
pulsar
 
Регистрация: 19.02.2009
Сообщений: 4
По умолчанию

Сделано =)
pulsar вне форума Ответить с цитированием
Старый 23.02.2009, 16:12   #7
pulsar
 
Регистрация: 19.02.2009
Сообщений: 4
По умолчанию

Ребят, а блок-схему не набросатете?
Ибо в силу своей криворукости, она у мну не получается...
pulsar вне форума Ответить с цитированием
Ответ


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



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