Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Lisp Aufgaben

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Lisp Aufgaben (1364 mal gelesen)
fhbhmh
Mitglied


Sehen Sie sich das Profil von fhbhmh an!   Senden Sie eine Private Message an fhbhmh  Schreiben Sie einen Gästebucheintrag für fhbhmh

Beiträge: 2
Registriert: 02.01.2010

erstellt am: 02. Jan. 2010 18:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

hi
ich habe ein paar lisp hasuaufgaben bekommen in die ich überhaupt nicht einsteige und wollt fragen ob man mir helfen könnte bin im lisp kurs grad mal auf level 4 und das ist mir eindeutig zu hoch

1. Einfache Zahlenreihen (4 Punkte): Das Programm wird hier mit einfachen Zahlenreihen
getestet. Einfach meint hierbei, dass die selbe Operation (; =;+;􀀀; x2) immer wieder
wiederholt wird. Ein Beispiel wäre die Reihe: 1 4 7 10 : : :. Hier wird in jedem Schritt +3
durchgeführt. Das Programm soll in der Lage sein, das zu erkennen und die nächsten 10
Elemente entsprechend aufzubauen. Es werden hier zum Testen immer nur Reihen benutzt,
die eine der oben genannten Operationen für 4 Elemente wiederholen. Eine Beispielausgabe
könnte so aussehen (die Eingabe wird in dieser Form sein):
1 ( Numbers ’(4 8 16 32))
2 -> (64 128 256 512 1024 2048 4096 8192 16384 32768)


2. Zahlenreihen mit History (6 Punkte): Bei den Tests für diese Stufe können die Operatoren
gemischt vorkommen. D.h. das Programm darf sich nicht nur einen Einzelschritt
anschauen, sondern muss sich eine Sequenz von Operatoranwendungen anschauen. Ein Beispiel
wäre die Reihe: 1 3 2 4 3 5 : : :. Hier wird immer zuerst +2 und dann 􀀀1 ausgeführt.
Ein Beispielaufruf könnte so aussehen:
1 ( Numbers ’(0 1 3 6 7 9 12))
2 -> (13 15 18 19 21 24 25 27 30 31)

• Substitutionsanalogien (6 Punkte): Die Ausgangsanalogie bleibt gleich: 2 dreibuchstabige
Strings mit maximal einer Änderung. Das Programm soll jetzt zusätzlich die Substitution
und das Erkennen einer Buchstabengruppe beherrschen. Wie etwa bei der Analogie:
abc ! abd :: llmmnn ! llmmoo. Hier wurde die rechteste Gruppe von Buchstaben
als äquivalent zu c aufgefasst und deshalb wurde die Gruppe von Buchstaben durch eine
Nachfolgergruppe ersetzt. Ein Beispielaufruf könnte so aussehen:
1 ( Analogy ’(( abc )( abd )( rssttt )))
2 -> ( rssuuu )


• Kognitive Modellierung (4 Punkte): Hierbei gilt es auch wieder das Programm zu
vermenschlichen. Als Hilfe gibt es hier wieder die Ergebnisse des Miniversuches. Solche
Analogien werden von unterschiedlichen Menschen auf unterschiedliche Weise gelöst. Auf
abc ! abd :: lmn !?? könnte man sich die Lösung lmo (Regel: Rechtester Buchstabe wird
durch seinen Nachfolger ersetzt) vorstellen, aber auch die Lösung lmd wäre valide (Regel:
Rechtester Buchstabe wird durch d ersetzt). Natürlich sind solche Regeln unterschiedlich
wahrscheinlich. Deshalb soll das Programm um Präferenzen erweitert werden. Das heißt,
dass das Programm nicht immer die gleiche Ausgabe hat, sondern nur eine Präferenz für die
Ausgabe und auch andere valide (vielleicht aber auch nicht so wahrscheinliche) Lösungen
produzieren kann.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Dorfy
Mitglied
Double-Dipl.-Ing. Bleistiftanspitzer


