Действия над элементами массива

1. Инициализация массива (заключается в присвоении каждому элементу массива одного и того же значения)

§ одномерного

For i:=1 to N do

A[i]:=0;

§ двумерного

For i:=1 to N do

For j:=1 to M do

B[i,j]:=0;

2. Ввод элементов массива

§ одномерного

Write (‘Введите размерность массива N=’);

ReadLn (N);

WriteLn (‘Введите элементы массива’);

For i:=1 to N do

Begin

Write (‘A[‘,i,’]=’);

ReadLn (A[i]);

End;

§ двумерного

Write (‘Введите размерность массива N, M’);

ReadLn (N, M);

WriteLn (‘Введите элементы массива’);

For i:=1 to N do

For j:=1 to M do

Begin

Write (‘B[‘,i,’,’,j’]=’);

ReadLn (B[i,j]);

End;

3. Вывод элементов массива

§ одномерного

WriteLn (‘Вектор А:’);

For i:=1 to N do

Write (A[i]:5);

WriteLn;

§ двумерного

WriteLn (‘Матрица В:’);

For i:=1 to N do

Begin

For j:=1 to M do

Write (B[i,j]:5);

WriteLn;

End;

4. Поиск нулевых элементов в массиве

§ одномерном

k:=0;

For i:=1 to N do

If A[i]=0 then k:=k+1;

§ двумерном

k:=0;

For i:=1 to N do

For j:=1 to M do

If B[i,j]=0 then k:=k+1;

5. Нахождение минимального элемента массива и его места

§ одномерного

min:=A[1];

i_min:=1;

For i:=1 to N do

If A[i]<min then

Begin

min:=A[i];

i_min:=i;

End;

§ двумерного

min:=B[1,1];

i_min:=1;

j_min:=1;

For i:=1 to N do

For j:=1 to M do

If B[i,j]<min then

Begin

min:=B[i,j];

i_min:=i;

j_min:=j;

End;

6. Перестановка минимального и первого элементов в массиве

§ одномерном

r:=A[1];

A[1]:=A[i_min];

A[i_min]:=r;

§ двумерном

r:=B[1,1];

B[1,1]:=B[i_min,j_min];

B[i_min,j_min]:=r;

7. Нахождение суммы положительных элементов массива

§ одномерного

sum:=0;

For i:=1 to N do

If A[i]>0 then sum:=sum+A[i];

§ двумерного

sum:=0;

For i:=1 to N do

For j:=1 to M do

If B[i,j]>0 then sum:=sum+B[i,j];

8. Нахождение произведения нечетных элементов

§ одномерного

prod:=1;

For i:=1 to N do

If (A[i] mod 2) <> 0 Then

prod:=prod*A[i];

§ двумерного

prod:=1;

For i:=1 to N do {Функция Odd(X) возвращает значение}

For j:=1 to M do {ложно, если X нечетно }

If Odd(B[i,j]) Then

prod:=prod*B[i,j];

9. Нахождение суммы положительных элементов выше главной диа-гонали (включая элементы диагоналей).

Элементы на главной диагонали характеризуются тем, что индекс i=j. Для элементов побочной диагонали для любого i индекс столбца j=n-i+1. Элементы областей выше, ниже главной или побочной диагоналей можно задать или порядком изменения индексов или условиями, накладываемыми на индексы:

Действия над элементами массива - student2.ru Действия над элементами массива - student2.ru

i=1,2,…,n; j=1,2,…,i i=1,2,…,n; j=i,i+1,…,n

или i>=j или i>=j

Действия над элементами массива - student2.ru Действия над элементами массива - student2.ru

i=1,2,…,n; j=1,2,… n-i+1; i=1,2,…,n;j=n-i+1,…,n

или n-i-j+1>=0 или n-i-j+1<=0

sum:=0;

For i:=1 to n do

For j:=i to n do

If B[i,j]>=0 then sum:=sum+B[i,j];

10. Поменять местами максимальный элемент на главной диагонали и минимальный элемент ниже побочной.

Max:=B[1,1];

I_max:=1;

For i:=1 to n do

If B[i,i]> max then

Begin

Max:=B[i,i];

I_max:=i;

End;

Min:=B[1,n];

I_min:=1;

J_min:=n;

For i:=1 to n do

For j:=n-i+1 to n do

If B[i,j]< Min then

Begin

Min:=B[i,j];

I_min:=i;

J_min:=j;

End;

R:=B[I_max,I_max];

B[I_max,I_max]:=B[I_min,J_min];

B[I_min,J_min]:=R;

11. Дана квадратная матрица В размерности nxn. Построить вектор А, где аi – сумма положительных элементов i-ой строки матрицы.

For i:=1 to n do

Begin

S:=0;

For j:=1 to n do

