Основы компьютерного моделирования. Исследование пассивного четырехполюсника: Методические указания к прохождению компьютерной практики, страница 6

Для моделирования работы заданного четырехполюсника по полученному алгоритму составим программу построения переходного процесса на языке высокого уровня Си:

#include<stdio.h>;                                                  //подключение

#include<math.h>;                                                  //используемых

#include<conio.h>;                                                 //библиотек

#include<graphics.h>;                                            //

floatt,R1,R2,C,T1,T2,dt,Tpp,x[550],y[550];           //объявление используемых

int M1,M2,i,gd=DETECT,gm;                                 //переменных

main()

{

printf("Введите значения R1,R2,C\n");                  //вывод сообщения на экран

L1:scanf("%f",&R1); if(R1<=0){printf("Значениe R1 не может быть отрицательным или равным нулю, введите его заново: ");

goto L1;}

L2:scanf("%f",&R2); if(R2<=0){printf("Значениe R2 не может быть отрицательным или равным нулю, введите его заново: ");

goto L2;}

L3:scanf("%f",&C); if(C<=0){printf("Значениe C не может быть отрицательным или равным нулю, введите его заново: ");

gotoL3;}

T1=R2*C; T2=(R1+R2)*C;                                    //присвоение переменным

dt=0.001; Tpp=4*T2;                                              //соответствующих

                                                                                 //значений

M1=120;                                                                  //задаем масштаб входного

M2=178;                                                                  //и выходного напряжений

printf("Время переходного процесса равно %f,c\n",Tpp);

for(i=0;i<=550;i++)

{

x[i]=sin(t);

y[i]=(T2/(T2+dt))*(y[i-1]+T1/T2*(((T1+dt)/T1)*x[i]-x[i-1]));

t=t+0.05;

}

initgraph(&gd,&gm,"c:\\turboc\\bgi");                    //выходвграфический

                                                                                 //режим

setcolor(BROWN);                                                   //цветлиний

setbkcolor(WHITE);                                                 //цветфона

line(20,240,600,240);                                              //

line(30,20,30,420);                                                  //

line(580,242,600,240);                                            //

line(580,238,600,240);                                            //

line(30,20,32,40);                                                    //

line(30,20,28,40);                                                    //вычерчивание

for (i=100;i<=550;i=i+90)                                     //

line(i,237,i,243);                                                      //осей

for (i=60;i<=400;i=i+20)                                       //

line(33,i,27,i);                                                          //координат

outtextxy(88,245,"0,02");                                         //

outtextxy(178,245,"0,04");                                       //

outtextxy(268,245,"0,06");                                       //

outtextxy(358,245,"0,08");                                       //

outtextxy(448,245,"0,1");                                         //

outtextxy(538,245,"0,12");                                       //

outtextxy(3,177,"0,5");                                             //

outtextxy(10,117,"1");                                              //

outtextxy(590,245,"t,c");                                          //подписьосей

outtextxy(35,20,"U,B");                                            //координат

outtextxy(70,110,"UBx");                                         //подписьвходногои

outtextxy(135,385,"UBыx");                                    //выходного напряжения

for(i=0;i<550;i++)

{

line(i+50,240-x[i]*M1,i+50,240-x[i-1]*M1);         //построение графика переходного                                                                           //переходного

line(i+49,240-y[i]*M2,i+49,240-y[i-1]*M2);         //процесса

}