HA2 - 6.1

Benutzeravatar
bearmann
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 121
Registriert: 20. Okt 2006 13:53
Wohnort: Darmstadt
Kontaktdaten:

HA2 - 6.1

Beitrag von bearmann »

Grüßt euch,
frage mich gerade, ob man auch die einzelnen Listen benutzen darf? Also direkt auf "letters", "numbers" und "specials" zugreifen darf.
Oder ob wir in unserem Programm nur "alphabet_complete" benutzen dürfen.
Wenn man direkt zugreifen dürfte wäre es nämlich wesentlich effizienter... mMn.

Grüße,
bearmann

Benutzeravatar
giftnudel
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 112
Registriert: 3. Mai 2005 11:26

Beitrag von giftnudel »

Ob effizient oder nicht, so brauchst du nur einen Fall und eine Hilfsprozedur, und nicht 2 oder 3. Da stellt sich die Frage, was einfacher ist.

ChristianK
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 127
Registriert: 13. Sep 2007 01:15
Wohnort: Darmstadt
Kontaktdaten:

Beitrag von ChristianK »

Ich denke schon, dass du da direkt drauf zugreifen darfst^^ Oder willst du erst ne Prozdedur schreiben, die entsprechende Listen zurückgibt?^^

Aber was anderes: Kann es sein, dass die Zahlen in der numbers Liste nicht als Symbole gespeichert werden? Weil das ergibt bei mir dann ne Fehlermeldung, weil er in meinem Code versucht mit symbol=? eine Zahl mit einem Symbol zu vergleichen und das geht natürlich nicht... Jemand ne Idee wie man das umgehen kann oder wie man Zahlen als Symbole in Listen speichert?

Benutzeravatar
giftnudel
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 112
Registriert: 3. Mai 2005 11:26

Beitrag von giftnudel »

Dann nochmal :) 'expr = expr für selbstauswertende Ausdrücke wie Zahlen, also Zahlen sind "numbers" und keine Symbole.

Benutzeravatar
bearmann
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 121
Registriert: 20. Okt 2006 13:53
Wohnort: Darmstadt
Kontaktdaten:

Beitrag von bearmann »

Ich würds gar nicht so spezifisch abfragen ... dir ist doch erstmal egal, WAS es ist - solange es GLEICH ist (aka "äquivalent" ... *Wink mit dem Zaunpfahl* ;)).
(Habs nun übrigens mit Alphabet_complete gemacht...)

Grüße,
bearmann

Benutzeravatar
bearmann
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 121
Registriert: 20. Okt 2006 13:53
Wohnort: Darmstadt
Kontaktdaten:

Beitrag von bearmann »

Ummm... hab nen kleines Prob gerade und stehe wohl bissl aufm Schlauch.. >_<

Annahme:

Code: Alles auswählen

(and
   (true)
   (true)
   (true)
   (or
       (false)
       (true)))
Sollte am Ende doch "true" zurückgeben, oder nicht?! O_o (Tut's bei mir nämlich nicht...)

Grüße,
bearmann

Benutzeravatar
mantra
Computerversteher
Computerversteher
Beiträge: 385
Registriert: 23. Okt 2005 23:56
Wohnort: Wiesbaden

Beitrag von mantra »

@bearmann

Ich weiß nicht, was du durch "(true)" verbergen willst, aber warum tippst du deinen Code von oben nicht einfach mal ein und lässt ihn interpretieren? Dann wirst du merken, dass "(true)" syntaktisch nicht korrekt ist.

Benutzeravatar
bearmann
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 121
Registriert: 20. Okt 2006 13:53
Wohnort: Darmstadt
Kontaktdaten:

Beitrag von bearmann »

Sers,
weiss zwar nicht so recht, was du mit "verbergen" meinst, aber hab den Fehler nun gefunden ... lag allerdings nicht an der logischen Verknüpfung, sondern daran, dass ich schlichtweg die falsche Prozedur aufgerufen hab. ~~

Anyway... 6 wäre geschafft! :)

Grüße,
bearmann

Christian.
Mausschubser
Mausschubser
Beiträge: 56
Registriert: 6. Aug 2007 22:38

Beitrag von Christian. »

mal ne frage: kann cond nicht ueber die praedikate symbol=?, number? entscheiden, ob mein zu pruefendes element in der liste alphabet_complete eine zahl oder ein symbol ist?
wenn mein element eine zahl ist meckert er, dass er ein symbold verlangt und wenn mein element ein symbol ist, will er eine zahl.
waere nett, wenn mich jemand aufklaeren koennte, danke :D

Benutzeravatar
bearmann
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 121
Registriert: 20. Okt 2006 13:53
Wohnort: Darmstadt
Kontaktdaten:

Beitrag von bearmann »

Grüß dich,
wie ich oben schon geschrieben habe, würde ich gar nicht so spezifisch abfragen. Weil du wirst immer einen Fehler bekommt, wenn im Laufe des Programms der Fall kommt (symbol=? 'a 9)...
Ist ja immer blöd hier Tipps zu schreiben, da man nicht weiss, wieviel man sagen darf.
Falls das Folgende "zu viel" war, bitte löschen:
Ich habs mit "eqv?" verglichen.

Und als kleiner Tipp: Hier (http://www.r6rs.org/) gibts die offizielle Befehlsreferenz, finde ich teilweise praktischer als das HTDP...

Good night and good luck.
bearmann

Christian.
Mausschubser
Mausschubser
Beiträge: 56
Registriert: 6. Aug 2007 22:38

Beitrag von Christian. »

hab gedacht ich kann es vll umgehen, dass ich die ganzen teillisten einzeln abfragen muss.
vielen dank fuer den tipp mit der befehlsreferenz bzw. eqv?
das wird wohl abhilfe schaffen.
merci! ;)

Benutzeravatar
bearmann
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 121
Registriert: 20. Okt 2006 13:53
Wohnort: Darmstadt
Kontaktdaten:

Beitrag von bearmann »

Immer wieder gerne. :)

Grüße,
bearmann

Benutzeravatar
Langbaeh
Mausschubser
Mausschubser
Beiträge: 56
Registriert: 16. Okt 2007 10:16
Wohnort: DA

Beitrag von Langbaeh »

jo genau das problem hat mich die tage dann auch beschäftigt. also ohne eqv? gehts wenn überhaupt, dann nur sehr umständlich. man müsste quasi sowohl das aktuelle element im alphabet und das aktuelle element aus dem passwort überprüfen und dann den entsprechenden vergleichsoperator (symbol=?,...) verwenden, wenn ein vergleich denn überhaupt möglich ist. das würde dann auf jeden fall zu ziemlich viel code führen ^^

Benutzeravatar
Demmi
Kernelcompilierer
Kernelcompilierer
Beiträge: 423
Registriert: 1. Okt 2007 12:56
Wohnort: Darmstadt

Beitrag von Demmi »

Leute, nehmt die eingebauten Funktionen. Die sind schließlich dazu da um genutzt zu werden. Ist auch blöd, wenn man sich so wie ich ne eigene Funktion zum ermitteln der Listenlänge schreibt, sie Length nennt und dann feststellt, dass genau diese Funktion schon out-of-the-box in Scheme implementiert ist -.-

Zugriff auf die Teildefinitionen des Alphabets kann man meiner Meinung nach natürlich machen. Warum sollte das auch verboten sein!?
Ich finde, die braucht man sogar auf jeden Fall! Ohne die kann man die 6.4 nämlich nicht richtig (oder nur mit entsprechendem Aufwand) lösen.
Beispiel:

Code: Alles auswählen

(password_secure? '(! ! ! ! ! 2)) --> true
(password_secure? '(! ! ! ! ! !)) --> false!
Wie sollte man das ohne die Teillisten ohne großen Aufwand unterscheiden?

niklas
Mausschubser
Mausschubser
Beiträge: 45
Registriert: 1. Okt 2007 15:39

Beitrag von niklas »

es müssen ja ALLE elemente des passworts auch elemente des alphabets sein. gibts irgendeinen tipp, wie das programm das überprüfen kann?
bei mir gibt es, sobald ich auch nur einen richtigen buchstaben in das passwort schreibe, true aus - und das sollte es ja laut aufgabenstellung nicht.

danke

Antworten

Zurück zu „Archiv“