Spasslex - 114
Experte
(offline)
Dabei seit 09.2006
1308
Beiträge
|
|
Geschrieben am: 30.08.2011 um 13:01 Uhr
|
|
Zitat von __etnies__:
if (start == 1)
{
cout << "Los gehts! " << endl;
}
Eigendlich ist das schon richtig, denn nach der Bedingung 1 wird der Text "Los gehts! " ausgegeben. Danach ist die If-Bedingung zu ende und das Programm springt an den nächten Punkt. Ich denke, wenn Du in dem Block keine weiteren Befehle abarbeiten möchtest, führt das Programm einen Exit-Befehl aus da er zum Programmende kommt.
Die URL wurde geblockt (keine Werbung mehr auf TU) :-)
|
|
asddddds - 82
Halbprofi
(offline)
Dabei seit 03.2010
273
Beiträge
|
|
Geschrieben am: 30.08.2011 um 13:05 Uhr
|
|
|
|
__etnies__ - 30
Profi
(offline)
Dabei seit 11.2008
727
Beiträge
|
|
Geschrieben am: 30.08.2011 um 13:22 Uhr
|
|
Auf die Frage, ob danach noch etwas kommt, ja tut es ;)
Wenn ihr wollt könnt ihr jetzt hier den ganzen bisherigen Quelltext anschauen.
Zitat: #include <iostream>
#include <string>
using namespace std;
int main()
{
string name;
string vname;
string str;
string ort;
float alter;
float hsn;
float plz;
int start;
int pnk;
char eingabe;
cout << "Willkommen zu unserem Bewerbungstest" << endl;
cout << "Bitte geben Sie ihre persönlichen Daten ein : " << endl << endl;
cout << "Name : ";
cin >> name;
cout << "Vorname : ";
cin >> vname;
cout << "Alter : ";
cin >> alter;
cout << "Strasse : ";
cin >>str;
cout << "Hausnummer : ";
cin >> hsn;
cout << "Postleitzahl : ";
cin >> plz;
cout << "Wohnort : ";
cin >> ort;
cout << endl << endl;
cout << "Danke fuer Ihre Eingabe." << endl << endl << endl;
cout << "Bei den folgenden Fragen koennen sie maximal 6 Punkte vergeben." << endl;
cout << "Sie muessen nicht alle 6 Punkte vergeben. " << endl << endl << endl;
cout << "Wollen sie beginnen? " << endl;
cout << "[1] ja " << endl << "oder " << endl << "[0] nein " << endl;
cin >> start;
Zitat: if (start == '1')
{
cout << "Los gehts! " << endl;
}
else
{
cout << "Falsche Eingabe" << endl;
return 0;
}
cout << "1. Arbeiten sie gerne im Team? " << endl;
cout << "[][][]|[][][]" << endl;
cout << "Anzahl Punkte : ";
cin >> pnk;
if ((pnk > 1) && (pnk < 7))
{
cout << "Sie haben " << pnk << " Punkte vergeben" << endl;
}
else
{
cout << "Falsche Eingabe! " << endl;
return 0;
}
return 0;
}
Und da ist die if-Schleife eben das Problem. Ich komm nicht zu meiner ersten Frage.
Wenn ihr Ideen habt wie man es anderst lösten könnte wäre ich auch dafür offen, nur berücksichtigt ich bin Anfänger und kann nocht nicht arg viel ;)
Gruß Michi
|
|
spark82 - 43
Halbprofi
(offline)
Dabei seit 11.2006
240
Beiträge
|
|
Geschrieben am: 30.08.2011 um 13:35 Uhr
|
|
und was steht jetzt in 'start' drin, wenn die else-Bedienung abbricht? Lass das doch mal ausgeben.
Das schlimmste an Zensur ist XXXXXXXX XXXXXX.
|
|
__etnies__ - 30
Profi
(offline)
Dabei seit 11.2008
727
Beiträge
|
|
Geschrieben am: 30.08.2011 um 13:44 Uhr
|
|
Wie kann ich schauen was in 'start' drin steht?
Sorry fals die Frage doof rüber kommt ;)
|
|
Pratsch - 31
Champion
(offline)
Dabei seit 07.2009
2821
Beiträge
|
|
Geschrieben am: 30.08.2011 um 14:09 Uhr
|
|
Zitat von __etnies__: Wie kann ich schauen was in 'start' drin steht?
Sorry fals die Frage doof rüber kommt ;)
Mit dem Debugger.
awa
|
|
bredator - 41
Champion
(offline)
Dabei seit 03.2008
5319
Beiträge
|
Geschrieben am: 30.08.2011 um 14:16 Uhr
Zuletzt editiert am: 30.08.2011 um 14:23 Uhr
|
|
Zitat von __etnies__: Wie kann ich schauen was in 'start' drin steht?
Sorry fals die Frage doof rüber kommt ;)
Wenn du mit einer IDE arbeitest (z.B. Visual Studio, Eclipse...), dann ist dort schon ein Debugger an Bord. Wie man diesen benutzt, solltest du dich selbst dazu informieren.
Zudem...
Du hast eine Verzweigung drin. Du speicherst deine Aufgabe als Int ab... so weit so richtig. Dann prüfst du mit den Anführungszeichen aber auf einen Char, was natürlich in die Hose geht.
--> Anführungszeichen weg --> if (start == 1) --> Geht
Lache nicht über jemanden, der einen Schritt zurück macht. Er könnte Anlauf nehmen.
|
|
__etnies__ - 30
Profi
(offline)
Dabei seit 11.2008
727
Beiträge
|
|
Geschrieben am: 30.08.2011 um 14:31 Uhr
|
|
Danke für die Tipps. Jetzt komme ich über die if-Anweisung drüber.
|
|
Pratsch - 31
Champion
(offline)
Dabei seit 07.2009
2821
Beiträge
|
|
Geschrieben am: 30.08.2011 um 14:33 Uhr
|
|
Zitat von bredator: Zitat von __etnies__: Wie kann ich schauen was in 'start' drin steht?
Sorry fals die Frage doof rüber kommt ;)
Wenn du mit einer IDE arbeitest (z.B. Visual Studio, Eclipse...), dann ist dort schon ein Debugger an Bord. Wie man diesen benutzt, solltest du dich selbst dazu informieren.
Zudem...
Du hast eine Verzweigung drin. Du speicherst deine Aufgabe als Int ab... so weit so richtig. Dann prüfst du mit den Anführungszeichen aber auf einen Char, was natürlich in die Hose geht.
--> Anführungszeichen weg --> if (start == 1) --> Geht
Am Anfang hatte er es noch richtig. o.O
Zitat: if (start == 1)
{
cout << "Los gehts! " << endl;
}
awa
|
|
Klischeepunk - 41
Champion
(offline)
Dabei seit 01.2005
8907
Beiträge
|
|
Geschrieben am: 30.08.2011 um 23:18 Uhr
|
|
@etnies: 1 Punkt vergeben ist btw. nicht möglich ;P
Interessant, dass du es am Anfang richtig hattest und auch die Beschreibung entsprechend war, eigentlich hätte alles laufen müssen - wenn er "Los gehts" ausgibt, ist er im "if" zweig, sprich die bedingung wurde erfüllt - ich frage mich was 2/3 der Posts hier sollen, wenn er einmal die bedingung "true" hat, kann er unmöglich jemals in den "else" zweig kommen, das geht schlichtweg nicht, außer der compiler baut grobe scheiße, richtig grob, und in dem fall - weg mit dem compiler. Falls von anfang an auf '1' geprüft wurde - nun hier wurde auf nen character geprüft, dass das bei cin >> INT; schiefgehn muss ist logisch.
Dieser Post wurde 2 mal ROT-13 verschlüsselt.
|
|
spark82 - 43
Halbprofi
(offline)
Dabei seit 11.2006
240
Beiträge
|
Geschrieben am: 31.08.2011 um 07:21 Uhr
Zuletzt editiert am: 31.08.2011 um 07:22 Uhr
|
|
Zitat von __etnies__: Danke für die Tipps. Jetzt komme ich über die if-Anweisung drüber.
..und woran lags nun?
Herausfinden was in start steht geht mit dem Debugger - oder einfach mit:
Zitat:
cout << "in start steht " << start << endl;
, direkt über der If-Bedienung ;)
Das schlimmste an Zensur ist XXXXXXXX XXXXXX.
|
|
Klischeepunk - 41
Champion
(offline)
Dabei seit 01.2005
8907
Beiträge
|
|
Geschrieben am: 31.08.2011 um 13:52 Uhr
|
|
Kollege meinte vorher, dass der Borland Builder nach solchen "if" verzweigungen ggf. nicht korrekt weiterarbeitet nach den "if-else Blöcken"
Sollte das der Fall sein, ab in die Tonne mit dem Compiler!
Dieser Post wurde 2 mal ROT-13 verschlüsselt.
|
|