Лекции.Орг
 

Категории:


Как ухаживать за кактусами в домашних условиях, цветение: Для кого-то, это странное «колючее» растение, к тому же плохо растет в домашних условиях...


Деформации и разрушения дорожных одежд и покрытий: Деформации и разрушения могут быть только покрытий и всей до­рожной одежды в целом. К первым относит...


Макетные упражнения: Макет выполняется в масштабе 1:50, 1:100, 1:200 на подрамнике...

ГРАФИЧЕСКИМ И ПРОГРАММНЫМ СПОСОБАМИ



ПО ТЕМЕ «ГРАФИКА»

Тема курсовой работы :

«Разработка в среде Turbo Pascal программы построения графика функций».

ПОСТАНОВКА ЗАДАЧИ

Разработать с использованием процедур и функций из стандартного модуля Graph программу, обеспечивающую вывод графика функции

F(x) = a*cos(b*x) и осей координат.

Исходными данными являются переменные а,b и x, значения которых задаются вводом и могут лежать в любом интервале допустимых значений. В результате выполнения программы получим график функции и оси координат.

 


Укрупненная схема алгоритма

 

Детализация укрупненной схемы алгоритма

В программе решается 3 подзадачи:

  1. Ввод данных в графическом режиме.
  2. Регистрация внешних процедур и инициализация графического режима
  3. Установка области экрана и начальных значений для рисования графика функции F(x).

РАЗРАБОТКА ПРОГРАММЫ

НА ЯЗЫКЕ PASCAL

Программа начинается с подключения стандартных модулей CRT,GRAРH: Uses graph, crt;

Затем объявляются все переменные, используемые в программе: переменные целого типа:

Font_litt, font_trip- являются идентификаторами шрифтов;

Ox, Oy- используются для задания начала осей координат;

X1, Y1, X2, Y2 - используются для задания области экрана;

переменные вещественного типа:

Ax, Ay - используются для задания координаты точки А;

Dx - шаг изменения аргумента;

X_min, X_max - область изменения аргумента;

Y_min, Y_max, Y_0 - область изменения функции;

Mx, My – используются для задания масштаба по осям;

StepLineX - шаг линии;

a, b - параметры графики;

переменная типа строка stl.

Опишем их в соответствующем разделе:

Var

Font_litt, font_trip: integer;

Ox, Oy: integer;

Ax, Ay: real;

Dx: real;

X_min, X_max: real;

Y_min, Y_max, Y_0: real;

X1, Y1, X2, Y2: integer;

Mx, My: real;

StepLineX: real;

a, b: real; 

stl: string;

 

Регистрация внешних процедур

После объявления переменных следует объявление процедур и функций, используемых в программе: litt, trip, egavga - внешние процедуры файлов шрифта и процедура файла видеодрайвера соответственно.

PROCEDURE litt;external;.

PROCEDURE trip;external;

PROCEDURE egavga;external;


Функция GetF возвращает значение F(x).

FUNCTION GetF(const x: real): real;

BEGIN

GetF:=a*cos(b*x);

END;

 

Функция Axe возвращает значение координаты х на экране.

FUNCTION Axe (const x: real): integer;

BEGIN

Axe:=x1+round((-x_min+x)*Mx);

END ;

 

Функция Aye возвращает значение координаты y на экране.

FUNCTION Aye (const y: real): integer;

BEGIN

Aye:=y2+round((y_min-y)*My);

END;

 

Функция FloatToStr возвращает значение числа в символьном виде.

FUNCTION FloatToStr(const a: real): string;

var st: string;

BEGIN

str(a:2:0,st);

FloatToStr:=st;

END;

 

Ввод данных в графическом режиме

Процедура SetData позволит осуществить ввод данных.

PROCEDURE SetData;

BEGIN

St1:='График функции: y(x) = a*cos(b*x)';

writeln(st1);

write('Введите a = ' ); readln(a);

write('Введите b = ' ); readln(b);

END;


Инициализация графического режима

Процедура registerbgidriver (egavga) осуществит регистрацию видеодрайвера и шрифтов.

PROCEDURE GrafikaOn;

var drv, mode: integer;

BEGIN

registerbgidriver (egavga);

font_litt: = registerbgifont (litt);

font_trip: = registerbgifont (trip);

drv: =9;

mode: =2;

InitGraph (drv, mode, ‘ ‘);

END;

Установка области экрана и начальных значений

для рисования графика функции F(x)

Процедура PaintF осуществит вывод данных в графическом режиме, установку области экрана и начальных значений для рисования графика функции F(x).

PROCEDURE PaintF;

BEGIN

settextstyle(font_trip, 0, 4);

SetColor(15);

OutTextXY(10, 10, st1);

settextstyle (font_trip, 0, 2);

SetColor (10);

OutTextXY(10, 45, st2);

OutTextXY(10, 67, st3);

 

Зададим область экрана

X1: =100;

Y1: =100;

X2: =GetMaxX-100;

Y2: =GetMaxY-20;

SetFillStyle(1, 7);

bar(x1, y1, x2, y2);

 

Зададим начальные значения

X_min: = -10;

X_max: =20;