If B[i,j]>0 then S:=S+B[i,j];

A[i]:=S;

End;

12. Дана квадратная матрица В размерности nxn. В каждом столбце оставить без изменения максимальный элемент столбца, остальные элементы заменить нулями.

For j:=1 to n do

Begin

Max:=B[1,j];

I_max:=1;

For i:=1 to n do

If B[i,j]> Max then

Begin

Max:=B[i,j]

I_max:=i;

End;

For i:=1 to n do

If i_max<>i then B[i,j]:=0;

End;

Пример: Дан целочисленный вектор A(n), поменять местами максимальный и минимальный элементы вектора. На печать выдавать исходный вектор, максимальный, минимальный элементы, полученный вектор.

Program Example_Vect;

Uses Crt;

Const

N_max=10;

Var

N,i,max,i_max,min,i_min,r:integer;

A:array [1..N_max] of integer;

Begin

Clrscr;

Write(‘Введите размерность массива N (<’,N_max,’)=’);

ReadLn (N);

WriteLn (‘Введите элементы массива’);

For i:=1 to N do { ввод элементов вектора}

Begin

Write (‘A[‘,i,’]=’);

ReadLn (A[i]);

End;

WriteLn (‘Исходный вектор А:’);

For i:=1 to N do { вывод вектора}

Write (A[i]:5);

WriteLn;

min:=A[1]; {нахождение минимального элемента}

i_min:=1; {и его индекса}

For i:=1 to N do

If A[i]<min then

Begin

min:=A[i];

i_min:=i;

End;

max:=A[1];

i_max:=1; {нахождение максимального элемента}

For i:=1 to N do {и его индекса}

If A[i]>max then

Begin

max:=A[i];

i_max:=i;

End;

WriteLn (‘Минимальный элемент A[‘,i_min,’]=’,min);

WriteLn (‘Максимальный элемент A[‘,i_max,’]=’,max);

r:=A[i_min]; {перестановка}

A[i_min]:=A[i_max];

A[i_max]:=r;

WriteLn (‘Полученный вектор А:’);

For i:=1 to N do {вывод полученного вектора}

Write (A[i]:5);

WriteLn;

End.

Порядок выполнения работы

1.Изучить описание лабораторной работы и ответить на контрольные вопросы.

2.Войти в режим редактирования и набрать текст программы (в соответствии с полученным вариантом задания).

3.Запустить программу на трансляцию и выполнение.

4.Оформить отчет по лабораторной работе, защитить и сдать преподавателю. Отчет должен содержать цель работы, задание, блок-схему программы, распечатку программы и результаты прогона программы.

Действия над элементами массива - student2.ru
6. Варианты заданий

Примечание:

На печать необходимо выводить как результирующий массив, так и исходный. Если размерность большая, то рекомендуется массив задавать с помощью генератора случайных чисел.

