program ex1; uses crt; type p=^el; el=record data:byte; next:p; end; obj=object root,last,l:p; id:string[5]; constructor init; procedure build; procedure output; procedure insert; end; constructor obj.init; begin root:=nil; last:=nil; new(l); end; procedure obj.build; var eli:p;i:byte; begin randomize; write('input list id: '); readln(id); writeln('list ',id,':'); new(root); root^.data:=random(10); eli:=root; for i:=2 to 5 do begin new(eli^.next); eli^.next^.data:=random(10); eli:=eli^.next end; eli^.next:=nil; end; procedure obj.output; var eli:p; begin eli:=root; while eli<>nil do begin writeln(eli^.data); eli:=eli^.next; end; end; procedure obj.insert; var eli,mem:p;d,i,k:byte; begin write('input element to insert: '); readln(d); write('input the position for inserting of ',d,': '); readln(i); if (i=1) then begin new(eli); eli^.data:=d; eli^.next:=root; if (eli^.next=nil) then eli^.next^.next:=nil; root:=eli; end else if (i=2) then begin mem:=eli^.next; new(eli^.next); eli:=eli^.next; eli^.data:=d; eli^.next:=mem end else begin for i:=3 to 5 do eli:=eli^.next; mem:=eli^.next; new(eli^.next); eli:=eli^.next; eli^.data:=d; eli^.next:=mem end; end; var list:obj; begin list.build; list.output; list.insert; writeln('---------------'); list.output; readln end.