Advertisement
Guest User

corrected

a guest
Dec 12th, 2019
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 3.93 KB | None | 0 0
  1. program students_upgrade;
  2.  
  3. const
  4.     INPUT_DATA_LENGTH = 6;
  5.     INPUT_FILE = '/Users/slucently/Documents/My txt/students.txt';
  6.     OUTPUT_Surname = '/Users/slucently/Documents/My txt/students surname.txt';
  7.     OUTPUT_Height = '/Users/slucently/Documents/My txt/students height.txt';
  8.     OUTPUT_Weight = '/Users/slucently/Documents/My txt/students weight.txt';
  9. type
  10.     Student_type = record
  11.         Surname: String;
  12.         Height: String;
  13.         Weight: String;
  14.     end;
  15.     student_array = array[1..INPUT_DATA_LENGTH] of Student_type;
  16.     array_string = array[1..INPUT_DATA_LENGTH] of String;
  17. var
  18.     f_in, f_surname, f_height, f_weight: text;
  19.     student: student_array;
  20.     arr_surname: array_string;
  21.     arr_height: array_string;
  22.     arr_weight: array_string;
  23.     i: integer;
  24.  
  25. procedure ReadSetSurname(var afile_in: text; var stud: student_array);
  26.     var
  27.         s, t: string;
  28.         i: integer;
  29.     begin
  30.         while not eof(afile_in) do begin
  31.             for i := 1 to INPUT_DATA_LENGTH do begin
  32.                 readln(afile_in, s);
  33.                 t := s;
  34.                 delete(t, length(t) - 6, 7);
  35.                 stud[i].surname := t;
  36.             end;
  37.         end;
  38.         close(afile_in);
  39.     end;
  40.  
  41. procedure MakeArraySurname(var stud: student_array; var arg: array_string);
  42.     var
  43.         i: integer;
  44.     begin
  45.         for i := 1 to INPUT_DATA_LENGTH do begin
  46.             arg[i] := stud[i].surname;
  47.         end;
  48.     end;
  49.  
  50. procedure ReadSetHeight(var afile_in: text; var stud: student_array);
  51.     var
  52.         s, t: string;
  53.         i: integer;
  54.     begin
  55.         reset(afile_in);
  56.         while not eof(afile_in) do begin
  57.             for i := 1 to INPUT_DATA_LENGTH do begin
  58.                 readln(afile_in, s);
  59.                 t := s;
  60.                 delete(t, length(t) - 2, length(t));
  61.                 delete(t, 1, length(t) - 3);
  62.                 stud[i].height := t;
  63.             end;
  64.         end;
  65.         close(afile_in);
  66.     end;
  67.  
  68. procedure MakeArrayHeight(var stud: student_array; var arg: array_string);
  69.     var
  70.         i: integer;
  71.     begin
  72.         for i := 1 to INPUT_DATA_LENGTH do begin
  73.             arg[i] := stud[i].height;
  74.         end;
  75.     end;
  76.  
  77. procedure ReadSetHWeigh(var afile_in: text; var stud: student_array);
  78.     var
  79.         i: integer;
  80.         s, t: string;
  81.     begin
  82.         reset(afile_in);
  83.         while not eof(afile_in) do begin
  84.             for i := 1 to INPUT_DATA_LENGTH do begin
  85.                 readln(afile_in, s);
  86.                 t := s;
  87.                 delete(t, 1, length(t) - 2);
  88.                 stud[i].weight := t;
  89.             end;
  90.         end;
  91.     end;
  92.  
  93. procedure MakeArrayWeight(var stud: student_array; var arg: array_string);
  94.     var
  95.         i: integer;
  96.     begin
  97.         for i := 1 to INPUT_DATA_LENGTH do begin
  98.             arg[i] := stud[i].weight;
  99.         end;
  100.     end;
  101.  
  102. function Compare(arg1, arg2: string; direct: boolean): boolean;
  103.     begin
  104.         if direct then begin
  105.             Compare := arg1 > arg2;
  106.         end else begin
  107.             Compare := arg1 < arg2;
  108.         end;
  109.     end;
  110.  
  111. procedure BubbleSortString(var arg: array_string; direct: boolean);
  112.     var
  113.         i, j: integer;
  114.         t: string;
  115.     begin
  116.         for i := 1 to INPUT_DATA_LENGTH - 1 do begin
  117.             for j := 1 to INPUT_DATA_LENGTH - i do begin
  118.                 if Compare(arg[j], arg[j + 1], direct) then begin
  119.                     t := arg[j];
  120.                     arg[j] := arg[j + 1];
  121.                     arg[j + 1] := t;
  122.                 end;
  123.             end;
  124.         end;
  125.     end;
  126.  
  127. begin
  128.     assign(f_in, INPUT_FILE);
  129.     reset(f_in);
  130.     assign(f_surname, OUTPUT_Surname);
  131.     rewrite(f_surname);
  132.     assign(f_height, OUTPUT_Height);
  133.     rewrite(f_height);
  134.     assign(f_weight, OUTPUT_Weight);
  135.     rewrite(f_weight);
  136.  
  137.     ReadSetSurname(f_in, student);
  138.     MakeArraySurname(student, arr_surname);
  139.     BubbleSortString(arr_surname, true);
  140.  
  141.     ReadSetHeight(f_in, student);
  142.     MakeArrayHeight(student, arr_height);
  143.     BubbleSortString(arr_height, true);
  144.  
  145.     ReadSetHWeigh(f_in, student);
  146.     MakeArrayWeight(student, arr_weight);
  147.     BubbleSortString(arr_weight, true);
  148.  
  149.     for i := 1 to INPUT_DATA_LENGTH do begin
  150.         writeln(f_surname, arr_surname[i]);
  151.         writeln(f_height, arr_height[i]);
  152.         writeln(f_weight, arr_weight[i]);
  153.     end;
  154.  
  155.     close(f_in);
  156.     close(f_surname);
  157.     close(f_height);
  158.     close(f_weight);
  159.  
  160.     writeln('Done');
  161. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement