Текст задания
Написать программу построения графика функции по заданному параметрическому представлению. Вывод графика осуществлять в созданном на экране окне, в другом окне выполнить вывод уравнения функции с конкретными значениями параметров.
Строфоида:
x=A(t2-1)/(t2+1),Y=At(t2-1)/(t2+1)),a>0, -∞<t<+∞
Решение
Решение программы оформлено в виде отчета в Word, данный отчет содержит следующие пункты:
- описания варианта задания;
- постановки задачи;
- описания переменных и констант;
- структуры программы и спецификации: общая структурная схема должна отражать взаимосвязи основной программы и всех ее модулей и подпрограмм. Спецификация программы должна включать: имя программы; входные данные с указанием типа данных; входные данные с указанием типа данных. Спецификация подпрограммы должна включать: имя подпрограммы; назначение подпрограммы; входные данные с указанием типа данных; выходные данные с указанием типа данных; вид подпрограммы; заголовок подпрограммы;
- распечатки текста программы с комментариями;
- результата ручной обработки данных;
- результата электронной обработки данных.
Исходный код программы с комментариями Вы можете найти ниже. Для получения доступа к отчету необходимо добавить работу в корзину и оплатить её. Доступ к отчету у Вас появится сразу после оплаты.
Исходный код программы
Uses Graph,CRT;
var x,y,e: Integer;
x11,y11,x12,y12, {Координаты 1-го окна}
x21,x22, {Левый верхний угол 2-го}
R, {Начальный радиус}
k, x0, y0: Integer;
a,t,fi:real;
begin
DirectVideo := False; {Блокируем прямой доступ к видеопа-мяти в модуле CRT}
{Инициируем графический режим}
x := Detect; InitGraph(x, y, '');
{Проверяем результат}
e := GraphResult;
if e <> grOk then
WriteLn(GraphErrorMsg (e) ) {Ошибка}
else
begin {Нет ошибки}
{Вычисляем координаты с учетом разрешения экрана}
x11:=GetMaxX div 60;
x12:=GetMaxX div 3;
y11:=GetMaxY div 4; y12:=2*y11;
R:=(x12-x11) div 4; x21:=x12*2;
x22:=x21+x12-x11;
{Рисуем окна}
WriteLn('Function:':10,'Grafic:':40);
Rectangle(x11, y11, x12, y12);
{Назначаем 1-е окно и выводим уравнение}
SetViewPort(x11, y11, x12, y12, ClipOn);
OutTextXy(x11,10,'X=A*(t^2-1)/(t^2+1)');
OuttextXY(x11,22,'Y=A*t*(t^2-1)/(t^2+1)');
OuttextXY(x11,34, 'a=200');
{Назначаем 2-е окно и рисуем график}
SetViewPort(x21, y11, x22, y12, ClipOff);
x0:=getmaxX div 8;
y0:=getmaxY div 8;
line(0-x12,y0,getmaxX,y0);
line(x0,0-y12,x0,getmaxY);
a:=200;
fi:=0;
while fi<=pi do
begin
if abs(cos(fi))>0.01 then{исключим очень большие значения тангенса}
begin
t:=sin(fi)/cos(fi);
if 1+t*t<>0 then
begin
x:=x0+round(a*((t*t-1)/(1+t*t)));
y:=y0+round(a*t*((t*t-1)/(1+t*t)));
Putpixel(x,y,12);
end;
end;
fi:=fi+0.001;
end;
{Ждем нажатия любой клавиши}
if ReadKey=#0 then k := ord(ReadKey);
CloseGraph
end
end.
Построенная строфоида
Программирование графических объектов (строфоида) в Pascal
- Дисциплина: Программирование
- Код работы: КО-141
- Работу выложил: Администратор
-
350.00 р.
Теги: Pascal
Не подошла работа?
Узнайте стоимость написания работы по Вашему заданию
(это быстро и бесплатно)