2. Изложение новой темы – 20
Посмотрим, как осуществить цикл в Visual Basic. Предположим, мы хотим, чтобы компьютер бесконечно повторял выполнение следующего фрагмента:
Debug.Print "Это ";
Debug.Print "тело ";
Debug.Print "цикла";
Debug.Print " ";
в результате чего в окне Immediate мы бы увидели:
Это тело цикла Это тело цикла Это тело цикла Это тело цикла . . . .
Если бы операторы Visual Basic можно было писать по-русски, то для достижения нашей цели было бы естественно воспользоваться такой конструкцией:
метка m1: Debug.Print "Это " ;
Debug.Print "тело " ;
Debug.Print "цикла" ;
Debug.Print " " ;
иди к оператору, помеченному меткой m1
Здесь мы видим новый для нас "оператор" ИДИ, который выполняется после Debug.Print " " и единственная работа которого заключается в том, чтобы заставить компьютер перескочить к выполнению оператора Debug.Print "Это " , помеченного
Урок №8.
Тема: Оператор перехода Goto. Цикл. Метки. Решение задач.
Учебная: научить работать с оператором перехода Goto Visual Basic 6.0. Решать задачи
, применяя оператор перехода Goto Visual Basic 6.0.
Воспитательная: Воспитать стремление к аккуратности, ответственности при работе с
техникой.
Развивающая: развитие познавательного интереса, логического мышления, памяти,
творческого подхода к решению задачи.
Обеспечение занятия:
Литература:
1). ПК – ЭВМ
2). Раздаточный материал
–
12 шт.
Н.Г. Волченков «Программирование на Visual Basic 6.0 »
С.Н Лукин «Самоучитель работы на Visual Basic 6.0»
Вид занятия:
комбинированное
–
1ч.
План занятия:
1. Организационный момент
2. Изложение новой темы
3. Закрепление темы
4. Практическая работа
5. Отчет по работе
6. Д/з
Х О Д У Р О К А .
–
–
–
10
–
–
2
20
10
2
1
–
1. Организационный момент
(Приветствие, проверка посещаемости, объявление целей и задач урока)
20
2. Изложение новой темы
–
2
–
Посмотрим, как осуществить цикл в Visual Basic. Предположим, мы хотим, чтобы
компьютер бесконечно повторял выполнение следующего фрагмента:
Debug.Print "Это ";
Debug.Print "тело ";
Debug.Print "цикла";
Debug.Print " ";
в результате чего в окне Immediate мы бы увидели:
Это тело цикла Это тело цикла Это тело цикла Это тело цикла . . . .
Если бы операторы Visual Basic можно было писать порусски, то для достижения нашей
цели было бы естественно воспользоваться такой конструкцией:
метка m1: Debug.Print "Это " ;
Debug.Print "тело " ;
Debug.Print "цикла" ;
Debug.Print " " ;
иди к оператору, помеченному меткой m1Здесь мы видим новый для нас "оператор" ИДИ, который выполняется после Debug.Print "
" и единственная работа которого заключается в том, чтобы заставить компьютер
перескочить к выполнению оператора Debug.Print "Это " , помеченного
меткой m1.
А вот как этот фрагмент выглядит реально на Visual Basic:
Private Sub Command1_Click()
m1: Debug.Print "Это ";
Debug.Print "тело ";
Debug.Print "цикла";
Debug.Print " ";
GoTo m1
End Sub
Здесь GoTo оператор безусловного перехода, переводится "иди к", m1 метка.
Метка это произвольное имя или произвольное не слишком большое целое
положительное число. Оператор GoTo можно писать в любых местах процедуры и метку
можно ставить перед любым оператором процедуры, заставляя компьютер таким
образом перескакивать внутри процедуры откуда угодно куда угодно. Правда, в сложных
процедурах и внутри сложных операторов эта свобода перескакивания существенно
ограничивается, так что я не советую вам врываться снаружи внутрь вложенных
операторов, а вот изнутри наружу пожалуйста. Метка должна заканчиваться двоеточием
(хотя, в случае меткичисла это не обязательно).
А терерь запустите эту программу в пошаговом режиме. Посмотрите, как заполняется окно
Immediate. Чтобы оно заполнялось быстрее, нажмите клавишу F8 и не отпускайте.
Зацикливание. Если вы уже запустили эту программу обычным образом (не в пошаговом
режиме), то через некоторое время перед вами должен встать жизненно важный вопрос –
как же ее остановить? Вы обнаружите, что кнопки не отзываются на нажатие мыши, и
вообще, программа никак не реагирует ни на мышку, ни на клавиши клавиатуры.
Любопытно, что так поступает любая нормальная программа, выполняя операторы кода.
Разница в том, что в нормальной программе исключены ситуации, когда код выполняется
бесконечно или на протяжении слишком долгого времени. Если же вы допустили ошибку и
в программе выполняется бесконечный цикл, то возникает как раз такая ситуация. Вы
вечно будете смотреть на экран, по которому бесконечно бегут непонятные числа или
слова или рисуются графические объекты, а возможно и ничего не происходит, экран
пустой – все зависит от характера ошибки.
Для прерывания работы программы, в том числе и зациклившейся, существует комбинация
клавиш CtrlBreak. Имеется в виду, что, удерживая нажатой клавишу Ctrl, вы должны
щелкнуть по клавише Break. Программа прерывает свою работу, но не заканчивает. Visual
Basic переходит в режим прерывания. Оператор программы, на котором она была прервана,
выделяется полосой желтого цвета. Если вы снова запустите программу, она продолжит
работу с прерванного места. Кстати, продолжить можно и в пошаговом режиме. Чтобы
начать сначала, необходимо завершить работу программы обычным образом.
Группа операторов, выполняющихся многократно, называется телом цикла. У нас это все
операторы, начиная с Debug.
Print "Это " и кончая GoTo m1.
Пример программы:
k = 6
a = 100
GoTo 8
a = a + k
k = 2 * kPrint a
8: a = a + 1
k = k + 10
Print k, a
Эта программа напечатает 16 101. Операторы выполняются в такой последовательности:
k=6
a=100
GoTo 8
a=a+1
k=k+10
Print k, a
А операторы a=a+k, k=2*k, Print a выполнены не будут вообще, несмотря на то, что
написаны. Цикла здесь нет.
Задание 1: Определить без компьютера, что будет печатать программа:
n = 10
k = 0
Debug.Print "Считаем зайцев"
met5: Debug.Print n;
n = n + k
GoTo m1
n = n + 1
m1: Debug.Print "зайцев"
k = k + 1
GoTo met5
Debug.Print "Посчитали зайцев"
Не можете определить посмотрите в пошаговом режиме (F8).
Задача: Бесконечно печатать 200 205 210 215 220 225 …
Программа:
Private Sub Command1_Click()
n = 200
m1: Debug.Print n
n = n + 5
GoTo m1
End Sub
3. Закрепление темы
10
–
Задания 24:
Написать программы для выполнения следующих заданий:
2. Бесконечно печатать букву А: ААААААААААА.....
3. Бесконечно печатать 10000 9999 9998 9997 9996 ......
4. Бесконечно печатать 100 50 25 12.5.... с 8 десятичными знаками.
4.Практическая работа
10
–
Движение объектов по экрану
Вам уже приходилось заставлять кнопки прыгать по экрану. Попробуем добиться плавного
движения объекта. Создайте проект с большой формой и добавьте в него маленький
элемент управления Image (изображение). Поместите его в левой части формы. Придайте
ему картинку (свойство Picture). Лучше всего, пока вы еще не умеете работать сизображениями, в качестве картинки взять один из файлов значков, находящихся по адресу
c:\Program Files\папка,посвященная VisualBasic\Graphics\Icons.
Напишем программу, которая двигала бы изображение плавно направо:
Dim x As Double
Private Sub Command1_Click()
x = Image1.Left 'Компьютер узнает, откуда начинать движение
m1: x = x + 1 'Компьютер увеличивает в уме горизонтальную координату на 1
Image1.Left = x 'Изображение встает на место, указанное гор. координатой
GoTo m1
End Sub
Если движение получилось слишком медленным, то прибавьте шаг x = x + 2. Если
слишком быстрым, то уменьшите x =x + 0.3.
Не удивляйтесь, что вам не пришлось в цикле рисовать и стирать объект. Когда дело
касается объекта, заботы о перерисовке берет на себя Visual Basic. А вот когда вы сами
будете рисовать различные фигуры на форме и попытаетесь их двигать,
тогда вам придется их и рисовать и стирать.
Задание 5: Заставьте изображение двигаться налево, вниз, вверх.
Пока мы никак не можем влиять на полученное движение. Только можем останавливать
компьютер с клавиатуры.
5. Задание на дом
Примечание: при изучении нового материала учащиеся делают в тетрадь необходимые
записи под руководством учителя