Студопедия
rus | ua | other

Home Random lecture






Построение графика функции.


Date: 2015-10-07; view: 340.


Удобным средством для изучения математики является наглядное представление графиков функций на экране компьютера; небольшие корректировки позволяют представить достаточно сложные функции, которые не всегда легко представить на бумаге.

Для построения графика функции y=f(x) в заданном интервале изменения х и с заданным шагом будем ставить точку на экране соответствующую точке графика. Будем выбирать масштаб изображения М (в процентах от 1 до 100).

При составлении программы нужно выполнить следующее:

- построить систему координат, приняв за ее центр - центр экрана;

- определить связь экранных координат с координатами графика и масштабом;

- определить шаг Н изменения х для перехода от одной точки к другой

- выбрать вид функции.

Пример: построение графика функции у=sin(x).

Х

1)

Y     (x,y) YG X XG
Выбираем центр системы координат Х0=320 Y0=175

2) Связываем экранные координаты (X,Y) с координатами графика (XG,YG)

X=X0+XG*M

Y=Y0-YG*M

 

Y

3) Шаг изменения Н координаты Х связан с масштабом Н=1/М

4) Вид функции Y=SIN(X)

 

Примерный вид программы

CLS:SCREEN 9

INPUT”Введите масштаб графика (в процентах от 1 до 100)”;M

X0=320:Y0=175:H=1/M

LINE(0,Y0)-(640,Y0),5

LINE(X0,0)-(X0,350),5

FOR XG=-3.14 TO 3.14 STEP H

YG=SIN(X)

X=X0+XG*M

Y=Y0-YG*M

PSET(X,Y),7

NEXT XG

 

Задачи для самостоятельной работы

1) сопроводить оси системы координат стрелками и наименованиями;

2) построить графики функций y=cos(x), y=2sin(3x), y=tg(x);

3) предусмотреть выбор функции.

 

6.3 Простейший графический редактор.

Операторы графики строят изображение по заранее предопределенным координатам. Если вместо этого мы сможем произвольно управлять координатами точки с клавиатуры в режиме диалога, то получится своеобразная модель графического редактора.

В графическом режиме 9 – разрешение 640х350. Графический курсор, который используется в качестве "карандаша", представляет собой точку (пиксель), окрашенную текущим цветом. Курсор с помощью клавиш управления можно перемещать по вертикали и горизонтали, за один шаг на одну точку.

Начальными координатами острия "карандаша" примем центр экрана: Х=320, У=175. Выберем 4 произвольных клавиши для управления перемещением, например: G - вниз, T- вверх, F - влево, H - вправо. Состояние клавиатуры будем запрашивать с помощью функции INKEY$. Завершение работы – нажатие клавиши "Е".

Программа "карандаш".

CLS:X=320:Y=175

5 PSET(X,Y),1

10 A$=INKEY$ T

IF A$="" THEN 10

IF A$="G" THEN Y=Y+1 F H

IF A$="T" THEN Y=Y-1

IF A$="F" THEN X=X-1 G

IF A$="H" THEN X=X+1

IF A$<>"E" THEN 5

END

Графический редактор должен обладать режимами рисования фигур (линия, прямоугольник, окружность), стирания и нейтрального перемещения. Выберем клавиши активизации режимов: "1" - рисовать, "0" - стирать, "9" - переходить, "3" - толстая линия, "4" - двойная линия, "Р" - прямоугольник, "К" – круг, "Z" – закрашивание. Так как компьютер должен помнить в каком режиме он находится, введем дополнительную переменную С$, хранящую символ текущего режима (начальный "9"). Будем менять содержание С$ при нажатии управляющих клавиш. В режиме стирания уничтожаем пройденную точку. В режиме нейтрального перехода сохраняем цвет.

Программа: "графический редактор"

CLS:X=320:Y=175

5 PSET(X,Y),1

10 A$=INKEY$

