Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 20 von 39

Thema: C++ Fragen

  1. #1

    C++ Fragen

    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 ^^"

    Geändert von Smith64FX (14.04.2005 um 20:01 Uhr)

  2. #2
    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

    Code:
    double powerIter(double x, int y) {
      double res = 1; 
      int i;
      for(i = 0; i < y; i++) {
        res *= x;
      }
      return res;
    }
    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:

    Code:
    double powerRek(double x, int y) {
      /* Abbruchbedingung */
      if(y == 0) {
        return x;
      /* Rekursiver Aufruf */
      } else {
        return x * powerRek(x, --y);
      }
    }
    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).

  3. #3
    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 ^^)

  4. #4
    Zitat Zitat von Smith64FX
    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...

  5. #5
    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:

    Code:
    #include <iostream.h>
    
    char array[6] = "Hallo";
    
    int MyFind (char* array, char s_char)
    {
        int n=0;
        while(*(array + n) != 0)
        {
            if (*(array+n) == s_char)
            {
                return n +1;
            }
            n++;
        }
        return -1;
    }
    
    int main()
    {
        cout<<MyFind(array, 'a');
    
        cin.get();
        return 0;
    }

  6. #6
    Haste auch 'n direktes Beispiel in nem Spiel, wozu man das brauchen könne?

  7. #7
    Zitat Zitat
    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.

  8. #8
    Zitat Zitat von Smith64FX
    Haste auch 'n direktes Beispiel in nem Spiel, wozu man das brauchen könne?
    Das wirst du dann schon sehen, wofür man es brauchen kann.

  9. #9
    Ahaaa....^^"
    Ich bleib lieber erst mal bei Throni's Tutorial ^^

    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.

  10. #10
    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 Zitat
    Typisch Anfänger... bevor überhaupt ein Produkt vorhanden ist
    wird erstmal ein cooler Name gesucht und unbedingt eine WebSite
    gemacht. - Danilo

  11. #11
    Zitat Zitat von Smith64FX
    eher aber in Richtung Grafik.
    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).

  12. #12
    Keine Sorge, Männer!!!
    Ich schmied das schon! Heiß nicht umsonst "Schmid" ^^

    Habt ihr schon ein Game programmiert oder was?
    Wenn ja...RESPEKT!

    @Sunny
    Hast du eine Idee, wie man Pixellaufen im RPG-MakerXP hinbekommt???
    Danke im vorraus

  13. #13
    frage fuers falsche forum. Hier beschaeftigt sich (fast) keiner mit dem rmxp

  14. #14
    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)

  15. #15
    Kennt jemand ne Seite, auf der man sämtliche -Dev C++ freundliche- Spiele-Sourcecodes findet und sich nebenbei vielleicht auch damit befasst?

    1000 Dank im vorraus

    @Ineluki
    War nur nebenbei ^^"

    Geändert von Smith64FX (18.04.2005 um 18:43 Uhr)

  16. #16
    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.

    Geändert von Ynnus (18.04.2005 um 19:24 Uhr)

  17. #17
    Sunny, kennst du direkt ein altes Open Source Game(Textadventure oder so),
    woraus man die Grundlagen und ein bisschen mehr ableiten kann?

    Greetings to all

  18. #18
    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)

  19. #19
    Und kennst du ein altes Game?
    Kenn da noch nich so viele, stamm ja nich aus deiner Zeit ^^

  20. #20
    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?

    Geändert von Ynnus (18.04.2005 um 19:47 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •