Vivod.Cpp
#include "myheader.h"
int vivod(int n, float t[], float Uvx[], float Uvih[])
{int i;
printf ("\n Box");
printf ("\n N t Uvx Uvih");
for (i=0; i< n; i++)
printf("\n %2d %3.1f %4.1f %5.2f", i+1,t[i], Uvx[i], Uvih[i]);
return 0;}
Vremya.Cpp
#include "myheader.h"
int vremya(int n, float t[]){
float dt=0,tn=10, tk=35; int i;
dt=(tk-tn)/(n-1);
for (i=0;i<n;i++)
t[i]=tn + i*dt;
return 0;}
Vxodvihod.Cpp
#include "myheader.h"
int UvhUvih (int n,float t[],float Uvx[], float Uvih[]){
int i, a=12, b=12 , b1=10, Uvx1=5, a3=1, a4=2, Uvx2=15, Uvx3=30;
float t1=22.5, a1=0.25, a2=0.5, b2=7.75, b3=0.25, b4=-29.75, tn=10;
vremya(n,t);
for (i=0;i<n;i++)
{if (t[i]<=t1) Uvx[i] = a*(t[i]-tn);
else Uvx[i] = a*(t1-tn)-b*(t[i]-t1);
if (Uvx[i]<=Uvx1) Uvih[i]= a1*Uvx[i]+b1;
else
if ((Uvx1<Uvx[i])&&(Uvx[i]<=Uvx2)) Uvih[i]= a2*Uvx[i]+b2;
else
if (Uvx[i]>Uvx3) Uvih[i]= a4*Uvx[i]+b4;
else Uvih[i] = a3*Uvx[i]+b3;}
return 0;}
zap.cpp
#include "myheader.h"
int zap(int n, float Uvx[],float Uvih[]){
FILE*z; int i;
z = fopen ("z.txt","w");
if (z==NULL){printf ("\n mistake");
exit (1);}
else
{for (i=0;i<n;i++) fprintf (z, "\nUvx= %5.2f Uvih=%5.2f", Uvx[i], Uvih[i]);
fclose (z);
} return 0;}
Выводы по программе:
В данной курсовой работе поставленную задачу реализовать удалось.
Написана программа, формирующая массивы времени, входного и выходного сигналов.
Программа вычисляет длительность импульса выходного сигнала w=11.61 , с погрешностью P=0.038, при числе точек n=704.
Выведена на экран таблица со значениями массивов времени, входного и выходного сигналов.
Произведена запись в файл результатов вычислений Uvx[i], Uvih[i].