Mymindismy | Дата: Понедельник, 01.06.2009, 08:21 | Сообщение # 1 |
Знакомый
Группа: Пользователи
Сообщений: 16
Статус: Offline
| Code program znachenia; const h=10; g=9.8; m=4; l=15; v=10; p=1000; c=2; k=3; var tm,fi0,fi1,w1,w0,t,dt:real; f,e:text; begin dt:=0.00001; tm:=20; fi0:=pi/6; w0:=0; assign(f,'dta'); rewrite(f); assign(e,'atd'); rewrite(e); while t<tm do begin if cos(fi0)<=(h/l) then begin w1:=w0+(dt/sqr(l)/m)*(-c*fi0-m*g*sin(fi0)*l); fi1:=fi0+w0*dt; fi0:=fi1; w0:=w1; t:=t+dt; end else begin w1:=w0+(dt/m/sqr(l))*(-c*fi0-m*g*sin(fi0)*l-k*w0*sqr(l)); fi1:=fi0+w0*dt; fi0:=fi1; w0:=w1; t:=t+dt; end; j:=j+1; if j mod 100000=0 then begin writeln(e,t,' ',fi1); writeln(f,t,' ',w1); j:=0; end; end; close(f); close(e); end. вот первая прога, которая создает два файла с данными Code program gjhg; uses graph; const n=30; xgmin=100; xgmax=540; ygmin=100; ygmax=380; var driver,mode,i,xg,yg,xl,yl,q,o:integer; a,b,ymin,ymax:real; x,y,z,u:array[1..n] of real; s:string; w1,t:real; f,e:text; begin writeln('vvedite 1, eclu xotute yvudet'' Fi ot T; vvedite 2, eclu xotute yvudet'' W ot T ') ; read(o); a:=0; b:=20; driver:=detect; Initgraph(driver,mode, 'D:\work'); ClearDevice; assign(f,'dta'); reset(f); {for i:=1 to n do readln(f,x[i],y[i]); {for i:=1 to n do writeln(x[i],y[i]); } assign(e,'atd'); reset(e); {for i:=1 to n do readln(e,z[i],u[i]); {for i:=1 to n do writeln(z[i],u[i]); } if o=1 then begin for i:=1 to n do readln(f,x[i],y[i]) end else begin for i:=1 to n do readln(e,x[i],y[i]); end; { x[i]:=z[i]; y[i]:=u[i]; end else begin } ymax:=y[1]; for i:=2 to n do if y[i]>ymax then begin ymax:=y[i]; end; ymin:=y[1]; for i:=2 to n do if y[i]<ymin then begin ymin:=y[i]; end; rectangle(xgmin,ygmin,xgmax,ygmax); q:=0; i:=30; while q<1 do begin if frac((xgmax-xgmin)/i)=0 then q:=i else i:=i+1; end; xl:=xgmin; while xl<xgmax do begin Line(xl,ygmin,xl,ygmax); xl:=xl+q; str(xl,s); OutTextXY(xl-10,ygmin+290,s); end; q:=0; i:=30; while q<1 do begin if frac((ygmax-ygmin)/i)=0 then q:=i else i:=i+1; end; yl:=ygmin; while yl<ygmax do begin Line(xgmin,yl,xgmax,yl); yl:=yl+q; str(yl,s); OutTextXY(xgmin-26,yl-7,s); end; {if o=1 then begin} xg:=round(xgmin+(x[1]-a)/(b-a)*(xgmax-xgmin)); yg:=round(ygmax-(y[1]-ymin)/(ymax-ymin)*(ygmax-ygmin)); Moveto (xg,yg); setcolor(9); for i:=2 to n do begin xg:=round(xgmin+(x[i]-a)/(b-a)*(xgmax-xgmin)); yg:=round(ygmax-(y[i]-ymin)/(ymax-ymin)*(ygmax-ygmin)); Lineto (xg,yg); setcolor(9); setcolor(10); end; SetTextJustify(1,3); OutTextXY(ygmin-5,xgmin-10,'fi'); SetTextJustify(2,1); OutTextXY(ygmax+170,xgmax-160,'t'); {end;} {if o=2 then begin x[i]:=z[i]; y[i]:=u[i]; xg:=round(xgmin+(x[1]-a)/(b-a)*(xgmax-xgmin)); yg:=round(ygmax-(y[1]-ymin)/(ymax-ymin)*(ygmax-ygmin)); Moveto (xg,yg); setcolor(9); for i:=2 to n do begin xg:=round(xgmin+(x[i]-a)/(b-a)*(xgmax-xgmin)); yg:=round(ygmax-(y[i]-ymin)/(ymax-ymin)*(ygmax-ygmin)); Lineto (xg,yg); setcolor(9); end; setcolor(10); SetTextJustify(1,3); OutTextXY(ygmin-5,xgmin-10,'w'); SetTextJustify(2,1); OutTextXY(ygmax+170,xgmax-160,'t') end; } if (o<>1) and (o<>2) then write('error'); readln; closegraph; end. вторая прога по значениям из файлов должна строить график(смотря какой запросят), но она не строит..(((все что могла уже перепробовала..
|
|
| |
Seqular | Дата: Суббота, 06.06.2009, 10:26 | Сообщение # 2 |
Хранитель
Группа: Администраторы
Сообщений: 859
Статус: Offline
| Файл текстовый? Может здесь лучше всего типизированный создать? Ну или хотябы условие задачи поглядеть
Поддерживаю также проект сообщество молодых сисадминов
|
|
| |