Bergervei/Das allgemeine zufällige Kfz-Kennzeichen

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Scheme</language>
Eine Lösungsidee besteht darin, zunächst eine zufällige Zeichenkette aus zwei Großbuchstaben zu erzeugen. Aus dieser kann nun eine Teil-Zeichenkette gewonnen werden, deren Länge zufällig mit 1 oder 2 festgelegt wird.<br />

Zur übersichtlichen Implementation ist es ratsam, die aus zwei zufällig gewählten Großbuchsteben bestehende Zeichenkette an eine ''lokale Variable'' zu binden.<br />
Lokale Wertbindungen werden in einer Liste mit dem Sprachelement <tt>let</tt> definiert.

'''Beispiel:'''

<code id="50680498788d0">
(define lokal
  (lambda (n)
    (let ([x 5] [y 4])
      (* n x y))))
</code>

<run id="5068049878995">
(lokal 10)
</run>

Nun ist die Rückgabe eines allgemeinen zufälligen Kfz-Kennzeichens kein Problem:

<code id="506804987892d">
(define alphabet "ABCDEFGHIJKLMNOPQRSTUVWXYZ")

(define zufallskennzeichen
  (lambda (kuerzel)
    (let ([zk (string-append
               (string (string-ref alphabet (random (string-length alphabet))))
               (string (string-ref alphabet (random (string-length alphabet)))))])
      (string-append (string-upcase kuerzel)
                     "-"
                     (substring zk 0 (+ 1 (random 2)))
                     " "
                     (number->string (+ 1 (random 9999)))))))
</code>

<run id="50680498789ea">
(zufallskennzeichen "DD")
</run>

Zurück zu [[Bergervei/Prozeduren mit Zeichenketten|Prozeduren mit Zeichenketten]].