fork download
  1. {Построение динамического списка}
  2. program V3;
  3. {$APPTYPE CONSOLE}
  4. uses
  5. SysUtils;
  6.  
  7. type tpo=^tn; tn=record x:real; p1,p2:tpo; end;
  8. var s,b:tpo; f,k:pointer;
  9. i,n,x,dd:integer; z:real;
  10. H1,M1,S1,Ms1,H2,M2,S2,Ms2:word;
  11. start_time, end_time: TDateTime;
  12.  
  13. procedure CreateLisp; {Сосдание списка}
  14. begin
  15. new(s); randomize; z:=random(100)-50; s^.x:=z; f:=s; s^.p2:=nil;
  16. for i:=1 to n-1 do begin new(b); z:=random(100)-50; b^.x:=z;
  17. s^.p1:=b; b^.p2:=s; s:=b; end;
  18. s^.p1:=nil; k:=s;
  19. end;
  20.  
  21. begin
  22. start_time := Now;
  23. DecodeTime(now(), H1, M1, S1, Ms1);
  24. Writeln(H1,':',M1,':',S1,':',Ms1); // время начала выполнения
  25.  
  26. n:=6; dd:=9;
  27. CreateLisp;
  28.  
  29. Writeln('Прямой вывод:');
  30. s:=f; while s<>nil do begin writeln(s^.x:1:1); s:=s^.p1; end;
  31. writeln;
  32. Writeln('Обратный вывод: ');
  33. b:=k; while b<>nil do begin writeln(b^.x:1:1); b:=b^.p2; end;
  34. writeln;
  35. Writeln(' Результат: ');
  36. s:=f; b:=k;
  37. while s<>nil do
  38. begin z:=s^.x+ b^.x; writeln(z:1:1);
  39. s:=s^.p1; b:=b^.p2; end;
  40.  
  41. end_time := Now;
  42. DecodeTime(now(), H2, M2, S2, Ms2);
  43. Writeln(H2,':',M2,':',S2,':',Ms2); //время окончания
  44. readln;
  45.  
  46.  
  47. end.
Success #stdin #stdout 0s 5296KB
stdin
Standard input is empty
stdout
13:33:19:910
Прямой вывод:
42.0
2.0
21.0
39.0
17.0
13.0

Обратный вывод: 
13.0
17.0
39.0
21.0
2.0
42.0

     Результат: 
55.0
19.0
60.0
60.0
19.0
55.0
13:33:19:910