'

Лекция 3

Понравилась презентация – покажи это...





Слайд 0

Лекция 3 Кафедра Прикладной математики М-703, тел. 362-79-62 К.т.н., профессор Глаголев Виктор Борисович, комн. Ж-405б, тел. 362-73-28 http://glagvik.narod2.ru/index.htm Программирование циклов Инструкция For … Next Пример «Вклад» Демонстрация работы проекта Пример «Вклад 2» Инструкция Do While … Loop Пример «Алгоритм Эвклида» Инструкция Do Until … Loop


Слайд 1

Инструкция цикла For… Next Инструкции цикла предназначены для программирования циклической структуры алгоритмов. Они представляют собой предписание, указывающее, какой набор инструкций (этот набор инструкций называется телом цикла) нужно выполнять многократно и каково правило окончания повторений. Синтаксис инструкции цикла: For ПЦ = НЗПЦ To КЗПЦ [Step ШИПЦ] Тело цикла (инструкции) Next [ПЦ]


Слайд 2

Этот цикл управляется параметром, который при повторении выполнения тела цикла изменяет свое значение с заданным шагом от заданного начального значения до заданного конечного значения. Такой цикл используют в случае, когда заранее известно, сколько раз необходимо совершить повторение выполнения тела цикла.


Слайд 3

Слова For (для), To (до), Step (шаг), Next (затем) являются зарезервированными. Применены обозначения: ПЦ – параметр цикла (переменная любого числового типа); НЗПЦ – начальное значение параметра цикла (выражение любого числового типа), которое параметр цикла будет иметь при первом выполнении тела цикла; КЗПЦ – конечное значение параметра цикла (выражение любого числового типа); ШИПЦ – шаг изменения параметра цикла (выражение любого числового типа) – необязательная часть инструкции цикла.


Слайд 4

Числовые значения НЗПЦ и КЗПЦ задают интервал, в котором будет изменяться параметр цикла. Необязательный параметр ШИПЦ задает шаг изменения параметра цикла на каждом проходе. По умолчанию, если он отсутствует, то принимается равным 1. Наконец, после инструкций, составляющих тело цикла, следует команда Next, обозначающая границу тела цикла. В случае вложенных циклов (в тело цикла входит инструкция цикла) можно указывать, к какому из них относится команда Next. Это достигается добавлением после слова Next имени параметра цикла.


Слайд 5

Процесс выполнения инструкции For… Next для положительного шага иллюстрирует рисунок. For ПЦ = НЗПЦ To КЗПЦ [Step ШИПЦ]


Слайд 6

Пример 1 Сумма = 0 For i = 1 To 100 Step 2 Сумма = Сумма + i Next В этом примере вычисляется сумма всех целых нечетных чисел от 1 до 100.


Слайд 7

Пример 2 For n = 100 To 60 Step –10 TextBox1.AppendText(n & vbCrLf) Next n В этом примере продемонстрированы две возможности: явно заданный шаг цикла и отсчет в обратном направлении. Последнее достигается заданием отрицательного шага и тем, что начальное значение параметра цикла больше, чем конечное.


Слайд 8

Этот код выведет в текстовом поле TextBox1: 100 90 80 70 60


Слайд 9

Инструкцию For...Next можно завершить досрочно с помощью инструкции Exit For. Если при выполнении тела цикла встречается инструкция Exit For, то происходит досрочный выход из цикла (следующей будет выполняться инструкция, находящаяся после Next).


Слайд 10

Пример «Вклад» В банк сделан денежный вклад размера v рублей с процентной ставкой p процентов ежегодно. Каким станет размер вклада через n лет?


Слайд 11

Таблица данных


Слайд 12

Блок-схема алгоритма Начало Конец Ввод v, p, n Вывод i, v i = i + 1 i <= n v = v+ v * p / 100 i = 1 Нет Да


Слайд 13

Интерфейс проекта На форме находится кнопка, нажатие на которую запускает вычисления, а также текстовое поле, в котором отображаются значения данных.


Слайд 14

Код К заготовке кода (показана ниже), которую составила система VB.NET при создании проекта перед заключительной строкой End Class класса Form1 следует вставить код подпрограммы Button1_Click, который выполняется, когда с кнопкой Button1 происходит событие Click (нажатие на кнопку Button1).


Слайд 15


Слайд 16


Слайд 17

Результаты


Слайд 18

Пример «Вклад 2» В банк сделан денежный вклад размера v рублей с процентной ставкой p процентов ежегодно. Через сколько лет размер вклада увеличится в k раз?


Слайд 19

Код


Слайд 20


Слайд 21


Слайд 22

Инструкция цикла Do While … Loop или Do … Loop While Здесь While (пока) и Loop (цикл) зарезервированные слова. Циклы типа While называют итерационными. Они применяются, когда количество повторений тела цикла (итераций) заранее неизвестно. Имеются две разновидности цикла While. Вот синтаксис первой из них: Do While УсловиеПовторения Группа инструкций Loop


Слайд 23

Здесь УсловиеПовторения – это выражение логического типа, которое принимает либо значение True, либо значение False. Выполнение этой инструкции происходит так. Сначала вычисляется значение логического выражения УсловиеПовторения.


Слайд 24

Если УсловиеПовторения имеет значение True, то выполняются инструкции, помещенные между строками Do While и Loop. Затем все повторяется с начала. Если же логическое выражение имеет значение False, то происходит выход из цикла. Следующей будет выполнена инструкция, помещенная ниже строки Loop.


Слайд 25

Работу первого варианта цикла While поясняет блок-схема: Do While УсловиеПовторения Инструкции Loop


Слайд 26

Вот синтаксис второй разновидности цикла While: Do Инструкции Loop While УсловиеПовторения Работу второго варианта цикла While поясняет расположенная справа блок-схема. Инструкцию Do...Loop можно завершить досрочно с помощью инструкции Exit Do.


Слайд 27

Пример 1. Счетчик = 0 Номер = 20 Do While Номер > 10 Номер = Номер - 1 Счетчик = Счетчик + 1 Loop MsgBox ("Выполнено " & _ Счетчик & " итераций цикла.") При выполнении этого участка программы в окне функции MsgBox будет выведено: Выполнено 10 итераций цикла.


Слайд 28

Пример 2 В следующей программе инструкции внутри цикла выполняются только один раз до того, как условие не будет выполнено: Счетчик = 0 Номер = 9 Do Номер = Номер - 1 Счетчик = Счетчик + 1 Loop While Номер > 10 MsgBox ("В цикле выполнено " & _ Счетчик & " итераций.") При выполнении этого участка программы в окне функции MsgBox будет выведено: Выполнено 1 итераций цикла.


Слайд 29

Пример. Алгоритм Эвклида Ранее была разработана блок – схема алгоритма определения наибольшего общего делителя двух целых положительных чисел (алгоритм Эвклида). Продолжим разработку соответствующего проекта. Далее приведен код, который запускается нажатием на кнопку Button1 и приводит к получению наибольшего общего делителя чисел n1 и n2.


Слайд 30


Слайд 31

Тело подпрограммы Button1_Click Dim n1, n2 As Integer n1 = InputBox("Первое число = ?") n2 = InputBox("Второе число = ?")


Слайд 32

Do While n1 <> n2 5: If n1 < n2 Then n2 = n2 - n1 Else n1 = n1 - n2 End If 10: Loop MsgBox( _ “Наибольший общий делитель = “ & n1)


Слайд 33


Слайд 34

Здесь показаны два возможных варианта реализации цикла в проекте «Вклад»: Вариант 1 Вариант 2


Слайд 35

Вариант 1 – это вариант, реализованный ранее в проекте «Вклад» с помощью цикла For. Вариант 2 – это возможное решение этой же задачи с помощью цикла While. Следует заметить, что применение цикла While вместо цикла For требует явного задания начального значения параметра цикла, а также явного изменения значения параметра цикла в теле цикла.


Слайд 36

Здесь показаны два возможных варианта реализации цикла в проекте «Вклад 2»: Вариант 1


Слайд 37

Вариант 2


Слайд 38

Вариант 1 – это вариант, реализованный ранее в проекте «Вклад 2» с помощью цикла For. Вариант 2 – это возможное более простое решение этой же задачи с помощью цикла While.


Слайд 39

Инструкция цикла Do Until … Loop или Do … Loop Until Until (до) – зарезервированное слово. По своей логике цикл Until подобен циклу While с той лишь разницей, что выполнение условия означает необходимость выхода из цикла. Как и в случае цикла While, проверка условия выхода в цикле Until может осуществляться перед очередным проходом или после него.


Слайд 40

Вот синтаксис этих двух вариантов. Первый вариант: Do Until УсловиеВыхода Группа инструкций Loop Второй вариант: Do Группа инструкций Loop Until УсловиеВыхода


Слайд 41

Работу первого варианта цикла Until поясняет находящаяся справа блок-схема:


Слайд 42

Второй вариант: Do Группа инструкций Loop Until УсловиеВыхода Блок-схема реализуемого алгоритма приведена справа. Инструкцию Do...Loop можно завершить досрочно с помощью инструкции Exit Do.


Слайд 43

Пример Рассмотрим действие участка программы: Счетчик = 0 Номер = 20 Do Until Номер = 10 Номер = Номер - 1 Счетчик = Счетчик + 1 Loop Переменная Счетчик получит значение 10.


Слайд 44

Еще один пример: Счетчик = 0 Номер = 1 Do Номер = Номер + 1 Счетчик = Счетчик + 1 Loop Until Номер = 10 Переменная Счетчик получит значение 9.


Слайд 45

В примере «Алгоритм Эвклида» вместо цикла Do Wile можно применить цикл Do Until: Do Until n1 = n2 5: If n1 < n2 Then n2 = n2 - n1 Else n1 = n1 - n2 End If 10: Loop


×

HTML:





Ссылка: