Главная страница
Навигация по странице:

  • Выбор назначения подпрограмм Функция matrin

  • Шаблоны выбранных функций

  • ООП. Лабораторная работа 4 Разработка программ с выделением подпрограмм (4 часа)


    Скачать 199.5 Kb.
    НазваниеЛабораторная работа 4 Разработка программ с выделением подпрограмм (4 часа)
    Дата22.10.2022
    Размер199.5 Kb.
    Формат файлаdoc
    Имя файлаlaba 5 106.doc
    ТипЛабораторная работа
    #748775

    Лабораторная работа №4

    Разработка программ с выделением подпрограмм
    (4 часа)

    1. РЕШЕНИе ЗАДАЧИ 3.6

    Условие


    Даны матрицы (5×4), (5×5), (3×7). Вычислить значение выражения Amax Bmax – Cmax, где Amax (BmaxCmax) — максимальный из элементов, лежащих ниже главной диагонали матрицы A (B, C).

    Выбор назначения подпрограмм
    Функция matrin заполняет матрицу значениями с клавиатуры.

    Функция maxlowdiag находит максимальный элемент ниже главной диагонали.

    Функция maxel находит максимальный элемент в матрице и выводит на экран.

    Функция dropoutmatrix выводит матрицу на печать.

    Функция rezultat считает результат выражения из условия и выводит на экран.


    Шаблоны выбранных функций
    void matrinA (float A[5][4], int n, int m)

    void matrinB (float B[5][5], int n, int m)

    void matrinC (float C[3][7], int n, int m)

    void Random (double **x, int n, int m)

    void maxlowdiag (float A[5][4], int n, int m, float* pa)

    void maxelB (float B[5][5], int n, int m, float* pb)

    void maxelC (float C[3][7], int n, int m, float* pc)

    void dropoutmatrix (float A[5][4], int n, int m)

    void rezultat (float* pa, float* pb, float* pc)

    Состав данных функции main


    Имя

    Смысл

    Тип

    Структура

    Исходные данные

    A

    заданные матрицы

    вещественный

    Двумерный массив

    B

    C

    b

    Изначальное значения максимума матрицы B

    вещественный

    простая переменная

    a

    Изначальное значения максимума матрицы A

    вещественный

    простая переменная

    c

    Изначальное значения максимума матрицы C

    вещественный

    простая переменная

    rezult

    Изначальное значение результат выражения

    вещественный

    простая переменная

    Выходные данные

    rezultat

    Результат выражения

    вещественный

    простая переменная

    Состав данных функции matrinA


    Имя

    Смысл

    Тип

    Структура

    Исходные данные

    A

    Вводимая матрица

    вещественный

    Двумерный массив с числом столбцов 7 или 5

    n

    Количество строк

    целый

    простая переменная

    m

    Количество столбцов

    целый

    простая переменная












    Состав данных функции matrinB


    Имя

    Смысл

    Тип

    Структура

    Исходные данные

    B

    Вводимая матрица

    вещественный

    Двумерный массив с числом столбцов 7 или 5

    n

    Количество строк

    целый

    простая переменная

    m

    Количество столбцов

    целый

    простая переменная















    Состав данных функции matrinC


    Имя

    Смысл

    Тип

    Структура

    Исходные данные

    C

    Вводимая матрица

    вещественный

    Двумерный массив с числом столбцов 7 или 5

    n

    Количество строк

    целый

    простая переменная

    m

    Количество столбцов

    целый

    простая переменная














    Состав данных функции maxlowdiag


    Имя

    Смысл

    Тип

    Структура

    Исходные данные

    A

    матрица

    вещественный

    Двумерный массив

    n

    Количество строк

    целый

    простая переменная

    m

    Количество столбцов

    целый

    простая переменная

    pa

    Поинтер, содержит данные области памяти, максимальной переменой в матрице

    вещественный

    Переменная - указатель

    Выходные данные

    maxA

    Максимальный элемент матрицы ниже главн. Д.

    вещественный

    простая переменная














    Состав данных функции maxelB


    Имя

    Смысл

    Тип

    Структура

    Исходные данные

    B

    матрица

    вещественный

    Двумерный массив

    n

    Количество строк

    целый

    простая переменная

    m

    Количество столбцов

    целый

    простая переменная

    pb

    Поинтер, содержит данные области памяти, максимальной переменой в матрице

    вещественный

    Переменная - указатель

    Выходные данные

    maxB

    Максимальный элемент матрицы

    вещественный

    простая переменная



    Состав данных функции maxelС


    Имя

    Смысл

    Тип

    Структура

    Исходные данные

    С

    матрица

    вещественный

    Двумерный массив

    n

    Количество строк

    целый

    простая переменная

    m

    Количество столбцов

    целый

    простая переменная



    Поинтер, содержит данные области памяти, максимальной переменой в матрице

    вещественный

    Переменная - указатель

    Выходные данные

    maxC

    Максимальный элемент матрицы

    вещественный

    простая переменная


    Состав данных функции dropoutmatrix


    Имя

    Смысл

    Тип

    Структура

    Исходные данные

    A

    матрица

    вещественный

    Двумерный массив

    n

    Количество строк

    целый

    простая переменная

    m

    Количество столбцов

    целый

    простая переменная



    Поинтер, содержит данные области памяти, максимальной переменой в матрице

    вещественный

    Переменная - указатель

    Выходные данные

    A

    Заполненная матрица

    вещественный

    Двумерный массив



    Состав данных функции rezultat


    Имя

    Смысл

    Тип

    Структура

    Исходные данные

    rezult

    Переменная, хранит результат выражения

    вещественный

    Переменная - указатель

    pa

    Поинтер, содержит данные области памяти, максимальной переменой в матрице

    вещественный

    Переменная - указатель

    pb

    Поинтер, содержит данные области памяти, максимальной переменой в матрице

    вещественный

    Переменная - указатель



    Поинтер, содержит данные области памяти, максимальной переменой в матрице

    вещественный

    Переменная - указатель

    Выходные данные

    rezult

    Значение выражения

    вещественный

    простая переменная



    Ф
    орма ввода для функции dropoutmatrix




    Форма вывода для функции dropoutmatrix




    Блок-схема алгоритма функции main




    Однофайловая программа на СИ++
    (консольное приложение MS Visual Studio 2008)


    #include

    using namespace std;

    void matrinA(float A[5][4], int n, int m) {
    cout << "matrix A" << endl;
    for (int i = 0; i < n; i++)

    {
    for (int j = 0; j < m; j++) {

    cin >> A[i][j];

    }
    }
    }

    void matrinB(float B[5][5], int n, int m) {
    cout << "matrix B " << n << m << endl;
    for (int i = 0; i < n; i++)
    for (int j = 0; j < m; j++)
    cin >> B[i][j];

    }

    void matrinC(float C[3][7], int n, int m) {
    cout << "matrix C " << n << m << endl;
    for (int i = 0; i < n; i++)
    for (int j = 0; j < m; j++)
    cin >> C[i][j];

    }

    void maxlowdiag(float A[5][4], int n, int m, float* pa) {

    float maxA = A[0][0];

    for (int i = 0; i <= n; i++)

    {

    for (int j = 0; j <= m; j++)

    {

    if (i > j and maxA <= A[i][j]) {
    maxA = A[i][j];

    (*pa) = maxA;


    }

    }
    }

    cout << "Макс элемент матрицы a= " << maxA << endl;

    }

    void maxelB(float B[5][5], int n, int m, float* pb)

    {

    float maxB = B[0][0];

    for (int i = 0; i < n; i++)

    {

    for (int j = 0; j < m; j++)

    {

    if (maxB <= B[i][j])

    maxB = B[i][j];

    (*pb) = maxB;


    }
    }

    cout << "Макс элемент матрицы b= " << maxB << endl;

    }

    void maxelC(float C[3][7], int n, int m, float* pc)

    {

    float& maxC = C[0][0];

    for (int i = 0; i < n; i++)

    {

    for (int j = 0; j < m; j++)

    {

    if (maxC <= C[i][j])

    maxC = C[i][j];

    (*pc) = maxC;


    }
    }

    cout << "Макс элемент матрицы c= " << maxC << endl;
    }

    void dropoutmatrix(float A[5][4], int n, int m)

    {

    cout << "matrix \n";

    for (int i = 0; i < n; i++)

    {

    //цикл по переменной i, в котором перебираем строки матрицы

    for (int j = 0; j < m; j++)

    cout << A[i][j] << "\t"; //вывод очередного элемента матрицы

    cout << endl; //переход на новую строку после вывода всех элементов строки

    }

    }
    void rezultat(float* pa, float* pb, float* pc)

    {
    float rezult = *pa + *pb - *pc;

    cout << "rezultat= " << rezult << endl;

    }

    int main() {

    setlocale(LC_ALL, "rus");

    float A[5][4]; float B[5][5]; float C[3][7]; float b = 0, a = 0, c = 0, rezult = 0;
    matrinA(A, 5, 4);

    dropoutmatrix(A, 5, 4);

    maxlowdiag(A, 5, 4, &a);

    matrinB(B, 5, 5);

    maxelB(B, 5, 5, &b);

    matrinC(C, 3, 7);

    maxelC(C, 3, 7, &c);

    rezultat(&a, &b, &c);


    }



    написать администратору сайта