Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [delphi] поиск в односвязном списке


Автор: karpyssa 20.12.2009, 16:36
Помогите пожалуйста справиться с задачей.
с клавиатуры построчно вводят числа больше 0 , но меньше 100 
ввод оканчивается 0. вывести  все числа меньше 50 в порядке появления.
описание списка
type
   Tspis=^Telem;
   Telem = record
             chislo: real;
             next: Tspis;
           end;
var
   head, spis, elem: Tspis;
   c: real;

Автор: t_gran 21.12.2009, 05:55
Код

type
   TList= ^TNode;
   TNode= record
      digit: byte;
      next: TList;
   end;

{------------------------------------------------}
procedure AddInList (var theList: TList; theDigit: byte);
var
   node: TList;
begin
   new(node);
   node^.digit:= theDigit;
   node^.next:= theList;
   theList:= node;
end;
{------------------------------------------------}
procedure PrintList (theList: TList; theLimit: byte);
begin
   while (theList <> nil) do
   begin
      if (theList^.digit < theLimit) then
         write(theList^.digit, ' ');
      theList:= theList^.next;
   end;
end;
{------------------------------------------------}
var
   list: TList;
   digit: byte;
begin
   list:= nil;
   repeat
      readln(digit);
      if (0 < digit) and (digit < 100) then
         AddInList(list, digit);
   until (digit = 0);
   PrintList(list, 50);
end.

Автор: karpyssa 21.12.2009, 11:35
Спасибо огромное, работает просто супер smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)