Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР15-С++24-мая-2012.doc
Скачиваний:
23
Добавлен:
23.09.2019
Размер:
1.07 Mб
Скачать

2.4.1.2. Пример обработки динамического массива для варианта 30

Заданы два массива А(5) и В(4). Первым на печать вывести массив, содержащий наименьшее значение. Напечатать также это значение и его порядковый номер.

2.4.1.3. Программа

//Лабораторная работа № 15

//Задание № 1

//Выполнила Петрова А.А.

#include<conio.h>

#include<iostream.h>

int main ()

// пример программы обработки динамических массивов

{

int n, // количество элементов в исходном массиве a

m; // количество элементов в исходном массиве b

Int *a, *b; // указатели исходных одномерных массивов a и b

int i, j; //счетчики циклов

int imina, //индекс минимального элемента массива a

jminb; //индекс минимального элемента массива b

int mina, //минимальный элемент массива a

minb; //минимальный элемент массива b

// формирование исходных массиваов

cout << "Введите количество элементов массива a: "; cin >> n;

a=new int[n];//динамическое выделение памяти для массива a

cout <<"Введите " <<n <<" элемента (ов) массива a: "<< endl;

for (i=0;i<n;i++) cin >> a[i];

cout << "Введите количество элементов массива b: "; cin >> m;

b=new int[m];//динамическое выделение памяти для массива b

cout <<"Введите " <<m <<" элемента (ов) массива b: "<< endl;

for (j=0;j<m;j++) cin >> b[j];

// Контрольный вывод исходных массиваов

cout << "Исходный массив a: " << endl;

for (i=0;i<n;i++) cout <<" a[ " <<i << " ] =" <<a [i] <<" ";

cout << endl ;

cout << "Исходный массив b: " << endl;

for (j=0;j<m;j++) cout <<" b[ " <<j << " ] =" <<b [j] <<" ";

cout << endl ;

//поиск минимального элемента массива a

imina=0;

mina=a[0];

for (i=1;i<n;i++)

{

if (a[i]<mina){mina=a[i];imina=i;}

}

//поиск минимального элемента массива b

jminb=0;

minb=b[0];

for (j=1;j<m;j++)

{

if (b[j]<minb){minb=b[j];jminb=j;}

}

cout <<"imina = "<< imina << " mina = "<< mina << endl;

cout <<"jminb = "<< jminb << " = "<< minb << endl;

if (mina < minb)

{cout << "Наименьшее значение в массиве a"<< endl;

for (i=0;i<n;i++) cout <<" a[ " <<i << " ] =" <<a [i] <<" ";

cout << endl;

}

else

{cout << "Наименьшее значение в массиве b"<< endl;

for (j=0;j<m;j++) cout <<" b[ " <<j << " ] =" <<b [j] <<" ";

cout << endl;

}

cout <<"Нажмите любую клавишу...";

getch() ;

delete []a; // освобождение динамической памяти

delete []b;// освобождение динамической памяти

return 0;

}

2.4.1.4. Тестирование

2.4.2. Задание 2. Динамические двумерных массивы

Ввести матрицу размером NxM. Память для массива выделить динамически. Выполнить в соответствии с номером варианта индивидуальное задание и вывести на экран исходные данные и полученный результат.

2.4.2.1. Варианты заданий

Таблица 15.1

Задание

1

Определить количество положительных элементов, расположенных ниже побочной диагонали матрицы.

2

Определить количество отрицательных элементов, расположенных выше главной диагонали матрицы.

3

Определить сумму отрицательных элементов, расположенных выше побочной диагонали матрицы.

4

Определить произведение положительных элементов, расположенных ниже главной диагонали матрицы.

5

Определить сумму элементов, расположенных на главной диагонали матрицы, и произведение элементов, расположенных на побочной диагонали матрицы.

6

Определить количество четных элементов, расположенных на главной и побочной диагоналях.

7

Найти максимальный среди элементов, лежащих ниже побочной диагоали.

8

Найти минимальный среди элементов, лежащих выше главной диагонали.

9

Найти максимальный среди элементов, лежащих выше побочной диагонали.

10

Найти минимальный среди элементов, лежащих ниже главной диагонали.

11

Найти в каждой строке матрицы максимальный элемент.

12

Найти в каждом столбце матрицы минимальный элемент.

13

Найти сумму элементов, расположенных в четных (по номеру) строках матрицы.

14

Найти произведение элементов, расположенных в нечетных (по номеру) столбцах матрицы.

15

Подсчитать сумму четных элементов и произведение нечетных элементов матрицы.

16

Задана матрица размером NxM. Получить массив B, присвоив его k-му элементу значение 0, если все элементы k-го столбца матрицы нулевые, и значение 1 − в противном случае.

17

Задана матрица размером NxM. Получить массив B, присвоив его k-му элементу значение 1, если элементы k-й строки матрицы упорядочены по убыванию, и значение 0 − в противном случае.

18

Задана матрица размером NxM. Получить массив B, присвоив его k-му элементу значение 1, если k-я строка матрицы симметрична, и значение 0 − в противном случае.

19

Задана матрица размером NxM. Определить количество «особых» элементов матрицы, считая элемент «особым», если он больше суммы остальных элементов своего столбца.

20

Задана матрица размером NxM. Определить количество «особых» элементов матрицы, считая элемент «особым», если в строке слева от него находятся элементы, меньшие его, а справа – большие.

21

Задана символьная матрица размером NxM. Определить количество различных элементов матрицы (т.е. повторяющиеся элементы считать один раз).

22

Дана матрица размером NxM. Упорядочить ее строки по возрастанию их первых элементов.

23

Дана матрица размером NxM. Упорядочить ее строки по возрастанию суммы их элементов.

24

Дана матрица размером NxM. Упорядочить ее столбцы по возрастанию их наименьших элементов.

25

Определить, является ли заданная квадратная матрица n-го порядка симметричной относительно побочной диагонали.

26

Для матрицы размером NxM вывести на экран все седловые точки. Элемент матрицы называется седловой точкой, если он является наименьшим в своей строке и одновременно наибольшим в своем столбце или наоборот.

27

В матрице размером NxM переставить строки так, чтобы на главной диагонали матрицы были расположены элементы, наибольшие по абсолютной величине.

28

В матрице размером NxM найти максимальный среди элементов, лежащих ниже побочной диагонали, и минимальный среди элементов, лежащих выше главной диагонали.

29

В матрице размером NxM поменять местами строку, содержащую элемент с наибольшим значением, со строкой, содержащей элемент с наименьшим значением.

30

В матрице размером NxM поменять местами минимальный и максимальный элементы.

31

Из матрицы размером NxM получить матрицу размером (N–1) x (M–1) путем удаления из исходной матрицы строки и столбца, на пересечении которых расположен элемент с наибольшим по модулю значением