Sehen Sie sich das Profil von Dorfy an!   Senden Sie eine Private Message an Dorfy  Schreiben Sie einen Gästebucheintrag für Dorfy

Beiträge: 900
Registriert: 21.07.2006

AutoCad2007, ProE, HiCad

erstellt am: 02. Jan. 2010 19:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für fhbhmh 10 Unities + Antwort hilfreich

Hi und herzlich willkommen auf cad.de!
Ob du die gewünschte Hilfe ohne Eigeninitiative erhältst, wage ich zu bezweifeln.
Zudem - da es sich um eine Hausaufgabe/Studienarbeit handelt,
bei der du sicher auch alle Quellen angibst(musst)... .
Und der Lerneffekt geht doch auch gegen Null.
Aber als Hilfestellung (es sollten auch schon einige Aufgaben gelöst sein  )
schau mal hier
oder als Buch („Anhängsel“ als E-Book) oder einfach mal die Forensuche bemühen.
In dem Sinne ein frohes und gesundes neues Jahr.

------------------
Mfg Heiko

Elefantenjagd in Afrika
"... LISP-Programmierer bauen einen Irrgarten aus Klammern und hoffen, dass sich der Elefant darin verirrt..."   (www.uni-leipzig.de/~rotheh/elefant.htm)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADmium
Moderator
Maschinenbaukonstrukteur




Sehen Sie sich das Profil von CADmium an!   Senden Sie eine Private Message an CADmium  Schreiben Sie einen Gästebucheintrag für CADmium

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 03. Jan. 2010 07:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für fhbhmh 10 Unities + Antwort hilfreich

@Dorfy
Die Aufgabenstellung hat IMHO weniger mit Autolisp zu tun .... eher mit LISP und noch mehr mit Mathematik und Algorithmen ....

@fhbhmh (ohne Namen? Haste Angst , dein Prof liest mit  )
Ist 'ne interessante Aufgabenstellung, aber da es hier mehr um Autocad und dessen Programmierung geht, denke ich, wirds hier nicht viele Antworten zum Thema geben ( vielleicht noch von Achim oder Tom  ) .... nur als Vorwarnung, damt du dich nicht drauf verläßt.

------------------
  - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

fhbhmh
Mitglied


Sehen Sie sich das Profil von fhbhmh an!   Senden Sie eine Private Message an fhbhmh  Schreiben Sie einen Gästebucheintrag für fhbhmh

Beiträge: 2
Registriert: 02.01.2010

erstellt am: 03. Jan. 2010 12:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

ich versuch ja das "zeug"   zu lernen muss aber von grund auf die programmiersprache lernen und mach das über lisp curse elma kann uch schon recursive aufgaben (stolz strotz) bin bisher jedoch nicht auf vergleichbare aufgaben gestoßen
trotzdem schon mal danke das überhaupt jmd zurück geschrieben hat und auch die Tippsw in welche Richtung die Aufgaben gehn sind bestimmt hilfreich.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

neurosis
Mitglied
dipl.ing.


Sehen Sie sich das Profil von neurosis an!   Senden Sie eine Private Message an neurosis  Schreiben Sie einen Gästebucheintrag für neurosis

Beiträge: 222
Registriert: 22.08.2006

erstellt am: 03. Jan. 2010 15:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für fhbhmh 10 Unities + Antwort hilfreich

hallo fhbhmh,
als erstes solltest du dir gedanken machen, wie deine algorithmen im allgemeinen ausschauen sollen (stichwort pseudocode).
wenn du dann bei der umsetzung in lispcode probleme hast, einfach mal deine ansaetze posten.

algorithmen / ansaetze fuer diese problemstellungen sollte es auch schon in anderen sprachen geben (pascal, c, ...). einfach mal suchen.

gruss
marco

------------------
Marco Heuer
www.arc-aachen.de
Airport Office

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Brischke
Moderator
CAD on demand GmbH




