Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2013, 18:43   #1
Skvora93
Новичок
Джуниор
 
Регистрация: 25.04.2013
Сообщений: 2
По умолчанию В пакете Surfer необходимо построить , на основе уже написанное программе на Паскале...

Задача такова: программа готова,но нужно сделать ее в сурфере. Кто разбирается, напишите, пожалуйста... заранее огромное спасибо!!!
В пакете Surfer необходимо построить линии тока и поле скорости по
результатам выполнения задания.

Код:
Program aero;
uses crt,graphABC;
const xp0=-2;xp1=0;yp0=-1;yp1=1;
xs0=40;xs1=600;ys0=440;ys1=40;
Var h,x,y,xx,yy:real;
i,j:integer;
s1,s2,s:string;

Function Ux(x,y:real):integer;
begin
Ux:=round((3*(-sqr(x+1)+y*y))/sqr(sqr(x+1)+y*y));
end;

Function Uy(x,y:real):integer;
begin
Uy:=round(-6*y*(x+1)/(sqr(sqr(x+1)+y*y)));
end;

Function xs(xx:real):integer;
begin
xs:=round(xs0+((xs1-xs0)*(xx-xp0))/(xp1-xp0));
end;

Function ys(yy:real):integer;
begin
ys:=round(ys0+((ys1-ys0)*(yy-yp0))/(yp1-yp0));
end;

Function lin1(t,c:real):real;
begin
lin1:=-3*sin(t)/c;
end;

Procedure arrow(x0,y0:integer;ux,uy:real;color:integer);
var
x1,y1,xr,yr,xl,yl:integer;
v,co,si,b:real;
Begin
setbrushcolor(color);
x1:=round(ux)+x0;
y1:=-round(uy)+y0;
v:=sqrt(ux*ux+uy*uy);
if v>0.00005 then
begin
co:=(x1-x0)/v;
si:=(y1-y0)/v;
b:=v*0.35;
xr:=x1-round(b*(co+0.35*si));
yr:=y1-round(b*(si-0.35*co));
xl:=x1-round(b*(co-0.35*si));
yl:=y1-round(b*(si+0.35*co));
line(x0,y0,x1,y1);
line(x1,y1,xr,yr);
line(x1,y1,xl,yl);
end;
end;


Procedure osi;
begin
line(xs0,ys0,xs1,ys0);
TextOut(WindowWidth-42,ys0-3,'>');
TextOut(WindowWidth-40,ys0+5,'x');
line(xs0,ys0,xs0,ys1);
TextOut(xs0-3,40,'^');
TextOut(xs0+6,40,'y');
x:=-2;
for i:=1 to 11 do
begin
h:=(WindowWidth-80)/10;
line(xs(x),ys0+2,xs(x),ys0-2);
str(x:4:2,s);
TextOut(xs(x)-25,ys0+5,s);
x:=x+(abs(xp0)/10);
end;
y:=-1;
for j:=1 to 10 do
begin
Line(xs0-2,ys(y),xs0+2,ys(y));
str(y:4:2,s);
TextOut(xs0-40,ys(y)-3,s);
y:=y+(yp1/4);
end;
end;

Procedure vektorskorosti;
var dx,dy,xd,yd:real;
begin
dx:=(xp1-xp0)/50;
dy:=(yp1-yp0)/50;
xd:=xp0;
While xd<xp1 do begin
yd:=yp0;
While yd<yp1 do begin
if (sqr(xd+1)+sqr(yd))>0.02 then begin
arrow(xs(xd),ys(yd),ux(xd,yd)*0.25,uy(xd,yd)*0.25,2);
end;
yd:=yd+dy;
end;
xd:=xd+dx;
end;
end;

Procedure linii;
var c,a,dxo:integer;
x,y,dx,r,t,dt:real;
begin
c:=-5;
a:=5;
dxo:=1;
dt:=2*pi/1000;
While c<=a do begin
t:=0;
While t<2*pi do begin
t:=t+dt;
if c<>0 then begin
r:=lin1(t,c);
x:=r*cos(t)-1;
y:=r*sin(t);
if (y<yp1)and(y>yp0)and(x>xp0)and(x<xp1)and((sqr(x+1)+sqr(y))>0 .02) then
putpixel(xs(x),ys(y),3);
end;
end;
c:=c+dxo;
end;
end;

begin
SetWindowSize(640,480);
osi;
vektorskorosti;
linii;
readln;
end.

Последний раз редактировалось Stilet; 25.04.2013 в 21:11.
Skvora93 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В пакете Grapher необходимо построить по результатам проги на паскале! Skvora93 Помощь студентам 0 25.04.2013 18:17
Не получается построить, пишет уже ошибку "undefined processor type", ilvErsat0 Win Api 2 15.04.2013 09:15
Необходимо построить UML-диаграммы MissSMITT Помощь студентам 0 14.12.2012 12:57
Как построить многоугольник в с++((((, может кто знает, уже все испробывала, не получается((((((( yulja-uk Помощь студентам 5 19.03.2012 21:34
Как построить блок-схему к программе lelik_bolik Паскаль, Turbo Pascal, PascalABC.NET 3 14.05.2011 14:21