- •Раздел 2 Программирование на языке
- •Лабораторная работа № 1
- •1 Порядок решения задач на компьютере
- •2 Разработка линейных программ
- •Input "Ввести d, k,n"; d, k,n
- •3 Операторы read, datа, restore
- •3 Запуск qbasic, ввод и редактирование программ
- •Лабораторная работа № 2
- •2 Программы ветвления
- •Input X
- •Лабораторная работа № 3
- •1 Операторы цикла qb
- •2 Примеры программ с циклами
- •3 Контрольные вопросы
- •4 Задание
- •Лабораторная работа № 4
- •1 Программа вычисления арифметического ряда
- •2 Программы вычисления факториалов
- •3 Алгоритм итерационного цикла
- •4 Контрольные вопросы
- •5 Задания
- •Лабораторная работа № 5
- •1 Программа "цикл в цикле"
- •2 Программа "цикл и ветвление"
- •3 Программа "цикл в цикле и ветвление"
- •4 Контрольные вопросы
- •5 Задания
- •Лабораторная работа № 6
- •1 Одномерные массивы - векторы
- •2 Двумерные массивы – матрицы. Обработка массивов
- •3 Контрольные вопросы
- •4 Задания
- •Лабораторная работа № 7
- •1 Функции пользователя
- •3 Процедуры. Операторы sub и end sub
- •Лабораторная работа № 8
- •1 Графические операторы qbasic
- •2 Программа рисования графических объектов
- •3 Построение графиков функций
- •4 Контрольные вопросы
- •5 Задание
2 Программа рисования графических объектов
Графические операторы позволяют составлять программы для изображения произвольных объектов с различными цветами окраски линий,
заливки и фона, вводить текст и т.д. Совместное использование графических операторов и операторов цикла облегчает рисование геометрических фигур (напр., конуса, параллелепипеда), произвольных узоров, построение графиков функций и т.д.
Пример 4 Рисование рыбки с хвостом, глазами и жабрами (рис. 2)
CLS: PI=3.14159265
SCREEN 1
CIRCLE (190, 100), 100, 1, , , .3 ' овал тела
CIRCLE (265, 92), 5, 1, , , .7 ' овал глаза
LINE (40,120) –STEP (0, -40), 2 ' линия хвоста
LINE –STEP (60, 20), 2 ' линия хвоста
LINE –STEP (-60, 20), 2 ' линия хвоста
CIRCLE (250, 100), 30, 0, PI-3/4, PI-5/4, 1.5 ' дуга жабр
CIRCLE (250, 100), 30, 0, -PI, -PI/10, 2.5 ' дуга рта
FOR Y=90 TO 110 STEP 4
LINE (40,Y) – (52, Y), 0 ' оперение хвоста
NEXT Y
END
Рисунок 2 Изображение рыбы
3 Построение графиков функций
Изображение кривых графиков различных функций выполняется оператором PSET, который рисует точку с заданными координатами заданного цвета. Совокупность таких точек, изображённых с помощью оператора цикла с маленьким шагом приращения позволяет получить сплошные кривые линии (точки сливаются в линию). Чем меньше шаг, тем больше сливание точек, но тем больше время выполнения программы построения графиков.
Если кривых на графике несколько, то можно для построения каждой из них организовать свой цикл вычисления координат [x,y] точек кривых и их рисования оператором PSET(x,y), но проще в одном цикле по аргументу х вычислять значение сначала первой функции у1=f1(x) и нарисовать её с помощью PSET(x,y), затем вычислить при том же х значение второй
118
функции у2=f2(x) и нарисовать её и т.д. Такой вариант построения графика двух функций рассмотрен в примере 5.
Пример 5 Построить график функций y = 2sinx и y = x2 - 2x
на интервале по оси х от -9 до 9 и по оси у –-5 до 9. Изобразить оси координат Х и У и риски на них через 1, вывести в верхней части название графика.
REM Построение графика функций y = 2sinx, y = x^2 - 2x.
SCREEN 12
COLOR 13 ' цвет текста - фиолетовый
WINDOW (-9, -9) – (9, 9) ' размеры окна для графика
LINE (-9, 0) – (9, 0), 14 ' ось Х, цвет 14 - желтый
LINE (0, -5) – (0, 9), 14 ' ось У, цвет 14 – желтый
FOR x = -9 TO 9 ' цикл для рисования рисок на оси Х
LINE (x, 0) – (x, .2), 14 ' риски на оси Х, цвет 14 - желтый
NEXT x
FOR y = -5 TO 9 ' цикл для рисования рисок на оси У
LINE (0, y) – (.2, y), 14 ' риски на оси У, цвет 14 - желтый
NEXT y
LOCATE 16, 78 'курсор в позицию [16,78]
PRINT "x" 'вывод названия оси Х
LOCATE 16, 39 'курсор в позицию [16,39]
PRINT "0" 'вывод "0" в начало координат
LOCATE 1, 37 ' курсор в позицию [1,37]
PRINT "y" ' вывод названия оси У
FOR x = -9 TO 9 STEP .01 ' цикл для рисования линий графика
y = 2*SIN(x) ' вычисление первогоУ для Х= -9 до 9 с шагом 0,01
PSET (x, y), 10 ' рисов-е точки [X,Y] для у=2sinх, цвет 10 - зелёный
y = x^2 – 2*x ' вычисление второгоУ для Х= -9 до 9 с шагом 0,01
PSET (x, y), 11 ' рисование т.[X,Y] для у=x^2 – 2sinx, цв. 11- голубой
NEXT x
LOCATE 4, 5 ' курсор в позицию [4,5]
PRINT "Графики функций y=2sinx и y=x^2-2x" 'вывод назв. графика
END
Описание программы
Комментарий REM выводит название программы, оператор SCREEN 12 задаёт спецификацию экрана – текстово-графический, 640*480 точек для графики, 256 цветов, 80 столбцов на 40 строк - для текста, COLOR 13
задаёт фиолетовый цвет для текста (фон чёрный), WINDOW определяет
119
границы графического окна.
Операторы LINE рисуют линии осей Х и У жёлтым цветом, затем в циклах FOR...NEXT рисуются линии рисок на осях Х и У, тремя операторами LOCATE [№ строки, № столбца] курсор устанавливается в точки, в которые выводятся названия осей "Х" и "У" и начало координат "0".
Операторы PSET в цикле по Х от –9 до 9 с шагом 0,001 рисуют точки
обоих графиков зелёным (цвет 10) и голубым цветом (цвет 11), причём сначала у вычисляется как 2sinx и первый оператор PSET рисует эту точку при значении х из оператора цикла FOR x = …, затем значение y перевычисляется по формуле x2 - 2x и второй оператор PSET рисует эту точку при том же значении х. Таким образом, значения обоих функций поточечно вычисляются при значениях х, заданных циклом FOR x = -9 TO 9 STEP .01 и сразу поточечно
рисуются на экране, т.е. кривые графиков составляются из точек. Чем меньше шаг цикла STEP, тем более сплошными будут линии графиков.
Затем курсор устанавливается в позицию [4,5] и выводится название графика оператором PRINT "Графики функций y=2sinx и y=x^2-2x" .