Gepostet: |
bräuchte wieder Hilfe | ||||||||||
Komm mit den Aufgaben irgendwie nicht zurecht: a) Implementieren Sie eine Funktion substitute :: String -> (Char,Char) -> String, die alle Vorkommen eines Zeichens durch eine anderes Zeichen ersetzt. b) Schreiben Sie eine Funktion substituteAll :: String -> [(Char,Char)] -> String, die eine Liste von Substitutionen auf einen Text anwenden. c) Schon Julius Cäsar soll angeblich bei der Kommunikation auf Feldzügen Verschlüsselung eingesetzt haben. Seine Methode war die folgende: Aus dem Text wurden alle Leerstellen und Satzzeichen entfernt und alle Buchstaben des Textes in Groÿbuchstaben umgewandelt. Danach wurde im Alphabet {A, . . . ,Z} jedes Zeichen zyklisch um einen festen Wert verschoben, also zum Beispiel A auf B, B auf C ... und Z auf A. Alle Zeichen der Textes wurden auf diese Weise substituiert. Implementieren Sie eine Funktion caesar :: Int -> [(Char,Char)], die eine Substitutionsliste für einen Cäsarcode erstellt, welche die Funktion substituteAll verwenden kann, um Texte über dem Alphabet {A, . . . ,Z} (ohne Umlaute!) zu verschlüsseln. Wäre schon wenn mir jemand helfen könnte! blizz |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Hi! zu a) "substitute wort (a, b)" müßte so arbeiten: Sie trennt von wort das erste Zeichen ab und vergleicht es mit a. Sind die beiden Buchstaben gleich, dann wird b an diese Stelle gesetzt, wenn nicht dann wieder der abgetrennte Buchstabe. Alle anderen Buchstaben im Wort überprüfst du rekursiv nach dem gleichen Prinzip. zu b) Funktioniert wie bei a), nur hast du diesmal eine Liste von Umwandlungsbuchstaben. Du kannst also erst den ersten Buchstaben in der Liste ersetzen (mittels substitute), dann den zweiten Buchstaben, usw. bis die Liste der zu ersetzenden Buchstaben leer ist. Poste doch mal was du bisher schon geschrieben hast, damit man sieht, wo genau die Probleme liegen. Viele Grüße, Siracusa |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
so das wars :-) falls du fragen hast einfach fragen gruß jacke |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
DAnke,Danke,Danke! aber bei mir läuft das prog nich! der meckert an der zeile 5 |otherwise =[w]++substitute wort (a,b) an was liegt das?? |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Der Fehler ist in der Zeile davor:|(w==a) =++substitute wort (a,b) durch |(w==a) = [ b ] ++substitute wort (a,b) ersetzen! |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
das ist ne macke von dem forum b in eckigen klammern macht er dick ^^...egal man kann ja noch etwas selber denkensubstitute::String->(Char,Char)->String so ist es richtig |
|||||||||||
Zum Seitenanfang | |||||||||||