PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zahl verdoppeln



Minisman
02.06.2009, 18:54
Hallo,
habe mir das Buch "Einstieg in C++" von Arnold Willemer zugelegt und gleich drauf los gelesen.Habe nun direkt ein Problem.Und Zwar folgendes:

#include <iostream>
using namespace std;

int main()
{
int Zahleneingabe;
int Doppel;

cout << "Bitte geben Sie eine Zahl ein!" << endl ;
cin >> Zahleneingabe;
Doppel = Zahleneingabe * 2;
cout << "Das Doppelte dieser Zahl ist "
<< Doppel << "." << endl ;
}

Es soll ja eine Eingabe gemacht werden und von dieser Eingabe das doppelte errechnet werden, doch wenn ich nun beispielsweise 6 eingebe, wie sorge ich dann dafür das er das doppelte errechnet in der Konsole?Hab schon allemöglichen Tasten probiert aber es tut sich nichts, ausser das beim druck auf Enter sich das Fenster schließt.

Sry für die Noobfrage:o

Mfg,
Minisman

Byaaaaah
02.06.2009, 18:56
#include <iostream>
using namespace std;

int main()
{
int Zahleneingabe;
int Doppel;

cout << "Bitte geben Sie eine Zahl ein!" << endl ;
cin >> Zahleneingabe;
Doppel = Zahleneingabe * 2;
cout << "Das Doppelte dieser Zahl ist "<< Doppel << "." << endl ;

system("PAUSE");
return 0;
}

Minisman
02.06.2009, 18:58
Ahh danke für die schnelle und gute Antwort. So funktioniert das auch. =)

Ps: Liege ich richtig in der Annahme,dass die "return 0;" Funktion bewirkt das,dass Programm sozusagen wieder von neuem beginnt?

lolly
02.06.2009, 18:58
system("pause");
Er errechnet es, aber es wird zu kurz angezeigt.

//EDIT: Verdammt zu spät :(

mo0wm
02.06.2009, 19:08
Liege ich richtig in der Annahme,dass die "return 0;" Funktion bewirkt das,dass Programm sozusagen wieder von neuem beginnt?
Nein, mithilfe von "Return" werden Funktionen beendet. In diesem Fall wird dann die "main-Funktion" beendet, und damit auch das Programm.

Minisman
02.06.2009, 19:10
Nein, mithilfe von "Return" werden Funktionen beendet. In diesem Fall wird dann die "main-Funktion" beendet, und damit auch das Programm.

Achsooo,okay danke.
Kann mir vielleicht auch jemand erklären wie ich den code umschreiben muss,damit die Aufgabe mehrmals gemacht werden kann?

Swola4
02.06.2009, 19:11
return 0 besagt einfach nur, dass diese funktion nichts zurück gibt.(zu deiner zweiten Frage)

mo0wm
02.06.2009, 19:12
Kann mir vielleicht auch jemand erklären wie ich den code umschreiben muss,damit die Aufgabe mehrmals gemacht werden kann?

Mithilfe von Schleifen. Lern aber lieber zuerst die Sachen die in dem Buch stehen. Schleifen müssten da auch schnell drankommen.

Minisman
02.06.2009, 19:15
Mithilfe von Schleifen. Lern aber lieber zuerst die Sachen die in dem Buch stehen. Schleifen müssten da auch schnell drankommen.

Alles klar.
Danke euch allen für die schnellen und netten Antworten.

PoLe
02.06.2009, 19:21
Nein, mithilfe von "Return" werden Funktionen beendet. In diesem Fall wird dann die "main-Funktion" beendet, und damit auch das Programm.

Blödsin!sry^^

Mit return wird ein Rückgabewert deklariert der an einen Aufruf zurückgegeben wird.
Was genau damit gemeint ist wirst du wissen wenn du bei Funktionen() bist.
du hast ja eine "Integer Funktion" sprich sie gibt NUR ganze Zahlen zurück!
und da fuer deine "main" Funktion der Datentyp "int" deklariert ist
MUSS etwas zurückgegeben werden. Dazu nimmt man halt dann im
normalfall einfach 0 oder null. Wobei ich lange nix mit c gemacht habe und nimma weiß obs auch mit "null" klappt;)

bei einer "string" Funktion also:


string funktionName()

