Tach ma!
Ich stell hier jetzt ab und zu ma Fragen über C++...OK, zur Ersten:
WIE erstellt man eine Funktion, die rekursiv
eine Variable 'x' potenziert.
Das war nämlich eine Workshopaufgabe in Thronis C++ Kurs, in Kapitel 7...
Das ist echt zum verzweifeln!
Hoffe, mir kann jemand da helfen ^^"
Habs mir kurz angesehen... also, du willst eine Funktion, die bei zwei Eingabe-Parametern x und y das Ergebnis "x hoch y" bzw. "x zur Potenz y" zurückgibt, so hast du zwei Möglichkeiten, diese Funktion zu bewerkstelligen:
Wie du weisst, bedeutet "zur Potenz y", dass du den Wert y mal mit sich selbst multiplizierst, x zur Potenz 2 ist soviel wie x * x. Der erste logische Ansatz wäre dabei der iterative
Logisch, ich lasse die Funktion den Wert solange mit sich selbst mal nehmen, solange es die Funktion verlangt.
Beim rekursiven Ansatz hingegen brauche ich zwei Dinge: Den rekursiven Aufruf, und eine Abbruchbedingung.
Die Abbruchbedingung ist auch klar: Ich möchte y mal x mit sich selbst produzieren, also zähle ich von y einfach runter bis 0. Ist y also 0, gebe ich einfach x zurück, ansonsten rufe ich die Funktion nochmal auf, kennzeichne allerdings, dass ich bereits einmal in der Funktion war (zähle also von y eins herunter...). Das ganze sieht dann so aus:
Eleganter, aber weit langsamer, und für derartige Mickymausaufgaben auch nicht wirklich nötig (Fehler vorbehalten, kann natürlich sein, dass y == 1 sein muss, bzw. die Bedingung im iterativen Teil i <= y sein muss, aber das sollst du einfach selbst ausprobieren).
Danke, kann ich's endlich ^^
Ach ja, da wäre noch was:
Kann mir mal jemand erklären wozu man Zeiger und das ganze drum rum im praktischen gebrauchen kann, z.B. in Spielen(Jaja, ich will Spieleprogger werden ^^)
Danke, kann ich's endlich ^^
Ach ja, da wäre noch was:
Kann mir mal jemand erklären wozu man Zeiger und das ganze drum rum im praktischen gebrauchen kann, z.B. in Spielen(Jaja, ich will Spieleprogger werden ^^)
...
In C brauch ichs eigentlich immer. Da es mit dem dynamischen Speicheranlegen ja nicht soweit her ist als etwa bei Java (oder jeder anderen Programmiersprache, iirc) brauchst du einfach Zeiger, um ein Array (oder was auch immer) dynamisch anzulegen. Ich hab ehrlich gesagt noch keine einzige (sinnvolle) C-Applikation geschrieben, in der ich komplett ohne Zeiger ausgekommen bin, und seis einfach nur **argv an glut weiterzuleiten...
Zeiger? Das ist was ganz wichtiges.
Wieso schaust du dir kein Tutorial dazu an?
Man kann Zeiger z.B. nutzen um Arrays (im Grunde auch ein Pointer) an eine Funktion zu übergeben, um etwa mit einer Zeichenkette zu arbeiten.
Hier etwa wird in einer Zeichenkette "Hallo" nach einem Buchstaben gesucht. Dafür kann man pointer nehmen:
Kann mir mal jemand erklären wozu man Zeiger und das ganze drum rum im praktischen gebrauchen kann,
...
Für eine ganze Menge. Generell wenn du mit dynamischen Speichergrößen arbeitest bieten sich Pointer an. (ka obs auch anders geht)
Auch die praktische Stringklasse reicht nicht immer aus, manchmal ist das verwenden eines Char-Pointers dann von Vorteil. Arrays zB. sind auch im Prinzip nichts anderes als Pointer (nur das sie konstant sind).
Wie oft man sie braucht und wozu, ist aber immer unterschiedlich. Es gibt Leute, die gerne und ohne Probleme mit ihnen arbeiten und es gibt Leute, die sie so gut es geht vermeiden. Verstehen sollte man sie aber schon wenn man mit C(++) arbeitet.
Hat jemand ne Idee, was ich nach dem Tut machen soll?
Ich will halt in meiner Firma Firestorm TM(Ich weiß...Haha...)
gerne proggen, eher aber in Richtung Grafik.
Bevor du mit Grafik anfangen kannst, musst du die Grundlagen verstehen. Und dazu gehören Pointer auch. Sonst brauchst du dich erst garnicht an WinAPI, OpenGL oder DirectX ranwagen weils sonst nix werden kann. Pointer braucht man überall. Schon beim Erstellen eines Fensters musst du Pointer übergeben, wie soll das was werden ohne, dass du dich damit auskennst? Mit Grafik musst du dich wohl nicht gedulten.
Bezüglich deiner Firma hab ich ein nettes Zitat:
Zitat
Typisch Anfänger... bevor überhaupt ein Produkt vorhanden ist
wird erstmal ein cooler Name gesucht und unbedingt eine WebSite
gemacht. - Danilo
Nachdem du C++ beherrscht und dich fähig fühlst, größere Applikationen zu schreiben, wäre OpenGL ein guter Anfang, um dir Grafikprogrammieren beizubringen. Die Tutorials von NeHe sind ganz gut, wenn auch nicht der Weisheit letzter Schuss. Ich empfehle das GLUT Tutorial von Lighthouse 3D (hier).
Keine Ahnung wie der XP läuft, damit hab ich mich noch nicht beschäftigt. Und ein Spiel hab ich auch noch nicht fertig bekommen, aber eben ein paar gute Ansätze für ein Spiel hab ich schon geschrieben, mit der WinAPI und OpenGL. Aber bevor ich damit anfangen konnte musste ich genauso erstmal die Grundlagen lernen und teils immer noch lernen damits vernünftig was wird.
Also schau dir die Tutorials an sonst wirds nix. OpenGL und WinAPI sind gleich um einiges schwerer als ein paar kleine Consolenanwendungen. (Nicht dass es nicht auch komplexe Consolenanwendungen geben würde, will ich nicht bestreiten)
Sourcecodes sind nicht IDE bezogen, etwa für DevC++. (Außer vielleicht Projektdateien, aber die gehören ja nicht wirklich zum Code).
Und mit Spiele erstellen brauchst du erst garnicht anfangen bevor du die Grundlagen nicht kannst.
Btw. Spiel ist nicht gleich Spiel. Es gibt da zahlreiche Möglichkeiten, ein Spiel zu erstellen. Entweder die guten alten Dos-Adventures. ^^
Oder doch eher per WinAPI wenigstens im Fenster, eine Art Minesweeper oder Solitär. Oder per OpenGL oder DirectX komplexe 3D Anwendungen. Oder eben andere Toolkits verwenden, da weiß ich nicht so genau drüber bescheid. Anfangen würd ich erstmal, wie gesagt, mit den Grundlagen und dann vielleicht mit der WinAPI, so hab ich's gemacht.
Die Gundlagen leitest du aus Tutorials ab. Oder stell dir Aufgaben welche du zu machen versuchst. Etwa ein BMP-Loader oder ein kleines Textadventure mit 4,5 Räumen oder sonstwas. Oder einen Formelparser der dir Funktionsgleichungen auflöst und ausrechnet. Oder der eine Formel integriert oder ableitet. Da gibts zig Sachen die man schon in der Console machen kann. (Lern man auch den Umgang mit Pointern bei solchen Parser-geschichten)
Wird ein bisschen Chat-Niveau-Like hier... Nein, ich kenne keine Quellcodes von alten Dos-Spielchen, geh doch mal auf die Suche bei google.de oder sonstwo. Etwas eigentständige Beschaffung wär ganz angebracht. Ansonsten, wie gesagt, eigenes Schaffen, Beispiele hab ich dir ja jetzt ein paar gegeben.
EDIT: Ich hab dir doch schon ein paar Aufgabenstellungen gegeben. Ließt du denn garnicht, was ich hier schreibe?