1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

C Problem Datentypen

  • rumsbums
  • 7. Juni 2012 um 13:43
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • rumsbums
    Punkte
    10
    Beiträge
    1
    • 7. Juni 2012 um 13:43
    • #1

    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

  • Paulchen
    Gast
    • 7. Juni 2012 um 13:56
    • #2

    a) Bitte CODE-Tags verwenden, damit Einrückungen im Code erhalten bleiben. Der Code ist ja unlesbar.

    b) Welches Problem besteht überhaupt konkret?

    c) Kannst du bitte ein möglichst kurzes Stück Code posten, das zum einen ausführbar ist und zum anderen das Problem aufweist, das du hast?

  • Adok
    Punkte
    4.199
    Beiträge
    714
    • 7. Juni 2012 um 17:47
    • #3
    Zitat von rumsbums

    gewichtung = (1./(sqrt(alpha*LC)))*(exp(-M_PI *((float)ii2)/(sqrt((alpha*LC))))*((float)ii2)/(sqrt((alpha*LC)))); Hier funktioniert es nicht!!!!!!!!!!!!!!

    Ich sehe keinen Fehler bezüglich der Datentypen. Ist die Formel richtig?

  • anwesender
    Punkte
    647
    Beiträge
    125
    • 8. Juni 2012 um 01:00
    • #4
    Zitat von rumsbums

    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!!!!!!

    C
    #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

    Soweit hab ichs gelesn, macht das M_PI nach der math.h kein problem? (redefinition)

    Thomas

  • Maximilian Rupp 27. Dezember 2024 um 00:26

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

  1. Datenschutzerklärung
  2. Impressum