SHOW:
|
|
- or go back to the newest paste.
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. |