Файл: Отчет по лабораторной работе 2 по дисциплине Объектноориентированное программирование Тема Работа с массивами.docx
Добавлен: 09.01.2024
Просмотров: 36
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ
РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
Факультет информационных технологий и компьютерной безопасности
(факультет)
Кафедра Систем автоматизированного проектирования и информационных систем
ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ № 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;
}
}
}