Домашнее задание для ПО 2.11 по системному программированию от 18.05.20
учебно-методическое пособие

Склемин Алексей Анатольевич

Нужно вычислить произведение матрицы на вектор. В полученном векторе найти макисмальный  элемент. необходимо решить данную задачу тремя способами:

  1. с использованием статических массивов
  2. использовать только динамические массивы с явным разыменованием указателя
  3. использовать только динамические массивы, адресацию к элементам массива выполнять с помощью индексов.

Скачать:

ВложениеРазмер
Microsoft Office document icon 44.doc30 КБ

Предварительный просмотр:

Сорок четвертое задание

Нужно вычислить произведение матрицы на вектор. В полученном векторе найти макисмальный  элемент. необходимо решить данную задачу тремя способами:

  1. с использованием статических массивов
  2. использовать только динамические массивы с явным разыменованием указателя
  3. использовать только динамические массивы, адресацию к элементам массива выполнять с помощью индексов.

#include

using namespace std;

#include

int main()

{

    int matrix[100][100], // статический массив

        rows    = 0,      // строки

        columns = 0;      // столбцы

    cout << "Введите количество строк матрицы: ";

    cin >> rows;

    cout << "Введите количество столбцов матрицы: ";

    cin >> columns;

    // заполнение матрицы

    for (int ix = 0; ix < rows; ix++ )

        for (int jx = 0; jx < columns; jx++)

        {

            cout << "matrix[" << (ix + 1) << "][" << (jx + 1) << "] = ";

            cin  >> matrix[ix][jx];

        }

 

    int vector[100]; // вектор

    cout << "Введите элементы вектора:\n";

    // заполнение вектора

    for (int ix = 0; ix < columns; ix++ )

    {

        cout << "vector[" << (ix + 1) << "] = ";

        cin >> vector[ix];

    }

    cout << "\nВведенная матрица:\n";

    for (int ix = 0; ix < rows; ix++ )

    {

        for (int jx = 0; jx < columns; jx++)

        {

            cout << setw(4) << matrix[ix][jx];

        }

        cout << endl;

    }

    cout << "\nВведенный вектор:\n";

    for (int ix = 0; ix < columns; ix++ )

    {

        cout << setw(4) << vector[ix] << endl;

    }

    int out[100]; // выходной вектор

    // умножение элементов матрицы на вектор

    for (int ix = 0; ix < rows; ix++)

    {

        out[ix] = 0;

        for (int jx = 0; jx < columns; jx++)

            out[ix] += matrix[ix][jx] * vector[jx];

    }

    cout << "\результирующий вектор:\n";

    for (int ix = 0; ix < rows; ix++ )

    {

        cout << setw(4) << out[ix] << endl;

    }

    int max = out[0]; // переменная для хранения максимального значения

    for (int ix = 0; ix < rows; ix++ )

        if ( max < out[ix] ) // поиск максимального значения в одномерном массиве

            max = out[ix];

        cout << "\nМаксимальное значение = " << max << endl;

    return 0;

}


По теме: методические разработки, презентации и конспекты

Домашнее задание для ПО 1.11 по системному программированию от 04.02.20

Шестнадцатеричное представление Представим, что необходимо просмотреть содержимое некотоpых байт в памяти. Требуется oпределить содержимое четырех последовательных байт (двух слов), которые имеют двои...

Домашнее задание для ПО 1.11 по системному программированию от 11.02.20

Сегменты Сегментом называется область, которая начинается на границе параграфа, то есть, по любому адресу, который делится на 16 без остатка. Хотя сегмент может располагаться в любом месте памяти и им...