Понятие и свойства алгоритма

Содержание

Слайд 3

План лекции

Этапы решения задачи на компьютере.
Понятие алгоритма. Свойства алгоритма.
Константы и переменные.

План лекции Этапы решения задачи на компьютере. Понятие алгоритма. Свойства алгоритма. Константы

Понятие типов данных.
Арифметические выражения.
Стандартные функции.
Линейный алгоритм.
Алгоритм ветвления.
Циклический алгоритм.
Массивы данных.
Символьные данные.
Модульное программирование.

Слайд 4

Где взять?

http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-basic-express не в моде совместимости
http://www.dreamspark.ru/ для студентов бесплатно
http://www.microsoft.com/downloads/ru-ru/details.aspx?FamilyID=f81412a2-d48e-4040-9b32-27eaf771c5db&displaylang=ru

Где взять? http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-basic-express не в моде совместимости http://www.dreamspark.ru/ для студентов бесплатно http://www.microsoft.com/downloads/ru-ru/details.aspx?FamilyID=f81412a2-d48e-4040-9b32-27eaf771c5db&displaylang=ru

Слайд 19

Кнопка, которая изменяет свойство текст объекта Label1
Private Sub Button1_Click(ByVal sender As System.Object,

Кнопка, которая изменяет свойство текст объекта Label1 Private Sub Button1_Click(ByVal sender As
ByVal e As System.EventArgs) Handles Button1.Click
Label1.Text ="Привет всем !"
End Sub

Слайд 20

Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As

Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim i As Integer
Dim Wrap As String
Wrap = Chr(13) & Chr(10)
For i = 5 To 25 Step 5
Label1.Text = Label1.Text & "Строка " & i & Wrap
Next i
End Sub
End Class
vbCrLf

Слайд 23

Кнопка, закрывающая форму:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

Кнопка, закрывающая форму: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
Handles Button1.Click
Me.Close()
End Sub

Слайд 24

Языки программирования могут быть разделены на компилируемые и интерпретируемые
Программа на компилируемом языке

Языки программирования могут быть разделены на компилируемые и интерпретируемые Программа на компилируемом
при помощи специальной программы компилятора преобразуется (компилируется) в набор инструкций для данного типа процессора (машинный код) и далее записывается в исполняемый файл, который может быть запущен на выполнение как отдельная программа. Другими словами, компилятор переводит программу с языка высокого уровня на низкоуровневый язык, понятный процессору.
Если программа написана на интерпретируемом языке, то интерпретатор непосредственно выполняет (интерпретирует) ее текст без предварительного перевода. При этом программа остается на исходном языке и не может быть запущена без интерпретатора. Можно сказать, что процессор компьютера — это интерпретатор машинного кода.

Слайд 25

Во многих ранних версиях BASIC был интерпретируемым языком. Каждая строка перед выполнением

Во многих ранних версиях BASIC был интерпретируемым языком. Каждая строка перед выполнением
интерпретировалась, что вызывало медленную обработку кода. В большинстве современных вариантов языка BASIC программа компилируется, и в результате выполнение программы значительно ускорилось, а перемещаемость программы улучшилась.

Слайд 26

Переменные, константы, типы данных,

Переменные, константы, типы данных,

Слайд 27

Переменные

Данные в компьютер поступают в различных видах. В пределах данного курса

Переменные Данные в компьютер поступают в различных видах. В пределах данного курса
мы будем использовать числовую, символьную (текстовую, строковую, литерную) и логическую информацию.
Эти данные запоминаются в ячейках памяти компьютера. Ячейки могут состоять из 1, 2, 4, 8 и т.д. байт. 1 байт содержит 8 бит. 1 бит – это минимальная единица памяти компьютера.
Переменная – это именованная ячейка памяти, в которой хранятся данные. В процессе выполнения программы эти данные могут меняться.
Правила выбора имен переменных:
Может иметь длину до 255 символов.
Имя может начинаться только с буквы.
Нельзя использовать пробелы, точки и другие знаки препинания, специальные символы, кроме _.
Должно быть уникальным.
Не должно совпадать с ключевыми словами Visual Basic.

Слайд 28

Переменные

Таким образом,
имя переменной – это комбинация букв, цифр, _. Начинается

Переменные Таким образом, имя переменной – это комбинация букв, цифр, _. Начинается
обязательно с буквы и имеет длину до 255 символов.
Регистр символов компилятором игнорируется. То есть, например, MyVariable и myvariable – это одна и та переменная, то есть одна и та же ячейка памяти.
Имена переменных нужно выбирать таким образом, чтобы легко было потом вспомнить для каких целей служила та или иная переменная.
Для задания (описания, объявления) переменной используется следующая синтаксическая конструкция:
Dim имя_переменной As тип_данных = начальное значение переменой.
Пример: Dim iA As Integer = 10 – это описание целочисленной переменной с инициализацие начальным значением 10. Начальное значение можно не задавать. По умолчанию начальное значение переменой на Visual Basic равно нулю

Слайд 29

Константы

Константа – это величина, которая не меняется в ходе выполнения программы.
Описание константы

Константы Константа – это величина, которая не меняется в ходе выполнения программы.
на языке Visual Basic:
Const имя_константы As тип_данных = значение константы
Пример:
Const PI As Single = 3.141593
И тогда в программе можно писать:
L = 2 * PI * R вместо L = 2 * 3.141593 *R

Слайд 30

Типы данных

Программы могут оперировать с различными типами данных. Это могут быть целые

Типы данных Программы могут оперировать с различными типами данных. Это могут быть
и вещественные числа, строки текста, байты и другие. Операции над различными типами данных различны и нам необходимо различать какие операции с ними можно выполнять, а какие нельзя.

Слайд 32

Логический тип данных

Переменные логического типа принимают только два значения - true (истина)

Логический тип данных Переменные логического типа принимают только два значения - true
и false (ложь).
true (истина) и false (ложь) – это логические константы.
Для них определены следующие логические операции:
Операция отрицания Not (НЕ).
Операция And (И)
Операция Or (ИЛИ)
Операция Xor (Исключающее ИЛИ)
С= Ф and G
Таблица истинности – это таблица значений, принимаемых переменными в результате данной логической операции.

Слайд 34

Арифметическое выражение

Visual Basic содержит следующие операторы:

Арифметическое выражение Visual Basic содержит следующие операторы:

Слайд 35

Арифметическое выражение

Управлять порядком вычисления формулы. Используйте в формуле круглые скобки.
Например:

Арифметическое выражение Управлять порядком вычисления формулы. Используйте в формуле круглые скобки. Например:

Result = 1 + 2 ^ 3 \ 4 ' это равно 3
Result = (1 + 2) ^ ( 3 \ 4) ' это равно 1

Слайд 36

Оператор присвоения
A=B
A=A+1

Оператор присвоения A=B A=A+1

Слайд 37

Стандартные функции

Математические функции.
Строковые функции.
Функции обработки дат и времени.
Функции…

Стандартные функции Математические функции. Строковые функции. Функции обработки дат и времени. Функции…

Слайд 38

Функция Math.Abs()

Функция Math.Abs() – возвращает модуль числа (абсолютное значение), заданного в качестве

Функция Math.Abs() Функция Math.Abs() – возвращает модуль числа (абсолютное значение), заданного в
параметра функции.
Примеры использования:
Dim H As Single
H = Math.Abs(25) ‘--- Результат будет 25
H = Math.Abs(-25) ‘---Результат будет 25
Label1.text= H

Слайд 39

Функция Math.Sqrt()

Функция Math.Sqrt() – предназначена для вычисления квадратного корня числа, заданного в

Функция Math.Sqrt() Функция Math.Sqrt() – предназначена для вычисления квадратного корня числа, заданного
качестве параметра функции.
Примеры использования:
Dim H As Single
H = Math.Sqrt(25) ‘---Результат будет 5
Label1.text= H
Dim Hypotenuse As Single
X=3
Y=5
Hypotenuse = Sqrt(x ^ 2 + y ^ 2)
Label1.text= Hypotenuse

Слайд 40

Функция Math.Sin()

Функция Math.Sin() – предназначена для вычисления синуса заданного угла (в

Функция Math.Sin() Функция Math.Sin() – предназначена для вычисления синуса заданного угла (в
радианах).
Пример использования:
Dim H As Single
H = Sin(1.57) ‘---Результат будет 1
Label1.text= H

Слайд 41

Функция Math.Cos()

Функция Math.Cos() – предназначена для вычисления косинуса заданного угла (в радианах).
Пример

Функция Math.Cos() Функция Math.Cos() – предназначена для вычисления косинуса заданного угла (в
использования:
Dim H As Single
H = Cos (1.57) ‘---Результат будет 0
Label1.text= H

Слайд 42

Функция Math.Exp()

Функция Math.Exp() – предназначена для вычисления числа е = 2.71828182, возведенного

Функция Math.Exp() Функция Math.Exp() – предназначена для вычисления числа е = 2.71828182,
в заданную в качестве аргумента степень.
y=ex
Пример использования:
Msgbox Math.Exp(1) ‘---Результат будет 2.71828182.

Слайд 43

Функция Math.Ceiling()

Функция Math.Ceiling() – возвращает наименьшее целое число, большее или равное заданному

Функция Math.Ceiling() Функция Math.Ceiling() – возвращает наименьшее целое число, большее или равное
в качестве аргумента числу.
Ceiling [‘si:liη] – потолок, верхний предел.
Примеры использования:
Msgbox Math.Ceiling(2.4) ‘---Результат будет 3.
Msgbox Math.Ceiling(-2.4) ‘---Результат будет -2.

Слайд 44

Функция Math.Floor()

Функция Math.Floor() – возвращает наибольшее целое число, меньшее или равное заданному

Функция Math.Floor() Функция Math.Floor() – возвращает наибольшее целое число, меньшее или равное
в качестве аргумента числу.
Floor [flo:] – нижний предел.
Примеры использования:
Msgbox Math.Floor (2.4) ‘---Результат будет 2.
Msgbox Math.Floor(-2.4) ‘---Результат будет -3

Слайд 45

Функция Math.Round()

Функция Math.Round() – служит для округления числа, заданного в качестве аргумента,

Функция Math.Round() Функция Math.Round() – служит для округления числа, заданного в качестве
до ближайшего целого числа.
Round [raund] – круглый.
Примеры использования:
Msgbox Math.Round(2.4) ‘---Результат будет 2.
Msgbox Math.Round(2.7) ‘---Результат будет 3

Слайд 46

Функция Math.Log()

Функция Math.Log() – применяется для вычисления натурального логарифма числа, заданного в

Функция Math.Log() Функция Math.Log() – применяется для вычисления натурального логарифма числа, заданного
качестве аргумента.
Пример использования:
Msgbox Math.Log(2) ‘---Результат будет

Слайд 47

Функция rnd()

Функция rnd() – применяется для генерации случайных чисел. Она генерирует случайные

Функция rnd() Функция rnd() – применяется для генерации случайных чисел. Она генерирует
вещественные числа в диапазоне 0.0 – 1.0
ГСЧ в качестве источника случайных чисел используют специальным образом составленные таблицы, содержащие проверенные некоррелированные, то есть никак не зависящие друг от друга, цифры.
Dim a As Integer
a = int(rnd()*100)
Label1.Text = a

Слайд 48

Линейный алгоритм

Алгоритм, в котором все операции выполняются в той последовательности, в которой

Линейный алгоритм Алгоритм, в котором все операции выполняются в той последовательности, в
они записаны, называется линейным.

Слайд 49

Линейный алгоритм.

Разберем решение задачи на линейный алгоритм на простом примере (пройдем

Линейный алгоритм. Разберем решение задачи на линейный алгоритм на простом примере (пройдем
все этапы решения задачи на компьютере):
Постановка задачи. Задан радиус окружности R. Найти длину окружности.
Разработка алгоритма решения задачи.
Словесная запись алгоритма:
Задать численное значение радиуса окружности R.
Вычислить значение длины окружности по формуле
L = 2*π*R
Напечатать значение L

Слайд 50

Описание алгоритма с помощью блок-схемы:

Описание алгоритма с помощью блок-схемы:

Слайд 51


REM Задан радиус окружности R. Найти длину окружности.
Dim R As Integer
Dim L

REM Задан радиус окружности R. Найти длину окружности. Dim R As Integer
As Single
Const PI As Single = 3.141593
R = InputBox("Введите радиус окружности")
L = 2 * PI * R
MsgBox(L, MsgBoxStyle.Information, "длина окружности")

Слайд 52

Алгоритм ветвления

Иногда нужно предусмотреть различные пути вычисления ответа. Причем, выбор того или

Алгоритм ветвления Иногда нужно предусмотреть различные пути вычисления ответа. Причем, выбор того
иного пути зависит как от условия задачи, так и от результатов, полученных в ходе решения. Каждое возможное направление вычислений называется ветвью.

Слайд 53

Запись оператора ветвления на языке Visual Basic:
If условие Then оператор_1
If условие

Запись оператора ветвления на языке Visual Basic: If условие Then оператор_1 If
Then оператор_1 Else оператор_2
If условие Then
опер_1
опер_2
EndIf

Слайд 54

If условие Then
опер_1
опер_2

Else
опер_11
опер_12

EndIf

If условие Then опер_1 опер_2 … Else опер_11 опер_12 … EndIf

Слайд 55

Операторы сравнения

Операторы сравнения

Слайд 56

Задача на алгоритм ветвления

1. Постановка задачи. Определить попадает ли точка с

Задача на алгоритм ветвления 1. Постановка задачи. Определить попадает ли точка с
координатами T(X,Y) в круг радиуса R. Центр окружности совпадает с началом системы координат. Программа должна ответить «да» или «нет».
2.Разработка алгоритма:
Словесное описание алгоритма:
Задать координаты точки X,Y.
Задать радиус окружности R.
Вычислить расстояние от центра окружности до точки RT по формуле RT= √X^2+Y^2.
Если RT < R, то напечатать, что «да», иначе напечатать, что «нет».

Слайд 57

Задача на алгоритм ветвления

Задача на алгоритм ветвления

Слайд 58

Задача на алгоритм ветвления

3. Ввод текста программы в компьютер и ее отладка
REM

Задача на алгоритм ветвления 3. Ввод текста программы в компьютер и ее
Определить попадает ли точка с координатами T(X,Y) в круг радиуса R.
REM Центр окружности совпадает с началом системы координат.
REM Программа должна ответить «да» или «нет».
Dim X, Y, R As Integer
Dim RT As Single
X = InputBox("Введите Х-координату точки")
Y = InputBox("Введите Y-координату точки")
R = InputBox("Введите радиус окружности")
RT = Math.Sqrt(X ^ 2 + Y ^ 2)
If RT < R Then MsgBox("Да") Else MsgBox("Нет")
4. Тестирование программы.
5. Использование программы.

Слайд 59

Оператор выбора Select Case

Select Case переменная
Case значение1 операторы программы, исполняемые, если

Оператор выбора Select Case Select Case переменная Case значение1 операторы программы, исполняемые,
переменная содержит значение 1
Case значение 2 операторы программы, исполняемые, если переменная содержит значение 2
Case значение 3 операторы программы, исполняемые, если переменная содержит значение 3

Case Else операторы программы, исполняемые, если совпадения не найдено"
End Select
Вместо слова переменная можно использовать переменную, арифметическое выражение, логическое выражение, свойство объекта и т.д.

Слайд 60

REM Определить статус ученика в зависимости от полученной отметки
Dim a As Integer
a

REM Определить статус ученика в зависимости от полученной отметки Dim a As
= InputBox("Введите оценку в виде числа")
Select Case a
Case 1, 2
MsgBox("Двоечник", MsgBoxStyle.Information)
Case 3
MsgBox("Троечник", MsgBoxStyle.Information)
Case 4
MsgBox("Хорошист", MsgBoxStyle.Information)
Case 5
MsgBox("Отличник", MsgBoxStyle.Information)
Case Else
MsgBox("Ошибка", MsgBoxStyle.Information)
End Select

Слайд 61

Dim Age As Integer Age = 18 Select Case Age Case 16

Dim Age As Integer Age = 18 Select Case Age Case 16
MsgBox("Теперь вы можете водить машину!") Case 18 MsgBox("Теперь вы можете участвовать в выборах!") Case 21 MsgBox("Теперь вы можете пить вино. ") Case 65 MsgBox("Теперь вы можете жить в свое удовольствие!") End Select

Слайд 62

Dim Age As Integer
Age = 25
Select Case Age
Case 16

Dim Age As Integer Age = 25 Select Case Age Case 16

Label1.Text = "Теперь вы можете водить машину!"
Case 18 Label1.Text = "Теперь вы можете участвовать в выборах!"
Case 21 Label1.Text = "Теперь вы можете пить вино."
Case 65 Label1.Text = "Теперь вы можете жить в свое удовольствие!"
Case Else Label1.Text = "Вы в полном расцвете сил!"
End Select

Слайд 63

Select Case Age
Case Is < 13
Label1.Text = "Радуйся своему детству!"

Select Case Age Case Is Label1.Text = "Радуйся своему детству!" Case 13

Case 13 To 19
Label1.Text = "Радуйся своей молодости!"
Case 21 Label1.Text = "Пей вино с друзьями."
Case Is > 100
Label1.Text = "Прекрасно выглядишь!"
Case Else
Label1.Text = "Вы в полном расцвете сил."
End Select

Слайд 64

Операторы сравнения позволяют включить в структуру Select Case диапазон значений. Для этого

Операторы сравнения позволяют включить в структуру Select Case диапазон значений. Для этого
служат такие операторы сравнения Visual Basic, как
=, <>, >, <, >= , <=.
Чтобы использовать операторы сравнения, вы должны включить в выражение ключевое слово Is или ключевое слово To, определяющие производимое сравнение. Ключевое слово Is говорит компилятору о том, что требуется сравнить переменную с выражением, указанным после ключевого слова Is. Ключевое слово To определяет диапазон значений.

Слайд 65

Циклический алгоритм

Многократное повторение одних и тех же операций называется циклом.
Набор команд

Циклический алгоритм Многократное повторение одних и тех же операций называется циклом. Набор
(операций), которые повторяются многократно, составляют тело цикла.

Слайд 66

Циклический алгоритм

Постановка задачи.
Посчитать сколько калорий потратит бегун на стадионе за

Циклический алгоритм Постановка задачи. Посчитать сколько калорий потратит бегун на стадионе за
15 кругов, если на первом круге он тратит 20ккал, а на каждом следующем на 5% больше.
Словесная запись алгоритма:
задать начальное условие.
задать приращение и способ его добавления
задать цикл и условие выхода из него.

Слайд 67

Циклический алгоритм

Циклический алгоритм

Слайд 68

Оператор цикла For…Next

С помощью цикла For…Next вы можете выполнять группу операторов программы

Оператор цикла For…Next С помощью цикла For…Next вы можете выполнять группу операторов
в процедуре события или модуле кода заданное число раз. Этот подход полезен в том случае, если вы выполняете несколько связанных вычислений, работаете с элементами на экране или обрабатываете несколько фрагментов данных, введенных пользователем. Цикл For…Next является на самом деле просто кратким способом записать длинный список операторов программы. Так как каждая группа операторов в таком списке будет делать одно и то же, Visual Basic позволяет определить одну такую группу операторов и выполнить ее столько раз, сколько вы захотите.

Слайд 69

Оператор цикла For…Next

Синтаксис цикла For…Next имеет следующий вид:
For переменная = начальное_значение

Оператор цикла For…Next Синтаксис цикла For…Next имеет следующий вид: For переменная =
To конечное_ значение
повторяемые операторы
Next [переменная]
В этом описании синтаксиса For, To и Next - это обязательные ключевые слова, оператор присвоения (=) также обязателен. Вы должны заменить переменная именем числовой переменной, которая хранит текущее значение счетчика циклов (переменная после Next указывать необязательно), а начальное_значение и конечное_значение заменить числовыми значениями, представляющими начальную и конечную точки цикла. (Заметьте, что вы должны объявить переменную до того, как станете использовать ее в операторе For…Next.) Строка или строки между операторами For и Next - это операторы, которые повторяются при каждом исполнении цикла.

Слайд 70

Оператор цикла For…Next

Например, следующий цикл For…Next воспроизводит в виде быстрой последовательности четыре

Оператор цикла For…Next Например, следующий цикл For…Next воспроизводит в виде быстрой последовательности
звуковых сигнала:
Dim i As Integer
For i = 1 To 4
Beep()
Next i
Этот цикл эквивалентен написанию в процедуре оператора Beep четыре раза. Компилятор воспринимает его точно так же, как и
Beep()
Beep()
Beep()
Beep()

Слайд 71

Оператор цикла For…Next

Переменная-счетчик i в цикле For…Next может стать мощным инструментом вашей

Оператор цикла For…Next Переменная-счетчик i в цикле For…Next может стать мощным инструментом
программы. При некотором воображении вы можете использовать ее для создания в ваших циклах нескольких полезных последовательностей чисел. Чтобы создать цикл с шаблоном счетчика, отличным от 1, 2, 3, 4 и т.д., вы можете указать в цикле различные начальные значения, а затем использовать ключевое слово Step для увеличения счетчика на различные интервалы.

Слайд 72

Оператор цикла For…Next

Например, код
Dim i As Integer
Dim Wrap As String

Оператор цикла For…Next Например, код Dim i As Integer Dim Wrap As

Wrap = Chr(13) & Chr(10)
For i = 5 To 25 Step 5
TextBox1.Text = TextBox1.Text & "Строка " & i & Wrap
Next i
отобразит в текстовом поле следующую последовательность номеров строк:
Строка 5
Строка 10
Строка 15
Строка 20
Строка 25

Слайд 73

Оператор цикла For…Next

Если вы объявите i как переменную с плавающей точкой

Оператор цикла For…Next Если вы объявите i как переменную с плавающей точкой
одинарной или двойной точности, вы сможете указать в цикле десятичные значения. Например, цикл For…Next
Dim i As Single
Dim Wrap As String
Wrap = Chr(13) & Chr(10)
For i = 1 To 2.5 Step 0.5
TextBox1.Text = TextBox1.Text & "Строка " & i & Wrap
Next i
отобразит в текстовом поле следующие номера строк:
Строка 1
Строка 1.5
Строка 2
Строка 2.5

Слайд 74

Оператор Exit For

Большинство циклов For…Next выполняются до конца без каких-либо проблем, но

Оператор Exit For Большинство циклов For…Next выполняются до конца без каких-либо проблем,
иногда бывает нужно остановить работу цикла For…Next "досрочно" при выполнении некоторого условия. Такую возможность предоставляет использование оператора Exit For - специального оператора для досрочного завершения выполнения цикла For…Next и передачи управления на первый оператор, стоящий после этого цикла.
Например, следующий цикл For…Next запрашивает у пользователя 10 имен и отображает их одно за другим в текстовом поле до тех пор, пока пользователь не введет слово "Готово":

Слайд 75

Dim i As Integer
Dim InpName As String
For i = 1

Dim i As Integer Dim InpName As String For i = 1
To 10
InpName = InputBox("Введите ваше имя или наберите Готово для выхода.")
If InpName = "Готово" Then Exit For
Label1.Text = "Вас зовут " & InpName
Next i

Слайд 76

задача

Создать таблицу перевода значений температуры по Фаренгейту в интервале от 0 до

задача Создать таблицу перевода значений температуры по Фаренгейту в интервале от 0
100 градусов в значения температуры по Цельсию с шагом 10 градусов, используя формулу:
tc=5/9*(tf -32)

Слайд 77

Dim faren, cels as Single
Dim Wrap as string
Wrap = Chr(13) & Chr(10)
For

Dim faren, cels as Single Dim Wrap as string Wrap = Chr(13)
faren = 0 to 100 step 10
cels = (faren-32)*5/9
TextBox1.Text = TextBox1.Text & " Фаренгейт = “
& faren & " Цельсий = " & cels & Wrap
next faren

Слайд 78

Задача о бегуне

Посчитать сколько калорий потратит бегун на стадионе за 15 кругов,

Задача о бегуне Посчитать сколько калорий потратит бегун на стадионе за 15
если на первом круге он тратит 20ккал, а на каждом следующем на 5% больше.
Dim sum, proc as Single
Dim i As Integer
Const rashod1 as Single = 20.0
proc = rashod1 *0.05
sum = rashod1
rashod = rashod1
For i = 2 To 15
sum = sum + rashod + proc
rashod = rashod + proc
Next i
MsgBox("Всего калорий = " & sum)

Слайд 79

Цикл Do

В качестве альтернативы циклу For…Next можно написать цикл Do, который

Цикл Do В качестве альтернативы циклу For…Next можно написать цикл Do, который
исполняет группу операторов до тех пор, пока некоторое условие не станет равно True. Циклы Do ценны тем, что зачастую вы не сможете заранее узнать, сколько раз цикл должен повторяться. Например, вы можете позволить пользователю вводить имена в базу данных до тех пор, пока пользователь не введет в поле ввода слово "Готово". В этом случае можно использовать цикл Do, повторяющийся до тех пор, пока не будет введено слово "Готово".

Слайд 80

Цикл Do

Цикл Do имеет несколько форматов, зависящих от того, где и как

Цикл Do Цикл Do имеет несколько форматов, зависящих от того, где и
вычисляется условие цикла. Чаще других встречается такой синтаксис:
Do While условие
блок выполняемых операторов
Loop
while – остановись, когда условие нарушится
Until – остановись, когда условие выполнится

Слайд 81

Например, следующий цикл Do будет запрашивать у пользователя данные и отображать

Например, следующий цикл Do будет запрашивать у пользователя данные и отображать их
их в текстовом поле до тех пор, пока не будет введено слово "Готово":
Dim InpName As String
Do While InpName <> "Готово"
InpName = InputBox("Введите ваше имя или наберите Готово для выхода.")
If InpName <> "Готово" Then
Label1.Text = InpName
Loop

Слайд 82

Условный оператор в этом цикле имеет вид InpName <> "Готово",
и

Условный оператор в этом цикле имеет вид InpName "Готово", и компилятор Visual
компилятор Visual Basic транслирует его в значение "повторять цикл до тех пор, пока переменная InpName не будет содержать слова Готово". Это приводит к одному интересному моменту, касающемуся циклов Do: если условие в начале цикла не равно True при первом выполнении оператора Do, то цикл Do никогда не исполняется. Таким образом, если строковая переменная InpName содержит значение "Готово" до начала цикла (возможно, в результате более раннего присвоения значения в процедуре события), Visual Basic пропустит весь цикл и продолжит выполнение со строки, расположенной вслед за ключевым словом Loop.

Слайд 83

Если вы хотите, чтобы в программе цикл всегда выполнялся хотя бы один

Если вы хотите, чтобы в программе цикл всегда выполнялся хотя бы один
раз, поместите проверку условия в конце цикла. Например, цикл
Dim InpName As String
Do
InpName = InputBox("Введите ваше имя или наберите Готово для выхода.")
If InpName <> " Готово" Then
TextBox1.Text = InpName
Loop While InpName <> " Готово"
Это пример цикла с постусловием.

Слайд 84

Предотвращение бесконечных циклов

Из-за существующей структуры циклов Do, очень важно проектировать проверки

Предотвращение бесконечных циклов Из-за существующей структуры циклов Do, очень важно проектировать проверки
условий таким образом, чтобы каждый цикл имел реальную точку выхода. Если проверка условий выполнения цикла никогда не даст в результате False, цикл будет выполняться бесконечно и ваша программа перестанет реагировать на ввод. Рассмотрим следующий пример:
Dim Number as Double
Do
Number = InputBox("Введите число для возведения в квадрат. Введите -1 для выхода.")
Number = Number * Number
TextBox1.Text = Number
Loop While Number >= 0

Слайд 85

В этом цикле пользователь вводит одно число за другим, а программа возводит

В этом цикле пользователь вводит одно число за другим, а программа возводит
число в квадрат и отображает результат в текстовом поле.
К сожалению, пользователь, закончив работу, не сможет выйти, так как представленное условие выхода не работает. Когда пользователь вводит -1, программа возводит его в квадрат, и переменной Number присваивается значение 1. (Проблему можно решить, поставив другое условие выхода.) Отслеживание бесконечных циклов при написании циклов Do очень важно. К счастью, если вы тщательно тестируете программу, то их довольно легко обнаружить.

Слайд 86

Использование в циклах Do ключевого слова Until

Циклы Do, с которыми вы до

Использование в циклах Do ключевого слова Until Циклы Do, с которыми вы
сих пор работали, для выполнения группы операторов до тех пор, пока условие равно True, использовали ключевое слово While.
Visual Basic также позволяет использовать в циклах Do ключевое слово Until, которое приводит к повторению цикла до тех пор, пока заданное условие не станет равным True.
Ключевое слово Until можно использовать для проверки условия, как в начале, так и в конце цикла Do, точно так же, как и ключевое слово While.

Слайд 87

Например, следующий цикл Do использует ключевое слово Until для повторения цикла до

Например, следующий цикл Do использует ключевое слово Until для повторения цикла до
тех пор, пока пользователь не ввел в поле ввода слово "Готово":
Dim InpName As String
Do
InpName = InputBox("Введите ваше имя или наберите Готово для выхода.")
If InpName <> "Готово" Then TextBox1.Text = InpName
Loop Until InpName = "Готово"
Цикл, который использует ключевое слово Until, аналогичен циклу, который использует ключевое слово While, за исключением того, что проверка условия обычно содержит обратный оператор - в данном случае это оператор = (равно) вместо оператора <> (не равно).

Слайд 88

Dim answer As String
Do
answer = InputBox("Ты лох?")
Loop Until answer

Dim answer As String Do answer = InputBox("Ты лох?") Loop Until answer
= "Да"
Label1.Text = "В этом никто и не сомневался!"

Слайд 89

Структурированные данные

Для повышения производительности и качества работы необходимо иметь данные, максимально приближенные

Структурированные данные Для повышения производительности и качества работы необходимо иметь данные, максимально
к реальным аналогам.
Тип данных, позволяющий хранить вместе под одним именем несколько переменных, называется структурированным.
Каждый язык программирования имеет свои структурированные типы.
Рассмотрим структуру, объединяющую элементы одного типа данных, — массив.

Слайд 90

Массивы данных

Массивом называют упорядоченную последовательность однотипных данных, обозначенных одним именем.
Имя

Массивы данных Массивом называют упорядоченную последовательность однотипных данных, обозначенных одним именем. Имя
массива формируется так же, как и имя переменной.
Отдельные величины, составляющие массив данных, называются элементами массива. К каждому элементу массива можно обратиться, указав имя массива и индекс (номер), который показывает положение элемента в массиве.
Описание массива на языке Visual Basic:
Dim A(5) As Integer
A – имя массива
5 – это размер массива, то есть, сколько элементов в массиве.

Слайд 91

Например, если сказано: «задан массив А(10)», это означает, что даны элементы: а1

Например, если сказано: «задан массив А(10)», это означает, что даны элементы: а1
а2, ... , а10.
Ввод элементов одномерного массива осуществляется поэлемен­тно, в порядке, необходимом для решения конкретной задачи. Обыч­но, когда требуется ввести весь массив, элементы вводятся в порядке возрастания их индексов.
Пример записи данных в конкретный элемент:
A(1)=100 Msgbox (A(1),msgboxStyle.Information, ” Значение первого элемента массива”)

Слайд 92

В общем случае во многих языках программирования Массивы бывают статические и динамические.

В общем случае во многих языках программирования Массивы бывают статические и динамические.

Статические массивы создаются для хранения определенного числа элементов, и далее в программе их количество больше не меняется.
Динамические массивы в процессе выполнения программы могут изменять свой размер.
Такие массивы удобно использовать, если заранее неизвестен размер массива.

Слайд 93

Понятие размерности массива

Размерность массива определяется количеством индексов, необходимых для указания

Понятие размерности массива Размерность массива определяется количеством индексов, необходимых для указания положения
положения его элемента.
Если оно определяется одним индексов, то массив называется одномерным.
Если положение элемента в массиве определяется двумя индексами, то массив называется двумерным.

Слайд 94

Задать и вывести на экран элементы одномерного массива.
Dim a(5) As Integer
Dim

Задать и вывести на экран элементы одномерного массива. Dim a(5) As Integer
i As Integer
For i = 0 To 5
a(i) = Val(TextBox1.Text)
Label1.Text = a(i)
Next i

Слайд 95

В заданном числовом массиве найти сумму всех элементов.
Dim a() As Integer
Dim i,

В заданном числовом массиве найти сумму всех элементов. Dim a() As Integer
n, Summa As Integer
n = Val(InputBox("Введите размер массива"))
ReDim a(n)
For i = 0 To n
a(i) = Val(InputBox("Next element:"))
Label1.Text = a(i)
Next i
Summa = 0
For i = 0 To n
Summa = Summa + a(i)
Next i
MsgBox(Summa,MsgBoxStyle.Information,"Сумма всех чисел“)

Слайд 96

В заданном числовом массиве найти максимальный элемент (число).
Dim a() As Integer
Dim i,

В заданном числовом массиве найти максимальный элемент (число). Dim a() As Integer
n, max As Integer
n = Val(InputBox("Введите размер массива"))
ReDim a(n)
For i = 0 To n
a(i) = Val(InputBox("Next element:"))
MsgBox a(i)
Next i
max = a(0)
For i = 0 To n
If a(i) > max Then max = a(i)
Next i
MsgBox(max, MsgBoxStyle.Information, "Максимальный элемент")

Слайд 97

Сумма и количество четных элементов (чисел):

Dim a() As Integer
Dim i, n,

Сумма и количество четных элементов (чисел): Dim a() As Integer Dim i,
Kol, Summa As Integer
n = Val(InputBox("Введите размер массива"))
ReDim a(n)
For i = 0 To n
a(i) = int(rnd*100)
Next i
Kol = 0
Summa = 0
For i = 0 To n
If a(i) mod 2 = 0 Then
Kol = Kol + 1
Summa = Summa + a(i)
End If
Next i
MsgBox(Kol, MsgBoxStyle.Information, "Количество четных чисел")
MsgBox(Summa, MsgBoxStyle.Information, "Сумма четных чисел")

Слайд 98

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

Если положение элемента в массиве определяется двумя индексами (номером по строке

Двумерные массивы Если положение элемента в массиве определяется двумя индексами (номером по
и номером по столбцу), то массив называется двумерным.
В программе на языке Basic двумерный массив описывается следующим образом:
Dim A(m,n) as Тип массива, где m – количество строк, n – количество столбцов.

Слайд 99

Графическое представление двумерного массива

Графическое представление двумерного массива

Слайд 100

Заполнение двумерного массива данными:

Можно заполнять по строкам или по столбцам с помощью

Заполнение двумерного массива данными: Можно заполнять по строкам или по столбцам с
двух вложенных циклов.
Циклы называются вложенными, если один находится внутри другого, например:
For i = 0 To 2
For j = 0 To 3
MsgBox(i & j)
Next j
Next i
Числа напечатаются в следующем порядке:
0,0; 0,1; 0,2; 0,3 1,0; 1,1; 1,2; 1,3 2,0; 2,1; 2,2; 2,3

Слайд 101

Пример на двумерный массив

Dim a(,), m, n As Integer
Dim i, j As

Пример на двумерный массив Dim a(,), m, n As Integer Dim i,
Integer
m = Val(InputBox("Введите количество строк"))
n = Val(InputBox("Введите количество столбцов"))
ReDim a(m, n)
Label1.Text = ""
For i = 0 To m
For j = 0 To n
a(i,j) = Int(Rnd() * 10)
Label1.Text = Label1.Text & " " & a(i,j)
Next j
Label1.Text = Label1.Text & vbCrLf
Next i

Слайд 102

Символьные данные

Символьные данные иначе называются текстовыми, строковыми, литерными. Под символьными данными

Символьные данные Символьные данные иначе называются текстовыми, строковыми, литерными. Под символьными данными
подразумевается весь набор алфавита языка Basic.
Символьные данные бывают константами и переменными.
Символьная константа – это набор символов, заключенных в двойные кавычки.
Количество символов, содержащихся в символьной константе, называется длиной символьной константы.

Слайд 103

Символьная переменная, содержащая символьную константу, называется символьной переменной.
На языке Visual Basic Net

Символьная переменная, содержащая символьную константу, называется символьной переменной. На языке Visual Basic
символьная переменная описывается следующим образом:
Char — один символ формата Unicode (от 0 до 65535).
String — Строка постоянной длины (Длина может быть от 0 до приблизительно двух миллионов символов).
Над символьными данными можно производить операцию слияния или конкатенации. Она обозначается знаком &. Иногда ее обозначают знаком +, что осталось от предыдущих версий.

Слайд 104

Символы в компьютере запоминаются в числовых кодах, то есть каждому символу ставится

Символы в компьютере запоминаются в числовых кодах, то есть каждому символу ставится
в соответствие какой-то числовой код. Разработано несколько систем кодирования символов. Самой распространенной оказалась ASCII система. В этой системе для хранения каждого символа отводится 1 байт памяти. А 1 байт может хранить числа от 0 до 255. Таким образом, в ASCII системе можно закодировать 256 символов.

Слайд 105

Функция Len() – возвращает количество символов в строке, заданной в качестве аргумента.
Пример

Функция Len() – возвращает количество символов в строке, заданной в качестве аргумента.
использования:
Dim n As Integer
n= Len(“Я изучаю Visual Basic .Net”)
Label1.text= n ‘---результат будет 26

Слайд 106

Функция Mid(s,n1,n2) – возвращает часть строки, согласно аргументам:
s – исходная строка,
n1 –

Функция Mid(s,n1,n2) – возвращает часть строки, согласно аргументам: s – исходная строка,
номер символа, с которого начинается выделяемая часть строки,
n2 – количество выделяемых символов.
Пример использования:
Msgbox Mid(“Иванов Петр Сидорович”,8,4)
‘--- слово Петр начинается с восьмого символа и имеет длину 4 символа
Результатом выполнения данного примера будет выведение на экран слова Петр

Слайд 107

Функция Left(s,n) – возвращает первые n символов строки s.
Пример использования:
Msgbox Left(“Иванов Иван

Функция Left(s,n) – возвращает первые n символов строки s. Пример использования: Msgbox
Иванович”,6) ‘--- результат – строка «Иванов»

Слайд 108

Функция Right(s,n) – возвращает последние n символов строки s.
Пример использования:

Функция Right(s,n) – возвращает последние n символов строки s. Пример использования: Msgbox
Msgbox Right(“Протвино”, 4) ‘--- результат «вино»

Слайд 109

Функция GetChar(s,n) – возвращает символ строки s с заданным индексом (номером).
Индексация

Функция GetChar(s,n) – возвращает символ строки s с заданным индексом (номером). Индексация
символов в строке, в отличие от массивов, начинается с 1, а не с 0.
Пример использования:
Msgbox GetChar(“Дубна”,4) ‘- Результат будет буква «н»

Слайд 110

Функция InStr(s,s1) – возвращает позицию первого вхождения одной строки (s1) символов в

Функция InStr(s,s1) – возвращает позицию первого вхождения одной строки (s1) символов в
другую (s).
Пример использования:
Msgbox Instr(“Иванов Иван Иванович”,“Иван”) ‘--- Результат будет число 1.

Слайд 111

Функция InStrRev(s,s1) – возвращает позицию последненго вхождения одной строки (s1) символов в

Функция InStrRev(s,s1) – возвращает позицию последненго вхождения одной строки (s1) символов в
другую (s).
Пример использования:
Msgbox InstrRev(“Иванов Иван Иванович”,“Иван”) ‘--- Результат будет число 13.

Слайд 112

Функция LCase(s) – Преобразует все символы строки в нижний регистр.
Функция UCase(s) –

Функция LCase(s) – Преобразует все символы строки в нижний регистр. Функция UCase(s)
Преобразует все символы строки в верхний регистр.

Слайд 113

Функция LTrim(s) – Удаляет пробелы в начале строки, если они есть
Пример использования:
Msgbox

Функция LTrim(s) – Удаляет пробелы в начале строки, если они есть Пример
LTrim(“ Дубна”) ‘--- Результат будет “Дубна”
Функция RTrim(s) – Удаляет пробелы в конце строки, если они есть
Пример использования:
Msgbox RTrim(“Дубна ”)‘--- Результат будет “Дубна”
Функция Trim(s) – Удаляет пробелы в начале и в конце строки, если они есть
Пример использования:
Msgbox Trim(“ Дубна ”) ‘--- Результат будет “Дубна”

Слайд 114

Функция Space(n) – Возвращает n пробелов.
Пример использования:
Msgbox Space(5) ‘--- Результат будет строка

Функция Space(n) – Возвращает n пробелов. Пример использования: Msgbox Space(5) ‘--- Результат
из 5 пробелов “

Слайд 115

Функция Replace(s,s1,s2,n1,n2) – заменяет часть заданной строки на указанную строку, согласно заданным

Функция Replace(s,s1,s2,n1,n2) – заменяет часть заданной строки на указанную строку, согласно заданным
аргументам:
S – исходная строка.
S1 – строка, которая будет заменяться.
S2 – строка, на которую будет заменяться строка S1.
N1- позиция символа в s, с которого надо начинать поиск (по умолчанию 1).
N2 – количество замен, которые необходимо выполнить (по умолчанию -1, то есть надо произвести все замены).
Пример использования:
Msgbox Replace(“Иванов Иван Иванович”,“Иван”, “Петр”,1, -1) ‘--- Результат будет строка «Петров Петр Петрович».

Слайд 116

Функция Split() – Возвращает n пробелов – применяется для разбиения строки на

Функция Split() – Возвращает n пробелов – применяется для разбиения строки на
различные строки по заданным разделителям. Основной синтаксис:
Split(строка, разделитель, количество разбиений)
По умолчанию разделителем является пробел, количество разделителей не ограничено (-1)
Пример использования:
Dim s(2) As String ‘--- Создаем массив из трех элементов
s = Split("Иванов Иван Иванович", " ", -1)
MsgBox(s(0), MsgBoxStyle.Information, "1 слово") ‘--- Иванов
MsgBox(s(1), MsgBoxStyle.Information, "2 слово") ‘--- Иван
MsgBox(s(2), MsgBoxStyle.Information, "3 слово") ‘---Иванович

Слайд 117

Функция Str() – преобразует число из числового формата в символьный.
Пример использования:
Msgbox Str(45.5)

Функция Str() – преобразует число из числового формата в символьный. Пример использования:
‘--- Результат будет строка из 4 символов.

Слайд 118

Функция Val () – преобразует число из символьного формата в числовой.
Пример использования:
Msgbox

Функция Val () – преобразует число из символьного формата в числовой. Пример
Val(“45.5”) ‘ Результат будет число 45,5
Если задана строка, содержит кроме цифр и другие символы, то за число принимаются все до первого символа, который не может входить в формирование числа.
Msgbox Val(“45.5f”) ‘ Результат будет число 45,5
Msgbox Val(f“45.5”) ‘ Результат будет число 0.

Слайд 119

Модульное программирование

Предположим, что алгоритм решения задачи уже разработан. Прежде чем писать программу,

Модульное программирование Предположим, что алгоритм решения задачи уже разработан. Прежде чем писать
её необходимо спроектировать, т.е. выявить взаимосвязанные небольшие части программы (модули), дальнейшее уточнение которых может быть продолжено независимо друг от друга. Степень такой модульности определяет гибкость и изменяемость программы.
Существует метод разработки программ – модульное программирование, предполагающий разбиение программы на независимые модули. В качестве модульной структуры программы принято использовать древовидную структуру.

Слайд 120

Использование модульного программирования предоставляет ряд существенных преимуществ. К ним, в первую очередь,

Использование модульного программирования предоставляет ряд существенных преимуществ. К ним, в первую очередь,
относятся:
возможность использования модулей, которые ранее созданы в других программах, т.е. уменьшается дублирование;
замена модулей на более современные (эффективные).
Таким образом, модульное программирование, в котором применяется принцип “разделяй и властвуй”, является методом «борьбы со сложностью программ».

Слайд 121

Процедуры

Модульный подход в Visual Basic реализуется с помощью процедур.
Процедура представляет собой блок

Процедуры Модульный подход в Visual Basic реализуется с помощью процедур. Процедура представляет
программного кода, выполняющий определённую задачу, который представляет собой законченную программу и оформленный специальным образом.
В Visual Basic.Net существует два вида процедур:
Подпрограммы (Sub procedure);
Функции (Function procedure).
Главным отличием функции от подпрограммы является то, что функция может возвращать под своим именем какое-либо значение, а подпрограмма – нет.
Подпрограммы в Visual Basic.Net бывают двух типов: обработчики событий и подпрограммы, определённые пользователем. До сих пор мы использовали процедуры обработки событий, которые были связаны с определённым объектом и событием, например, щелчок мышью на кнопке (Click). При наступлении события автоматически выполняется процедура его обработки.

Слайд 122

Подпрограммы

Синтаксис, который применяется при определении пользовательской подпрограммы, выглядим следующим образом:
Sub имя_процедуры ([список_параметров])
[операторы]
End

Подпрограммы Синтаксис, который применяется при определении пользовательской подпрограммы, выглядим следующим образом: Sub
Sub
Квадратные скобки [] при описании синтаксиса в языках программирования означают необязательную часть конструкции. В данном случае, параметры могут отсутствовать.
Имя_процедуры – однозначно идентифицирует данную процедуру и используется для ее вызова из основной программы. Имя процедуры должно быть уникальным, то есть не должно совпадать ни с именем какой-либо стандартной функции, ни с именами функций, созданных пользователем.
Список параметров – это перечень типов и имён ячеек памяти, которые подпрограмма использует при хранении переданной ей информации. Если переменных несколько, то они разделяются запятой.

Слайд 123

Например, следующая подпрограмма отображает текущую дату в окне сообщений:
Sub ShowDate()
MsgBox Date()
End Sub

Например, следующая подпрограмма отображает текущую дату в окне сообщений: Sub ShowDate() MsgBox Date() End Sub

Слайд 124

Рассмотрим подпрограмму с двумя параметрами a и b, которая вычисляет сумму чисел

Рассмотрим подпрограмму с двумя параметрами a и b, которая вычисляет сумму чисел
a и b. Результат заносится в переменную с и выводится на экран с помощью MsgBox:
Sub Add(ByVal a As Integer, ByVal b As Integer)
Dim c As Integer
c = a + b
MsgBox (c)
End Sub
Ключевое слово ByVal, предшествующее имени параметра, означает, что подпрограмма работает не с самой переменной, а с её копией, т.е. в данном случае подпрограмма не может изменить значения переменных a и b.

Слайд 125

Вызов подпрограммы можно записать так:
Add (7,5)
Call Add (7,5)
или
Dim

Вызов подпрограммы можно записать так: Add (7,5) Call Add (7,5) или Dim
x, y As Integer
x = 7
y = 5
a= Add (x, y)
В обоих случаях на экран будет выводиться число 12.

Слайд 126

Функции

Функция – процедура, которая возвращает под своим именем результирующее значение.

Функции Функция – процедура, которая возвращает под своим именем результирующее значение. До

До сих пор мы использовали стандартные функции, предоставляемых нам средой программирования Visual Basic.Net. Это и числовые, и символьные функции. Теперь же мы научимся создавать свои собственные функции.
Синтаксис функции:
Function имя_функции ([список_параметров]) As тип_результата
[операторы]
End Function
Имя_функции и список_параметров имеют тот же смысл, что и для подпрограммы.

Слайд 127

Тип_результата – показывает какого типа будет результат выполнения функции, который будет возвращён

Тип_результата – показывает какого типа будет результат выполнения функции, который будет возвращён
в программу, вызвавшую данную функцию.
Для создания новой функции или подпрограммы необходимо установить курсор за пределами других функций или подпрограмм и начать вводить заголовок функции или подпрограммы. После ввода заголовка и нажатия клавиши Enter, редактор кода Visual Basic.Net автоматически создаст команду завершения функции или подпрограммы, то есть End Function или End Sub. Все операторы, которые мы напишем внутри, между заголовком и концом, и будут составлять блок функции или подпрограммы.

Слайд 128

Для возврата значения из функции используется два способа:
1. оператор Return, – может

Для возврата значения из функции используется два способа: 1. оператор Return, –
появляться в любом месте программного кода функции и встречаться несколько раз. После выполнения оператора Return функция заканчивает работу и управление передаётся вызывающей программе.
2. оператор присваивания результирующего значения имени функции.

Слайд 129

Рассмотрим пример функции нахождения максимального значения из трех чисел l, m и

Рассмотрим пример функции нахождения максимального значения из трех чисел l, m и
n:
Function MaxX(ByVal l As Integer, ByVal m As Integer, ByVal n As Integer) As Integer
If l > m And l > n Then MaxX = l
If m > l And m > n Then MaxX = m
If n > l And n > m Then MaxX = n
End Function

Слайд 130

Основная программа, вызывающая данную функцию, может выглядеть следующим образом:
Private Sub CommandButton2_Click()
Dim a,

Основная программа, вызывающая данную функцию, может выглядеть следующим образом: Private Sub CommandButton2_Click()
b, c, d As Integer
a = 3
b = 4
c = 5
d = MaxX(a, b, c)
MsgBox(d)
End Sub

Слайд 131

Рассмотрим пример возврата значения из функции с помощью оператора Return. В примере

Рассмотрим пример возврата значения из функции с помощью оператора Return. В примере
используется операция деления, следовательно, мы должны проверять знаменатель на равенство нулю. Предполагается, что числитель не равен нулю.
Function MyDiv(ByVal A1 As Integer, ByVal A2 As Integer) As Double
'Пример досрочного завершения функции (деление на 0)
If A2 = 0 Then
Return 0 'возвращаем 0, если деление на 0
Else
Return A1 / A2
End If
End Function

Слайд 132

Private Sub Butdiv()
Dim R As Double
R = MyDiv(7, 2)
MsgBox(R)

Private Sub Butdiv() Dim R As Double R = MyDiv(7, 2) MsgBox(R)
R = MyDiv(5, 0)
MsgBox(R)
End Sub

Слайд 133

Передача параметров в процедуры

Каждая переменная имеет значение и уникальный адрес, соответствующий

Передача параметров в процедуры Каждая переменная имеет значение и уникальный адрес, соответствующий
положению переменной в оперативной памяти компьютера.
Visual Basic.Net позволяет передавать в процедуру как значение переменной (передача по значению), так и её адрес (передача по ссылке).
Выбор метода передачи параметров зависит от того, нужно ли, чтобы процедура имела доступ к переменной и могла изменять её значение.

Слайд 134

Передача переменных по значению

При передаче по значению процедура работает с копией

Передача переменных по значению При передаче по значению процедура работает с копией
параметра, т.е. в данном случае процедура не получает доступ к переменной и не может изменить значения параметров. Перед параметром в списке параметров необходимо добавить ключевое слово ByVal (от англ. By value – по значению). Если в процедуре нет необходимости изменять значение переменной, то используйте передачу по значению.

Слайд 135

Передача переменных по ссылке

При передаче параметра по ссылке в процедуре передаются

Передача переменных по ссылке При передаче параметра по ссылке в процедуре передаются
как значение, так и адрес переменной, т.е. её положение в оперативной памяти. Таким образом, процедура получает доступ к переменной в памяти. Этот метод используют, когда в процедуре необходимо изменить значение параметра. Перед параметром ставится ключевое слово ByRef (от англ. By reference – по ссылке), которое указывает, что в процедуру передаётся адрес переменной.

Слайд 136

Function Add1(ByRef n1 As Integer, ByRef n2 As Integer) As Integer
Add1

Function Add1(ByRef n1 As Integer, ByRef n2 As Integer) As Integer Add1
= n1 + n2
n1 = 0
n2 = 0
End Function
При выходе из функции параметры n1 и n2 получат значения, равные нулю, т.к. осуществляется передача по ссылке (ByRef).

Слайд 137

Function Add2(ByVal n1 As Integer, ByRef n2 As Integer) As Integer

Function Add2(ByVal n1 As Integer, ByRef n2 As Integer) As Integer Add2
Add2 = n1 + n2
n1 = 0
n2 = 0
End Function
При выходе из функции параметры n1 получат значение, которое было у него при входе в функцию (не равное нулю, т.к. этот параметр описан по ссылке - ByVal), а n2 получает значение, равное нулю, т.к. осуществляется передача по ссылке (ByRef).

Слайд 138

Module Module1
Sub Main()
Dim cel As Single, far As Single
For

Module Module1 Sub Main() Dim cel As Single, far As Single For
far = 0 To 150 Step 15
cel = (far - 32) * 5 / 9
MsgBox("Farengeit= " & far & "Celsium= " & cel)
Next far
End Sub
End Module

Слайд 139

Module Module1
Sub Main()
Dim a(100) As Integer
Dim i, max_a As

Module Module1 Sub Main() Dim a(100) As Integer Dim i, max_a As
Integer
max_a = -1
For i = 1 To 100
a(i) = Int(Rnd() * 500)
If a(i) > 100 And a(i) < 250 Then
If a(i) > max_a Then
max_a = a(i)
End If
End If
Next
MsgBox("Максимальное в интервале 100 - 250=" & max_a)
End Sub
End Module

Слайд 140

Module Module1
Sub Main()
REM Тыщук Александр Александрович зад 41,42
Dim ST

Module Module1 Sub Main() REM Тыщук Александр Александрович зад 41,42 Dim ST
As String
Dim LENGTH, it, countA, countABC As Integer
countA = 0
countABC = 0
ST = InputBox("введите исследуемую строку")
LENGTH = Len(ST)
For it = 1 To LENGTH
If Mid(ST, it, 1) = "a" Then
countA = countA + 1
If Mid(ST, it, 3) = "abc" Then
countABC = countABC + 1
End If
End If
Next
MsgBox(countA, MsgBoxStyle.Critical, "число букв А")
MsgBox(countABC, MsgBoxStyle.Critical, "число сочетаний АBC")
End Sub
End Module
Имя файла: Понятие-и-свойства-алгоритма-.pptx
Количество просмотров: 181
Количество скачиваний: 0