C++ Stunde 1

Seite 1 von 4 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/c_stunde_1_64927/page_1 - zur Vollversion wechseln!


moidaschl schrieb am 28.01.2003 um 20:13

C++ Stunde 1:
geschrieben für Borland Builder

1.1 Der Programmaufbau
Starten wir gleicheinmal mit einem Beispiel:
Zwei Zahlen sollen addiert werden und die Summe dieser Zahlen soll ausgegeben werden.
Hier steht zuersteinmal der Sourcecode und dann gehen wir genauer auf die einzelnen Punkte ein:

#include <iostream.h>
#include <conio.h>
int main()
{
int Zahl1, Zahl2, Ergebnis;
Zahl1=12;
Zahl2=8;
Ergebnis=Zahl1+Zahl2;
cout<<Ergebnis;
getch();
return 0;
}

Sehen wir uns nun die einzelnen Funktionen etwas genauer an:
1.1.1 Die Header-Dateien
Header-Dateien braucht man, um dem Compiler verschiedene Funktionen und Befehle verständlich zu machen. In unserem Falle benötigen wir die iostream.h für die Befehle cin und cout und conio.h für getch(). Auf die einzelnen Funktionen gehen wir später etwas genauer ein. Header-Dateien werden immer mit #include <Datei.h> eingebunden
(includiert).
1.1.2 Das Hauptprogramm
Ein gesamtes Programm besteht mindestens aus einem Hauptprogramm und evtl. aus Unterprogrammen. Hier einmal 2 Arten das Hauptprogramm zu starten:
void main()
{ .
.
.
}

int main()
{ .
.
.
return 0;
}
Dem Compiler ist es egal welche Variante verwendet wird, aber ich verwende die 2te Variante lieber, da man sich sowieso daran gewöhnen muss, spätestens bei Unterprogrammen.
1.1.3 Variablendeklarationen
Variablendeklarationen können grundsätzlich überall im Programm stehen, sollten aber am Anfang des Programms stehen ( der Übersichtlichkeit halber! ) und MÜSSEN vor ihrer 1.Verwendung deklariert werden! Variablen werden immer mit
Variablentyp und
Variablennamen
deklariert. Auf die verschiedensten Variablentypen gehen wir sicherlich in einer andrenen C++ Stunde noch ein! Im Moment benutzen wir nur den Typen int, wobei hier nur ganzzahlige Zahlen angenommen werden!
Zulässige Variablennamen
Wert3, Wert, einseins, a1245, X3b, Zwei_affe_drei;
Ungültige Variablennamen
Wert 3, 1Wert, eins eins, A$, älter;
1.1.4 Zuweisungen
Eine Variable hat einen bestimmten Platz im Hauptspeicher und kann während des Programmverlaufs verschiedene Werte annehmen, je nach dem wie man sie deklariert hat!
z.B.: Zahl=107; Summe=4+7; Summe=Summe+23; Summe+=3;
1.1.5 Ein+Ausgaben
Für einfache ein und ausgaben verwenden wir die Befehle cin und cout, welche in der <iostream.h> enthalten sin!
Bsp: Es soll eine Zahl eingegeben werden, zu dieser 2 addiert werden und es soll das Ergebnis dieser Zahlen ausgegeben werden!

#include <iostream.h>
#include <conio.h>
int main()
{
int Zahl1, Zahl2, Ergebnis;
cout<<"Zahl eingeben: ";
cin>>Zahl1;
Zahl2=2;
Ergebnis=Zahl1+Zahl2;
cout<<Ergebnis;
getch();
return 0;
}

Auf dem Bildschirm wird folgendes ausgegeben:
Zahl eingeben: 23
25
Den Befehl getch(); lassen wir vorerst nocheinmal links liegen.
----
Ich hoffe es hat euch gefallen und ihr verzeiht mir meine Fehler die ich gemacht habe!
Wenn etwas nicht lauft schreib mir einfach eine mail an protected !
mfg
moidaschl

©e-modder(http://www.e-modder.at.tf)


murcielago schrieb am 28.01.2003 um 20:25

Zitat
Es gibt 2 Arten das Hauptprogramm zu starten.
void main()
{ .
.
.
}

int main()
{ .
.
.
return 0;
}

da gibst noch void main(int argc, char* argv[])
und void main(void), bzw das ganze mit int, also int main(int argc, char* argv[]) und int main(void)...

mfg


moidaschl schrieb am 28.01.2003 um 20:40

hey bedenke das is für anfänger! ich denke dass reicht für die erste stunde einmal oder?
:D
aber danke für den post ich baue es in späteren lessons dann noch ein


atrox schrieb am 28.01.2003 um 21:17

und zur endgültigen verwirrung *evilgrin*, gibt es auch noch alternative syntax: nicht nur daß char *argv[] == char **argv ist, nein, es gibt auch noch die alte schreibweise (pre-ANSI) für parameter:

int main(argc,argv)
int argc;
char* argv[];
{
...
}


murcielago schrieb am 28.01.2003 um 21:19

lol und in einigen c-compilern funktioniert auch noch

main() ohne rückgabetyp, wird zwar dann automatisch als int angenommen, aber wo wären wir, wenn wir nicht alle möglichkeiten aufzählen.


that schrieb am 28.01.2003 um 21:20

Zitat von atrox
und zur endgültigen verwirrung *evilgrin*, gibt es auch noch alternative syntax: nicht nur daß char *argv[] == char **argv ist, nein, es gibt auch noch die alte schreibweise (pre-ANSI) für parameter:

In C++?


atrox schrieb am 28.01.2003 um 21:20

AFAIK sollte das noch in allen compilern funktionieren - je nach einstellung spuckt er dir aber ein warning aus.

// edit, du hast recht, C++ compiler muß ich da ausnehmen.


FMFlash schrieb am 29.01.2003 um 01:03

mit c++ hat das beispiel allerdings nicht allzu viel zu tun, abgesehen von der verwendung der iostream library

hier der entsprechende c++ code mit klasse:


#include <iostream.h>
#include <conio.h>

class CNum
{
private:
int iNum [2];
int res;

public:

CNum (int, int);
void Add (void) { res = iNum[0] + iNum [1]; }
int getRes (void) { return res; }
int getNum (int);
};

CNum::CNum (int a, int b)
{
iNum[0] = a;
iNum[1] = b;
res = 0;
}

int CNum::getNum (int a)
{
int ret = 0;
a==0 ? ret=iNum[0] : ret=iNum[1];
return ret;
}

int main (int argc, char **argv)
{
int a;
int b;

cout << "Zahl1: ";
cin >> a;
cout << "Zahl2: ";
cin >> b;

CNum numbers (a,b);
numbers.Add();

cout << "Result of " << numbers.getNum(0) << " + " << numbers.getNum(1) << " = " << numbers.getRes() << endl;

getch ();

return 0;
}


watchout schrieb am 29.01.2003 um 01:58

Zitat von FMFlash
mit c++ hat das beispiel allerdings nicht allzu viel zu tun, abgesehen von der verwendung der iostream library

hier der entsprechende c++ code mit klasse:[...]
und? STUNDE 1!

wir alle zweifeln wohl nicht an deiner schier alles überragenden weisheit und an deinen ausserordendlichen fähigkeiten als programmierer, du bist der wahre meister - leider bist du ein hundsmieserabler lehrer, du checkst es einfach nicht ab, dass man wenn man noch nie nen tropfen c gesehn hat, vielleicht nicht gleich mit klassen beginnen wird, ganz zu schweigen vom ?: - operator

so:
Ich für meinen Teil (als kompletter c-neuling) finde dieses "intro" sehr gut geschrieben, vor allem das was ich bis jetz am wenigsten gerafft habe - die header-files hab ich endlich mal gechecked... :)

ich warte gespannt auf lektion 2 :) (und wenn ich mal wieder zeit hab probier ich auch ein bissal rum.. :p)


hellicht schrieb am 29.01.2003 um 02:23

[QUOTE]Originally posted by moidaschl
C++ Stunde 1:
geschrieben für Borland Builder

1.1 Der Programmaufbau
Starten wir gleicheinmal mit einem Beispiel:
Zwei Zahlen sollen addiert werden und die Summe dieser Zahlen soll ausgegeben werden.
Hier steht zuersteinmal der Sourcecode und dann gehen wir genauer auf die einzelnen Punkte ein:

#include <iostream.h>
#include <conio.h>
int main()
{
int Zahl1, Zahl2, Ergebnis;
Zahl1=12;
Zahl2=8;
Ergebnis=Zahl1+Zahl2;
cout<<Ergebnis;
getch();
return 0;
}

Sehen wir uns nun die einzelnen Funktionen etwas genauer an:
1.1.1 Die Header-Dateien
Header-Dateien braucht man, um dem Compiler verschiedene Funktionen und Befehle verständlich zu machen. In unserem Falle benötigen wir die iostream.h für die Befehle cin und cout und conio.h für getch(). Auf die einzelnen Funktionen gehen wir später etwas genauer ein. Header-Dateien werden immer mit #include <Datei.h> eingebunden
(includiert).
1.1.2 Das Hauptprogramm
Ein gesamtes Programm besteht mindestens aus einem Hauptprogramm und evtl. aus Unterprogrammen. Hier einmal 2 Arten das Hauptprogramm zu starten:
void main()
{ .
.
.
}

