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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2009, 01:18   #1
Saawa
 
Регистрация: 02.12.2009
Сообщений: 4
Вопрос Динамические списки

С клавиатуры вводится последовательность символов. Исключить символы, повторяющиеся бо-лее 2-х раз. Исключить из последовательности символ с заданным номером.

P.S. Написать программу для ввода вывода, получилось быстро и легко...а вот как их искать и удолять озадачило... помогите пожалуйста
p.S.S Текстро программы если можно на Паскале) Т.К. Владею Паскалем, Бейсиком, и основами БрейнФака))))
Saawa вне форума Ответить с цитированием
Старый 02.12.2009, 01:34   #2
notHaker
Форумчанин
 
Аватар для notHaker
 
Регистрация: 01.12.2009
Сообщений: 569
По умолчанию

А причём здесь динамические списки??

А если к делу то :
1) Делаешь массив со символами.
2) Делаешь второй массив флагов (всего 255 значений может быть )
3) При вводе нового обращаешся в массив флагов[новый символ] - "встречался ли он ранее?", если нет, то ставишь флаг что уже был, помещаешь в массив со символами и ждёшь новый символ,
если стоит флаг, что уже был, то забиваешь на него и ждёшь новый

реализовать другой алгоритм можна, НО он будет оооччччень медленный

кода не будет тк ты свой повесит поленился
Код - это работа, а работа стоит денег.

pz-game.ru. 2d зомби-сурвивал для олдфагов.

Последний раз редактировалось notHaker; 02.12.2009 в 05:03. Причина: затупил, ночь на дворе, а спать охота :)
notHaker вне форума Ответить с цитированием
Старый 02.12.2009, 18:15   #3
Saawa
 
Регистрация: 02.12.2009
Сообщений: 4
По умолчанию

Ну я студент, и пишу программы которые нас застовляют, и говорят как их реализовать) Вот поэтому и динамическеие списки))
Мой код :
Код:
Program Ex12;
{$APPTYPE CONSOLE}
Uses  SysUtils;
Type point=^a;
     a=record
          c:char;
          p:point;
         end;
Var r,q,f:point;
     b:a;
     e:char;
     n:integer;
begin
n:=1;
new(r);
writeln('vvedite simvol');
r^.p:=nil;
new(q);
readln(q^.c);
q^.p:=r;
new(f);
f^.p:=q; // Круговой список
	while q.c<>'1' do
        begin
          new(q);
          readln(q^.c);
          q^.p:=f^.p;
          f^.p:=q;
          n:=n+1 // n = количество символов
        end;
While q^.c<>' ' do // Поиск одинакового символа
      Begin
        e:=q^.c;
        q:=q^.p;
        if e=q^.c then
          begin
            q^.c:=' ';
            q:=q^.p;
          end
        else q:=q^.p;
      End;
While n<>0 do //ввывод
      Begin
        writeln(q^.c);
        q:=q^.p;
        n:=n-1;
      End;
readln;
end.
p.S. Работает если "убить" удаление
Saawa вне форума Ответить с цитированием
Старый 02.12.2009, 18:23   #4
notHaker
Форумчанин
 
Аватар для notHaker
 
Регистрация: 01.12.2009
Сообщений: 569
По умолчанию

Тупость - использовать динамический список для символов... вабще бред... в обучающих целях можно было придумать что нибудь поинтереснее... ща раберёмся...

ЗЫ: што за дурной тон писать переменные буквами цифрами, без смысловой нагрузки : q,p,s,sd,a1,a123,qwe? Писали бы вы большие проги так, ох бы и намаялись... сам чёрт ногу сломит, аж в глазах рябит.
Код - это работа, а работа стоит денег.

pz-game.ru. 2d зомби-сурвивал для олдфагов.

Последний раз редактировалось notHaker; 02.12.2009 в 23:33.
notHaker вне форума Ответить с цитированием
Старый 02.12.2009, 18:35   #5
notHaker
Форумчанин
 
Аватар для notHaker
 
Регистрация: 01.12.2009
Сообщений: 569
По умолчанию

Цитата:
Сообщение от Saawa Посмотреть сообщение
Ну я студент, и пишу программы которые нас застовляют, и говорят как их реализовать) Вот поэтому и динамическеие списки))
Мой код :
Код:
Program Ex12;
{$APPTYPE CONSOLE}
Uses  SysUtils;
Type point=^a;
     a=record
          c:char;
          p:point;
         end;
Var r,q,f:point;
     b:a;
     e:char;
     n:integer;
begin
n:=1;
new(r);
writeln('vvedite simvol');
r^.p:=nil;
new(q);
readln(q^.c);
q^.p:=r;
new(f);
f^.p:=q; // Круговой список
	while q.c<>'1' do
        begin
          new(q);
          readln(q^.c);
          q^.p:=f^.p;
          f^.p:=q;
          n:=n+1 // n = количество символов
        end;
While q^.c<>' ' do // Поиск одинакового символа
      Begin
        e:=q^.c;
        q:=q^.p;
        if e=q^.c then
          begin
            q^.c:=' ';
            q:=q^.p;
          end
        else q:=q^.p;
      End;
While n<>0 do //ввывод
      Begin
        writeln(q^.c);
        q:=q^.p;
        n:=n-1;
      End;
readln;
end.
p.S. Работает если "убить" удаление
опять двадцать пять... держи массив с флагами повтора и адреса предыдущего символа. и тебе проще и проге быстрее и препода на мыло . пробежался по списку ОДИН раз и вырезал символы (скрепление адресов - проще пареной репы).

кстати ссори, не врубил твою задачу сначала, ноч была...
Код - это работа, а работа стоит денег.

pz-game.ru. 2d зомби-сурвивал для олдфагов.
notHaker вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамические списки Ольчик Паскаль, Turbo Pascal, PascalABC.NET 4 15.01.2012 14:33
Динамические списки tgig Паскаль, Turbo Pascal, PascalABC.NET 6 30.06.2009 14:53
Динамические списки MyQwErTy Помощь студентам 3 14.04.2009 20:08
Динамические списки lubafffka Паскаль, Turbo Pascal, PascalABC.NET 6 17.12.2008 21:59