Лабораторная работа №2 по информатике за 1 курс (2 семестр) РЭФ. ЛР2 Информатика 2 семестр 1 курс РЭФ. Лабораторная работа 2 Вариант 3 Факультет рэф группа ртв 1401 Студент Преподаватель Дата выполнения работы
Скачать 268.45 Kb.
|
Федеральное государственное бюджетное образовательное учреждение высшего образования «Новосибирский государственный технический университет» КАФЕДРА РП и РПУ Лаборатория№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 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 vector vector 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. |