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;}