/* Uebungsblatt2: Systemnahe Software WS 98/99 * Berechnung einer Regressionsgeraden */ #include#include #include int main( void ) { double zw1=0, zw2=0, xquer=0, yquer=0 , sxq=0, sxy=0, a=0, b=0, x, y; double n = 0; /* Anzahl der gelesenen Werte */ while( scanf( "%lf%lf", &x, &y ) != EOF ){ n++; /* Anzahl der gelesenen Wertepaare */ zw1 += x * x; zw2 += (x * y); xquer += x; yquer += y; } if( n > 1 ){ xquer = xquer / n; yquer = yquer / n; sxq = (1 / (n-1)) * ( zw1 - n * xquer * xquer); sxy = (1 / (n-1)) * ( zw2 - n * xquer * yquer); b = sxy / sxq; a= - b * xquer + yquer; printf( "b %lf\n", b); printf( "a %lf\n", a); }else{ fprintf( stderr, "ERROR: no or incorrect data!\n" ); return 1; } }
#include#include #include int main( void ) { double a=0, b=0, x, y; printf( " Auswertung: \n" ); /* b einlesen */ /* a einlesen */ scanf( "%*s%lf", &a); scanf( "%*s%lf", &b); while( scanf( "%lf", &x) != EOF ){ y = b * x + a; printf( "( x, y) = (%lf, %lf)\n", x,y); } }
Martina Maier, 4. November 1998