- •Глава 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 Двумерные массивы (матрицы).
§ 11.3 Решение задач.
Задача 1.
Нарисовать “Кремлевскую стену”:
0 х
. . .
у
Примечание:Возьмем высоту и ширину фрагмента 20 пикселей.
Прежде, чем начать писать программу, вынесите повторяющийся фрагмент на лист в клетку и расставьте координаты.
x,y-20 x+20,y-20
x+10,y-10
x,y x+20,y x+30,y
SCREEN 9:COLOR 7,2: CLS
Y= 40
FOR X=1 TO 300 STEP 30
LINE(X,Y)-(X,Y-20)
LINE - (X+10,Y-10)
LINE - (X+20,Y-20)
LINE - (X+20,Y)
LINE - (X+30,Y)
NEXT X
END
пояснение: Повторяющийся фрагмент, тело цикла, выделен на рисунке пунктирной окружностью. Расставив координаты на фрагменте, легко написать операторы, рисующие его. Осталось установить область изменения переменной цикла Х и шаг изменения. Так как длина фрагмента 30, то и шаг изменения будет 30, а Х изменяется в графическом режиме от 1 до 300. Значение Y можно выбрать самим.
Задача 2.
Подсчитать N! (факториал числа N), то есть произведение первых N натуральных чисел. Число N ввести с клавиатуры.
ПОЯСНЕНИЕ. Для подсчета нам необходимо завести переменную памяти, в которой будут “накапливаться” произведения. Пока она не задействована, ей присваивают значение 1. Переменная цикла будет последовательно принимать значения натуральных чисел от 1 до N. В теле цикла ячейке-”копилке” будут присваиваться произведения ее старого значения на переменную цикла.
CLS
INPUT “Введите натуральное число: ”;N
P=1
FOR I=1 TO N STEP 1
P=P*I
NEXT I
PRINT N; ”! = “; P
END
Задача 3.
Подсчитать сумму дробей видаот 1 до n (n ввести с клавиатуры).
ПРИМЕЧАНИЕ. В данной задаче нам тоже понадобится переменная-”копилка”, в которую мы будем складывать дроби. Первоначальное значение переменной должно быть равно 0. Округление произвести с помощью функции USING.
СLS
INPUT ‘“Введите натуральное число “; N
S=0
FOR I=1 TO N STEP 1
S=S+ 1/(I+1)
NEXT I
PRINT “ Сумма дробей вида 1/(n+1) для n от 1 до “;N; “равна “;
PRINT USING”##.##”;S
END
Результат для N=4:
Введите натуральное число? 4¿
Сумма дробей вида 1/(n+1) для n от 1 до 4
равна 1.28
Задача 4.
Написать программу переворачивающую слово.
Решение.
CLS
INPUT ‘“Введите слово: “;B$
A$=“”
FOR I= LEN(B$) ТО 1 STEP -1
A$=A$+ MID$(B$, I, 1)
NEXT I
PRINT “Перевернутое слово — “; A$
END
§11.4 Программирование динамического элемента.
Задача 1.
Нарисовать на графическом экране 15 прямоугольников с координатами диагонали (20,20) и (80, 100), закрашенных во все цвета от 1 до 15.
Решение:
CLS: SCREEN 9 :REM Графический режим
FOR I=1 TO 15 STEP 1 :REM Заголовок цикла
LINE (20,20) - (80, 100), I, BF :REM Закрашенный пр-к цвета I
NEXT I :REM Конец цикла
END
Пояснение: Переменная цикла I изменяется от 1 до 15 и является номером цвета в операторе LINE. Тело цикла — рисование закрашенного прямоугольника цветом I, с координатами диагонали (20,20) и (80, 100).
Если Вы наберете эту программу и выполните ее, то увидите, что прямоугольники молниеносно мелькнут на экране и останется только прямоугольник ярко-белого цвета. Для того, чтобы было видно выполнение программы, необходимо вставить в программу задержку. Обычно в качестве задержки используют пустой цикл, в котором есть заголовок и конец, но нет тела цикла.
Например: FOR I=1 TO 1000 STEP 1 : NEXT I
ВНИМАНИЕ! Имя переменной цикла не должно совпадать ни с каким другим именем программы!
Задержку вставляют в тело цикла, например, между операторами LINE и NEXT. Программа примет вид:
CLS: SCREEN 9 :REM Графический режим
FOR I=1 TO 15 STEP 1 :REM Заголовок цикла
LINE (20,20) - (80, 100), I, BF :REM Закрашенный пр-к цвета I
FOR J=1 TO 300: NEXT J :REM ЗАДЕРЖКА
NEXT I :REM Конец цикла
END
Так же в качестве задержки используют оператор SLEEP N, где N — время в секундах.
Разберем задачу:
Задача 2.
Написать программу движения закрашенного прямоугольника слева направо по экрану.
Напишем алгоритм.
Нарисовать закрашенный прямоугольник в месте начала движения.
Нарисовать левую сторону прямоугольника цветом фона.
Нарисовать линию на 1 пиксел правее прямоугольника цветом прямоугольника.
Повторять пункты 2 и 3 до тех пор, пока прямоугольник не достигнет правого края экрана.
SCREEN 9: CLS
X=1: Y=10 :REM установка левого верхнего угла пр-ка
LINE(X,Y) - (X+50, Y+30), 5, BF :REM пункт 1
FOR X=1 TO 320 STEP 1 :REM заголовок цикла
LINE(X,Y)-(X,Y+30), 0 :REM пункт 2
LINE(X+50,Y)-(X+50,Y+30), 5 :REM пункт 3
FOR J=1 TO 300: NEXT J :REM задержка
NEXT X :rEM конец цикла
END
В ходе работы цикла каждый раз линия шириной в один пиксел слева будет стираться, а справа пририсовываться, в результате чего прямоугольник будет “двигаться” вправо.
Задача 3.
Получить изображение надувающегося шарика. Максимальный радиус задает пользователь, центр совпадает с центром экрана.
Алгоритм.
Задать Rmax.
Нарисовать окружность единичного радиуса.
Нарисовать окружность на 1 пиксел больше.
Повторять пункт 3 до тех пор, пока радиус не станет больше Rmax.
SCREEN 9: CLS :REM графический режим, очистка экрана
INPUT “Rmax=“;Rmax :REM ввод Rmax
FOR R=1 TO Rmax STEP 1 :REM пункты 2-4
CIRCLE (150, 100), R, 9 :REM рисование окружности радиусом R
FOR I=1 TO 300:NEXT I :REM задержка
NEXT R :REM конец цикла
END