Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Графическим и программным способами




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

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

«Разработка в среде 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; Мы поможем в написании ваших работ!; просмотров: 234 | Нарушение авторских прав


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

Лучшие изречения:

Начинать всегда стоит с того, что сеет сомнения. © Борис Стругацкий
==> читать все изречения...

2349 - | 2104 -


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

Ген: 0.012 с.