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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2009, 19:40   #1
MaXoN66613
Пользователь
 
Регистрация: 09.06.2009
Сообщений: 28
По умолчанию

добрый день, пытался написать программу но до ума что то довести не могу, мозгов не хватает...
надеюсь на вашу помощ! За ранее благодарен!
вот задание
в линейном списке Даны натуральное число n и символы s1, s2,..., sn. Получить символы, принадлежащие последовательности s1, s2,..., sn, которые входят в нее по одному разу

Код:
program MaX;

{$APPTYPE CONSOLE}

uses
  SysUtils, crt32, Math;
  
type
  PElement = ^TypeElement;
  TypeElement = record
    Data: integer;
    Next: PElement;
  end;
var
  x: integer;
  ptrHead,ptrHead2: PElement;
  ptrCurrent: PElement;

 {Dobovlenie Elementa}
procedure Ins_LineSingleList(DataElem: integer;
                             var ptrHead, ptrCurrent: PElement);
  var
  ptrAddition: PElement;
begin
  New(ptrAddition);
  ptrAddition^.Data := DataElem;
  if ptrHead = nil then begin
    ptrAddition^.Next := nil;
    ptrHead := ptrAddition;
  end else begin
    ptrAddition^.Next := ptrCurrent^.Next;
    ptrCurrent^.Next := ptrAddition;
  end;
  ptrCurrent := ptrAddition;
end;

{Prosmotr Spiska}
procedure Scan_LineSingleList(ptrHead: PElement);
 var
  ptrAddition: PElement;
begin
  ptrAddition := ptrHead;
  while ptrAddition <> nil do begin
    writeln(ptrAddition^.Data, '       ');
    ptrAddition := ptrAddition^.Next;
  end;
end;

function Find_2LineSingleList(DataElem: integer;
                     var ptrHead : PElement): integer;
var
  s4et4ik: integer;
  ptrAddition:PElement;
begin
  s4et4ik :=0 ;
  if (ptrHead <> nil) then begin
    ptrAddition := ptrHead;
    while ptrAddition <> nil do
     begin
         if ptrAddition^.Data = DataElem
         then s4et4ik := s4et4ik +1;
         ptrAddition := ptrAddition^.Next;
     end;
     Find_2LineSingleList := s4et4ik;
  end else begin
    Find_2LineSingleList:= -1;
     end;
end;
процедуры вроде правельно составил, а вот с выводом не сооброжу, подскажите каким оброзомэто это сделать, ато я уже чтото запутался
"Я, знаю то, что ни чего не знаю, а вы не знаете даже этого" (с)Сократ

Последний раз редактировалось Stilet; 11.06.2009 в 13:04.
MaXoN66613 вне форума Ответить с цитированием
Старый 11.06.2009, 13:22   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Хм... Насколько я понял твой код, Find_2LineSingleList ищет повтор.
Вот и прекрасно:
Код:
procedure Scan_LineSingleList(ptrHead: PElement);
 var
  ptrAddition: PElement;
begin
  ptrAddition := ptrHead;
  while ptrAddition <> nil do begin
   if Find_2LineSingleList(...че тут надобно писать)=-1 then
     writeln(ptrAddition^.Data, '       ');
    ptrAddition := ptrAddition^.Next;
  end;
end;
Но я всетки думаю что этот код тебе еще аукнится... Не очень он кузявый на первый взгляд...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.06.2009, 14:54   #3
MaXoN66613
Пользователь
 
Регистрация: 09.06.2009
Сообщений: 28
По умолчанию

да, ты правильно понял. я еще плох в программировании по этому... вот, спасибо за подсказку, буду думать дальше
"Я, знаю то, что ни чего не знаю, а вы не знаете даже этого" (с)Сократ
MaXoN66613 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с поиском в списке Freez Общие вопросы C/C++ 1 21.05.2009 12:51
Ник в списке присутствующих Sibedir О форуме и сайтах клуба 2 29.09.2008 18:18
поиск IP в списке TaTT DoGG PHP 6 13.08.2008 18:53
количество фамилий в списке Гуля Паскаль, Turbo Pascal, PascalABC.NET 8 29.04.2008 13:01
Пусто в выпадающем списке? ZORRO2005 Microsoft Office Excel 6 10.01.2008 11:59