Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
GoTo m1
End Sub Здесь GoTo- оператор безусловного перехода, переводится " иди к", m1 - метка. Метка - это произвольное имя или произвольное не слишком большое целое положительное число. Оператор GoTo можно писать в любых местах процедуры и метку можно ставить перед любым оператором процедуры, заставляя компьютер таким образом перескакивать внутри процедуры откуда угодно куда угодно. Правда, в сложных процедурах и внутри сложных операторов эта свобода перескакивания существенно ограничивается, так что я не советую вам врываться снаружи внутрь вложенных операторов, а вот изнутри наружу - пожалуйста. Метка должна заканчиваться двоеточием (хотя, в случае метки-числа это не обязательно). А терерь запустите эту программу в пошаговом режиме. Посмотрите, как заполняется окно Immediate. Чтобы оно заполнялось быстрее, нажмите клавишу F8 и не отпускайте. Зацикливание. Если вы уже запустили эту программу обычным образом (не в пошаговом режиме), то через некоторое время перед вами должен встать жизненно важный вопрос – как же ее остановить? Вы обнаружите, что кнопки не отзываются на нажатие мыши, и вообще, программа никак не реагирует ни на мышку, ни на клавиши клавиатуры. Любопытно, что так поступает любая нормальная программа, выполняя операторы кода. Разница в том, что в нормальной программе исключены ситуации, когда код выполняется бесконечно или на протяжении слишком долгого времени. Если же вы допустили ошибку и в программе выполняется бесконечный цикл, то возникает как раз такая ситуация. Вы вечно будете смотреть на экран, по которому бесконечно бегут непонятные числа или слова или рисуются графические объекты, а возможно и ничего не происходит, экран пустой – все зависит от характера ошибки. Для прерывания работы программы, в том числе и зациклившейся, существует комбинация клавиш Ctrl-Break. Имеется в виду, что, удерживая нажатой клавишу Ctrl, вы должны щелкнуть по клавише Break. Программа прерывает свою работу, но не заканчивает. Visual Basic переходит в режим прерывания. Оператор программы, на котором она была прервана, выделяется полосой желтого цвета. Если вы снова запустите программу, она продолжит работу с прерванного места. Кстати, продолжить можно и в пошаговом режиме. Чтобы начать сначала, необходимо завершить работу программы обычным образом.
Группа операторов, выполняющихся многократно, называется телом цикла. У нас это все операторы, начиная с Debug.Print " Это " и кончая GoTo m1. Пример программы: k = 6 a = 100 GoTo 8 a = a + k k = 2 * k Print 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 выполнены не будут вообще, несмотря на то, что написаны. Цикла здесь нет.
Задание 32: Определить без компьютера, что будет печатать программа: 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 " Посчитали зайцев" Не можете определить - посмотрите в пошаговом режиме. Задача: Бесконечно печатать 200 205 210 215 220 225 … Программа: Private Sub Command1_Click() n = 200 m1: Debug.Print n n = n + 5 GoTo m1 End Sub
Задания 33-35: Написать программы для выполнения следующих заданий: 33. Бесконечно печатать букву А: ААААААААААА..... 34. Бесконечно печатать 10000 9999 9998 9997 9996...... 35. Бесконечно печатать 100 50 25 12.5.... с 8 десятичными знаками. Движение объектов по экрану Вам уже приходилось заставлять кнопки прыгать по экрану. Попробуем добиться плавного движения объекта. Создайте проект с большой формой и добавьте в него маленький элемент управления Image (изображение). Поместите его в левой части формы. Придайте ему картинку (свойство Picture). Лучше всего, пока вы еще не умеете работать с изображениями, в качестве картинки взять один из файлов значков, находящихся по адресу c: \Program Files\ папка, посвященная Visual Basic \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. А вот когда вы сами будете рисовать различные фигуры на форме и попытаетесь их двигать, тогда вам придется их и рисовать и стирать. Задание 36: Заставьте изображение двигаться налево, вниз, вверх.
Пока мы никак не можем влиять на полученное движение. Только можем останавливать компьютер с клавиатуры. Как с помощью мышки или клавиатуры влиять на движение во время движения? Как хотя бы запрограммировать остановку в нужном месте? Об этом - в 6.2 и в 11.4.
|