- •Университет машиностроения
- •Инициализация
- •Вычисления и обработка данных
- •Потоки исполнения – нити (threads) и процессы
- •Многопоточность, конкуренция за ресурсы
- •Особенности исполнения кода VBA
- •Операции ввода-вывода
- •Объектное представление визуальных компонент и «синтаксический сахар»
- •Управляющие конструкции: Простое ветвление
- •Управляющие конструкции:
- •Управляющие конструкции: Проверка состояния
- •Управляющие конструкции: Организация циклов
- •Управляющие конструкции:
- •Управляющие конструкции:
- •Управляющие конструкции:
- •Однако… Структурный код «громоздок»
- •Другие :
- •Дополнительные конструкции: Перехват исключений (on Error)
- •Дополнительные конструкции: Перебор коллекции
- •Университет машиностроения Кафедра «Автоматика и процессы управления»
Управляющие конструкции: Проверка состояния
Выбор – это альтернативная реализация множественного ветвления через анализ значения одной переменной «простого» типа
SELECT CASE property ‘Многострочная запись CASE Expressions: Statements
…
CASE ELSE: Statements END SELECT
Способы записи условий выбора:
Case 5, 6: smth ‘ Явное указание списка значений Case 5 To 7: smth ‘ Указание диапазона
Case Is>7: smth ‘ Указание условия на значение
Отображение:
Блок «решение» с проверкой состояния
a?
:0
:1
:Else
Информатика. 2 семестр. Тема 04. Алгоритмика
Управляющие конструкции: Организация циклов
Принято различать циклы:
•С предусловием
•С постусловием
•Со счетчиком
Do While … Loop ‘ Цикл «пока» с предусловием Do … Loop While ‘ Цикл «пока» с постусловием For … Next ‘ Цикл со счетчиком
Альтернативные формы:
While … Wend ‘ Цикл «пока» с предусловием (устар.) Do … Loop Until ‘ Цикл «пока не» с постусловием
Do Until … Loop ‘ Цикл «пока не» с постусловием
Отображение:
Блок
«циклическое
повторение»*
c1 |
|
|
|
a > 0 |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
j +1 → j
c1
* Примечание: Это основная форма согласно ГОСТ 19.701-90
Информатика. 2 семестр. Тема 04. Алгоритмика
Управляющие конструкции: |
|
|
|
Реализация цикла «пока» |
Отображение: |
||
с предусловием |
Повторять пока |
||
|
|||
Do While (Condition) ‘ Сначала проверяем условие |
условие истинно |
||
|
|
||
Statements |
|
Нет |
|
Loop |
a > 50 |
||
|
|||
|
Да |
|
|
‘ либо |
|
|
|
While (Condition) ‘ Сначала проверяем условие |
j +1 → j |
|
|
Statements |
|
|
|
Wend |
|
|
|
Информатика. 2 семестр. Тема 04. Алгоритмика
Управляющие конструкции:
Реализация цикла «пока» с постусловием
Do |
‘ Сначала выполняем |
Statements
Loop While (Condition) ‘ Потом проверяем
Альтернативная форма – «пока не» (Until)
While (NOT(Condition))
Until (Condition)
Отображение: |
|
Повторять пока |
|
условие истинно |
|
j +1 → j |
|
a > 50 |
Нет |
|
|
Да |
|
Информатика. 2 семестр. Тема 04. Алгоритмика
Управляющие конструкции: |
Отображение: |
Реализация цикла со счетчиком
Повторять пока счётчик не достигнет границы
I = 1 |
‘ Инициализация счётчика |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
While ( I <= 50) |
‘ Проверка достижения границы |
|
|
|
|
|
|
|
|
1 → i |
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Statements |
‘ Что-то делаем |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
I = I + 1 |
‘ Наращиваем счётчик |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Нет |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Wend |
|
|
|
|
|
|
|
‘ Закрывающая скобка |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i <= 50 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
Альтернативная форма – «для» (For) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Да |
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
i +1 → i |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
FOR I = 1 TO 5 STEP 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Statements |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i = 1 , 5 |
|
|
|
|
|
|
|
|
|
|
|
|
j + 5 → j |
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
NEXT I |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Информатика. 2 семестр. Тема 04. Алгоритмика
Однако… Структурный код «громоздок»
Цикл со счетчиком предполагает доступ к переменной счетчика «только по чтению» и только в коде тела цикла
FOR I = 1 TO 5 STEP 1
X = I + 1 ‘ Можно I = 5 ‘ Нельзя NEXT I
X = I + 1 ‘ Нельзя
Циклы не могут пересекаться – операторы цикла полностью изолируют тело цикла. Выйти из «лабиринта» вложенных циклов можно только пройдя все итерации.
При невозможности досрочного выхода нужно создавать «ветви обхода».
«Лабиринт» тройного цикла
Информатика. 2 семестр. Тема 04. Алгоритмика
Другие : |
Отображение: |
Безусловный переход (Goto) |
Обход тела цикла |
Можно реализовать «пропускание» |
|
тела цикла, подпрограммы… |
|
FOR I = 1 TO 5 STEP 1 |
|
If I > 3 Then GoTo FastNext1 ‘ Переход в конец |
|
Statements |
|
FastNext1: |
|
NEXT I |
|
…обработчики или циклы |
«Подпрограмма» |
loop1: |
|
Statements |
|
If (Condition) Then Goto loop1 |
|
Ухудшается «читаемость» → «тарелка спагетти» |
п/п |
+ нет логичного повода сделать отступы |
|
Информатика. 2 семестр. Тема 04. Алгоритмика
Дополнительные конструкции: Перехват исключений (on Error)
Отображение:
Условный блок «на исключение»
I = 1 ‘ «Незащищенная» инструкция On Error Goto endcalc1 ‘ Переход при ошибке Statements ‘ Что-то делаем «под защитой»
endcacl1: ‘ Метка для перехода
On Error Goto 0 ‘ Отключение «перехватчика» Statements
Реализуемы «обработчики» и «сбросы»
On Error Goto ErrorHandler1 Statements
Exit Sub ErrorHandler1:
MsgBox(“Ошибка №” & Str( Err.Number )) Resume 0
On Error
rrorE protect
On Error Resume Next ‘ Пропустить ошибку
On Error Resume 0 ‘ Повторить ошибочный оператор
unsafe stat.
safe stat.
safe stat.
unsafe stat.
Информатика. 2 семестр. Тема 04. Алгоритмика
Дополнительные конструкции: Перебор коллекции
For Each Element In Group
Statements ‘ Обработка Element
NEXT Element
Прерывание исполнения блока
Exit For |
‘ Прерывание цикла For (досрочный выход) |
Exit Do |
‘ Прерывание цикла Do |
Exit Sub |
‘ Досрочный выход из процедуры |
End |
‘ Завершение программы |
For i = 1 To 5
Statements
If i > 3 Then Exit For
Next I
MsgBox(“Цикл завершен”)
Отображение:
Модификация
Group[ ] →Element
Прерывание цикла
Информатика. 2 семестр. Тема 04. Алгоритмика
Университет машиностроения Кафедра «Автоматика и процессы управления»
Блок дисциплин
Информатика и информационные технологии
Спасибо за внимание !!!
Далее:
•Общие вопросы проектирования
•Обработка данных
•Основные алгоритмические конструкции
•Сложные типы данных. Работа со строками
…
Контакты:
mami.testolog.ru
timid@mami.ru
inform437@gmail.com
Информатика. 2 семестр. Тема 04. Алгоритмика
