120
Programm zur Berechnung des Geschwindigkeitsverhältnisses auf dem Stromverhältnis
/*******************************************************************/ /* Programm: iv-cv.exe */ /* */ /* Zweck: Berechnung des Geschwindigkeitsverh„lt- */ /* nisses c/cm aus gemessenem Stromverh„ltnis */ /* von senkrecht aufeinanderstehenden Sonden */ /* Genauigkeit: relativer Fehler < 0.0001 */ /* */ /* Datum: 16.10.'91 */ /* Autor: Thomas St”ckle, IRS, Universit„t Stuttgart */ /*******************************************************************/ #include<stdio.h> #include<math.h> #include<graph.h> #include<string.h> void titel(void); main() { int i,n,flag;
char wahl, temp[60];
double A,B,gamma,fak,deltavv,vv,gemiv,iv,av=10; double summand; _setvideomode(_ERESCOLOR); titel(); _settextwindow(8,11,24,78); _setcolor(15); do { _clearscreen(_GWINDOW); do { _settextposition(2,56); printf(" "); _settextposition(2,2);
_outtext("Geben Sie das gemessene Stromverh„ltnis ein : Is/Ip = "); scanf("%lf",&gemiv);
}
while (gemiv<=1.0055 || gemiv>=10.0); vv=0.1; deltavv=2; flag=0; do { B=0; A=2/1.77245*exp(-(vv*vv)); gamma=.88623; n=0; do { av=iv;
121
fak=1; for (i=1;i<=n;i++) fak=fak*i; if (n!=0) gamma=gamma*(2*n+1)/2; summand=pow(vv,n)/fak; B=B+summand*summand*gamma; iv=A*B; n++; } while (fabs(iv-av)/iv>0.0001); if (iv>gemiv) { flag=1; deltavv=deltavv/2; vv=vv-deltavv; } else { if (flag==1) deltavv=deltavv/2; vv=vv+deltavv; } } while(fabs(gemiv-iv)/gemiv>0.0001); _settextposition(7,2); sprintf(temp,"Geschwindigkeitsverh„ltnis : c/cm = %7.4lf",vv); _outtext(temp); _settextposition(9,2);printf("(zugeh”riges Stromverh„ltnis : Is/Ip =%7.4lf)",iv); _settextposition(16,45);
printf("weitere Eingaben (j/n)"); do
wahl=getch();
while (wahl!='j' && wahl!='n'); }
while (wahl!='n');
_clearscreen(_GCLEARSCREEN); }
void titel (void) { _clearscreen(_GCLEARSCREEN); _setcolor(9); _rectangle(_GBORDER,10,22,630,341); _rectangle(_GBORDER,15,27,625,336); _setcolor(9); _rectangle(_GFILLINTERIOR,150,0,490,45); _setcolor(0); _rectangle(_GBORDER,155,5,485,40); _rectangle(_GFILLINTERIOR,160,10,480,35); _settextposition(2,27); _outtext("Geschwindigkeitsverh„ltnis"); }