Файл: Лабораторная работа 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;
}