IF A$="" THEN 10

IF C$="0" THEN PSET(X,Y),0

IF C$="1" THEN PSET(X,Y),C

IF C$="3" THEN PSET(X+1,Y+1),1

IF C$="4" THEN PSET(X+2,Y+2),1

IF A$="0" OR A$="1" OR A$="9" OR A$="3" OR A$="4" OR A$="P" OR A$="K" OR

A$="Z" THEN C$=A$

IF A$="G" THEN Y=Y+1

IF A$="T" THEN Y=Y-1

IF A$="F" THEN X=X-1

IF A$="H" THEN X=X+1

IF A$="P" THEN LINE(X-10,Y-10)-(X+10,Y+10),1,BF

IF A$="K" THEN CIRCLE(X,Y),30,1

IF A$="Z" THEN PAINT(X+1,Y+1),1,1

IF A$<>"E" THEN 5

END

Задания для самостоятельной работы.

1. Вывести информацию о клавишах управления на экран, в нижнюю строку.

2. Предусмотреть выбор цвета линии.

3. Предусмотреть выбор размеров фигур, установив второй курсор.

 

6.4 Моделирование хода часов.

Применение знаний из геометрии требует задача моделирования хода часов. Ниже будет рассмотрена модель движения секундной стрелки часов.

Один конец секундной стрелки неподвижен и находится в центре часов, а другой обращается вокруг него. Его координаты изменяются следующим образом:

X=R*COS(I)+320

Y=R*SIN(I)+175

Значение переменной I меняется с шагом 1/60 окружности от верхнего положения –PI/2 до полного оборота 44*PI/30. Для регулировки хода часов вводим цикл задержки.

 

Программа: "ход секундной стрелки".

CLS: PI=3.142

FOR I=-PI/2 TO 44*PI/30 STEP PI/30

LINE(320,175)-(X,Y),0

X=80*COS(I)+320

Y=80*SIN(I)+175

LINE(320,175)-(X,Y),1

FOR T=1 TO 2000: NEXT T

NEXT I

Несложно дополнить программу минутной и часовой стрелкой.

Программа: механические часы.

CLS: PI=3.142

FOR I2=-PI/2 TO 8*PI/6 STEP PI/6

LINE(320,175)-(X2,Y2),0

X2=50*COS(I2)*320

Y2=50*SIN(I2)+175

FOR I1=-PI/2 TO 44*PI/30 STEP PI/30

LINE(320,175)-(X1,Y1),0

X1=50*COS(I1)*320

Y1=50*SIN(I1)+175

FOR I=-PI/2 TO 44*PI/30 STEP PI/30

LINE(320,175)-(X,Y),0

LINE(320,175)-(X1,Y1),2

LINE(320,175)-(X2,Y2),3

X=80*COS(I)+320

Y=80*SIN(I)+175

LINE(320,175)-(X,Y),1

FOR T=1 TO 2000: NEXT T

NEXT I

NEXT I1

NEXT I2

 

Задания для самостоятельной работы.

1. Расставить метки и цифры (12, 3, 6, 9) на циферблате.

2. Изобразить контуры часов.

3. Снабдить часы функциями установки времени.

4. Смоделировать будильник.

6.5 Программирование справочных систем.

Ряд задач требует организации вывода каких-либо справочных данных. Например: математические формулы, физические законы, исторические даты и т.п. При этом содержание справочного материала определяется меню – на экран выводится несколько пунктов в которых можно производить выбор. Выбор пункта производится перемещением курсора с последующим нажатием клавиши {Enter}. Возврат в меню производится по нажатию пробела.

Рассмотрим программу, которая позволяет получить информацию о законах Ньютона. Она состоит из меню и трех блоков, содержащих формулировки законов Ньютона. Выбрав соответствующий пункт меню пользователь получает справку об одном из законов. Для окончания работы предусмотрен пункт меню "Выход".

