1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

C Problem Datentypen

  • rumsbums
  • 7. Juni 2012 um 13:43
  • Unerledigt
  • rumsbums
    1
    rumsbums
    Mitglied
    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
    1
    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
    20
    Adok
    Mitglied
    Reaktionen
    49
    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
    8
    anwesender
    Mitglied
    Reaktionen
    12
    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.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung