Файл: Лабораторная работа 6 по дисциплине Алгоритмизация и программирование Тема Функции Студент Карлышев Кирилл (ри121120) гр. Преподаватель Чечеткин Виктор Алексеевич Екатеринбург.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 08.11.2023

Просмотров: 15

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Министерство образования и науки Российской Федерации

ФГАОУ ВПО «УрФУ имени первого Президента России Б.Н. Ельцина»



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

по дисциплине

«Алгоритмизация и программирование»

Тема: «Функции»

Студент Карлышев Кирилл (РИ-121120)

гр.

Преподаватель Чечеткин Виктор Алексеевич

Екатеринбург

2023

Задание 1



Краткое описание метода решения

Дано три матрицы размером 9x4, заполненные случайными значениями 0 или 1. Необходимо найти матрицу с наибольшим количеством нулевых строк и вывести ее на экран. Для этого используется функция generateMatrix, которая заполняет матрицу случайными значениями, функция countZeroRows, которая считает количество нулевых строк в матрице, и функция printMatrix, которая выводит матрицу на экран. Затем для каждой матрицы вызывается функция countZeroRows, результаты сравниваются, и на экран выводится матрица с наибольшим количеством нулевых строк.

Блок-схема





Результат работы программы

Matrix 1:

0 1 0 1

1 0 0 1

0 1 0 0

0 1 0 1

0 0 0 0

0 1 0 1

0 1 1 0

0 1 0 0

0 0 1 0
Matrix 2:

1 0 1 1

1 1 1 1

1 1 0 1

1 0 0 0

1 0 1 0

1 0 0 1

1 0 0 0

0 1 0 1

1 1 0 0

Matrix 3:

1 1 1 0


1 1 1 0

0 1 0 1

0 1 1 1

0 1 1 1

1 1 1 0

0 1 1 0

1 0 0 0

1 0 0 0
Matrix 1 contains the most zero rows.

0 1 0 1

1 0 0 1

0 1 0 0

0 1 0 1

0 0 0 0

0 1 0 1

0 1 1 0

0 1 0 0

0 0 1 0

Программа №1

#include

#include

#include

void generateMatrix(int matrix[][4], int rows, int cols) {

for (int i = 0; i < rows; i++) {

for (int j = 0; j < cols; j++) {

matrix[i][j] = rand() % 2 - 0;

}

}

}

int countZeroRows(int matrix[][4], int rows, int cols) {

int count = 0;

for (int i = 0; i < rows; i++) {

bool isZeroRow = true;

for (int j = 0; j < cols; j++) {

if (matrix[i][j] != 0) {

isZeroRow = false;

break;

}

}

if (isZeroRow) {

count++;

}

}

return count;

}
// печать матрицы

void printMatrix(int matrix[][4], int rows, int cols) {

for (int i = 0; i < rows; i++) {

for (int j = 0; j < cols; j++) {

std::cout << matrix[i][j] << '\t';

}

std::cout << '\n';

}

}
int main() {

const int ROWS = 9;

const int COLS = 4;
srand(time(nullptr));
// генерируем 3 матрицы

int matrix1[ROWS][COLS];

int matrix2[ROWS][COLS];

int matrix3[ROWS][COLS];

generateMatrix(matrix1, ROWS, COLS);

generateMatrix(matrix2, ROWS, COLS);

generateMatrix(matrix3, ROWS, COLS);
// выводим матрицы на экран

std::cout << "Matrix 1:\n";

printMatrix(matrix1, ROWS, COLS);

std::cout << '\n';
std::cout << "Matrix 2:\n";

printMatrix(matrix2, ROWS, COLS);

std::cout << '\n';
std::cout << "Matrix 3:\n";

printMatrix(matrix3, ROWS, COLS);

std::cout << '\n';
// находим матрицу с наибольшим количеством нулевых строк

int count1 = countZeroRows(matrix1, ROWS, COLS);

int count2 = countZeroRows(matrix2, ROWS, COLS);

int count3 = countZeroRows(matrix3, ROWS, COLS);
if (count1 > count2 && count1 > count3) {

std::cout << "Matrix 1 contains the most zero rows.\n";

printMatrix(matrix1, ROWS, COLS);

} else if (count2 > count1 && count2 > count3) {

std::cout << "Matrix 2 contains the most zero rows.\n";

printMatrix(matrix2, ROWS, COLS);

} else {

std::cout << "Matrix 3 contains the most zero rows.\n";

printMatrix(matrix3, ROWS, COLS);

}
return 0;

}