Fragen 1.Übungsblatt

  • 1.1) Soll bei der Aufgabe der Unterschied zwischen Klein und Großbuchstaben beachtet werden?
    Bsp: anzahl "sS" 's' == 2 oder 1 ?


    1.2) Auf der ersten Seit des Übungsblattes ganz unten steht: "Ein Unterstrich ist auch ein Kleinbuchstabe. Soll der jetzt beachtet werden in der Aufgabe, weil mit der Funktion "isLower" wird der Unterstrich ignoriert.
    Bsp.: hauefigkeit "s_s" == (('_',1), ('s',2)) oder nur ('s',2) ?


    Sind eigentlich unrelevante Fragen, aber falls das Programm durch ein automatisches Auswertungsskript gejagt wird, kann sein dass solche Testfälle angewendet werden, und möglicherweise zu Punkteabzügen führt.

    11 Steffen Hofmann Fussballgott!

  • 1.) ja, 's' und 'S' sind verschieden


    2.) nein, das gilt nicht fuer das beispiel.. also nur (s,2)


    lg, chris

    hi, i'm a signature virus. copy me into your signature to help me spread.

  • 4.Beispiel:
    Was wär hier die korrekte Ausgabe?
    ersetze "aaaaa" 4 "a" "ba" => "bbbbaaaaa" oder "babababaa"


    Durch die angewandte Rekursion wird im ersten Schritt zuerst a durch ba ersetzt und im Editor steht dann "baaaaa". Im Nächsten Schritt wird, zumindest in meiner Lösung, das "a" an zweiter Stelle von "baaaaa" ersetzt zu bbaaaaa usw. => bbbbaaaaa


    Das zweite Ergebnis wirkt intuitiv aber richtiger. Das Problem betrifft sicher nicht nur mich. :shinner:

    11 Steffen Hofmann Fussballgott!

  • wie habt ihr das 1.bsp gelöst bzw anzahl::String->Char->Int, was für eine funktion habt ihr benutzt um matching c(Char) in s (String) zu finnden...

  • wie habt ihr das 1.bsp gelöst bzw anzahl::String->Char->Int, was für eine funktion habt ihr benutzt um matching c(Char) in s (String) zu finnden...


    Also ich habe da einfach mittels s == c verglichen, falls ja, dann immer un eins raufgezählt, das ganze dan rekursiv, sicher ncith die schönste variante. Dagegn kann ich aber das zweiste Bsp. mit diesm Ansatz nicht lösen und komme da nicht weiter...:confused:

    Ein Mensch sah Leiden, unbeschreibbares Leiden. Er sprach zu Gott:"Oh Gott, wie konntest du nur so etwas zulassen. Unternimm bitte dagegen etwas!" Und Gott antwortete ihm: "Ich habe schon dagegen etwas unternommen. Ich habe dich erschaffen..." [Bruno Ferrero]

  • s==c???
    ich bekomme fehlermeldung "Does not match : a -> b -> c", bin seit gestern abend am computer, habe überhaupt nicht geschlafen, und trotzdem habe nichts geschaft die erste 2 bsp zu machen ...


    FunkProg ist so ein SCH****


    habe keine ahnung wie ich "overloading" von String ->Char damit ich verglichen kann mit der funktion, z.b "elem" oder isPrefixOf ...

  • s==c???
    ich bekomme fehlermeldung "Does not match : a -> b -> c"


    Ja,weil ja "s" in diesem Fall der Ganze String ist und 'c' dagegen nur ein char, du must klareweise sicherstellen, dass beim Vergleich "c == s" das "c" immer nur ein Char ist...

    Ein Mensch sah Leiden, unbeschreibbares Leiden. Er sprach zu Gott:"Oh Gott, wie konntest du nur so etwas zulassen. Unternimm bitte dagegen etwas!" Und Gott antwortete ihm: "Ich habe schon dagegen etwas unternommen. Ich habe dich erschaffen..." [Bruno Ferrero]

  • ja, habe mit head, fst auch mal probiert aber bekomme trotzdem den gleichen fehler :S
    weil ja String ist als [Char] definiert und wenn ich nur das ersten element raus nehme dann mit Char vergleichen ...

  • hallo,


    habe mich mit FunkProg beschäftigt, die Tutorials laut Angabe durchgelesen und bin zum folgenden Schluss gekommen, wie man einem Ersteinsteiger ein Bischen helfen kann:


    1. http://www.cse.ogi.edu/PacSoft…pages/hugsman/basics.html
    2. http://haskell.org/haskellwiki/Haskell_in_5_steps
    3. http://haskell.org/haskellwiki/Learn_Haskell_in_10_minutes inlc. Section 9
    4. http://haskell.org/tutorial/
    5. http://haskell.org/ghc/docs/la…braries/base/Prelude.html


    nach diesem "Lesevorgang" sollte man das Bsp. 1 ohne Probleme lösen können :-)

    Ein Mensch sah Leiden, unbeschreibbares Leiden. Er sprach zu Gott:"Oh Gott, wie konntest du nur so etwas zulassen. Unternimm bitte dagegen etwas!" Und Gott antwortete ihm: "Ich habe schon dagegen etwas unternommen. Ich habe dich erschaffen..." [Bruno Ferrero]

  • wenn ich nur das ersten element raus nehme dann mit Char vergleichen ...


    ist ja ein guter Ansatz, wenn du dies schaffst, rekursiv zu machen, hast du ja im eigentlich die Lösung, oder?

    Ein Mensch sah Leiden, unbeschreibbares Leiden. Er sprach zu Gott:"Oh Gott, wie konntest du nur so etwas zulassen. Unternimm bitte dagegen etwas!" Und Gott antwortete ihm: "Ich habe schon dagegen etwas unternommen. Ich habe dich erschaffen..." [Bruno Ferrero]

  • schau dir mal elemIndices an:


    Das mit den elemIndices und der Möglichkeit, das ganze zu lösen (mittels length), das ist ein wirklich effizienter Vorschlag :thumb:

    Ein Mensch sah Leiden, unbeschreibbares Leiden. Er sprach zu Gott:"Oh Gott, wie konntest du nur so etwas zulassen. Unternimm bitte dagegen etwas!" Und Gott antwortete ihm: "Ich habe schon dagegen etwas unternommen. Ich habe dich erschaffen..." [Bruno Ferrero]

  • 4.Beispiel:
    Was wär hier die korrekte Ausgabe?
    ersetze "aaaaa" 4 "a" "ba" => "bbbbaaaaa" oder "babababaa"



    bei mir ist die ausgabe "babababaa"
    durch rekursion ersetze ich im ersten schritt das erste a durch ba (baaaaa). im zweiten schritt ersezte ich das zweite a von "aaaaa" (und nicht von "baaaaa) durch ba (babaaaa).. usw bis ich das 4te a finde und es durch ba ersetze

  • bei mir ist die ausgabe "babababaa"


    Da bin ich eindeutig dafür, dass die Ausgabe von diku richtig ist, da gibt es meiner Meinung nach keinen Zweifel.

    Ein Mensch sah Leiden, unbeschreibbares Leiden. Er sprach zu Gott:"Oh Gott, wie konntest du nur so etwas zulassen. Unternimm bitte dagegen etwas!" Und Gott antwortete ihm: "Ich habe schon dagegen etwas unternommen. Ich habe dich erschaffen..." [Bruno Ferrero]

  • Da bin ich eindeutig dafür, dass die Ausgabe von diku richtig ist, da gibt es meiner Meinung nach keinen Zweifel.


    Alles klar, hab den Code jetzt auch umgeschrieben, weil es doch ziemlich eindeutig ist jetzt im Nachhinein. Die Änderung war eh nur eine Klammer zu versetzen.

    11 Steffen Hofmann Fussballgott!

  • ich häng bei aufgabe 4 und zwar gibt's probs, wenn der int größer ist als die anzahl der stellen an denen der zu ersetzende string steht.


    jetzt wärs nat. einfach den int autom. auf die max. anzahl der vorkommenden stellen zu setzen bevor die rekursion startet, aber wie soll ich das funktional machen?
    steh voll auf der leitung

  • ich häng bei aufgabe 4 und zwar gibt's probs, wenn der int größer ist als die anzahl der stellen an denen der zu ersetzende string steht.


    jetzt wärs nat. einfach den int autom. auf die max. anzahl der vorkommenden stellen zu setzen bevor die rekursion startet, aber wie soll ich das funktional machen?
    steh voll auf der leitung


    Ich hab eine Hilfsfunktion "suche" die liefert mir immer die nächste Stelle wo der String im Editor vorkommt. Wenn es kein Vorkommen mehr gibt liefert diese Funktion -1 zurück.


    In der "ersetze"- Funktion frag ich dann ab: if (suche editor string) /= -1)
    Dadurch beendet die Funktion die Rekursion und gibt den neuen Editor aus.

    11 Steffen Hofmann Fussballgott!

  • Quote from mabelode

    das problem ist, dass wir von hinten nach vorne durchgehen (eben beim int beginnen) und wenn der int zu groß ist bricht das ganze sofort ab.


    Versteh eure Vorgehensweise irgendwie nicht.
    Wieso von hinten beginnen, bzw. was macht es für einen Unterschied in Beziehung auf den Int-Parameter, ob man von vorne oder hinten beginnt?


    Die Abbruchbedingung ist eigentlich dieselbe:

    Code
    1. ersetze e i s t = if (i>0 && (suche e s) /= -1)
    2. ...

    11 Steffen Hofmann Fussballgott!