Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Программа построения множества силовых линий





 

program sil_linii;

uses graph,crt;

label 1,2,3,4,5;

type mas=array[1..10] of string;

mas1=array[1..3] of integer;

var

q1,q2,k,w,r,y1,y2,y,i,l,qq:integer;

x,x1,x2,x3,x4,fx,fy,r1,r2,r3,r4,r5,r6,u,o,a,a1,n:real;

p:mas;

aass:text;

t1:mas1;

t:mas1;

st:string;

ch,key,chh:char;

functionkey:boolean;

procedure grinit;

var gd,gm:integer;

begin

gd:=detect;

initgraph(gd,gm,'');

if graphresult<>grok then halt(1);

end;

procedure wait;

begin

repeat

until keypressed

end;

procedure mes1(tt,tt1:mas1;pp:mas);

begin

setcolor(250);

outtextxy(t[i],t1[i],p[k]);

end;

procedure lin(qq1,qq2,ll:integer;aa:real);

begin

y:=y2;

repeat

x3:=x-l/2;

x4:=x+l/2;

r1:=sqrt(sqr(x3)+sqr(y));

r2:=sqrt(sqr(x4)+sqr(y));

r5:=r1*r1*r1;

r6:=r2*r2*r2;

fx:=q1*x3/r5+q2*x4/r6;

fy:=(q1/r5+q2/r6)*y;

if fy=0 then exit;

x1:=y2*fx/fy;

x:=x+x1;

u:=y+130;

o:=x+320;

if (u<320) and (u>0) and (o<638) and (u*o>0) then

begin

writeln(aass,o,u);

putpixel(round(o),round(u),250);

end;

y:=y+y2;

until (y<220/y2);

end;

procedure lin1(qq1,qq2,ll:integer;aa:real);

begin

y:=y2;

repeat

x3:=x-l/2;

x4:=x+l/2;

r1:=sqrt(sqr(x3)+sqr(y));

r2:=sqrt(sqr(x4)+sqr(y));

r5:=r1*r1*r1;

r6:=r2*r2*r2;

fx:=q1*x3/r5+q2*x4/r6;

fy:=(q1/r5+q2/r6)*y;

if fy=0 then exit;

x1:=y2*fx/fy;

x:=x+x1;

u:=y+130;

o:=x+320;

if (u<320) and (u>0) and (o<638) and (u*o>0) then

begin

writeln(aass,o,u);

putpixel(round(o),round(u),250);

end;

y:=y+y2;

until (y>220/y2);

end;

procedure ugol(yy,aa:real;yy1,yy2,qq1,qq2:integer);

begin

repeat

if (q2>0) and (q1>0) then a:=a+a1*q1/q2

else

if q1=0 then a:=a+a1*0.5

else

if q2=0 then a:=a+a1

else

a:=a+a1*abs(q1/q2);

repeat

if(a>0) and (a<pi) then

begin

y2:=y1;

x:=l/2+y2/(sin(a)/cos(a));

end;

if (a>pi) and (a<2*pi) then

begin

y2:=-y1;

x:=l/2+y2/(sin(a)/cos(a));

end;

if (a>2*pi) and (a<3*pi) then

begin

y2:=y1;

x:=-l/2+y2/(sin(a)/cos(a));

end;

if (a>3*pi) and (a<4*pi) then

begin

y2:=-y1;

x:=-l/2+y2/(sin(a)/cos(a));

end;

lin(q1,q2,l,a);

lin1(q1,q2,l,a);

setfillstyle(10,2);

fillellipse(round(320+l/2),130,abs(q1),abs(q1));

fillellipse(round(320-l/2),130,abs(q2),abs(q2));

if a<2*pi then a:=a+a1;

until a>2*pi

until a>4*pi;

setcolor(250);

if q2<>0 then outtextxy(205,260,'q2='+' '+chr(abs(q2)+48));

