Задачи для изучающих программирование самостоятельно 30 Задания на лабораторную работу по теме "Обработка одномерных массивов" 39
Вид материала | Документы |
СодержаниеОбработка нескольких массивов A[n+i]:=B[i]; {дописываем элементы в хвост A} Const maxN = 20; {максимальное количество элементов массива} |
- Обработка одномерных массивов, 21kb.
- Поэтому при написании программы будьте особенно внимательны, не путайте индексы элементов, 363.59kb.
- Лекция № Распределение памяти. Динамические переменные, 73.48kb.
- Алгоритмы сортировки одномерных массивов, 53.15kb.
- Урок 6 (1 час) Тема урока, 169.57kb.
- Поняття масиву. Одновимірний масив, 62.45kb.
- План урока Выступление со словами: Нередко… Показ презентации, 73.14kb.
- Курс является базовым как для изучения других математических дисциплин, так и для более, 36.89kb.
- В. А. Давыденко программирование и основы алгоритмизации лабораторный практикум, 1951.1kb.
- Методические указания могут быть полезны для студентов экономических специальностей,, 198.11kb.
Обработка нескольких массивов
Задача 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}
arrInt = array[IndexEl] of integer; {массив целых чисел,
содержащий до maxN элементов}
Var
a,b:arrInt; {массивы 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.
0>