ПО ТЕМЕ «ГРАФИКА»
Тема курсовой работы:
«Разработка в среде Turbo Pascal программы построения графика функций».
ПОСТАНОВКА ЗАДАЧИ
Разработать с использованием процедур и функций из стандартного модуля Graph программу, обеспечивающую вывод графика функции
F(x) = a*cos(b*x) и осей координат.
Исходными данными являются переменные а,b и x, значения которых задаются вводом и могут лежать в любом интервале допустимых значений. В результате выполнения программы получим график функции и оси координат.
Укрупненная схема алгоритма
Детализация укрупненной схемы алгоритма
В программе решается 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 г.
- Долинский М.С. Решение сложных и олимпиадных задач по программированию. – СПб.: Питер, 2006 г.
- Павловская Т.А. Паскаль язык программирования высокого уровня. - СПб.: Питер, 2007 г.
- Анцыпа В.А., Вдовин В.В. Практикум по программированию в Турбо Паскале. – М.: Образование и информатика, 2008 г.
- Коллекив. Основы алгоритмизации и программирования. Обучающий курс. – TeachPro, 2009 г.
- Семакин И.Г., Шестаков А.П. Основы алгоритмизации и программирования. – М.: Академия, 2012 г.
- Иванов А.Ф., Потапова О.Н., Салихова Г.Л. Основы алгоритмического языка Pascal: Учебное пособие для подготовки дипломированных специалистов по направлению 220301.65 «Автоматизированные технологии и производства». – Альметьевск: АГНИ, 2007.
- Потапова О.Н., Салихова Г.Л. Основные приемы работы в текстовом процессоре 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] Этот раздел обязателен при выполнении курсовой работы на тему «Массивы»