Advertisement
Guest User

Untitled

a guest
Jan 28th, 2015
260
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 2.06 KB | None | 0 0
  1. type
  2.   pNode = ^TNode;
  3.   TNode = record
  4.     Value: integer;
  5.     Next: PNode;
  6.   end;
  7.  
  8. var
  9.   First: pnode;
  10.   Temp: pnode;
  11.   v, i: integer;
  12.  
  13. procedure spisok();
  14. begin
  15.   First := nil;
  16.   repeat
  17.     write('Введите значение нового элемента (0 для выхода):');
  18.     readln(v);
  19.     if First = nil then
  20.     begin
  21.       new(Temp);
  22.       First := Temp;
  23.     end else
  24.     begin
  25.       New(Temp^.Next);
  26.       Temp := Temp^.Next;
  27.     end;
  28.     Temp^.Value := v;
  29.   until v = 0;
  30.   i := 0;
  31.   Temp^.Next := nil;
  32.   Temp := First;
  33.   while (Temp^.Value <> 0) do
  34.   begin
  35.     if (Temp^.Value <> 0) then
  36.       writeln(Temp^.Value);
  37.     Temp := Temp^.Next;
  38.     i := i + 1;
  39.   end;
  40.   if (i = 0) then
  41.     writeln('Нет элементов.');
  42. end;
  43.  
  44. procedure vstavka();
  45. var
  46.   a1, j: integer;
  47. begin
  48.   if (i > 0) then
  49.   begin
  50.     write('Введите число а1:');
  51.     readln(a1);
  52.     j := 0;
  53.     while first <> nil do
  54.     begin
  55.       if(first ^.Value <> 0) then
  56.         write(first^.Value, ' ');
  57.       if (first^.Value > 0) then
  58.       begin
  59.         j := j + 1;
  60.         write(' ', a1, ' ');
  61.       end;
  62.       first := first^.next;
  63.     end;
  64.     if(j = 0) then
  65.     begin
  66.       writeln();
  67.       writeln('Нет вставок.');
  68.     end;
  69.   end
  70.   else
  71.     writeln('Ну, и куда ты вставляешь A1?');
  72. end;
  73.  
  74. procedure sortirovka();
  75. var
  76.   k: integer;
  77.   flag: boolean;
  78. begin
  79.   flag := true;
  80.   while (flag = true) do
  81.   begin
  82.     if(first^.Value > 0) then
  83.     begin
  84.       flag := false;
  85.       while (first^.Value <> 0) do
  86.       begin
  87.         if(first^.value < first^.next^.value) then
  88.         begin
  89.           k := first^.value;
  90.           first^.value := first^.Next^.Value;
  91.           first^.Next^.Value := k;
  92.         end;
  93.         first^.Value := first^.Next^.Value;
  94.       end;
  95.     end
  96.     else
  97.       first := first^.Next;
  98.   end;
  99.   while(first <> nil) do
  100.   begin
  101.     writeln(first^.Value);
  102.     first := first^.Next;
  103.   end;
  104. end;
  105.  
  106.  
  107. begin
  108.   spisok();
  109.   vstavka();
  110.   sortirovka();
  111.  
  112. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement