Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Текст программы ⇐ ПредыдущаяСтр 2 из 2
#include< stdio.h> #include< math.h> #define N 200 #include< stdlib.h> char*fgets(char*s, int n, FILE*stream); float time(int n, float *t); void vhod(float *t, float *mas, int n); void vihod(float *t, float *mas, float *nmas, int n); void print(float *t, float *mas, float *nmas, int n); float zad(float *x, int n); void toch(int n, float *t, float *a); void toch2(int n, float *t, float *b, float *a); int main() { int n=15; int i, f1, f2; float t[200], x[200], y[200], p1, p2, d; char str[80]; FILE *fp; fp=fopen(" zas.txt", " r"); if(fp==NULL) { printf(" \n file ne otkryt\n"); exit(1); } while (fgets (str, 81, fp)! =NULL) { puts(str); } fclose(fp); f2=0; do { printf(" \nVVedite nomer deystvia \n"); printf(" 1-podschet and vivod massivov \n"); printf(" 2-vipolnenie zadachi\n"); printf(" 3-podschet s tochnost'yu\n"); printf(" 4-sapis' v file\n"); scanf(" %d", & f1); switch(f1) { case 1: {time(n, t); vhod(t, x, n); vihod(t, x, y, n); print(t, x, y, n); }; break; case 2: {printf(" \nTIME(Uvh)=%f", zad(x, n)); printf(" \nTIME(Uvih)=%f", zad(y, n)); printf(" \n"); }; break; case 3: {printf(" \ntoch VHODa\n"); toch(n, t, x); printf(" \n"); printf(" \ntoch VIHODa\n"); toch2(n, t, x, y); }; break; case 4: FILE *fp2; fp2=fopen(" dan.txt", " w"); if(fp2==NULL) { printf(" \n file ne otkryt\n"); exit(1); } for(int i=0; i< 70; i++) { fprintf(fp2, " \n %.2.5f", t[i]); } fprintf(fp2, " %c", 13); for(int i=0; i< 70; i++) { fprintf(fp2, " \n %.2.5f", x[i]); } fprintf(fp2, " %c", 13); fprintf(fp2, " %c", 13); for(int i=0; i< 70; i++) { fprintf(fp2, " \n %.2.5f", y[i]); } fclose(fp2);; break; case 5:; break; } printf(" \nhotite prodoljit'??? (0-yes; 1-no)\n"); scanf(" %d", & f2); } while (f2==0); } float time(int n, float *t) { int i; float dt, mast, tn=0, tk=40; dt=(tk-tn)/(n-1); mast=tn; for (i=0; i< n; i++) { *(t+i)=mast; mast+=dt; } return *t; } void vhod(float *t, float *mas, int n) {int i; float a, b, U, tn, tk, t1; a=0.25; b=0.75; U=75; t1=20; tn=0; tk=40; for(i=0; i< n; i++) { if (*(t+i)< t1) *(mas+i)=U*(1-exp(-a*(*(t+i)))); else *(mas+i)=U*(1-exp(-a*t1))*exp(-b*(*(t+i)-t1)); } } void vihod(float *t, float *mas, float *nmas, int n) {int i; for (i=0; i< n; i++) { if (*(mas+i)> 20) *(nmas+i)=40; else *(nmas+i)=0.1*(*(mas+i))*(*(mas+i)); } } void print(float *t, float *mas, float *nmas, int n) { int i; printf(" time \t\t vhod \t\t vihod "); for(i=0; i< n; i++) { printf(" \n%5.5f \t %5.5f \t %5.5f ", t[i], mas[i], nmas[i]); } printf(" \n"); } float zad(float *mas, int n) { int i; float vmax, k; vmax=0; for (i=0; i< n; i++) { if (vmax< mas[i]) vmax=mas[i]; } k=0; float dt, tn=0, tk=40; dt=(tk-tn)/(n-1); for(i=0; i< n; i++) { if (mas[i]> 0.7*vmax) k+=dt; } return k; } void toch(int n, float *t, float *a) { n=15; float p1, p2, d; p1=zad(a, n); for(n=30; n< 200; n=n*2) { time(n, t); vhod(t, a, n); p2=zad(a, n); d=fabs((p1-p2)/p2); p1=p2; if (d< 0.01) {printf(" p2=%.2.5f d=%.2.5f n=%d", p2, d, n); } } }
void toch2(int n, float *t, float *b, float *a) { n=15; float p1, p2, d; p1=zad(a, n); for(n=30; n< 200; n=n*2) { time(n, t); vhod(t, b, n); vihod(t, b, a, n); p2=zad(a, n); d=fabs((p1-p2)/p2); p1=p2; if (d< 0.01) {printf(" p2=%.2.5f d=%.2.5f n=%d", p2, d, n); } } }
|