Hey folgender Programmiertext: Ich hab Probleme bei der Errechnung von Daten...Es liegt wohl an den Datentypen...Aber ich weiß nicht wie ich das beheben soll!!!!!!
#include <stdio.h>
#include <math.h>
#include <string.h>
#define MESSSTRECKE 5.6 // Länge Messstrecke
#define CNT 11200 // Anzahl Messwerte
#define LC 0.8 //Grenzwellenlänge lambda c
#define M_PI 3.14159265358979323846 // Pi
int main()
{
int DatEin[CNT]; // Array für einzulesende Rohdaten
int DatAus[CNT]; // Array für gefilterte Ergebnisdaten
char cDatenkopf = 1, szTemp[128]; // Hilfs-cString
FILE*pDatei; // I/O Stream (Dateizeiger)
int ii; // allg. Zaehler
int ii2;
double dX = MESSSTRECKE/CNT; // Stuetzstellenabstand
double iFenster = (double)LC/dX; // Breite des Gaussfensters als Stuetzstellenanzahl
double gewichtung; // Gewichtungsfunktion h(x)
double alpha; // Konstante
double sum;
// Einlesen der Rohdaten
pDatei = fopen( "U:\\Messung01.txt", "r");
if( pDatei == NULL)
{
printf( "Fehler beim Oeffnen der Rohdaten-Datei!\n");
return( -10);
}
// Anfang der Daten nach Datenkopf suchen
while( cDatenkopf)
{
if( !fscanf( pDatei, "%s", szTemp)) return( -11);
if( !strcmp( szTemp, "[PROFILE]")) cDatenkopf = 0;
printf( "%s\n", szTemp);
}
// Daten in Array einlesen
for( ii = 0; ii < CNT; ii++) fscanf( pDatei, "%lf\n", &DatEin[ii]);
fclose( pDatei);
alpha=0.4697;
printf( "\nProcessing %d DataPoints to File \"%s\" ...", CNT, "MessErg01.csv");
//Einlaufphase
for(ii=0;ii<iFenster;ii++)
{
DatAus[ii]=0; //Verfälschung
}
for(ii=iFenster;ii<CNT-iFenster;ii++)
{
//rücksetzen um für jeden Punkt neue Summenbildung zu ermöglichen
sum=0;
//Intervall mit Fehler kleiner 10 hoch -7
for(ii2=-iFenster;ii2<iFenster;ii2++) //int ii2 macht Probleme
{
//Gewichtung an der Stelle "ii2"
gewichtung = (1./(sqrt(alpha*LC)))*(exp(-M_PI *((float)ii2)/(sqrt((alpha*LC))))*((float)ii2)/(sqrt((alpha*LC)))); Hier funktioniert es nicht!!!!!!!!!!!!!!
//printf("%d",gewichtung);
//Mittelwertbildung
sum=DatEin[ii+ii2]*gewichtung;
}
//Berechnung abspeichern
DatAus[ii]=sum;
}
//Auslaufphase
for(ii=CNT-iFenster;ii<CNT;ii++)
{
DatAus[ii]=0; //Verfälschung
}
// Schreiben der Ergebnisdaten
pDatei = fopen( "U:\\MessErg01.csv", "w");
if( pDatei == NULL)
{
printf( "Fehler beim Oeffnen der Ergebnisdatei!\n");
return( -20);
}
for( ii = 0; ii < CNT - 2*iFenster; ii++)
{
fprintf( pDatei, "%lf\n", DatAus[ii]);
}
fclose( pDatei);
printf( " ready.\n");
return(0);
}
Hilfe!!! und bitte versätndlich erklären