ПР 33_Двумерные массивы. Практическая работа 33 Составление и отладка программ формирования двумерных массивов с переменными размерами
Скачать 32.44 Kb.
|
Практическая работа № 33 Составление и отладка программ формирования двумерных массивов с переменными размерами. Цель работы: совершенствование навыков структурного программирования на языке С++ при решении задач обработки двумерных динамических массивов Порядок выполнения работы: 1) Получить у преподавателя индивидуальное задание и выполнить постановку задачи: сформулировать условие, определить входные и выходные данные. 2) Построить блок схему алгоритма решения задачи. 3) Составить программу на языке С++ с использованием одномерных массивов. 4) Входные данные вводить с клавиатуры по запросу. Выходные данные (сообщения)выводить на экран в развернутой форме. 5) Проверить и продемонстрировать преподавателю работу программы на полном наборе тестов. 6) Оформить отчет о практической работе в составе: постановка задачи, блок-схема алгоритма решения, текст программы, контрольные примеры Содержание отчета по практической работе: Титульный лист с названием работы. Цель практической работы. Задание для практической работы. постановка задачи блок-схема алгоритма решения текст программы контрольные тестовые примеры Демонстрационный пример Задача 1. Сформировать массив А[N][M], заполнить его случайными числами. Вывести элементы массива на экран. Найти сумму элементов каждой строки массива. #include #include #include using namespace std; void vvod_massiv(int **T,int N,int M); void vivod_massiv(int** T, int N, int M); void sum_v_stroke(int** T, int N, int M); int main() { setlocale(LC_ALL, "Russian"); int **A=NULL, N, M,i; cout << "Введите количество строк "; cin >> N; cout << "Введите количсетво столбцов "; cin >> M; A = new int* [N]; for (i = 0; i < N; i++) A[i] = new int[M]; srand(time(0)); //заполнение массива vvod_massiv(A,N,M); //вывод массива cout << "Матрица A\n"; vivod_massiv(A,N,M); // нахождение суммы элементов каждой строки cout << endl << "Сумма элементов в каждой строке\n"; sum_v_stroke(A,N,M); for (i = 0; i < N; i++) delete[]A[i]; delete[]A; system("pause"); return 0; } void vvod_massiv(int** T, int N, int M) { int i, j; for (i = 0; i < N; i++) for (j = 0; j < M; j++) T[i][j] = rand() % 21 - 10; } void vivod_massiv(int** T, int N, int M) { int i, j; for (i = 0; i < N; i++) { for (j = 0; j < M; j++) { cout << setw(4) << T[i][j]; } cout << endl; } } void sum_v_stroke(int** T, int N, int M) { int* d, s, i, j; d = new int[N]; for (i = 0; i < N; i++) { s = 0; for (j = 0; j < M; j++) { s += T[i][j]; } d[i] = s; cout << "Сумма элементов в " << i << " строке = " << d[i] << endl; } delete []d; } Задача 2. Сформировать массив А[N][M], заполнить его случайными числами. Вывести элементы массива на экран. Найти количество четных элементов к-го столбца массива. // Найти количество четных элементов к-го столбца массива #include #include #include using namespace std; void vvod_massiv(int** T, int N, int M); void vivod_massiv(int** T, int N, int M); void kol_chetK_stolb(int** T, int N, int M,int k); int main() { setlocale(LC_ALL, "Russian"); int** A = NULL, N, M, i,k; cout << "Введите количество строк "; cin >> N; cout << "Введите количсетво столбцов "; cin >> M; A = new int* [N]; for (i = 0; i < N; i++) A[i] = new int[M]; srand(time(0)); //заполнение массива vvod_massiv(A, N, M); //вывод массива cout << "Матрица A\n"; vivod_massiv(A, N, M); // нахождение суммы элементов каждой строки cout << "Введите номер столбца, для подсчета количества четных "; cin >> k; kol_chetK_stolb(A, N, M,k); for (i = 0; i < N; i++) delete[]A[i]; delete[]A; system("pause"); return 0; } void vvod_massiv(int** T, int N, int M) { int i, j; for (i = 0; i < N; i++) for (j = 0; j < M; j++) T[i][j] = rand() % 21 - 10; } void vivod_massiv(int** T, int N, int M) { int i, j; for (i = 0; i < N; i++) { for (j = 0; j < M; j++) { cout << setw(4) << T[i][j]; } cout << endl; } } void kol_chetK_stolb(int** T, int N, int M,int k) { int i,count(0); for (i = 0; i < N; i++) { if (T[i][k]%2==0) count++; } cout <<"Количество четных элементов в "< } Задания по вариантам Индивидуальные задания. Дана матрица размера M × N и целое число K (1 ≤ K ≤ M). Найти сумму и произведение элементов K-й строки данной матрицы. Дана матрица размера M × N. В каждой ее строке найти количество элементов, меньших среднего арифметического всех элементов этой строки. Дана матрица размера M × N. Для каждого столбца матрицы найти произведение его элементов. Дана матрица размера M × N. Для каждой строки матрицы с нечетным номером (1, 3, …) найти произведение ее элементов. Условный оператор не использовать. Дана матрица размера M × N. Для каждой строки матрицы с нечетным номером (1, 3, …) найти сумму ее элементов. Условный оператор не использовать. Дана матрица размера M × N и целое число K (1 ≤ K ≤ N). Найти сумму и произведение элементов K-го столбца данной матрицы. Дана матрица размера M × N. Для каждого столбца матрицы с четным номером (2, 4, …) найти произведение его элементов. Условный оператор не использовать. Дана целочисленная матрица размера M × N. Найти номер последней из ее строк, содержащих только четные числа. Если таких строк нет, то вывести 0. Дана матрица размера M × N. Для каждого столбца матрицы с четным номером (2, 4, …) найти сумму его элементов. Условный оператор не использовать. Дана матрица размера M × N. В каждом ее столбце найти количество элементов, больших среднего арифметического всех элементов этого столбца. Дана матрица размера M × N. Для каждой строки матрицы с нечетным номером (1, 3, …) найти среднее арифметическое ее элементов. Условный оператор не использовать. Дана целочисленная матрица размера M × N. Найти номер первой из ее строк, содержащих равное количество положительных и отрицательных элементов (нулевые элементы матрицы не учитываются). Если таких строк нет, то вывести 0. Дана матрица размера M × N. Для каждого столбца матрицы с четным номером (2, 4, …) найти среднее арифметическое его элементов. Условный оператор не использовать. Дана целочисленная матрица размера M × N. Найти номер последнего из ее столбцов, содержащих равное количество положительных и отрицательных элементов (нулевые элементы матрицы не учитываются). Если таких столбцов нет, то вывести 0. Дана целочисленная матрица размера M × N. Найти номер первого из ее столбцов, содержащих только нечетные числа. Если таких столбцов нет, то вывести 0. |