Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теорія поля / Курсова / Метод курсової Теорія поля 2014.doc
Скачиваний:
13
Добавлен:
27.02.2016
Размер:
2.83 Mб
Скачать

ДодатокД

(обов'язковий)

При розрахунках студент може використовувати будь-яку сучасну мову програмування з обов’язковим її поданням у додатку курсової роботи. Як приклад для вищенаведених задач подана програма мовою С++.

Приклад програми для розрахунку і побудови

еквіпотенціальних ліній полів

#include <stdio.h>

#include <math.h>

#include <conio.h>

#include <graphics.h>

#include <stdlib.h>

#define Pi 4*atan(1)

#define M 2000

#define eps 7

#define DF 3000

void Init(void)

{

int gdriver=DETECT, gmode;

initgraph(&gdriver,&gmode,”C:\\BCPP\\BGI”);

}

void graphic(FILE*f)

{

double x,y;

int i=0;

setcolor(GREEN);

circle(320,240,0.05*M);

setcolor(WHITE);

while(!feof(f))

{

fscanf(f,”%f%f”,&x,&y);

Продовження додатка Д

if(i==0) {moveto(320+x*M,240-y*M);i=1;}

lineto(320+x*M,240-y*M);

}

fclose(f);

}

void main()

{

Init();

double a,H0,mi,me,r,R,F,F1,x,y,max=0;

int I,j;

H0=50000;

mi=500;

me=3;

R=0.025;

FILE*f=fopen(“res.dat”,”wt”);

for(a=0;a<=Pi;a+=0.005)

{

for(r=0.03;r<0.15;r+=0.0001)

{

F=cos(a)*(-H0*r+H0*((mi-me)/mi+me))*R*R/r);

if(max<=F) max=F;

fpritf(f,”%f%f%lf\n”,r*cos(a),r*sin(a),F);

if(kbhit()) break;

}

}

fclose(f);

F1=F;

LABEL;

F1+=DF;

FILE*g=fopen(“res.dat”,”rt”);

FILE*data=fopen(“data.dat”,”wt”);

while(!feof(g))

Продовження додатка Д

{

if(kbhit()) exit(0);

fscanf(g,”%f%f%lf\n”,”&x,&y,&F”);

if(((F>F1+eps)&&(F<F1-eps))||((F<F1+eps)&&(F>F1-eps)))

fprintf(data,”%lf%lf\n”,x,y);

}

fclose(data);

fclose(f);

fclose(g);

FILE*DATA=fopen(“data.dat”,”rt”);

grafic(DATA);

goto(LABEL);

}

Приклад програми для розрахунку епюр електромагнітних полів

#include <dir.h>

#include <iostream.h>

#include <stdio.h>

#include <conio.h>

#include <math.h>

float E0=500000,a=0.035,b=0.015,l=0.006,L=0.0082676,ze=290.195;

float m=2,n=4;

float kf1,kf2,Kp;

float Hx(float x,float y)

{return kf1*sin(m*M_PI*x/a)*cos(m*M_PI*y/b);}

float Hy(float x,float y)

{return kf2*cos(m*M_PI*x/a)*sin(m*M_PI*y/b);}

float Ex(float x,float y)

{return -ze*kf2*cos(m*M_PI*x/a)*sin(m*M_PI*y/b);}

Продовження додатка Д

float Ey(float x,float y)

{return -ze*kf1*sin(m*M_PI*x/a)*cos(m*M_PI*y/b);}

float F(float z)

{return cos(-Kp*z);}

void main()

{ clrscr();

kf1=E0*(m*n/L)*(a*b*b)/(m*m*b*b+n*n*a*a);

kf2=E0*(n/L)*(a*b*b)/(m*m*b*b+n*n*a*a);

Kp=2*M_PI/L;

float x,y,z,E_x,E_y,H_x,H_y,E_z;

mkdir("c:\\data_tp1");

FILE *out;

out=fopen("c:\\data_tp1\\file1.xls","wt");

x=0;

do

{ E_x=Ex(x,b/4);

E_y=Ey(x,0);

H_x=Hx(x,0);

H_y=Hy(x,b/4);

fprintf(out,"\t%f\t%f\t%f\t%f\t%f\n",x,E_x,E_y,H_x,H_y);

x+=1e-5;

} while(x<a);

fclose(out);

y=0;

out=fopen("c:\\data_tp1\\file2.xls","wt");

do

{

E_x=Ex(0,y);

E_y=Ey(a/8,y);

H_x=Hx(a/8,y);

H_y=Hy(0,y);

fprintf(out,"\t%f\t%f\t%f\t%f\t%f\n",y,E_x,E_y,H_x,H_y);

y+=1e-5;

Продовження додатка Д

} while(y<b);

fclose(out);

z=0;

out=fopen("c:\\data_tp1\\file3.xls","wt");

do

{

E_x=-ze*kf2*F(z);

E_y=-ze*kf1*F(z);

H_x=kf1*F(z);

H_y=kf2*F(z);

E_z=E0*sin(-Kp*ze);

fprintf(out,"\t%f\t%f\t%f\t%f\t%f\n",z,E_x,E_y,H_x,H_y,E_z);

z+=1e-4;

} while(z<0.1);

fclose(out);

float zc,Kpp,zee,LL,cn=0,Lkp=0.0099694,l=0.009;

out=fopen("c:\\data_tp1\\file4.xls","wt");

do

{ zc=377*sqrt(0.5);

LL=l/(sqrt(2-(l*l/Lkp*Lkp)));

Kpp=2*M_PI/LL;

zee=zc*l/LL;

fprintf(out,"\t%f\t%f\t%f\t%f\t%f\n",cn,Kpp,zee);

cn+=1e-6;

} while(cn<Lkp-3e-5);

fclose(out);

}