Sehen Sie sich das Profil von Brischke an!   Senden Sie eine Private Message an Brischke  Schreiben Sie einen Gästebucheintrag für Brischke

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 05. Jan. 2010 09:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für fhbhmh 10 Unities + Antwort hilfreich

Hallo fhbhmh,

weil ich selber nach den Ferien erst einmal wieder 'reinkommen' muss, habe ich die Aufgabe mal zum Aufwärmen genommen.
Der folgende Code löst die erste Aufgabe, vielleicht hilft dir das einen Ansatz für die anderen Aufgaben zu entwickeln.

Code:

(defun numbers (INPUT ERGANZ / operand op_val)
  ;;; INPUT Zahlenliste (1 2 3 4)
  ;;; ERGANZ Anzahl der Elemente der Ergebnisliste
  (defun INT2REAL (Z)(* Z 1.0))
  ;-> erstmal Reel-Zahlen basteln
  (setq INPUT (mapcar 'INT2REAL INPUT))
  ;<- erstmal Reel-Zahlen basteln
  ;-> Prüfung welche Operation durchgeführt wurde, Operand und Wert des Operanden wrmitteln
  (setq operand (cond
  ((apply '=(mapcar '- (cdr INPUT) INPUT))
  ;plus
  (setq op_val (- (cadr INPUT)(car INPUT)))
  '+
  )
  ((apply '=(mapcar '+ (cdr INPUT) INPUT))
  ;minus
  (setq op_val (+ (cadr INPUT)(car INPUT)))
  '-
  )
  ((apply '=(mapcar '* (cdr INPUT) INPUT))
  ;durch
  (setq op_val (* (cadr INPUT)(car INPUT)))
  '/
  )
  ((apply '=(mapcar '/ (cdr INPUT) INPUT))
  ;mal
  (setq op_val (/ (cadr INPUT)(car INPUT)))
  '*
  )
  )
)
  ;<- Prüfung welche Operation durchgeführt wurde, Operand und Wert des Operanden wrmitteln
  ;-> Aufbau der Ergebnisliste
  ;-> Umkehren von Zahlenliste, damit immer das erste Element zur Berechnung des neuen Elements herangezogen werden kann (schneller Listenaufbau)
  (setq INPUT (reverse INPUT))
  ;<- Umkehren von Zahlenliste, damit immer das erste Element zur Berechnung des neuen Elements herangezogen werden kann (schneller Listenaufbau)
  (if operand; nur wenn die Zahlenreihe gültige Elemente enthält
    (while (<(length INPUT)ERGANZ)
      (setq INPUT (cons ((eval operand) (car INPUT) op_val) INPUT))
      )
    )
  ;<- Aufbau der Ergebnisliste
  ;-> Umkehrung der Zahlenliste rückgängig machen
  (reverse INPUT);ERGEBNIS der Function
  ;<- Umkehrung der Zahlenliste rückgängig machen
  )
;Bsp: Addition
(princ(numbers '(1 4 7 10) 10))
(terpri)
;Bsp: Subtraktion
(princ(numbers '(10 8 6 4) 10))
(terpri)
;Bsp Division
(princ(numbers '(128 64 32 16) 10))
(terpri)
;Bsp Multiplikation
(princ(numbers '(1 2 4 8) 10))

Aber Vorsicht, der Code fängt keine Fehler ab, wenn zum Bsp, die Input-Zahlenreihe eine Division durch Null verursachen würde.

Grüße Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADmium
Moderator
Maschinenbaukonstrukteur




Sehen Sie sich das Profil von CADmium an!   Senden Sie eine Private Message an CADmium  Schreiben Sie einen Gästebucheintrag für CADmium

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 05. Jan. 2010 09:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für fhbhmh 10 Unities + Antwort hilfreich

(defun INT2REAL (Z)(* Z 1.0))  ??? nimm doch das eingebaute float .. 

------------------
  - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz