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

  • Цель работы

  • Алгоритм определения номера строки квадратной матрицы, сумма элементов которой максимальна С. Алгоритм определения номера строки квадратной матрицы, сумма эле. Отчет о практической работе 7 по дисциплине Информатика и программирование Вариант 8 студент группы


    Скачать 0.59 Mb.
    НазваниеОтчет о практической работе 7 по дисциплине Информатика и программирование Вариант 8 студент группы
    АнкорАлгоритм определения номера строки квадратной матрицы, сумма элементов которой максимальна С
    Дата09.11.2021
    Размер0.59 Mb.
    Формат файлаdocx
    Имя файлаАлгоритм определения номера строки квадратной матрицы, сумма эле.docx
    ТипОтчет
    #267478

    Министерство науки и высшего образования Российской Федерации

    Федеральное государственное автономное образовательное учреждение

    высшего образования «Южно-Уральский государственный университет»

    (национальный исследовательский университет)

    Высшая школа электроники и компьютерных наук

    Кафедра «Информационно-измерительная техника»


    Циклы

    (название практической работы)

    ОТЧЕТ

    о практической работе №7

    по дисциплине «Информатика и программирование»

    Вариант 8

    Выполнил:

    студент группы

    ____________/ /

    «___» ___________ 2020 г.
    Отчет принят:

    ___________/ /

    «___» ____________2020 г.

    Челябинск 2020

    Цель работы: научиться строить циклические алгоритмы, записывать алгоритмы в виде схемы алгоритма и на алгоритмическом языке.

    Задание: построить алгоритм определения номера строки квадратной матрицы, сумма элементов которой максимальна.

    Ход работы

    1) Определение входных и выходных данных:

    • входными данными (аргументами) являются вещественные числа (int) rows и cols – количество строк и столбцов матрицы;

    • выходными данными (результатом) являются вещественные числа (int) nom и max – номер строки с максимальной суммой значений и сумма значений строки.

    2) Решение задачи:

    • пользователь вводит количество столбцов и строк из которых будет состоять матрица;

    • создаем функцию выделения места в оперативной памяти под создание двумерного динамического массива;

    • создаем функцию для вывода динамического массива на экран;

    • используя цикл for заполняем массив случайными двузначными цифрами;

    • создаем цикл для подсчета суммы элементов в строке и сравнения полученных значений для вычисления максимальной суммы с номером этой строки;

    • выводим на экран полученную матрицу, номер строки с максимальной суммой и значение суммы значений строки;

    • очищаем место в оперативной памяти под созданный массив.


    3)Представление алгоритма в виде схемы алгоритмов:


    Начало



    Ввод:

    rows, cols




    arr[i][j] = 0




    i = 0, j = 0








    i < rows, j < cols




    sum += arr[i][j]






    i++; j++






    max = sum

    nom = i + 1





    Конец


    4) Запись алгоритма на алгоритмичном языке:
    алг определения номера строки квадратной матрицы, сумма элементов которой максимальна

    арг вещ rows и cols

    нач

    ввод rows и cols

    sum = 0

    max = 0

    i = 0

    j = 0

    нцпока i < rows, j < cols

    sum += arr[i][j]

    еслиsum >= max

    тоmax = sum;

    nom = i + 1;

    кн

    вывод nom, max

    кон

    5) Листинг программы

    #include

    #include

    #include

    #include

    #include
    using namespace std;
    //Печать матрицы

    void print(int** arr, int rows, int cols)

    {

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

    {

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

    {

    cout << arr[i][j] << " ";

    }

    cout << endl;

    }

    }
    //Выделение памяти под двумерный динамический массив

    int** matrix(int rows, int cols)

    {

    int** arr = new int* [rows];

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

    {

    arr[i] = new int[cols];

    }

    return arr;

    }
    int main()

    {

    SetConsoleCP(1251);

    SetConsoleOutputCP(1251);
    srand(time(nullptr)); // выполнение генерации случайных чисел
    int rows;

    int cols;

    int sum, max = 0, nom;

    cout << "Программа создает матрицу с необходимым количеством столбцов и строк,\n заполняет ее случайными двузначными цыфрами и указывает строку с максимальной суммой элементов." << endl << endl;

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

    cin >> rows;

    cout << endl;

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

    cin >> cols;

    cout << endl;
    int** arr = matrix(rows, cols);
    //Заполнение массива случайными числами

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

    {

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

    {

    arr[i][j] = rand() % 20;

    }

    }
    for (int i = 0; i < rows; i++)

    {

    int sum = 0;

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

    {

    sum += arr[i][j];

    }

    if (sum >= max)

    {

    max = sum;

    nom = i + 1;

    }

    }

    cout << "Создание матрицы" << endl;

    print(arr, rows, cols);

    cout << endl;

    cout << "Строка с наибольшей суммой: " << nom << " ,сумма значений равна: " << max << "." << endl << endl;

    //Очистка оперативной памяти

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

    {

    delete[]arr[i];

    }

    delete[]arr;

    }
    Исходный код программы представлен на рисунках 1-3.



    Рисунок 1.



    Рисунок 2.



    Рисунок 3.
    6) Контрольный пример.
    Результаты работы программы представлены на рисунке 4.



    Рисунок 4.

    7) Выводы по работе.
    При выполнении работы были изучены основы написания программы на языке С++, с помощью циклического алгоритма. Была написана программа для определения номера строки квадратной матрицы, сумма элементов которой максимальна.


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