Similar presentations:
Бейсик-256. Графические операторы
1.
Бейсик-256Гришина Елена Алексеевна,
учитель информатики МОУ Гимназия №1
г.о. Жуковский
2.
Бейсик-256Графические операторы:
1. Clg, color, plot
2. Circle
3. Line
4. Rect
5. Poly
2.
Переменные
1. Оператор присваивания
2. Print
3. Input, cls
1.
3.
4.
5.
Выбор
Безусловный переход
Повторения
3.
Бейсик-256Окно
вводавывода
текста
Окно для
ввода
команд
Окно
вывода
графики
Все команды (операторы) пишутся по-английски.
Каждая команда – на новой строке.
4.
Графические операторыCLG – очистка экрана
COLOR – выбор цвета.
Пример: сolor red
PLOT X,Y – печать точки с
координатами X,Y
Пример: plot 30, 40
5.
ЗаданиеНапишите программу, выводящую разными
цветами на экран точки созвездия
Большая Медведица. Их координаты:
1) 40, 90
2) 70, 70
3) 100, 70
4) 130, 70
5) 160, 80
6) 230,70
7) 220, 30
6.
Рисование окружностиCIRCLE X,Y,R – рисование окружности с
центром в точке X,Y и радиусом R.
Пример: circle 30, 40, 15
Поменяйте в программе
точки на круги с
радиусом 5 пикселей.
7.
Рисование линийline x1,y1,x2,y2 – рисование линии от точки
(x1, y1) до точки (x2, y2)
Пример: line 20, 40, 10, 30
Задание: соедините линиями точки-звёздочки в созвездии
Большая Медведица.
8.
ЗаданиеСоставьте программу рисования:
9.
Рисование прямоугольниковСколько параметров однозначно определяет
прямоугольник?
10.
Рисование прямоугольниковrect x,y,m,n - рисование прямоугольника,
где х, у – координаты левого верхнего угла,
m – длина, n - ширина.
Rect 60,40,200,80
260-60
120-40
11.
Напишите программу длярисования домика:
12.
ЗаданиеСчитая одну клетку равной 20 пикселям, создайте
программу рисования следующих прямоугольников:
13.
Рисование многоугольниковPOLY {x1,y1,x2,y2,…,xn,yn} – рисование
многоугольника с вершинами (x1,y1),
(x2,y2),…,(xn,yn).
poly {150, 100, 200, 150, 175, 150, 175, 200, 125, 200, 125, 150, 100, 150}
14.
Задание: создайте программу,рисующую флаг Гайаны
15.
Задание: создайте программу, рисующуюфлаг Сент-Винсента и Гренадин
Где находится это государство?
16.
Нарисовать узор17.
ПеременныеВ Скретче мы уже использовали переменные.
18.
ПеременныеНарисуйте круг, вписанный в квадрат:
clg
color blue
rect 0,0,140,140
color red
circle 70,70,70
Связаны ли между собой длина стороны квадрата и
радиус круга?
Как изменится программа, если длину стороны
увеличить в два раза?
19.
ПеременныеЭту же программу можно записать иначе:
Clg
А = 140
color blue
rect 0, 0, А, А
color red
А/2,70,70
А/2, А/2
circle 70,
Переменная –
поименованная
ячейка в памяти
компьютера
Использование переменных позволяет решать задачи в самом общем виде!
20.
Рассмотрим ещё более общий случайПоскольку местоположение круга связано с
местоположением квадрата, то введём ещё две
переменные – x и y – координаты верхнего левого угла
квадрата:
x=50
y=38
А=140
clg
x+A/2,y+A/2
?,?
color blue
rect 40,
х, y,20,
A, A,
A A
color red
circle 110,
x+A/2,y+A/2,A/2
circle
90, A/2
Меняя в программе значения x и y, проследите за изменением результата
на экране!
21.
Задание: используя переменныеx, y, r, напишите программу
рисования радуги
Алгоритм:
1. Закрасьте весь экран белым
цветом.
2. Нарисуйте 8 концентрических
кругов (имеющих общий центр – в
точке x=150, y=150), начиная с
внешнего: красный, оранжевый,
жёлтый, зелёный, голубой, синий,
фиолетовый и белый, каждый раз
уменьшая радиус на 5. Радиус
красного круга r=100.
3. Нарисуйте прямоугольник белого цвета,
закрывающий нижнюю часть кругов.
Начало программы:
X = 150
Y = 150
R = 100
22.
ПроверкаПоменяйте значения переменных X, Y, R.
Сохранилось ли изображение радуги или
«испортилось»?
23.
Программа рисования радугиcolor white
rect 0,0,300,300
R=100
x=150
y=150
color red
circle x,y,R
color orange
circle x,y,R-5
color yellow
circle x,y,R-10
color green
circle x,y,R-15
color blue
circle x,y,R-20
color darkblue
circle x,y,R-25
color darkpurple
circle x,y,R-30
color white
circle x,y,R-35
Rect 0,у,300,300-у
Закрашивание экрана в белый цвет
Задание координат центра кругов
и радиуса большего круга
Рисование красного круга
Рисование оранжевого круга
Рисование жёлтого круга
Рисование зелёного круга
Рисование голубого круга
Рисование синего круга
Рисование фиолетового круга
Рисование белого круга и белого
прямоугольника
24.
ЗаданиеСоздайте программу рисования следующего
рисунка:
X1,Y1 - ?
1. Обобщите программу для круга произвольного радиуса
2. Обобщите программу для произвольных координат центра круга.
25.
Решениеclg
r = 40
x = 79
y = 88
color red
circle x,y,r
color blue
rect x+r,y-r,2*r,2*r
r – радиус круга
х – абсцисса центра круга
у – ордината центра круга
26.
ЗаданиеСоздайте программу рисования:
а) фрагмента узора;
б) фрагмента шахматной доски.
х
х
у
у
R
А
27.
ЗаданиеСоставить программу рисования следующего рисунка с
использованием переменных x,y,R, содержащих
значения координат центра жёлтого круга и его радиуса.
28.
Решениеx=100
y=100
r=100
color yellow
circle x, y, r
color cyan
circle x, y-r/2, r/2
circle x, y+r/2, r/2
29.
ЗаданиеСоздайте программу рисования, используя
переменные x,y,R:
а)
б)
30.
Решениеclg
x=130
y=120
r=60
color green
rect x-2*r,y-2*r,4*r,4*r
color purple
circle x-r,y-r,r
circle x+r,y-r,r
circle x-r,y+r,r
circle x+r,y+r,r
color yellow
rect x-r,y-r,2*r,2*r
clg
x=130
y=120
r=60
color blue
circle x-r,y-r,r
circle x+r,y-r,r
circle x-r,y+r,r
circle x+r,y+r,r
color purple
circle x,y,r
31.
Ввод переменных с экрана во времявыполнения программы
Cls – очистка текстового экрана
INPUT [“строка–подсказка”] , имя переменной
Пример:
Введённое
значение
попадает в
переменную х
Вводит
пользователь
и нажимает
Enter
Добавьте
команды ввода
с экрана значений
координат в
точки
левого верхнего
Это
равносильно
команде
присваивания
программе
x=7.
угла квадрата.
32.
ЗаданиеНаписать программу построения фигуры,
изображённой на рисунке, которая запрашивает с
клавиатуры координаты левого верхнего угла (х, у) и
длину А стороны малого квадрата.
В программе использовать только команды line.
33.
Решениеinput «x=», х
input «у=», у
input «а=», а
line x,y,x+2*a,y
line x,y+2*a,x+2*a,y
line x,y+2*a,x,y
line x+2*a,y+2*a,x+2*a,y
line x,y+2*a,x+2*a,y+2*a
line x,y,x+2*a,y+2*a
line x,y+a,x+2*a,y+a
line x+a,y,x+a,y+2*a
line x,y+a,x+a,y
line x+a,y,x+2*a,y+a
line x,y+a,x+a,y+2*a
line x+a,y+2*a,x+2*a,y+a
34.
ЗаданиеНаписать программу построения фигуры,
изображённой на рисунке, которая запрашивает с
клавиатуры координаты левой верхней точки квадрата
– х и у, а также длину А стороны малых квадратов.
35.
Условный операторПолное
ветвление
Условный оператор:
if условие then
команды1
else
команды2
end if
if x>50 then
rect 0,0,x,x
else
circle 150,150,x
end if
Условие:
Равно
Не равно
Больше
Меньше
Больше или равно
Меньше или равно
=
<>
>
<
>=
<=
36.
Неполное ветвлениеВ неполном ветвлении весь оператор записывается
в одну строку.
If x<y then rect 0,0,x,x
Если команд несколько, то они разделяются
двоеточием.
If x<y then color red: rect 0,0,x,x
37.
ЗаданиеСоздайте программу, которая предлагает ввести
одно из двух чисел – 1 или 2. Если введено 1, то
программа рисует солнце. Если 2 – месяц.
2
38.
clginput "нажмите 1 или 2: ", x
if x=1 then
color cyan
rect 0,0,300,300
color yellow
circle 150,150,50
else
color blue
rect 0,0,300,300
color yellow
circle 75,100,5
color blue
circle 70,100,5
end if
Решение:
Ввод значения
переменной х
Рисование голубого
неба
Рисование жёлтого
солнца
Рисование
синего неба
Рисование
жёлтого круга
Рисование
синего круга
39.
ЗаданиеНарисуйте светофор.
Пусть программа запрашивает одно из
чисел – 1, 2 или 3.
Если введено 1, то зажигается
красный свет.
Если введено 2, то – жёлтый.
Если 3, то – зелёный.
40.
Решение:clg
Рисование светофора
rect 50,50,50,120
чёрным цветом
rect 70,170,5,100
color grey
circle 75,80,5
Рисование серых
окошек светофора
circle 75,100,5
circle 75,120,5
Ввод значения
input "нажмите 1, 2 или 3: ", x
переменной х
if x=1 then color red: circle 75,80,5
if x=2 then color yellow: circle 75,100,5
if x=3 then color green: circle 75,120,5
Рисование
красного круга
Рисование
жёлтого круга
Рисование
зелёного круга
41.
Организация повторенийНа дворе стоит забор,
А на нём мочало.
Эта песня хороша –
Начинай сначала!
В Бейсик-256 тоже есть команда,
позволяющая вернуться к предыдущим
командам.
42.
Оператор безусловного переходаgoto имя метки
Например,
метка
команда1
a: команда2
команда3
команда4
goto a
43.
Вспомним задание:Создайте программу, которая предлагает ввести
одно из двух чисел – 1 или 2. Если введено 1, то
программа рисует солнце. Если 2 – месяц.
2
44.
clginput "нажмите 1 или 2: ", x
if x=1 then
color cyan
rect 0,0,300,300
color yellow
circle 150,150,50
else
color blue
rect 0,0,300,300
color yellow
circle 75,100,5
color blue
circle 70,100,5
end if
Как обеспечить
смену дня и ночи
без перезапуска
программы?
45.
А: input "нажмите 1 или 2: ", xclg
if x=1 then
color cyan
rect 0,0,300,300
color yellow
circle 150,150,50
else
color blue
rect 0,0,300,300
color yellow
circle 75,100,5
color blue
circle 70,100,5
end if
goto A
метка
Очистка
экрана
ссылка
на метку
46.
Заданиеclg
rect 50,50,50,120программу
Изменить
для
rect 70,170,5,100
светофора
так,
чтобы
свет
в
нём
a: color grey
переключался
без перезапуска
circle 75,80,5
circle 75,100,5
программы.
circle 75,120,5
input "нажмите 1, 2 или 3: ", x
if x=1 then color red: circle 75,80,5
if x=2 then color yellow: circle 75,100,5
if x=3 then color green: circle 75,120,5
pause 1
goto a
47.
Генератор случайных чиселЧтобы получить случайное число из диапазона [0;b),
нужно использовать формулу: n = rand * b
Например,
r=rand*300
circle (150,150,r)
48.
ЗаданиеИспользуя функцию получения случайных чисел,
составить программу бесконечного заполнения экрана
точками.
Заполнение
экрана
«Броуновское
движение»
Паутина
49.
РешениеИспользуя функцию получения случайных чисел,
составить программу заполнения экрана точками.
clg
a:plot rand*300, rand*300
goto a
Или: clg
a: x=rand*300
y=rand*300
plot x,y
goto a
a: x=rand*300
y=rand*300
plot x,y
pause 0.1
clg
goto a
50.
Программа к задаче«Паутина»
clg
x1=rand*300
y1=rand*300
circle x1,y1,2
a:x2=rand*300
y2=rand*300
circle x2,y2,2
line x1,y1,x2,y2
x1=x2
y1=y2
goto a
Рисуем
1-ю точку
Рисуем
2-ю точку
Рисуем линию
между ними
Делаем 2-ю
точку первой
51.
ЗаданиеСоставить программу заполнения экрана цветными
точками по следующему правилу: если точка попадает в
верхнюю часть экрана, она – красная, если в нижнюю –
зелёная.
Демонстрация
результата
52.
Решениеclg
a:x=rand*300
y=rand*300
If y<150 then
color red
else
color green
end if
plot x,y
goto a
53.
Задача*Задание: составить программу заполнения экрана
цветными точками по следующему правилу: если точка
попадает ниже диагонали экрана, то она – красная,
если выше – зелёная.
clg
a:x=rand*300
y=rand*300
If y<x then
color red
else
color green
end if
plot x,y
goto a
54.
**Задача
Задание: составить программу заполнения экрана
цветными точками по следующему правилу: если точка
попадает в верхнюю левую четверть экрана, то она –
красная, иначе – зелёная.
clg
a:x=rand*300
y=rand*300
If x<150 and y<150 then
color red
else
color green
Сложное
end if
условие
plot x,y
goto a
55.
Сложные условияСложные условия образуются из простых с помощью
логических операций:
and (И) – одновременное выполнение условий
or (ИЛИ) – выполнение одного из условий.
Пример:
x>10 and x<70
x<10 or x>70
56.
ЗаданиеСоставить программу заполнения экрана
разноцветными точками по следующему правилу:
если точка попадает в левую треть экрана, она –
красного цвета;
если в среднюю – жёлтого;
если в правую – зелёного.
57.
ЗаданиеСоставить программу заполнения
экрана разноцветными точками по
следующему образцу:
точка окрашивается в красный цвет,
если она попадает в верхний левый
или в нижний правый квадрат, иначе
– в жёлтый цвет.
проверка
if x<150 and y<150 or
x>150 and y>150
58.
Оператор присваиванияпеременная = число или выражение
Например, x=5
x=x+1
X
Y
65
12
81
9
y=2*x
y=(x+y)/2
y = у^2
Знак
деления
Знак
возведения в
степень
Ячейка в
памяти
компьютера
59.
ЗаданиеЧто будет на экране в результате
выполнения программы:
x=10
y=150
r=10
h=25
a: circle x,y,r
pause 0.1
x=x+h
goto a
Что изменится?
Добавьте в программу ввод
значений переменных r и h с
экрана.
60.
ЗадачаЧто надо изменить в программе, чтобы программа
останавливалась, нарисовав последний круг на
экране?
input “r=“,r
x=10
input “h=“,h
y=150
b:
x=10
input “r=“,r
y=150
input
a:
clg “h=“,h
circle
x,y,rx,y,r
a: circle
pause
Pause0.1
0.1
x=x+h
x=x+h
if x>300-r then goto b
if x<300-r
then goto a
goto
a
goto a
1) Что надо изменить
в программе, чтобы
круг «побежал»?
2) Как сделать так,
чтобы круг, добежав
до конца экрана,
снова оказывался в
начале?
Условие остановки
61.
Задания1. Составьте программу рисования 10
квадратов, расположенных горизонтально:
2. Составьте программу рисования 10 кругов,
расположенных друг под другом.
3. Составьте программу рисования 10
квадратов, расположенных так, чтобы
правый нижний угол предыдущего
совпадал с левым верхним углом
следующего:
62.
ПовторенияПомните задачу о рисовании 10 одинаковых кругов,
расположенных горизонтально?
Решить её можно ещё одним способом – с помощью
команды, аналогичной блоку повторить в скретче.
63.
ЦиклПовторяющиеся действия называются
циклическими (от латинского слова cyclus,
означающего круг).
Оператор цикла:
for переменная = число1 to число2 [step число3 ]
тело цикла
next переменная
Группа
Шаг изменения
операторов
Пример:
Проверка: k<=10?
X=10
For k=1 to 10
circle x,100,10
x=x+25
Pause 0.1
next k
Print “конец”
переменной. Если
отсутствует, то step 1
Счётчик числа повторений
или переменная цикла
Рисование круга
Сдвиг по координате х
Добавим ещё одну команду
!
Переход к следующему значению k (k=k+1)
и переход к оператору for
64.
Задание1.
Нарисуйте, используя оператор цикла и паузу,
10 концентрических окружностей.
2.
Измените программу так, чтобы каждый раз,
когда рисуется следующая окружность,
предыдущая стиралась (т.е. рисовалась цветом
фона).
3.
Создайте программу заполнения экрана
точками со случайными координатами.
65.
ЗаданиеИспользуя оператор цикла, вывести на экран:
1) числа от 1 до 10
2) нечётные числа от 1 до 31
3) числа от 20 до 1.
66.
Оператор цикла с предусловиемЕсли число повторений в теле
цикла заранее неизвестно, то
используют оператор
While УСЛОВИЕ
Тело цикла
End while
Например, требуется нарисовать
на экране максимальное число
квадратов с заданной стороной x.
67.
РешениеНарисовать на экране максимальное число квадратов с
заданной стороной x.
clg
a=30
x=0
х=а
while x<300-a
circle
х,x,а
rect x,x,a,a
x=x+a2*а
end while
Задание: нарисуйте на экране максимальное
число кругов с заданным радиусом х.
Длина
стороны
квадрата
Начальная
координата
верхнего
левого угла
квадрата
Сдвиг
координаты
на длину
стороны а
68.
ЗаданиеИзобразите на экране расходящиеся концентрические
круги (с эффектом анимации).
clg
color white
rect 0,0,300,300
a=5
x=150
while a<150
circle x,x,a
pause 0.1
a=a+5
end while
Радиус
первого круга
Координата
центра кругов
Рисование круга
Увеличение
радиуса круга
69.
Вывод результатов на экран(работа с текстовым окном)
Оператор вывода значения переменной:
print имя переменной или выражение +
«текст»
Например:
х=5
y=7
57
текст
print "ответ: "
Что будет на экране,
если из текста
убрать скобки?
print «сумма="+(x+y)
print «произведение="+x*y
выражение
текст
Поставьте в конце строк с оператором print точку с запятой. Что изменилось?
70.
ЗаданиеСоставить программу, выводящую на экран
значение выражения:
5(x - 3)3 + 6(y + 2)2 при x = 0,5 и у = -0,5
Дробная часть
отделяется точкой!
x=0.5
y=-0.5
print 5*(x-3)^3+6*(y+2)^2
или
x=0.5
y=-0.5
z=5*(x-3)^3+6*(y+2)^2
print z
71.
ЗаданиеСоставить программу, выводящую на экран
значение выражения:
а) (x – 3y)2 + (6y – 1)2 при x = -3,2 и у = 1,4
б)
в)
при x = 1,5 и y = 2,5
при x = 4 и у = -1,3
а) 109,52; б) -81; в) 0,14311
72.
ЗаданиеСоздайте программу, выводящую на экран значение
выражения при:
а) x = 2,5
y=-3.2
б) x = -2,5
y=3.2
2.554762 и -5.240909
73.
ЗаданиеСоздайте программу, которая:
1) запрашивает с экрана длину стороны
квадрата и выводит на экран его
периметр и площадь;
2) запрашивает с экрана длины сторон
прямоугольника и выводит на экран его
периметр и площадь;
3) запрашивает с экрана два числа и
выводит на экран их сумму и разность;
4) запрашивает с экрана год рожденья и
выводит на экран возраст;
5) запрашивает с экрана число и выводит
на экран его квадрат и куб (2-ю и 3-ю
степень).