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

  • Порядок выполнения работы

  • Содержание отчета по практической работе

  • Демонстрационный пример Задача 1 . Сформировать массив А[ N ][ M

  • Задача 2 . Сформировать массив А[ N ][ M

  • Задания по вариантам Индивидуальные задания.

  • ПР 33_Двумерные массивы. Практическая работа 33 Составление и отладка программ формирования двумерных массивов с переменными размерами


    Скачать 32.44 Kb.
    НазваниеПрактическая работа 33 Составление и отладка программ формирования двумерных массивов с переменными размерами
    Дата11.09.2022
    Размер32.44 Kb.
    Формат файлаdocx
    Имя файлаПР 33_Двумерные массивы.docx
    ТипПрактическая работа
    #670873

    Практическая работа № 33

    Составление и отладка программ формирования двумерных массивов с переменными размерами.

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

    1. Порядок выполнения работы:

    1) Получить у преподавателя индивидуальное задание и выполнить постановку задачи: сформулировать условие, определить входные и выходные данные.

    2) Построить блок схему алгоритма решения задачи.

    3) Составить программу на языке С++ с использованием одномерных массивов.

    4) Входные данные вводить с клавиатуры по запросу.

    Выходные данные (сообщения)выводить на экран в развернутой форме.

    5) Проверить и продемонстрировать преподавателю работу программы на полном наборе тестов.

    6) Оформить отчет о практической работе в составе: постановка задачи, блок-схема алгоритма решения, текст программы, контрольные примеры


    1. Содержание отчета по практической работе:




    1. Титульный лист с названием работы.

    2. Цель практической работы.

    3. Задание для практической работы.

    4. постановка задачи

    5. блок-схема алгоритма решения

    6. текст программы

    7. контрольные тестовые примеры



    1. Демонстрационный пример

    Задача 1. Сформировать массив А[N][M], заполнить его случайными числами. Вывести элементы массива на экран. Найти сумму элементов каждой строки массива.

    #include

    #include

    #include

    using namespace std;

    void vvod_massiv(int **T,int N,int M);

    void vivod_massiv(int** T, int N, int M);

    void sum_v_stroke(int** T, int N, int M);

    int main()

    {

    setlocale(LC_ALL, "Russian");
    int **A=NULL, N, M,i;

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

    cin >> N;

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

    cin >> M;

    A = new int* [N];

    for (i = 0; i < N; i++)

    A[i] = new int[M];

    srand(time(0));

    //заполнение массива

    vvod_massiv(A,N,M);

    //вывод массива

    cout << "Матрица A\n";

    vivod_massiv(A,N,M);

    // нахождение суммы элементов каждой строки
    cout << endl << "Сумма элементов в каждой строке\n";

    sum_v_stroke(A,N,M);

    for (i = 0; i < N; i++)

    delete[]A[i];

    delete[]A;
    system("pause");

    return 0;

    }

    void vvod_massiv(int** T, int N, int M)

    {

    int i, j;

    for (i = 0; i < N; i++)

    for (j = 0; j < M; j++)

    T[i][j] = rand() % 21 - 10;

    }

    void vivod_massiv(int** T, int N, int M)

    {

    int i, j;

    for (i = 0; i < N; i++)

    {

    for (j = 0; j < M; j++)

    {

    cout << setw(4) << T[i][j];

    }

    cout << endl;

    }

    }

    void sum_v_stroke(int** T, int N, int M)

    {

    int* d, s, i, j;

    d = new int[N];

    for (i = 0; i < N; i++)

    {

    s = 0;

    for (j = 0; j < M; j++)

    {

    s += T[i][j];

    }

    d[i] = s;

    cout << "Сумма элементов в " << i << " строке = " << d[i] << endl;

    }

    delete []d;

    }

    Задача 2. Сформировать массив А[N][M], заполнить его случайными числами. Вывести элементы массива на экран. Найти количество четных элементов к-го столбца массива.

    // Найти количество четных элементов к-го столбца массива

    #include

    #include

    #include

    using namespace std;

    void vvod_massiv(int** T, int N, int M);

    void vivod_massiv(int** T, int N, int M);

    void kol_chetK_stolb(int** T, int N, int M,int k);

    int main()

    {

    setlocale(LC_ALL, "Russian");
    int** A = NULL, N, M, i,k;

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

    cin >> N;

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

    cin >> M;

    A = new int* [N];

    for (i = 0; i < N; i++)

    A[i] = new int[M];

    srand(time(0));

    //заполнение массива

    vvod_massiv(A, N, M);

    //вывод массива

    cout << "Матрица A\n";

    vivod_massiv(A, N, M);

    // нахождение суммы элементов каждой строки

    cout << "Введите номер столбца, для подсчета количества четных ";

    cin >> k;

    kol_chetK_stolb(A, N, M,k);

    for (i = 0; i < N; i++)

    delete[]A[i];

    delete[]A;
    system("pause");

    return 0;

    }

    void vvod_massiv(int** T, int N, int M)

    {

    int i, j;

    for (i = 0; i < N; i++)

    for (j = 0; j < M; j++)

    T[i][j] = rand() % 21 - 10;

    }

    void vivod_massiv(int** T, int N, int M)

    {

    int i, j;

    for (i = 0; i < N; i++)

    {

    for (j = 0; j < M; j++)

    {

    cout << setw(4) << T[i][j];

    }

    cout << endl;

    }

    }

    void kol_chetK_stolb(int** T, int N, int M,int k)

    {

    int i,count(0);

    for (i = 0; i < N; i++)

    {

    if (T[i][k]%2==0)

    count++;

    }

    cout <<"Количество четных элементов в "<
    }



    Задания по вариантам

    Индивидуальные задания.

    1. Дана матрица размера M × N и целое число K (1 ≤ K ≤ M). Найти сумму и произведение элементов K-й строки данной матрицы.

    2. Дана матрица размера M × N. В каждой ее строке найти количество элементов, меньших среднего арифметического всех элементов этой строки.

    3. Дана матрица размера M × N. Для каждого столбца матрицы найти произведение его элементов.

    4. Дана матрица размера M × N. Для каждой строки матрицы с нечетным номером (1, 3, …) найти произведение ее элементов. Условный оператор не использовать.

    5. Дана матрица размера M × N. Для каждой строки матрицы с нечетным номером (1, 3, …) найти сумму ее элементов. Условный оператор не использовать.

    6. Дана матрица размера M × N и целое число K (1 ≤ K ≤ N). Найти сумму и произведение элементов K-го столбца данной матрицы.

    7. Дана матрица размера M × N. Для каждого столбца матрицы с четным номером (2, 4, …) найти произведение его элементов. Условный оператор не использовать.

    8. Дана целочисленная матрица размера M × N. Найти номер последней из ее строк, содержащих только четные числа. Если таких строк нет, то вывести 0.

    9. Дана матрица размера M × N. Для каждого столбца матрицы с четным номером (2, 4, …) найти сумму его элементов. Условный оператор не использовать.

    10. Дана матрица размера M × N. В каждом ее столбце найти количество элементов, больших среднего арифметического всех элементов этого столбца.

    11. Дана матрица размера M × N. Для каждой строки матрицы с нечетным номером (1, 3, …) найти среднее арифметическое ее элементов. Условный оператор не использовать.

    12. Дана целочисленная матрица размера M × N. Найти номер первой из ее строк, содержащих равное количество положительных и отрицательных элементов (нулевые элементы матрицы не учитываются). Если таких строк нет, то вывести 0.

    13. Дана матрица размера M × N. Для каждого столбца матрицы с четным номером (2, 4, …) найти среднее арифметическое его элементов. Условный оператор не использовать.

    14. Дана целочисленная матрица размера M × N. Найти номер последнего из ее столбцов, содержащих равное количество положительных и отрицательных элементов (нулевые элементы матрицы не учитываются). Если таких столбцов нет, то вывести 0.

    15. Дана целочисленная матрица размера M × N. Найти номер первого из ее столбцов, содержащих только нечетные числа. Если таких столбцов нет, то вывести 0.


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