Помогите, пожалуйста, с написанием программы! Pascal abc
"Составьте программу вычисления суммы тех элементов одномерного массива А(N), что одновременно встречаются в массивах B(N) и C(N)"
Const
n = 20; { размер массивов }
p=0; { минимальное значение элемента }
q=15; { максимальное значение элемента }
type
V=array[1..n] of integer;
procedure VInit(var a:V; s:string);
{ процедура заполняет элементы массива a
случайными значениями из интервала [p;q].
Элементы сформированного массива выводятся
с заголовком, в который добавляется значение s }
var
i,kol:integer;
begin
kol:=q-p+1;
Writeln(Элементы массива ,s);
for i:=1 to n do
begin a[i]:=Random(kol)+p; Write(a[i], ) end;
Writeln
end;
procedure SortBubble(var a:V);
{ сортировка методом пузырька }
var
i,j,t:integer;
begin
for i := 1 to n-1 do
for j := 1 to n-i do
if a[j] > a[j+1] then
begin t := a[j]; a[j] := a[j+1]; a[j+1] := t end
end;
procedure VOut(var a:V;s:string);
{ Элементы массива a выводятся с заголовком s }
var
i:integer;
begin
Writeln(s);
for i:=1 to n do Write(a[i], );
Writeln
end;
function BinSearch(var a:V;key:integer):boolean;
{ двоичный поиск элемента со значением key в массиве a
Возвращает true, если элемент найден и false, если нет }
var
li,ri,mi:integer;
begin
li:=1; ri:=n;
while li
if a[mi]
BinSearch:=(a[ri]=key)
end;
var
a,b,c:V;
i,ai1,s:integer;
found:boolean;
begin
Randomize;
VInit(a,A); SortBubble(a); VOut(a,Отсортированный массив A);
VInit(b,B); SortBubble(b); VOut(b,Отсортированный массив B);
VInit(c,C); SortBubble(c); VOut(c,Отсортированный массив C);
s:=0; found:=false;
for i:=1 to n do
begin
if found then
if a[i]=ai1 then Inc(s,ai1)
else found:=false;
if not found then begin
found:=BinSearch(b,a[i]);
if found then found:=BinSearch(c,a[i]);
if found then begin ai1:=a[i]; Inc(s,ai1) end
end
end;
Writeln(Искомая сумма равна ,s);
end.
Тестовое решение:
Элементы массива A
4 10 6 4 12 5 5 15 0 14 2 2 0 3 14 1 11 13 3 9
Отсортированный массив A
0 0 1 2 2 3 3 4 4 5 5 6 9 10 11 12 13 14 14 15
Элементы массива B
7 3 13 3 10 11 3 15 12 10 0 5 5 15 13 1 15 9 1 5
Отсортированный массив B
0 1 1 3 3 3 5 5 5 7 9 10 10 11 12 13 13 15 15 15
Элементы массива C
4 10 5 8 14 15 8 14 12 4 12 12 3 11 4 0 12 2 10 0
Отсортированный массив C
0 0 2 3 4 4 4 5 8 8 10 10 11 12 12 12 12 14 14 15
Искомая сумма равна 64
