- •Глава 1 . “общие сведения о языке программирования basic”
- •§1. Происхождение языка.
- •§2. Алфавит языка.
- •§3. Величины.
- •§4. Выражения.
- •Глава 2. “Операторы языка. Линейные программы.”
- •§ 5 Оформление программ.
- •§ 6 Оператор присваивания let.
- •§ 7 Оператор print.
- •§ 7.1 Форматированный вывод чисел на печать print using.
- •§ 7.2 Управление выводом на печать locate.
- •§ 8 Ввод данных с клавиатуры input.
- •Input список ввода
- •§ 8.1 Операторы data и read .
- •§ 9. Функции символьного переменного.
- •1Дополнительная информация:
- •1Дополнительная информация:
- •§ 10. Операторы графики. Графический режим.
- •§10.1 Работа команды сolor.
- •§ 9.3 Операторы рисования точек.
- •§ 10.2 Абсолютные и относительные координаты.
- •§ 10.3 Рисование линий и прямоугольников.
- •§ 10.4 Рисование окружностей, элипсов и дуг.
- •§ 10.5 Решение задач.
- •Глава 3. Циклические структуры.
- •§ 11. Понятие цикла.
- •§ 11.1 Счетный цикл for...Next.
- •§ 11.2 Вложенные циклы.
- •§ 11.3 Решение задач.
- •§11.4 Программирование динамического элемента.
- •§ 10.4 Цикл “ пока ” — while ... Wend.
- •§ 10.5 Генератор случайных чисел.
- •1Дополнительная информация:
- •Глава 4. Управляющие структуры.
- •§ 11 Ветвление.
- •§ 11.1 Оператор условного перехода.
- •§ 11.2 Простые и составные условия.
- •§ 11.3 Решение задач.
- •§ 11.4 Безусловный переход.
- •§ 12 Подпрограммы.
- •Глава 5. Массивы.
- •Массив — это набор упорядоченных по номерам переменных одного типа, с общем именем.
- •§ 13 Линейные массивы.
- •§ 13 Заполнение массива.
- •§ 13.3 Вывод массива на печать.
- •§ 13.4 Решение задач.
- •§ 13.5 Символьные массивы.
- •§ 14 Двумерные массивы (матрицы).
§ 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$ удобно создавать задержку в выполнении программы до нажатия клавиши или зацикливание.