Как сделать квадрат в qbasic
Графические возможности языка Quick Basic
Учитель: С какими видами графики вы знакомы? (Растровая графика, векторная графика)
Каковы особенности каждого вида графики?
Растровая графика
Векторная графика
Сегодня мы выясним, можно ли использовать язык программирования Quick Basic для создания изображений, и к какому виду графики можно отнести это изображение.
Прежде чем работать с графикой Quick Basic, необходимо задать графический режим экрана при помощи команды SCREEN N, где N – номер графического режима. Режимы отличаются разрешением и количеством цветов. В качестве примера рассмотрим режим SCREEN 9:
Также можно изменить цвет фона при помощи оператора COLOR,C, где C – номер цвета в палитре.
1. Создание изображений при помощи графических примитивов (см. Приложение 2)
LINE(X1,Y1) – (X2,Y2), C где:
(X1,Y1) – координаты начальной точки отрезка
(X2,Y2) – координаты конечной точки отрезка
C – номер цвета линии
LINE(X1,Y1) – (X2,Y2), C, B
где:
(X1,Y1) – координаты начальной точки диагонали прямоугольника
(X2,Y2) – координаты конечной точки диагонали прямоугольника
Закрашенный прямоугольник:
LINE(X1,Y1) – (X2,Y2), C, BF
CIRCLE (X,Y), R, C
(X,Y) – координаты центра окружности
R – радиус окружности
C – номер цвета линии
CIRCLE (X,Y), R, C, L1, L2 где:
(X,Y) – координаты центра окружности
R – радиус окружности
C – номер цвета линии
L1 – начальное значение угла вычерчивания дуги
L2 – конечное значение угла вычерчивания дуги
CIRCLE (X,Y), R, C, L1, L2, К где:
(X,Y) – координаты центра эллипса
R – радиус окружности
C – номер цвета линии
L1 – начальное значение угла для вычерчивания дуги эллипса
L2 – конечное значение угла для вычерчивания дуги эллипса
К – коэффициент сжатия дуги эллипса
Если параметры L1 и L2 в операторах
CIRCLE (X,Y), R, C, L1, L2 (для дуги окружности)
CIRCLE (X,Y), R, C, L1, L2, К (для дуги эллипса)
отрицательные, то концы дуги соединяются отрезками с центром окружности (эллипса), т.е. вычерчивается круговой сектор.
9) Закраска ограниченной области
PAINT (X,Y), C1, C2 где:
(X,Y) – координаты любой точки внутри контура
C1 – номер цвета, которым закрашивается контур
С2 – номер цвета самого контура
Пример рисования объекта:
Итог:
2. Создание изображений при помощи макроязыка GML (см. Приложение 3).
Специальный макроязык GML был разработан для расширения возможностей машинной графики Бейсика. Он позволяет строить сложные изображения и быстро выводить их на экран. Каждая команда языка представляет собой латинскую букву, после которой следует один или два числовых параметра.
Команды языка GML перечислены в следующей таблице:
Действие
M x,y
M ±n, ±m
At
Cn
Sn
Un
Dn
Ln
Rn
En
Fn
Gn
Hn
Для приведения в действие последовательности команд языка GML необходимо использовать оператор DRAW «команды макроязыка GML»
Команды записываются подряд или через пробел.
Результат:
Заключение:
– Мы рассмотрели возможности создания графических изображений при помощи языка программирования Quick Basic. Вернемся к вопросу: К какому виду графики относится изображение, созданное при помощи программирования? (Векторная графика)
– А можно ли анимировать изображение? Как вы думаете? Оказывается можно. В этом нам помогут операторы цикла. Но это уже тема другого урока.
Домашнее задание: составить программу для рисования любого объекта с помощью изученных операторов.
Как сделать квадрат в qbasic
Данная линейка статей будет посвящена программированию в QBasic, а точнее — рисованию. Сначала мы рассмотрим то, что необходимо знать детям перед тем, как программировать изображения на компьютере — прямоугольная система координат, координаты точки.
Задания на рисование в QBasic отлично развивают логическое и математическое мышление. В учебнике Босовой «Информатика 6» рассматривается несколько практических задач на рисование с помощью графических примитивов. Мы пойдем немного дальше: научимся рассчитывать координаты точек изображения по условию задачи, научимся рисовать узоры с помощью циклов.
Представим, что на экран монитора наложена прямоугольная система координат с центром О в левом верхнем углу. Точка О имеет координаты (0,0). Теперь любую точку экрана мы сможем закодировать парой чисел (х,у) — координаты точки.
В обозначении А(30, 20) — на первом месте стоит координата Х, на втором — координата У ( на это сделать акцент, очень часто дети путают местами Х и У )
Для закрепления умения находить точку на координатной плоскости по заданным координатам могу предложить рад заданий:
1. Первая команда, с которой мы познакомимся — команда SCREEN 12 — команда, задающая на экране область размером 639 единиц по горизонтали на 463 единицы по вертикали, в которой можно строить различные фигуры и окрашивать их в любой из 16 цветов (0-15). Т.е. максимальное значение координаты Х равно 639, У — 463.
Стандартные Visual Basic (QBasic) цвета:
Номер | Цвет | Номер | Цвет |
---|---|---|---|
0 | Черный | 8 | Светло-серый |
1 | Темно-синий | 9 | Синий |
2 | Темно-зеленый | 10 | Зеленый |
3 | Бирюзовый | 11 | Голубой |
4 | Малиновый | 12 | Красный |
5 | Сиреневый | 13 | Розовый |
6 | Оливковый | 14 | Желтый |
7 | Темно-серый | 15 | Белый |
Примечание : есть и другие режимы работы команды SCREEN, но мы будем использовать именно этот, дающий наибольшее разрешение (большее количество пикселей)
2. Точка
Первый из графических примитивов — точка. Для изображения точки используется оператор pset со следующим синтаксисом:
где х и y — координаты точки на экране, а с — ее цвет.
Рассмотрим пример.
На черном экране в этом случае появится желтая точка.
Данный оператор будет нами использоваться редко.
2. Отрезок
LINE (X1, Y1)-(X2, Y2), С
Х1, Y1 — координаты начала отреза,
Х2, Y2 — координаты конца отрезка
С — цвет линии
3. Прямоугольник
Для того, чтобы нарисовать прямоугольник, нужно воспользоваться тем же оператором LINE. Только теперь мы берем координаты любой из диагоналей прямоугольника.
LINE (X1, Y1)-(X2, Y2), С, В
Х1, Y1 — координаты начала диагонали
Х2, Y2 — координаты конца диагонали
С — цвет линии
В — обязательно указать эту букву, иначе получим прямую, а не прямоугольник
Возьмем предыдущий код и добавим к нему — В
Получили прямоугольник, а отрезок из предыдущего примера служит ему диагональю.
4. Окружность
где X, Y — координаты центра, R — радиус (в экранных точках),
C — цвет.
Другие графические примитивы QBASIC, а также упражнения и задачи рассмотрим в следующем выпуске.
Программирование на алгометрическом языке QBASIC
Темы для изучения: Линейный алгоритм. Разветвляющийся алгоритм. Циклический алгоритм. Цикл с известным числом повторений. Цикл с предусловием. Цикл с постусловием. Массивы. Процедуры и функции. Графические возможности QB.
Введение в язык программирования Basic.
Для представления алгоритма в виде, понятном компьютеру, служат языки программирования. Сначала разрабатывается алгоритм действий, а потом он записывается на одном из таких языков. В итоге получается текст программы – полное, законченное и детальное описание алгоритма на языке программирования. Затем этот текст программы специальными служебными приложениями, которые называются трансляторами, либо переводится в машинный код (язык нулей и единиц), либо исполняется.
Basic (Бейсик) создавался в 60-х годах в качестве учебного языка и очень прост в изучении. По популярности занимает первое место в мире.
Некоторые операторы языка Basic.
REM – оператор комментария.
CLS – очистить экран.
PRINT (вывод, печать) – оператор вывода.
INPUT (ввод) – оператор ввода.
Для задания значения переменной служит оператор присваивания. Он записывается так:
LET переменная = значение (или просто: переменная = значение)
END – оператор конца программы
Арифметические операции на языке Basic.
Операция
15/4
3.75
Математические функции на языке Basic.
Корень | SQR(X) |
Модуль числа | ABS(X) |
Синус | SIN(X) |
Косинус | COS(X) |
Тангенс | TAN(X) |
Целая часть числа | INT(X) |
Натуральный логарифм | LOG(X) |
Линейная структура программы.
Программа имеет линейную структуру, если все операторы (команды) выполняются последовательно друг за другом.
Пример: Вычислите площадь прямоугольника по его сторонам.
REM Площадь прямоугольника
INPUT «Введите сторону а», а
INPUT «Введите сторону b», b
s = a * b
PRINT «Площадь равна: «, s
END
Пример: Вычислите длину окружности и площадь круга по данному радиусу.
REM Вычисление длины окружности и площади круга
INPUT «Введите радиус «, r
PI = 3.14
l = 2 * PI * r
s= PI * r * r
PRINT «Длина окружности равна: «, l
PRINT «Площадь равна: «, s
END
Ветвление в алгоритмах и программах.
Разветвляющий алгоритм – это алгоритм, в котором в зависимости от условия выполняется либо одна, либо другая последовательность действий.
Рассмотрим запись условного оператора на языке Basic.
Условия – еще один тип логических выражений. В них используются следующие операторы сравнения:
Предыдущие конструкции позволяли обойти или выполнить серию оператор в зависимости от справедливости условия. Это еще не было ветвлением. Чтобы вычисления могли разветвляться по нескольким направлениям, служит конструкция
Пример: Проверить, равно ли введенное число некоторому значению, и в случае равенства выдать на экран сообщение о равенстве чисел.
REM сравнить число со каким-то значением
INPUT «Введите а», а
IF a=7 THEN PRINT «Числа равны»
END
Пример: Определить большее из двух чисел, вывести его на экран, затем – увеличить его в двое и вывести результат на экран.
REM определить большее из двух чисел.
INPUT «Введите а», а
INPUT «Введите b», b
IF a=b TNEN
PRINT «Числа равны»
с=2*a
ELSE
IF a>b THEN
PRINT «Большее число: «, a
с=2*a
ELSE
PRINT «Большее число: «, b
с=2*b
END IF
END IF
PRINT «результат: «, c
END
Пример: Решение квадратного уравнения.
Решение квадратного уравнения зависит от значения дискриминанта.
REM Решение квадратного уравнения
INPUT «Введите коэффициент a: «, а
INPUT «Введите коэффициент b: «, b
INPUT «Введите коэффициент c: «, c
d=b*b-4*a*c
IF d
CASECASE
.
CASE ELSEEND SELECT
Выражение, заданное после ключевых слов SELECT CASE, сравнивается с определенными значениями – условиями и если они истинны, то выполняется соответствующая серия команд. Если не одно условие не истинно, то выполняется серия команд между CASE ELSE и END SELECT.
Пример: Выдать словесное значение числа
REM Преобразование чисел в слова
INPUT «Введите число», a
SELECT CASE a
CASE 1
PRINT «один»
CASE 2
PRINT «два»
CASE 3
PRINT «три»
.
CASE 10
PRINT «десять»
CASE ELSE
PRINT «это число не могу перевести»
END SELECT
END
Циклы а алгоритмах и программах
Циклический алгоритм – описание действий, которые должны повторяться указанное число раз или пока не выполнено заданное условие. Перечень повторяющихся действий называют телом цикла.
Например, на уроке физкультуры вы должны пробежать некоторое количество кругов вокруг стадиона.
Такие циклы называются – циклы со счетчиком.
На языке Basic они записываются следующим образом:
FOR Счетчик=НачЗнач TO КонЗнач [STEP шаг]
тело цикла
NEXT [Счетчик]
Параметры указанные в квадратных скобках являются не обязательными (их можно не записывать). По умолчанию шаг цикла равен одному, т.е. каждый раз после прохождения тела цикла счетчик увеличивается на единицу.
Пример: Вывести на экран все числа от 1 до 100.
REM Вывод чисел от 1 до 100
FOR I=1 TO 100
PRINT I
NEXT
END
Пример: Вычислить сумму двухзначных натуральных чисел.
REM Вычислить сумму двухзначных натуральных чисел
FOR I=10 TO 99
s=s+I
NEXT
PRINT «Результат = «,s
END
Пример: вычислить факториал числа а (записывается так: а!). Факториал – это произведение чисел от 1 до а. Например, 5! (факториал пяти) – это 5!=1*2*3*4*5
REM Вычислить факториал числа
a=5
f=1
FOR I=1 TO a
f=f*I
NEXT
PRINT f
END
В субботу вечером вы смотрите телевизор. Время от времени поглядываете на часы и если время меньше полуночи, то продолжаете смотреть телевизор, если это не так, то вы прекращаете просмотр телепередач.
Циклы такого вида называют – циклы с предусловием.
На языке Basic они записываются следующим образом:
DO WHILE условие
Тело цикла
LOOP
DO UNTIL условие
Тело цикла
LOOP
Этот цикл отличается от предыдущего только тем, что он выполняется до тех пор пока условие не истинно (т.е. совсем наоборот).
Пример: Вывести все натуральные числа меньше данного.
REM Вывод всех чисел меньше данного
a=0
chislo=10
DO WHILE a max THEN
max=mas(I)
nomer=I+1
END IF
NEXT
PRINT «Максимальный элемент: «, max, » с номером «, nomer
END
Пример: составить программу сортировки массива по возрастанию.
REM сортировка массива
INPUT «Введите число элементов массива», n
DIM mas(n) AS INTEGER
FOR I=0 TO n-1
mas(I)=1+INT(RND*10)
NEXT
CLS
PRINT «Вывод массива»
FOR I=0 TO n-1
PRINT mas(I);
NEXT
REM сортировка массива
FOR I=0 TO n-2
FOR J=I+1 TO n-1
IF mas(I)>mas(J) THEN
REM если нашли меньший элемент, то обменяем их местами
a=mas(I)
mas(I)=mas(J)
mas(J)=a
END IF
NEXT J
NEXT I
REM конец сортировки массива
PRINT «Вывод отсортированного массива»
FOR I=0 TO n-1
PRINT mas(I);
NEXT
END
Пример: ввод массива с использование оператора DATA.
Массивы. Двумерные массивы.
Двумерные массивы можно представить себе как таблицы, в ячейках которых хранятся значения элементов массива, а индексы элементов массива являются номерами строк и столбцов.
Объявляются двумерные массивы так же, как переменные и одномерные массивы. Например, целочисленный числовой массив, содержащий 3 строк и 4 столбца объявляется следующим образом:
REM Таблица умножения
DIM tabum (1 TO 9, 1 TO 9) AS INTEGER
REM Заполнение массива – создание таблицы умножения
FOR I=1 TO 9
FOR J=1 TO 9
tabum(I, J)=I*J
NEXT J
NEXT I
REM Вывод массива на экран в виде таблицы
FOR I=1 TO 9
FOR J=1 TO 9
PRINT tabum(I,J);
NEXT J
NEXT I
END
Пример: В таблице 3х4 вычислить количество отрицательных элементов, сумму четных элементов, произведение элементов второй строки.
REM вычислить количество.
DIM tabl(1 TO 3, 1 TO 4) AS INTEGER
REM Заполнение массива
FOR I=1 TO 3
FOR J=1 TO 4
INPUT «Введите элемент массива:», tabl(I, J)
NEXT J
NEXT I
REM Вывод массива на экран в виде таблицы
CLS
FOR I=1 TO 3
FOR J=1 TO 4
PRINT tabl(I,J);
NEXT J
NEXT I
REM требуемые вычисления
k=0
s=0
p=1
FOR I=1 TO 3
FOR J=1 TO 4
IF tabl(I, J)
LEN(s$) Вычисляет длину строки (количество символов). MID$(s$,n,k) Выделяет из строки s$ k символов начиная с n-го символа. VAL(s$) Преобразует числовую часть начала строки в число. STR$(x) Преобразует число в символьную форму. ASC(s$) Вычисляет десятичный код символа. CHR$(x) Преобразует код в символ. INKEY$ Функция опроса клавиш, нажатых на клавиатуре.
Пример: составить программу подсчитывающую, количество букв «а» в предложении.
REM кол-во букв «а»
INPUT «Введите предложение», s$
FOR I=1 TO LEN(s$)
IF MID$(s$,I,1)=»а» THEN k=k+1
NEXT
PRINT «Кол-во букв а =», k
END
Пример: Заменить все буквы «а» в предложении на буквы «о».
REM замена букв
ss$=»»
INPUT «Введите предложение», s$
FOR I=1 TO LEN(s$)
IF MID$(s$,I,1)=»а» THEN
ss$=ss$+»о»
ELSE
ss$=ss$+MID$(s$,I,1)
END IF
NEXT
PRINT «Исправленная строка: «, ss$
END
Пример: Получить предложение в обратном порядке следования символов.
Дополнительные возможности Basic: Приложение1 в окне правка / правка слайдов возможно доработать презентацию.