- •Федеральное агентство по рыболовству Балтийская государственная академия рыбопромыслового флота
- •Оглавление
- •Введение
- •Программирование на языке Visual Basic
- •Создание Windows-приложения
- •Переменные и константы
- •Объявление типа переменной
- •Комментарии в программных кодах
- •Выражения
- •Оператор присваивания
- •Функции
- •Математические функции
- •Финансовые функции
- •Системные функции InputВox и MsgBox
- •Вывод только значения переменной z
- •Строковые выражения и функции
- •Использование текстовых полей для ввода и вывода
- •Вывод на экранную форму с помощью оператора Print
- •Оператор If…Then для программирования ветвлений
- •Оператор Select Case
- •Программирование циклов с использованием операторов For…Next и Do…Loop
- •2. Оператор цикла do ... Loop (цикл с условием)
- •Оператор Exit
- •Циклы с незаданным числом повторений
- •Массивы
- •Работа с одномерным массивом
- •‘ Переобъявление динамического массива
- •Двухмерные массивы
- •Сортировка элементов массива
- •Работа с файлами последовательного доступа
- •Контрольные вопросы
- •Список литературы
Работа с одномерным массивом
Ввод одномерного статического и динамического массива может быть осуществлен через окно ввода InputBox:
а)
‘ Объявление статического массива Х из 5 элементов
Dim х ( 5 ) As Single
‘ Ввод статического массива с помощью окна ввода
For i = 1 Тo 5
х ( i ) = Val(InputBox(" х ( i ) =" , "Ввод массива"))
Next I
б)
‘ Объявление динамического массива с незаданной верхней границей
Dim х() As Single
‘ Ввод размера массива через окно ввода
n = Vаl(InputBox("Размер массива (n)","Ввод размера массива"))
‘ Переобъявление динамического массива с верхней границей n
ReDim х ( n ) As Single
‘ Ввод динамического массива Х(n) с помощью окна ввода
For i = 1 Тo n ‘ n – размер массива Х
х ( i ) = Val(InputBox("x ( i ) =" , "Ввод массива"))
Next i
в) Массив может быть заполнен случайными числами. Ниже приведен фрагмент программы для заполнения массива целыми случайными числами в интервале от 1 до 10 и вывода их на экран.
Dim x(10) As Single
For i = 1 To 10
x(i) = Int(Rnd * 10) + 1’ формирование целого случайного числа
Print x(i)
Next i
Для заполнения массива как положительными так и отрицательными случайными числами строка формирования элемента массива должна иметь вид: x(i) = Int(Rnd * 10) + 1- 5
Массив можно выводить на экранную форму. Фрагмент текста программы для вывода одномерного массива на экранную форму может, например, выглядеть так:
а)
Print "Массив Х"
For i = 1 Тo n
Print х ( i ) ‘ выводятся числовые значения элементов массива
Next i
Значения элементов массива будут выведены в столбец.
б)
…
Print "Массив Х"
For i= 1 Тo n
Print "х ("; i ;") = " ; х ( i ) ‘ вывод с поясняющим текстом
Next i
Пример.
Для целочисленного одномерного массива Х, состоящего из “n” элементов требуется определить среднее арифметическое значение положительных элементов.
Программный код будет иметь вид:
‘ Объявление динамического массива
Dim х() As Single
‘ Ввод размера массива – n
n = Vаl(InрutВох("Размер массива (n)","Ввод размера массива"))
‘ Переобъявление динамического массива
ReDim х ( n ) As Single
‘ Ввод динамического массива Х(n)
For i= 1 Тo n
х ( i ) = Val(InputBox("x ( i ) = " , "Ввод массива"))
Next i
‘ Задание начального значения суммы (S)
‘ и количества (К) положительных элементов массива
S=0
К=0
‘ Накопление суммы и количества положительных элементов
For i = 1 Тo n
If х ( i ) > 0 Then S = S + x ( i ) : К == К + 1
Next i
‘ Проверка наличия положительных элементов для вычисления среднего значения во избежание деления на ноль
If K > 0 Then
SR= S/K
Print " Среднее значение положит. элементов = " ; SR;
Else
Print " Положительных элементов нет "
End If
Двухмерные массивы
Двухмерный массив – это набор однотипных данных, местоположение каждого элемента которого определяется не одним индексом, а двумя. Наиболее распространенным видом двухмерного массива является матрица. Описывается двухмерный массив оператором Dim, после которого в скобках указываются две размерности массива – количество строк и количество столбцов. Для работы с двухмерными массивами необходимо организовывать сложный цикл (цикл с двумя переменными цикла). В сложных циклах используется понятие внешний и внутренний цикл. Двухмерный массив может вводиться, выводиться и обрабатываться как по строкам, так и по столбцам. Для этого внешний цикл может быть организован либо по строке (по i), либо по столбцу (по j). Ввод двухмерного статического и динамического массива может быть также осуществлен через окно ввода InputBox:
а)
‘ Объявление статического двухмерного массива z(3,4)
Dim z ( 3,4 ) As Single
‘ Ввод массива по строкам
For i = 1 Тo 3
For j = 1 Тo 4
z ( i, j ) = Val(InputBox(" z ( i, j ) =" , "Ввод массива"))
Next j
Next i
б)
‘ Объявление массива z(n,m) с незаданной верхней границей
Dim z() As Single
‘ Ввод числа строк и столбцов матрицы
n = Vаl(InputBox("Число строк (n)","Ввод числа строк"))
m = Vаl(InputBox("Число столбцов (m)","Ввод числа столбцов"))
‘ Переобъявление динамического массива
ReDim z ( n,m ) As Single
‘ Ввод динамического массива z(n,m) по строкам
For i = 1 Тo n ‘ внешний цикл
For j = 1 Тo m ‘ внутренний цикл
z ( i, j ) = Val(InputBox("z ( i, j ) =" , "Ввод элементов матрицы"))
Next j
Next I
Двухмерный массив можно выводить на экранную форму. Фрагмент текста программы для вывода матрицы на экранную форму в общепринятом виде (по строкам) может, например, выглядеть так:
а)
Print "Матрица Z"
For i = 1 Тo n
For j = 1 Тo m
Print z ( i, j ), ‘ вывод элементов матрицы по строкам
Next j
Next i
Значения элементов матрицы будут выведены в общепринятом виде (“n” строк и “m” столбцов). Следует обратить внимание, что во внутреннем цикле после оператора PRINT стоит точка с запятой. Это дает возможность отображать массив построчно. Оператор PRINT без параметров (пустой PRINT ), указанный после внутреннего цикла, позволяет после вывода каждой строки элементов матрицы переводить курсор на новую строчку.
Пример.
В матрице z(2,3) определить сумму положительных элементов всех элементов матрицы, а также сумму положительных элементов каждого столбца матрицы. Исходную матрицу вывести на печать в общепринятом виде.
Программный код будет иметь вид:
‘ Объявление двухмерного массива
Dim z(2,3) As Single
‘ Объявление простых переменных
Dim i As Byte, j As Byte, S As Single
‘ Ввод двухмерного массива по строкам
For i = 1 To 2
For j = 1 To 3
z(i,j) = Val(InputBox("z(i,j) ","Матрица"))
Next j
Next i
‘ Вывод двухмерного массива в общепринятом виде (по строкам)
Print "Матрица z"
For i = 1 To 2
For j = 1 To 3
Print z(i,j),
Next j
Next i
‘ Вычисление суммы всех элементов матрицы
‘ Обработка двухмерного массива по строкам
S = 0
For i = 1 To 2
For j = 1 To 3
If z(i,j) > 0 Then S = S + z(i,j)
Next j
Next i
Print "S ="; S
‘ Вычисление суммы положительных элементов каждого столбца
‘ Обработка двухмерного массива по столбцам
For j = 1 To 3
S = 0
For i = 1 To 2
If z(i, j) > 0 Then S = S + z(i, j)
Next i
Print "S ="; S,”для столбца -”; j
Next j