"We are back" « oc.at

C++ Stunde 1

moidaschl 28.01.2003 - 20:13 10540 50 Thread rating
Posts

Vivo

Dreamworker
Avatar
Registered: May 2002
Location: Tal der Könige
Posts: 1478
Zitat von atrox
freut euch auf implizites und explizites typecasting :)
Naja ... da isses wohl schwerer einem absoluten Neuling Pointeraritmethik beizubringen ... :fresserettich:

Obermotz

Fünfzylindernazi
Avatar
Registered: Nov 2002
Location: OÖ/RI
Posts: 5262
Ich würde Datentypen und Typecasting in ein Kapital zusammenfassen...

wodie

Big d00d
Avatar
Registered: Oct 2002
Location: Wien
Posts: 264
@ all: danke für die aufklärung :)

@topic: ich fänds leiwand, wenn du die beispiele so wählst, dass man sie selber "erweitern" kann. zb hab ich beim letzten (das soll keine selbstrühmung sein) das prog so erweitert, dass man beide variabeln einliest. zudem wird anfangs ein text angeführt, dass addiert wird.

ps: ich hab keine ahnung wovon ihr (oper8tor, atrox und vivo) da redets, aber ich bitte beim kurs...ans nochm ondan :)

moidaschl

Vollzeit-Hackler
Avatar
Registered: Aug 2002
Location: 1210, ABK-D/L
Posts: 4029
Zitat von wodie
@ all: danke für die aufklärung :)

@topic: ich fänds leiwand, wenn du die beispiele so wählst, dass man sie selber "erweitern" kann. zb hab ich beim letzten (das soll keine selbstrühmung sein) das prog so erweitert, dass man beide variabeln einliest. zudem wird anfangs ein text angeführt, dass addiert wird.

ps: ich hab keine ahnung wovon ihr (oper8tor, atrox und vivo) da redets, aber ich bitte beim kurs...ans nochm ondan :)
k also passts eh wenn ma des selbständig machen kann!
du kannst auch mehrere variablen einlesen!
nächste stunde dann in verbindung wird die eingabe kontrolliert also mit if ( eingabe>0&&eingabe<1000) zb!

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Man kann ruhig mit IO anfangen, das schlaegt auch C++ Gott Stroustrup so vor.

Aber ein paar Sachen bitte:

Wir sind im 21. Jahrhundert, daher brauchen wir nicht mehr iostream.h, sondern iostream. Ersteres ist deprecated.

conio.h ist aeusserst proprietaer und daher am besten zu ignorieren. Statt dem getch() kann man auch ein cin >> ch machen, wobei ch vom Typ char ist.

Ein endl am Ende der Ausgabe waere auch nicht schlecht, es ist ueblich, das zu tun.

moidaschl

Vollzeit-Hackler
Avatar
Registered: Aug 2002
Location: 1210, ABK-D/L
Posts: 4029
Zitat von Ringding
Man kann ruhig mit IO anfangen, das schlaegt auch C++ Gott Stroustrup so vor.

Aber ein paar Sachen bitte:

Wir sind im 21. Jahrhundert, daher brauchen wir nicht mehr iostream.h, sondern iostream. Ersteres ist deprecated.

conio.h ist aeusserst proprietaer und daher am besten zu ignorieren. Statt dem getch() kann man auch ein cin >> ch machen, wobei ch vom Typ char ist.

Ein endl am Ende der Ausgabe waere auch nicht schlecht, es ist ueblich, das zu tun.
hallo! erste stunde!
na sicher geht
auch
do{

var=getche();
toupper(var);
}while(var==Y);
oder so ähnlich bin scho müd :D

Wannabe2k

Little Overclocker
Registered: Feb 2003
Location: Austria
Posts: 111
wieso machst die ganzen ausgaben bzw. eingaben mit cout bzw cin?
printf und scanf wären für anfang sicher einfacher(zumindest lernens wir in da schule so) wir haben jetzt(3te Htl) mit objektorientierter Programmierung angefangen.

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
ich weiss nicht, ich als neuling kann da ja nicht so viel sagen, aber gehts einfacher als
cout<<Ergebnis;
?

btw: was is eigentlich die genaue bedeutung von << und >> ?

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
<< und >> sind binäre schift-operationen. (also zb 00000001 << 1 wird 00000010)
allerdings kann man in C++ die operatoren 'überschreiben' und eigene funktionen ausführen lassen. das kann vieles sehr schön vereinfachen (tb rechenop. auf komplexen zahlen, operationen mit mengen), kann aber auch zu total un-intuitiven verhalten und syntax führen.
bei cin und cout, haben sich die programmierer gedacht, das sieht aus wie ein pfeil, und hat die operatoren dementsprechend verändert.

in java hat man sich zb bewußt dagagen entschiedn (obwohl man dann gleichzeitig eine ausnahme für + und strings gemacht hat)

Vivo

Dreamworker
Avatar
Registered: May 2002
Location: Tal der Könige
Posts: 1478
Zitat von watchout
btw: was is eigentlich die genaue bedeutung von << und >> ?
Kurz gesagt :
Der '<<' bzw. '>>' ist so überladen dass er in Kombination mit der Funktion cout bzw. cin die Funktion mit dem entsprechendem Parameter aufgerufen wird ...
Das ermöglicht zusätzlich noch dass man mehrere Werte ohne andauerndes cin/cout eingeben ein/ausgeben kann ...

