Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Понятно о Visual Basic.NET. Самоучитель.Ч2.2005...docx
Скачиваний:
43
Добавлен:
25.11.2019
Размер:
4.02 Mб
Скачать
      1. Оператор Do Until …. Loop

4 ВАРИАНТ

4 ВАРИАНТ ОПЕРАТОРА Do

Write("Начало счета ")

Write("Начало счета ")

f = 3

f = 3

m1: If f > 9 Then GoTo m2 Else GoTo m3

Do Until f > 9

m3: Write(f & " ")

Write(f & " ")

f = f + 2

f = f + 2

GoTo m1

Loop

m2: Write("Конец счета")

Write("Конец счета")

Do Until f > 9 понимать следует так: «Выполняй нижестоящие операторы вплоть до Loop, до тех пор, пока не выполнится условие f > 9».

Синтаксис оператора Do Until …. Loop:

Do Until условие завершения работы цикла

операторы

операторы

…………….

Loop

      1. Разница между вариантами операторов Do

Разницы две:

  • Между While и Until. Здесь соображения удобства. Что вам удобнее: указывать компьютеру, когда цикл нужно продолжать (f <= 9) или когда его нужно заканчивать (f > 9)?

  • В том, куда поставить условие – после Do или после Loop. Здесь разница не только в удобстве. В первом случае можно придумать такое условие, когда тело цикла не выполнится ни разу. Например,

Dim f As Integer = 3

Do Until f > 0

Debug.Write(f)

f = f - 10

Loop

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

Часто эти отличия для начинающих малосущественны, поэтому пока выбирайте вариант по вкусу.

Типичная ошибка начинающих – небрежное обращение со знаками сравнения. Многие не видят большой разницы в том, как записать – While f<=9 или While f<9, а затем, «недополучив» результат, удивляются, куда он делся. Если вы не понимаете, куда, попробуйте ошибочный вариант программы с While f<9 выполнить в пошаговом режиме.

      1. Примеры и задания

Выполнить с использованием оператора Do задачу из 8.2: Напечатать пары чисел – 0 1000 1 999 2 998 . . . . . . 1000 0. Напишите два варианта программы с использованием 1 и 2 вариантов оператора Do.

Выполнить с использованием оператора Do Задание 28.: Изображение, пройдя немного слева направо, поворачивает вниз и, пройдя немного, через некоторое время останавливается. Используйте 3 и 4 варианты оператора Do.

Задача: Компьютер предлагает человеку ввести слово, после чего распечатывает это слово, снабдив его восклицательным знаком. Затем снова предлагает ввести слово и так до тех пор, пока человек не введет слово «Хватит». Распечатав его с восклицательным знаком, компьютер отвечает «Хватит так хватит» и заканчивает работу.

Придумаем строковую переменную, в которую человек будет с клавиатуры вводить слово. Назовем ее Slovo. Выберем подходящий вариант оператора Do, это будет 2-й вариант (а 3-й и 4-й здесь вообще не подойдут), и пишем программу:

Dim Slovo As String

Do

Slovo = InputBox("Введите слово")

Debug.WriteLine(Slovo & "!")

Loop Until Slovo = "Хватит"

Debug.WriteLine("Хватит так хватит")

Усложним эту задачу. Пусть компьютер перед распечаткой каждого слова ставит его порядковый номер. И еще: если слово длинней 10 букв, компьютер должен добавить – «Тяжелая жизнь.».

«Полет камня». Это непростое задание разделим на два этапа:

Вычислительная часть. Если камень бросить горизонтально со 100-метровой башни со скоростью v=20м/с, то его расстояние от башни по горизонтали s будет выражаться формулой s=vt, где t – время полета камня в секундах. Высота над землей h будет выражаться формулой h=100-9.81t2/2. Требуется вычислять и печатать t, s и h для значений t = 0, 0.2, 0.4, 0.6 и так далее до тех пор, пока камень не упадет на землю.

Графическая часть (выполнять только в том случае, если получилась вычислительная). Нарисовать землю, башню и траекторию камня (Рис. 8 .19). Указание: Траектория – серия кружочков. За одну итерацию цикла рисуется один кружочек. Высота башни – 100 пикселей. И в остальном тоже выберем масштаб – 1 метр – 1 пиксель, что удобно. Горизонтальная координата кружка на форме – это s с небольшим сдвигом вправо, так как бросаем не от левого края формы. Вертикальная координата кружка на форме – это 100-h с небольшим сдвигом вниз, так как бросаем не от верхнего края формы. Переменная h взята со знаком минус потому, что вертикальная ось в компьютерной системе координат направлена вниз.

Рис. 8.19

В Задание 89. мы изобразим полет камня в реальном времени.