№ варианта Постановка задачи
Составить одномерный массив из максимальных элементов строк матрицы [MxN]. Размерность массива (число строк и (или) число столбцов) и значения его элементов ввести с клавиатуры.
Определить число элементов матрицы [MxN] кратных A. Размерность массива (число строк и (или) число столбцов) и значения его элементов ввести с клавиатуры.
Задан двухмерный массив (матрица вещественных чисел). Найти наибольший и наименьший элементы массива. Размерность массива (число строк и (или) число столбцов) и значения его элементов ввести с клавиатуры.
Перемножить 2 матрицы [MxN] и [NxK]. Размерность массива (число строк и (или) число столбцов) и значения его элементов ввести с клавиатуры.
Задан двухмерный массив вещественных чисел размерности 3х3. Найти номер строки и номер столбца, в которых находится наименьший элемент. Массив описать как типизированную константу.
Вывести все элементы двумерного массива [MxN] кратные A. Размерность массива (число строк и (или) число столбцов) и значения его элементов ввести с клавиатуры.
Задан двухмерный массив вещественных чисел. Необходимо каждый элемент соответствующей строки разделить на сумму элементов этой строки. Размерность массива (число строк и (или) число столбцов) и значения его элементов ввести с клавиатуры.
Найти сумму элементов матрицы [MxN], расположенных ниже побочной диагонали. Размерность массива (число строк и (или) число столбцов) и значения его элементов ввести с клавиатуры.
Найти число отрицательных элементов матрицы [MxN], расположенных в столбцах с номером, кратным A. Размерность асссива (число строк и (или) число столбцов) и значения его элементов ввести с клавиатуры.
Задан двухмерный массив вещественных чисел. Заменить все отрицательные элементы нулями и подсчитать сумму положительных элементов в каждом столбце. Размерность массива (число строк и (или) число столбцов) и значения его элементов ввести с клавиатуры.
Найти произведение элементов матрицы [MxN], расположенных выше главной диагонали. Размерность массива (число строк и (или) число столбцов) и значения его элементов ввести с клавиатуры.
Поменять местами элементы j и k столбцов матрицы [MxN]. Размерность массива (число строк и (или) число столбцов) и значения его элементов ввести с клавиатуры.
Определить количество элементов матрицы [MxN] больших A и расположенных в четных строках и столбцах. Размерность асссива (число строк и (или) число столбцов) и значения его элементов ввести с клавиатуры.
Найти минимальный элемент главной диагонали матрицы [MxN]. Размерность массива (число строк и (или) число столбцов) и значения его элементов ввести с клавиатуры.
Составить одномерный массив из максимальных элементов строк матрицы [MxN]. Размерность массива (число строк и (или) число столбцов) и значения его элементов ввести с клавиатуры.
Определить число элементов матрицы [MxN] кратных A. Размерность массива (число строк и (или) число столбцов) и значения его элементов ввести с клавиатуры.
Составить одномерный массив из максимальных элементов строк матрицы [MxN]. Размерность массива (число строк и (или) число столбцов) и значения его элементов ввести с клавиатуры.
Определить число элементов матрицы [MxN] кратных A. Размерность массива (число строк и (или) число столбцов) и значения его элементов ввести с клавиатуры.
Задан двухмерный массив (матрица вещественных чисел). Найти наибольший и наименьший элементы массива. Размерность массива (число строк и (или) число столбцов) и значения его элементов ввести с клавиатуры.
Перемножить 2 матрицы [MxN] и [NxK]. Размерность массива (число строк и (или) число столбцов) и значения его элементов ввести с клавиатуры.
Задан двухмерный массив вещественных чисел размерности 3х3. Найти номер строки и номер столбца, в которых находится наименьший элемент. Массив описать как типизированную константу.
Вывести все элементы двумерного массива [MxN] кратные A. Размерность массива (число строк и (или) число столбцов) и значения его элементов ввести с клавиатуры.
Задан двухмерный массив вещественных чисел. Необходимо каждый элемент соответствующей строки разделить на сумму элементов этой строки. Размерность массива (число строк и (или) число столбцов) и значения его элементов ввести с клавиатуры.
Найти сумму элементов матрицы [MxN], расположенных ниже побочной диагонали. Размерность массива (число строк и (или) число столбцов) и значения его элементов ввести с клавиатуры.
Задан двухмерный массив вещественных чисел. Необходимо каждый элемент соответствующей строки разделить на сумму элементов этой строки. Размерность массива (число строк и (или) число столбцов) и значения его элементов ввести с клавиатуры.
Найти сумму элементов матрицы [MxN], расположенных ниже побочной диагонали. Размерность массива (число строк и (или) число столбцов) и значения его элементов ввести с клавиатуры.
Найти число отрицательных элементов матрицы [MxN], расположенных в столбцах с номером, кратным A. Размерность асссива (число строк и (или) число столбцов) и значения его элементов ввести с клавиатуры.
Задан двухмерный массив вещественных чисел. Заменить все отрицательные элементы нулями и подсчитать сумму положительных элементов в каждом столбце. Размерность массива (число строк и (или) число столбцов) и значения его элементов ввести с клавиатуры.
Найти произведение элементов матрицы [MxN], расположенных выше главной диагонали. Размерность массива (число строк и (или) число столбцов) и значения его элементов ввести с клавиатуры.
Поменять местами элементы j и k столбцов матрицы [MxN]. Размерность массива (число строк и (или) число столбцов) и значения его элементов ввести с клавиатуры.
Определить количество элементов матрицы [MxN] больших A и расположенных в четных строках и столбцах. Размерность массива (число строк и (или) число столбцов) и значения его элементов ввести с клавиатуры.
Найти произведение элементов матрицы [MxN], расположенных выше главной диагонали. Размерность массива (число строк и (или) число столбцов) и значения его элементов ввести с клавиатуры.
Поменять местами элементы j и k столбцов матрицы [MxN]. Размерность массива (число строк и (или) число столбцов) и значения его элементов ввести с клавиатуры.
Определить количество элементов матрицы [MxN] больших A и расположенных в четных строках и столбцах. Размерность массива (число строк и (или) число столбцов) и значения его элементов ввести с клавиатуры.
Составить одномерный массив из максимальных элементов строк матрицы [MxN]. Размерность массива (число строк и (или) число столбцов) и значения его элементов ввести с клавиатуры

Контрольные вопросы

1. Каково назначение режимов Debug системы Turbo?

2. Какие команды имеются в режимах Debug?

3. Указать особенности программ, использующих массивы.

4. Какие операторы можно использовать для описания массивов?

5. В чем состоит особенность организации цикла при обработке массивов?

6. Указать особенности ввода и вывода массивов.

Наши рекомендации