Заполнение матрицы случайными числами

      Комментарии к записи Заполнение матрицы случайными числами отключены

void fillRandomMatrix(int m, int n, int **matrix);

Нахождение индекса строки с максимальной суммой модулей //элементов

int findMaxColumn(int m, int n, int **matrix);

Поиск минимального элемента в столбце

int findMinInColumn(int m, int n, int **matrix, int col);

Вывод матрицы

void outputMatrix(int m, int n, int **matrix);

Освободить память

void freeMemory(int m, int n, int **matrix);

int main()

{

srand(time(NULL));

int m, n, maxColumn, minElement;

int **matrix;

matrix = 0;

m = n = 6;

allocMemory(m, n, matrix);

fillRandomMatrix(m, n, matrix);

outputMatrix(m, n, matrix);

maxColumn = findMaxColumn(m, n, matrix);

minElement = findMinInColumn(m, n, matrix, maxColumn);

cout

freeMemory(m, n, matrix);

return 0;

}

Выделение памяти

void allocMemory(int m, int n, int **matrix)

{

int i;

matrix = new int*[m];

for (i = 0; im; i++) {

matrix[i] = new int[n];

}

}

Заполнение матрицы случайными числами

void fillRandomMatrix(int m, int n, int **matrix)

{

int i, j;

for (i = 0; im; i++) {

for (j = 0; jn; j++) {

matrix[i][j] = rand() % 30;

}

}

}

Нахождение индекса строки с максимальной суммой модулей элементов

int findMaxColumn(int m, int n, int **matrix)

{

int maxCol;

int cursum, sum;

int i, j;

sum = 0;

maxCol = 0;

for (j = 1; jn; j++) {

cursum = 0;

for (i = 0; im; i++) {

cursum += (matrix[i][j]0) ? -matrix[i][j] : matrix[i][j];

}

if (cursumsum) {

sum = cursum;

maxCol = j;

}

}

return maxCol;

}

Поиск минимального элемента в столбце

int findMinInColumn(int m, int n, int **matrix, int col)

{

int i, mi;

mi = 0;

for (i = 1; im; i++) {

if (matrix[i][col]matrix[mi][col]) {

mi = i;

}

}

return mi;

}

Вывод матрицы

void outputMatrix(int m, int n, int **matrix)

{

int i, j;

for (i = 0; im; i++)

{

for (j = 0; jn; j++)

{

cout

}

cout

}

}

Освобождение памяти

void freeMemory(int m, int n, int **matrix)

{

int i;

for (i = 0; im; i++) {

delete[] matrix[i];

}

delete[] matrix;

}

В этой программе для выделения места в памяти для динамического массива и заполнения его случайными числами используются аналогичные предыдущей задаче функции. После создания массива и вывода его на экран мы вызываем функцию maxColumn = findMaxColumn(m, n, matrix).

Эта функция имеет тип возврата int, и должна нам вернуть намер строки, в которой находится макимальная по модулю сумма элементов. Поэтому мы можем сохранить возвращенное значение в переменной maxColumn целого типа.

В теле функции мы создаем переменную maxCol, в которой сформируется индекс искомой строки, и переменные cursum, sum в которых будут храниться сумма текущей строки и максимальная сумма соответственно. Находим сумму каждой строки и сравниваем ее с максимальной , индекс сохраняем в переменной maxCol.

Когда функция завершит работу в этой переменной окажется индекс, который функция возвратит, а мы сохраним.Напомню оператор

cursum += (matrix[i][j]0) ? -matrix[i][j] : matrix[i][j];

условный. Мы проходили его ранее.

В данном случае к значению в cursum мы прибавляем значение -matrix[i][j], если этот элемент меньше нуля, и matrix[i][j] если больше. В переменной cursum ,таким образом, сформируется сумма модулей элементов строки.

После того, как мы находим индекс строки, обращаемся к функции

minElement = findMinInColumn(m, n, matrix, maxColumn)

и в этой строке находим минимальный элемент. Функция возвращает его , и мы сохраняем возвращенное значение в переменной minElement.В функцию передаем размер массива, его адрес и номер строки с максимальной суммой модулей элементов. Выводим минимальный элемент этой строки на экран и проверяем , правильно ли работает программа.

Работу по созданию вашей программы следует выполнять поэтапно.

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

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

