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

  • Вариант 3

  • Напишем

  • Лабораторная работа №2 по информатике за 1 курс (2 семестр) РЭФ. ЛР2 Информатика 2 семестр 1 курс РЭФ. Лабораторная работа 2 Вариант 3 Факультет рэф группа ртв 1401 Студент Преподаватель Дата выполнения работы


    Скачать 268.45 Kb.
    НазваниеЛабораторная работа 2 Вариант 3 Факультет рэф группа ртв 1401 Студент Преподаватель Дата выполнения работы
    АнкорЛабораторная работа №2 по информатике за 1 курс (2 семестр) РЭФ
    Дата27.09.2022
    Размер268.45 Kb.
    Формат файлаdocx
    Имя файлаЛР2 Информатика 2 семестр 1 курс РЭФ.docx
    ТипЛабораторная работа
    #699876

    Федеральное государственное бюджетное образовательное  
    учреждение высшего образования 
    «Новосибирский государственный технический университет» 

     

     

     

     

    КАФЕДРА РП и РПУ 

    Лаборатория№422 

    Лабораторная работа №2
    Вариант №3

     

    Факультет: РЭФ 

    Группа: РТВ 14-01   

    Студент:

    Преподаватель: 

    Дата выполнения работы: 

    Отметка о защите: 

     

     

     

     


     
    г. Новосибирск, 2021

    Цель работы: ознакомится со структурой стандартной библиотеки шаблонов C++ STL и получить практические навыки работы с последовательным контейнером vector.
    Порядок выполнения работы:

    1. Составить шаблон функции печати сформированного вами вектора для любых типов его элементов. Размеры вектора в функцию не передавать!

    2. Реализовать требуемый алгоритм задания методами контейнера vector и

    алгоритмами STL.

    3. Если это не противоречит условию задачи, то заполнение вектора

    производить с помощью функций rand и generate.




    Вариант 3

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

    Напишем программу, отладим ее и получим численные результаты:

    К одпрограммы:

    #include

    #include

    #include

    #include

    #include

    #include

    #define RND (rand()/double(RAND_MAX))

    using namespace std;
    int rnd(void) { return rand() % 36 + 1; }
    template T function(vector >& dvec) { // Функция печати матрицы

    for (int i = 0; i < dvec.size(); i++) {

    for (int j = 0; j < dvec[i].size(); j++) {

    cout << setw(7) << dvec[i][j];

    if (j + 1 == dvec[i].size()) cout << endl;

    }

    }

    cout << endl;

    return 0;

    }
    int main() {

    setlocale(LC_ALL, "Russian");

    srand(time(NULL));

    cout << setw(17) << "Вариант 3" << endl;
    int m, n, elem;

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

    cin >> m;

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

    cin >> n;

    cout << endl;

    vector< vector > dv(m, vector(n));

    vectorv(m);

    vector::iterator it;
    for (unsigned int i = 0; i < dv.size(); i++)

    {

    generate(dv[i].begin(), dv[i].end(), rnd);

    }
    function(dv);
    for (unsigned int i = 0; i < dv.size(); i++)

    {

    it = max_element(dv[i].begin(), dv[i].end());

    cout << "Максимальное число " << i + 1 << "-й строки равно " << *it << endl;

    elem = max_element(dv[i].begin(), dv[i].end()) - dv[i].begin();

    if (elem + 2 < dv[i].size())

    cout << "Число, отстоящее вправо от максимального в " << i + 1 << "-й строке на две позиции равно " << dv[i][elem + 2] << endl << endl;

    else

    cout << "Нет элемента, отстоящего вправо от максимального на две позиции в " << i + 1 << "-й строке " << endl << endl;

    }

    system("pause");

    return 0;

    }

    Консоль:







    Вывод:

    ознакомились со структурой стандартной библиотеки шаблонов C++ STL и получили практические навыки работы с последовательным контейнером vector.


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