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
Alles
  • Alles
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Mitglieder
  3. Baerchen1

Beiträge von Baerchen1

  • Wo ist der Fehler im Programm?

    • Baerchen1
    • 27. November 2005 um 13:44

    Also erst mal vielen Dank!!! ich hab jetzt die ganze Zeit hin und her probiert. und es werden trotzdem keine Werte in die Datei geschrieben, die ist immer leer. Ich weiß mir jetzt keinen Rat mehr

  • Wo ist der Fehler im Programm?

    • Baerchen1
    • 27. November 2005 um 12:21

    Na, ich weiß auch nicht so recht.. ich hab das Gefühl, dass die Werte nicht richtig in der Datei gespeichert werden. und deswegen wird auch nichts ausgegeben, wenn ich von der Datei lesen will.

  • Wo ist der Fehler im Programm?

    • Baerchen1
    • 27. November 2005 um 11:59

    Hallo. bitte helft mir, ich hab morgen Prüfung im C-Programmieren!!
    Ich hab grad ein Programm egschrieben, funktioniert aber noch nicht ganz richtig, wer kann mir büdde sagen, was da falsch ist?? :engel:

    Das Programm liest n orte ein(x und y Koordinaten), die in eine Liste eingelesen werden sollen. Dann in untere Matrix die Entfernungen zwischen allen Orten.. Danach sollen die Koord. in eine binäre Datei gespeichert werden, und von da wieder gelesen und ausgegeben werden:

    /*-----------------------------------------------------------------------
    SS 2005 - Aufgabe 35 (Listen, Dateien und Matrizen)
    -------------------------------------------------------------------------*/
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    #define maxN 5

    typedef struct ORT {
    float x,y;
    struct ORT *n;
    } ort;

    struct ORT *n=NULL;

    void EntfMatrix(ort *LA, int *N, float A[maxN][maxN])
    { int i,j; float x[maxN],y[maxN];
    struct ORT *anfang=NULL;
    printf("Anzahl Orte: "); scanf("%d",N);
    if (*N>maxN) *N=maxN;
    for (i=0;i<*N;i++)
    { if((LA=(struct ORT*)malloc(sizeof(struct ORT)))!=NULL)
    {n=(struct ORT*)malloc(sizeof(struct ORT));
    printf("Ort %d - x-Wert: ",i+1); scanf("%f",&LA->x);
    x[i]=LA->x;
    printf(" y-Wert: "); scanf("%f",&LA->y);
    y[i]=LA->y;
    LA->n=anfang;
    anfang=LA;
    }
    }

    for (i=0;i<*N;i++)
    {for (j=0;j<i;j++)
    {A[i][j]=sqrt( ( fabs((x[i])*(x[i]) - (x[j])*(x[j])) ) +
    ( fabs((y[i])*(y[i]) - (y[j])*(y[j])) ) );
    printf("%.2f ",A[i][j]);
    }
    printf("\n");
    }
    }

    //------------------------------------------------------------------------
    void SpeichAufDatei(ort *LA, char datname[])
    {FILE *ausdatei; ort *LA_Ausgabe=NULL;
    ausdatei=fopen(datname,"wb");
    LA_Ausgabe=LA;
    while(LA_Ausgabe!=NULL)
    {fwrite(&LA_Ausgabe->x,sizeof(ort),1,ausdatei);
    printf("\n%f ",LA->x);
    fwrite(&LA_Ausgabe->y,sizeof(ort),1,ausdatei);
    printf("%f",LA_Ausgabe->y);
    LA_Ausgabe=LA_Ausgabe->n;
    }
    fclose(ausdatei);
    }
    //------------------------------------------------------------------------
    ort *BildeListeAusDatei(char datname[])
    {FILE *eindatei; ort *LA,*LL,*vorg=NULL;
    int anz=0;
    printf("eingelesen: \n");
    eindatei=fopen(datname,"rb");
    if (eindatei==NULL) {printf("Datei nicht gefunden\n"); return NULL;}
    while (fread(&LA,sizeof(LA),1,eindatei) != NULL)
    {printf("x[%d]= %f y[%d]= %f\n",anz,LA->x,anz,LA->y);
    anz++;
    LL=malloc(sizeof(ort));
    LL->n=NULL;
    if (anz>1) vorg->n=LL; //Vorg.mit neuem Listelem. verknuepfen
    vorg=LL;
    if (anz==1) LA=LL; //Adr.des 1.Elem.ist Listadr.
    LL->ort=ort; //Datensatz zum Ort in Listelem. einfuegen
    }
    fclose(eindatei);
    return LA;
    }

    //------------------------------------------------------------------------
    void main()
    { float A[maxN][maxN];
    int N,anz;
    char datname[33]="C:/DJGPP/bin/pruef35.bin";
    ort *LA=NULL;
    clrscr();
    EntfMatrix(LA,&N,A);
    SpeichAufDatei(LA,datname);
    LA=BildeListeAusDatei(datname);
    getche();
    }

Rechtliches

Impressum

Datenschutzerklärung