BR7_1.PAS 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. const
  2. Inp1 = 'input1.txt';
  3. Inp2 = 'input2.txt';
  4. Out1 = 'output1.txt';
  5. type
  6. Pty = ^ty;
  7. ty = record
  8. name : Char;
  9. next : Pty;
  10. end;
  11. var
  12. Root1,Root2,Nroot : Pty;
  13. f1,f2 : text;
  14. {--------------------------------------------}
  15. procedure Insert(var NRoot:pty; Tec : pty);
  16. var
  17. Pred,sled : Pty;
  18. begin
  19. if Tec^.name < Nroot^.name Then begin
  20. Tec^.next := Nroot;
  21. Nroot := Tec;
  22. end
  23. else begin
  24. Pred := Nroot;
  25. Sled := Nroot^.next;
  26. while (Tec^.name >= Sled^.name) and (Sled <> nil) do begin
  27. Pred := Sled;
  28. Sled := Sled^.next;
  29. end;
  30. pred^.next := Tec;
  31. Tec^.next := Sled;
  32. end;
  33. end;
  34. {--------------------------------}
  35. {read m from file==========================================}{P1}
  36. Procedure ReadM(var root : pty;inp : string);
  37. var
  38. Tec : Pty;
  39. begin
  40. Assign(f1,Inp);
  41. Reset(f1);
  42. New(tec);
  43. Read(f1,Tec^.Name);
  44. Root := Tec;
  45. Root^.next := nil;
  46. While not(Eof(F1)) do begin
  47. New(Tec);
  48. Read(f1,Tec^.Name);
  49. Insert(Root,Tec);
  50. end;
  51. close(f1);
  52. end;
  53. {==========================================}
  54. {==========================================} {p2}
  55. Procedure OuttoFils(Root : pty);
  56. begin
  57. Assign(F2,Out1);
  58. ReWrite(f2);
  59. {write to files}
  60. while root<>nil do Begin
  61. Write(f2,Root^.name);
  62. root := root^.next;
  63. end;
  64. close(f2);
  65. end;
  66. {==========================================}
  67. Procedure P3(Root1,Root2:pty;var NewRoot : pty); {p3}
  68. var
  69. Tec,Sled : Pty;
  70. begin
  71. NewRoot := Root1;
  72. Tec := Root2;
  73. While Tec <> nil do begin
  74. Sled := Tec^.next;
  75. insert(NewRoot,Tec);
  76. Tec := Sled;
  77. end;
  78. end;
  79. {==========================================}
  80. begin
  81. ReadM(Root1,inp1);
  82. ReadM(Root2,inp2);
  83. P3(Root1,Root2,NRoot);
  84. OuttoFils(NRoot);
  85. end.