Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KNIGA.DOC
Скачиваний:
37
Добавлен:
09.02.2015
Размер:
162.82 Кб
Скачать

§ 10.4 Цикл “ пока ” — while ... Wend.

Если в счетном цикле FOR ... NEXT число повторений фиксировано, то цикл WHILE ... WEND используют в том случае, если количество повторений заранее неизвестно, но известно условие, определяющее конец работы цикла.

ОБЩИЙ ВИД:

WHILE УСЛОВИЕ

ТЕЛО ЦИКЛА

WEND

Тело цикла выполняется до тех пор, пока условие истинно. Если условие сразу не выполняется, то тело цикла не выполняется ни разу.

Например:

input x

while x< 100

x=x ^ 2

Print x

wend

Пояснение: Ввели с клавиатуры переменную Х. Пока Х<100, возводим ее в квадрат и печатаем.

Пусть Х=3. Получим:

3<100? да

X=9

9<100? да

X=81

81<100? да

X=6561

6561<100 нет

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

Задача.

Вычислить квадратный корень числа, введеного с клавиатуры.

ПРИМЕЧАНИЕ: квадратный корень вычисляется только из неотрицательного числа, поэтому необходимо организовать в программе проверку ввода.

CLS

INPUT “Введите число ”; N

WHILE N <0

PRINT “Ошибка! Повторите ввод!“

INPUT “Введите число ”; N

WEND

PRINT “Корень этого числа равен “; SQR(N)

END

§ 10.5 Генератор случайных чисел.

RND — это встроенная функция, которая выдает случайное число в интервале от 0 до 1.

Для того, чтобы получить числа из интервала (А; В) нужно использовать формулу

(В-А)* RND + А.

При RND=0 число будет равно А, а при RND=1 — В.

Чтобы получить целое число на интервале (А; В) надо воспользоваться функцией INT, которая вычисляет целую часть числа:

INT((В-А+1)* RND+ А).

1Дополнительная информация:

В некоторых версиях языка несколько выполнений одной и той же программы, использующей функцию RND, дают одну и ту же последовательность “случайных” чисел. Чтобы этого не происходило, надо в начале программы записать команду RANDOMIZE, которая инициализирует генератор случайных чисел. Выполняя этот оператор, компьютер выводит на экран запрос: “Случайное число (-32768 до 32767)?”. В ответ пользователь должен ввести число, в зависимости от которого будет задана та или иная последовательность чисел.

Задача.

Выводить на экран окружности случайного цвета и центра, с радиусом 30 до нажатия клавиши.

случайный цвет от 1 до 15 — C= INT((15-1+1)*RND+1)= INT(15)*RND+1).

Случайный центр х от 30 до 300 — Х= INT((300-30+1)*RND+30)= =INT(271*RND+30)

у от 30 до 170 — Y=INT((170-30+1)*RND+30)= INT(141*RND+30)

SCREEN 9: CLS

WHILE INKEY$=“”

C= INT(15)*RND+1)

X=INT(271*RND+30)

Y= INT(141*RND+30)

CIRCLE(X,Y), 30, C

WEND

END

В этой программе использовалась встроенная функция INKEY$, которая уже упоминалась в §8. Рассмотрим ее подробнее.

Как уже было сказано, INKEY$ — функция, читающая из буфера клавиатуры символ нажатой клавиши. Если никакая клавиша не была нажата, INKEY$, не ожидая нажатия клавиши и не выводя каких-либо сообщений на экран, уносит из буфера пустую строку.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]