Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ИТиП_№4

.docx
Скачиваний:
0
Добавлен:
02.08.2026
Размер:
379 Кб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

Московский технический университет связи и информатики

(МТУСИ)

Кафедра «Системное программирование»

Лабораторная работа №4

по дисциплине «Информационные технологии и программирование»

«Двумерные массивы»

Выполнила:

студентка группы БФИ2203

Мячина Лада Андреевна

Проверил:

Клешнин Никита Геннадиевич

Москва, 2024 г.

Оглавление

Введение 3

Выполнение работы 4

Результат работы программы 7

Вывод 8

Введение

Умение эффективно работать с данными является ключевым навыком, особенно в контексте использования программных средств, таких как MS Excel. Приобретенные в ходе выполнения лабораторной работы навыки не только облегчат повседневные задачи, но и откроют двери к более сложным аналитическим и организационным возможностям. Лабораторная работа поможет улучшить свои навыки в работе с MS Excel и разобраться с сортировкой двумерного массива.

Цель работы: получение навыков работы с операторами цикла и двумерными массивами.

Задание: разработать программу сортировки двумерного массива по возрастанию и по убыванию значений элементов. Для каждого вида сортировки добавить свою управляющую кнопку. Сохранить первоначальный вариант массива на листе MS Excel. Подготовить отчет по лабораторной работе.

Выполнение работы

  1. Создать новый лист в MS Excel и разработать интерфейс программы, результат представлен на рисунке 1.

Рисунок 1 – Интерфейс программы

  1. Перейти во вкладку «Разработчик», выбрать кнопку «Visual Basic», шаги представлены на рисунке 2.

Рисунок 2 – Шаги перехода к VBA

  1. В открывшемся окне необходимо создать новый модуль и добавить программный код, представленный в листингах 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

  1. Кнопкам «Выполнить сортировку по возрастанию» и «Выполнить сортировку по убыванию» назначить соответствующие макросы.

Результат работы программы

Результат работы программы представлен на рисунке 5.

Рисунок 5 – Результат работы программы

Вывод

В ходе выполнения лабораторной работы получены навыки работы с операторами цикла и двумерными массивами.

Соседние файлы в предмете Информационные технологии и программирование