program grafik; uses crt,graph; const kt=200; var gd,gm:integer; t1,y1,t11,y11:array[1..kt] of real; tt1,yy1,yy11,tt11:array[1..kt] of integer; ft,fy,fte:file of real; tmaxr,tmaxr1,tminr,tminr1,ymaxr,ymaxr1:real; yminr,yminr1,t,y,te,st,stx,kx,ky:real; tmaxi1,tmini1,ymaxi1,ymini1,tmaxi:integer; tmini,ymaxi,ymini,i,k,a,b,h,v:integer; filename:string; {Построение первого графика} begin write('Введите имя файла для которого строить график 1 ? '); readln(filename); assign(fy,filename); reset(fy); assign(fte,'endtime'); {Открытие файла "endtime"} reset(fte); {для чтения значения "te"} read(fte,te); close(fte); assign(ft,'time'); {Открытие файла "time"} reset(ft); {для чтения значений "t"} begin i:=1; st:=te/kt; {Выбор шага "st" для определения расстояния} stx:=st; {между соседними точками графика по оси t} {Цикл для создания массивов "t1" и "y1"} while not eof(ft) do begin read(ft,t); {Чтение "t" из файла "time"} read(fy,y); {Чтение "y" из файла "filename"} if (t=stx)or(t>stx) then {Условие записи в массивы} begin {"t1" и "y1"} t1[i]:=t; y1[i]:=y; stx:=stx+st; {Изменение условия записи} i:=i+1; end; end; end; close(ft); {Закрытие файлов "time" и "filename"} close(fy); begin {Определение максимальных и минимальных значений "Y" и "t"} ymaxr:=y1[1]; {Ymax real} yminr:=y1[1]; {Ymin real} tmaxr:=t1[1]; {Tmax real} tminr:=t1[1]; {Tmin real} for i:=1 to kt-1 do begin if t1[i]>tmaxr then tmaxr:=t1[i]; if y1[i]>ymaxr then ymaxr:=y1[i]; if t1[i]stx) then begin t11[i]:=t; y11[i]:=y; stx:=stx+st; i:=i+1; end; end; end; close(ft); close(fy); begin ymaxr1:=y11[1]; yminr1:=y11[1]; tmaxr1:=t11[1]; tminr1:=t11[1]; for i:=1 to kt-1 do begin if t11[i]>tmaxr1 then tmaxr1:=t11[i]; if y11[i]>ymaxr1 then ymaxr1:=y11[i]; if t11[i]grok then halt(1); setbkcolor(lightgray); setcolor(15); rectangle(5,5,getmaxx-5,getmaxy-5); outtextxy(270,465,'Exit "Enter"'); setviewport(15,15,getmaxx-15,getmaxy-15,true); setcolor(3); {Построение горизонтальных линий масштабной сетки} h:=round(tmaxi/10); a:=1; for k:=1 to 10 do begin line(h*a,0,h*a,abs(tmaxi)+abs(tmini)); a:=a+1 end; {Построение вертикальных линий масштабной сетки} v:=round((abs(ymaxi)+abs(ymini))/10); b:=1; for k:=1 to 10 do begin line(0,v*b,tmaxi,v*b); b:=b+1 end; {Построение осей графика и надписей к ним} setcolor(8); circle(0,ymaxi,2);circle(tmaxi,ymaxi,2); line(0,0,0,(abs(tmaxi))); line(0,ymaxi,tmaxi,ymaxi); outtextxy(tmaxi-10,ymaxi-10,'te'); outtextxy(5,ymaxi-10,'0'); outtextxy(0+5,0,'U max'); outtextxy(0+5,(abs(ymaxi)+abs(ymini)),'U min'); {Рисование линий графиков} for i:=1 to (kt-2) do begin setcolor(4); line(tt1[i],yy1[i],tt1[i+1],yy1[i+1]); setcolor(1); line(tt11[i],yy11[i],tt11[i+1],yy11[i+1]); end; repeat until keypressed; readln; closegraph; {Выход из графического режима} end; end; end. End;