Студопедия — Программа построения множества силовых линий
Студопедия Главная Случайная страница Обратная связь

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

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






 

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; просмотров: 381. Нарушение авторских прав; Мы поможем в написании вашей работы!



Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

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

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

Случайной величины Плотностью распределения вероятностей непрерывной случайной величины Х называют функцию f(x) – первую производную от функции распределения F(x): Понятие плотность распределения вероятностей случайной величины Х для дискретной величины неприменима...

Вопрос. Отличие деятельности человека от поведения животных главные отличия деятельности человека от активности животных сводятся к следующему: 1...

Расчет концентрации титрованных растворов с помощью поправочного коэффициента При выполнении серийных анализов ГОСТ или ведомственная инструкция обычно предусматривают применение раствора заданной концентрации или заданного титра...

Психолого-педагогическая характеристика студенческой группы   Характеристика группы составляется по 407 группе очного отделения зооинженерного факультета, бакалавриата по направлению «Биология» РГАУ-МСХА имени К...

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