Обработка нескольких массивов
- Массивы А и В имеют одинаковую длину. Массив С необходимо заполнить суммами соответствующих элементов массивов А и В. n - длина массивов А и В (и С тоже).
Фрагмент программы:
…
for i :=1 to n do {проходим по всем элементам массивов}
C[ i ]:=A[ i ]+B[ i ]; {сумму i-ых элементов массивов A и B заносим в i-ый элемент C}
…
- В конец массива А[n] приписать все элементы массива В[m].
Фрагмент программы:
…
for i :=1 to m do {проходим в цикле по массиву B}
A[n+i]:=B[i]; {дописываем элементы в хвост A}
Inc(n,m); {увеличиваем значение n (длину массива A) на m (длину массива B)}
…
Замечание: Необходимо следить, чтобы n не превысило значение maxN. Например, так:
…
if n+m>maxN then writeln('В массив А все элементы массива В не поместятся') else ... {а вот здесь выполняем добавление элементов}
- Сформировать массив В из отрицательных элементов массива А. Массив А не изменять.
Фрагмент программы:
…
m:=0; {m - количество элементов в массиве В - вначале массив B пустой}
for i := 1 to n do {проходим по всем элементам массива A}
if A[i]<0 then {если i-ый элемент массива A отрицательный}
begin {то копируем его в массив B}
Inc(m); {в B добавляется еще один элемент - увеличиваем m на 1}
B[m]:=A[i]; {копируем i-ый элемент массива A в m-ый элемент массива B}
end;
…
- Подсчитать, сколько элементов массива А совпадают с элементами массива В.
Алгоритм программы:
1. Ввести массив А[n].
2. Ввести массив В[m] .
3. Счетчик совпадений cnt обнулить.
4. Пройти по всем элементам массива A.
5. Сравнить i-ый элемент массива А со всеми элементами массива В.
6. Если А[i] совпадает хотя бы с одним элементом массива B, то счетчик повторений увеличить на 1.
7. Вывести количество совпадений.
Текст программы:
Const maxN = 20;Type IndexEl = 1 .. maxN;
arrInt = array[IndexEl] of integer;
a,b:arrInt; {массивы A и B}
n:integer;{количество элементов массива A}
m:integer;{количество элементов массива B}
i,j:IndexEl; {переменные для сканирования массивов}
cnt: integer; {количество совпадений элементов A с элементами B}
k: integer; {количество совпадений элемента A[i] с элементами B}
Begin { ввод массива A}
repeat
write('Введите n:');
readln(n); { ввод количества элементов}
until (n>=1) and (n<=maxN); {выйдем из цикла лишь тогда, когда n будет принадлежать интервалу [1..maxN]}
for i:=1 to n do
begin
write('a[', i ,']');
readln(a[i]); { ввод элементов массива A поодиночке}
end;
{2 - ввод массива B}
repeat
write('Введите m: ');
readln(m); { ввод количества элементов}
until (m>=1) and (m<=maxN);
for i :=1 to m do
begin
write('b[', i ,']');
readln(b[i]); { ввод элементов массива B поодиночке}
end;
cnt :=0; {счетчик повторений обнуляем}
for i :=1 to n do { проходим по всем элементам массива A}
begin
{сравниваем i-ый элемент массива А со всеми элементами массива В}
k:=0; {k - количество совпадений i-го элемента массива A с элементами массива В}
{считаем количество совпадений A[i] с элементами массива B}
for j :=1 to m do
if A[i]=B[j] then Inc(k); {если А[i] совпадает хотя бы с одним элементом массива B, счетчик повторений увеличить на 1}
if k>0 then Inc(cnt);
end;
writeln('Количество совпадений cnt = ',cnt); {выводим количество повторений}
End.
Демонстрация работы с массивами
<<Назад