ИТиП_№4
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования
Московский технический университет связи и информатики
(МТУСИ)
Кафедра «Системное программирование»
Лабораторная работа №4
по дисциплине «Информационные технологии и программирование»
«Двумерные массивы»
Выполнила:
студентка группы БФИ2203
Мячина Лада Андреевна
Проверил:
Клешнин Никита Геннадиевич
Москва, 2024 г.
Оглавление
Введение 3
Выполнение работы 4
Результат работы программы 7
Вывод 8
Введение
Умение эффективно работать с данными является ключевым навыком, особенно в контексте использования программных средств, таких как MS Excel. Приобретенные в ходе выполнения лабораторной работы навыки не только облегчат повседневные задачи, но и откроют двери к более сложным аналитическим и организационным возможностям. Лабораторная работа поможет улучшить свои навыки в работе с MS Excel и разобраться с сортировкой двумерного массива.
Цель работы: получение навыков работы с операторами цикла и двумерными массивами.
Задание: разработать программу сортировки двумерного массива по возрастанию и по убыванию значений элементов. Для каждого вида сортировки добавить свою управляющую кнопку. Сохранить первоначальный вариант массива на листе MS Excel. Подготовить отчет по лабораторной работе.
Выполнение работы
Создать новый лист в MS Excel и разработать интерфейс программы, результат представлен на рисунке 1.
Рисунок 1 – Интерфейс программы
Перейти во вкладку «Разработчик», выбрать кнопку «Visual Basic», шаги представлены на рисунке 2.
Рисунок 2 – Шаги перехода к VBA
В открывшемся окне необходимо создать новый модуль и добавить программный код, представленный в листингах 1-2.
Листинг 1 - Программный код для выполнения сортировки по возрастанию
Sub СортировкаПоВозраст()
Dim Массив As Variant
Dim i As Integer, j As Integer
Dim temp As Variant
Массив = Range("A6:D13").Value
Dim ОдномерныйМассив() As Variant
ReDim ОдномерныйМассив(1 To (UBound(Массив, 1) - LBound(Массив, 1) + 1) * (UBound(Массив, 2) - LBound(Массив, 2) + 1))
Dim Индекс As Integer
Индекс = 1
For i = LBound(Массив, 1) To UBound(Массив, 1)
For j = LBound(Массив, 2) To UBound(Массив, 2)
ОдномерныйМассив(Индекс) = Массив(i, j)
Индекс = Индекс + 1
Next j
Next i
For i = LBound(ОдномерныйМассив) To UBound(ОдномерныйМассив) - 1
For j = i + 1 To UBound(ОдномерныйМассив)
If ОдномерныйМассив(i) > ОдномерныйМассив(j) Then
temp = ОдномерныйМассив(i)
ОдномерныйМассив(i) = ОдномерныйМассив(j)
ОдномерныйМассив(j) = temp
End If
Next j
Next i
Индекс = 1
For i = LBound(Массив, 1) To UBound(Массив, 1)
For j = LBound(Массив, 2) To UBound(Массив, 2)
Массив(i, j) = ОдномерныйМассив(Индекс)
Индекс = Индекс + 1
Next j
Next i
Range("G6:J13").Value = Массив
End Sub
Листинг 2 - Программный код для выполнения сортировки по убыванию
Sub СортировкаПоУбыв()
Dim Массив As Variant
Dim i As Integer, j As Integer
Dim temp As Variant
Массив = Range("A6:D13").Value
Dim ОдномерныйМассив() As Variant
ReDim ОдномерныйМассив(1 To (UBound(Массив, 1) - LBound(Массив, 1) + 1) * (UBound(Массив, 2) - LBound(Массив, 2) + 1))
Dim Индекс As Integer
Индекс = 1
For i = LBound(Массив, 1) To UBound(Массив, 1)
For j = LBound(Массив, 2) To UBound(Массив, 2)
ОдномерныйМассив(Индекс) = Массив(i, j)
Индекс = Индекс + 1
Next j
Next i
For i = LBound(ОдномерныйМассив) To UBound(ОдномерныйМассив) - 1
For j = i + 1 To UBound(ОдномерныйМассив)
If ОдномерныйМассив(i) < ОдномерныйМассив(j) Then
temp = ОдномерныйМассив(i)
ОдномерныйМассив(i) = ОдномерныйМассив(j)
ОдномерныйМассив(j) = temp
End If
Next j
Next i
Индекс = 1
For i = LBound(Массив, 1) To UBound(Массив, 1)
For j = LBound(Массив, 2) To UBound(Массив, 2)
Массив(i, j) = ОдномерныйМассив(Индекс)
Индекс = Индекс + 1
Next j
Next i
Range("M6:P13").Value = Массив
End Sub
Кнопкам «Выполнить сортировку по возрастанию» и «Выполнить сортировку по убыванию» назначить соответствующие макросы.
Результат работы программы
Результат работы программы представлен на рисунке 5.
Рисунок 5 – Результат работы программы
Вывод
В ходе выполнения лабораторной работы получены навыки работы с операторами цикла и двумерными массивами.
