• Программирование графических объектов (строфоида) в Pascal

Текст задания

Написать программу построения графика функции по заданному параметрическому представлению. Вывод графика осуществлять в созданном на экране окне, в другом окне выполнить вывод уравнения функции с конкретными значениями параметров. 

Строфоида

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.

Построенная строфоида


Написать отзыв

Внимание: HTML не поддерживается! Используйте обычный текст!
    Плохо           Хорошо

Программирование графических объектов (строфоида) в Pascal

  • 350.00 р.



Теги: Pascal

Не подошла работа?

Узнайте стоимость написания работы по Вашему заданию

(это быстро и бесплатно)

Узнать стоимость

Спасибо, не надо