Program Spisok; Uses CRT; Type TData=integer; PLink=^TElement; TElement=Record Data:TData; Link:PLink; End; {----------------} Procedure InPutList(Var List:PLink); Var ElNew:PLink; Value:TData; i,n:Integer; Begin ClrScr; WriteLn('vvedite kol-vo elementov spiska '); ReadLn(n); For I:=1 To n Do Begin WriteLn('vvedite ',i,' element'); Read(value); New(ElNew); ElNew^.Data:=Value; ElNew^.Link:=List; List:=ElNew; End; End; {----------------} Procedure OutPutList(List:PLink); Var i:integer; Begin WriteLn('element spiska '); While List <> NIL Do Begin Write(List^.Data,' '); List:=List^.Link; End; WriteLn; End; {----------------} procedure insert(var p_now:PLink; const data:TData); var p_new:PLink; begin new(p_new); p_new^.data := data; p_new^.link := p_now^.link; p_now^.link := p_new; end; {----------------} Var List1,Elem,NewElem:PLink; o, i,n,p:Integer; ff:boolean; {----------------} Begin InPutList(List1); OutPutList(List1); Write('wedite P='); Readln(P); Write('wedite O='); Readln(O); Elem:=List1; i:=0; {----------------------------------} While Elem <> NIL Do Begin If Elem^.Data>p Then Begin insert(Elem,O); OutPutList(NewElem); i:=i+1; Writeln('*****',i,'*****'); End; Elem:=Elem^.Link; End; readkey End.