mirror of https://github.com/2martens/uni.git
Datenstruktur korrigiert und vereinfacht.
This commit is contained in:
parent
5d3323e75e
commit
2b4c538135
|
@ -13,131 +13,105 @@ Abgebende: Jim 2martens, Britta 2noack, Jan-Simon 0giesel
|
|||
; Die Rückgabe einer Liste mit dem Buchstaben an erster Stelle und einer
|
||||
; Liste als zweitem Element, die wiederum den Schlüssel an erster Stelle
|
||||
; enthält, erlaubt ein einfaches Auswerten der Zuordnung.
|
||||
(define (daten char)
|
||||
(case (char->integer char)
|
||||
([65] (list char 'Alfa))
|
||||
([66] (list char 'Bravo))
|
||||
([67] (list char 'Charlie))
|
||||
([68] (list char 'Delta))
|
||||
([69] (list char 'Echo))
|
||||
([70] (list char 'Foxtrott))
|
||||
([71] (list char 'Golf))
|
||||
([72] (list char 'Hotel))
|
||||
([73] (list char 'India))
|
||||
([74] (list char 'Juliett))
|
||||
([75] (list char 'Kilo))
|
||||
([76] (list char 'Lima))
|
||||
([77] (list char 'Mike))
|
||||
([78] (list char 'November))
|
||||
([79] (list char 'Oscar))
|
||||
([80] (list char 'Papa))
|
||||
([81] (list char 'Quebec))
|
||||
([82] (list char 'Romeo))
|
||||
([83] (list char 'Sierra))
|
||||
([84] (list char 'Tango))
|
||||
([85] (list char 'Uniform))
|
||||
([86] (list char 'Viktor))
|
||||
([87] (list char 'Whiskey))
|
||||
([88] (list char 'X-ray))
|
||||
([89] (list char 'Yankee))
|
||||
([90] (list char 'Zulu))
|
||||
([48] (list char 'Nadazero))
|
||||
([49] (list char 'Unaone))
|
||||
([50] (list char 'Bissotwo))
|
||||
([51] (list char 'Terrathree))
|
||||
([52] (list char 'Kartefour))
|
||||
([53] (list char 'Pantafive))
|
||||
([54] (list char 'Sosisix))
|
||||
([55] (list char 'Setteseven))
|
||||
([56] (list char 'Oktoeight))
|
||||
([57] (list char 'Novenine))
|
||||
([44] (list char 'Decimal))
|
||||
([46] (list char 'Stop))
|
||||
)
|
||||
)
|
||||
(define buchstabiertafel
|
||||
'((#\A . Alfa)
|
||||
(#\B . Bravo)
|
||||
(#\C . Charlie)
|
||||
(#\D . Delta)
|
||||
(#\E . Echo)
|
||||
(#\F . Foxtrott)
|
||||
(#\G . Golf)
|
||||
(#\H . Hotel)
|
||||
(#\I . India)
|
||||
(#\J . Juliett)
|
||||
(#\K . Kilo)
|
||||
(#\L . Lima)
|
||||
(#\M . Mike)
|
||||
(#\N . November)
|
||||
(#\O . Oscar)
|
||||
(#\P . Papa)
|
||||
(#\Q . Quebec)
|
||||
(#\R . Romeo)
|
||||
(#\S . Sierra)
|
||||
(#\T . Tango)
|
||||
(#\U . Uniform)
|
||||
(#\V . Viktor)
|
||||
(#\W . Whiskey)
|
||||
(#\X . X-ray)
|
||||
(#\Y . Yankee)
|
||||
(#\Z . Zulu)
|
||||
(#\0 . Nadazero)
|
||||
(#\1 . Unaone)
|
||||
(#\2 . Bissotwo)
|
||||
(#\3 . Terrathree)
|
||||
(#\4 . Kartefour)
|
||||
(#\5 . Pantafive)
|
||||
(#\6 . Sosisix)
|
||||
(#\7 . Setteseven)
|
||||
(#\8 . Oktoeight)
|
||||
(#\9 . Novenine)
|
||||
(#\, . Decimal)
|
||||
(#\. . Stop)
|
||||
))
|
||||
|
||||
; 1.2
|
||||
(define (char->schlüssel char)
|
||||
(car (cdr (daten char))))
|
||||
(define (char->schlüssel char tafel)
|
||||
(cdr (assoc (char->upper char) tafel)))
|
||||
|
||||
; 1.3
|
||||
(define char_to_upperCase (λ (myChar)
|
||||
; x als ASCII Wert für myChar definieren
|
||||
(define x (char->integer myChar))
|
||||
; y als x-32 definieren
|
||||
(define y (- x 32))
|
||||
; wenn x < 91 (bereits upperCase) myChar direkt zurückgeben
|
||||
(if (< x 91)
|
||||
; wenn myChar bereits upperCase ist, direkt zurückgeben
|
||||
myChar
|
||||
; andernfalls wird y zurückgegeben
|
||||
(when (> x 96)
|
||||
; y stellt den gleichen Buchstaben wie x dar, bloß in upperCase
|
||||
; daher wird y zurückgegeben
|
||||
(integer->char y)))))
|
||||
|
||||
(define (char->upper char)
|
||||
(let ([charInt (char->integer char)])
|
||||
(cond ([<= 96 charInt 122] (integer->char (- charInt 32)))
|
||||
([<= 65 charInt 90] (integer->char charInt))
|
||||
(else char))))
|
||||
|
||||
; 1.4
|
||||
(define (buchstabiere text)
|
||||
(let ([xs (string->list text)])
|
||||
(if [empty? xs]
|
||||
'()
|
||||
(cons (char->schlüssel (char_to_upperCase(car xs))) (buchstabiere (list->string (cdr xs))))
|
||||
)
|
||||
))
|
||||
(define (buchstabiere text tafel)
|
||||
(letrec ((rec (λ (xs)
|
||||
(if (null? xs)
|
||||
null
|
||||
(cons (char->schlüssel (car xs) tafel)
|
||||
(rec (cdr xs)))))))
|
||||
(rec (string->list text))))
|
||||
|
||||
(require se3-bib/flaggen-module)
|
||||
; 2.1
|
||||
; Analoger Entwurf wie bei 1.1, diesmal mit den Flaggen.
|
||||
(define (flaggenData char)
|
||||
(case (char->integer char)
|
||||
([65] (list char A))
|
||||
([66] (list char B))
|
||||
([67] (list char C))
|
||||
([68] (list char D))
|
||||
([69] (list char E))
|
||||
([70] (list char F))
|
||||
([71] (list char G))
|
||||
([72] (list char H))
|
||||
([73] (list char I))
|
||||
([74] (list char J))
|
||||
([75] (list char K))
|
||||
([76] (list char L))
|
||||
([77] (list char M))
|
||||
([78] (list char N))
|
||||
([79] (list char O))
|
||||
([80] (list char P))
|
||||
([81] (list char Q))
|
||||
([82] (list char R))
|
||||
([83] (list char S))
|
||||
([84] (list char T))
|
||||
([85] (list char U))
|
||||
([86] (list char V))
|
||||
([87] (list char W))
|
||||
([88] (list char X))
|
||||
([89] (list char Y))
|
||||
([90] (list char Z))
|
||||
([48] (list char Z0))
|
||||
([49] (list char Z1))
|
||||
([50] (list char Z2))
|
||||
([51] (list char Z3))
|
||||
([52] (list char Z4))
|
||||
([53] (list char Z5))
|
||||
([54] (list char Z6))
|
||||
([55] (list char Z7))
|
||||
([56] (list char Z8))
|
||||
([57] (list char Z9))
|
||||
)
|
||||
)
|
||||
|
||||
; 2.2
|
||||
(define (char->flagge char)
|
||||
(car (cdr (flaggenData char))))
|
||||
|
||||
; 2.3
|
||||
(define (buchstabiereFlagge text)
|
||||
(let ([xs (string->list text)])
|
||||
(if [empty? xs]
|
||||
'()
|
||||
(cons (char->flagge (char_to_upperCase(car xs))) (buchstabiereFlagge (list->string (cdr xs))))
|
||||
)
|
||||
(define flaggentafel
|
||||
`((#\A . ,A)
|
||||
(#\B . ,B)
|
||||
(#\C . ,C)
|
||||
(#\D . ,D)
|
||||
(#\E . ,E)
|
||||
(#\F . ,F)
|
||||
(#\G . ,G)
|
||||
(#\H . ,H)
|
||||
(#\I . ,I)
|
||||
(#\J . ,J)
|
||||
(#\K . ,K)
|
||||
(#\L . ,L)
|
||||
(#\M . ,M)
|
||||
(#\N . ,N)
|
||||
(#\O . ,O)
|
||||
(#\P . ,P)
|
||||
(#\Q . ,Q)
|
||||
(#\R . ,R)
|
||||
(#\S . ,S)
|
||||
(#\T . ,T)
|
||||
(#\U . ,U)
|
||||
(#\V . ,V)
|
||||
(#\W . ,W)
|
||||
(#\X . ,X)
|
||||
(#\Y . ,Y)
|
||||
(#\Z . ,Z)
|
||||
(#\0 . ,Z0)
|
||||
(#\1 . ,Z1)
|
||||
(#\2 . ,Z2)
|
||||
(#\3 . ,Z3)
|
||||
(#\4 . ,Z4)
|
||||
(#\5 . ,Z5)
|
||||
(#\6 . ,Z6)
|
||||
(#\7 . ,Z7)
|
||||
(#\8 . ,Z8)
|
||||
(#\9 . ,Z9)
|
||||
))
|
Loading…
Reference in New Issue