Advertisement
Guest User

Untitled

a guest
Apr 20th, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.70 KB | None | 0 0
  1. type Zveno = Record  
  2.   U: ^Zveno;
  3.   BT: Integer;
  4.   end;
  5.  
  6. procedure addLast(var First: ^Zveno; X: Integer);
  7. Var Vsp, Tmp : ^Zveno;
  8. Begin
  9. New(Vsp);
  10. Vsp^.BT := X;
  11. Vsp^.U:= Nil;
  12. If First = Nil Then First := Vsp
  13. Else
  14. Begin
  15. Tmp := First;
  16. While (Tmp^.U) <> Nil Do Tmp := Tmp^.U;
  17. Tmp^.U := Vsp;
  18. End;
  19. End;
  20.  
  21. Procedure Print(First : ^Zveno);
  22. Begin
  23. var temp: ^Zveno = First;
  24. If temp = Nil Then writeln('Пустой список!')
  25. Else
  26. Begin
  27. While temp <> Nil Do
  28. Begin
  29. writeln('Значение элемента: ', temp^.BT, '; Адрес элемента: ', @temp^.BT);
  30. temp := temp^.U;
  31. End;
  32. End;
  33. WriteLn
  34. End;
  35.  
  36.  
  37. function searchFirstPositive(nachalo: ^Zveno):^integer;
  38. begin
  39.   var temp: ^Zveno = nachalo;
  40.  
  41.   while temp <> nil do begin
  42.     if temp^.BT > 0 then begin
  43.       searchFirstPositive := @temp^.BT;
  44.       exit();
  45.     end;
  46.     temp := temp^.U;
  47.   end;
  48.  
  49.   searchFirstPositive := nil;
  50. end;
  51.  
  52. var
  53. chislo : integer;
  54. nachalo : ^Zveno;
  55. begin
  56.   nachalo := Nil;
  57.   writeln('Вывод адреса первого положительного значения в списке');
  58.   writeln('Ввод элементов списка(0 - конец ввода):');
  59.   read(chislo);
  60.   while chislo <> 0 do
  61.   begin
  62.   addLast(nachalo, chislo);
  63.   read(chislo);
  64.   end;
  65.   if nachalo = nil then writeln('Список пуст.')
  66.   else
  67.   if searchFirstPositive(nachalo) = nil then
  68.   begin
  69.     Print(nachalo);
  70.     writeln('В списке нет положительных элементов')
  71.   end
  72.   else begin
  73.     Print(nachalo);
  74.     writeln('Адрес первого положительного элемента в списке - ', searchFirstPositive(nachalo));
  75.   end;
  76. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement