Иллюстрированный самоучитель по Basic, вводный курс

Условный переход

126. А сейчас мы попробуем сделать пока не очень красивый, но очень простой вариант телевизионной игры "О, счастливчик!". Придумайте пять любых вопросов, и к каждому из них четыре варианта ответов. Теперь я попробую словесно описать алгоритм, а вы – перевести его на Бейсик. Итак, запрашиваем у игрока имя, и узнаем, желает ли он играть. Если не желает, прощаемся, если желает – приветствуем и предлагаем первый вопрос с вариантами ответов. Запрашиваем у игрока с клавиатуры, какой вариант он выбирает.

В случае правильного ответа начисляем ему сто очков и переходим ко второму вопросу. Если ответ неверен, то отправляемся на самое начало – снова регистрация и т. д. Первый вопрос – 100 очков, второй – 200, третий – 300, четвертый – 500, пятый – 1000. Если игрок правильно отвечает на все пять вопросов, то поздравляем его и заканчиваем программу.

127. Каждую пятницу члены Клуба толстяков выстраиваются в определенном порядке и взвешиваются. Напишите программу, которая хранит данные взвешивания 10-ти членов Клуба за прошлую неделю. Затем программа запрашивает новые данные взвешивания и для каждого члена Клуба либо выводит поздравление в случае похудения, либо величину прибавки веса с сожалением.

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

CLS
S=0 Rem S – переменная, в которую
Rem будет заноситься накапливаемая сумма.
Rem Естественно, пока мы еще не ввели
Rem ни одного числа, она должна быть обнулена
1: INPUT "Введите любое число"; N
S=S+N
?"Сумма стала равна"; S
INPUT "Еще число? (1 – да, 0 – нет"; R
IF R=l THEN GOTO 1 ELSE?"Спасибо за работу!"

Выполните упражнение.

128. Попробуйте сами написать программу, вычисляющую произведение последовательно вводимых с клавиатуры, отличных от нуля, чисел. Что изменится по сравнению с предыдущей программой?

Движение геометрических объектов по экрану

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

Итак, движение. На самом деле, конечно, ничего там не перемещается, а создается иллюзия движения за счет того, что сначала рисуется изображение, потом оно стирается (т. е. рисуется на том же месте цветом фона), а затем вновь выводится в новом месте экрана. Компьютер достаточно быстро проделывает это, и нам кажется, что шарик, например, двигается. Начнем мы с точки, которая смещается по горизонтали, отражаясь от вертикальных сторон экрана.

SCREEN 9
X=300: Y=175 ' начальные координаты точки
DX=1 ' приращение координаты X.

Так как мы его сделали положительным, координата X будет увеличиваться, а, следовательно, точка сначала будет двигаться вправо 1: PSET (X, Y), 14 вывод точки на экран PSET (X, Y), 0 стирание точки цветом фона IF X=0 OR X=640 THEN DX=-DX в случае достижения точкой вертикальных сторон экрана, приращение по X меняется на противоположное, а значит точка 1 начнет двигаться в обратную сторону X=X+DX изменение координаты точки GOTO 1 переход на метку 1, где происходит рисование точки.

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

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

Для этого между двумя операторами pset надо вставить два оператора:

FOR 1=1 to 100: NEXT I

Это оператор цикла, о котором мы поговорим позже; пока просто поймите, что в данном месте компьютер посчитает до 100 в своем уме, и на это время в программе возникнет пауза. Подставляя вместо числа 100 другие значения, вы сможете управлять величиной паузы.

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

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.