Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- type
- pNode = ^TNode;
- TNode = record
- Value: integer;
- Next: PNode;
- end;
- var
- First: pnode;
- Temp: pnode;
- v, i: integer;
- procedure spisok();
- begin
- First := nil;
- repeat
- write('Введите значение нового элемента (0 для выхода):');
- readln(v);
- if First = nil then
- begin
- new(Temp);
- First := Temp;
- end else
- begin
- New(Temp^.Next);
- Temp := Temp^.Next;
- end;
- Temp^.Value := v;
- until v = 0;
- i := 0;
- Temp^.Next := nil;
- Temp := First;
- while (Temp^.Value <> 0) do
- begin
- if (Temp^.Value <> 0) then
- writeln(Temp^.Value);
- Temp := Temp^.Next;
- i := i + 1;
- end;
- if (i = 0) then
- writeln('Нет элементов.');
- end;
- procedure vstavka();
- var
- a1, j: integer;
- begin
- if (i > 0) then
- begin
- write('Введите число а1:');
- readln(a1);
- j := 0;
- while first <> nil do
- begin
- if(first ^.Value <> 0) then
- write(first^.Value, ' ');
- if (first^.Value > 0) then
- begin
- j := j + 1;
- write(' ', a1, ' ');
- end;
- first := first^.next;
- end;
- if(j = 0) then
- begin
- writeln();
- writeln('Нет вставок.');
- end;
- end
- else
- writeln('Ну, и куда ты вставляешь A1?');
- end;
- procedure sortirovka();
- var
- k: integer;
- flag: boolean;
- begin
- flag := true;
- while (flag = true) do
- begin
- if(first^.Value > 0) then
- begin
- flag := false;
- while (first^.Value <> 0) do
- begin
- if(first^.value < first^.next^.value) then
- begin
- k := first^.value;
- first^.value := first^.Next^.Value;
- first^.Next^.Value := k;
- end;
- first^.Value := first^.Next^.Value;
- end;
- end
- else
- first := first^.Next;
- end;
- while(first <> nil) do
- begin
- writeln(first^.Value);
- first := first^.Next;
- end;
- end;
- begin
- spisok();
- vstavka();
- sortirovka();
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement