Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Лабораторная работа 6. Циклы.





Задание 6.1. Операторы циклов (общее).

Основная цель.

1. Изучить операторы циклов For... Next, Do...Loop, While...Wend.

2. Изучить команды принудительного выхода из циклов Exit Do, Exit For.

3. Получить представление об операторе цикла For Each...Next.

4. Научиться в режиме визуального программирования создавать меню программ.

5. Продолжить освоение режима отладки

Краткая справка

Возможности компьютера лучше всего проявляются при многократном выполнении одних и тех же действий. В Visual Basic есть несколько конструкции, позволяющих многократно повторять одни и те же операторы.

 

Цикл For... Next

 

Основной формой циклов в Visual Basic является цикл For...Next. Он используется для выполнения определенного количество итераций. Циклы For...Next обычно используются, когда количество итераций известно заранее. Они имеют следующий синтаксис:

For Счетчик=НачальноеЗначение То КонечноеЗначение [Step Шаг ]

‘ Тело цикла (повторяющиеся действия)

Next Счетчик

Переменная Счетчик имеет числовой тип (Integer или Long) и указывается программистом. Счетчик может изменяться с любым шагом, который указывается после ключевого слова Step. Шаг может быть и отрицательным. В этом случае начальное значение счетчика должно быть меньше конечного. Если шаг не указан счетчик изменяется с шагом 1. После ключевого слова Next можно не указывать имя переменной-счетчика. В этом случае цикл For...Next просто завершается ключевым словом Next.

Для принудительного выхода из цикла For...Next применяется команда Exit For.

 

Цикл Do...Loop

 

Другой тип циклов реализуется с помощью конструкции Do...Loop. Эта конструкция используется в тех ситуациях, когда точное количество повторений заранее неизвестно или вы хотите дождаться выполнения некоторого условия. Синтаксис оператора:

Do

' Повторяющиеся действия

Loop

Цикл Do...Loop может выполняться бесконечно. Для выхода из цикла можно использовать логическое условие, записываемое после ключевого слова While. Если ключевое слово While стоит вначале цикла (после ключевого слова Do), то такой цикл называется циклом с предусловием, а если ключевое слово While стоит в конце цикла (после ключевого слова Loop), то такой цикл называется циклом с постусловием. Синтаксис цикла Do While с предусловие:

 

Do While Логическое выражение

' Повторяющиеся действия

Loop

Цикл продолжает выполняться до тех пор, пока Логическое выражение равно True

Цикл Do While с постусловие имеет следующий синтаксис:

Do

' Повторяющиеся действия

Loop While Логическое выражение

Для выхода из цикла можно также использовать логичское условие, записываемое после ключевого слова Until. Цикл Do Until также как и цикл Do While может быть с предусловием и постусловием. Цикл Do Until с предусловием имеет следующий синтаксис:

 

Do Until Логическое выражение

'Повторяющиеся действия

Loop

Цикл продолжает выполняться до тех пор, пока Логическое выражение не станет равным True.



Цикл Do Until с постусловие имеет следующий синтаксис:

 

Do

' Повторяющиеся действия

Loop Until Логическое выражение

Циклы постусловием будут выполнены как минимум один раз, в то время как циклы с предусловием могут быть не выполнены ни одного раза.

Для принудительного выхода из циклов Do...Loop, Do While, Do Until применяется команда Exit Do.

Цикл While...Wend

 

Другая форма цикла, аналогичная конструкции Do...Loop, — это цикл While...Wend. В нем последовательность команд выполняется до тех пор, пока остается истинным указанное условие. Синтаксис оператора:

 

While Логическое выражение

' Повторяющиеся действия

Wend

Цикл продолжает выполняться до тех пор, пока логическое выражение равно True.

 

Задание 6.2

Создайте программу, иллюстрирующую работу различных циклов. Программа должна иметь меню Циклы с командами For...Next, Do...Loop, While...Wend,

При выполнении команды For…Next вычисляется сумма чисел от 0 до 3 с использованием оператора цикла For...Next.

При выполнении команды Do...Loop вычисляется сумма кубов чисел от 0 до 3

с использованием оператора цикла While...Wend.

При выполнении команды While...Wend вычисляется сумма чисел от 0 до 3 с использованием оператора цикла For...Next.

Составляющие суммы (числа, или их квадраты, или их кубы) показываются в четырех текстовых окнах, расположенных в верхней части формы, а сумма отображается в окне расположенном в нижней части формы, имеющей заголовок "Результат".

Примерный вид программы показан на рис. 6.1.

 

Технология выполнения учебного задания

 

Рис.6.1.

 

Этап 1. Создание программы

1. Выполните пункты 1…5 Задания 1.1

2. Задайте свойству Name формы значение frmZadanie6_1, а свойству Caption присвойте значение Циклы.

3. Откройте редактор меню Инструменты> Редактор меню или выполните команду Инструменты, Редактор меню.

4. Создайте меню верхнего уровня, указывая в поле Caption (Заголовок) значение &Циклы. Введите в поле Name (Имя) значение mnuLoop.

5. Создайте новый объект меню (нажмите кнопку Next (Следующий) ia редакторе меню).

Нажмите кнопку со стрелкой ®, расположенную прямо над списком, чтобы снабдить создаваемый объект единичным отступом. При этом он становится командой меню верхнего уровня.

7. Введите в поле Caption (Заголовок) значение &For...Next, а в поле Name (Имя) укажите значение mnuLoopForNext.

8. Нажмите кнопку Next (Следующий), чтобы создать следующую команду меню. Обратите внимание: она уже снабжена необходимым отступом, поэтому нажимать кнопку со стрелкой не следует.

9. Введите в поле Caption (Заголовок) значение & Do…Loop, а в поле Name (Имя) задайте значение mnuLoopDoLoop.

10 Нажмите кнопку Next (Следующий), чтобы создать следующую команду меню. Введите в поле Caption Caption (Заголовок) значение &While...Wend, а в поле Name (Имя) задайте значение mnuLoopWhileWend.

11. Нажмите кнопку Next (Следующий), чтобы создать следующую команду меню. Введите в поле Caption (Заголовок) Значение «-» (дефис), а в ноле Name (Имя) задайте значение mnuLoopSepl.

Когда в поле Caption (Заголовок) объекта меню вводится дефис (-), объект представляет собой разделитель, предназначенный для визуальной группировки команд меню.

12. Создайте следующую команду меню: пиелите в моле Caption (Заголовок) значение Очистить, а в поле Name (Имя) задайте значение mnuLoopClear.

13. Нажмите кнопку ОК, чтобы закрыть редактор меню.

14. Сохраните проект и форму под именем z5-l. При выполнении длинных или сложных операций не забывайте сохранять свою работу. Если система «зависнет», потери будут минимальными.

15. Создайте на форме frmMain текстовое поле, расположите его в левом верхнем углу формы (под меню Циклы) и задайте его свойству Name значение txtTextBox. Удалите текущее содержимое свойства Text.

16. Активизируйте элемент, щелкнув на элементе txtTextBox в конструкторе форм.

17. Нажмите Ctrl+C или выполните команду Edit, Copy (Правка, Копировать), чтобы скопировать элемент в буфер обмена или нажмите кнопку Сору (Копировать) на панели инструментов. Щелкните на форме frmMain.

18. Нажмите Ctrl+V или нажмите кнопку Paste (Вставить) на панели инструментов, чтобы вставить текстовое поле из буфера на форму. Появляется диалоговое окно, в котором вам предлагается создать массив элементов. Нажмите кнопку Yes (Да).

19. Расположите новое текстовое поле справа от первого. Снова щелкните па форме и нажмите кнопку Paste (Вставить). чтобы вставить из буфера следующее гекстовое поле. Расположите его справа от полей, созданных при выполнении шагов 19 и 20. Аналогично создайте четвертое поле.

20. Создайте на форме frmMain текстовое поле, расположите его в нижней тети формы и задайте его свойству Name значение txtSum. Удалите текущее содержимое свойства Техt. Над текстовым полем поместите элемент-надпись, свойство Caption которого измените на Результат.

21. Выберите команду For...Next из меню Циклы формы frmMain. Открывается окно программы с процедурой события mnuLoopForNext_Click.

22. Вставьте в процедуру следующий фрагмент:

Private Sub mnuloopForNext_Click()

Dim i As Integer Dim intSum As Integer

Заполнить текстовые поля в цикле For...Next

intSum = О For i = 0 То 3

intSum = intSum + i

txtTextBox(i).Text = Str(i)

Next

txtSum.Text = Str(intSum)

End Sub

23. Перейдите к процедуре события ninuLoopDoLoop_Click и вставьте в нее : л еду ю щи и фрагмент:

Private Sub mnuLoopDoLoop_Click()

Dim i As Integer

Dim intPar As Integer

Dim intSum As Integer

Заполнить текстовые поля в цикле For...Nexi

i =0

Do While i <= 3

intPar=in2

intSum = intSum + intPar

txtTextBox(i).Text = Str(intPar)

i = i + 1

Loop

txtSum.Text = Str(intSum)

End Sub

24. Вставьте следующий фрагмент в процедуру события nnu Loop While\Vend_C lick:

Private Sub mnuLoopWhileWend_Click()

Dim i As Integer

Dim intPar As Integer

Dim intSum As Integer

Заполнить текстовые поля в цикле WhileWend

i = 0

intSum = О

While i < 4

intPar = i ^ 3

intSum = intSum + intPar

txtTextBox(i).Text = Str(intPar)

i = i + 1

Wend

txtSum.Text = Str(intSum)

End Sub

25. Вставьте следующий фрагмент в процедуру mnuLoopClear_Click:

Private Sub mnuLoopClear_Click()

Dim i As Integer

' Перебрать все текстовые поля на форме и стереть их содержимое

For i = 0 То 3

txtTextBox(i).Text = ""

Next

txtSum.Text= ""

End Sub

26. Сохраните проект и форму под именем z5-l и запустите проект командой Run, Start (Пуск&Старт).

Выберите один из циклов, перечисленных в меню Циклы, и проследите за изменением текстовых полей. For... Next выводит натуральные числа (от 0 до 3), цикл Do...Loop вычисляет их квадраты, а цикл While...Wend определяет х ку6ы. А в текстовое окно внизу формы выводится сумма всех чисел, выводимых в текстовых полях. Проследите за работой циклов, выберите из меню Циклы команду Очистить. Программа перебирает все объекты на форме и очищает свойство Text каждого текстового поля. Запомните этот прием, он пригодится вам при создании ваших собственных приложений.









Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2018 zdamsam.ru Размещенные материалы защищены законодательством РФ.