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