Schleife schreiben...Warum bei mir nicht?
-
Wenn andere ihre Hausaufgaben bekommen, warum dann nicht bei mir??
Schließlich kann man nichts lernen, wenn man nichts weiß... Aus Beispielen kann man sich wenigstens was vorstellen...Deswegen jetzt eine Aufgabe...Kann mir da jemand helfen?
Konkrete Erklärungen wären ja schon mal ein guter Anfang....C++
Das Programm ließt solange Ziffernzeichen ein, bis ein ?? Whitespace Zeichen ??
kommt. Die eingelesene Ziffernfolge wird in die entsprechende ganzzahlige Dezimalzahl umgerechnet und anschließend ausgegeben.An alle die ehrlich helfen, vielen Dank...Schließlich ist das ein Forum und da kann helfen...

Fuer welche die nur Kritik über meine Arbeitsweise haben ...bitte lasst es, ich weiß selbst, dass dies für mich ein schwerer Weg wird....

-
Ein Whitespacezeichen ist einfach ein ... uhm... *nichts*
- ein LeerzeichenWenn ich die Aufgabe richtig verstanden habe, dann sollte es so funktionieren:
Eingabe: 6
Eingabe: 6
Eingabe: 7....
Ausgabe: 667
?Das ist ganz einfach:
Du hast eine Variable zahl, die den Wert 0 hat.
int zahl = 0;Du nimmst solange die Zeichen entgegen, bis keine Zahl mehr kommt.
Wenn ein Zeichen eingegeben wird, dann multiplizierst du zahl mit 10 und addierst die neue eingegebene Zahl.
Beispiel:
zahl = 0Eingabe 3
zahl * 10 + 3 (0*10 + 3, zahl ist jetzt 3)
Eingabe 5
zahl * 10 + 5 (3*10 + 5, zahl ist jetzt 35)
-
Hi,
Das musst du nun quasi zusammenbasteln.
Schließlich kann man nichts lernen, wenn man nichts weiß...
Das ist genau umgekehrt, denn dann kann man alles lernen. Wie auch immer, der Lerneffekt ist größer, wenn du etwas selber machst, als wenn andere es dir vorkauen.
Dein Problem ist zudem auch noch schaffbar, wenn man wenig Ahnung von der Materie hat. Bei konkreten Fragen wird dir auch jeder konkrete Antworten liefern.
-
Warum mal 10??
Welche Art von Schleife ist das?? Eine while??
Ist das ein guter Anfang?
[int zahl = 0;
cout << " Geben Sie eine Zahl ein !";
cin >> Zahl;while ( Zahl > 0)
{]
-
CarstenJ schrieb:
Hi,
Das Tutorial ist nett, aber zu wenig fuer mich. Ich hab da schon reingeguckt. Danke
Das musst du nun quasi zusammenbasteln.
Schließlich kann man nichts lernen, wenn man nichts weiß...
Das ist genau umgekehrt, denn dann kann man alles lernen. Wie auch immer, der Lerneffekt ist größer, wenn du etwas selber machst, als wenn andere es dir vorkauen.
Dein Problem ist zudem auch noch schaffbar, wenn man wenig Ahnung von der Materie hat. Bei konkreten Fragen wird dir auch jeder konkrete Antworten liefern.
-
Visual Newbie schrieb:
Warum mal 10??
um eine "stelle" mehr zu bekommen..
1 1 * 10 10 10 + 1 11nach dem prinzip funktioniert das
Ist das ein guter Anfang?
[int zahl = 0;
cout << " Geben Sie eine Zahl ein !";
cin >> Zahl;while ( Zahl > 0)
{]also anfangen tut man normalerweise mit sowas
//programmname, autor,... oder #include <...
wie wärs mit einem grundlagen tutorial, für deine aufgabe musste ja nur
die ersten paar seiten lesen...
-
Wenn das bloß so einfach wär....
Bitte helft mir, ich kriegs nicht hin....
-
lol
beschäftige dich doch erstmal mit dem problem!
du willst mir doch net sagen das wenn du das vlt 10min probiert hast,
dass das dann für dich als unmöglich gilt...wenn du bis morgen abend immer noch keine lösung hast dann:
möglichkeit 1) bist du ungeeignet zum programmieren
zu dumm 
- oder du bekommst hier aus dem forum eine lösung

- oder du bekommst hier aus dem forum eine lösung
-
Wie wärs damit?

Nunja, ob das die Triviallösung ist?
#include <termios.h> #include <unistd.h> #include <signal.h> #include <iostream> #include <cctype> using namespace std; termios oldattr; void handler(int) { tcsetattr(STDIN_FILENO, TCSANOW, &oldattr); exit(0); } int main(void) { int c; termios attr; unsigned int zahl = 0; signal(SIGINT, handler); signal(SIGTERM, handler); tcgetattr(STDIN_FILENO, &oldattr); attr = oldattr; attr.c_lflag &= ~(ICANON|ECHO); tcsetattr(STDIN_FILENO, TCSANOW, &attr); while (!isspace(c = cin.get())) { if (!isdigit(c)) { cerr << "Du Torfkopf sollst doch nur Ziffern eingeben!" << endl; break; } zahl = zahl * 10 + c - 48; } cout << zahl << endl; handler(0); return 0; }
-
Hi,
da stellt sich natürlich schon die Frage, ob so ein Beispiel nicht völlig daneben ist, da er es wahrscheinlich nichtmal wird kompilieren können.
-
Warum nicht? Unter Linux kompiliert das. Kenn ich seine Entwicklungsumgebung?
Er ist offenbar nicht bereit sich eingehend mit dem Problem zu beschäftigen und wollte eine vollständige Lösung. Ich schlage eine vor die auf mir zur Verfügung stehenden Systemen läuft.
Im übrigen ist ab while (...) alles Standard-C++... Und das Input-Buffering vorher abschalten muss man auch unter Windows, da es da IMHO keine plattformübergreifende Lösung für gibt.
EDIT: Ok das fprintf ist nicht C++ (alte Gewohnheit *g*). Habs mal korrigiert.