if q1<>0 then outtextxy(430,260,'q1='+' '+chr(abs(q1)+48));

if q1>0 then outtextxy(455,260,'+') else

if q1<0 then outtextxy(455,260,'-');

if q2>0 then outtextxy(230,260,'+') else

if q2<0 then outtextxy(230,260,'-');

end;

{=====================}

BEGIN

assign(aass,'c:\aaasss.dat');

rewrite(aass);

grinit;

settextstyle(0,0,0);

setbkcolor(9);

t[1]:=10;

t[2]:=10;

t[3]:=200;

t1[1]:=360;

t1[2]:=380;

t1[3]:=310;

q1:=10;

q2:=10;

l:=300;

a1:=0.5;

y1:=2;

a:=0;

ugol(y,a,y1,y2,q1,q2);

i:=1;

k:=9;

i:=2;

k:=10;

wait;

closegraph;

close(aass);

end.

Движение заряженной частицы в магнитном поле

program Zar_mg_pole;

const N=2000;

var H,A,V,ALFA:REAL;

i:integer;

x,y,vx,vy:array[0..N] of real;

RR:TEXT;

begin

assign (RR,'C:\electron.DAT'); rewrite(RR);

A:=80; V:=1.4;

ALFA:=3.14*A/180;

h:=0.05;

x[0]:=1.0; y[0]:=0.0; VX[0]:=V*COS(ALFA);

VY[0]:=V*SIN(ALFA);

for i:=0 to N-1 do

begin

vx[i+1]:=VX[i]+h*vy[i]/x[i];

vy[i+1]:=vy[i]-h*vx[i]/x[i];

x[i+1]:=x[i]+vx[i]*h;

y[i+1]:=y[i]+vy[i]*h;

end;

for i:=0 to n do begin

writeln(RR,x[i],' ',y[i])

end;

close(RR);

end.

Возмущение орбиты электрона в однородном

Магнитном поле движущимся протоном

Program elipr;

Const b=0.000544662;

Const n=1200;

Var i:integer;

xe,ye,vxe,vye,xp,yp,vxp,vyp:array[0..n] of real;

ee,pp:text;

h:real;

begin

assign(ee,'C:\elektron.dat');rewrite(ee);

assign(pp,'C:\proton.dat');rewrite(pp);

h:=0.01;

xe[0]:=0;ye[0]:=-1;vxe[0]:=1;vye[0]:=0;

xp[0]:=0;yp[0]:=1;vxp[0]:=1;vyp[0]:=0;

for i:=0 to n-1 do

begin

xe[i+1]:=xe[i]+vxe[i]*h;

ye[i+1]:=ye[i]+vye[i]*h;

vxe[i+1]:=vxe[i]+h*(-vye[i]+(xp[i]-xe[i])/3*exp(abs(xp[i]-xe[i])));

vye[i+1]:=vye[i]+h*(vxe[i]+(yp[i]-ye[i])/3*exp(abs(yp[i]-ye[i])));

xp[i+1]:=xp[i]+vxp[i]*h;

yp[i+1]:=yp[i]+vyp[i]*h;

vxp[i+1]:=vxp[i]+b*h*(vyp[i]-(xp[i]-

xe[i])/3*exp(abs(xp[i]-xe[i])));

vyp[i+1]:=vyp[i]+(-b)*h*(vxp[i]+(yp[i]-

ye[i])/3*exp(abs(yp[i]-ye[i])));

end;

for i:=0 to n do begin

writeln(ee,xe[i],' ',ye[i]);

writeln(pp,xp[i],' ',yp[i])

end;

close(ee);

close(pp);

end.

Пространственный осциллятор

program os;

const w=2;n=1000;a=0.05;

var i:integer;

h,k,w1,w2,w3:real;

x,y,z,vx,vy:array [0..n] of real;

os1,os2,os3:text;

begin

assign(os1,'d:\os1.dat');rewrite(os1);

assign(os2,'d:\os2.dat');rewrite(os2);

assign(os3,'d:\os3.dat');rewrite(os3);

begin h:=0.02;w1:=2;w2:=2;w3:=2;

x[0]:=10;x[1]:=10;z[0]:=0;

y[0]:=10;y[1]:=10;z[1]:=0;

for i:=1 to (n-1) do begin

x[i+1]:=-w1*w1*x[i]*h*h+w*(y[i]-y[i-1])*h+2*x[i]-x[i-1]-a*(x[i]-x[i-1])*h;

y[i+1]:=-w2*w2*y[i]*h*h-w*(x[i]-x[i-1])*h+2*y[i]-y[i-1]-a*(y[i]-y[i-1])*h;

z[i+1]:=-w3*w3*z[i]*h*h+2*z[i]-z[i-1];

vx[i]:=(x[i]-x[i-1])/h;

vy[i]:=(y[i]-y[i-1])/h;

end;

for i:=0 to n do

begin

writeln(os1,x[i]+1000,y[i]+1000);

writeln(os2,i*h,' ',x[i]+1000);

writeln(os3,vx[i]+1000,vy[i]+1000);

end;

close(os1); close(os2); close(os3);

end;

Движение заряженных частиц

В кулоновском поле

program SG;

const N=1200;

var H,A,V,ALFA:real;

i:integer;

X,y,vx,vy:array [0..N] of real;

rr:text;

begin

assign (rr,'c:\m nb4.dat');rewrite(rr);

a:=60; v:=1.4;

alfa: =3.14*a/180;

h:=0.001;

x[0]:=1.0;y[0]:=0.0;

vx[0]:=v*cos(alfa);

vy[0]:=v*sin(alfa);

for i:=0 to N-1 do

begin

vx[i+1]:=vx[i]-h*ABS(x[i])/((x[i]*x[i]+y[i]*y[i])*

(sqrt(x[i]*x[i]+y[i]*y[i])));

vy[i+1]:=vy[i]-h*y[i]/((y[i]*y[i]+x[i]*x[i])*

(sqrt(x[i]*x[i]+y[i]*y[i])));

x[i+1]:=x[i]+vx[i]*h;

y[i+1]:=y[i]+vy[i]*h;

end;

for i:=0 to n do begin

writeln (rr,x[i],' ',y[i])

end;

close (rr);

end.







Дата добавления: 2015-10-12; просмотров: 395. Нарушение авторских прав; Мы поможем в написании вашей работы!




Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...


Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...


Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...


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

Броматометрия и бромометрия Броматометрический метод основан на окислении вос­становителей броматом калия в кислой среде...

Метод Фольгарда (роданометрия или тиоцианатометрия) Метод Фольгарда основан на применении в качестве осадителя титрованного раствора, содержащего роданид-ионы SCN...

Потенциометрия. Потенциометрическое определение рН растворов Потенциометрия - это электрохимический метод иссле­дования и анализа веществ, основанный на зависимости равновесного электродного потенциала Е от активности (концентрации) определяемого вещества в исследуемом рас­творе...

Понятие массовых мероприятий, их виды Под массовыми мероприятиями следует понимать совокупность действий или явлений социальной жизни с участием большого количества граждан...

Тактика действий нарядов полиции по предупреждению и пресечению правонарушений при проведении массовых мероприятий К особенностям проведения массовых мероприятий и факторам, влияющим на охрану общественного порядка и обеспечение общественной безопасности, можно отнести значительное количество субъектов, принимающих участие в их подготовке и проведении...

Тактические действия нарядов полиции по предупреждению и пресечению групповых нарушений общественного порядка и массовых беспорядков В целях предупреждения разрастания групповых нарушений общественного порядка (далееГНОП) в массовые беспорядки подразделения (наряды) полиции осуществляют следующие мероприятия...

Studopedia.info - Студопедия - 2014-2025 год . (0.008 сек.) русская версия | украинская версия