KnigkinDom.org» » »📕 Интернет-журнал "Домашняя лаборатория", 2008 №7 - Журнал «Домашняя лаборатория»

Интернет-журнал "Домашняя лаборатория", 2008 №7 - Журнал «Домашняя лаборатория»

Книгу Интернет-журнал "Домашняя лаборатория", 2008 №7 - Журнал «Домашняя лаборатория» читаем онлайн бесплатно полную версию! Чтобы начать читать не надо регистрации. Напомним, что читать онлайн вы можете не только на компьютере, но и на андроид (Android), iPhone и iPad. Приятного чтения!

1 ... 150 151 152 153 154 155 156 157 158 ... 192
Перейти на страницу:

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
class="p1">Debug.Print "тело";

Debug.Print "цикла";

Debug.Print " ";

иди к оператору, помеченному меткой m1.

Здесь мы видим новый для нас "оператор" ИДИ, который выполняется после Debug.Print " " и единственная работа которого заключается в том, чтобы заставить компьютер перескочить к выполнению оператора Debug.Print "Это", помеченного меткой ml.

А вот как этот фрагмент выглядит реально на Visual Basic:

Private Sub Command1_Click()

m1: Debug.Print "Это";

Debug.Print "тело";

Debug.Print "цикла";

Debug.Print " ";

Go To ml

End Sub

Здесь GoTo — оператор безусловного перехода, переводится "иди к", m1 — метка.

Метка — это произвольное имя или произвольное не слишком большое целое положительное число. Оператор GoTo можно писать в любых местах процедуры и метку можно ставить перед любым оператором процедуры, заставляя компьютер таким образом перескакивать внутри процедуры откуда угодно куда угодно. Правда, в сложных процедурах и внутри сложных операторов эта свобода перескакивания существенно ограничивается, так что я не советую вам врываться снаружи внутрь вложенных операторов, а вот изнутри наружу — пожалуйста. Метка должна заканчиваться двоеточием (хотя, в случае метки-числа это не обязательно).

А теперь запустите эту программу в пошаговом режиме. Посмотрите, как заполняется окно Immediate. Чтобы оно заполнялось быстрее, нажмите клавишу F8 и не отпускайте.

Зацикливание. Если вы уже запустили эту программу обычным образом (не в пошаговом режиме), то через некоторое время перед вами должен встать жизненно важный вопрос — как же ее остановить? Вы обнаружите, что кнопки не отзываются на нажатие мыши, и вообще, программа никак не реагирует ни на мышку, ни на клавиши клавиатуры. Любопытно, что так поступает любая нормальная программа, выполняя операторы кода. Разница в том, что в нормальной программе исключены ситуации, когда код выполняется бесконечно или на протяжении слишком долгого времени. Если же вы допустили ошибку и в программе выполняется бесконечный цикл, то возникает как раз такая ситуация. Вы вечно будете смотреть на экран, по которому бесконечно бегут непонятные числа или слова или рисуются графические объекты, а возможно и ничего не происходит, экран пустой — все зависит от характера ошибки.

Для прерывания работы программы, в том числе и зациклившейся, существует комбинация клавиш Ctrl-Break. Имеется в виду, что, удерживая нажатой клавишу Ctrl, вы должны щелкнуть по клавише Break. Программа прерывает свою работу, но не заканчивает. Visual Basic переходит в режим прерывания. Оператор программы, на котором она была прервана, выделяется полосой желтого цвета. Если вы снова запустите программу, она продолжит работу с прерванного места. Кстати, продолжить можно и в пошаговом режиме. Чтобы начать сначала, необходимо завершить работу программы обычным образом.

Группа операторов, выполняющихся многократно, называется телом цикла. У нас это все операторы, начиная с Debug.Print "Это " и кончая GoTo m1.

Пример программы:

k = 6

а = 100

GoTo 8

а = а + k

k = 2 * k

Print а

8: а = а + 1

k = k + 10

Print k, а

Эта программа напечатает 16 101. Операторы выполняются в такой последовательности:

k=6

а=100

Go То 8

а=а+1

k=k+10

