Слайд 1ПГУПС, каф. ИнИБ
Основы алгоритмизации и программирования
Слайд 2ПГУПС, каф. ИнИБ
Этапы разработки информационных технологий
1. Постановка задачи
2. Математическая
модель задачи
3. Разработка алгоритма
4. Разработка визуальной части проекта
5. Код приложения
6.
Отладка программы
Слайд 3ПГУПС, каф. ИнИБ
1 этап. Постановка задачи
Разработать информационную технологию, позволяющую
вычислить длину окружности заданной радиусом
Выходные данные: L – длина окружности
Входные
данные: π – константа
R – радиус окружности.
Слайд 4ПГУПС, каф. ИнИБ
2 этап. Математическая модель задачи
L=2πR
Слайд 5ПГУПС, каф. ИнИБ
3 этап. Разработка алгоритма
Алгоритм - последовательность арифметических и
логических действий над входными данными, однозначно приводящая к решению задачи.
Схема
алгоритма - графическая интерпретация алгоритма с помощью специальных стандартных блоков.
Слайд 6ПГУПС, каф. ИнИБ
Стандартные блоки для отображения алгоритмов
Слайд 9ПГУПС, каф. ИнИБ
Передача управления между блоками показывается линиями связи, причем
при движении сверху вниз и слева направо стрелки на линиях
связи не ставятся, а в обратном направлении стрелки ставятся
Слайд 10ПГУПС, каф. ИнИБ
Схема алгоритма для нашего примера
Слайд 11ПГУПС, каф. ИнИБ
4 этап. Разработка визуальной части проекта
Label1
Label2
Text1
Command1
Text2
Форма
Слайд 12ПГУПС, каф. ИнИБ
- два текстовых поля Text1, Text2 для
ввода значения радиуса и вывода результата;
- две надписи Label1,
Label2 для пояснений к текстовым полям;
- одна командная кнопка Command1 для выполнения вычислений
Двойным щелчком по форме открывается окно редактора кода приложения.
На форме размещены:
Слайд 13ПГУПС, каф. ИнИБ
5 этап. Код приложения
Private Sub Command1_Click()
Const pi As
Single = 3.1415926
Dim R As Single, L As Single
R =
Val(Text1.Text)
L = 2 * pi * R
Text2.Text = Str(L)
End Sub
NB! Код приложения копируется в отчет через буфер обмена
Слайд 14ПГУПС, каф. ИнИБ
6 этап. Отладка проекта
В отчете приводится форма с
исходными данными и результатами.
Alt+Print Screen копирует в буфер обмена
активное окно.
Слайд 15ПГУПС, каф. ИнИБ
СРЕДА ПРОГРАММИРОВАНИЯ
VISUAL BASIC
Слайд 16ПГУПС, каф. ИнИБ
на экране отображается диалоговое окно New Projekt,
в котором можно выбрать один из нескольких типов шаблонов
проектов.
При запуске VB
Слайд 17ПГУПС, каф. ИнИБ
Выбираем Standart Exe - стандартный
проект (по умолчанию).
На экране появляется рабочая поверхность IDE
– Интегрированной Среды Разработки.
Слайд 19ПГУПС, каф. ИнИБ
8. Панель элементов управления
- General
Содержит стандартные элементы управления, т.е. объекты системы программирования, которые можно использовать для создания приложения.
Слайд 20ПГУПС, каф. ИнИБ
Используется для отображения на форме (вывода на форму)
текста, заголовков, комментариев, названия объектов и др.
Label – надпись (этикетка)
Слайд 21ПГУПС, каф. ИнИБ
Command Button
(командная кнопка)
На рабочей поверхности
приложения кнопки играют ту же роль, что и кнопки в жизни.
Нажатие на кнопку инициирует некоторое действие.
Кнопку можно помещать в любое место формы. Ее событием является щелчок – Click. Визуально отображается «нажатием» кнопки.
Слайд 22ПГУПС, каф. ИнИБ
TextBox (Текстовое поле ввода)
Обеспечивает возможность ввода и вывода
текста пользователем.
Текстовое поле может работать в режиме одной строки или
в многострочном, как поле ввода пароля или в режиме «только ввод».
Слайд 23ПГУПС, каф. ИнИБ
ListBox (окно списка)
Используется для вывода большого числа элементов
списка.
Мы будем использовать для вывода результатов циклических задач.
Свойства:
Name
По умолчанию List1, List2 и т.д.
Слайд 24ПГУПС, каф. ИнИБ
Основы языка
Visual Basic
Слайд 25ПГУПС, каф. ИнИБ
Константа
Область памяти, имеющая имя.
Получает своё значение
на этапе разработки программы и в процессе её выполнения значение
константы изменить нельзя.
Константа д.б. объявлена:
Const <имя константы>[As<имя типа>]= Значение
Например:
Const Pi As Single = 3.1416
Слайд 26ПГУПС, каф. ИнИБ
Переменная
Область памяти, имеющая имя.
Получает своё значение на этапе
выполнения программы и сохраняет его пока ему не будет присвоено
новое значение.
Переменную необходимо объявить, указав её имя и тип:
Dim <Имя переменной>[As <Имя типа>]
В одной строке м.б. объявлено несколько переменных:
Dim x As Integer, b As Single, fi As Double
Слайд 27ПГУПС, каф. ИнИБ
Математические операции:
^ возведение в
степень
- отрицание
*
умножение
/ деление 7 / 2 = 3.5
\ целочисленное деление 7 \ 2 = 3
mod остаток от деления на целое 7 mod 2 = 1
+ сложение
- вычитание
Слайд 28ПГУПС, каф. ИнИБ
Запись арифметических выражений
Выражение – это константа, переменная, функция,
числовое или строковое значение или их комбинация, образованная при помощи
знаков операций и круглых скобок.
Слайд 29ПГУПС, каф. ИнИБ
a / - b
a * b
(a + b)
/ (c * d)
ab
или (a+b)/c/d
Например:
Слайд 30ПГУПС, каф. ИнИБ
Числа с множителем 10 в степени представляются в
экспоненциальной форме
5,25*108 - 5.25E8
Слайд 31ПГУПС, каф. ИнИБ
Операции выполняются слева направо с учётом приоритетов и
круглых скобок
Слайд 32ПГУПС, каф. ИнИБ
Оператор присваивания
=
Символ “ =
“ в информатике понимается не как равенство а как процесс
присвоения значения, полученного в результате вычисления выражения, записанного справа от знака “ = “ переменной записанной слева от этого знака.
При этом прежнее значение переменной слева от знака присваивания замещается значением вычисленного выражения.
Pi = 3.1415926
R = 10.0
L = 2 * Pi * R
2. a = 2
a = L
3. Flag = true
4. text = “Информатика”
ПГУПС, каф. ИнИБ
Слайд 34ПГУПС, каф. ИнИБ
Функции в языке VB
Аргументы записываются после
имени функции в круглых скобках и отделяются друг от друга
запятыми.
Функции м.б. математические, строковые, финансовые, даты и др.
Слайд 35ПГУПС, каф. ИнИБ
Математические функции
Sin(x)
Cos(x)
Tan(x) - tg x
Atn(x) - arctg x
Sqr(x)
- квадр.
корень
Log(x) -
нат.
логарифм
Exp(x) - e x
Abs(x) - | x |, абсолютное значение
Слайд 36ПГУПС, каф. ИнИБ
Аргумент тригонометрических функций должен быть представлен в радианной
мере!
Слайд 37ПГУПС, каф. ИнИБ
Вспомним:
Lg x = Log (x) / Log (10)
Радиан
= Градус * Pi / 180
Градус = Радиан * 180
/ Pi
Слайд 38ПГУПС, каф. ИнИБ
Организация ввода данных
Ввод данных
можно осуществлять с помощью
-
текстового поля
- с помощью функции InputBox()
Слайд 39ПГУПС, каф. ИнИБ
Функция ввода – InputBox()
Эта функция инициирует создание диалогового
окна с текстовым полем для ввода данных
Имеет три аргумента
InputBox(,,[По умолчанию])
Слайд 40ПГУПС, каф. ИнИБ
R=InputBox("Введите R", "Структура следование")
Слайд 41ПГУПС, каф. ИнИБ
Метод Print –
выводит результаты на форму
Если выводимые
значения в списке разделяются символом « ; », то они
печатаются через один пробел.
Если символом « , », то каждое следующее значение печатается через 14 пробелов.
Также выводимые значения могут разделяться символом & (конкатенация). В этом случае они печатаются слитно
Слайд 42ПГУПС, каф. ИнИБ
Операции отношения и
логические операции
Операции отношения
– < , > , = , =
, <> ,
их результатом всегда является логическое (булево) значение, выражающее истинность некоторого отношения между данными (операндами)
Любая операция отношения может иметь значения:
True – истинно или False – ложно.
Слайд 43ПГУПС, каф. ИнИБ
Логические операции – выполняются над логическими значениями или
логическими выражениями. В результате получаются также логические значения:
Not –
логическое Не - отрицание
And – логическое И - конъюнкция
Or – логическое Или - дизъюнкция
Xor – исключающее Или когда истинно одно
Eqv – эквивалентность (одинаковость)
Imp – импликация (включение)
Слайд 44ПГУПС, каф. ИнИБ
F
F
T
F
T
F
T
T
T
T
F
F
F
T
F
T
F
F
T
T
A Or B
A And B
Not A
B
A
Слайд 45ПГУПС, каф. ИнИБ
Вычислительные процессы
и структуры
Слайд 46ПГУПС, каф. ИнИБ
1. Линейные – структура СЛЕДОВАНИЕ
2. Разветвляющиеся – структура
РАЗВИЛКА
3. Циклические – структура ЦИКЛ
Слайд 47ПГУПС, каф. ИнИБ
1. Структура СЛЕДОВАНИЕ
Это структура, действия в которой выполняются
последовательно друг за другом от первого до последнего.
Эта структура была
рассмотрена на примере вычисления длины окружности.
Слайд 48ПГУПС, каф. ИнИБ
2. Структура РАЗВИЛКА
Под развилкой понимается структура, в
которой продолжение вычислительного процесса зависит от выполнения или не выполнения
некоторого логического выражения (условия).
Слайд 49ПГУПС, каф. ИнИБ
Классическая развилка
Логическое выражение
Группа опера-торов 1
Группа опера-торов 2
Слайд 50ПГУПС, каф. ИнИБ
EndIf
Условный оператор If…Then…Else…End If
If
Then
1>
Else
Слайд 52ПГУПС, каф. ИнИБ
Private Sub Command1_Click()
Dim Y1 As Single, Y2 As
Single, X as Single
X=Inputbox(“Введите Х”, “Развилка”)
If x
y1 = x
y2 = -Sin(x)
Else
y1 =Sin(x)
y2 = -x
End If
Print “При Х=” & X & “ Y1=” & Y1 & “ Y2=” & Y2
End Sub
Слайд 53ПГУПС, каф. ИнИБ
Вложенная развилка
Условный оператор If…ElseIf…End If
If
Then
ElseIf Then
Else
3>
End If
Слайд 54ПГУПС, каф. ИнИБ
If t < 0 Then
P = -1
ElseIf t
>= 0 And t
1
End If
Слайд 55ПГУПС, каф. ИнИБ
3. Структура цикл
Наиболее эффективно проявляются возможности компьютера при
многократном выполнении одних и тех же действий с изменяющимися данными.
Такой
вычислительный процесс называется циклическим, а описывающая его структура – циклом.
Слайд 56ПГУПС, каф. ИнИБ
Будем использовать следующие термины и обозначения:
параметр
цикла – X,
начальное значение параметра цикла – Xo,
конечное значения параметра
цикла – Xk,
шаг изменения параметра цикла – dX,
условие выполнения цикла – X <= Xk,
тело цикла – группа повторяющихся операторов.
Слайд 57ПГУПС, каф. ИнИБ
Различают циклы с параметром и итерационные:
в циклах с
параметром число его повторений (N) заранее известно и зависит от
начального значения параметра цикла, его конечного значения и шага
N = (Xk – Xo) / dX + 1;
в итерационных циклах повторения заканчиваются когда достигается заданная точность вычислений (нахождение предела функции, корней уравнений и т.п.).
Слайд 58ПГУПС, каф. ИнИБ
Циклы с параметром различают :
циклы с предусловием,
когда проверка на окончание цикла осуществляется до повторяющихся действий (в
этом случае тело цикла может не выполниться ни разу)
и
циклы с постусловием, когда проверка на окончание цикла осуществляется после выполненных действий (в этом случае тело цикла выполнится хотя бы один раз).
Слайд 59ПГУПС, каф. ИнИБ
Цикл с предусловием
Организуется следующим образом:
Параметру цикла Х присваивается
начальное значение Х0.
Проверяется условие выполнения цикла.
Если это условие истинно, то
выполняется тело цикла, если ложно, осуществляется переход к оператору следующему за циклом.
Значение параметра цикла изменяется на величину шага и далее снова выполняется пункт 2.
Слайд 60ПГУПС, каф. ИнИБ
Схема алгоритма:
Цикл с предусловием реализуется несколькими способами.
Слайд 61ПГУПС, каф. ИнИБ
Оператор For . . . Next
(используется только для
цикла с предусловием)
For < Параметр цикла > = < Начальное
значение >
To < Конечное значение > [Step < Шаг >]
< Тело цикла >
Next [Параметр цикла]
For X = X0 To Xk Step dX
< Тело цикла >
Next X
Слайд 62ПГУПС, каф. ИнИБ
Пример 1.
Постановка задачи
Вычислить значение функции Y = Sin
X при значениях аргумента меняющегося от 0 до 1 с
шагом 0,1
Входные данные: Х0, Xк, dX
Выходные данные: X, Y
Слайд 63ПГУПС, каф. ИнИБ
2. Математическая модель
y = Sin x для всех
0 ≤ x ≤ 1 с шагом 0,1
3. Схема алгоритма
Слайд 64ПГУПС, каф. ИнИБ
4. Разработка визуальной части проекта
List1
ListBox – поле списка
(см. Основные элементы управления панели General)
Слайд 65ПГУПС, каф. ИнИБ
5. Код приложения
Private Sub Command1_Click()
Dim x0 As Single,
xk As Single, dx As Single
Dim y As Single
x0 =
InputBox("Введите x0")
xk = InputBox(" Введите xk")
dx = InputBox(" Введите dx")
List1.AddItem " X Y "
For x = x0 To xk + dx / 2 Step dx
y = Sin(x)
List1.AddItem Format(x, "0.00") & " " & Format(y, "0.0000")
Next
End Sub
Слайд 66ПГУПС, каф. ИнИБ
6. Отладка программы
Слайд 67ПГУПС, каф. ИнИБ
Цикл с постусловием
Организуется следующим образом:
Задается начальное значение параметра
цикла Х=Х0
Выполняется тело цикла.
Значение параметра цикла изменяется на величину шага.
Проверяется
условие продолжения цикла.
Если условие истинно, то вновь выполняется тело цикла (переход к пункту 2),
если же условие ложно, то выполняется следующий после цикла оператор.
Слайд 68ПГУПС, каф. ИнИБ
Оператор Do While . . . Loop
C
предусловием:
С постусловием:
X = X0
Do While X
>
X = X + dX
Loop
X = X0
Do
< Тело цикла >
X = X + dX
Loop While X <= Xk
Слайд 69ПГУПС, каф. ИнИБ
Оператор Do Until . . . Loop
C
предусловием:
С постусловием:
X = X0
Do Until X > Xk
< Тело цикла
>
X = X + dX
Loop
X = X0
Do
< Тело цикла >
X = X + dX
Loop Until X > Xk
Слайд 70ПГУПС, каф. ИнИБ
Эту же задачу можно реализовать с помощью оператора
Do Until … Loop (с предусловием)
. . .
X = X0
Do
until X > Xk
Y = Sin (X)
List1.AddItem …
X = X + dX
Loop
. . .
Слайд 71ПГУПС, каф. ИнИБ
или с помощью оператора
Do While…Loop (с предусловием)
.
. .
X = X0
Do While X
(X)
List1.AddItem …
X = X + dX
Loop
. . .
Слайд 72ПГУПС, каф. ИнИБ
А теперь с помощью оператора
Do…Loop
Until (с постусловием)
Конец
. . .
X = X0
Do
Y = Sin (X)
List1.AddItem
…
X = X + dX
Loop until X > Xk
. . .
Слайд 73ПГУПС, каф. ИнИБ
. . .
X = X0
Do
Y = Sin (X)
List1.AddItem
…
X = X + dX
Loop while X
.
Конец
или с помощью оператора
Do…Loop While (с постусловием)
Слайд 74ПГУПС, каф. ИнИБ
Структура «Цикл в цикле»
-
это структура с одним или несколькими вложенными циклами.
Рассмотрим пример:
Z = Sin X + Cos Y ,
где
Xo <= X <= Xk с шагом dX
Yo <= Y <= Yk с шагом dY
Слайд 75ПГУПС, каф. ИнИБ
Начало
Конец
X = Xo
Y = Yo
X = X+dX
Z=SinX+CosY
Y =
Y+dY
Xo,Xk, dX
Yo, Yk, dY
Y, Z
X
Yk
Схема алгоритма
структуры цикл в цикле
с предусловием
Да
Да
Нет
Нет
X,
Слайд 76ПГУПС, каф. ИнИБ
Private Sub Command1_Click()
Dim X0 As Single, Xk As
Single, dX As Single
Dim Y0 As Single, Yk As Single,
dY As Single
Dim Z As Single
X0 = InputBox (“Введите начальное значение X”)
Xk = InputBox (“Введите конечное значение X”)
dX = InputBox (“Введите шаг изменения X”)
Y0 = InputBox (“Введите начальное значение Y”)
Yk = InputBox (“Введите конечное значение Y”)
dY = InputBox (“Введите шаг изменения Y”)
. . .
Слайд 77ПГУПС, каф. ИнИБ
Варианты продолжения кода процедуры
. . .
X = X0
Do
While X
Yk
Z = Sin (X) + Cos (Y)
Print Y, Z
Y = Y + dY
Loop
X = X + dX
Loop
End Sub
. . .
For X=X0 To Xk Step dX
Print X
For Y=Y0 To Yk Step dY
Z = Sin (X) + Cos (Y)
Print Y, Z
Next Y
Next X
End Sub
Слайд 78ПГУПС, каф. ИнИБ
Начало
Xo,Xk, dX
Yo,Yk, dY
X
Z=SinX+CosY
Y = Y + dY
X =
X + dX
Y, Z
Y
структуры
цикл в цикле
с постусловием
На следующем слайде
представлен фрагмент
кода процедуры
этой части алгоритма
Слайд 79ПГУПС, каф. ИнИБ
. . .
X = Xo
Do
Print “X=” & X
Y
= Yo
Do
Z = Sin (X) + Cos (Y)
Print “Y =
” & Y & “ Z = ” & Z
Y = Y + dY
Loop While Y <= Yk
X = X + dX
Loop While X <= Xk
End Sub
Фрагмент кода процедуры
без описаний переменных
и ввода значений входных
переменных