Advertisement
stepan12123123123

Untitled

Dec 27th, 2022
580
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 5.55 KB | None | 0 0
  1. program laby231;
  2.  
  3. type arr = record
  4. i :integer;
  5. a,b,c: string;
  6. end;
  7.  
  8. var
  9.   a1, a2, a3, a4: array[1..1000] of arr;
  10.   f1, f2, f3, f4: text;  
  11.   f5, f6, f7, f8: text;
  12.   n1, n2, n3, n4: integer;
  13.  
  14. procedure create_a(var f: text; temp:integer);
  15. var s: string;
  16.   n, i, k: integer;
  17. begin
  18.      reset(f);
  19.      k := 1;
  20.      if(temp = 1) then begin
  21.        while(eof(f)= false)do begin
  22.          Readln(f, s);
  23.          n := length(s);
  24.          a1[k].i := 0;
  25.          i := 1;
  26.          while(s[i] <> ' ') do begin
  27.            a1[k].a += s[i];
  28.            i+=1;
  29.          end;
  30.          i += 1;
  31.          while(s[i] <> ' ') do begin
  32.            a1[k].b += s[i];
  33.            i+=1;
  34.          end;  
  35.          i += 1;
  36.          while(i <= n) do begin
  37.            a1[k].c += s[i];
  38.            i+=1;
  39.          end;
  40.          k +=1;
  41.        end;
  42.        n1 := k - 1;
  43.      end
  44.      else if(temp = 2) then begin
  45.        while(eof(f)= false)do begin
  46.          Readln(f, s);
  47.          n := length(s);
  48.          a2[k].i := 0;
  49.          i := 1;
  50.          while(s[i] <> ' ') do begin
  51.            a2[k].a += s[i];
  52.            i+=1;
  53.          end;                              
  54.          i += 1;
  55.          while(s[i] <> ' ') do begin
  56.            a2[k].b += s[i];
  57.            i+=1;
  58.          end;              
  59.          i += 1;
  60.          while(i <= n) do begin
  61.            a2[k].c += s[i];
  62.            i+=1;
  63.          end;
  64.          k +=1;
  65.        end;
  66.        n2 := k - 1;
  67.      end
  68.      else if(temp = 3) then begin
  69.        while(eof(f)= false)do begin
  70.          Readln(f, s);
  71.          n := length(s);
  72.          a3[k].i :=0;
  73.          i := 1;
  74.          while(s[i] <> ' ') do begin
  75.            a3[k].a += s[i];
  76.            i+=1;
  77.          end;            
  78.          i += 1;
  79.          while(s[i] <> ' ') do begin
  80.            a3[k].b += s[i];
  81.            i+=1;
  82.          end;    
  83.          i += 1;
  84.          while(i <= n) do begin
  85.            a3[k].c += s[i];
  86.            i+=1;
  87.          end;
  88.          k +=1;
  89.        end;
  90.        n3 := k - 1;
  91.      end
  92.      else begin
  93.        while(eof(f)= false)do begin
  94.          Readln(f, s);
  95.          n := length(s);
  96.          a4[k].i := 0;
  97.          i := 1;
  98.          while(s[i] <> ' ') do begin
  99.            a4[k].a += s[i];
  100.            i+=1;
  101.          end;  
  102.          i += 1;
  103.          while(s[i] <> ' ') do begin
  104.            a4[k].b += s[i];
  105.            i+=1;
  106.          end;    
  107.          i += 1;
  108.          while(i <= n) do begin
  109.            a4[k].c += s[i];
  110.            i+=1;
  111.          end;
  112.          k +=1;
  113.        end;
  114.        n4 := k - 1;
  115.      end;
  116.      close(f);
  117. end;
  118.  
  119. procedure sort(temp :integer);
  120. var i, j, t, z:integer;
  121.   s: string;
  122. begin
  123.     t := 1;
  124.     if(temp = 1)then begin
  125.       for i := 1 to n1 do begin
  126.         j :=  1;
  127.         while (a1[j].i <> 0) do begin
  128.           j += 1;
  129.         end;
  130.         s := a1[j].a;
  131.         z := j;
  132.         for j := 1 to n1 do begin
  133.           if( s > a1[j].a) and (a1[j].i = 0) then begin
  134.             s := a1[j].a;
  135.             z := j;
  136.           end;
  137.         end;
  138.         a1[z].i := t;
  139.         t+=1;
  140.       end;
  141.     end
  142.     else if(temp = 2)then begin
  143.       for i := 1 to n2 do begin
  144.         j :=  1;
  145.         while (a2[j].i <> 0) do begin
  146.           j += 1;
  147.         end;
  148.         s := a2[j].a;
  149.         z := j;
  150.         for j := 1 to n2 do begin
  151.           if( s > a2[j].a) and (a2[j].i = 0) then begin
  152.             s := a2[j].a;
  153.             z := j;
  154.           end;
  155.         end;
  156.         a2[z].i := t;
  157.         t+=1;
  158.       end;
  159.     end  
  160.     else if(temp = 3)then begin
  161.       for i := 1 to n3 do begin
  162.         j :=  1;
  163.         while (a3[j].i <> 0) do begin
  164.           j += 1;
  165.         end;
  166.         s := a3[j].a;
  167.         z := j;
  168.         for j := 1 to n3 do begin
  169.           if( s > a3[j].a) and (a3[j].i = 0) then begin
  170.             s := a3[j].a;
  171.             z := j;
  172.           end;
  173.         end;
  174.         a3[z].i := t;
  175.         t+=1;
  176.       end;
  177.     end  
  178.     else begin
  179.       for i := 1 to n4 do begin
  180.         j :=  1;
  181.         while (a4[j].i <> 0) do begin
  182.           j += 1;
  183.         end;
  184.         s := a4[j].a;
  185.         z := j;
  186.         for j := 1 to n4 do begin
  187.           if( s > a4[j].a) and (a4[j].i = 0) then begin
  188.             s := a4[j].a;
  189.             z := j;
  190.           end;
  191.         end;
  192.         a4[z].i := t;
  193.         t+=1;
  194.       end;
  195.     end
  196. end;
  197.  
  198. procedure print(temp : integer);
  199. var i : integer;
  200. begin
  201.     if(temp = 1) then begin
  202.     assign(f5, 'file1.txt');    
  203.     rewrite(f5);
  204.       for i := 1 to n1 do begin
  205.         writeln(f5, a1[i].i, ' ', a1[i].a, ' ', a1[i].b, ' ', a1[i].c);
  206.       end;  
  207.       close(f5);
  208.     end
  209.     else
  210.     if(temp = 2) then begin      
  211.     assign(f6, 'file2.txt');
  212.     rewrite(f6);
  213.       for i := 1 to n2 do begin
  214.         writeln(f6, a2[i].i, ' ', a2[i].a, ' ', a2[i].b, ' ', a2[i].c);
  215.       end;          
  216.       close(f6);
  217.     end
  218.     else if(temp = 3) then begin    
  219.     assign(f7, 'file3.txt');
  220.     rewrite(f7);
  221.       for i := 1 to n3 do begin
  222.         writeln(f7, a3[i].i, ' ', a3[i].a, ' ', a3[i].b, ' ', a3[i].c);
  223.       end;
  224.       close(f7);
  225.     end
  226.     else begin    
  227.     assign(f8, 'file4.txt');  
  228.     rewrite(f8);
  229.       for i := 1 to n4 do begin
  230.         writeln(f8, a4[i].i, ' ', a4[i].a, ' ', a4[i].b, ' ', a4[i].c);
  231.       end;
  232.       close(f8);
  233.     end;
  234. end;
  235.  
  236. begin
  237.   assign(f1,'A1.txt');
  238.   assign(f2,'A2.txt');
  239.   assign(f3,'A3.txt');
  240.   assign(f4,'A4.txt');
  241.   create_a(f1, 1);
  242.   create_a(f2, 2);
  243.   create_a(f3, 3);
  244.   create_a(f4, 4);
  245.   sort(1); sort(2); sort(3); sort(4);
  246.   print(1);print(2);print(3);print(4);
  247.   readln();
  248. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement