|
You last visited: Today at 21:53
Advertisement
C++ Begriffe und 2 kleine Programme
Discussion on C++ Begriffe und 2 kleine Programme within the Coding Tutorials forum part of the General Coding category.
10/09/2013, 12:25
|
#1
|
elite*gold: 0
Join Date: Oct 2013
Posts: 7
Received Thanks: 0
|
C++ Begriffe und 2 kleine Programme
Hallo liebe Community,
wie ich gesehen habe gibt es hier einige Tutorials. Manche sind etwas schwer zu verstehen oder gehen zu schnell ran. Das bedeutet nicht, dass diese nicht gut sind, denn jeder hat dazu eine andere Einstellung. Ich werde hier die Begriffe die man am Anfang oft braucht genauer erklären und das erste Programm schreiben. Ich selbst bin noch ganz am Anfang, was das Thema C++ betrifft. Verbesserungsvorschläge und Wünsche nehme ich gerne an.
Programm:
Ich selbst arbeite mit NetBeans, da es doch recht einfach und überschaulich ist. Das mag jeder sehen wie er mag. Code:Blocks ist ebenfalls sehr gut, da muss man aber darauf achten dass man sich die Version mit dem Compiler lädt.
Begriffe:
Am Anfang von jedem Programm sollten folgende Begriffe sein:
#include <iostream>
Dies ist dazu da, um Ein- und Ausgaben machen zu können.
using namespace std;
Nimmt Namensbereiche aus der Bibliothek "std". Es gibt noch ein paar andere Bibliotheken, dazu später mehr. Ohne using namespace std; sieht das ganze so aus:
std::cout << "Text";
Mit using namespace std; sieht das ganze nur noch so aus:
cout << "Text";
int main ()
{
}
Die main-Methode ist der Einstiegspunkt einer Konsolenanwendung. Sie liefert eine ganze Zahl (int - Integer) zurück. Und dann was der Rückgabewert bewirkt etc. Der Rückgabewert ist dafür da, damit das System weiß, ob das Programm richtig beenden wurde. Wirft der Rückgabewert eine 0 zurück, ist alles ok. Bei jedem anderen Wert signalisiert das Programm einen Fehler.
cout << "Text";
Das ist der Insert-Operator für den Stream.
Merke: Nur ein Text muss mit "" anfangen und aufhören! Ein einzelnes Zeichen (zB bei Char) wird mit '' eingeschlossen.
cin >> ;
Das ist der Extraction-Operator.
int
Int ist ein Integer und ist eine Ganzzahl. Will man also mit ganzen Zahlen arbeiten, brauch man int.
float
Float ist eine Fliesskommazahl. Das heißt, man bekommt auch noch Stellen hinter dem Komma ausgegeben.
char
Char ist für Zeichen da, zum Beispiel ein '+' oder ein '-'.
Merke: Multiplizieren immer mit *.
Ich denke dass das hier eventuell schon zu viel für einen kompletten Anfänger ist und mache deshalb hier einen Sprung auf das erste Programm. Es werden keine Begriffe fallen, die vorher nicht erklärt wurden.
Nutzung von NetBeans:
NetBeans ist sehr einfach zu installieren und FreeWare. Allerdings muss man darauf achten, dass oftmals kein Compiler dabei ist. Das bedeutet, dass ihr euer Programm nicht ausgeben könnt. Zu erst einmal erkläre ich euch, wie ihr ein Projekt öffnet.
Datei -> Neues Projekt -> C/C++ -> C/C++ Application
Dann gebt ihr den Projektnamen ein und wo ihr es gespeichert haben wollt. Den Compiler könnt ihr ganz einfach einstellen. Ihr geht auf euer Projekt und macht einen Rechtsklick. Dann auf Eigenschaften und auf "RUN". Hier seht ihr den Console Typ. Hier wählt ihr "Externam Terminal" und bei "External Terminal Type" "Command Window". Nun wird alles in der Eingabeaufforderung von Windows gestartet.
Das erste Programm:
Über Google wird das erste Programm "hello world" sein. Damit fange ich auch an. Es sieht folgendermaßen aus:
#include <iostream>
using namespace std;
int main ()
{
cout << "Hello World\n";
}
\n
\n ist dafür da, dass er in die nächste Zeile springt. Sieht einfach besser aus.
Nun steigern wir das Niveau etwas und schreiben einen Taschenrechner, der uns 2 Zahlen zusammen rechnet. Wie immer der ein und selbe Anfang.
#include <iostream>
using namespace std;
int main ()
{
int zahl1;
int zahl2;
int ergebnis;
cout << "Ich rechne 2 Zahlen zusammen.\n";
cout << "Bitte die erste Zahl eingeben: ";
cin >> zahl1;
cout << "Bitte die zweite Zahl eingeben: ";
cin >> zahl2;
ergebnis = zahl1 + zahl2;
cout << "Das Ergebnis: " << ergebnis << "\n";
}
Ein ; setzt mal immer am Ende der Anweisung. Die {} geben den Block der Anweisung an. Bei cout << ist es immer so, dass man bei einer weiteren Ausgabe, die anders ist als die davor, 2 weitere << machen, da er es sonst nicht ausgibt. Nun habt ihr euren ersten Taschenrechner geschrieben. Er kann zwar nur ein +, aber es ist schon etwas. In den nächsten Tagen werde ich hier weitere kleine Einsteigerprogramme reinstellen und hoffe, dass ich euch helfen kann.
Lg Traumtänzerin
|
|
|
10/09/2013, 12:33
|
#2
|
elite*gold: 1000
Join Date: Apr 2012
Posts: 1,003
Received Thanks: 208
|
Finde die Erklärungen passen nicht immer so gut. Aber trotzdem danke für deine Mühe
|
|
|
10/09/2013, 12:41
|
#3
|
elite*gold: 0
Join Date: Oct 2013
Posts: 7
Received Thanks: 0
|
Welche passen denn deiner Meinung nach nicht?
Bin gerne für Verbesserungen offen
|
|
|
10/09/2013, 13:10
|
#4
|
elite*gold: 1000
Join Date: Apr 2012
Posts: 1,003
Received Thanks: 208
|
Zum Beispiel:
Quote:
|
int main bedeutet, dass an dieser Stelle die Hauptfunktion des Programmes beginnt. Diese Funktion wird immer beim Start des Programmes gestartet.
|
Die main-Methode ist der Einstiegspunkt einer Konsolenanwendung. Sie liefert eine ganze Zahl (int - Integer) zurück. Und dann blabla was der Rückgabewert bewirkt etc.
|
|
|
10/09/2013, 14:21
|
#5
|
elite*gold: 0
Join Date: Oct 2013
Posts: 7
Received Thanks: 0
|
Danke, werde es anpassen!
|
|
|
10/09/2013, 15:58
|
#6
|
elite*gold: 46
Join Date: Oct 2010
Posts: 782
Received Thanks: 525
|
Einfach mal folgendes in Google eingeben : why-is-using-namespace-std-considered-bad-practice und auf ersten link klicken (kp ob ich das hier verlinken darf, weil ist ja kein backlink da)  Wenn dir std::cout zu viel ist schreib doch einfach using std::cout; anstatt gleich den kompletten namespace zu nehmen. Ich finde es ist besser wenn Anfänger grundsätzlich std::cout o.ä. schreiben, da es den code meiner Meinung nach leserlicher macht und auch Konflikte vermieden werden können.
Ansonsten finde ich das Tutorial für Anfänger relativ gut.
|
|
|
10/09/2013, 16:41
|
#7
|
elite*gold: 0
Join Date: Oct 2013
Posts: 7
Received Thanks: 0
|
Ich hab es halt nicht anders gelernt, deshalb hab ich es so rein geschrieben. :/
Vielen Dank  Denke ich werde das hier wirklich weiter führen, auch ein wenig für mich selbst um es noch besser zu verstehen und umsetzen zu können.
|
|
|
10/09/2013, 17:41
|
#8
|
elite*gold: 0
Join Date: Dec 2012
Posts: 255
Received Thanks: 110
|
Quote:
Begriffe:
Am Anfang von jedem Programm sollten folgende Begriffe sein:
#include <iostream>
|
Falsch.
Quote:
using namespace std;
Ist dafür da, damit man später mehr Platz spart. Ohne diese Zeile würde zB der Ausgabebefehl so aussehen:
|
Bad practice aus diversen Gründen. Sollte man NICHT machen und auf keinen Fall einem Anfänger empfehlen.
Quote:
int main ()
{
}
Die main-Methode ist der Einstiegspunkt einer Konsolenanwendung. Sie liefert eine ganze Zahl (int - Integer) zurück. Und dann was der Rückgabewert bewirkt etc.
|
Ja? Was bewirkt denn der Rückgabewert? Als Anfänger würde ich das nun bitte genauer wissen wollen.
Quote:
cout << "Text";
Dieser Befehl ist die Ausgabe. Die << bedeuten, dass es auf der Konsole ausgegeben wird.
|
Nein, bedeuten sie gar nicht. Das ist einfach der Insert-Operator für den Stream. Das es auf der Konsole landet ist erstmal nebensächlich. Du könntest den Text auch direkt mit std::copy/ std::move etc. in den Stream kopieren.
Quote:
cin >> ;
Dieser Befehl ist die Eingabe.
|
Was, Wo? Das ist einfach der Extraction-Operator. Holt formatierte Daten vom Stream.
Hier ist die Eingabe ebenfalls nebensächlich, die könntest du auch mit std::getline etc. holen...
Quote:
|
Merke: Multiplizieren immer mit * und dividieren immer mit /.
|
Warum?
Quote:
\n
\n ist dafür da, dass er in die nächste Zeile springt. Sieht einfach besser aus.
|
Plattformabhängig, unter Windows normal CR+LF ( \r\n). Generell wird eine neue Zeile mit std::endl beschrieben.
Quote:
|
Ein ; setzt mal immer am Ende der Zeile.
|
Wieso?
|
|
|
10/09/2013, 17:48
|
#9
|
elite*gold: 724
Join Date: Mar 2011
Posts: 10,479
Received Thanks: 3,318
|
Quote:
Originally Posted by Traumtänzerin
cout << "Text";
Dieser Befehl ist die Ausgabe. Die << bedeuten, dass es auf der Konsole ausgegeben wird.
|
Code:
std::ofile("keinekonsole.txt", std::ios::app) of;
of << "Text";
landet nicht in der Konsole.
Quote:
cin >> ;
Dieser Befehl ist die Eingabe.
|
Was passiert hier? Warum funktioniert
Code:
std::string str;
std::cin >> str; // input ist "hallo, das ist ein test"
nicht vernünftig?
Quote:
int
Int ist ein Integer und ist eine Ganzzahl. Will man also mit ganzen Zahlen arbeiten, brauch man int.
float
Float ist eine Fliesskommazahl. Das heißt, man bekommt auch noch Stellen hinter dem Komma ausgegeben.
char
Char ist für Zeichen da, zum Beispiel ein '+' oder ein '-'.
|
Was ist mit double, long und short? Kann ich mit float keine ganzen Zahlen nutzen oder wieso brauche ich int für ganze Zahlen?
Quote:
|
\n ist dafür da, dass er in die nächste Zeile springt. Sieht einfach besser aus.
|
Warum \n statt std::endl?
Quote:
|
Ein ; setzt mal immer am Ende der Zeile.
|
Und was ist, wenn meine Anweisung mehr als eine Zeile hat?
Quote:
|
cout << "Das Ergebnis: " << ergebnis << "\n";
|
->
Quote:
|
Char ist für Zeichen da, zum Beispiel ein '+' oder ein '-'.
|
Und wieso dann einen String für ein \n nehmen?
Insgesamt sind da Fehler drinnen, die in einem Tutorial für Anfänger nicht drinnen sein dürften, bitte nachbessern und vor allem erklären. :/
|
|
|
10/10/2013, 08:54
|
#10
|
elite*gold: 0
Join Date: Oct 2013
Posts: 7
Received Thanks: 0
|
Ufff, mit so viel negativer Kritik habe ich nun nicht gerechnet...
Master:
Quote:
|
Ja? Was bewirkt denn der Rückgabewert? Als Anfänger würde ich das nun bitte genauer wissen wollen.
|
Der Rückgabewert ist dafür da, damit das System weiß, ob das Programm richtig beenden wurde. Wirft der Rückgabewert eine 0 zurück, ist alles ok. Bei jedem anderen Wert signalisiert das Programm einen Fehler.
Quote:
|
Nein, bedeuten sie gar nicht. Das ist einfach der Insert-Operator für den Stream. Das es auf der Konsole landet ist erstmal nebensächlich. Du könntest den Text auch direkt mit std::copy/std::move etc. in den Stream kopieren.
|
Wird editiert, danke!
Quote:
Was, Wo? Das ist einfach der Extraction-Operator. Holt formatierte Daten vom Stream.
Hier ist die Eingabe ebenfalls nebensächlich, die könntest du auch mit std::getline etc. holen...
|
Wird ebenfalls editiert!
Quote:
Weil multiplizieren mit x nicht geht. Viele machen ein x (ich am Anfang auch, muss ich ehrlich gestehen) und das hat nicht funktioniert. Dann sagte man mir, dass man ein * bei der Multiplikation machen sollte und tadaaaa, funktionierte! Der Compiler versteht das * als Multiplikation, nicht das x.
Snow:
Quote:
|
Bad practice aus diversen Gründen. Sollte man NICHT machen und auf keinen Fall einem Anfänger empfehlen.
|
Dann wurde es mir auch falsch empfohlen. Gebe ja nur das weiter wie es mir beigebracht wurde/wird.
Quote:
std::string str;
std::cin >> str; // input ist "hallo, das ist ein test"
|
Das kenne ich zB überhaupt nicht. Durch using namespace std; sparst du dir halt dieses std:: immer wieder, was im späteren Verlauf mit größeren Codes viel Zeit ausmacht.
Quote:
|
Was ist mit double, long und short? Kann ich mit float keine ganzen Zahlen nutzen oder wieso brauche ich int für ganze Zahlen?
|
Das wollte ich später erklären, wollte hier nur die gröbsten Grundsachen machen. Über double, long und short hätte ich beim nächsten Mal geschrieben. Int ist ja der erste Zahlentyp den man kennen lernt. Daher wollte ich auch die anderen Typen erst später erklären! Bei float kannst du auch ganze Zahlen nehmen, dadurch wird das System aber bei vielen Operationen langsamer.
Quote:
|
Warum \n statt std::endl?
|
std::endl ist zum Beispiel länger und mir unbekannt.
Quote:
|
Und was ist, wenn meine Anweisung mehr als eine Zeile hat?
|
Wird editiert, danke!
Quote:
|
Und wieso dann einen String für ein \n nehmen?
|
Man kann \n so schreiben: "\n" und so: '\n'. Passiert beides Mal das gleiche.
Wie gesagt, ich bin selbst ein Anfänger und wollte hier nur das weiter geben, was mir bisher beigebracht wurde und wie es mir erklärt wurde.
|
|
|
10/10/2013, 15:10
|
#11
|
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
|
Quote:
Originally Posted by Traumtänzerin
Wie gesagt, ich bin selbst ein Anfänger und wollte hier nur das weiter geben, was mir bisher beigebracht wurde und wie es mir erklärt wurde.
|
Ich gebe dir, wie ca 100 Leuten vor dir nur dieselben Tipps:
Ein Anfänger sollte NIEMALS einen Anfänger unterrichten.
Gegen ein gemeinsames Lernen spricht absolut nichts, aber ein Lehren von einem Anfänger ist einfach nur selten sinnvoll und gut.
So wie auch etliche Andere hast du es mit Sicherheit nur gut gemeint, aber falsche oder unvollständige Grundlagen zu vermitteln hilft leider überhaupt nicht und verwirrt mehr als es hilft.
|
|
|
10/11/2013, 08:41
|
#12
|
elite*gold: 0
Join Date: Oct 2013
Posts: 7
Received Thanks: 0
|
Ich habe es jetzt mal einem Anfänger gezeigt und er findet es gut! Er hat bei meinem Tutorial mehr verstanden als in anderen, die er vorher gelesen hat. Klar ist es irgendwo besser, wenn ein "Profi" es jemandem zeigt, aber sind wir doch mal ganz ehrlich: Da fliegen dann direkt am Anfang schon SO viele Fachbegriffe, dass ein Anfänger direkt auf das "x" klickt, weil er einfach nichts versteht. Es gab einige die ich Anfangs auch gut fand, aber in denen das Niveau von dem einen zum anderen Programm ohne Erklärung so heftig angezogen wurde, dass ich als Anfänger gar nicht mehr mitkam.
|
|
|
10/11/2013, 09:47
|
#13
|
elite*gold: 724
Join Date: Mar 2011
Posts: 10,479
Received Thanks: 3,318
|
Das ist ja eine durchaus gute Absicht von dir, aber wenn ein Anfänger etwas falsches lernt, ist es eben nicht gut. Du lässt hier Dinge weg, weil sie dir nichts sagen oder weil du sie überhaupt nicht kennst, wobei das absolute Grundlagen sind.
Wenn man das richtige Buch hat, wird man eben nicht von den ganzen Fachbegriffen überflutet. Schau dir mal den C++ Primer oder Die C++ Programmiersprache an, das sind wunderbare Bücher, die Stück für Stück komplexer werden.
|
|
|
10/11/2013, 10:24
|
#14
|
elite*gold: 1000
Join Date: Apr 2012
Posts: 1,003
Received Thanks: 208
|
Kürzer != Besser. Da geht häufig die Nachvollziehbarkeit bei flöten.
|
|
|
10/11/2013, 11:12
|
#15
|
elite*gold: 0
Join Date: Oct 2013
Posts: 7
Received Thanks: 0
|
Das meinte ich ja auch nicht, aber Schritt für Schritt ist besser, und nicht von "hello world" direkt auf switch-case Verschachtelung zB!
|
|
|
 |
|
Similar Threads
|
[S] Kleine, nützliche Programme/Bots [B] E*Gold
05/02/2014 - elite*gold Trading - 3 Replies
Yo Topic sagt alles.
|
Keys für Viren Programme und Speed Programme!! Und mehr!!
08/20/2012 - Trading - 3 Replies
Hallo ich verkaufe Keys für die Programme und mehr.
-TuneUp 2011
-TuneUp 2012
-McAffee 2012
-AntiVir
-Norten Internet Security 2012
-Norten Internet Security 2013
-Microsoft Office (Alle Versionen)
-WakefieldSoft (Alle Versionen)
|
Das kleine 1 mal eins der Anti Virus Programme
08/02/2011 - Metin2 Hacks, Bots, Cheats, Exploits & Macros - 17 Replies
Hi da mommentan so viele Viren,Stealer,Rootkid´s,Keylogger,Banker hier in dieser Section umgehen dachte ich mir ich mach mal eine kleine Zusammenstellung für unsere Newbees hier für die Leute die nicht wissen wo suchen für Antivirus Sofware.
hier mal das kleine 1 mal 1 für Anfänger
Spybot Search and Destroy bekommt ihr heir kosten los...
SpyBot - Search & Destroy - Download - CHIP Online
cCleaner hier Kosten los:
CCleaner - Download - CHIP Online
|
2 kleine Programme für neulinge ^^
12/13/2010 - WoW Exploits, Hacks, Tools & Macros - 18 Replies
hallo liebe Epvp Community
Ich bin gerade dabei VBA zu lernen und habe zum über mal 2 Programme geschrieben.
Dass erste ist eine Art Entscheidungshilfe (WelchenCharakterSollIchSpielen ... allimania ^^) der einem seinen Wunschchar errechnet.
Das zweite hatt schon ein kleines bisschen länger gedauert.
Es ist ein Abkürzungs wörterbuch, das heißt man schreibt seine Abkürzung rein und er sagt dir dann was das richtig bedeuted.
Wie schon gesagt ich habe gerade erst angefangen also net...
|
All times are GMT +1. The time now is 21:53.
|
|