Seite 1 von 1

C++ Programmier-Schule: Lektion 1

Verfasst: Fr 29. Okt 2010, 09:14
von pokemastera1
Willkommen zur 1. Lektion!
Thema: Hello world! Ausgabe von Texten und Variablen in der Konsole.

Schritt 1: die Entwicklungsumgebung!
Bevor wir in C++ Schreiben können benötigen wir eine Entwicklungsumgebung, ich werde hier in allen beispielen VC++2008EE
Verwenden.

Schritt 2: Der erste Code!
Klickt auf Datei -> Neu -> Projekt -> Win32 -> Win32 Konsolenanwendung -> Fertigstellen.
VC++2008EE sollte nun folgendes ausspucken:
Code:
// Lektion 1.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
//

#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
   return 0;
}

Code:
#include "stdafx.h"

Lädt eine Headerdatei, diese ist für die Ausführung von Programmen wichtig.
Code:
int _tmain(int argc, _TCHAR* argv[])
{
   return 0;
}

initialisiert die Mainfunktion, die Mainfunktion muss(!!!) in jedem Programm enthalten sein.
Code:
return 0;

beendet das Programm.

Schritt 3: Code hinzufügen!

So, jetzt lernt ihr euren ersten eigenen Code zu schreiben!
Schreibt zuerst einmal vor return 0; folgendes:
Code:
   system("PAUSE");

damit das Programm sich nicht sofort beendet
danach schreibt nach #include "stdafx.h" :
Code:
#include <cstdlib>
#include <iostream>
#include <string>

um weitere Headerdateien hinzuzufügen.
Klickt nun auf Speichern und dann auf erstellen -> Lektion 1 erstellen und anschließend drückt F5.
Das Programm sollte nun ausgeführt werden und dort sollte stehen, dass ihr eine beliebige Taste drücken sollt.

Schritt 4: euer 1. Text

jetzt werdet ihr euren wahrscheinlich 1. Text in C++ schreiben.
Einen Text schreibt man mit:
Code:
std::cout << "Text";

schreibt nun einfach über system("PAUSE"); :
Code:
std::cout << "Hello";


speichert nun und klickt auf erstellen -> Lektion 1 neu erstellen, und drückt danach F5.
Nun werdet ihr sehen dass das Hello direkt neben dem anderen Text steht, das korrigieren wir indem wir \n hinter Hello schreiben, macht das nun speichert wieder und klickt wieder auf erstellen -> Lektion 1 neu erstellen, und drückt danach F5.

Schritt 5: Variablen!

Variablen sind kleine orte im Speicher die dazu gedacht sind kleine mengen von Daten zu Speichern
Nun lernt ihr den Umgang mit Variablen. Eine normale Variable erstellt man mit:
Code:
int name = inhalt ;

eine solche Variable könnte allerdings nur Zahlen speichern, da wir Text speichern wollen erstellen wir eine Variable mit dem Namen Test und dem Inhalt World auf folgende weise:
Code:
std::string test = "World";

nun müssen wir die variable nurnoch ausgeben, das machen wir indem wir
Code:
std::cout << "Hello\n";

zu
Code:
std::cout << "Hello\n" << test;

ergänzen.
Der vollständige Code müsste nun so aussehen :

Code:
// Lektion 1.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
//

#include "stdafx.h"
#include <cstdlib>
#include <iostream>
#include <string>

std::string test = "World";


int _tmain(int argc, _TCHAR* argv[])
{
   std::cout << "Hello\n" << test;
   system("PAUSE");
   return 0;
}

damit nun World und die PAUSE Funktion nicht zusammen geschrieben werden, fügen wir hinter test noch << "\n" ein, jetzt müsste der komplette code so aussehen:
Code:
// Lektion 1.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
//

#include "stdafx.h"
#include <cstdlib>
#include <iostream>
#include <string>

std::string test = "World";


int _tmain(int argc, _TCHAR* argv[])
{
   std::cout << "Hello\n" << test << "\n";
   system("PAUSE");
   return 0;
}




klickt jetzt auf speichern und danach auf erstellen -> Lektion 1 neu erstellen und danach drückt F5 und ihr seit fertig.

Schritt 6: Hausaufgaben!
Schreibt ein Programm mit 4-8 Sätzen, davon soll ungefähr die hälfte in variablen verpackt sein, schickt mir das Programm dann per pn.
Deadline ist am 14.11.10
Viel Spaß

