/*************************************************************************
Beispiel C-Programm zur Berechnung der
Parameter a und b der Wachstumskomponente
w=a*t+b
die Messdaten werden von der Datei
DATEN.TXT gelesen.
Die Anzahl der Messdaten
ist beliebig
Die Daten muessen in folgendem Format
als Tabelle auf der Datei liegen:
DATUM MESSWERT
tt.mm.jjjj xxxxx
tt.mm.jjjj xxxxx
....
usw.
Beispiel
anhand 5 Messwerten:
DATUM MESSWERT
DATEI ANFANG
01.01.2004 22000
01.01.2005 22300
01.01.2006
22500
01.01.2007 22550
01.01.2008 22600
DATEI ENDE
************************************************************************/
#include
<stdio.h>
#include
<dos.h>
#include
<math.h>
#include
<bios.h>
#include
<ctype.h>
FILE
*fp1;
float
xx,x,y,yy,xy,a,b,x_,y_,s;
int nn;
int
monat,jahr,tag,k1,kk;
main()
{
/***
DATEN LESEN */
fp1=fopen("daten.txt","r");
if(fp1==0){fclose(fp1);goto
xx;}
xx=0.0;
x=0.0;
nn=0;
y=0.0;
yy=0.0;
xy=0.0;
xx1:
fscanf(fp1,"%d",&tag);
kk=getc(fp1);
if(kk==
EOF)goto ende0;
if(kk!='.')goto
xx1;
if(kk=='.'){
fscanf(fp1,"%d",&monat);
kk=getc(fp1);
fscanf(fp1,"%d",&jahr);
fscanf(fp1,"%d",&k1);
x_=(float)(jahr-2000)+(((float)monat-1)*30+(float)tag)/360;
y_=(float)k1;
y_=(float)log((double)y_);
/* x_
wurde aus dem Datum berechnet */
/* hier
ist x_ die numerische Zeitangabe und y_ der log(Messwert) */
xx=xx+x_*x_;
x=x+x_;
yy=yy+y_*y_;
y=y+y_;
nn++;
xy=xy+x_*y_;
}
goto
xx1;
ende0:
fclose(fp1);
/*****
ENDE DATEN LESEN ****/
/****ERGEBNIS
BERECHNEN ****/
s=xx/nn-x*x/nn/nn;
a=(xy/nn-x*y/nn/nn)/s; /* Zuwachsrate */
b=y/nn-a*x/nn;
a=a*100;
/* Multiplikation mit 100 fuer Ergebnis in % */
printf("\nParameter
der Wachstumskomponente");
printf("\na=%8.2f%%p.a.
mittlere Zuwachsrate \nb=%8.2f",a,b);
xx:
printf("\nProgramm
ENDE");
}
---------------------------------------------------------------------------------------------------------
HOME
Chetan Galerie FotoGalerie Links Sonstiges E-mail