Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. { Даны три одномерных массива a, b и c разного размера. Сформировать
  2.   массив из элементов, содержащихся в массиве a, но не содержащихсяв массиве b;
  3.   массив из элементов, содержащихся в массиве b, но не содержащихсяв массиве c;
  4.   массив из элементов, содержащихся в массиве c, но не содержащихся в массиве a.}
  5. program Lab12;
  6.  
  7. const
  8.     nmax = 20;
  9.  
  10. type
  11.     mas = array [1..nmax] of integer;
  12.  
  13. var
  14.     a, b, c: mas;
  15.     d, e, f: mas;
  16.     na, nb, nc, nd, ne, nf, t: integer;
  17.     fl: TextFile;
  18.  
  19. { Процедура ввода одномерного массива из файла }
  20. procedure Get(var x: mas; var n: integer; var f: TextFile);
  21. var
  22.     i: integer;
  23. begin
  24.     readln(f, n);
  25.     for i := 1 to n do
  26.         read(f, x[i]);
  27.     readln(f);
  28. end;
  29.  
  30. { Процедура вывода одномерного массива в файл }
  31. procedure Put(const x: mas; n: integer; name: string; var f: TextFile);
  32. var
  33.     i: integer;
  34. begin
  35.     writeln(f, 'The array ', name, ' of ', n:2, ' elements');
  36.     for i := 1 to n do
  37.         write(f, x[i]:8);
  38.     writeln(f);writeln(f);
  39. end;
  40.  
  41. { Процедура поиска "разности" двух массивов }
  42. procedure Filter(const x: mas; n: integer; t: integer; var z: mas; var k: integer);
  43. var
  44.     i: integer;
  45. begin
  46.     k := 0;
  47.     for i := 1 to n do
  48.     begin
  49.         if abs(x[i]) < t then
  50.         begin
  51.             k := k + 1;
  52.             z[k] := x[i];
  53.         end;
  54.     end;
  55. end;
  56.  
  57. begin
  58.     { Ввод исходных данных }
  59.     if ParamCount < 2 then
  60.     begin
  61.         writeln('There are no enough parameters');
  62.         readln;
  63.         exit;
  64.     end;
  65.     if not FileExists(ParamStr(1)) then
  66.     begin
  67.         writeln('File ''', ParamStr(1), ''' does not exists');
  68.     end;
  69.     AssignFile(fl, ParamStr(1));
  70.     Reset(fl);
  71.     Get(a, na, fl);
  72.     Get(b, nb, fl);
  73.     Get(c, nc, fl);
  74.     CloseFile(fl);
  75.     { Поиск "разностей" }
  76.     Filter(a, na, b, nb, d, nd);
  77.     Filter(b, nb, c, nc, e, ne);
  78.     Filter(c, nc, a, na, f, nf);
  79.     { Вывод полученных результатов }
  80.     AssignFile(fl, ParamStr(2));
  81.     Rewrite(fl);
  82.     Writ
  83.     Put(a, na, 'A', fl);
  84.     Put(b, nb, 'B', fl);
  85.     Put(c, nc, 'C', fl);
  86.     Put(d, nd, 'D (|A| < t)', fl);
  87.     Put(e, ne, 'E (|B| < t)', fl);
  88.     Put(f, nf, 'F (|C| < t)', fl);
  89.     CloseFile(fl);
  90. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement