[gelöst] for Schleife lässt Programm nach Durlauf abstürzen?

Alles rund um die Programmierung mit Qt
Antworten
hbc
Beiträge: 22
Registriert: 23. Februar 2007 09:40
Wohnort: Berlin

[gelöst] for Schleife lässt Programm nach Durlauf abstürzen?

Beitrag von hbc »

Hallo,

ich habe zur Berechnung einiger Punkte die auf dem Drucker ausgegeben werden sollen folgende Schleife erstellt:

Code: Alles auswählen

for (int i = 0; i <= (2*Stabanzahl); i++)
	{
		xs = x2 - (Umrechnung(laengeStab[i],d.device()))/M;		
		ys= ys - (Umrechnung(Abstand,d.device()))/M;
		d.drawLine(x2,ys,xs,ys);
		i++;
		xs = x2 - (Umrechnung(laengeStab[i],d.device()))/M;		
		ys = ys - (Umrechnung(Stabstaerke,d.device()))/M;		
		d.drawLine(x2,ys,xs,ys);
		
	}
das Programm durläuft die Schleife bis zum Schluß, doch am Ende, also wen die Bedingung nicht mehr erfüllt ist, stüzt das Programm einfach ab.
Ich habe schon ewig nach dem Fehler gesucht mir fällt nichts mehr ein, kann mir jemand da weiter helfen?

Gruß
Frank
Zuletzt geändert von hbc am 29. August 2007 09:59, insgesamt 1-mal geändert.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Auch schon mal mit dem Debugger durchlaufen lassen?
hbc
Beiträge: 22
Registriert: 23. Februar 2007 09:40
Wohnort: Berlin

Beitrag von hbc »

ja auch schon debuggt, ich bekomme als Antwort "Normal beendet",
ist schon sehr komisch :(

Gruß
Frank
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Zu wenig Code, aber das sieht mir falsch aus:

Code: Alles auswählen

for (int i = 0; i <= (2*Stabanzahl); i++) 
und sowas ist noch verwirrender:

Code: Alles auswählen

      i++; 
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Oder was Christian81 eigentlich sagen will: Kannst du sicherstellen, daß laengeStab immer eine gerade Anzahl hat.
hbc
Beiträge: 22
Registriert: 23. Februar 2007 09:40
Wohnort: Berlin

Beitrag von hbc »

ich habe den Fehler gefunden (Asche auf mein Haupt) die korreckte Einleitung für die for Schleife muss heissen

Code: Alles auswählen

	for (int i = 0; i < (2*Stabanzahl); i++)
durch das hochzälen in der Schleife wurde der Zähler ein mal zu viel hochgezählt und ist hinter das Ende der Liste (laengeStab ) gelangt und abgestüzt, was nicht immer passierte, aber genau das hätte mich eigentlich gleich auf den Fehler bringen müssen :oops:

vielen Dank an alle

Frank
Antworten