All pastes #511231 Raw Edit

Unnamed

public c v1 · immutable
#511231 ·published 2007-05-26 10:16 UTC
rendered paste body
#define WICKLUNGSDICHTE 500/0.07#define MAX_ANZAHL_ZEILEN 100#define MAX_ANZAHL_SPALTEN 2 #define MAX_ANZAHL_MUELL 50#include <stdio.h>int maximum_B_suchen(double*,int);double flaeche1(double,int);double flaeche2(double,int,int);int main (int argc, char* argv[]){if (argc!=2) { printf("Ungueltige Argumentenanzahl!\n"); printf("Usage: hysterese <Datei mit Messwerten>\n"); }else    {   FILE *datei;   datei=fopen(argv[1],"r");   if (datei==NULL)    {    printf("Konnte Datei nicht oeffnen\n");    }   else      {      int zaehler=0;      double werte[MAX_ANZAHL_ZEILEN][MAX_ANZAHL_SPALTEN];      int zeit;       char muell[MAX_ANZAHL_MUELL];      char c;      double temp1;      double temp2;      double temp3;      double flaeche_unten;      double flaeche_oben;      int grenze;      fscanf(datei,"%s%c%s%c%s",&muell[0],&c,&muell[0],&c,&muell[0]);      while (fscanf(datei,"%lf%c%lf%c%lf",&temp1,&c,&temp2,&c,&temp3)==5 && zaehler<=MAX_ANZAHL_SPALTEN)          {          zeit=temp1;          werte[zaehler][1]= temp2*WICKLUNGSDICHTE;          werte[zaehler][2]= temp3*WICKLUNGSDICHTE;          zaehler++;          }      grenze=maximum_B_suchen(&werte[0][0],zaehler);      flaeche_unten=flaeche1(werte[MAX_ANZAHL_ZEILEN][MAX_ANZAHL_SPALTEN],grenze);      flaeche_oben=flaeche2(werte[MAX_ANZAHL_ZEILEN][MAX_ANZAHL_SPALTEN],zaehler,grenze);      printf("Flaeche 1: %lf Flaeche 2: %lf\n",flaeche_unten,flaeche_oben);          }   fclose (datei);   }}int maximum_B_suchen (double* werte,int zaehler){int spaltennummer;for (int i=1 ; i<zaehler-1 ; i++)  {  if (werte[i-1][2]<werte[i][2] && werte[i][2]>werte[i+1][2])   {   spaltennummer=i;   }  }return spaltennummer;}double flaeche1(double werte, int begrenzung){double flaeche=0;//Flaeche mittels Trapez-Aufteilungfor (int i=1 ; i<begrenzung ; i++)  {  flaeche=flaeche+( (werte[i][1]-werte[i-1][1])*((werte[i][2]+werte[i-1][2])/2) );  }return flaeche;}double flaeche2(double werte, int zaehler , int begrenzung){double flaeche=0;for (int i=begrenzung+1 ; i<zaehler ; i++)  {  flaeche=flaeche+( (werte[i][1]-werte[i-1][1])*((werte[i][2]+werte[i-1][2])/2) );  }return flaeche;}