- •Оглавление
- •Введение
- •Лабораторная работа №1 Знакомство со средой Visual Basic. Программирование вычислений.
- •Окно программного кода
- •Задание
- •Лабораторная работа № 2 Проектирование форм приложений
- •Свойства формы
- •Основные элементы управления
- •Проектирование формы
- •Далее разместите в форме командную кнопку, задав для неё свойства
- •Dim X As Single
- •Задание
- •Лабораторная работа № 3 Разветвляющийся вычислительный процесс (ветвление)
- •Оператор if
- •Оператор Select Case
- •Задание
- •Лабораторная работа № 4 Циклический вычислительный процесс (повторение)
- •Оператор For…Next
- •Оператор Do…Loop
- •Задание
- •Лабораторная работа № 5 Сложные циклические вычислительные процессы. Обработка массивов.
- •Массивы
- •Многомерные массивы
- •Задание
- •Лабораторная работа № 6 Обработка строковых данных
- •Dim Symbol As String * 1, s As String * 4 '3
- •Dim Symbol As String * 4 '3
- •Задание
- •Лабораторная работа №7 Создание пользовательского интерфейса в Visual Basic
- •Задание
- •Список литературы
Многомерные массивы
При объявлении многомерных массивов индексы указываются через запятую, количество индексов равно размерности.
Dim Tabl(10,25) as single
В массиве Tabl11 строк и 26 столбцов.
Для обработки многомерных массивов используют сложные циклы.
Пример 4Элементы двумерного массива из 5 строк и 5 столбцов задаются генератором случайных чисел и принимают значения от 0 до 10. Вывести заданный массив. Найти суммы строк и суммы столбцов, сохранив их в одномерных массивах.
Dim x(4, 4) As Byte, SumStr(4) As Byte, SumStolb(4) As Byte
Dim i As Byte, j As Byte
For i = 0 To 4
For j = 0 To 4
x(i, j) = 1 + Rnd * 10
Print x(i, j);
Next j
Next i
For i = 0 To 4
SumStr(i) = 0
For j = 0 To 4
SumStr(i) = SumStr(i) + x(i, j)
Next j
Next i
For j = 0 To 4
SumStolb(j) = 0
For i = 0 To 4
SumStolb(j) = SumStolb(j) + x(i, j)
Next i
Next j
Print "Суммы строк"
For i = 0 To 4
Print SumStr(i);
Next i
Print "Суммы столбцов"
For i = 0 To 4
Print SumStolb(i);
Next i
End Sub
Задание
Составить программу обработки двумерного массива размером 5x5. Массив сформировать с помощью генератора случайных чисел. Диапазон значений для элементов массива – от -10 до +10. Сформированный массив вывести построчно. Для массива выполнить задание в соответствии со своим вариантом
Определить номера строк, все элементы которых ненулевые. Вычислить сумму положительных элементов каждого столбца
Определить число элементов, попадающих в интервал от 2 до 9. Вычислить произведение отрицательных элементов.
Вычислить сумму положительных элементов каждого столбца. Определить количество строк, сумма элементов которых отрицательна.
Определить номера строк, все элементы которых ненулевые. Определить количество отрицательных элементов в массиве.
Определить индексы и количество отрицательных элементов в массиве.
Вычислить сумму значений элементов, больших 5. Определить число строк, содержащих отрицательные элементы.
Вычислить среднее арифметическое значение положительных элементов массива. Определить количество нулевых элементов в каждой строке.
Определить количество нулевых, отрицательных и положительных значений в массиве. Вычислить сумму элементов, больших 2, в массиве.
Определить количество элементов, попадающих в интервал от 2 до 9. Вычислить сумму отрицательных элементов в каждом столбце.
Вычислить сумму положительных элементов в каждой строке. Найти сумму элементов, расположенных на главной диагонали матрицы.
Лабораторная работа № 6 Обработка строковых данных
Для хранения строковых данных используются переменные типа String. Каждый символ, сохранённый в переменной типа String, занимает один байт памяти. Различные операционные системы поддерживают различную максимальную длину строки. Для того, чтобы VB отличал строковую константу от имени переменной, строковая константа заключается в кавычки.
Dim Fam as string
Fam="Сазонов"
Длина переменной ограничивается лишь операционной системой, но при необходимости её можно указать явно, например:
Dim S as string*30 – в этом случае строка может содержать максимум 30 символов.
Для строковых данных определена операция объединения строк (конкатенация). В качестве оператора объединения строк в VB можно использовать как знак +, так и &.
Для работы с данными типа String в VB используются стандартные функции.
Left(S,n) - выделение начала строки S (подстроки длиной n символов);
Right(S,n) - выделение конца строки S (подстроки длиной n символов);
Mid(S,n1,n2) - выделение из строки S подстроки длиной n2 символов, начиная с символа с номером n1;
Instr(n,S1,S2) – поиск в строке S1 первого вхождения подстроки S2, начиная с символа с номером n. Если подстрока S2 найдена, то функция возвращает номер символа, в котором начинается искомая подстрока. Если подстрока не найдена, то функция возвращает 0.
Len(S) – определение длины строки в символах. Если при описании переменной S указана максимальная длина строки, то функция выдаёт это значение, если нет – то функция выдаёт фактическое количество символов в строке.
Val(S) преобразование строки в число. Чтобы это преобразование прошло успешно, строка должна содержать только допустимые для чисел символы: цифры, знаки + или -, десятичную точку.
Str(X) – преобразование числа в строку.
Asc(S) – выдаёт ASCII код первого символа строки.
Chr(X) – возвращает символ, соответствующий указанному коду ASCII .
Пример 1 Введена фраза из нескольких слов, разделённых одним пробелом. Вывести слова этой фразы в столбец.
Dim s As String, n1 As Byte, n2 As Byte
s = "Калининградский государственный технический университет"
s=s+" "
n1 = 1: n2 = 1
Do Until n2 = Len(s)
n2 = InStr(n1, s, " ")
Print Mid(s, n1, n2 - n1)
n1 = n2 + 1
Loop
Пример 2Дано слово. Вывести его, расположив буквы в обратном порядке
…
Dim s As String, n1 As Byte, n2 As Byte
s = InputBox("Слово: ")
n = Len(s)
Do While n > 0
Print Mid(s, n, 1)
n = n - 1
Loop
Пример 3. Удалить из введённой строки все пробелы.
Dim s As String, b As String
Dim n1 As Byte, n2 As Byte
s = InputBox("строка: ")
n1 = 1: n2 = 1
b = ""
Do While n2 <> 0
n2 = InStr(n1, s, " ")
Print n1, n2
If n2 <> 0 Then
b = b + Mid(s, n1, n2 - n1)
Else
b = b + Mid(s, n1, Len(s) - n1 + 1)
End If
n1 = n2 + 1
Loop
Print b
Пример4. Заменить в существующей строке одно слово на другое. Искомое слово встречается в строке 1 раз.
Dim s As String, OldWord As String, NewWord As String, b As String
Dim n1 As Byte, n2 As Byte, dps As Byte
s = "Заканчиваем первый семестр"
OldWord = "первый"
NewWord = "второй"
n1 = 1: n2 = 1
n2 = InStr(n1, s, OldWord)
b = ""
If n2 = 0 Then
Print "искомого слова нет"
Else
dps = Len(s) - n2 - Len(OldWord): Print dps
b = b + Mid(s, n1, n2 - 1) + NewWord + Mid(s, n2 + Len(OldWord), dps)
End If
Print b
Пример 5. Разработать проект "Шифровка и дешифровка текстовых сообщений". В процессе шифровки необходимо заменить каждый символ сообщения его ASCII кодом.
Для решения задачи создадим форму следующего вида:
Рис 6.1. Проектируемая форма
В данной форме присутствуют три надписи, три текстовых поля, три командных кнопки.
Для каждой надписи задано свойство Caption.
Для текстовых полей заданы следующие свойства:
Имя (name) – соответственно: SecretTxt, ShifrTxt, Deshifrtxt,
Text – пустая строка, то есть необходимо удалить текст, предлагаемый для свойства Text по умолчанию.
Для командных кнопок заданы свойства:
Caption,
Имя (name) – соответственно Cmd1, Cmd2, Cmd3.
Далее приведён программный код процедуры обработки события – щелчка на командной кнопке "Шифровать". Для удобства пояснений в качестве комментариев указаны номера строк.
Private Sub Cmd1_Click() '1
Dim i As Byte, CodeSymbol As Byte '2