Print k, а

А операторы а=а+k, k=2*k, Print а выполнены не будут вообще, несмотря на то, что написаны. Цикла здесь нет.

Задание 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 "Посчитали зайцев"

He можете определить — посмотрите в пошаговом режиме.

Задача: Бесконечно печатать 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: Написать программы для выполнения следующих заданий:

Бесконечно печатать букву А: ААААААААААА

Бесконечно печатать 10000 9999 9998 9997 9996….

Бесконечно печатать 100 50 25 12.5…. с 8 десятичными знаками.

Движение объектов по экрану

Вам уже приходилось заставлять кнопки прыгать по экрану. Попробуем добиться плавного движения объекта. Создайте проект с большой формой и добавьте в него маленький элемент управления Image (изображение). Поместите его в левой части формы. Придайте ему картинку (свойство Picture). Лучше всего, пока вы еще не умеете работать с изображениями, в качестве картинки взять один из файлов значков, находящихся по адресу c: Program Filesпапка, посвященная Visual BasicGraphicsIcons.

Напишем программу, которая двигала бы изображение плавно направо:

Dim х As Double

Private Sub Command1_Click()

   x = Image1.Left 'Компьютер узнает, откуда начинать движение

m1: х = х + 1 'Компьютер увеличивает в уме горизонтальную координату на 1

   Image1.Left = х 'Изображение встает на место, указанное гор. координатой

GoTo m1

End Sub

Если движение получилось слишком медленным, то прибавьте шаг — х = х + 2. Если слишком быстрым, то уменьшите — х = х + 0.3.

Не удивляйтесь, что вам не пришлось в цикле рисовать и стирать объект. Когда дело касается объекта, заботы о перерисовке берет на себя Visual Basic. А вот когда вы сами будете рисовать различные фигуры на форме и попытаетесь их двигать, тогда вам придется их и рисовать и стирать.

Задание 36: Заставьте изображение двигаться налево, вниз, вверх.

Пока мы никак не можем влиять на полученное движение. Только можем останавливать компьютер с клавиатуры. Как с помощью мышки или клавиатуры влиять на движение во время движения? Как хотя бы запрограммировать остановку в нужном месте?

Выход из цикла с помощью If

Итак, как нам запрограммировать завершение работы цикла? Для этого нужно

применить оператор GoTo внутри оператора If.

Задача: При помощи цикла напечатать:

Начало счета 3 5 7 9 11 13 15 329 331 333 Конец счета

Для удобства отладки изменим условие задачи — напечатать:

Начало счета 3 5 7 9 Конец счета

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

Вот 4 варианта программы. Первый — самый простой, а остальные нам понадобятся в дальнейшем. Все 4 варианта делают одно и то же, они очень похожи, но чем-то и отличаются. Вот в этом отличии вам и надо разобраться, иначе

1 ... 150 151 152 153 154 155 156 157 158 ... 192
Перейти на страницу:
Отзывы - 0

Прочитали книгу? Предлагаем вам поделится своим отзывом от прочитанного(прослушанного)! Ваш отзыв будет полезен читателям, которые еще только собираются познакомиться с произведением.


Уважаемые читатели, слушатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор knigkindom.ru.


Партнер

Новые отзывы

  1. Гость Дарья Гость Дарья16 июль 23:19 Отличная книга. Без сцен 18+, что приятно. Легкий и приятный сюжет. Благоразумная ГГ, терпеливый и сдержанный ГГ. Прочла с... Королева драконов - Анна Минаева
  2. Dora Dora16 июль 17:16 Типичная история: она — многодетная, затюканная бытом. У нее имеется богатый и красивый муж, у которого завелась любовница, а... Я беременна от вашего мужа - Ольга Ивановна Коротаева
  3. Гость granidor385 Гость granidor38516 июль 09:37 Помощь с водительскими правами. Любая категория прав. Даже лишённым. Права вносятся в базу ГИБДД. Доставка прав. Подробная... Искусство будущего: как ИИ меняет арт-рынок - Маргарита Олеговна Репина
Все комметарии
Новое в блоге