Sorungprogi - schleifenproblem

Von: , Frage gestellt am Mi, 27. Jun 2007

hallo leute
ich hoffe mir kann hier jemand helfen, ich hab versucht, meine Fehler selber zu finden, aber es klappt einfach nicht
Ich verstehe nicht wieso. Ich meine wieso wiederholt sich eine for schleife obwohl ich davor keine do-schleife gebaut habe
die Stelle mit den Durchgängen, das wiederholt sich bzw. versucht es, aber irgewndiwe geht dann gart nichts mehr
Hoffe es gibt da draussen jemanden, der mir helfen kann
Ich glaube es gab irgendein code, womit man den Text unten verstecken konnte oder so (wie spoiler) aber ich weiss nicht wie, tut mir leid^^"


// C++ Trainer, 3.5.2007, all rights reserved
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
double sprung (int,int);
void Eingabe (void);
struct sp
{ int Startnummer;
char Name[20];
char Vorname[20];
char Land[4];
double Punkte;
bool Geschlecht;
}
//true für männlich
*Springer; //};oder struct sp Springer[5];
//dynamisch festlegen *Springer
int az,asp;
bool g;


int main()
{ int i,j;
Eingabe();
randomize();
if(g==1)asp=10;
else asp=8;
for(i=1;i<asp+1;i++)
{ for(j=1;j<=az;j++)
{ sprung(j,i);
};
}
getchar();
return 0;
}





double sprung (int springer,int sprung)
{ int a,i,j,s;
double wert[7],su=0,ma=0,mi=10,pkt; //az-->anzahl der springer
clrscr(); //asp anzahl der sprünge
for(i=1;i<=asp;i++)
{ for(j=1;j<=az;j++)
{ clrscr();
gotoxy(3,5);
cout<<"Durchgang : "<<i;
gotoxy(2,7);
cout<<"Startnummer : "<<j;
gotoxy(3,10);
cout<<"Name : "<<Springer[j].Name<<" Vorname : "<<Springer[j].Vorname<<" Land :"<<Springer[j].Land;
gotoxy(3,12);
cout<<"Schwierigkeitsgrad :";
cin>>s;
gotoxy(30,13);
cout<<"S P R U N G ! ! !";
gotoxy(3,15);
cout<<" Wert 1 Wert 2 Wert 3 Wert 4 Wert 5 Wert 6 Wert 7\n";
cout<<fixed<<setprecision(1);
for(a=1;a<8;a++)
{ wert[a]=random(21)/2.0;
if(wert[a]>ma)ma=wert[a];
if (wert[a]<mi)mi=wert[a];
su+=wert[a];
cout<<setw(11)<<wert[a];
};
su=su-ma-mi;
pkt=s*0.6*su;
Springer[i].Punkte+=pkt;
gotoxy(5,20);
cout<<"Punktzahl : "<<pkt;
gotoxy(5,23);
cout<<"Gesamtpunktzahl : "<<su;
getch();
};

};

clrscr();
gotoxy(20,3);cout<<"Zusammenfassung";
gotoxy(20,4);cout<<"----------------2";
};
void Eingabe(void)
{ int i;
char Geschl;
gotoxy(15,3);
cout<<"Wettkampf Turmspringen ";
gotoxy(3,5);
cout<<"Anzahl der Springer : ";
cin>>az;
Springer=new struct sp[az+1];
gotoxy(3,7);
cout<<"Herren oder Frauenwettkampf (H/F)";
cin>>Geschl;
if (Geschl=='H'||Geschl=='h')g=1;
else g=0;
gotoxy(3,8);
cout<<"Startnummer Name Vorname Land ";
for(i=1;i<=az;i++)
{ gotoxy (4,9);
Springer[i].Startnummer=i;
gotoxy(5,9+i);
cout<<Springer[i].Startnummer;
gotoxy(16,9+i);
cin>>Springer[i].Name;
gotoxy(30,9+i);
cin>>Springer[i].Vorname;
gotoxy(45,9+i);
cin>>Springer[i].Land;
Springer[i].Punkte=0;
Springer[i].Geschlecht=g;
};
}

