"We are back" « oc.at

C++ Stunde 1

moidaschl 28.01.2003 - 20:13 9905 50 Thread rating
Posts

moidaschl

Vollzeit-Hackler
Avatar
Registered: Aug 2002
Location: 1210, ABK-D/L
Posts: 4029
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)
Bearbeitet von moidaschl am 28.01.2003, 20:41

murcielago

Dr. Doom
Avatar
Registered: Oct 2002
Location: *
Posts: 2692
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

Vollzeit-Hackler
Avatar
Registered: Aug 2002
Location: 1210, ABK-D/L
Posts: 4029
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

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
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

Dr. Doom
Avatar
Registered: Oct 2002
Location: *
Posts: 2692
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

Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11342
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

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
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

tranceCoder
Avatar
Registered: Mar 2001
Location: Wien
Posts: 2037
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;
}
Bearbeitet von FMFlash am 29.01.2003, 01:07

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
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)
Bearbeitet von watchout am 29.01.2003, 18:42

hellicht

Big d00d
Avatar
Registered: Oct 2001
Location: Vienna
Posts: 201
[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

Big d00d
Avatar
Registered: Oct 2002
Location: Wien
Posts: 264
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

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
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

CWNE #540
Avatar
Registered: Apr 2001
Location: ::1
Posts: 6837
gibts diese libarys auch unter unix?
gcc motzt, dass er sie nicht findet - heissens nur anders oder gibtsas in dieser form nicht?

Neo-=IuE=-

Here to stay
Registered: Jun 2002
Location: Berndorf, NÖ
Posts: 3232
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

Bloody Newbie
Registered: Jul 2002
Location: vienna
Posts: 40
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 .)
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz