бИСТ-223_Гладченко и Самойленко_Лр2. Отчет по лабораторной работе 2 по дисциплине Объектноориентированное программирование Тема Работа с массивами
Скачать 394.55 Kb.
|
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ «ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ» Факультет информационных технологий и компьютерной безопасности(факультет) Кафедра Систем автоматизированного проектирования и информационных системОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ № 2по дисциплине Объектно-ориентированное программирование Тема «Работа с массивами» Выполнили студенты группы ИСТ-223 Д.С. Самойленко Подпись, дата Инициалы, фамилия Е.С. Гладченко Подпись, дата Инициалы, фамилия Принял Б.Н. ТишуковПодпись, дата Инициалы, фамилия Защищена ___________________ Оценка_____________________________ дата 2023 Лабораторная работа № 2 «Работа с массивами» 1. Цель работы Изучение принципов работы с массивами и применение их на практике. 2. Задание на лабораторную работу Вариант 1 Задание 1 Написать программу в соответствии с вариантом задания для обработки одномерного массива. Задание 2 Написать программу в соответствии с вариантом задания для обработки двумерного массива. Задание 3 Выполнить сортировку элементов одномерного массива согласно варианту. 3. Ход выполнения 1. Задание 1 В этом задании присутствуют 4 подзадачи, поэтому опишем каждую из них отдельно. Для начала запрашиваем у пользователя размер массива и создаем массив. В 1-ой подзадаче: через цикл for запрашиваем у пользователя ввод каждого элемента массива. Во 2-ой подзадаче: через цикл for проходим по всему массиву и ищем максимальный элемент и выводим его на экран. В 3-ей подзадаче: через цикл for проходимся по всему массиву и прибавляем каждый элемент в переменную sum_element, после чего в выводе делим sum_element на size (кол-во наших элементов). В 4-ой подзадаче: через цикл for, начиная с последнего элемента проходимся по всему массиву в обратном порядке и выводим каждый элемент. Рис.1 – Задание 1 и все подзадачи. 2. Задание 2 Для выполнения второго задания объявляем целочисленный двумерный массив размер 4x6. Через вложенный двойной цикл for запрашиваем у пользователя ввод каждого элемента массива. Запрашиваем у пользователя также число, которое будет использоваться в дальнейшем для проверки элементов массива. После ввода числа объявляем одномерный массив на 4 элемента, т.к. у нас всего 4 строки в двумерном массиве, и через двойной вложенный цикл for проходимся по каждому элементу двумерного массива и проверяем больше ли оно введенного ранее числа, если условие удовлетворяется, то к переменной k, которая считает кол-во чисел в строке больших введенного числа, прибавляем 1, используя инкремент. Выводим элементы одномерного массива, через цикл for. Рис.2 – Задание 2 3. Задание 3 Для выполнения 3 задания нам необходимо для начала запросить у пользователя размерность массива, после чего запросить у него ввести элементы массива в соответствии с его размерностью. Затем мы находим минимальный элемент и переменной min присваиваем значение индекса этого элемента. Далее меняем местами минимальный элемент с нулевым элементом массива. Продолжается это до тех пор, пока не будет отсортирован весь наш одномерный массив. После чего выводится на экран отсортированный массив. Рис.3 – Задание 3 Так же было реализовано меню с помощью оператора switch (возможность выбора номера нужной задачи для ее проверки преподавателем). Рис. 4 – часть кода меню Вывод В ходе выполнения лабораторной работы номер 2 мы изучили базовые концепции и правила работы с массивами на базе языка С++ и. Научились создавать и работать как с одномерными, так и с двумерными массивами, также смогли отсортировать одномерный массив методом простого выбора. Приложение А Листинг программного кода языка C++ #include using namespace std; void main() { setlocale(LC_ALL, "RUS"); cout << "\tЗдравствуйте, эта программа выполнена студентами бИСТ-223 Самойленко Д. и Гладченко Е." << endl << "\t\tи является второй лабораторной работой по дисциплине ООП\n" << endl; int sh = 1, vibor; while (sh != 2) { cout << "\t\tМеню:\n"; cout << "1) Задание 1\n" << "2) Задание 2\n" << "3) Задание 3\n" << "4) Завершить\n"; cout << "Выберите действие: "; cin >> vibor; switch (vibor) { case 1: { int size; float sum_element = 0; cout << "Введите размер массива" << endl; cin >> size; float* parray = new float[size]; for (int i = 0; i < size; i++) { cout << "Введите " << i << " элемент массива" << endl; cin >> parray[i]; } float parray_max = parray[0]; for (int i = 0; i < size; i++) { if (parray[i] > parray_max) { parray_max = parray[i]; } } cout << "Максимальный элемент = " << parray_max << endl; for (int i = 0; i < size; i++) { sum_element += parray[i]; } cout << "Среднее арифметическое = " << sum_element / size << endl; for (int i = size - 1; i != -1; i--) { cout << parray[i] <<" "; } cout << "\n"; system("pause"); system("cls"); break; } case 2: { int parray[4][6]; int number; setlocale(LC_ALL, "RUS"); for (int i = 0; i < 4;i++) { for (int j = 0; j < 6; j++) { cout << "Введите элемент [" << i << "] [" << j << "] массива\n"; cin >> parray[i][j]; } } cout << "Введите заданное число: "; cin >> number; int parray_2[4]; for (int i = 0; i < 4;i++) { int k = 0; for (int j = 0; j < 6; j++) { if (parray[i][j] > number) k++; } parray_2[i] = k; } for (int i = 0; i < 4; i++) cout << parray_2[i]; cout << "\n"; system("pause"); system("cls"); break; } case 3: { int size; cout << "Введите кол-во элементов массива : "; cin >> size; float* parray = new float[size]; for (int i = 0; i < size; i++) { cout << "Введите " << i << " элемент массива: "; cin >> parray[i]; } for (int i = 0;i < size - 1;i++) { int min = i; for (int j = i + 1;j < size;j++) { if (parray[j] < parray[min]) min = j; } float temp = parray[i]; parray[i] = parray[min]; parray[min] = temp; } for (int i = 0; i < size; i++) cout << parray[i] << " "; cout << "\n"; system("pause"); system("cls"); break; } case 4: sh = 2; break; default: break; } } } |