Naps: Denkanstoß

Hi,

ich bräuchte da mal ein paar Tipps wie ich folgendes am besten lösen kann (in meinem Fall PHP, prinzipiell für die Fragestellung egal):

Wie setzte ich so etwas wie man es auf diesen Bild sehen kann (Fragebaum?) am besten um?

Mit if then else gehts bei o.g Beispiel sicher noch, aber ab einer gewissen Größe wird es dann ein bisschen unübersichtlich oder?

MfG Naps

  1. hi

    guck mal, ob Du die Entscheidungen auf y/n reduzieren kannst, dann wirds ein binärer Baum und für den Workflow könnte das State Transition Model passen.

    Horst
    --
    PHP-Programmierer speichern sessionbezogene Daten in SESSION, Perl-Programmierer speichern Daten da, wo sie hingehören

    1. hi

      guck mal, ob Du die Entscheidungen auf y/n reduzieren kannst, dann wirds ein binärer Baum und für den Workflow könnte das State Transition Model passen.

      Horst

      PHP-Programmierer speichern sessionbezogene Daten in SESSION, Perl-Programmierer speichern Daten da, wo sie hingehören

      ok schau ich mir mal an ;)

      Hat zwar nichts mit dem Thema zu tun aber:
      Was ist der Vorteil an dem was du in deiner Signatur erwähnst?

      1. Was ist der Vorteil an dem was du in deiner Signatur erwähnst?

        Gar keiner. Das ist wieder mal der Versuch, etwas zu erfinden, was es schon gibt.

        Dass das Konzept, dass er für Perl präferiert, auch in PHP möglich ist, verschweigt er leider.

        1. Hallo

          Dass das Konzept, dass er für Perl präferiert, auch in PHP möglich ist, verschweigt er leider.

          So wie Du fast alle anderen Sprachen verschweigst.

          Ich würde es übrigens in Python implementieren. Und wenn es kein Python gäbe, in Javascript, Clojure oder Haskell.

          Gruß, Ernst

          1. So wie Du fast alle anderen Sprachen verschweigst.

            Dass es hier konkret um Perl und PHP geht, scheinst du überlesen zu haben. Aber jetzt solltest du das verstanden haben ;)

            1. Hallo,

              Dass es hier konkret um Perl und PHP geht, scheinst du überlesen zu haben.

              Der Verweis auf die Python[1] ist kontextunabhängig angebracht, wenn ein PHP-Jünger über seine anachronistische Lieblingssprache redet.

              Aber jetzt solltest du das verstanden haben ;)

              Geht Dich n feuchten Kehricht an.

              Gruß, Ernst

              [1] und andere Sprachen. Vielleicht mag Perl dazugehören. Ich weiß nichts über Perl. Aber wenn ich je wieder Zeit investiere, eine Sprache zu lernen, dann wohl C (Oder G/Go/D).

              1. Der Verweis auf die Python[1] ist kontextunabhängig angebracht, wenn ein PHP-Jünger über seine anachronistische Lieblingssprache redet.

                Und wieso antwortest du dann auf mich, obwohl ich Kontextunabhängigam liebsten in C und C++ arbeite?

                Aber jetzt solltest du das verstanden haben ;)
                Geht Dich n feuchten Kehricht an.

                Wer Hirn und Charakter hat, sieht seine Fehler ein, wer einfach nur Stänkert um seine persönliche Antipathie auszudrücken, zeigt, er hat weder das eine noch das andere.

                Wobei sich mir grad die Frage stellt, ob dein Frisör im Urlaub ist ...

                1. Hallo,

                  Und wieso antwortest du dann auf mich, obwohl ich Kontextunabhängigam liebsten in C und C++ arbeite?

                  Das konnte ich nicht wissen, da Du ja hier nur über Perl und PHP gesprochen hast.

                  Aber jetzt solltest du das verstanden haben ;)
                  Geht Dich n feuchten Kehricht an.

                  Wer Hirn und Charakter hat, sieht seine Fehler ein, wer einfach nur Stänkert um seine persönliche Antipathie auszudrücken, zeigt, er hat weder das eine noch das andere.

                  Na gut. Ich wollte nicht den Eindruck erwecken, mehr zu wissen als Du. Ich wollte nur auf Python verweisen. Daß es eine Antwort auf deinen Post war, war reiner Zufall, ok?
                  Das "So wie Du alle anderen verschweigst" war Überleitung. Dein Satz war nur Mittel zu meinem Zweck. Ich weiß nichts über deine Expertise in Dingen und zweifele diese darum nicht an. Wenn das so rüberkam, tut es mir leid.

                  Wobei sich mir grad die Frage stellt, ob dein Frisör im Urlaub ist ...

                  Was soll dieser FUD? Wenn Du hier suggerieren willst, daß Du mich beobachtest, tritt mir in Person gegenüber, wir zwei besprechen dann in Ruhe alle Details zu meiner Frisur, ok?

                  Gruß, Ernst

                  1. Hallo,

                    Und wieso antwortest du dann auf mich, obwohl ich Kontextunabhängigam liebsten in C und C++ arbeite?
                    Das konnte ich nicht wissen, da Du ja hier nur über Perl und PHP gesprochen hast.

                    Da es, wie ich schon erwöhnt habe, explizit um Perl und PHP geht. Ich hoffe, nach dem zweiten mal hast du es jetzt verstanden.

                    Was soll dieser FUD? Wenn Du hier suggerieren willst, daß Du mich beobachtest, tritt mir in Person gegenüber, wir zwei besprechen dann in Ruhe alle Details zu meiner Frisur, ok?

                    Du hast echt ein Problem. Ich meinte, wenn dein Frisör im Urlaub ist, brauchst du jemand anderen, dem du das reindrückst, was niemanden interessiert und was du sonst deinem Frisör erzählst.

                    Aber schon spannend, wie manche Menschen ihre Ängste nach aussen tragen.
                    BTW: Wieso sollte ich dich beobachten? Da hab ich ausreichend sinnvolleres zu tun.

                    1. Hallo,

                      Da es, wie ich schon erwöhnt habe, explizit um Perl und PHP geht. Ich hoffe, nach dem zweiten mal hast du es jetzt verstanden.

                      Und ich würde es übrigens in Python implementieren. Und wenn es kein Python gäbe, in Javascript, Clojure oder Haskell.

                      Ich hoffe, nach dem zweiten Mal hast Du es nun endlich verstanden.

                      Und übrigens, hier hast Du ne Mark.

                      Gruß, Ernst

          2. Hi!

            Ich würde es übrigens in Python implementieren. Und wenn es kein Python gäbe, in Javascript, Clojure oder Haskell.

            Was|Wer hindert Dich daran?

            off:PP

            --
            "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
            1. Hallo,

              Was|Wer hindert Dich daran?

              Warum das Rad noch mal erfinden?

              Gruß, Ernst

      2. hi,

        --
        PHP-Programmierer speichern sessionbezogene Daten in SESSION, Perl-Programmierer speichern Daten da, wo sie hingehören

        Hat zwar nichts mit dem Thema zu tun aber:
        Was ist der Vorteil an dem was du in deiner Signatur erwähnst?

        Komplexes Thema. Zu oben verlinktem Blogeintrag gehören die Einträge vom 27. und vom 30.6. Das ist meine Entwicklungsarbeit der letzten Tage, d.h., die Entwicklung liegt z.T. schon länger zurück, aber die Tage habe ichs mal aufgeschrieben ;)

        Mit meinem neuen Data Abstraction Layer eröffnen sich interessante Welten im Bereich der persistenten Datenhaltung mit loser Kopplung an MySQL, was mit SQL und dem Relational Model so gar nichts mehr zu tun hat.

        Viele Grüße!

        1. Hallo,

          Mit meinem neuen Data Abstraction Layer eröffnen sich interessante Welten im Bereich der persistenten Datenhaltung mit loser Kopplung an MySQL, was mit SQL und dem Relational Model so gar nichts mehr zu tun hat.

          MongoDB is ein populärer Vertreter, der ähnliche Wege geht.

          Gruß, Ernst

          1. Moin,

            Mit meinem neuen Data Abstraction Layer eröffnen sich interessante Welten im Bereich der persistenten Datenhaltung mit loser Kopplung an MySQL, was mit SQL und dem Relational Model so gar nichts mehr zu tun hat.

            MongoDB is ein populärer Vertreter, der ähnliche Wege geht.

            <wiki>Die Entwicklung von MongoDB begann im Oktober 2007...</wiki>

            Nunja, Perl's Serializer Storable.pm sowie Perl-Implementierungen von Berkeley-DB sind Räder, die sich da schon Jahre vorher drehten ;)

            Horst

            1. Hallo,

              Nunja, Perl's Serializer Storable.pm sowie Perl-Implementierungen von Berkeley-DB sind Räder, die sich da schon Jahre vorher drehten ;)

              MongoDB ist dafür in schnellem C++ gecodet und hat viele Treiber für andere Sprachen.

              Gruß, Ernst

      3. Hallo,

        Es ist die Frage, ob Datenspeicherung lokal (Beispiele: konkretes Objekt, ini-Datei im Projektverzeichnis, DNA in der Zelle) oder zentral (Beispiele: relationale Datenbank, Windows-Registry, Anti-Terror-Liste) erfolgen soll.

        Gruß, Ernst

  2. Hi,

    ich bräuchte da mal ein paar Tipps wie ich folgendes am besten lösen kann (in meinem Fall PHP, prinzipiell für die Fragestellung egal):

    Wie setzte ich so etwas wie man es auf diesen Bild sehen kann (Fragebaum?) am besten um?

    Was genau willst du überhaupt machen? Vielleicht solltest du das mal genauer beschreiben, dann kann man auch richtig helfen. Die Antwort von hotti finde ich da eher riskant.

    1. Hallo,

      Teile deine Kritik nicht:

      Die Grafik des OPs zeigt keine Fragen sondern Objekte, denen er einfach Fragezeichen hintenan gestellt hat. Darauf gibt es keine zielführenden Antworten.

      Hotties Denkanstoß:
      Fragen auf die es Ja/Nein-Antworten gibt, müssen konkret formuliert werden. Der Schwerpunkt verlagert sich weg vom Objekt und hin zu der auszuführenden Aktion. So kann der OP sich besser bewusst werden, welches Problem er wie lösen will.

      Gruß, Ernst

      1. હેલો

        Die Grafik des OPs zeigt keine Fragen sondern Objekte, denen er einfach Fragezeichen hintenan gestellt hat. Darauf gibt es keine zielführenden Antworten.

        Wie denn, keiner weiss, was diese Fragezeichen zu bedeuten haben (der Inhalt der Boxen ist auch nicht gerade aufschlussgebend)? Was soll das sein? Eine Umfrage? Eine Art „Hinweispfad“, der immer weiter ausklappen kann? Woher kommen die Daten, was soll damit passieren? Sind hinter den jeweiligen Fragezeichen noch mehr Fragezeichen? Hat OP vielleicht ein CSS/HTML Problem? Oder vielleicht Javascript? Wie soll man ohne diese Infos eine Zielführende Antwort geben? Wir wissen nicht einmal, woher die Daten kommen. Ohne Daten, keine Kekse.

        બાય

        --
         .
        ..:
        1. Hallo,

          Ich hätte mich etwas präziser ausdrücken sollen: mit ...

          Teile deine Kritik nicht:

          ... meinte ich genau diesen Satz:

          Die Antwort von hotti finde ich da eher riskant.

          Ansonsten gebe ich Whouzuo und Dir natürlich recht. Die Grafik des OPs ist nichtsaussagend.

          Gruß, Ernst

          1. Hi,
            ich hab das Ganze anscheinend etwas zu schlecht formuliert.

            Es Prinzipiell um eine Art Suche. D.H. ich arbeite mich durch:

            Beispiel:
                                                                 _____JA
                                                                 |
                                |---JA    => Hat es 4 Türen?------
            Ist das Auto rot? --                                 |----Nein       USW.
                                |
                                 ----Nein => Hat es ein Lenkgrad?-----JA
                                                                 |
                                                                  ----NEIN

            Die Antworten sind aber nicht immer nur Ja oder Nein.
            MfG Naps

            1. Hi,
              ich hab das Ganze anscheinend etwas zu schlecht formuliert.

              Jep. =) Aber Einsicht gibt immer Pluspunkte.

              Es Prinzipiell um eine Art Suche. D.H. ich arbeite mich durch:

              Beispiel:
                                                                   _____JA
                                                                   |
                                  |---JA    => Hat es 4 Türen?------
              Ist das Auto rot? --                                 |----Nein       USW.
                                  |
                                   ----Nein => Hat es ein Lenkgrad?-----JA
                                                                   |
                                                                    ----NEIN

              Dann ist genau das was Tron gesagt hat Richtung. Insbesondere seine weiteren Fragen sind entscheidend dafür, welche Datenstruktur(en) du für deine Umsetzung wählen solltest. Außerdem wäre es interessant zu wissen, was genau du überhaupt machen willst. Stellst du die Fragen an einen User und der wählt dann eine der vorgefertigten Antworten aus?

              1. Hi,
                ich hab das Ganze anscheinend etwas zu schlecht formuliert.

                Jep. =) Aber Einsicht gibt immer Pluspunkte.

                Es Prinzipiell um eine Art Suche. D.H. ich arbeite mich durch:

                Beispiel:
                                                                     _____JA
                                                                     |
                                    |---JA    => Hat es 4 Türen?------
                Ist das Auto rot? --                                 |----Nein       USW.
                                    |
                                     ----Nein => Hat es ein Lenkgrad?-----JA
                                                                     |
                                                                      ----NEIN

                Dann ist genau das was Tron gesagt hat Richtung. Insbesondere seine weiteren Fragen sind entscheidend dafür, welche Datenstruktur(en) du für deine Umsetzung wählen solltest. Außerdem wäre es interessant zu wissen, was genau du überhaupt machen willst. Stellst du die Fragen an einen User und der wählt dann eine der vorgefertigten Antworten aus?

                Ja genau. Der user wählt aus, und bekommt am Schluss die letzte Antwort geliefert.

                1. Hallo Naps,

                  was ich an deinem Beispiel nicht so recht nachvollziehen kann: es ist für die Auswertung also irrelevant, ob ein rotes Auto ein Lenkrad hat, oder wie darf man das verstehen? Oder taucht die Frage nach dem Lenkrad später auf?

                  "Ja genau. Der user wählt aus, und bekommt am Schluss die letzte Antwort geliefert."

                  Gibt es nur EINE letzte Antwort oder ist die letzte Antwort in irgendeiner Form abhängig vom a) Pfad oder b) Gewichtung der gewählten Antworten?

                  Grüße
                  tron

                  1. Gibt es nur EINE letzte Antwort oder ist die letzte Antwort in irgendeiner Form abhängig vom a) Pfad oder b) Gewichtung der gewählten Antworten?

                    Um die Frage gleich selbst zu beantworten: ich vermute mal aufgrund deiner bisher recht vagen Beschreibung, dass die letzte Antwort abhängig ist vom durchlaufenen Pfad.

                    Wie gesagt, jeder Knoten (bis auf den Start- bzw. Endknoten) hat zwei Kanten: die Kante zum vorherigen Knoten und die Kante zum nächsten Knoten. Auf deine Frage gemünzt: jedes "Objekt" hat eine Frage und eine Antwort, bis auf die Ausgangs- und den Endfrage. Erstelle also entsprechende Frage/Antwort-Objekte und verknüpfe sie logisch.

                  2. Hallo,

                    Gibt es nur EINE letzte Antwort ...

                    ja, und sie lautet 42.

                    *scnr*
                     Martin

                    --
                    Vater Staat bringt uns noch alle unter Mutter Erde.
                    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
                    1. [latex]Mae  govannen![/latex]

                      Gibt es nur EINE letzte Antwort ...

                      ja, und sie lautet 42.

                      Japp. Einfach zu berechnen mit folgender Funktion:

                      function theAnswer (value1, value2, value3) {  
                         return (Math.abs(Math.PI * (value1 || 245)) * Math.sin(Math.abs((value2 || -3))) +  
                      	  Math.pow((value3 || 17), 2)) * (Math.ceil(Math.cos(90 / (2 * Math.PI)))) +  
                      	  Math.ceil(Math.floor(Math.LN10) * Math.sqrt(Math.floor(Math.E * 162)));  
                      }  
                      
                      

                      *scnr2*

                      Stur lächeln und winken, Männer!

                      Kai

                      --
                      Array(16).join("x" - 1) + " Batman!"
                      I am Pentium of Borg. Division is futile. You will be approximated.
                      SelfHTML-Forum-Stylesheet
                      1. Hallo,

                        Gibt es nur EINE letzte Antwort ...
                        ja, und sie lautet 42.

                        Japp. Einfach zu berechnen mit folgender Funktion:

                        function theAnswer (value1, value2, value3) {

                        return (Math.abs(Math.PI * (value1 || 245)) * Math.sin(Math.abs((value2 || -3))) +
                          Math.pow((value3 || 17), 2)) * (Math.ceil(Math.cos(90 / (2 * Math.PI)))) +
                          Math.ceil(Math.floor(Math.LN10) * Math.sqrt(Math.floor(Math.E * 162)));
                        }

                          
                        ohmann, wenn Vroomfondel und Majikthise geahnt hätten, dass es so einfach ist ... ;-)  
                          
                        Ciao,  
                         Martin  
                        
                        -- 
                        Math Problems? Call 1-800-[(10x)(13i)²]-[sin(xy)/2.362x]  
                        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
                        
                2. Hallo,

                  Versuch einer praktischen Antwort:

                  Wahrscheinlich hast Du deine Autos in einer Datenbank gespeichert:

                  farbe   anz_tueren   hat_lenk
                  ----------------------------------
                  enum    int          Bool

                  Alles was du dann tun musst, ist, dir eine Datenbankabfrage zusammenzubasteln. Das sähe dann, wenn Du Dich z.B. für Python und MongoDB entscheidest, so aus:

                  def get_answers_from_db(coll,farbe=None,anz_tueren=None,hat_lenk=None):  
                    q = {}  
                    if farbe is not None:  
                      q['farbe']=farbe  
                    if anz_tueren is not None:  
                      q['anz_tueren']=anz_tueren  
                    if hat_lenk is not None:  
                      q['hat_lenk']=hat_lenk  
                    return coll.find(q)  
                  
                  

                  Gruß, Ernst

  3. Hallo Naps,

    es handelt sich um ein Problem der Graphentheorie

    Die Frage ist: kann eine Frage zur selbe Antwort führen, wie eine andere Frage? Und geht es dann von dort aus "weiter"? Ich würde erstmal ein offenes Knotensystem entwickeln, welches die einzelnen Knoten zum Beispiel durch IDs verknüfen lässt. Den Kanten (Weg von Knoten zu Knoten resp. Frage => Antwort) könnte man Gewichtungen zuordnen, um zum Beispiel ideale Wege zu finde oder Auswertungen vorzunehmen. Graphensysteme sind ein fundamentales Hilfsmittel, um Netze zu repräsentieren. Zum Beispiel nutz man sowas gerne in der Spieleentwicklung (kürzeste Wege finden, intelligentes Verhalten zu imitieren, etc.).

    grüße
    tron