Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа по TurboPascal.docx
Скачиваний:
7
Добавлен:
07.02.2015
Размер:
258.44 Кб
Скачать

Лабораторная работа 3.

Цель работы:применение изученных графических возможностей средыTurboPascal7.0 в построении графиков функций.

Практическое задание:

  1. Получить у преподавателя уравнение функции.

  2. Составить программу

  3. Построить график с координатной сеткой.

Исходные данные:

Функция:

Текст программы:

Program Lab3_el;

Uses Crt,Graph;

Label 10;

Var GraphDriver,GraphMode,ErrorCode : Integer;

x,y,ux,uy,mx,my,ymf,i,sx,sy,t,r : Integer;

ch : char;

xi,xn,xk,h,A,q : real;

top : boolean;

mas : array[1..15] of PointType;

Procedure Timer(ast,qwr:word;var chr:char);

Var as:integer;

Begin

If ast=0 then ast:=65000;

If qwr=0 then qwr:=5;

for as:=1 to qwr do

if keypressed then

begin chr:=readkey; break; end

else Delay(ast);

End;

Begin

GraphDriver := Detect;

InitGraph (GraphDriver, GraphMode, 'D:\TP7');

ErrorCode := GraphResult;

if ErrorCode <> grOk then

begin

Writeln ('Ошибка: ',GraphErrorMsg(ErrorCode));

Writeln ('Работа программы прервана');

ReadKey; Halt(1);

end;

10:

ClearDevice;

SetBkColor(15);

SetColor(4);

MoveTo(10,20);

SetColor(5);

OutTextXY(10,5,'Y(x)=2*sin(2*x)*exp(-cos(2*x))');

OutText('Vvedite Xn=');

GoToXY(14,2);

Read(Xn);

MoveTo(10,36);

OutText('Vvedite Xk=');

GoToXY(14,3);

Read(Xk);

MoveTo(10,52);

OutText('Vvedite amplitudu A=');

GoToXY(23,4);

Read(A);

If Xn>=Xk then GoTo 10;

mx:=GetMaxX;

my:=GetMaxY;

t:=100;

ux:=mx div 2;

uy:=my div 2;

Rectangle(100,100,mx-100,my-100);

MoveTo(100,uy);

LineTo(mx-100,uy);

MoveTo(ux,100);

LineTo(ux,my-100);

ymf:=trunc(A*2.917);

SetColor(Yellow);

Line(100,uy-ymf,mx-100,uy-ymf);

Line(100,uy+ymf,mx-100,uy+ymf);

sx:=mx-200;

sy:=my-200;

MoveTo(100,uy);

xi:=Xn;

h:=(Xk-Xn)/sx;

r:=100;

SetColor(10);

repeat

y:=uy-trunc(A*2*sin(2*xi)*exp(-cos(2*xi)));

LineTo(r,y);

xi:=xi+h;

r:=r+1;

Timer(1000,1,ch);

until r>=sx+100;

Timer(0,20,ch); ch:=#97; {обнуляем ch}

ReadKey;

ClearDevice;

CloseGraph;

End.

Результат работы программы представлен на рис.15:

рис.15 График функции