int main()
{ .
.
.
return 0;
}
Dem Compiler ist es egal welche Variante verwendet wird, aber ich verwende die 2te Variante lieber, da man sich sowieso daran gewöhnen muss, spätestens bei Unterprogrammen.
1.1.3 Variablendeklarationen
Variablendeklarationen können grundsätzlich überall im Programm stehen, sollten aber am Anfang des Programms stehen ( der Übersichtlichkeit halber! ) und MÜSSEN vor ihrer 1.Verwendung deklariert werden! Variablen werden immer mit
Variablentyp und
Variablennamen
deklariert. Auf die verschiedensten Variablentypen gehen wir sicherlich in einer andrenen C++ Stunde noch ein! Im Moment benutzen wir nur den Typen int, wobei hier nur ganzzahlige Zahlen angenommen werden!
Zulässige Variablennamen
Wert3, Wert, einseins, a1245, X3b, Zwei_affe_drei;
Ungültige Variablennamen
Wert 3, 1Wert, eins eins, A$, älter;
1.1.4 Zuweisungen
Eine Variable hat einen bestimmten Platz im Hauptspeicher und kann während des Programmverlaufs verschiedene Werte annehmen, je nach dem wie man sie deklariert hat!
z.B.: Zahl=107; Summe=4+7; Summe=Summe+23; Summe+=3;
1.1.5 Ein+Ausgaben
Für einfache ein und ausgaben verwenden wir die Befehle cin und cout, welche in der <iostream.h> enthalten sin!
Bsp: Es soll eine Zahl eingegeben werden, zu dieser 2 addiert werden und es soll das Ergebnis dieser Zahlen ausgegeben werden!

#include <iostream.h>
#include <conio.h>
int main()
{
int Zahl1, Zahl2, Ergebnis;
cout<<"Zahl eingeben: ";
cin>>Zahl1;
Zahl2=2;
Ergebnis=Zahl1+Zahl2;
cout<<Ergebnis;
getch();
return 0;
}

Auf dem Bildschirm wird folgendes ausgegeben:
Zahl eingeben: 23
25
Den Befehl getch(); lassen wir vorerst nocheinmal links liegen.
----
Ich hoffe es hat euch gefallen und ihr verzeiht mir meine Fehler die ich gemacht habe!
Wenn etwas nicht lauft schreib mir einfach eine mail an protected !
mfg
moidaschl

©e-modder(http://www.e-modder.at.tf)
[/QUOTE]


Das ist doch aus einem Buch:confused: :confused: :confused:


wodie schrieb am 29.01.2003 um 02:58

Zitat von watchout
und? junge - STUNDE 1!

wir alle zweifeln wohl nicht an deiner schier alles überragenden weisheit und an deinen ausserordendlichen fähigkeiten als programmierer, du bist der wahre meister - leider bist du ein hundsmieserabler lehrer, du checkst es einfach nicht ab, dass man wenn man noch nie nen tropfen c gesehn hat, vielleicht nicht gleich mit klassen beginnen wird, ganz zu schweigen vom ?: - operator

so:
Ich für meinen Teil (als kompletter c-neuling) finde dieses "intro" sehr gut geschrieben, vor allem das was ich bis jetz am wenigsten gerafft habe - die header-files hab ich endlich mal gechecked... :)

ich warte gespannt auf lektion 2 :) (und wenn ich mal wieder zeit hab probier ich auch ein bissal rum.. :p)


full ack :)

@moidaschl: bitte mach damit weiter!
probiert hab ich es...hat alles funktioniert.

und ob das aus einem buch ist oder nicht, ist mir egal.


ps: was ich nicht kapiert habe: int main () und void main ()...worin liegt der unterschied?

wenn ich zb bei dem prog statt int main () -- void main (), eingebe und dann zum schluss return 0; ... mag der compiler das nicht.


watchout schrieb am 29.01.2003 um 04:24

Zitat von wodie
full ack :)

@moidaschl: bitte mach damit weiter!
probiert hab ich es...hat alles funktioniert.

und ob das aus einem buch ist oder nicht, ist mir egal.


ps: was ich nicht kapiert habe: int main () und void main ()...worin liegt der unterschied?

wenn ich zb bei dem prog statt int main () -- void main (), eingebe und dann zum schluss return 0; ... mag der compiler das nicht.
also, afaik geben mit void definierte funktionen keine werte zurück - bzw. können keine zurückgeben - also isses kein wunder, dass dein compiler sich querstellt...


noledge schrieb am 29.01.2003 um 08:08

gibts diese libarys auch unter unix?
gcc motzt, dass er sie nicht findet - heissens nur anders oder gibtsas in dieser form nicht?


Neo-=IuE=- schrieb am 29.01.2003 um 09:24

zu unterschied int main() / void main()
wie schon oben erwähnt wurde ist der vorangestellte name der rückgabetyp, und void bedeutet soviel wie "kein rückgabetyp" also kann man ihm mit return auch nix zurückgeben
return <wert> | <variable> gibt einer funktion (bzw dem hauptprogramm) den wert bzw den inhalt der variable zurück die angegeben wurde

rückgabe von werten wir (wenn ich mich net irr) nur wirklich in linux(unix) verwendet, bei verknüpfungen von programmen (zb grep)
hauts mi net, wenn des net stimmt :P


sim schrieb am 29.01.2003 um 11:57

Also ich muss mich mal da sehr auf die Seite von FMFlash stellen: ein c++ tutorial, das ohne eine erklärung des objekt-modeles anfängt??

ich hätt ja die pappn ghalten, wenn's hier um ein allgemeines programmier-tutorial geht. aber so ist das wie eine "einführung in das fernsehen" ohne erklärung was eine fernbedingung macht .)




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026