*' IdC1 |',' Udad |',/,1x,'|----|','----------|',
*4('-----------|'),'-------------|')
rr=(q1-q2)/50
l=1
r4=q2
if (r4.le.q1) go to 9
15 l=l+1
R4=r4+rr
if (pri.eq.1.and.l.eq.14) f2=200
Udad(l)=uadd
UdC1(l)=UC1d
UdL3(l)=UL3d
Idl3(l)=i1d
idC1(l)=i1d
k=r4-rr
write(2,16)k,f2,Udl3(l),Udc1(l),idl3(l),idc1(l),udad(l)
16 format(1x,'|',i4,'|',f10.3'|',2(f10.5,' |'),2('',f10.7,' |'),
*f10.4,' |')
if (r4.le.q1) go to 9
l=l-1
write(2,17)
17 format(1x,'\----|','----------|',4('-----------|'),
*'-------------/')
write(2,*)
If (pri.eq.1) go to 100
go to 101
100 write(2,34)
34 format(20x,'График изменения напряжений на зажимах схемы,
*',/,15x,'конденсаторе С1 и катушке L3 при изменении параметра Q',
*/,25x,'и скачкообразном изменении частоты')
write(2,*)
write(2,5)
write(2,52)
write(2,5)
call grafik(udad,udad,udc1,udc1,udl3,udl3,l)
write(2,*)
write(2,105)
101 if (pri.ne.1) go to 102
go to 103
102 write(2,33)
33 format(20x,'График изменения напряжений на зажимах схемы,
*',/,15x,'конденсаторе С1 и катушке L3 при изменении параметра Q')
write(2,*)
write(2,5)
write(2,52)
write(2,5)
call grafik(udad,udad,udc1,udc1,udl3,udl3,l)
write(2,*)
write(2,104)
103 continue
52 format(20x,'Udad=@ Udc1=* Udl3=%')
write(2,*)
write(2,5)
write(2,106)
106 format(20x,'idc1=! idl3=%')
write(2,5)
104 format(21x,'График изменения токов на зажимах схемы,
*',/,15x,'конденсаторе С1 и катушке L3 при изменении параметра Q')
105 format(21x,'График изменения токов на зажимах схемы,
*',/,15x,'конденсаторе С1 и катушке L3 при изменении параметра Q',
*/,25x,'и скачкообразном изменении частоты')
call grafik(idc1,idc1,idc1,idl3,idl3,idl3,l)
pri=pri+1
if (pri.eq.1) go to 27
close(2)
stop
end
c Вычесление определенного интеграла методом Симпсона
subroutine pr(mas,t,n,o)
real mas(60)
H=T/N
S1=0.
S2=0.
DO 61 I=2,N-1,2
S1=S1+mas(I)**2
61 CONTINUE
DO 62 I=3,N-1,2
S2=S2+mas(I)**2
62 CONTINUE
o=(mas(1)**2+4.*S1+2.*S2+mas(N)**2)*H/3.
o=SQRT(o/T)
return
end
c Вычисление максимального и минимального значения фунцкции
subroutine p(a,b,v,g,d,e,pmin,pmax)
dimension a(50),b(50),v(50),g(50),d(50),e(50)
pmax=v(1)
pmin=v(1)
do 2 i=1,50
if (a(i).lt.pmin) pmin=a(i)
if (b(i).lt.pmin) pmin=b(i)
if (v(i).lt.pmin) pmin=v(i)
if (g(i).lt.pmin) pmin=g(i)
if (d(i).lt.pmin) pmin=d(i)
if (e(i).lt.pmin) pmin=e(i)
if (b(i).gt.pmax) pmax=b(i)
if (a(i).gt.pmax) pmax=a(i)
if (v(i).gt.pmax) pmax=v(i)
if (g(i).gt.pmax) pmax=g(i)
if (d(i).gt.pmax) pmax=d(i)
2 if (e(i).gt.pmax) pmax=e(i)
return
end
c Подпрограмма вывода графиков
subroutine grafik(v,w,x,y,z,r,n)
dimension lv(100),v(50),w(50),x(50),y(50),z(50),r(50)
xmax=0
xmin=0
call p(v,w,x,y,z,r,xmin,xmax)
do 3 i=1,n
k1=(v(i)-xmin)*75/(xmax-xmin)+1
k2=(w(i)-xmin)*75/(xmax-xmin)+1
k3=(x(i)-xmin)*75/(xmax-xmin)+1
k4=(y(i)-xmin)*75/(xmax-xmin)+1
k5=(z(i)-xmin)*75/(xmax-xmin)+1
k6=(r(i)-xmin)*75/(xmax-xmin)+1
do 4 j=1,75
4 lv(j)=' '
lv(40)='|'
lv(k1)='$'
lv(K2)='@'
lv(k3)='!'
lv(k4)='*'
lv(k5)='&'
lv(k6)='%'
3 write(2,7)(lv(k),k=1,75)
7 format(1x,127a1)
return
end
subroutine faza(a,b,ff,pi)
if (a.gt.0.and.b.ge.0) then
ff=atan(b/a)
else if(a.lt.0.and.b.gt.0) then
ff=atan(-a/b)+pi/2.
else if(a.lt.0.and.b.le.0) then
ff=(atan(b/a)+pi/2.)*(-1)
else if(a.gt.0.and.b.lt.0) then
ff=atan(b/a)
end if
return
end
ПРИЛОЖЕНИЕ Б
Блок-схема головной программы
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.