Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Обработка массивов.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
502.27 Кб
Скачать

Обработка нескольких массивов

Пример 14: Массивы А и В имеют одинаковую длину. Массив С необходимо заполнить суммами соответствующих элементов массивов А и В. n - длина массивов А и В (и С тоже).

Фрагмент программы:

…………………………….

{проходим по всем элементам массивов}

for i:=1 to n do

{сумму i-ых элементов массивов A и B заносим в i-ый элемент C}

C[i]:=A[i]+B[i];

…………………………….

Пример 15: В конец массива А[n] приписать все элементы массива В[m].

Фрагмент программы:

…………………………….

{проходим в цикле по массиву B}

for i:=1 to m do

A[n+i]:=B[i]; {дописываем элементы в хвост A}

Inc(n,m); {увеличиваем значение n (длину массива A) на m (длину массива B)}

…………………………….

Замечание: Необходимо следить, чтобы n не превысило значение maxN.

Например, так:

…………………………….

if n+m>maxN

then writeln('В массив А все элементы массива В не поместятся')

else …………………………….{а вот здесь выполняем добавление элементов}

Пример 16: Сформировать массив В из отрицательных элементов массива А. Массив А не изменять.

Фрагмент программы:

…………………………….

m:=0; {m - количество элементов в массиве В – вначале массив B пустой}

{проходим по всем элементам массива A}

for i:=1 to n do

if A[i]<0 then {если i-ый элемент массива A отрицательный}

begin

{то копируем его в массив B}

Inc(m); {в B добавляется еще один элемент –увеличиваем m на 1}

B[m]:=A[i]; {копируем i-ый элемент массива A в m-ый элемент массива B}

end;

…………………………….

Пример 17: Подсчитать, сколько элементов массива А совпадают с элементами массива В.

Алгоритм программы:

1. Ввести массив А[n].

2. Ввести массив В[m] .

3. Счетчик совпадений cnt обнулить.

4. Пройти по всем элементам массива A.

5. Сравнить i-ый элемент массива А со всеми элементами массива В.

6. Если А[i] совпадает хотя бы с одним элементом массива B, то счетчик повторений увеличить на 1.

7. Вывести количество совпадений.

Текст программы:

{Подсчитать, сколько элементов массива А совпадают с элементами массива В}

Program TwoArrayExample;

Const maxN = 20; {максимальное количество элементов массива}

Type IndexEl = 1 .. maxN; {индексы массива лежат в интервале от 1 до maxN}

masInt = array[IndexEl] of integer; {массив целых чисел, содержащий до maxN элементов}

Var

a,b:masInt; {массивы A и B}

n:integer;{количество элементов массива A}

m:integer;{количество элементов массива B}

i,j:IndexEl; {переменные для сканирования массивов}

cnt: integer; {количество совпадений элементов A с элементами B}

k: integer; {количество совпадений элемента A[i] с элементами B}

Begin

{1 - ввод массива A}

{ ввод количества элементов}

repeat

write('Введите n:');

readln(n);

until (n>=1) and (n<=maxN); {выйдем из цикла лишь тогда, когда n будет принадлежать интервалу [1..maxN]}

{ ввод элементов массива A поодиночке}

for i:=1 to n do

begin

write('a[',i,']');

readln(a[i]);

end;

{2 - ввод массива B}

{ ввод количества элементов}

repeat

write('Введите m:');

readln(m);

until (m>=1) and (m<=maxN);

{ ввод элементов массива B поодиночке}

for i:=1 to m do

begin

write('b[',i,']');

readln(b[i]);

end;

{3 - счетчик повторений обнуляем}

cnt:=0;

{4 - проходим по всем элементам массива A}

for i:=1 to n do

begin

{5 - сравниваем i-ый элемент массива А со всеми элементами массива В}

k:=0; {k - количество совпадений i-го элемента массива A с элементами массива В}

{считаем количество совпадений A[i] с элементами массива B}

for j=1 to m do

if A[i]=B[j] then Inc(k);

{6 - если А[i] совпадает хотя бы с одним элементом массива B,

счетчик повторений увеличить на 1}

if k>0 then Inc(cnt);

end;

{7 - выводим количество повторений}

writeln('Количество совпадений cnt=',cnt);

readln; {ждем нажатия клавиши Enter}

End.