Verfasst: Fr 29. Okt 2010, 09:14
von Anzeige

Re: Lektion 1

Verfasst: Fr 29. Okt 2010, 15:22
von Svimir
Also ich kenn mich mit dem Programm ein bisscchen aus und hab schonma nen calculator gemcaht :D

Re: Lektion 1

Verfasst: Fr 29. Okt 2010, 17:59
von Hopfel
Ich nehme mal an Fragen kommen hier rein, oder?
Ich hab da nämlich ein paar. ^^

1. Was für Dateien werden da jetzt eig am Anfang eingebunden? Also was enthalten diese? (String ist klar, aber der Rest?)
2. Was genau bedeutet "std" und was bewirken die zwei Doppelpunkte dahinter?
3. Wieso wird bei der Mainfunktion eine Fehlermeldung ausgegeben, wenn ich sie mit "void" definiere?
4. Was für Daten enthalten der Integer und der Char-pointer in der mainfunction-definition?
5. Was bewirkt "system" bzw. wie wird es verwendet?
6. Wieso bewirkt das "PAUSE" einen Enginestopp, obwohl es zwischen zwei Schlusszeichen steht? Muss ich also darauf achten, bei einem String nicht das Wort PAUSE zu verwenden oder gilt das nur für den Befehl "system"?

Thx for help. ^^
LG

Re: Lektion 1

Verfasst: Fr 29. Okt 2010, 20:00
von pokemastera1
bin gerade ein bisschen müde, und mir bei manchen fragen gerade nicht so sicher, kann aber die meisten beantworten!
Hopfel hat geschrieben:Ich nehme mal an Fragen kommen hier rein, oder?
Ich hab da nämlich ein paar. ^^

1. Was für Dateien werden da jetzt eig am Anfang eingebunden? Also was enthalten diese? (String ist klar, aber der Rest?)
stdafx.h ist von VC++2008 vorgemacht und wird eigentlich nicht gebraucht, aber wenn man es weglässt mekert der compiler. cstdlib lädt die ganzen std funktionen. iostream wird eigentlich grundsätzlich bei c++ verwndet
2. Was genau bedeutet "std" und was bewirken die zwei Doppelpunkte dahinter?
was genau std bedeutet weis ich leider auch nicht, aber die doppelpunkte sind dazu da die eigenschaften von std an das folgende objekt zu vererben.
3. Wieso wird bei der Mainfunktion eine Fehlermeldung ausgegeben, wenn ich sie mit "void" definiere?
steht doch in der Fehlermeldung: void muss einen wert zurück geben und kann nicht als definition für eine funktion verwendet werden

4. Was für Daten enthalten der Integer und der Char-pointer in der mainfunction-definition?
5. Was bewirkt "system" bzw. wie wird es verwendet?
6. Wieso bewirkt das "PAUSE" einen Enginestopp, obwohl es zwischen zwei Schlusszeichen steht? Muss ich also darauf achten, bei einem String nicht das Wort PAUSE zu verwenden oder gilt das nur für den Befehl "system"?das gilt nur für system...wüsste allerdings auch nicht wozu man PAUSE schreiben sollte ;)

Thx for help. ^^
LG

Re: Lektion 1

Verfasst: Fr 29. Okt 2010, 20:30
von Hopfel
Erstma danke für die Erklärungen, das Meiste davon hab ich jetzt kapiert. ^^

steht doch in der Fehlermeldung: void muss einen wert zurück geben und kann nicht als definition für eine funktion verwendet werden

Aber void wird ja nur ausschlisslich zur Definition von Funktionen verwendet. Und auch in vielen anderen Programmiersprachen ist immer die Rede von "void main()".
Und void hat ja die Eigenart keinen Wert zurückgeben zu können, aber genau das ist ja bei der Mainfunktion völlig egal, da sowieso nicht auf dessen Wert zugegriffen werden könnte...


4. Was für Daten enthalten der Integer und der Char-pointer in der mainfunction-definition?

Ich meinte damit den Integer und den Char-array in der main-definition:

int main(int argc, _TCHAR* argv[])

Diese Parameter werden ja definiert und bekommen vermutlich von der Engine einen Wert zugewiesen.
Aber was genau bekommen die für einen Wert bzw. wofür kann ich diese Werte am besten verwenden?


Wenn du mir diese Fragen beantworten kannst bin ich vollends Glücklich. ^^
Thx :3