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

  • Задача

  • Формирование матрицы двумя способами (

  • ).

  • 1 Разработка приложения

  • РГР по Информатике Сибгути. Дотделанная РГР. Задача


    Скачать 0.97 Mb.
    НазваниеЗадача
    АнкорРГР по Информатике Сибгути
    Дата16.01.2022
    Размер0.97 Mb.
    Формат файлаdocx
    Имя файлаДотделанная РГР.docx
    ТипЗадача
    #332657

    Федеральное агентство связи

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

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

    «Сибирский государственный университет телекоммуникаций и

    информатики»(СибГУТИ)

    Кафедра Телекоммуникационных сетей и вычислительных средств (ТСиВС)
    Разработка приложения для обработки матриц
    РАСЧЕТНО-ГРАФИЧЕСКАЯ РАБОТА

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

    Выполнил:

    Проверил:

    преподаватель. каф. ТС и ВС / А.Ю. Голошубов/

    «_10_»____12_____ 2020 г. (подпись)
    Задача 21: Сформировать матрицу В. Сформировать новую матрицу, увеличив каждый элемент исходной на элемент побочной диагонали, стоящий в этой же строке.

    • Формирование матрицы двумя способами (ввод данных в матрицу с клавиатуры; заполнение матрицы случайными числами).

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

    1 Разработка приложения

    1.1 Блок-схема алгоритма решения задачи


    1.2 Программная реализация алгоритма решения задачи

    #include

    #include

    #include

    #include

    #include

    #include < windows.h >
    using namespace std;
    int main()

    {

    HANDLE ouput = GetStdHandle(STD_OUTPUT_HANDLE); /* нужно для красивого ввода [yes/no] *\

    setlocale(LC_ALL, "rus"); //для нормального вывода кирилицы в visual studio

    srand(time(NULL)); /*время для того чтобы каждый новый заруск рандомайзер выдавал разные числа *\
    int ss = 1, cc = 0, x[50], v = 0, d = 1, i, j, N, M, a[20][20], b[20][20];

    string zxc;

    const int one = 1; //переменные для дальнейшего использования
    cout << "Введите размер матрицы NxM" << endl;

    cout << "N=";

    cin >> N;

    cout << "M=";

    cin >> M; //ввод размеров матрицы

    cout << endl;
    int da = M;
    cout << "Заполнить матрицу " << N << " x " << M << " случайными числами? [yes/no]" << endl;

    cout << " | ";

    cin >> zxc; //выбор заполнения матрицы

    COORD pos = { 29, 5 };

    SetConsoleCursorPosition(ouput, pos); //красивый ввод [yes/no]



    cout << " | ";

    cout << endl << endl;


    if (zxc == "yes" || zxc == "no") //if для выбора действия

    {
    if (zxc == "yes")

    {

    cout << "Случайно сгенерированная матрица " << N << " x " << M << ":" << endl;
    for (i = 0; i < N; i++) /* заполнения матрицы случайными числами (используется время) *\

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

    b[i][j] = rand() % 1000;
    for (i = 0; i < N; i++)

    {

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

    cout << b[i][j] << "\t";

    cout << endl;
    // функция вывода существующей матрицы
    }

    cout << endl;

    }

    if (zxc == "no")

    {

    cout << "Введите матрицу " << N << " x " << M << endl;

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

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

    {

    cout << d << "-e число = ";

    d++;

    cin >> b[i][j]; /*заполнение матрицы пользователем *\

    }

    cout << "Матрица " << N << " x " << M << " до изменения:" << endl;
    for (i = 0; i < N; i++)

    {

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

    cout << b[i][j] << "\t";

    cout << endl;

    //вывод сформированной матрицы

    }

    cout << endl;

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

    {

    for (j = 0; j < M; j++)
    a[i][j] = b[i][j];
    // 2 матрицa для изменения

    }
    //изменение матрицы по правилу
    for (i = 1; i < M + 1; i++)

    {

    x[i] = a[i - 1][i - 1];



    /* поиск второстепенной диагонали матрицы и вывод её в масив "х" *\

    }


    for (i = 1; i < M*M; i++) /* изменение верхней части матрицы по правилу *\

    {
    a[cc][ss] = a[cc][ss] * x[cc+1];

    if (i >= da )

    {

    cc = cc + 1;

    ss = ss - (M-1);

    da = da + M;



    }

    ss++;

    }

    ss = 1;

    cc = 1;

    da = 1;

    int v = 0;

    int xx = 1;

    for (i = 0; i < M * M; i++) /* изменение нижней части матрицы по правилу *\

    {
    a[cc][v] = a[cc][v] * x[cc + 1];

    v++;


    if (da == xx)

    {

    cc++;

    v = 0;

    xx = xx + 1;

    da = 0;



    }

    da = da +1;


    }


    cout << "Получившаяся матрица " << N << " x " << M << ":" << endl;
    for (i = 0; i < N; i++)

    {

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

    cout << a[i][j] << "\t";

    cout << endl;

    // вывод изменёной матрицы

    }



    }

    else {

    cout << "Ошибка ввода данных";

    //ошибка при неверном вводе [yes/no]

    }

    return 0;

    }

    Скриншоты результатов работы разработанного приложения





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