Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursovaya_dlya_pechati.docx
Скачиваний:
0
Добавлен:
27.01.2020
Размер:
144.23 Кб
Скачать

Исходный код программы:

#include <stdio.h>

#include <math.h>

#include <iostream>

#include <windows.h>

#define Nm 9999

using namespace std;

void TIME(float *t, int N)

{

float tn=-10, tk=10, d;

int i;

d=(tk-tn)/(N-1);

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

{

t[i]=tn+i*d;

}

}

void U_ENTER (float *t, float Usr, float *Uin, int N)

{

int i=0;

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

{

if(t[i]<0)

Uin[i]=(25*t[i]+250);

else if (t[i]>0)

Uin[i]=(-25*t[i]+250);

}

}

void U_EXIT (float *t, float Usr,float *Uin, float *Uout, int N)

{

float U0=50, U1=100, a=400;

int i;

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

{

if (Uin[i]<U0)

{

Uout[i]=pow(a*(pow(Uin[i],2)),1.0/3);

}

else

{

Uout[i]=U1;

}

}

}

float U_SREDNEE(float *U,int N )

{

float Usr=0;

int i;

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

Usr=Usr+U[i];

Usr=Usr/N;

return Usr;

}

float TIMESR(float *U, float Usr, float *t, int N)

{

int X=0;float d;int i;

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

{

if(U[i]>Usr)

{

X++;

}

}

d=(t[N-1]-t[0])/(N-1);

float mtime;

mtime=X*d;

return mtime;

}

void TOCHNOST1 (float *t, float *Uin, float *Uout, int N)

{

float d1, p11, p12, Usr;

{

p11=TIMESR(Uin,Usr,t, N);

while (N<Nm)

{

N=2*N;

TIME(t,N);

U_ENTER(t,Usr,Uin,N);

p12=TIMESR(Uin,Usr,t, N);

d1=fabs((p11-p12)/p12);

if(d1<0.01)

break;

else

p11=p12;

}

printf("\nТочность входа=%4.8f; dt=%8.8f; n=%d\n", p12, d1, N);

}

}

void TOCHNOST2 (float *t, float *Uin, float *Uout,int N)

{

float d2,p21, p22,Usr;

{

p21=TIMESR(Uout,Usr,t,N);

while (N<Nm)

{

N=2*N;

TIME(t, N);

U_EXIT(t,Usr,Uin,Uout,N);

p22=TIMESR(Uout,Usr,t, N);

d2=fabs((p21-p22)/p22);

if(d2<0.01)

break;

else

p21=p22;

}

printf("\nТочность выхода=%4.8f; dt=%8.8f; n=%d\n", p22, d2, N);

}

}

void SCREEN(float *t, float *Uin, float *Uout, int N)

{

int i;

printf(" Время U входа U выхода");

printf("\n");

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

{

printf("%7.2f %7.2f %7.2f", t[i], Uin[i], Uout[i]);

printf("\n");

}

}

void STARTSCR()

{

FILE*fp;

fp=fopen("startscr.txt", "r");

if(fp==NULL){

printf("\nНе удалось найти файл startscr.txt \n");

}

char str[80];

while(fgets(str, 81, fp) !=NULL){

puts(str);

}

fclose(fp);

}

void SAVE(int N, float *t, float *Uin, float *Uout)

{

FILE *f1,*f2,*f3;

f1=fopen("time.txt","w");

f2=fopen("Uin.txt","w");

f3=fopen("Uout.txt","w");

for(int i=0;i<N;i++)

{

fprintf (f1,"\n %6.5f",t[i]);

fprintf (f2,"\n %6.5f",Uin[i]);

fprintf (f3,"\n %6.5f",Uout[i]);

}

fclose(f1);

fclose(f2);

fclose(f3);

}

int main()

{

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

int N=15,k,l;

float t[Nm],Usr ,Uin[Nm], Uout[Nm], time1, time2,Usr_in, Usr_out;

while (1)

{

printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nПрограмма расчёта входного и выходного Напряжений. \n2012-2012 All rights reserved (c)"

"\n1 - О программе"

"\n2 - Вычисление и вывод таблицы Времени, Uin[i] и Uout[i]"

"\n3 - Вывод результата с заданным параметром"

"\n4 - Вывод результата с параметром с учётом погрешности"

"\n5 - Сохранить данные таблицы как *.txt"

"\n\n\nВыберите номер нужного действия: ");

scanf("%d", &k);

switch (k)

{

case 1:

STARTSCR();

break;

case 2:

N=15;

TIME(t,N);

U_ENTER(t,Usr,Uin,N);

U_EXIT(t,Usr,Uin,Uout,N);

SCREEN(t,Uin,Uout,N);

printf("\nСпасибо, что воспользовались нашей программой.\n");

break;

case 3:

N=20;

TIME(t,N);

U_ENTER(t,Usr,Uin,N);

U_EXIT(t,Usr,Uin,Uout,N);

Usr_in=U_SREDNEE(Uin, N);

time1=TIMESR(Uin, Usr_in, t, N);

Usr_out=U_SREDNEE(Uout, N);

time2=TIMESR(Uout, Usr_out, t, N);

printf("\nВремя при котором Uin больше ср.зн.Uin=%4.3f", time1);

printf("\nВремя при котором Uout больше ср.зн.Uout=%4.3f", time2);

printf("\nСпасибо, что воспользовались нашей программой.\n");

break;

case 4:

N=15;

TIME(t,N);

U_ENTER(t,Usr,Uin,N);

U_EXIT(t,Usr,Uin,Uout,N);

Usr_in=U_SREDNEE(Uin, N);

time1=TIMESR(Uin, Usr_in, t, N);

TOCHNOST1(t,Uin, Uout, N);

Usr_out=U_SREDNEE(Uout, N);

time2=TIMESR(Uout, Usr_out, t, N);

TOCHNOST2(t,Uin, Uout, N);

break;

case 5:

TIME(t,50);

U_ENTER(t,Usr,Uin,50);

U_EXIT(t,Usr,Uin,Uout,50);

SAVE(50, t, Uin, Uout);

printf("\nДанные успешно сохранены.\n");

break;

default:

printf("\nСделан неправильный выбор, пожалуйста повторите:\n");

break;

}

printf("\nЖелаете продолжить бесплатное пользование программой? \n1 - Да; \n2 - Нет, выйти;\n");

scanf("%d", &l);

if (l==2)

break;

}

return 0;

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]