Wea - 29
Anfänger
(offline)
Dabei seit 11.2009
14
Beiträge
|
Geschrieben am: 16.11.2010 um 19:18 Uhr
|
|
also des hab ich eingegeben:
____________________________
#include <iostream>
using namespace std;
int main()
{
cout << "Willkommen, heute werden sie rechnen üben, geben sie einfach das richtige Ergebnis ein!" << endl;
}
int i;
for(int i=1; i<30; i++)
int a, b, c, l, p;
a=rand()
b=rand()
c=rand()
{
cout<< "Rechnen sie <<a<< + <<b<< zusammen"<< endl;
cin>> l;
if ( c==l)
{
cout<< " Richtig <<c<<"<< endl;
p=p+1
}
if(c=!l)
{
cout<< "Falsch,richtig wäre <<c<<!"<< endl;
p=p-1
}
}
_______________________________
und des will es net
da steht :
________________________________
error: expected unqualified-id before "for"
error: expected constructor, destructor, or type conversion before `<´ token
error: .... before`++´ token
== Build finished: 3 errors, 0 warnings ==
Frölich sein ist das halbe Leben.
|
|
bredator - 41
Champion
(offline)
Dabei seit 03.2008
5319
Beiträge
|
Geschrieben am: 16.11.2010 um 19:25 Uhr
Zuletzt editiert am: 16.11.2010 um 19:28 Uhr
|
|
Zuerst mal muss der Code, sofern keine extra Methoden verwendet werden, in die Klammern der Main-Methode.
Dann deklarierst du die Variable int i direkt vor der for-Schleife und direkt darin nochmals. Das funktioniert so nicht. Mach die Deklaration vor der for-Schleife weg und pack den Code in die Main-Methode. Dann können wir an den restlichen Teil gehen.
Mehrfachverzweigungen sollten zudem entweder als switch-case oder else if gemacht werden. Zwar kann man es auch nur mit IF realisieren, aber es ist andersherum zum einen besser lesbar, was gemacht wird und zum anderen einfach ein besserer Stil.
Zudem verstehe ich nicht, was das Programm wirklich tun soll. Du deklarierst in der for-Schleife Variablen, die bei jedem Durchlauf neu deklariert werden... da solltest du nochmal das Grundprinzip überdenken.
Lache nicht über jemanden, der einen Schritt zurück macht. Er könnte Anlauf nehmen.
|
|
Wea - 29
Anfänger
(offline)
Dabei seit 11.2009
14
Beiträge
|
Geschrieben am: 16.11.2010 um 19:29 Uhr
|
|
#include <iostream>
using namespace std;
int main(int i)
{
cout << "Willkommen, heute werden sie rechnen üben, geben sie einfach das richtige Ergebnis ein!" << endl;
}
for (i=1; i<30; i++)
int a, b, c, l, p;
a=rand()
b=rand()
c=rand()
{
cout<< "Rechnen sie <<a<< + <<b<< zusammen"<< endl;
cin>> l;
if ( c==l)
{
cout<< " Richtig <<c<<"<< endl;
p=p+1
}
if(c=!l)
{
cout<< "Falsch,richtig wäre <<c<<!"<< endl;
p=p-1
}
}
_______
so?
ich habe kp von technik ich muss nur die for-schleife für morgen können für eine kla
Frölich sein ist das halbe Leben.
|
|
stffn - 39
Halbprofi
(offline)
Dabei seit 01.2006
136
Beiträge
|
Geschrieben am: 16.11.2010 um 19:31 Uhr
|
|
Zitat von bredator: Zuerst mal muss der Code, sofern keine extra Methoden verwendet werden, in die Klammern der Main-Methode.
Dann deklarierst du die Variable int i direkt vor der for-Schleife und direkt darin nochmals. Das funktioniert so nicht. Mach die Deklaration vor der for-Schleife weg und pack den Code in die Main-Methode. Dann können wir an den restlichen Teil gehen.
Mehrfachverzweigungen sollten zudem entweder als switch-case oder else if gemacht werden. Zwar kann man es auch nur mit IF realisieren, aber es ist andersherum zum einen besser lesbar, was gemacht wird und zum anderen einfach ein besserer Stil.
Zudem verstehe ich nicht, was das Programm wirklich tun soll. Du deklarierst in der for-Schleife Variablen, die bei jedem Durchlauf neu deklariert werden... da solltest du nochmal das Grundprinzip überdenken.
du kannst das i sehrwohl auch vor der schleife deklarieren, dann überdeckt das innere eben das äußere ;)
|
|
Pratsch - 31
Champion
(offline)
Dabei seit 07.2009
2821
Beiträge
|
Geschrieben am: 16.11.2010 um 19:32 Uhr
|
|
Zitat von Wea:
#include <iostream>
using namespace std;
int main(int i)
{
cout << "Willkommen, heute werden sie rechnen üben, geben sie einfach das richtige Ergebnis ein!" << endl;
}
for (i=1; i<30; i++)
int a, b, c, l, p;
a=rand()
b=rand()
c=rand()
{
cout<< "Rechnen sie <<a<< + <<b<< zusammen"<< endl;
cin>> l;
if ( c==l)
{
cout<< " Richtig <<c<<"<< endl;
p=p+1
}
if(c=!l)
{
cout<< "Falsch,richtig wäre <<c<<!"<< endl;
p=p-1
}
}
_______
so?
ich habe kp von technik ich muss nur die for-schleife für morgen können für eine kla
Nein, musst in die Main wie schon geschrieben.
awa
|
|
bredator - 41
Champion
(offline)
Dabei seit 03.2008
5319
Beiträge
|
Geschrieben am: 16.11.2010 um 19:35 Uhr
Zuletzt editiert am: 16.11.2010 um 19:35 Uhr
|
|
Eine for-Schleife ist eine sog. kopfgesteuerte Schleife. Das heisst, die Abbruchbedingung wird VOR dem Durchlauf geprüft. Eine for-Schleife ist folgendermaßen aufgebaut:
for (int i=0, i<10, i++)
{
mach irgendwas zum i-ten mal;
}
In der runden Klammer der Schleife finden sich 3 Teile. Im ersten Teil int i=0 wird eine Variable deklariert, die Zählervariable und sie wird zudem gleich initialisiert, d.h. mit einem Wert belegt. In diesem Falle ist der Wert 0, die Schleife fängt also bei 0 an zu zählen.
Im zweiten Teil i<10 wird beschrieben, wann die Schleife aufhört zu zählen, nämlich genau dann, wenn i kleiner als 10 ist. In diesem Fall würde die Schleife aufhören zu zählen, wenn i = 9 ist.
Im letzten Teil der Klammer wird beschrieben, wie die Zählvariable bei jedem Durchgang erhöht wird. Der Operator ++ bedeutet sinngemäß "nimm den aktuellen Wert und erhöhe ihn um 1". Hier könnte man auch i +=2 schreiben, dass die Variable bei jedem Durchgang um 2 erhöht wird.
In diesem Beispiel würde die Schleife exakt 10 mal durchlaufen werden, da wir bei 0 anfangen zu zählen und bei 9 aufhören. Dabei wird jedes Mal die Anweisung der geschweiften Klammern ausgeführt.
Zitat von stffn:
du kannst das i sehrwohl auch vor der schleife deklarieren, dann überdeckt das innere eben das äußere ;)
Natürlich geht das. Auf das Beispiel bezogen ist es aber sinnfrei.
Lache nicht über jemanden, der einen Schritt zurück macht. Er könnte Anlauf nehmen.
|
|
Wea - 29
Anfänger
(offline)
Dabei seit 11.2009
14
Beiträge
|
Geschrieben am: 16.11.2010 um 19:37 Uhr
|
|
wie darein?
ok wie geht eine normal standart for-schleife?
des was ich oben gemacht habe des gehört zu einer aufgabe!
sorry ich bin nicht so gut darin!
Frölich sein ist das halbe Leben.
|
|
bredator - 41
Champion
(offline)
Dabei seit 03.2008
5319
Beiträge
|
Geschrieben am: 16.11.2010 um 19:38 Uhr
|
|
Zitat von Wea: wie darein?
ok wie geht eine normal standart for-schleife?
des was ich oben gemacht habe des gehört zu einer aufgabe!
sorry ich bin nicht so gut darin!
Siehe mein Post.
Lache nicht über jemanden, der einen Schritt zurück macht. Er könnte Anlauf nehmen.
|
|
Pratsch - 31
Champion
(offline)
Dabei seit 07.2009
2821
Beiträge
|
Geschrieben am: 16.11.2010 um 19:39 Uhr
Zuletzt editiert am: 16.11.2010 um 19:40 Uhr
|
|
Ergänzung zu der ausführlichen Erklärung von "bredator".
Im Schleifenkopf wird der hintere Teil, sprich i++ beim ersten Durchlauf "ignoriert" und es wird erst beim 2ten Durchlauf ausgeführt. (In diesem Fall um 1 erhöht.)
awa
|
|
bredator - 41
Champion
(offline)
Dabei seit 03.2008
5319
Beiträge
|
Geschrieben am: 16.11.2010 um 19:41 Uhr
|
|
Zitat von Pratsch: Ergänzung zu der ausführlichen Erklärung von "bredator".
Im Schleifenkopf wird der hintere Teil, sprich i++ beim ersten Durchlauf "ignoriert" und es wird erst beim 2ten Durchlauf ausgeführt. (In diesem Fall um 1 erhöht.)
Ok, das hatte ich vergessen. Zu viel auf einmal sagen wollen, irgendwas musste ich ja verbummeln ^^
Lache nicht über jemanden, der einen Schritt zurück macht. Er könnte Anlauf nehmen.
|
|
Pratsch - 31
Champion
(offline)
Dabei seit 07.2009
2821
Beiträge
|
Geschrieben am: 16.11.2010 um 19:41 Uhr
|
|
Zitat von bredator: Zitat von Pratsch: Ergänzung zu der ausführlichen Erklärung von "bredator".
Im Schleifenkopf wird der hintere Teil, sprich i++ beim ersten Durchlauf "ignoriert" und es wird erst beim 2ten Durchlauf ausgeführt. (In diesem Fall um 1 erhöht.)
Ok, das hatte ich vergessen. Zu viel auf einmal sagen wollen, irgendwas musste ich ja verbummeln ^^
Nichts für ungut, ist ja nicht böse gemeint. : )
awa
|
|
Wea - 29
Anfänger
(offline)
Dabei seit 11.2009
14
Beiträge
|
Geschrieben am: 16.11.2010 um 19:43 Uhr
|
|
ok das hab ich jetzt verstanden wie sie aufgebaut ist
danke
aber warum nimmt sie dann mein code::blocks 8.02 nicht an?
Frölich sein ist das halbe Leben.
|
|
Pratsch - 31
Champion
(offline)
Dabei seit 07.2009
2821
Beiträge
|
Geschrieben am: 16.11.2010 um 19:46 Uhr
|
|
Zitat von Wea: ok das hab ich jetzt verstanden wie sie aufgebaut ist
danke
aber warum nimmt sie dann mein code::blocks 8.02 nicht an?
Mach doch das mit der "Main" und mit der Schleife richtig, dann beheben sich wie durch ein Wunder auch andere Fehler.
Wenn immer noch einer da ist dann melde dich. : )
awa
|
|
Wea - 29
Anfänger
(offline)
Dabei seit 11.2009
14
Beiträge
|
Geschrieben am: 16.11.2010 um 19:59 Uhr
|
|
die schleife will aber net
es will net i<10 annehmen und i++
alles andere geht nur die beiden sachen net egal wo und wie ich sie hin stelle....
so ein shit XD
Frölich sein ist das halbe Leben.
|
|
Pratsch - 31
Champion
(offline)
Dabei seit 07.2009
2821
Beiträge
|
Geschrieben am: 16.11.2010 um 20:06 Uhr
|
|
Zitat von Wea: die schleife will aber net
es will net i<10 annehmen und i++
alles andere geht nur die beiden sachen net egal wo und wie ich sie hin stelle....
so ein shit XD
Bitte den Fehlercode oder deinen aktuellen (verbesserten) Code.
Da kann man sonst nicht viel sagen.
awa
|
|