dx: =0.01;

StepLineX: =4;

Осуществим поиск минимального и максимального значений функции

Ax: =x_min;

y_min: =GetF(Ax);

y_max: =GetF(Ax);

y_0: =abs(y_min);

repeat

Ay: =GetF(Ax);

If Ay<y_min then y_min: =Ay;

If Ay>y_max then y_max: =Ay;

If abs (Ay)<y_0 then y_0: = abs(Ay);

Ax: =Ax+dx;

until Ax>=x_max;

 

Вычислим масштаб по оси Y

My: =abs (y2-y1) / abs (y_max-y_min); 

 

Вычислим масштаб по оси X

Mx: =abs (x2-x1) / abs (x_max-x_min); 

 

Построим оси

Ox: = x1+round((-x_min+0)*Mx);

Oy: = y1+round((y_max-y_0)*My);

SetColor(15);

SetLineStyle (0, 0, 3);

Line (Ox, y1, Ox, y2);

Line (x1, Oy, x2, Oy);

 

Укажем разметку по оси X

SetLineStyle (3, 0, 1);

Settextstyle (font_litt, 0, 5);

Ax: = x_min;

SetColor(15);

Repeat

OutTextXY (Axe (Ax), y2+1, FloatToStr (Ax));

Line (Axe (Ax), y1, Axe (Ax), y2);

Ax: =Ax+StepLineX;

until Ax>x_max;

SetLineStyle (0, 0, 1);

 

Нарисуем график

Ax: = x_min;

Ay: =GetF (Ax);

SetColor(9);

MoveTo (Axe (Ax), Aye (Ay));

Repeat

Ay: =GetF (Ax);

LineTo (Axe (Ax), Aye (Ay));

Ax: =Ax+dx;

until Ax>x_max;

 

После описания всех процедур и функций пользователя, служебным словом begin начинается блок операторов. В этом блоке вызываются все предварительно описанные процедуры и функции.

Так будет выглядеть основная программа:

BEGIN

SetData;

GrafikaOn;

PaintF;

readln;

CloseGraph;

END.

 


Тестирование программы

 

 

 


ЛИТЕРАТУРА

 

1. Павловская Т.А. Программирование на языке высокого уровня. Практикум. – СПб.: Питер, 2006 г.

  1. Долинский М.С. Решение сложных и олимпиадных задач по программированию. – СПб.: Питер, 2006 г.
  2. Павловская Т.А. Паскаль язык программирования высокого уровня. - СПб.: Питер, 2007 г.
  3. Анцыпа В.А., Вдовин В.В. Практикум по программированию в Турбо Паскале. – М.: Образование и информатика, 2008 г.
  4. Коллекив. Основы алгоритмизации и программирования. Обучающий курс. – TeachPro, 2009 г.
  5. Семакин И.Г., Шестаков А.П. Основы алгоритмизации и программирования. – М.: Академия, 2012 г.
  6. Иванов А.Ф., Потапова О.Н., Салихова Г.Л. Основы алгоритмического языка Pascal: Учебное пособие для подготовки дипломированных специалистов по направлению 220301.65 «Автоматизированные технологии и производства». – Альметьевск: АГНИ, 2007.
  7. Потапова О.Н., Салихова Г.Л. Основные приемы работы в текстовом процессоре MS Word Учебное пособие по дисциплинам «Информатика», «Информационные технологии», «Информационные технологии в экономике», «Информационные технологии в менеджменте» для студентов всех направлений всех форм обучения. - Альметьевск: АГНИ, 2013 г.

 

.


ОГЛАВЛЕНИЕ

 

ОБЩИЕ ПОЛОЖЕНИЯ.. 3

1. ВЫПОЛНЕНИЕ КУРСОВОЙ РАБОТЫ... 4

2. СОДЕРЖАНИЕ РАЗДЕЛОВ КУРСОВОЙ РАБОТЫ... 4

2.1. Оглавление. 4

2.2. Постановка задачи. 5

2.3. Описание алгоритма решения задачи. 5

графическим способом. 5

2.4. Разработка и описание алгоритма решения задачи. 5

на языке программирования. 5

2.5. Литература. 6

3. ОФОРМЛЕНИЕ ПОЯСНИТЕЛЬНОЙ ЗАПИСКИ... 6

4. СДАЧА И ЗАЩИТА КУРСОВОЙ РАБОТЫ... 7

5. КРИТЕРИИ ОЦЕНКИ КУРСОВОЙ РАБОТЫ... 7

6. ТЕМАТИКА КУРСОВЫХ РАБОТ.. 8

6.1. Одномерные массивы.. 9

6.2. Двумерные массивы.. 23

6.3 Файлы.. 35

6.4. Графика. 57

Приложение 1.. 68

Приложение 2.. 69

Приложение 3.. 80

Приложение 4.. 96

Приложение 5.. 109

ЛИТЕРАТУРА... 117

 


[1] Этот раздел обязателен при выполнении курсовой работы на тему «Массивы»





Дата добавления: 2018-11-11; просмотров: 39 | Нарушение авторских прав


Рекомендуемый контект:


Поиск на сайте:


© 2015-2019 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.