müsstest also einen String (Zeichenkette) zurückgeben sonst würdest nen
Fehler vom Compiler angezeigt bekommen.

Mittlerweile kann man bei C auch ruhig "void" als datentyp nehmen.
Da brauchst du dann auch keinen Rückgabewert da für Void
kein Speicher reseviert und somit auch kein Rückgabewert erforderlich ist.

PS: Ich lasse mich gerne eines besseren belehren wenn ich irgendwo
was falsch beschrieben habe..... NICHT FLAMEN, BELEHREN ok?^^

gruß

Invisibility
02.06.2009, 19:45
Ist soweit richtig, allerdings ist es praktisch meistens nicht so wichtig.
Die meisten Compiler machen Ärger in Form einer Warnung, aber einen Fehler
kriegst du bei den Wenigsten.
Ein return 0; am Ende von int main() gehört einfach zu einer guten Syntax.

Greetz,
Invisibility

$_staX
02.06.2009, 19:47
Stichwort C-Standard

Grim-Reaper
02.06.2009, 19:47
Achsooo,okay danke.
Kann mir vielleicht auch jemand erklären wie ich den code umschreiben muss,damit die Aufgabe mehrmals gemacht werden kann?

Mit Schleifen "while", wird auch sehr schnell in dem Buch kommen.

NEAVORC
02.06.2009, 19:52
Bei C++ ggeht auch getch();

/proc/cpuinfo
02.06.2009, 20:11
@NEAVORC: Ich würde mich da fragen was passiert?
Also soweit ich weiß wartet getch(); auf einen tastendruck, bzw ist die Rückgabe des Tastendrucks.

d.h. Intern ist pause das gleiche wie
echo "Press any key to continue";
getch();

(das mit echo stimmt nich so hab wenig mit c zu tun, Delphi ftw^^)

-[RiDER]-
02.06.2009, 22:40
Hi :D

return 0 besagt einfach nur, dass diese funktion nichts zurück gibt.(zu deiner zweiten Frage)
Das ist so nicht ganz richtig.
return 0; besagt, dass die Funktion den Integer 0 zurueckgibt, gecastet auf den Typen des Rueckgabewertes der Funktion, sofern dies moeglich ist (in diesem konkreten Fall der 0 ist dies uebrigens immer moeglich, bei jedem anderen Wert nicht unbedingt). Welcher Typ das ist, wird im Funktionskopf definiert. Ist dort als Typ des Rueckgabewertes void angegeben, kann returt auch ohne "expression" (Wie lautet der deutsche Begriff hierfuer?), also ohne die 0 oder irgend etwas anderes ausgefuehrt werden.

GreetZ RiDER :D :D :D

blackberry
02.06.2009, 22:56
"expression" (Wie lautet der deutsche Begriff hierfuer?)

Ausdruck

-[RiDER]-
02.06.2009, 23:03
-;309052']"expression" (Wie lautet der deutsche Begriff hierfuer?)
Ausdruck

Ist dort als Typ des Rueckgabewertes void angegeben, kann returt auch ohne Ausdruck, also ohne die 0 oder irgend etwas anderes ausgefuehrt werden.

Klingt fuer mich komisch, aber nach blosser Uebersetzung stimmt es natuerlich. :)
GreetZ RiDER :D

eRaSeR!
02.06.2009, 23:45
mit den schleifen wäre das so: (du schreibst am besten die zahleneingabe in die gleiche variable wie das verdoppelte...)



#include <iostream>
using namespace std;
int main()
{
int Zahl;
cout << "Bitte geben Sie eine Zahl ein!" << endl ;
cin >> Zahl;

while(1) //while(1) = endlosschleife du kannst zb auch machen while(zahl<50) dann wiederholt sich das ganze solang bis die zahl nichmehr kleiner als 50 is also ab 50 hörts auf
{
Zahl = Zahl* 2; //hier wird zahl mal 2 genommen und es überschreibt sich selber mit dem ergebnis
cout << "Das Doppelte dieser Zahl ist "<< Zahl << "." << endl ;
system("PAUSE");
}

return 0;
}


immer wenn du jetzt enter drückst kommt wieder des doppelte statt system("pause") kannst auch getchar zb machen

blackberry
02.06.2009, 23:49
Da hier nichts neues mehr kommt ( siehe: http://free-hack.com/showthread.php?t=39343 - alles schon genannt ):

/closed