Komme in einer Aufgabe nicht weiter, Lösungsvorschlag wäre hilfreich



  • Hello,
    wie's schon im Titel steht, kann folgende Aufgabenstellung (die evtl. ungenau formuliert ist!) nicht lösen:

    Ich sollte eine Funktion zur Berechnung der Fakultät der Zahl 7 erstellen,
    das Ergebnis der Funktion soll mit Hilfe eines string(?) Arrays so aufgerufen werden:
    als 1-es soll der Text "Test" ausgegeben werden,
    jedoch soll dieser Text den Aufruf des Textes "Test2" bewirken.
    Anschließend nachdem "Test"->"Test2" aufgerufen hat (alles im Array(?)),
    sollte das Ergebnis der 7! (nämlich 5040) gleich,
    ohne Leerzeichen usw.,
    neben "Test2" ausgegeben werden
    (Also Bspw.: die Feld/Indexgröße des Arrays sei [15] die Indexe [0] - [4] sind für "Test2" und [5] - [8] für die 5040, der Rest wird vernachlässigt).

    So, ich hoffe die Aufgabenstellung ist so verständlich wie möglich erklärt, denn mein Lehrer hatte die mir mündlich aufgegeben
    und alles was ich am Papier gespeichert hab' ist:
    "instring(???) Funktion
    Array char a[15]
    a=instring(???) [a,"Test2",4]
    Test2 zu Test aufrufen."

    Wenn Ihr i-welche Unsicherheiten beim Verstehen der Aufgabenstellung haben solltet,
    dann einfach ignorieren und trotzdem Euer Ergebnis posten.
    Ich komme auf keine Lösung bisher,
    hab' nicht mal einen guten "Ansatz-Code" sondern nur Müll programmiert. 😕 😡

    /* btw. bin Starter in C und hatte bisher keine praktischen Erfahrungen, sondern Bücher (2) über die Einführung in C gelesen */



  • Hier gibt's Hilfe bei Detailfragen, keine Komplettlösungen. Ohne eigenen Ansatz kannst du es vergessen, sorry.

    Btw, du hast 2 C-Bücher gelesen und kannst keine Strings kopieren? 😮

    Und noch was: die Aufgabenstellung ist so wirr und so falsch formuliert, dass ich nicht sicher bin, was eigentlich gemacht werden soll. So, wie ich es verstehe, macht es keinen Sinn.



  • Edit:

    Die Fakultätsberechnung ist nicht rekursiv (1*2*3*4*5*6*7=7!, das's alles).
    Es ist nicht in meiner Absicht einfach auf eine Lösung dumm zu warten sondern
    komme an keine selbst wobei ich wenn ich die Mgl. dazu hab'
    mich immer wieder an der Aufgabe versuche
    (wenn's was neues gibt, poste ich's),
    habe keinen brauchbaren Code entwerfen können,
    hinterfrage die Syntax von C (nicht so wichtig).



  • _matze schrieb:

    Btw, du hast 2 C-Bücher gelesen und kannst keine Strings kopieren? 😮

    Ist klar _matze, so my-super-sweet-16 bin ich nicht wie schon im Edit erwähnt.
    Ähm, das Buch welches ich gelesen habe ist auf Mikroproz.
    und -controller konzertriert, d.H.:
    das Buch habe ich selbst nicht gewählt sondern in die Hand gedrückt bekommen. Ist ziemlich umständlich erfasst und geschrieben,
    außerdem habe ich im Internet über's Buch folgendes herausgefunden: Ist ABSOLUT unbrauchbar für Einsteiger/Anfänger.
    Der Name des Buches: "Softwareentwicklung in C für Mikroproz. und Mikrocontr.".

    Das 2-te Buch ist eine PDF-Datei eines Studenten,
    hat mir zumindest ein paar Grundlagen erklärt
    (womit ich die alleinige Berechnung der Fakultät von 7 in C verstehen konnte).

    Codespezifische Hilfe anforden kann ich, wie du siehst, nicht.

    Habe ich selbst bereits beschrieben,
    das die Aufgabe auch mir keinen konkreten Sinn ergibt.



  • C-Logic-O.o schrieb:

    hab' nicht mal einen guten "Ansatz-Code" sondern nur Müll programmiert.

    Ist doch klar, dass es Müll ist, wenn es nicht funktioniert. 😉 Zeig aber bitte trotzdem mal her. Nur so kommen wir weiter.



  • #include <stdio.h>
    #include <stdlib.h>
    /*#define zahl 7
    #define fak 1*/
    
    int fakultaet(int zahl, int fak)
    for (zahl1;zahl1>0;zahl--){
        return (fak);
        }
    
    int main(void){
    int zahl;
    int fakultaet (int);
    printf("\nDie Fakultät von 7 beträgt %i\n\n",fakultaet(fak));
    
        system ("PAUSE");
        }
    

    Das hier ist mein Ansatz die Funktion herzuleiten, wobei ich ziemlich verwirrt bin (merkt man am Code (-.-), merke selbst sogar einiges was total daneben erdacht worden ist)

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
    int zahl=7; int fak =1;
    
     for(zahl;zahl>0;zahl--){fak = fak*zahl;}
    
    printf("\nDie Fakultaet von 7 beträgt %i\n\n",fak);
    
    system ("PAUSE");
    
    return fak;
    }
    

    Und dieses hier ist nur die Berechnung der 7!=>5040 .

    Die 2 sind mir übrig geblieben,
    da ich in der Konfusion keine Lust hatte letztere Lösungsansätze zu speichern.
    In allem wollte ich so vorgehen:
    die Funktion entwerfen,
    das Array mit Test/ - 2,
    und anschließend verbinden.

    Jedoch (durch's Ganze was ich gelesen hab')
    bin ich nicht in der Lage eine einfache Fkt. der 7! zu erstellen. 👎

    Wie auch immer,
    aufgeben werde ich nicht.
    Weil's unlogisch ist,
    an sowas einfachem so einfach zu scheitern.

    Danke dir für das Bemühen überhaupt mein Problem zu
    verstehen.

    Greets



  • Wenn du eine Funktion schreiben willst, warum schaust du dann nicht irgendwo (Buch, Internet) nach, wie das geht? Mit Ausprobieren kommt man in C nicht weit. Da muss man schon ein bisschen lernen. Eine Funktion ist so aufgebaut:

    Rückgabetyp Funktionsname(Typ Parameter 1, Typ Parameter 2,... Typ Parameter n) {
      Funktionskörper (Anweisungen)
    }
    

    Fällt dir auf, was bei dir fehlt?

    Btw, deine Einrückung ist schrecklich und behindert dich bei der Arbeit. Lies dir dazu auch mal was durch, z.B. hier: http://de.wikipedia.org/wiki/Einrückungsstil



  • _matze schrieb:

    Fällt dir auf, was bei dir fehlt?

    Btw, deine Einrückung ist schrecklich und behindert dich bei der Arbeit. Lies dir dazu auch mal was durch, z.B. hier: http://de.wikipedia.org/wiki/Einrückungsstil

    Hahaha, der Hammer!!
    Genau dies hätte ich auch angewendet (Schritt für Schritt,
    Funktion für Funktion)
    und ja ich probiere gar nicht rum.
    Erst dann wenn ich mir sicher bin mach' ich das.
    Nun, ja lustigerweise war die Aufgabe nur so gemeint:
    Mach' 'nen einfachen Array der dies&das so sortiert!!
    Und nicht so wie ich es verstanden habe bzw. eher mitgeteilt bekommen habe!
    Irgendwie war dem Lehrer in der Kommunikation was zur Aufgabe gerutscht was nicht hingehört.
    Durch das konfuse Bewusstsein nach allem (+soziale Umgebung),
    war's mir dann i-wann egal und hab' dann angefangen random rumzutippen.

    /* Noch ein Prob. habe ich,
    und der wäre die ständige Übernahme von Java-Syntax ins C, 🙄 .
    */
    Egal,
    danke dir nochmal _matze!

    Sry für die verschwendete Menge der Zeit, von dir und mir.

    Greets,

    C-L+o

    P.S.:
    Auch nachdem ich nach 'ner Zeit C genauer analysiert habe(+Verstanden),
    bin ich mir sicher das es nicht meine Lieblingssprache wird,
    Modula 3 hält derzeit diesen Platz.


Anmelden zum Antworten