Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика_Семестр2_Лекции / Информатика_2 семестр_Тема 04_Алгоритмика.pptx
Скачиваний:
44
Добавлен:
05.06.2015
Размер:
279.7 Кб
Скачать

Управляющие конструкции: Проверка состояния

Выбор – это альтернативная реализация множественного ветвления через анализ значения одной переменной «простого» типа

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. Алгоритмика