Язык программирования BASIC
Выполнила:
Крымова Ирина Евгеньевна
учитель информатики
История создания языка BASIC
Графические примитивы
Применение
Выход
Происхождение названия языка.
В прошлом веке один английский миссионер, желая облегчить контакт с туземным населением, выделил из английского языка самую простую и распространенную его часть, содержащую около 300 слов и не имеющей почти грамматики. Это подмножество языка названо Basic English.
Создание языка программирования Basic .
- Разработан первый Бейсик в 1964 г. сотрудниками Дартмутского колледжа Дж. Кемени и Т. Курцем.
- Аббревиатура Бейсика так и расшифро-
вывается – “ Beginner’s All purpose Symbolic Instruction Code”, что в переводе означает «многоцелевой язык символьных команд для начинающих».
Оператор SCREEN
Оператор COLOR
Оператор PAINT
Оператор PSET
Оператор LINE
Оператор CIRCLE
Оператор DRAW
Оператор SPRITE
Оператор Screen.
Оператор Screen включает графически режим монитора.
Оператор Screen имеет вид:
Screen n
где Screen -имя оператора, а n- десятичная цифра определяющая режим работы дисплея.
Наиболее употребляемые графические режимы:
режим
Разрешение экрана
0
Количество цветов
текстовый режим
1
320х200
16
2
7
4
640х200
320х200
2
8
16
640х200
9
640х350
16
12
16
640х480
13
320х200
16
256
Оператор COLOR.
- Этот оператор дает необходимый цвет изображения.
- Общая форма оператора:
COLOR N
где COLOR – имя оператора, а N десятичное число, соответствующее определенному цвету изображения.
Цвет рисования закодирован числами от 0 до 15 следующим образом:
номер
0
цвет
Черный
1
Синий
2
Зеленый
3
Голубой
4
Красный
5
6
Фиолетовый
Коричневый
7
Светло-серый
8
Темно-серый
9
10
Светло-синий
11
Свело зеленый
Светло голубой
12
Светло красный
13
Васильковый
14
15
Желтый
Белый
Оператор PAINT -ОПЕРАТОР ЗАКРАСКИ.
Оператор PAINT имеет следующий формат: PAINT (X, Y) , C1, C2
где PAINT – ИМЯ ОПЕРАТРАТОРА ;Х, Y — координаты любой точки внутри закрашиваемого контура, C 1 — цвет, которым закрашивается контур, С2 — цвет самого контура. Если эти цвета совпадают, то достаточно указать С1.
Правила закраски.
- Контур должен быть замкнут. Если в нем будет прокол хотя бы в одну экранную точку, то вся "краска" вытечет и зальет экран.
- Контур должен быть одноцветен. Если составляющие даже замкнутого контура разных цветов, то для компьютера эта ситуация аналогична разрыву. Будет закрашен весь экран.
- Координаты точки закраски должны лежать внутри контура
Оператор PSET .
Оператор PSET позволяет рисовать точку.
Оператор PSET имеет вид:
PSET (X, Y) , С
Где PSET - имя оператора, Х и Y координаты точки на экране, а С — ее цвет. Если цвет не указан, то точка будет изображена последним установленным цветом.
Оператор LINE .
Для рисования отрезка прямой линии оператор LINE записывается таким образом:
LINE (X1,Y1)-(X2,Y2),C
где LINE - имя оператора , X1, Y1 — координаты начала отрезка; X2, Y2 — координаты конца отрезка; С — цвет.
Оператор LINE .
По диагоналям прямоугольника можно всегда его
достроить.
В этом случае оператор LINE имеет вид:
LINE ( X1,Y1) - (x2,y2), c, b
Где LINE – имя оператора, координаты — начало и конец любой диагонали прямоугольника, С —цвет.
В – от английского слова Box ( ящик, коробка).
Оператор LINE .
Оператор LINE позволяет не только строить прямоугольники по диагоналям, но и сразу закрашивать его. В этом случаи оператор LINE имеет вид:
LINE ( X1,Y1) - (x2,y2), c ,bF
Где LINE – имя оператора , координаты — начало и конец любой диагонали прямоугольника С —цвет, В F обозначает « Box Full » - полная коробка.
Оператор CIRCLE .
Для рисования окружности для Бейсика необходимо знать координаты ее центра и радиус. Оператор CIRCLE выглядит так:
CIRCLE (X, Y) , R, С
где CIRCLE – имя оператора; Х, Y — координаты центра, R — радиус (в экранных точках),С- цвет.
Оператор CIRCLE .
Для рисования эллипса оператор CIRCLE записывается следующим образом:
CIRCLE (X, Y) , R, С, , , К
где CIRCLE – имя оператора, Х, Y — координаты центра эллипса, R — радиус той окружности, из которой этот эллипс получился, С — цвет, К — значение коэффициента сжатия.
Оператор CIRCLE .
- Таким образом, для вытянутых по горизонтали эллипсов коэффициент сжатия будет в пределах от 0 до 1
- А для эллипсов, вытянутых по вертикали, коэффициент сжатия будет больше 1.
- Если коэффициент сжатия равен 1, то это будет не эллипс, а просто окружность.
Оператор CIRCLE .
Для рисования дуг окружностей. В Бейсике используется радианная мера углов. Любая дуга имеет угол, от которого она начинается, и угол, где она заканчивается. Оператор рисования дуг окружностей:
CIRCLE (X, Y) , R, С, А, b
где появившиеся две новые величины А и В и обозначают эти углы. Правило рисования дуг на Бейсике звучит так: "дуга строится от угла А к углу В против часовой стрелки".
Оператор CIRCLE .
Взглянув на тригонометрическую окружность, мы всегда довольно легко сможем определить начало и конец нужных нам дуг.
Оператор CIRCLE .
Оператор построения дуг эллипса таков:
CIRCLE (X, Y) , R, С , А , В , К
Где CIRCLE –имя оператора;
Х, Y — координаты центра эллипса,
R — радиус той окружности, из которой этот эллипс получился;
С — цвет; А,В - углы; К —значение коэффициента сжатия.
Оператор DRAW .
Оператор DRAW позволяет рисовать «не отрывая руки».
Основные команды оператора DRAW (движение в зависимости от направления ).
- U - черчение вверх от текущей точки;
- D - вниз;
- L – налево;
- R – направо;
- E – в правый верхний угол;
- F – в правый нижний угол;
- G – в левый нижний угол
- H - в левый верхний угол.
Кроме основных команд, существуют дополнительные:
- B – движение, но не рисование;
- C – установка цвета рисования;
- S – установка коэффициента масштабирования;
- X – включение подстроки;
- M x , y – движение из текущей точки в точку с координатами (х, у), если перед х или у стоит знак (+ или -), то движение осуществляется относительно текущей точки;
- A – установка угла поворота, параметр принимает значения: 1, 2, 3, соответствующее углам: 0, 90,180 и 270 градусов.
Оператор SPRITE .
Спрайты позволяют создавать движущиеся объекты.
SPRITE – английское слово означает эльф.
Спрайт представляет собой изображение, вмещающееся в квадрат определенных размеров. Применять спрайт можно во всех экранных режимах, кроме SCREEN 0.
Для работы со спрайтом используется:
- Команда SCREEN с дополнительным операндом, указывающим размеры спрайта;
- Набор псевдопеременных для хранения образов всех спрайтов;
- Команда печати образа на экран.
Оператор SPRITE .
Объявление размера спрайтов.
SCREEN 2, 0 – размер 8х8
2 – размер 16х16
1 – размер 8х8
3 – размер 16х16
Создание образа.
Закодируйте изображение по строкам с помощью нулей и единиц:
квадратик не закрашен – 0, закрашен – 1. 8х8
& B 00001000
& B 00011100
& B 00111110
& B 00001000
& B 00001000
& B 00001000
& B 00001000
& B – символы, являются указателем двоичного числа
Для сохранения образа используются строковые переменные
SPRITE $( N ), где N – номер спрайта.
0 ≤ N ≥ для спрайтов 8х8
0 ≤ N ≥ для спрайтов 16х16.
Установка спрайта на экране.
PUT – английское слово означает устанавливать.
Установка спрайта на экране производится командой,
имеющей следующий формат:
PUT SPRITE N плоскости, (х, у), N цвета, N образа
где N образа - номер псевдопеременной в которой
хранится образ;
N цвета - цвет спрайта;
х, у – координаты левого верхнего угла квадрата, в
который вписан спрайт.
N плоскости – задает номер плоскости, на который
воспроизводится спрайт .
Плоскости.
- Воображаемые плоскости введены для того, чтобы:
- Создать удобным механизм движения спрайтов;
- Однозначно определить изображение, возникающее при наложении спрайтов друг на друга
- Можно предположить, что экран разделен на 31 плоскость.
Линейные программы
Разветвляющиеся программы
Циклические программы
Подпрограммы
Кораблик.
SCREEN 7 REM рисуем облака
COLOR 5, 3 CIRCLE (120, 30), 10, 7
REM рисуем море CIRCLE (137, 20), 12, 7
LINE (1, 120)-(320, 199), 1, BF CIRCLE (103, 36), 10, 7
REM рисуем кораблик CIRCLE (118, 45), 10, 7
LINE (190, 130)-(220, 150), 15 CIRCLE (132, 40), 13, 7
LINE (220, 150)-(260, 150), 15 CIRCLE (154, 30), 8, 7
LINE -(290, 130), 15 CIRCLE (150, 42), 7, 7
LINE -(190, 130), 15 CIRCLE (169, 37), 10, 7
LINE (240, 130)-(240, 70), 6 PAINT (120, 30), 7, 7
LINE -(270, 110), 6 PAINT (137, 20), 7, 7
LINE -(240, 130), 6 PAINT (103, 36), 7, 7
PAINT (250, 110), 15, 6 PAINT (118, 45), 7, 7
PAINT (220, 140), 6, 15 PAINT (132, 40), 7, 7
REM рисуем солнышко PAINT (122, 37), 7, 7
CIRCLE (80, 40), 20, 14 PAINT (120, 42), 7, 7
PAINT (80, 40), 14 PAINT (150, 30), 7, 7
REM рисуем чаек PAINT (167, 37), 7, 7
CIRCLE (90, 60), 15, 8, .57, 1.57 PAINT (153, 43), 7, 7
LINE (103, 55)-(110, 50), 8 PAINT (145, 30), 7, 7
CIRCLE (40, 70), 10, 8, .57, 1.57
LINE (49, 68)-(59, 62), 8
CIRCLE (100, 90), 10, 8, .57, 1.57
LINE (110, 88)-(120, 80), 8
CIRCLE (170, 80), 10, 8, .157, 1.57
LINE (180, 80)-(190, 70), 8
CIRCLE (250, 110), 10, 8, .57, 1.57
LINE (260, 105)-(270, 100), 8
Зайчик.
SCREEN 9
DRAW "C5 L50 E20 H15 E15 H15 G10 U15 R15 U20 L15 H5 U5 E5 U10 R30 H15 U15 F15"
DRAW "D15 E15 R15 G15 L15 D20 F25 D25 R5 D5 L5 G20 F20 "
END
Елочка.
SCREEN 7
COLOR, 9
DRAW “BM 120,100”
DRAW “ C2E10F10H10D15 G15E15F15H15D20G20E20F20H20D20”
Российский флаг.
SCREEN 9
' Белая полоса
LINE (100, 50)-(500, 130), 15, BF
' Синяя полоса
LINE (100, 130)-(500, 210), 1, BF
' Красная полоса
LINE (100, 210)-(500, 290), 4, BF
END
Радуга.
DEFINT I
SCREEN 9
CLS
PALETTE 1, 36
PALETTE 2, 38
PALETTE 3, 54
PALETTE 4, 18
PALETTE 5, 11
PALETTE 6, 25
PALETTE 7, 5
PALETTE 8, 17
PALETTE 9, 9
PALETTE 10, 16
LINE (0, 0)-(639, 220), 9, BF
FOR I = 1 TO 8
CIRCLE (320, 220), 280 - 7 * I, I
PAINT (320, 220), I
SLEEP 1
NEXT I
LINE (0, 175)-(639, 349), 10, BF
SLEEP
Орнамент с полукольцами.
SCREEN 9
' Задание радиусов окружностей
R1 = 20: R2 = 10
FOR X = 50 ТО 600 STEP 4*R1
' Первое полукольцо
CIRCLE (X, 175), R1, 14, 0, 3.14
CIRCLE (X, 175), R2, 14, 0, 3.14
LINE (X – R1, 175)-(X - R2, 175), 14
LINE (X + R1, 175)-(X + R2, 175), 14
PAINT (X, 162), 2, 14
' Второе полукольцо
CIRCLE (X + 2 * R1, 175), R1, 14, 3.14, 0
CIRCLE (X + 2 * R1, 175), R2, 14, 3.14, 0
LINE (X + R1, 175)-(X + R1 + R2, 175), 14
LINE (X + 2 * R1 + R2, 175)-(X + 3 * R1, 175), 14
PAINT (X + 2 * R1, 188), 4, 14
NEXT X
END
Маленький взрыв.
RANDOMIZE TIMER
SCREEN 9
FOR 1=1 TO 100
X=INT(RND(1)*200)+220
Y=INT(RND(1)*200)+75
C=INT(RND(1)*15)+1
LINE (X, Y)-(320, 175), С
NEXT I
END
Гипербола.
SCREEN 9
LINE (0, 175)-(640, 175), 15
LINE (320, 0)-(320, 350), 15
DEF FN Y(X)=1/X
FOR X=0 TO 640
IF X=320 THEN X=X+1
Y=175-30*FN Y((X - 320)/30)
PSET(X, Y), 15
NEXT X
Кораблики.
SCREEN 7
COLOR , 1
x = 30
y = 70
GOSUB 100
x = 130
GOSUB 100
x = 230
GOSUB 100
END
100 LINE (x, y)-(x + 60, y), 3
LINE -(x + 40, y + 10), 3
LINE -(x + 10, y + 10), 3
LINE -(x, y), 3
LINE (x + 25, y)-(x + 25, y - 55), 3
LINE (x + 25, y - 55)-(x + 35, y - 50), 4
LINE -(x + 25, y - 50), 4
LINE -(x + 25, y - 55), 4
PAINT (x + 3, y + 2), 3, 3
PAINT (x + 26, y - 51), 4, 4
CIRCLE (x + 25, y - 27), 25, 15.7, 4.7
RETURN
0 THEN CIRCLE (400, 85), 50, 5: PAINT (400, 80), 5 IF x PRINT x END " width="640"
Круги.
SCREEN 9
LINE (0, 175)-(640, 175), 15
LINE (320, 0)-(320, 350), 15
INPUT x
IF x 0 THEN CIRCLE (400, 85), 50, 5: PAINT (400, 80), 5
IF x
PRINT x
END
Кролики.
SCREEN 9
COLOR , 9
PSET (150, 175), 5
GOSUB 100
PSET (300, 175), 5
GOSUB 100
PSET (450, 175), 5
GOSUB 100
END
100 DRAW "c15 l50 e20 h15 e15 h15 g10 u15 r15 u20 l15 h5 u5 e5 u10 r30 h15 u15 f15"
DRAW " d15 e15 r15 g15 l15 d20 f25 d25 r5 d5 l5 g20 f20"
RETURN