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

  • Задание по учебной дисциплине: «Программирование» Тема: «Динамические массивы.» Вариант №6

  • Состав данных

  • Блок-схема алгоритма

  • Пример выполнения программы

  • Программирование км-6 вариант 6. Динамические массивы.


    Скачать 222.06 Kb.
    НазваниеДинамические массивы.
    АнкорПрограммирование км-6 вариант 6
    Дата04.05.2023
    Размер222.06 Kb.
    Формат файлаdocx
    Имя файлаkm-6.docx
    ТипЗадача
    #1109073



    Федеральное государственное бюджетное  

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

    высшего образования 

    «Национальный исследовательский университет «МЭИ»

    ИНСТИТУТ ДИСТАНЦИОННОГО И ДОПОЛНИТЕЛЬНОГО 

    ОБРАЗОВАНИЯ 

    Задание по учебной дисциплине: «Программирование» 

    Тема: «Динамические массивы.»

    Вариант №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.

    Состав данных


    Имя 

    Назначение

    Тип 

    Структура

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

    n

    Количество элементов вектора X и Y

    целый

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

    X

    Вектор X

    массив

    одномерный

    Y

    Вектор Y

    массив

    одномерный

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

    n1

    Количество отрицательных элементов вектора X

    целый 

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

    n2

    Количество положительных элементов вектора Y

    целый 

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

    C1

    Сумма отрицательных элементов вектора X

    целый 

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

    С2

    Сумма положительных элементов вектора Y

    целый 

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

    Промежуточные данные

    i

    счётчик цикла

    целый 

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


    Блок-схема алгоритма



    Программа на С++


    #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. Для каждого столбца матрицы вычислить среднее арифметическое элементов, меньших первого элемента этого столбца


    Состав данных


    Имя 

    Назначение

    Тип 

    Структура

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

    rows

    Количество строк матрицы

    целый

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

    columns

    Количество столбцов матрицы

    целый

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

    array[rows][columns]

    Инициализируем матрицу

    массив

    двумерный

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

    first_elements_columns

    Значения первых элементов столбцов

    массив

    одномерный

    average_mean

    Средние арифметические значения элементов столбцов, меньших первого элемента этого столбца

    массив

    одномерный

    count

    Количество элементов для подсчёта среднего арифметического значения

    целый 

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

    Промежуточные данные

    i

    счётчик цикла

    целый 

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

    j

    счётчик цикла

    целый 

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


    Блок-схема алгоритма




    Программа на С++


    #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) заменить каждый положительный элемент, стоящий выше главной диагонали, на нуль.

    Состав данных


    Имя 

    Назначение

    Тип 

    Структура

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

    R_C_A

    Количество строк и колонок матрицы A

    целый

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

    R_C_B

    Количество строк и колонок матрицы B

    целый

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

    A

    Инициализируем матрицу

    массив

    двумерный

    B

    Инициализируем матрицу

    массив

    двумерный

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

    A[R_C_A][R_C_A]

    Преобразованная матрица

    массив

    двумерный

    B[R_C_B][R_C_B]

    Преобразованная матрица

    массив

    двумерный

    Промежуточные данные

    i

    счётчик цикла

    целый 

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

    j

    счётчик цикла

    целый 

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


    Блок-схема алгоритма




    Программа на С++


    #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;
    }

    Пример выполнения программы:




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