Присвойте элементам массива F размерностью m ?n случайные числа от -20 до 20. Выведите на экран.Найдите наибольшее среди произведений элементов столбцов массива . Выведите на экран.Замените отрицательные значения нечетных столбцов элементов массива этим значением. Выведите на экран преобразованный массив.
Дан целочисленный массив R размерностью n?n. Заполните его случайными числами от-50 до +50. Выведите на экран.Вычислите сумму элементов массива, расположенных ниже главной диагонали. Выведите на экран.Определите количество положительных элементов на главной диагонали . Выведите на экран.Замените им все элементы, расположенные выше главной диагонали. Преобразованный массив выведите на экран.
Заполните массив К размерностью m?n случайными числами от -25 до 75. Выведете на экран.Посчитайте произведения всех отрицательных элементов массива. Выведите на экран.Найдите суммы каждого столбца и определить минимальную среди полученных сумм. Выведите на экран.Замените ею отрицательные элементы массива. Преобразованный массив выведите на экран.
Присвойте элементам массива D размерностью m?m случайные числа от-10 до 15. Вывести на экран.Посчитать произведения всех положительных элементов массива. Вывести на экран.Отрицательные элементы четных строк массива замените их модулями. Преобразованный массив выведите на экранНайдите максимальный и минимальный элементы массива. Выведите на экран
Присвойте элементам массива В размерностью m?n случайные числа от 0 до 90. Выведите на экран.Выберите четные элементы массива, среди них найдите максимальный элемент и выведите его на экранНайдите суммы всех строк массива. Выведите на экран.Замените элементы массива, кратные 5,средним арифметическим этих сумм. Преобразованный массив выведите на экран
Присвойте элементам массива Q размерностью m?n случайные числа от -20 до 65. Выведите на экран.Определите минимальный элемент в каждом столбце матрицы . Выведите на экранНайти максимальный элемент массива. Выведите на экран.Замените им отрицательные элементы, расположенные в k-ой строке. Преобразованный массив выведите на экран
Присвойте элементам массива Q размерностью m?m случайные числа от -30 до 65. Выведите на экран.Найдите индекс строки с минимальным элементом массива. Выведите на экран.Вычислите сумму элементов, расположенных в четных строках. Выведите на экранЗамените им положительные элементы главной диагонали . Преобразованный массив выведите на экран
Присвойте элементам массива В размерностью m?n случайные числа от -20 до 90. Выведите на экран.Найдите количество положительных элементов массива. Выведите на экран.Найдите максимальный элемент k-ой строки . Выведите на экран.Замените им отрицательные элементы, первой строки. Преобразованный массив выведите на экран.
Дан целочисленный массив R размерностью n?n. Заполните его случайными числами от-50 до +50. Выведите на экран.Вычислите сумму элементов массива, расположенных выше главной диагонали. Выведите на экран.Определите количество положительных элементов на главнойдиагонали . Выведите на экран.Замените им все элементы, расположенные ниже главной диагонали. Преобразованный массив выведите на экран.
Дан действительный массив P размерностью n?n. Заполните его случайными числами от-50 до +80. Выведите на экранНайдите сумму элементов каждого столбца массива . Выведите на экран.Определите минимальную из полученных сумм. Выведите на экран.Замените отрицательные элементы на главной диагонали полученной суммой. Преобразованный массив выведите на экран.
Присвойте элементам массива Q размерностью m?n случайные числа от -20 до 80. Выведите на экран.Отрицательные элементы массива, расположенные в четных строках, заменить на квадраты их значений. Преобразованный массив выведите на экран.Найти максимальный элемент среди элементов, расположенных в четных столбцах. Выведите на экран.
Присвойте элементам массива Q размерностью m?n случайные числа от -60 до 65. Выведите на экран.Отрицательные элементы массива, расположенные в нечетных строках, заменить на квадраты их значений. Преобразованный массив выведите на экран.Найдите максимальные элементы столбцов массива. Выведите на экран.
Присвойте элементам массива А размерностью m?n случайные числа от 25 до 75. Выведите на экран.Выведите на экран отдельно элементы массива кратные 5. Элементам не кратным 5 присвойте значение 0 и выведите на экран преобразованный массив.Найдите наибольшее среди произведений элементов столбцов массива . Выведите на экран.
Присвойте элементам массива В размерностью n ?n случайные числа от -20 до 25. Выведите на экран.Найдите наибольшее среди произведений элементов столбцов массива . Выведите на экран.Диагональные элементы массива заменить средними арифметическими соответствующих столбцов. Преобразованный массив выведите на экран
Присвойте элементам массива В размерностью n ?n случайные числа от -50 до 50. Выведите на экран.Замените отрицательные элементы, расположенные на главной диагонали и выше нее на их квадраты и посчитать количество замен. Выведите преобразованный массив.Замените все элементы первой строки максимальным элементом массива. Выведите преобразованный массив.
Присвойте элементам массива V размерностью m ?n случайные числа от -90 до 65. Выведите на экран.Найти наибольшее значение среди сумм элементов столбцов массива. Выведите на экран.Элементы k –ой строки массива заменить средними арифметическими соответствующих столбцов. Выведите на экран преобразованный массив.

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

1)Что такое функция? Зачем нужно? Приведите пример простейшей функции.

2) Как передаются аргументы в функцию? Что можно передавать в качестве аргумента? Приведите примеры.

3) Что возвращает функция? Приведите примеры.

4) Приведите решение любой из задач данной лабораторной работы кроме своего варианта.

Лабораторная работа №7

Цель: усовершенствовать навыки программирования на примере решения задачи записи и чтения информации из файлов.

Задачи:

1) Изучить вопросы использования текстовых файлов для чтения/записи информации.

2) Разработать программу, табулирующую некую функцию и производящую запись результата в текстовый файл.

3) Разработать программу, читающую из файла данные табулированной функции.

Статьи к прочтению:

Заполнить массив случайными числами. Генератор уникальных случайных чисел. rand. srandДЗ #7


Похожие статьи: