
- •Методические рекомендации к выполнению работ
- •Контрольная работа. Задание1 линейный алгоритм
- •Краткие теоретические сведения
- •Запуск программы осуществляется нажатием кнопки Start или клавишей f5. Задание. Записать выражение на алгоритмическом языке и вычислить его значение для нескольких входных данных.
- •Контрольные вопросы
- •Контрольная работа. Задание 2
- •Операторы ветвления и выбора
- •Цель работы: Изучить операторы ветвления и множественного выбора.
- •Краткие теоретические сведения
- •Задание. Написать программу для вычисления значения функции с использованием операторов ветвления If и выбора Select Case.
- •Пример реализации программы
- •Контрольные вопросы
- •Контрольная работа. Задание 3
- •Оператор цикла с параметром
- •Цель работы: Изучить оператор цикла с параметром For.
- •Краткие теоретические сведения
- •Г рафический способ изображения цикла с параметром приведен на рис. 4.
- •Пример реализации программы
- •Пример выполнения задания 2
- •Пример реализации программы
- •Краткие теоретические сведения
- •Вычисление суммы ряда с определенной точностью — типичный пример использования цикла с условием.
- •Контрольные вопросы
- •Лабораторная работа. Задание 5 одномерные массивы
- •Краткие теоретические сведения
- •Пример выполнения задания
- •Пример реализации программы
- •Лабораторная работа 2 двумерные массивы
- •Краткие теоретические сведения
- •Пример выполнения задания
- •Пример реализации программы
- •Контрольные вопросы
Лабораторная работа 2 двумерные массивы
Цель работы: Изучение средств работы с двумерными массивами и приемов их обработки.
Краткие теоретические сведения
В зависимости от количества индексов различают одномерные, двумерные и многомерные массивы. Двумерный массив представляет собой прямоугольную или квадратную таблицу и в отличие от одномерного имеет два целочисленных индекса. Первый индекс определяет номер строки, в которой находится элемент массива, а второй — номер столбца.
Статический двумерный массив декларируется в Visual Basic (VB) следующим образом:
Dim <имя массива> (<нижняя граница первого индекса массива> To <верхняя граница первого индекса массива >, <нижняя граница второго индекса массива> To <верхняя граница второго индекса массива >) As <тип элементов массива>
Dim <имя массива> (<верхняя граница первого индекса массива>, <верхняя граница второго индекса массива >) As <тип элементов массива>
Например, массив, содержащий 6 строк и 5 столбцов вещественных чисел, объявляется следующим образом Dim m(1 To 6, 1 To 5) As Double или Dim m(5, 4) As Double. Во втором случае элементы двумерного массива нумеруются с нуля.
Объявление динамического двумерного массива осуществляется аналогично объявлению одномерного массива. С помощью команды ReDim выделяется память под элементы массива. При использовании конструкции ReDim Preserve может быть изменена только верхняя граница первого индекса массива. Это связано с последовательным способом представления двумерного массива в памяти компьютера.
Для обращения к элементу массива m, расположенного в третьей строке и втором столбце, необходимо записать m(3, 2).
Последовательное обращение к каждому элементу массива реализуется с помощью двух вложенных циклов. Во внешнем цикле изменяется первый индекс (номер строки), а во вложенном — второй (номер столбца).
Функция UBound (<имя массива>, i) возвращает верхнюю границу i-го индекса массива; а функция LBound (<имя массива>, i) — нижнюю границу i-го индекса.
Задание. Сформировать в массиве матрицу и вывести ее на экран.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Пример выполнения задания
Построить массив размерности n×n
вида
и вывести его на экран.
Заметим, что в элементы массива a(i, j) и a(n – i + 1, j) (i = [1, (n + 1) \ 2; j = [i, n – i + 1]) необходимо записать число i. В остальные позиции необходимо записать нули.
Пример реализации программы
Private Sub Form_Load()
Const n = 7 'количество строк и столбцов в массиве
Dim a(1 To n, 1 To n) As Double
Dim i As Integer, j As Integer 'Счетчик цикла
For i = 1 To (n + 1) \ 2 'Организация цикла по строкам:
' c 1-ой по среднюю включительно
For j = 1 To n ' Цикл по столбцам
If (j >= i) And (j <= n – i + 1) Then
a(i, j) = i: a(n – i + 1, j) = i
Else
a(i, j) = 0: a(n – i + 1, j) = 0
End If
Next j
Next i
For i = 1 To n ′Вывод массива на форму с помощью оператора Print
Print ′Для перевода курсора на следующую строку
For j = 1 To n
Print a(i, j); ′точка с запятой предназначена для избежания перевода
′курсора на следующую строку после вывода элемента a(i, j)
Next j
Next i
End Sub