5 Antworten zu dieser Frage

  1. Antwort von nach 10 Minuten 0 hilfreich
    Re: Sorungprogi - schleifenproblem

    Hallo, ich hoffe mir kann hier jemand helfen, ich hab versucht, meine
    Fehler selber zu finden, aber es klappt einfach nicht
    Was klappt nicht? Was sollte passieren, was passiert stattdessen? Ich verstehe nicht wieso. Ich meine wieso wiederholt sich
    eine for schleife obwohl ich davor keine do-schleife gebaut
    habe
    Hast du prinzipielle Funktionsweise von for-Schleifen verstanden? Welche for-Schleife meinst du genau? die Stelle mit den Durchgängen, das wiederholt sich bzw.
    versucht es, aber irgewndiwe geht dann gart nichts mehr
    Was geht nicht mehr? Hoffe es gibt da draussen jemanden, der mir helfen kann
    Ich glaube es gab irgendein code, womit man den Text unten
    verstecken konnte oder so (wie spoiler) aber ich weiss nicht
    wie, tut mir leid^^"
    du solltest den Code in <pre>-Tags setzen.

    Ich würde dir auch gerne helfen, aber unter Linux gibt es keine conio.h, ich kann dein Programm leider deswegen nicht kompilieren.

    Grüße,
    Moritz

    • Antwort von nach 4 Stunden 0 hilfreich
      Re^2: Sorungprogi - schleifenproblem

      ja also wenn man das progi startet, muss man doch erst anzahl der springer, ob es w/m und dann gibt man die namen, vornamen und land ein
      danach kommt durchgang 1,2,....,8/10 startnummer 1,2,3....;n
      nach dem durchgang 8 bzw. 10 erreicht wurde, wird das progi wiederholt sich wieder. Bei durchgang stehet wieder 1 und es hängt
      ich weiss nicht was ich falsch gemacht hab

  2. Antwort von nach 43 Minuten 0 hilfreich
    Re: Sprungprogramm - schleifenproblem

    Auch hallo.

    Mal grundätzlich gefragt: wie heisst der Compiler ?
    Mit MS Visual Studio 6.0 (+conio.h ;-) ) gibt es folgende Fehlermeldungen:

    d:\programme\microsoft visual studio\myprojects\www\www.cpp(25) : error C2065: 'randomize' : nichtdeklarierter Bezeichner
    d:\programme\microsoft visual studio\myprojects\www\www.cpp(33) : error C2065: 'getchar' : nichtdeklarierter Bezeichner
    d:\programme\microsoft visual studio\myprojects\www\www.cpp(44) : error C2065: 'clrscr' : nichtdeklarierter Bezeichner
    d:\programme\microsoft visual studio\myprojects\www\www.cpp(48) : error C2065: 'gotoxy' : nichtdeklarierter Bezeichner
    d:\programme\microsoft visual studio\myprojects\www\www.cpp(61) : error C2065: 'fixed' : nichtdeklarierter Bezeichner
    d:\programme\microsoft visual studio\myprojects\www\www.cpp(63) : error C2065: 'random' : nichtdeklarierter Bezeichner
    Fehler beim Ausführen von cl.exe.
    www.exe - 6 Fehler, 0 Warnung(en)
    

    mfg M.L.

  3. Antwort von nach 20 Stunden 0 hilfreich
    Re: Sorungprogi - schleifenproblem

    Hallo.

    Ich glaube, dein Problem ist diese Schleife:

    :  for(i=1;i<asp+1;i++)
    :  { for(j=1;j<=az;j++)
    :    { sprung(j,i);
    :    };
    :  }
    

    In Verbindung mit der Schleife in der sprung-Funktion:
    :double sprung (int springer,int sprung)
    :{ int a,i,j,s;
    :  double wert[7],su=0,ma=0,mi=10,pkt; //az-->anzahl der
    :springer
    :  clrscr(); //asp anzahl der sprünge
    :  for(i=1;i<=asp;i++)
    :  {  for(j=1;j<=az;j++)
    :    { clrscr();
    ...
    


    Das heißt, du läufst in der sprung-Funktion schon alle Durchgänge durch, und dann außerhalb aber nochmal. So sieht es für mich auf den ersten Blick jedenfalls aus. Du musst dich entscheiden, wo du die Schleife machen willst, innerhalb oder außerhalb von sprung.

    Sebastian.

    • Antwort von nach einem Tag 0 hilfreich
      Re^2: Sprungprogi - schleifenproblem

      Hallo, Hallo.

      Ich glaube, dein Problem ist diese Schleife:

      [...]
      Das Sehe ich genau so. Ein weiteres Indiz dafür ist, dass Du die Variablen 'springer' und 'sprung', die Du aus der Hauptfunktion übergeben bekommst, in der Funktion sprung(int,int) gar nicht mehr benutzt.
      Warum das Progamm allerdings hängen soll, sehe ich nicht.
      Hängt es sich denn auf (im Sinne einer Endlosschleife) oder gibt es einen Abbruch mit einer Fehlermeldung?
      Hast Du schon mal probiert, das Programm mit deinem Debugger in Einzelschritten laufen zu lassen?

      Gruß Yelmalio

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!