При составлении программы полезно использовать следующую схему:

       
   
МЕНЮ
 
 
ВЫБОР ИНФОРМАЦИИ: УСТАНОВИТЬ КУРСОР НА НОМЕР БЛОКА И НАЖАТЬ КЛАВИШУ {Enter}
 
 

 


Рассмотрим основные элементы программы.

"Заставка"

CLS

?"ЗАКОНЫ НЬЮТОНА"

?"СПРАВОЧНАЯ СИСТЕМА"

?"НАЖМИТЕ ПРОБЕЛ"

10 A$= INKEY$

IF A$<>" " THEN 10

"Меню"

CLS

?"МЕНЮ"

……………

 

6.6 Программирование игр.

Диалоговый режим работы позволяет реализовывать игровые программы, где компьютер генерирует случайные числа, необходимы практически в любой игре, а также может выступать в роли партнера. В качестве вариантов игр, легко поддающихся программированию, такие как "Морской бой", "Быки и коровы", "Бросание костей". Чтобы избежать громоздких программ, условия некоторых игр упрощаются по сравнению с существующими правилами.

В качестве примера рассмотрим реализацию игры "Морской бой". Игра происходит между двумя участниками, один из которых компьютер, на игровом поле 5х5 клеток. Каждый из участников расставляет на поле 5 одноклеточных катеров (катера могут касаться друг друга). При попадании в катер при очередном ходе он считается уничтоженным. Побеждает уничтоживший первым катера противника. Если участник во время очередного хода уничтожил катер противника, то он ходит еще раз. Компьютер расставляет катера случайным образом. Партнер вводит координаты катеров с клавиатуры.

Программа состоит из трех блоков:

1) заставка: название игры, авторы, краткая информация о правилах игры;

2) Игровое поле

  ВВЕДИТЕ КООРДИНАТЫ ДЛЯ БОМБОМЕТАНИЯ: Х: У:     БРАВО АДМИРАЛ! ВЫ ПОПАЛИ!   ПРОДОЛЖИТЬ БАТАЛИЮ (Д/Н)?

 
 


Вводятся координаты 5 катеров и они выставляются на игровое поле. Первый ход делает компьютер. В месте выстрела на игровом поле ставится кружок. По нажатию клавиши {Enter} игровое поле очищается для Вашего выстрела, а в правом верхнем углу запрос о вводимых координатах. В случае попадания на экране появляется надпись "Попал!", в случае промаха "Мимо". Игра заканчивается после того как выявляется победитель.

3) Итоги игры: попадание с 10 выстрелов –присуждается орден; с 15 – медаль; с 20 –похвала. Предлагается повторная игра.

Рассмотрим основные элементы программы.

"Координатная сетка"

FOR I=1 TO 6

LINE(20*I,20)-(20*I,120),2

LINE(20,20*I)-(120,20*I),2

NEXT I

"Установка катеров компьютером"

RANDOMIZE TIMER

DIM A(4,4)

FOR I=0 TO 4

FOR J=0 TO 4

A(I,J)=INT(RND+0.5)

NEXT J,I

"Ввод координат катеров играющего и проверка попадания"

INPUT "X=";X

INPUT "Y=";Y

IF A(X,Y)=1 THEN 10

?"Мимо"

CIRCLE(20*X+10,20*Y+10),3,3

10 ?"Попал"

LINE(20*X,20*Y)-(20*X+20,20*Y+20),2

 

Задания для самостоятельной работы.

1. Создать поле 10х10, выставлять 10 кораблей.

2. Создать второе поле, где будет отражаться расположение катеров противника.

3. Расставлять один четырехклеточный, два трехклеточных, три двухклеточных и четыре одноклеточных катера. Добиться того чтобы корабли при расстановке не касались друг друга.


<== previous lecture | next lecture ==>
Практика программирования. | Звук и музыка.
lektsiopedia.org - 2013 год. | Page generation: 4.168 s.