bsp.: cout << testvar1 << "\n" << testvar2 << "\n";

:: Achja ... ich finds auch einfacher am Anfang mit cin/cout ... Wenn man das Prinzip von c kapiert hat, ist printf/scanf auch kein Problem mehr ...

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
thx @ atrox & vivo :)

leezenz

Bloody Newbie
Registered: Sep 2002
Location: germany
Posts: 9
ich fand die erklärungen von "void" bisher net so doll - void = nichts.
Also:
void main(...) - liefert nichts zurück.
und
int main(void) - erwartet keine Parameter und liefert einen Wert zurück.


was anderes:
und der returnwert von main kann unter dos ebenfalls abgefangen werden... aber wer macht das schon bzw. ist lange her :)

ansonsten weiter so.

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
1) ich begrüße lerning-by-doing aktivitäten
http://www.williamson-labs.com/imag...erscone-605.gif
(die ersten 3 punkte (hören, lesen, sehen) sind evt. bei manchen leuten verschoben, es geht um die großen zusammenhänge)
Tutorials wie dieses zielen genau in diese richtung.

2) bevor sich alle zu sehr _nur_ auf die syntax von c/c++ stürzen und den selben fehler machen, der in vielen schulen gemacht wird: natürlich kommt man ohne den grundlagen der syntax der jeweiligen programmiersprache nicht weit, aber ähnlich wichtig (nach vielleicht 2 einführungsstunden über die syntax) ist das problemlösen und -umsetzen in programmiersprachen der 3ten generation. wenn jemand das beherrscht, kommt er/sie binnen kürzester zeit mit einer anderen (ähnlichen) programmiersprache zurecht.
3) daher wird es imho wichtig sein, zuerst mit einem minimal-gerüst erste programme zu schreiben, und nicht zu sehr auf details zu versteifen.

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Zitat von atrox
1) ich begrüße lerning-by-doing aktivitäten
[img-removed :P]http://www.williamson-labs.com/images/Felderscone-605.gif[/img]
(die ersten 3 punkte (hören, lesen, sehen) sind evt. bei manchen leuten verschoben, es geht um die großen zusammenhänge)
Tutorials wie dieses zielen genau in diese richtung.

2) bevor sich alle zu sehr _nur_ auf die syntax von c/c++ stürzen und den selben fehler machen, der in vielen schulen gemacht wird: natürlich kommt man ohne den grundlagen der syntax der jeweiligen programmiersprache nicht weit, aber ähnlich wichtig (nach vielleicht 2 einführungsstunden über die syntax) ist das problemlösen und -umsetzen in programmiersprachen der 3ten generation. wenn jemand das beherrscht, kommt er/sie binnen kürzester zeit mit einer anderen (ähnlichen) programmiersprache zurecht.
3) daher wird es imho wichtig sein, zuerst mit einem minimal-gerüst erste programme zu schreiben, und nicht zu sehr auf details zu versteifen.
oh, da bleibt mir nur noch eins zu sagen.... full ack! :)

nur das mit der 3. generation... 3. generation? was' das?
1. straight
2. funktionen
3. objekte
oder wie?

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
Quelle: http://www.ik.fh-hannover.de/person...uebersicht.html
-----------
Die fünf Generationen der Programmiersprache

1. Generation: Maschinensprache
Auf der untersten Ebene der Programmiersprachen arbeitet man nur mit Zahlen. Dementsprechend sind die Programme völlig unleserlich und schwer zu erstellen. Die Programme sind sehr schnell.

2. Generation: Assembler Sprachen
Die Assembler Sprachen orientieren sich an den Maschinenbefehlen des jeweiligen Prozessors. Diese Befehle kann man sich besser merken als den Zahlencode der Maschinensprache. Komfortable Compiler beherrschen zudem Schleifen, Sprungmarken und Unterprogramme. Damit wurde die Lesbarkeit des Quellcodes erhöht.

3. Generation: Höhere Programmiersprachen
Sprachen wie BASIC, PASCAL, C oder C++ sind schon an die menschlichen Denkweisen angepasst. Sie ermöglichen den Austausch des Quellcodes zwischen verschiedenen Betriebssystemen und Prozessoren, wenn der Programmierer sich an den Standard hält

4. Generation: Nichtprozedurale Programmiersprachen
Mit dieser Technik wird nicht mehr beschrieben, WIE ein Problem gelöst werden soll, sondern nur noch WELCHES zu lösen ist. Diese Programmiersprachen sind natürlich nur für ganz spezielle Probleme konzipiert worden. Hierzu zählt beispielsweise SQL.

5. Generation: Programmiersprachen der Künstlichen Intelligenz
Mit diesen Programmiersprachen werden Lösungen mit Hilfe von bestimmten Regeln erarbeitet. Hierzu sind ausgefeilte Mechanismen zu implementieren, die bei Problemen selbstständig aus diesen herausfinden. Leider sind diese Sprachen noch etwas langsam. Hierzu zählen LISP (EMACS), PROLOG und SMALLTALK.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz