Построение различных изображений в разных окнах
rem наложение окон, внутри которых различные рисунки
rem первое окно – график тригонометрической функции y=a*sin(x)
rem второе окно – круговая равномерная гистограмма
rem использование нескольких операторов view и window
screen 12 ‘ вход в графический экран
flag=2 ‘ flag – признак количества одновременно высвеченных окон
13 view (100,50)-(550,300), 7, 4
locate 1,10: print “задайте амплитудное значение а”
locate 2,20: input “a=”a
locate 1,10: print “ ” ‘ удаление сообщений о вводе значения а
locate 2,20: print “ ”
pi=3.141592
x0=0
xk=4*pi ‘ строим график при изменении x от 0 до 4*pi
h=pi/64 ‘ шаг изменения x
window (0,-a)-(xk,a) ‘ оператор window предназначен для преобразования истинных координат точек в координаты активного окна, заданного оператором view
line(0,0)-(xk,0),3 ‘ горизонтальная ось OX
line(0.05,-a)-(0.05,a), 3 ‘ вертикальная ось OY
for x=x0 to xk step h ‘ цикл изменения аргумента – построения графика
y=a*sin(x) ‘ вычисление значений функции
pset (x,y), 4 ‘ построение графика
next x
delay 3
if flag=1 then goto kon
view (200,200)-(600,600) ‘ построение второго окна
window (-100,-100)-(100,100) ‘ преобразование координат
pi=3.141592
alf1=pi/6
for alf=0 to 2*pi step pi/6
circle (0,0), 75,5, -alf, -alf1 ‘ построение окружности во втором окне
alf1=alf
next alf
delay 3
cls
delay 3
view(199,199)-(601,401),0
if flag=2 then flag=1 goto 13 ‘ передача управления на восстановление изображения в 1-м окне
end if
kon:
locate 22, 30: print “конец”
stop
Построение движущихся картинок. Анимация
|
|
rem построение программы сложной структуры с использованием меню, состоящего из двух пунктов.
rem первый пункт меню – закрашивание прямоугольных областей по заданному маршруту. Второй пункт меню – “движение” планет вокруг Солнца в разные стороны
cls
rem определение функциональных клавиш
key 5, “закрас.”
key 6, “дв.пл.”
key 7, “выход”
key on
rem форм-е группы операторов определяющих прерывание от нажатия функциональных клавиш
on key (5) gosub f5
key (5) on
on key (6) gosub f6
key (6) on
on key (7) gosub f7
key (7) on
rem формирование пунктов меню внутри цикла зависания
c$=””
do ‘ меню должно быть внутри цикла зависания, так как в противном случае эти пункты не высвечиваются, если в п/п был оператор cls
13 locate 4,25:print “меню”
locate 5,10:print “1. закрашивание прямоугольных областей”
locate 6,10:print “игрового поля по заданному маршруту – F5”
locate 7,10:print “2. движение планет вокруг солнца – F6”
locate 10,10:print “3. выход – F7”
locate 20,10:print “для продолжения программы нажмите одну из клавиш”
rem “зависание программы”
c$=inkey$
loop until c$<>””
999 key off
cls
locate 10,10:print “работа завершена”
stop
f5:
print “задайте координаты прямоугольной игровой области (в пикселях)”
print “левый верхний угол: 200<=xa<=300; 200<=ya<=300”
|
|
input “xa=”xa
input “ya=”ya
print “правый верхний угол: 500<=xb<=600; 400<=ya<=450”
input “xb=”xb
input “yb=”yb
print “кол-во прям-ков по горизонтали: 5<=n<=10”
print “кол-во прям-ков по вертикали: 3<=m<=7”
input “n=”n
input “m=”m
hx=(xb-xa)/n
hy=(yb-ya)/m
nm=n*m
dim nachix(nm),nachy(nm),konx(nm),kony(nm) ‘ массивы координат для построения игрового поля в виде прямоугольников
dim x(nm),y(nm)
k=0
for i=1 to m
for j=1 to n
k=k+1
nachx(k)=(j-1)*hx+xa
nachy(k)=(i-1)*hy+ya
konx(k)=j*hx+xa
kony(k)=i*hy+ya
next j
next i
gosub и
print “схема расположения прямоугольников”
l=0
for i=1 to m
for j=1 to n
l=l+1
if l<=9 then print “ “;l;” ”
else
print l;” “;
end if
next j
next i
print:print
print “задайте маршрут закраски”
print “от 1 до “;k;” через пробел”
line input marshrut$
gosub с
gosub d
screen 0
width 80
return ‘ возврат в меню
b:
rem построение игрового поля
cls
screen 12
for i=1 to k
line(nachx(i), nachy(i))-(konx(i),kony(i)), 3, b
line(nachx(i)+4, nachy(i)+4)-( konx(i)-4, kony(i)-4), 10, b
next i
return ‘ возврат в п/п f5
c:
rem формирование ариф. значения маршрута закраски
dim w$(k), lw(k), marshrut(k)
for i=1 to k
w$(i)=” “
lw(i)=1
next i
lm=len(marshrut$, i, 1)
if le$=” “ then
kz=kz+1
else
w$(kz)=w$(kz)+le$
lw(kz)=lw(kz)+1
end if
next i
for i=1 to kz
w$(i)=right$(w$(i),lw(i)-1)
lw(i)=lw(i)-1
marshrut1(i)=val(w$(i))
next i
print:print “konec subroutine c”
return ‘ возврат в п/п f5
d:
rem закраска по маршруту
|
|
for i=1 to kz
j= marshrut1(i)
line(nachx(j)+4, nachy(j)+4)-( konx(j)-4, kony(j)-4), 4, bf
if i>1 then
j1= marshrut1(i-1)
line(nachx(j1)+4, nachy(j1)+4)-( konx(j1)-4, kony(j1)-4), 0, bf
line(nachx(j1)+4, nachy(j1)+4)-( konx(j1)-4, kony(j1)-4), 10, b
delay 0.15
end if
next i
print:print “konec subroutine d”
delay 3
return ‘ возврат в п/п f5
f6:
rem п/п движение планет
cls
print “задайте радиусы вращения планет: 50<=R1<=100; 120<=R2<=200”
input “R1=”R1
input “R2=”R2
screen 12
print “движение длиться 3 оборота дальней планеты”
circle (320,240),30,14
pi=3.141592
fi2=2*pi
for fi=0 to 6*pi step pi/16 ‘ три оборота дальней планеты
x2=R2*cos(fi)+320
y2=-R2*sin(fi)+240
x1=R1*cos(fi2)+320
y2=-R1*sin(fi2)+240
circle(x2,y2), 5, 9
circle(x1,y1), 3, 11
delay 0.2
fi2=fi2-pi/32
circle(x2,y2), 5, 0
circle(x1,y1), 3, 0
next fi
locate 22, 35:print “конец”
delay 2
screen 0
width 80
return ‘ возврат в меню
f7:
rem п/п выход из программы
cls
for i=1 to 10
locate 15,30:print “работа программы завершена”
delay 0.5
locate 15,30:print “”
delay 0.25
next i
return 999
ЛИТЕРАТУРА
1. Петров А.В. (под редакцией). Вычислительная техника и программирование. Учебное пособие. М.: Высшая школа, 1998. (1990г.);
2. Солодовников А.Д. Доброхотов В.А. Программирование на Бейсике. Тексты лекций. Часть 1. М.: МГИ, 1986, Часть 2. М.: МГИ 1988;
3. Справочник по программированию на языке Бейсик для профессиональных ЭВМ. М.: Машиностроение, 1996;
4. Солодовников А.Д. Программирование на Турбо Бейсике. Тексты лекций. Часть 1. М.: МГГУ, 1996;
|
|
5. Солодовников А.Д. Оганесян А.С. Программирование на Турбо Бейсике. Часть 2. М.: МГГУ, 1996;
6. Оганесян А.С. Солодовников А.Д. методические указания по выполнению курсовой работы по дисциплине «Информатика» для студентов экономических и горных специальностей. Учебное пособие. М.: МГГУ, 1998;
7. TURBO-BASIC. Интеркомпьютер. М.,1990, №3-№6;
8. Торхов В.Л. Турбо Бейсик. Справочное руководство М.: Гендальф, 1993;
9. Торхов В.Л. (под редакцией). Turbo basic. Практикум. Сборник задач. М.: НПО Спектр, 1994;
10. Алиев В.К. Языки BASIC м.: «СОЛОН – Р», 2001.
Дата добавления: 2021-11-30; просмотров: 14; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!