Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- { Даны три одномерных массива a, b и c разного размера. Сформировать
- массив из элементов, содержащихся в массиве a, но не содержащихсяв массиве b;
- массив из элементов, содержащихся в массиве b, но не содержащихсяв массиве c;
- массив из элементов, содержащихся в массиве c, но не содержащихся в массиве a.}
- program Lab12;
- const
- nmax = 20;
- type
- mas = array [1..nmax] of integer;
- var
- a, b, c: mas;
- d, e, f: mas;
- na, nb, nc, nd, ne, nf, t: integer;
- fl: TextFile;
- { Процедура ввода одномерного массива из файла }
- procedure Get(var x: mas; var n: integer; var f: TextFile);
- var
- i: integer;
- begin
- readln(f, n);
- for i := 1 to n do
- read(f, x[i]);
- readln(f);
- end;
- { Процедура вывода одномерного массива в файл }
- procedure Put(const x: mas; n: integer; name: string; var f: TextFile);
- var
- i: integer;
- begin
- writeln(f, 'The array ', name, ' of ', n:2, ' elements');
- for i := 1 to n do
- write(f, x[i]:8);
- writeln(f);writeln(f);
- end;
- { Процедура поиска "разности" двух массивов }
- procedure Filter(const x: mas; n: integer; t: integer; var z: mas; var k: integer);
- var
- i: integer;
- begin
- k := 0;
- for i := 1 to n do
- begin
- if abs(x[i]) < t then
- begin
- k := k + 1;
- z[k] := x[i];
- end;
- end;
- end;
- begin
- { Ввод исходных данных }
- if ParamCount < 2 then
- begin
- writeln('There are no enough parameters');
- readln;
- exit;
- end;
- if not FileExists(ParamStr(1)) then
- begin
- writeln('File ''', ParamStr(1), ''' does not exists');
- end;
- AssignFile(fl, ParamStr(1));
- Reset(fl);
- Get(a, na, fl);
- Get(b, nb, fl);
- Get(c, nc, fl);
- CloseFile(fl);
- { Поиск "разностей" }
- Filter(a, na, b, nb, d, nd);
- Filter(b, nb, c, nc, e, ne);
- Filter(c, nc, a, na, f, nf);
- { Вывод полученных результатов }
- AssignFile(fl, ParamStr(2));
- Rewrite(fl);
- Writ
- Put(a, na, 'A', fl);
- Put(b, nb, 'B', fl);
- Put(c, nc, 'C', fl);
- Put(d, nd, 'D (|A| < t)', fl);
- Put(e, ne, 'E (|B| < t)', fl);
- Put(f, nf, 'F (|C| < t)', fl);
- CloseFile(fl);
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement