Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Дьяченко Максим Артёмович. ПС-19-1. Лабораторная работа №2, 2-й семестр. Вариант 3.
- #include <iostream>
- using namespace std;
- //(1) Первая функция для работы с двойным указателем на матрицу:
- void function1(double** matrix, int rows, int columns) {
- double k = 1;
- for (int i = 0; i < rows; i += 2) {
- for (int j = 0; j < columns; j++) {
- k *= matrix[i][j];
- }
- }
- for (int i = 1; i < rows; i += 2) {
- for (int j = 0; j < columns; j++) {
- if (matrix[i][j] < 0) {
- matrix[i][j] = k;
- }
- }
- }
- }
- //(2) Вторая функция для работы с указателем на одномерный массив размерности length:
- void function2(double* array, int rows, int columns) {
- double k = 1;
- for (int i = 0; i < rows; i += 2) {
- for (int j = 0; j < columns; j++) {
- k *= array[i * columns + j];
- }
- }
- for (int i = 1; i < rows; i += 2) {
- for (int j = 0; j < columns; j++) {
- if (array[i * columns + j] < 0) {
- array[i * columns + j] = k;
- }
- }
- }
- }
- //ГЛАВНАЯ ФУНКЦИЯ:
- int main()
- {
- setlocale(LC_CTYPE, "rus");
- //Ввод размерности матрицы n x m:
- int n, m;
- cout << "Enter the number of rows in your matrix: "; cin >> n;
- cout << "Enter the number of columns in your matrix: "; cin >> m;
- //(1)Объявление матрицы с использованием двойного указателя:
- double** matrix = new double* [n];
- for (int i = 0; i < n; i++) {
- matrix[i] = new double[m];
- }
- //(2)Объявление матрицы с использованием указателя на одномерный массив размерности (n*m):
- double* array = new double[n * m];
- //(1)Заполнение матрицы с консоли:
- cout << "\nFill in your 1st matrix:\n";
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < m; j++) {
- cout << "Element [" << i << "][" << j << "]: "; cin >> matrix[i][j];
- }
- }
- //(2)Заполнение матрицы с консоли:
- cout << "\nFill in your 2nd matrix:\n";
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < m; j++) {
- cout << "Element [" << i << "][" << j << "]: "; cin >> *(array + i * m + j);
- }
- }
- //(1)Вывод матрицы на экран:
- cout << "\nYour 1st matrix: " << endl;
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < m; j++) {
- cout << matrix[i][j] << "\t";
- }
- cout << endl;
- }
- //(1)Вызов функции для обработки матрицы:
- function1(matrix, n, m);
- //(1)Вывод матрицы после использования функции:
- cout << "\nYour 1st matrix after using the function: " << endl;
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < m; j++) {
- cout << matrix[i][j] << "\t";
- }
- cout << endl;
- }
- //(2)Вывод матрицы на экран:
- cout << "\nYour 2nd matrix: " << endl;
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < m; j++) {
- cout << array[i * m + j] << "\t";
- }
- cout << endl;
- }
- //(2)Вызов функции для обработки матрицы:
- function2(&array[0], n, m);
- //(2)Вывод матрицы после использования функции:
- cout << "\nYour 2nd matrix after using the function: " << endl;
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < m; j++) {
- cout << array[i * m + j] << "\t";
- }
- cout << endl;
- }
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement