Программирование км-6 вариант 6. Динамические массивы.
Скачать 222.06 Kb.
|
ИНСТИТУТ ДИСТАНЦИОННОГО И ДОПОЛНИТЕЛЬНОГО ОБРАЗОВАНИЯ Задание по учебной дисциплине: «Программирование» Тема: «Динамические массивы.» Вариант №6 Работу выполнил: Студент группы ИДзс-21-22 Минин Дмитрий Михайлович Москва 2023 ОглавлениеЗадача №2: 3 Условие 3 Состав данных 3 Блок-схема алгоритма 3 Программа на С++ 4 Пример выполнения программы: 6 Задача №3: 7 Условие 7 Состав данных 7 Блок-схема алгоритма 7 Программа на С++ 8 Пример выполнения программы: 10 Задача №4: 11 Условие 11 Состав данных 11 Блок-схема алгоритма 11 Программа на С++ 12 Пример выполнения программы: 15 Задача №2:Условие1. Найти число n1 отрицательных элементов вектора X и их сумму C1 и число n2 положительных элементов вектора Y и их сумму C2. Состав данных
Блок-схема алгоритмаПрограмма на С++#include #include using namespace std; int main() { int n, n1 = 0, n2 = 0, C1 = 0, C2 = 0; cout << "Enter the number of vector elements: " << endl; cin >> n; int* X = new int[n]; int* Y = new int[n]; // cout << "Enter the elements of the vector X: " << endl; // Для удобства заполним массив псевдорандомными числами cout << "Vector X: " << endl; for (int i = 0; i < n; i++) { X[i] = rand() % 100 - 50; cout << X[i] << endl; if (X[i] < 0) { n1++; C1 = C1 + X[i]; } } cout << "Vector Y: " << endl; // cout << "Enter the elements of the vector Y: " << endl; for (int i = 0; i < n; i++) { Y[i] = rand() % 100 - 50; cout << Y[i] << endl; if (Y[i] > 0) { n2++; C2 = C2 + Y[i]; } } cout << "n1 = " << n1 << endl; cout << "n2 = " << n2 << endl; cout << "C1 = " << C1 << endl; cout << "C2 = " << C2 << endl; delete[] X, Y; } Пример выполнения программы:Задача №3:Условие1. Для каждого столбца матрицы вычислить среднее арифметическое элементов, меньших первого элемента этого столбца Состав данных
Блок-схема алгоритмаПрограмма на С++#include using namespace std; int main() { setlocale(LC_ALL, "RUS"); int rows, columns, counter; cout << "Введите количество строк матрицы: " << endl; cin >> rows; cout << "Введите количество столбцов матрицы: " << endl; cin >> columns; int* first_elements_columns = new int[columns]; float* average_mean = new float[columns]; int** array = new int* [rows]; for (int i = 0; i < rows; i++) { array[i] = new int[columns]; } for (int i = 0; i < rows; i++) { for (int j = 0; j < columns; j++) { array[i][j] = rand() % 100; } } cout << endl; cout << "Матрица: " << endl; for (int i = 0; i < rows; i++) { for (int j = 0; j < columns; j++) { cout << array[i][j] << "\t"; } cout << endl; } cout << endl; for (int i = 0; i < columns; i++) { first_elements_columns[i] = array[0][i]; } cout << "Среднее арифметическое значений, что меньше первого элемента столбца:" << endl; for (int i = 0; i < columns; i++) { average_mean[i] = 0; counter = 0; for (int j = 1; j < rows; j++) { if (array[j][i] < first_elements_columns[i]) { average_mean[i] += array[j][i]; counter++; } } average_mean[i] = average_mean[i] / counter; cout << average_mean[i] << "\t"; } cout << endl; for (int i = 0; i < rows; i++) { delete[] array[i]; } delete[] array, first_elements_columns, average_mean; } Пример выполнения программы:Задача №4:Условие1. В матрицах A(7×7) и B(5×5) заменить каждый положительный элемент, стоящий выше главной диагонали, на нуль. Состав данных
Блок-схема алгоритмаПрограмма на С++#include using namespace std; int main() { setlocale(LC_ALL, "ru"); const int R_C_A = 7; const int R_C_B = 5; int A[R_C_A][R_C_A], B[R_C_B][R_C_B]; cout << "Матрица А:" << endl; for (int i = 0; i < R_C_A; i++) { for (int j = 0; j < R_C_A; j++) { A[i][j] = rand() % 100 - 50; if (A[i][j] > 0) { cout << " "; } cout << A[i][j] << "\t"; } cout << endl; } cout << endl; cout << "Матрица B:" << endl; for (int i = 0; i < R_C_B; i++) { for (int j = 0; j < R_C_B; j++) { B[i][j] = rand() % 100 - 50; if (B[i][j] > 0) { cout << " "; } cout << B[i][j] << "\t"; } cout << endl; } cout << endl; for (int i = 0; i < R_C_A; i++) { for (int j = 0; j < R_C_A; j++) { if (i < j) { if (A[i][j] > 0) { A[i][j] = 0; } } } } for (int i = 0; i < R_C_B; i++) { for (int j = 0; j < R_C_B; j++) { if (i < j) { if (B[i][j] > 0) { B[i][j] = 0; } } } } cout << "Преобразованная матрица А:" << endl; for (int i = 0; i < R_C_A; i++) { for (int j = 0; j < R_C_A; j++) { if (A[i][j] > 0) { cout << " "; } cout << A[i][j] << "\t"; } cout << endl; } cout << endl; cout << "Преобразованная матрица B:" << endl; for (int i = 0; i < R_C_B; i++) { for (int j = 0; j < R_C_B; j++) { if (B[i][j] > 0) { cout << " "; } cout << B[i][j] << "\t"; } cout << endl; } cout << endl; } Пример выполнения программы: |