Основы алгоритмизации и программирования
Этапы разработки информационных технологий
1 этап. Постановка задачи
2 этап. Математическая модель задачи
3 этап. Разработка алгоритма
Стандартные блоки для отображения алгоритмов
4 этап. Разработка визуальной части проекта
5 этап. Код приложения
6 этап. Отладка проекта
СРЕДА ПРОГРАММИРОВАНИЯ VISUAL BASIC
8. Панель элементов управления - General
Label – надпись (этикетка)
Command Button (командная кнопка)
TextBox (Текстовое поле ввода)
ListBox (окно списка)
Основы языка Visual Basic
Константа
Переменная
Математические операции:
Запись арифметических выражений
Операции выполняются слева направо с учётом приоритетов и круглых скобок
Оператор присваивания
Функции в языке VB
Математические функции
Вспомним:
Организация ввода данных
Функция ввода – InputBox()
Метод Print – выводит результаты на форму
Операции отношения и логические операции
Вычислительные процессы и структуры
1. Структура СЛЕДОВАНИЕ
2. Структура РАЗВИЛКА
Классическая развилка
Вложенная развилка Условный оператор If…ElseIf…End If
3. Структура цикл
Цикл с предусловием
Оператор For . . . Next (используется только для цикла с предусловием)
Пример 1.
Цикл с постусловием
Оператор Do While . . . Loop
Оператор Do Until . . . Loop
Структура «Цикл в цикле» - это структура с одним или несколькими вложенными циклами.
Варианты продолжения кода процедуры
572.23K
Категория: ПрограммированиеПрограммирование

Основы алгоритмизации и программирования

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. Стандартные блоки для отображения алгоритмов

N
b/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.

A
B
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 x
y
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.

P
1
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
English     Русский Правила