<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.mafiasi.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=79.221.0.0%2F16</id>
	<title>Fachschaft Informatik - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.mafiasi.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=79.221.0.0%2F16"/>
	<link rel="alternate" type="text/html" href="https://wiki.mafiasi.de/index.php/Spezial:Beitr%C3%A4ge/79.221.0.0/16"/>
	<updated>2026-10-17T10:24:50Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://wiki.mafiasi.de/index.php?title=Diskussion:GameMaker_AG&amp;diff=12707</id>
		<title>Diskussion:GameMaker AG</title>
		<link rel="alternate" type="text/html" href="https://wiki.mafiasi.de/index.php?title=Diskussion:GameMaker_AG&amp;diff=12707"/>
		<updated>2011-03-23T20:55:21Z</updated>

		<summary type="html">&lt;p&gt;79.221.102.15: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ein ersthaftes Projekt ==&lt;br /&gt;
&lt;br /&gt;
Hallo, Leute! Schön, dass ihr hier reinschaut. Wir wollen was sammeln:&lt;br /&gt;
&lt;br /&gt;
Ideen zu einem ernsthaften Spiel:&lt;br /&gt;
&lt;br /&gt;
* Die Welt besteht aus Blöcken (Nein, kein Minecraft!)&lt;br /&gt;
* Lightmapping lässt die Blöcke klasse aussehen&lt;br /&gt;
* Der Spieler ist ... ein Mensch ... oder eine Kugel ... oder beides&lt;br /&gt;
* Er soll wie in Mirror&#039;s Edge an den Wanden herumlaufen, vielleicht auch etwas extremer, wie in Matrix&lt;br /&gt;
&lt;br /&gt;
* Ziel: Checkpoints absolvieren&lt;br /&gt;
* Selber Sachen bauen (z.B. Brücken)&lt;br /&gt;
&lt;br /&gt;
[http://ubuntuone.com/p/em2/ Zum Lightmapping]&lt;br /&gt;
&lt;br /&gt;
Andere Ideen?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Unser richtiges Spiel ==&lt;br /&gt;
&lt;br /&gt;
Aus dem letzten Treffen ging eine Tendenz zu Real Time Strategy hervor.&lt;br /&gt;
Jeder möge bitte bis zum 25. Überlegungen zum Genre anstallen, wir kümmern uns dann am Anfang des Treffens gleich um die Auswahl.&lt;/div&gt;</summary>
		<author><name>79.221.102.15</name></author>
	</entry>
	<entry>
		<id>https://wiki.mafiasi.de/index.php?title=Vorlage:Aktuelles&amp;diff=8952</id>
		<title>Vorlage:Aktuelles</title>
		<link rel="alternate" type="text/html" href="https://wiki.mafiasi.de/index.php?title=Vorlage:Aktuelles&amp;diff=8952"/>
		<updated>2010-03-09T01:11:12Z</updated>

		<summary type="html">&lt;p&gt;79.221.152.15: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* &#039;&#039;&#039;Mo, 1.3.2010&#039;&#039;&#039; - [http://uxhh.de/roundtable uxHH meets HIIForum]&lt;br /&gt;
* &#039;&#039;&#039;jeden Do ab 20 Uhr&#039;&#039;&#039; - [[Musik-AG]] (R-031)&lt;br /&gt;
* &#039;&#039;&#039;Mo, 22.03.2010&#039;&#039;&#039; - [[FsrProtokoll08032010|FSR-Party]] (16:30, c.t.)&lt;br /&gt;
* &#039;&#039;&#039;Fr, 19.03.2010&#039;&#039;&#039; ab &#039;&#039;&#039;16 Uhr&#039;&#039;&#039; - [[Spiele-AG|Spieleabend]]&lt;br /&gt;
* &#039;&#039;&#039;Mo, 19.04.2010&#039;&#039;&#039; - [[Vollversammlung |Vollversammlung]] &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 weitere spieleabende:&lt;br /&gt;
    * Sa. 10.4.2010 ab 16 Uhr&lt;br /&gt;
    * Fr. 30.4.2010 ab 16 Uhr &lt;br /&gt;
nächste as-sitzung:&lt;br /&gt;
* &#039;&#039;&#039;Do, 15.04.2010&#039;&#039;&#039; Sitzung des [[Akademischer Senat|Akademischen Senats]] (14 Uhr c.t. im AS-Sitzungssaal, ESA 1)&lt;br /&gt;
nächste FSR-Sitzung:&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>79.221.152.15</name></author>
	</entry>
	<entry>
		<id>https://wiki.mafiasi.de/index.php?title=Vorlage:Aktuelles&amp;diff=8951</id>
		<title>Vorlage:Aktuelles</title>
		<link rel="alternate" type="text/html" href="https://wiki.mafiasi.de/index.php?title=Vorlage:Aktuelles&amp;diff=8951"/>
		<updated>2010-03-09T01:08:14Z</updated>

		<summary type="html">&lt;p&gt;79.221.152.15: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* &#039;&#039;&#039;Mo, 1.3.2010&#039;&#039;&#039; - [http://uxhh.de/roundtable uxHH meets HIIForum]&lt;br /&gt;
* &#039;&#039;&#039;jeden Do ab 20 Uhr&#039;&#039;&#039; - [[Musik-AG]] (R-031)&lt;br /&gt;
* &#039;&#039;&#039;Mo, 22.03.2010&#039;&#039;&#039; - [[FsrProtokoll08032010|FSR-Party]] (16:30, c.t.)&lt;br /&gt;
* &#039;&#039;&#039;Fr, 19.03.2010&#039;&#039;&#039; ab &#039;&#039;&#039;16 Uhr&#039;&#039;&#039; - [[Spiele-AG|Spieleabend]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 weitere spieleabende:&lt;br /&gt;
    * Sa. 10.4.2010 ab 16 Uhr&lt;br /&gt;
    * Fr. 30.4.2010 ab 16 Uhr &lt;br /&gt;
nächste as-sitzung:&lt;br /&gt;
* &#039;&#039;&#039;Do, 15.04.2010&#039;&#039;&#039; Sitzung des [[Akademischer Senat|Akademischen Senats]] (14 Uhr c.t. im AS-Sitzungssaal, ESA 1)&lt;br /&gt;
nächste FSR-Sitzung:&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>79.221.152.15</name></author>
	</entry>
	<entry>
		<id>https://wiki.mafiasi.de/index.php?title=Vorlage:Protokolle&amp;diff=8950</id>
		<title>Vorlage:Protokolle</title>
		<link rel="alternate" type="text/html" href="https://wiki.mafiasi.de/index.php?title=Vorlage:Protokolle&amp;diff=8950"/>
		<updated>2010-03-09T01:06:57Z</updated>

		<summary type="html">&lt;p&gt;79.221.152.15: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* &#039;&#039;&#039; 22.02.2010 &#039;&#039;&#039; [[FsrProtokoll22022010|FSR-Party-Protokoll]]&lt;br /&gt;
* &#039;&#039;&#039; 08.03.2010 &#039;&#039;&#039; [[FsrProtokoll08032010|FSR-Party-Protokoll]]&lt;br /&gt;
* &#039;&#039;&#039; 02.11.2009 &#039;&#039;&#039; [[VV-Protokoll vom 02.11.2009|VV-Protokoll]]&lt;/div&gt;</summary>
		<author><name>79.221.152.15</name></author>
	</entry>
	<entry>
		<id>https://wiki.mafiasi.de/index.php?title=SSH&amp;diff=7058</id>
		<title>SSH</title>
		<link rel="alternate" type="text/html" href="https://wiki.mafiasi.de/index.php?title=SSH&amp;diff=7058"/>
		<updated>2009-03-22T13:43:01Z</updated>

		<summary type="html">&lt;p&gt;79.221.191.150: /* Secure SHell */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Secure SHell =&lt;br /&gt;
=== hosts ===&lt;br /&gt;
ikum: rzdspc10.informatik.uni-hamburg.de&lt;br /&gt;
&lt;br /&gt;
Das regionale Rechenzentrum (rrz) hat seinen ssh-Server abgeschaltet, weil den niemand benötigte...&lt;br /&gt;
==== Konfiguration ====&lt;br /&gt;
Die ~/.ssh/config enthaelt die Konfiguration fuer deinen SSH Client. Dort kann man viele tolle Sachen machen, zB muss man nicht immer &amp;lt;code&amp;gt;ssh rzdspc10.informatik.uni-hamburg.de&amp;lt;/code&amp;gt; machen, sondern bspw. &amp;lt;code&amp;gt;ssh fbi&amp;lt;/code&amp;gt;. Das ist gut.&lt;br /&gt;
&lt;br /&gt;
Mit folgendem Text in deiner ~/.ssh/config kannst du das auch:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Host fbi&lt;br /&gt;
  User 3leet&lt;br /&gt;
  ForwardX11 yes&lt;br /&gt;
  HostName rzdspc10.informatik.uni-hamburg.de&lt;br /&gt;
  DynamicForward 7777&lt;br /&gt;
  #LocalForward 6631 linuxprint.informatik.uni-hamburg.de:631&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neben dem einfachen &amp;quot;ssh fbi&amp;quot; hast du nun durch &amp;lt;pre&amp;gt;DynamicForward&amp;lt;/pre&amp;gt; dauch einen lokalen SOCKS Proxy zum [[Tunneln]].&lt;br /&gt;
Wenn du mehr tolle Sachen mit deiner SSH-Config-Datei machen willst, schau dir &amp;lt;pre&amp;gt;man ssh_config&amp;lt;/pre&amp;gt; an.&lt;br /&gt;
&lt;br /&gt;
==== zu anderen Hosts ====&lt;br /&gt;
Mit Hilfe einer geeigneten ~/.ssh/config kann man von zu Hause aus sich bequem zu Hosts verbinden, die nicht direkt zugaenglich sind:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Host rzdspc*&lt;br /&gt;
  User 4winter&lt;br /&gt;
  ProxyCommand ssh 4winter@rzdspc10.informatik.uni-hamburg.de /opt/bin/netcat %h %p 2&amp;gt; /dev/null&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
netcat ist allerdings meistens einfach als &amp;lt;pre&amp;gt;netcat&amp;lt;/pre&amp;gt; oder &amp;lt;pre&amp;gt;nc&amp;lt;/pre&amp;gt; ansprechbar. In Debian ist netcat im Paket &amp;lt;pre&amp;gt;netcat-openbsd&amp;lt;/pre&amp;gt; enthalten.&lt;br /&gt;
&lt;br /&gt;
Und nu:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
teythoon@europa$ ssh rzdspc6&lt;br /&gt;
Last login: Sun Oct  7 14:05:16 2007 from rzdspc10.inform&lt;br /&gt;
Sun Microsystems Inc.   SunOS 5.10      Generic January 2005&lt;br /&gt;
&lt;br /&gt;
Willkommen auf der SUNW,Sun-Fire-V445 rzdspc6.informatik.uni-hamburg.de&lt;br /&gt;
&lt;br /&gt;
Last cluster login: Sun Oct 7 14:03:05 on rzdspc6&lt;br /&gt;
rzdspc6$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Public-Key Authentifizierung ===&lt;br /&gt;
Vom Laptop im Netz des Informatikum anmelden, ohne jedesmal das Passwort eingeben zu müssen?&lt;br /&gt;
Geht auch, und ist dabei trotzdem noch sicher!&lt;br /&gt;
Auf dem eigenen Laptop muss zuerst ein Public/Private-Schlüsselpaar erstellt werden. Das funktioniert durch das Programm &amp;quot;ssh-keygen&amp;quot; und sieht dann etwa so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
olli@desktop:~$ ssh-keygen &lt;br /&gt;
Generating public/private rsa key pair.&lt;br /&gt;
Enter file in which to save the key (/home/olli/.ssh/id_rsa): &lt;br /&gt;
Enter passphrase (empty for no passphrase): &lt;br /&gt;
Enter same passphrase again: &lt;br /&gt;
Your identification has been saved in /home/olli/.ssh/id_rsa.&lt;br /&gt;
Your public key has been saved in /home/olli/.ssh/id_rsa.pub.&lt;br /&gt;
The key fingerprint is: bla bla&lt;br /&gt;
olli@desktop:~$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Man kann alle Abfragen einfach mit Enter bestätigen.&lt;br /&gt;
Nun muss man dem Server, in diesem Fall rzdspc10, nur noch eine Kopie des Schlüssels zukommen lassen. Das funktioniert vom Laptop aus über ssh-copy-id:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-copy-id -i ~/.ssh/id_rsa.pub 7bestman@rzdspc10.informatik.uni-hamburg.de&lt;br /&gt;
Password: *passwort*&lt;br /&gt;
bla bla bla&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
der Parameter -i gibt hierbei den public-Schlüssel an...&lt;br /&gt;
Falls man das Programm ssh-copy-id nicht hat (fehlt z.B. auf rzdspc10 und den anderen), kann man den Vorgang auch per Hand durchführen. Man kopiert die Datei &amp;quot;~/.ssh/id_rsa.pub&amp;quot; vom Client, also da wo man sie erstellt hat, auf den Zielrechner, loggt sich dann an dem Zielrechner ein und kopiert den Inhalt ans Ende der Datei ~/.ssh/authorized_keys. &amp;quot;cat mein-key.pub &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;quot; auf dem Server ausgeführt reicht dann.&lt;br /&gt;
&lt;br /&gt;
=== expect ===&lt;br /&gt;
Expect ist ein kleines Programm, was einen Prozess startet und auf Ausgaben dieses Prozess wartet, um dann Eingaben an den Prozess zu senden. Nun kann man expect nutzen um ein einfaches &amp;quot;login&amp;quot;-Script für die UHH-Firewall zu schreiben, da dort Public-Key Authentifizierung nicht möglich ist.&lt;br /&gt;
&lt;br /&gt;
Nachteil ist natürlich, dass das eigene &#039;&#039;&#039;Passwort im Klartext&#039;&#039;&#039; im Script zu finden ist. Wenn einen das nicht stört, dann kann man sich &#039;&#039;expect&#039;&#039; installieren und folgendes in eine Datei schreiben:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/expect -f&lt;br /&gt;
&lt;br /&gt;
set host &amp;quot;10.1.1.10&amp;quot;&lt;br /&gt;
set user &amp;quot;3leet@inf&amp;quot;&lt;br /&gt;
set pass &amp;quot;geheimes-pw&amp;quot;&lt;br /&gt;
&lt;br /&gt;
spawn ssh -l &amp;quot;$user&amp;quot; &amp;quot;$host&amp;quot;&lt;br /&gt;
&lt;br /&gt;
expect {&lt;br /&gt;
    &amp;quot;Are you sure you want to continue connecting&amp;quot; {&lt;br /&gt;
        send &amp;quot;yes\n&amp;quot;&lt;br /&gt;
        exp_continue&lt;br /&gt;
    }&lt;br /&gt;
    &amp;quot;password:&amp;quot; {&lt;br /&gt;
        send &amp;quot;$pass\n&amp;quot;&lt;br /&gt;
        interact&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nun einfach ausführbar machen und sich ganz fix ohne Passwortabfrage einloggen&lt;br /&gt;
 chmod +x meine-datei&lt;br /&gt;
 ./meine-datei&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Nützliche &amp;quot;Tricks&amp;quot; ===&lt;br /&gt;
Mit Hilfe des Port Forwadings kann man auch von Zuhause aus zb das [http://www.oclc.org/ Online Computer Library Center] oder die [http://portal.acm.org/dl.cfm ACM Digital Library] durchstöbern:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ssh -L 2222:wwwcache.rrz.uni-hamburg.de:81 &amp;lt;username&amp;gt;@rzdspc10.informatik.uni-hamburg.de&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
und dann im Browser als Proxy &amp;quot;localhost&amp;quot; mit Port 2222 eintragen. Nachdem man die Verbindung wieder getrennt hat natürlich nicht vergessen die Proxyeinstellungen im Browser wieder zurückzusetzen.&lt;br /&gt;
&lt;br /&gt;
=== Probleme ===&lt;br /&gt;
* scp will nicht weil Leerzeichem im Pfad/ im Dateinamen sind:&lt;br /&gt;
den Pfad in Hochkomma &amp;lt;code&amp;gt;&#039;&amp;lt;/code&amp;gt; setzen oder vor die Leerzeichen ein Backslash&amp;lt;code&amp;gt;\&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zwei äquivaltente Beispiele:&#039;&#039;&#039;&lt;br /&gt;
 Beispiel#$ &amp;lt;code&amp;gt;scp ~/Pfad/z\ u\ r/Datei/Filename\ mit\ Leerzeichen 4user@rzdspc10:~/Zielpfad\ mit\ Leerzei\ chen/fuer/die/Datei/. &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Beispiel#$ &amp;lt;code&amp;gt;scp &#039;~/Pfad/z u r/Datei/Filename mit Leerzeichen&#039; 4user@rzdspc10:&#039;~/Zielpfad mit Leerzei chen/fuer/die/Datei/.&#039; &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* das Kopieren vieler kleiner Dateien dauert ziemlich lange?&lt;br /&gt;
On-the-fly archivieren und entpacken hilft:&lt;br /&gt;
&amp;lt;pre&amp;gt;ssh &amp;lt;mein-host&amp;gt; &#039;tar -c /mein/ordner/mit/kleinen/dateien | gzip&#039; | gzip -d | tar -xv&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Schalter -z Spart man sich die beiden gzip Kommandos.&lt;br /&gt;
&amp;lt;pre&amp;gt;ssh &amp;lt;mein-host&amp;gt; &amp;quot;tar -cz /mein/ordner/mit/kleinen/dateien&amp;quot; | tar -xzv&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ausserdem kann man bei tar noch das Zielverzeichnis angeben und eventuell eine schnellere Verschlüsselung für ssh benutzen. Bei langsamen Rechnern und hoher Bandbreite macht es Sinn, auf die Kompression zu verzichten.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ssh -c blowfish &amp;lt;mein-host&amp;gt; &amp;quot;tar -c /mein/ordner/mit/kleinen/dateien&amp;quot; | tar -xv -C /hier/hin/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:dba]]&lt;/div&gt;</summary>
		<author><name>79.221.191.150</name></author>
	</entry>
	<entry>
		<id>https://wiki.mafiasi.de/index.php?title=Benutzer_Diskussion:79.221.197.142&amp;diff=6712</id>
		<title>Benutzer Diskussion:79.221.197.142</title>
		<link rel="alternate" type="text/html" href="https://wiki.mafiasi.de/index.php?title=Benutzer_Diskussion:79.221.197.142&amp;diff=6712"/>
		<updated>2009-02-09T19:41:56Z</updated>

		<summary type="html">&lt;p&gt;79.221.197.142: Die Seite wurde neu angelegt: Bei Fragen: 7bestman@inf&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bei Fragen: 7bestman@inf&lt;/div&gt;</summary>
		<author><name>79.221.197.142</name></author>
	</entry>
	<entry>
		<id>https://wiki.mafiasi.de/index.php?title=Ged%C3%A4chtnisprotokoll_SE-3FP09-1&amp;diff=6711</id>
		<title>Gedächtnisprotokoll SE-3FP09-1</title>
		<link rel="alternate" type="text/html" href="https://wiki.mafiasi.de/index.php?title=Ged%C3%A4chtnisprotokoll_SE-3FP09-1&amp;diff=6711"/>
		<updated>2009-02-09T19:41:25Z</updated>

		<summary type="html">&lt;p&gt;79.221.197.142: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Softwareentwicklung III - Funktionale Programmierung, Klausur 1 WS08/09 ===&lt;br /&gt;
&lt;br /&gt;
Bearbeitungszeit: 120 Minuten&lt;br /&gt;
&lt;br /&gt;
Insgesamt 70 Punkte, für jede Aufgabe insgesamt 10&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1 - Auswerten und Notation ====&lt;br /&gt;
&lt;br /&gt;
* Zu welchen Werten evaluieren die folgenden Ausdrücke?&lt;br /&gt;
&lt;br /&gt;
 (* (- 6 5) 2)&lt;br /&gt;
 (car &#039;(((Foo) bar) bla))&lt;br /&gt;
 (cdr &#039;(((Noch) so) ein Ausdruck))&lt;br /&gt;
 (map car &#039;((1 . 1) (1 . 2) (1 . 3)))&lt;br /&gt;
 (filter number? &#039;(#t drei &amp;quot;vier&amp;quot; 42 (1 2)))&lt;br /&gt;
&lt;br /&gt;
* Wandeln Sie die folgenden Ausdrücke in Scheme um (LaTeX scheint im Wiki nicht zu funktionieren?):&lt;br /&gt;
 1 - 4 * 3 + 2&lt;br /&gt;
 \sqrt{1 - \cos^2 3.1414}&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2 ====&lt;br /&gt;
&lt;br /&gt;
* Was sind Vor- und Nachteile der Infix- bzw. Präfixnotation und geben sie jeweils ein Beispiel an?&lt;br /&gt;
* Welche Notation wird in Scheme verwendet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3 - Rekursion ====&lt;br /&gt;
&lt;br /&gt;
* Definieren sie eine Funktion, die die Länge einer Liste allgemein-rekursiv berechnet.&lt;br /&gt;
* Definieren sie eine Funktion, die die Länge einer Liste endrekursiv berechnet.&lt;br /&gt;
* Wo liegen die Unterschiede zwischen Endrekursiv und Allgemeinrekursiv und warum ist die Endrekursion besser?&lt;br /&gt;
&lt;br /&gt;
...noch mehr glaub ich, Ideen?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 4 - Eigene Datenstruktur ====&lt;br /&gt;
Diese Aufgabe findet sich in ähnlicher Form in den Klausurvorbereitungen mit dem Umrechnen von Längenangaben.&lt;br /&gt;
&lt;br /&gt;
* Definieren Sie eine Datenstruktur für Geldbeträge, so dass jeder Geldbetrag z.B. eine zweielementige Liste aus Betrag (Zahl) und Währung (Symbol) ist. Schreiben sie eine Funktion, die so einen Datensatz erzeugt:&lt;br /&gt;
 (make-deposit 5 &#039;Euro) -&amp;gt; (5 Euro)&lt;br /&gt;
&lt;br /&gt;
* Schreiben sie Zugriffsfunktionen auf den Wert und die Einheit&lt;br /&gt;
 (amount-of x) -&amp;gt; 5&lt;br /&gt;
 (currency-of x) -&amp;gt; Euro&lt;br /&gt;
&lt;br /&gt;
* Schreiben sie eine Funktion, die einen Geldbetrag mit einem gegebenen Faktor multipliziert.&lt;br /&gt;
 (multiply-deposit x 3) -&amp;gt; 15 Euro&lt;br /&gt;
&lt;br /&gt;
* Gegeben ist eine Umrechnungstabelle mit Paaren in der Form:&lt;br /&gt;
 (define *Kurse* &#039;(&lt;br /&gt;
  ; Wert der Währung in Euro&lt;br /&gt;
  (0.15 . NOR)&lt;br /&gt;
  (0.71 . USD)&lt;br /&gt;
  (1.00 . Euro))&lt;br /&gt;
&lt;br /&gt;
* Schreiben sie eine Funktion, die einen Geldbetrag in Euro umgewandelt werden kann:&lt;br /&gt;
 (deposit-&amp;gt;Euro &#039;(10 USD)) -&amp;gt; 7.10&lt;br /&gt;
&lt;br /&gt;
* Schreiben sie eine Funktion deposit+ die zwei Geldbeträge addiert&lt;br /&gt;
 (deposit+ &#039;(10 USD) &#039;(2.10 Euro)) -&amp;gt; (10 Euro)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 5 - Funktionen höherer Ordnung ====&lt;br /&gt;
Funktionen höherer Ordnung - hier sollte man wo möglich apply, reduce, map, filter etc. pp. benutzen. Alles unter Zuhilfenahme der Funktionen, die man in der Aufgabe 4 geschrieben hat.&lt;br /&gt;
&lt;br /&gt;
* Die fiktive Problem-Person in der Aufgabe hat verschiedene Währungen in ihrer Kasse. Sie möchte wissen, wieviel die Beträge in Euro Wert sind. Schreiben sie eine Funktion, die eine Liste mit Währungen in Euro Umwandelt.&lt;br /&gt;
 (Kasse-&amp;gt;Euro &#039;( (10 USD) (2.10 Euro))) -&amp;gt; ( (7.10 Euro) (2.10 Euro) )&lt;br /&gt;
&lt;br /&gt;
* Nun möchte der Typ wissen, wieviel Geld insgesammt in seiner Kasse vorhanden ist.&lt;br /&gt;
 (betrag &#039;( (10 USD) (2.10 Euro) )) -&amp;gt; (10 Euro)&lt;br /&gt;
&lt;br /&gt;
* Jetzt ist die Frage nach allen Beträgen in einer bestimmten Währung&lt;br /&gt;
 (betragWährung &#039;( (10 USD) (2.10 Euro) ) &#039;USD ) -&amp;gt; ((10 USD))&lt;br /&gt;
&lt;br /&gt;
* Jetzt ist die Frage nach der Summe des Betrags in einer bestimmten Währung in Euro.&lt;br /&gt;
 (betragWährungSumme &#039;( (10 USD) (2.10 Euro) ) &#039;USD ) -&amp;gt; (7.10 Euro)&lt;br /&gt;
&lt;br /&gt;
* Was ist eine Funktion höherer Ordnung?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 6 - CLOS ====&lt;br /&gt;
&lt;br /&gt;
*Definieren Sie eine Klasse für Messgeräte, und eine dazugehörige generische Funktion messwert-auslesen. Definieren Sie weiterhin Klassen für:&lt;br /&gt;
** Thermometer, die die Temperatur messen&lt;br /&gt;
** Barometer, die den Luiftdruck messen&lt;br /&gt;
** Regenmesser, die die Regenmenge messen&lt;br /&gt;
** eine Wetterstation, die alles drei misst&lt;br /&gt;
&lt;br /&gt;
* Begründen Sie ihre Klassenhierarchie.&lt;br /&gt;
&lt;br /&gt;
* Beschreiben Sie das Konzept der Methodenpräzedenzlisten und begründen Sie, warum diese in CLOS nötig sind.&lt;br /&gt;
&lt;br /&gt;
* Beschreiben Sie die möglichen Methodenkombinationen, auch anhand des vorliegenden Beispiels (Messgeräte).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 7 - Prolog-in-Scheme ====&lt;br /&gt;
 &lt;br /&gt;
Gegeben sind ein paar Relationen, etwa wie folgt:&lt;br /&gt;
&lt;br /&gt;
 (kamera kamera-id name hersteller zoom auflösung)&lt;br /&gt;
 (anbieter anbieter-id name foo bar lieferzeit garantiedauer)&lt;br /&gt;
 (angebot kamera-id anbieter-id preis)&lt;br /&gt;
&lt;br /&gt;
sowie ein paar Beispieltupel mit etwa acht Angeboten für drei verscheidene Kamera und drei oder vier Hersteller, die alle untereinander durch die IDs verlinkt sind.&lt;br /&gt;
&lt;br /&gt;
* Stellen Sie geeignete Anfragen:&lt;br /&gt;
** Preis einer Kamera mit 18-fachem Zoom&lt;br /&gt;
** Namen der Anbieter die eine Kamera mit Irgendwas verkaufen.&lt;br /&gt;
** Alle Kameras, die in max. einem Tag geliefert werden&lt;br /&gt;
&lt;br /&gt;
* Was muss man beachten, wenn man funktionale Sprachelemente in Prolog-Programmen verwendet?&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: Gedaechtnisprotokoll|SE3]]&lt;/div&gt;</summary>
		<author><name>79.221.197.142</name></author>
	</entry>
	<entry>
		<id>https://wiki.mafiasi.de/index.php?title=Ged%C3%A4chtnisprotokoll_SE-3FP09-1&amp;diff=6710</id>
		<title>Gedächtnisprotokoll SE-3FP09-1</title>
		<link rel="alternate" type="text/html" href="https://wiki.mafiasi.de/index.php?title=Ged%C3%A4chtnisprotokoll_SE-3FP09-1&amp;diff=6710"/>
		<updated>2009-02-09T19:37:54Z</updated>

		<summary type="html">&lt;p&gt;79.221.197.142: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Softwareentwicklung III - Funktionale Programmierung, Klausur 1 WS08/09 ===&lt;br /&gt;
&lt;br /&gt;
Bearbeitungszeit: 120 Minuten&lt;br /&gt;
&lt;br /&gt;
Insgesamt 70 Punkte, für jede Aufgabe insgesamt 10&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1 - Auswerten und Notation ====&lt;br /&gt;
&lt;br /&gt;
* Zu welchen Werten evaluieren die folgenden Ausdrücke?&lt;br /&gt;
&lt;br /&gt;
 (* (- 6 5) 2)&lt;br /&gt;
 (car &#039;(((Foo) bar) bla))&lt;br /&gt;
 (cdr &#039;(((Noch) so) ein Ausdruck))&lt;br /&gt;
 (map car &#039;((1 . 1) (1 . 2) (1 . 3)))&lt;br /&gt;
 (filter number? &#039;(#t drei &amp;quot;vier&amp;quot; 42 (1 2)))&lt;br /&gt;
&lt;br /&gt;
* Wandeln Sie die folgenden Ausdrücke in Scheme um (LaTeX scheint im Wiki nicht zu funktionieren?):&lt;br /&gt;
 1 - 4 * 3 + 2&lt;br /&gt;
 \sqrt{1 - \cos^2 3.1414}&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2 ====&lt;br /&gt;
&lt;br /&gt;
* Was sind Vor- und Nachteile der Infix- bzw. Präfixnotation und geben sie jeweils ein Beispiel an?&lt;br /&gt;
* Welche Notation wird in Scheme verwendet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3 - Rekursion ====&lt;br /&gt;
&lt;br /&gt;
* Definieren sie eine Funktion, die die Länge einer Liste allgemein-rekursiv berechnet.&lt;br /&gt;
* Definieren sie eine Funktion, die die Länge einer Liste endrekursiv berechnet.&lt;br /&gt;
* Wo liegen die Unterschiede zwischen Endrekursiv und Allgemeinrekursiv und warum ist die Endrekursion besser?&lt;br /&gt;
&lt;br /&gt;
...noch mehr glaub ich, Ideen?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 4 - Eigene Datenstruktur ====&lt;br /&gt;
Diese Aufgabe findet sich in ähnlicher Form in den Klausurvorbereitungen mit dem Umrechnen von Längenangaben.&lt;br /&gt;
&lt;br /&gt;
* Definieren Sie eine Datenstruktur für Geldbeträge, so dass jeder Geldbetrag z.B. eine zweielementige Liste aus Betrag (Zahl) und Währung (Symbol) ist. Schreiben sie eine Funktion, die so einen Datensatz erzeugt:&lt;br /&gt;
 (make-deposit 5 &#039;Euro) -&amp;gt; (5 Euro)&lt;br /&gt;
&lt;br /&gt;
* Schreiben sie Zugriffsfunktionen auf den Wert und die Einheit&lt;br /&gt;
 (amount-of x) -&amp;gt; 5&lt;br /&gt;
 (currency-of x) -&amp;gt; Euro&lt;br /&gt;
&lt;br /&gt;
* Schreiben sie eine Funktion, die einen Geldbetrag mit einem gegebenen Faktor multipliziert.&lt;br /&gt;
 (multiply-deposit x 3) -&amp;gt; 15 Euro&lt;br /&gt;
&lt;br /&gt;
* Gegeben ist eine Umrechnungstabelle mit Paaren in der Form:&lt;br /&gt;
 (define *Kurse* &#039;(&lt;br /&gt;
  ; Wert der Währung in Euro&lt;br /&gt;
  (0.15 . NOR)&lt;br /&gt;
  (0.71 . USD)&lt;br /&gt;
  (1.00 . Euro))&lt;br /&gt;
&lt;br /&gt;
* Schreiben sie eine Funktion, die einen Geldbetrag in Euro umgewandelt werden kann:&lt;br /&gt;
 (deposit-&amp;gt;Euro &#039;(10 USD)) -&amp;gt; 7.10&lt;br /&gt;
&lt;br /&gt;
* Schreiben sie eine Funktion deposit+ die zwei Geldbeträge addiert&lt;br /&gt;
 (deposit+ &#039;(10 USD) &#039;(2.10 Euro)) -&amp;gt; (10 Euro)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 5 - Funktionen höherer Ordnung ====&lt;br /&gt;
Funktionen höherer Ordnung - hier sollte man wo möglich apply, reduce, map, filter etc. pp. benutzen. Alles unter Zuhilfenahme der Funktionen, die man in der Aufgabe 4 geschrieben hat.&lt;br /&gt;
&lt;br /&gt;
* Die fiktive Problem-Person in der Aufgabe hat verschiedene Währungen in ihrer Kasse. Sie möchte wissen, wieviel die Beträge in Euro Wert sind. Schreiben sie eine Funktion, die eine Liste mit Währungen in Euro Umwandelt.&lt;br /&gt;
 (Kasse-&amp;gt;Euro &#039;( (10 USD) (2.10 Euro))) -&amp;gt; ( (7.10 Euro) (2.10 Euro) )&lt;br /&gt;
&lt;br /&gt;
* Nun möchte der Typ wissen, wieviel Geld insgesammt in seiner Kasse vorhanden ist.&lt;br /&gt;
 (betrag &#039;( (10 USD) (2.10 Euro) )) -&amp;gt; (10 Euro)&lt;br /&gt;
&lt;br /&gt;
* Jetzt ist die Frage nach allen Beträgen in einer bestimmten Währung&lt;br /&gt;
 (betragWährung &#039;( (10 USD) (2.10 Euro) ) &#039;USD ) -&amp;gt; ((10 USD))&lt;br /&gt;
&lt;br /&gt;
* Jetzt ist die Frage nach der Summe des Betrags in einer bestimmten Währung in Euro.&lt;br /&gt;
 (betragWährungSumme &#039;( (10 USD) (2.10 Euro) ) &#039;USD ) -&amp;gt; (7.10 Euro)&lt;br /&gt;
&lt;br /&gt;
* Was ist eine Funktion höherer Ordnung?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 6 - CLOS ====&lt;br /&gt;
&lt;br /&gt;
*Definieren Sie eine Klasse für Messgeräte, und eine dazugehörige generische Funktion messwert-auslesen. Definieren Sie weiterhin Klassen für:&lt;br /&gt;
** Thermometer, die die Temperatur messen&lt;br /&gt;
** Barometer, die den Luiftdruck messen&lt;br /&gt;
** Regenmesser, die die Regenmenge messen&lt;br /&gt;
** eine Wetterstation, die alles drei misst&lt;br /&gt;
&lt;br /&gt;
* Begründen Sie ihre Klassenhierarchie.&lt;br /&gt;
&lt;br /&gt;
* Beschreiben Sie das Konzept der Methodenpräzedenzlisten und begründen Sie, warum diese in CLOS nötig sind.&lt;br /&gt;
&lt;br /&gt;
* Beschreiben Sie die möglichen Methodenkombinationen, auch anhand des vorliegenden Beispiels (Messgeräte).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 7 - Prolog-in-Scheme ====&lt;br /&gt;
 &lt;br /&gt;
Gegeben sind ein paar Relationen, etwa wie folgt:&lt;br /&gt;
&lt;br /&gt;
 (kamera kamera-id name hersteller zoom auflösung)&lt;br /&gt;
 (anbieter anbieter-id name foo bar lieferzeit garantiedauer)&lt;br /&gt;
 (angebot kamera-id anbieter-id preis)&lt;br /&gt;
&lt;br /&gt;
sowie ein paar Beispieltupel mit etwa acht Angeboten für drei verscheidene Kamera und drei oder vier Hersteller, die alle untereinander durch die IDs verlinkt sind.&lt;br /&gt;
&lt;br /&gt;
* Stellen Sie geeignete Anfragen:&lt;br /&gt;
** Preis einer Kamera mit 18-fachem Zoom&lt;br /&gt;
** Namen der Anbieter die eine Kamera mit Irgendwas verkaufen.&lt;br /&gt;
** Alle Kameras, die in max. einem Tag geliefert werden&lt;br /&gt;
&lt;br /&gt;
* Was muss man beachten, wenn man funktionale Sprachelemente in Prolog-Programmen verwendet?&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: Gedaechtnisprotokoll|SE3]]&lt;/div&gt;</summary>
		<author><name>79.221.197.142</name></author>
	</entry>
	<entry>
		<id>https://wiki.mafiasi.de/index.php?title=Ged%C3%A4chtnisprotokoll_SE-3FP09-1&amp;diff=6709</id>
		<title>Gedächtnisprotokoll SE-3FP09-1</title>
		<link rel="alternate" type="text/html" href="https://wiki.mafiasi.de/index.php?title=Ged%C3%A4chtnisprotokoll_SE-3FP09-1&amp;diff=6709"/>
		<updated>2009-02-09T19:33:54Z</updated>

		<summary type="html">&lt;p&gt;79.221.197.142: /* Aufgabe 1 - Auswerten und Notation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Softwareentwicklung III - Funktionale Programmierung, Klausur 1 WS08/09 ===&lt;br /&gt;
&lt;br /&gt;
Bearbeitungszeit: 120 Minuten&lt;br /&gt;
&lt;br /&gt;
Insgesamt 70 Punkte, für jede Aufgabe insgesamt 10&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1 - Auswerten und Notation ====&lt;br /&gt;
&lt;br /&gt;
* Zu welchen Werten evaluieren die folgenden Ausdrücke?&lt;br /&gt;
&lt;br /&gt;
 (* (- 6 5) 2)&lt;br /&gt;
 (car &#039;(((Foo) bar) bla))&lt;br /&gt;
 (cdr &#039;(((Noch) so) ein Ausdruck))&lt;br /&gt;
 (map car &#039;((1 . 1) (1 . 2) (1 . 3)))&lt;br /&gt;
 (filter number? &#039;(#t drei &amp;quot;vier&amp;quot; 42 (1 2)))&lt;br /&gt;
&lt;br /&gt;
* Was sind Vor- und Nachteile der Infix- bzw. Präfixnotation und geben sie jeweils ein Beispiel an?&lt;br /&gt;
&lt;br /&gt;
* Welche Notation wird in Scheme verwendet&lt;br /&gt;
&lt;br /&gt;
* Wandeln Sie die folgenden Ausdrücke in Präfixnotation um (LaTeX scheint im Wiki nicht zu funktionieren?):&lt;br /&gt;
 1 - 4 * 3 + 2&lt;br /&gt;
 \sqrt{1 - \cos^2 3.1414}&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2 ====&lt;br /&gt;
&lt;br /&gt;
Hat jemand ein Tip, dann kann ich mich vielleicht wieder dran erinnern!?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3 - Rekursion ====&lt;br /&gt;
&lt;br /&gt;
* Definieren sie eine Funktion, die die Länge einer Liste allgemein-rekursiv berechnet.&lt;br /&gt;
* Definieren sie eine Funktion, die die Länge einer Liste endrekursiv berechnet.&lt;br /&gt;
* Wo liegen die Unterschiede zwischen Endrekursiv und Allgemeinrekursiv und warum ist die Endrekursion besser?&lt;br /&gt;
&lt;br /&gt;
...noch mehr glaub ich, Ideen?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 4 - Eigene Datenstruktur ====&lt;br /&gt;
Diese Aufgabe findet sich in ähnlicher Form in den Klausurvorbereitungen mit dem Umrechnen von Längenangaben.&lt;br /&gt;
&lt;br /&gt;
* Definieren Sie eine Datenstruktur für Geldbeträge, so dass jeder Geldbetrag z.B. eine zweielementige Liste aus Betrag (Zahl) und Währung (Symbol) ist. Schreiben sie eine Funktion, die so einen Datensatz erzeugt:&lt;br /&gt;
 (make-deposit 5 &#039;Euro) -&amp;gt; (5 Euro)&lt;br /&gt;
&lt;br /&gt;
* Schreiben sie Zugriffsfunktionen auf den Wert und die Einheit&lt;br /&gt;
 (amount-of x) -&amp;gt; 5&lt;br /&gt;
 (currency-of x) -&amp;gt; Euro&lt;br /&gt;
&lt;br /&gt;
* Schreiben sie eine Funktion, die einen Geldbetrag mit einem gegebenen Faktor multipliziert.&lt;br /&gt;
 (multiply-deposit x 3) -&amp;gt; 15 Euro&lt;br /&gt;
&lt;br /&gt;
* Gegeben ist eine Umrechnungstabelle mit Paaren in der Form:&lt;br /&gt;
 (define *Kurse* &#039;(&lt;br /&gt;
  ; Wert der Währung in Euro&lt;br /&gt;
  (0.15 . NOR)&lt;br /&gt;
  (0.71 . USD)&lt;br /&gt;
  (1.00 . Euro))&lt;br /&gt;
&lt;br /&gt;
* Schreiben sie eine Funktion, die einen Geldbetrag in Euro umgewandelt werden kann:&lt;br /&gt;
 (deposit-&amp;gt;Euro &#039;(10 USD)) -&amp;gt; 7.10&lt;br /&gt;
&lt;br /&gt;
* Schreiben sie eine Funktion deposit+ die zwei Geldbeträge addiert&lt;br /&gt;
 (deposit+ &#039;(10 USD) &#039;(2.10 Euro)) -&amp;gt; (10 Euro)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 5 - Funktionen höherer Ordnung ====&lt;br /&gt;
Funktionen höherer Ordnung - hier sollte man wo möglich apply, reduce, map, filter etc. pp. benutzen. Alles unter Zuhilfenahme der Funktionen, die man in der Aufgabe 4 geschrieben hat.&lt;br /&gt;
&lt;br /&gt;
* Die fiktive Problem-Person in der Aufgabe hat verschiedene Währungen in ihrer Kasse. Sie möchte wissen, wieviel die Beträge in Euro Wert sind. Schreiben sie eine Funktion, die eine Liste mit Währungen in Euro Umwandelt.&lt;br /&gt;
 (Kasse-&amp;gt;Euro &#039;( (10 USD) (2.10 Euro))) -&amp;gt; ( (7.10 Euro) (2.10 Euro) )&lt;br /&gt;
&lt;br /&gt;
* Nun möchte der Typ wissen, wieviel Geld insgesammt in seiner Kasse vorhanden ist.&lt;br /&gt;
 (betrag &#039;( (10 USD) (2.10 Euro) )) -&amp;gt; (10 Euro)&lt;br /&gt;
&lt;br /&gt;
* Jetzt ist die Frage nach allen Beträgen in einer bestimmten Währung&lt;br /&gt;
 (betragWährung &#039;( (10 USD) (2.10 Euro) ) &#039;USD ) -&amp;gt; ((10 USD))&lt;br /&gt;
&lt;br /&gt;
* Jetzt ist die Frage nach der Summe des Betrags in einer bestimmten Währung in Euro.&lt;br /&gt;
 (betragWährungSumme &#039;( (10 USD) (2.10 Euro) ) &#039;USD ) -&amp;gt; (7.10 Euro)&lt;br /&gt;
&lt;br /&gt;
* Was ist eine Funktion höherer Ordnung?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 6 - CLOS ====&lt;br /&gt;
&lt;br /&gt;
*Definieren Sie eine Klasse für Messgeräte, und eine dazugehörige generische Funktion messwert-auslesen. Definieren Sie weiterhin Klassen für:&lt;br /&gt;
** Thermometer, die die Temperatur messen&lt;br /&gt;
** Barometer, die den Luiftdruck messen&lt;br /&gt;
** Regenmesser, die die Regenmenge messen&lt;br /&gt;
** eine Wetterstation, die alles drei misst&lt;br /&gt;
&lt;br /&gt;
* Begründen Sie ihre Klassenhierarchie.&lt;br /&gt;
&lt;br /&gt;
* Beschreiben Sie das Konzept der Methodenpräzedenzlisten und begründen Sie, warum diese in CLOS nötig sind.&lt;br /&gt;
&lt;br /&gt;
* Beschreiben Sie die möglichen Methodenkombinationen, auch anhand des vorliegenden Beispiels (Messgeräte).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 7 - Prolog-in-Scheme ====&lt;br /&gt;
 &lt;br /&gt;
Gegeben sind ein paar Relationen, etwa wie folgt:&lt;br /&gt;
&lt;br /&gt;
 (kamera kamera-id name hersteller zoom auflösung)&lt;br /&gt;
 (anbieter anbieter-id name foo bar lieferzeit garantiedauer)&lt;br /&gt;
 (angebot kamera-id anbieter-id preis)&lt;br /&gt;
&lt;br /&gt;
sowie ein paar Beispieltupel mit etwa acht Angeboten für drei verscheidene Kamera und drei oder vier Hersteller, die alle untereinander durch die IDs verlinkt sind.&lt;br /&gt;
&lt;br /&gt;
* Stellen Sie geeignete Anfragen:&lt;br /&gt;
** Preis einer Kamera mit 18-fachem Zoom&lt;br /&gt;
** Namen der Anbieter die eine Kamera mit Irgendwas verkaufen.&lt;br /&gt;
** Alle Kameras, die in max. einem Tag geliefert werden&lt;br /&gt;
&lt;br /&gt;
* Was muss man beachten, wenn man funktionale Sprachelemente in Prolog-Programmen verwendet?&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: Gedaechtnisprotokoll|SE3]]&lt;/div&gt;</summary>
		<author><name>79.221.197.142</name></author>
	</entry>
	<entry>
		<id>https://wiki.mafiasi.de/index.php?title=Ged%C3%A4chtnisprotokoll_SE-3FP09-1&amp;diff=6708</id>
		<title>Gedächtnisprotokoll SE-3FP09-1</title>
		<link rel="alternate" type="text/html" href="https://wiki.mafiasi.de/index.php?title=Ged%C3%A4chtnisprotokoll_SE-3FP09-1&amp;diff=6708"/>
		<updated>2009-02-09T19:30:21Z</updated>

		<summary type="html">&lt;p&gt;79.221.197.142: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Softwareentwicklung III - Funktionale Programmierung, Klausur 1 WS08/09 ===&lt;br /&gt;
&lt;br /&gt;
Bearbeitungszeit: 120 Minuten&lt;br /&gt;
&lt;br /&gt;
Insgesamt 70 Punkte, für jede Aufgabe insgesamt 10&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1 - Auswerten und Notation ====&lt;br /&gt;
&lt;br /&gt;
* Zu welchen Werten evaluieren die folgenden Ausdrücke?&lt;br /&gt;
&lt;br /&gt;
 (* (- 6 5) 2)&lt;br /&gt;
 (car &#039;(((Foo) bar) bla))&lt;br /&gt;
 (cdr &#039;(((Noch) so) ein Ausdruck))&lt;br /&gt;
 (map car &#039;((1 . 1) (1 . 2) (1 . 3)))&lt;br /&gt;
&lt;br /&gt;
* Was sind Vor- und Nachteile der Infix- bzw. Präfixnotation und geben sie jeweils ein Beispiel an?&lt;br /&gt;
&lt;br /&gt;
* Welche Notation wird in Scheme verwendet&lt;br /&gt;
&lt;br /&gt;
* Wandeln Sie die folgenden Ausdrücke in Präfixnotation um (LaTeX scheint im Wiki nicht zu funktionieren?):&lt;br /&gt;
 1 - 4 * 3 + 2&lt;br /&gt;
 \sqrt{1 - \cos^2 3.1414}&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2 ====&lt;br /&gt;
&lt;br /&gt;
Hat jemand ein Tip, dann kann ich mich vielleicht wieder dran erinnern!?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3 - Rekursion ====&lt;br /&gt;
&lt;br /&gt;
* Definieren sie eine Funktion, die die Länge einer Liste allgemein-rekursiv berechnet.&lt;br /&gt;
* Definieren sie eine Funktion, die die Länge einer Liste endrekursiv berechnet.&lt;br /&gt;
* Wo liegen die Unterschiede zwischen Endrekursiv und Allgemeinrekursiv und warum ist die Endrekursion besser?&lt;br /&gt;
&lt;br /&gt;
...noch mehr glaub ich, Ideen?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 4 - Eigene Datenstruktur ====&lt;br /&gt;
Diese Aufgabe findet sich in ähnlicher Form in den Klausurvorbereitungen mit dem Umrechnen von Längenangaben.&lt;br /&gt;
&lt;br /&gt;
* Definieren Sie eine Datenstruktur für Geldbeträge, so dass jeder Geldbetrag z.B. eine zweielementige Liste aus Betrag (Zahl) und Währung (Symbol) ist. Schreiben sie eine Funktion, die so einen Datensatz erzeugt:&lt;br /&gt;
 (make-deposit 5 &#039;Euro) -&amp;gt; (5 Euro)&lt;br /&gt;
&lt;br /&gt;
* Schreiben sie Zugriffsfunktionen auf den Wert und die Einheit&lt;br /&gt;
 (amount-of x) -&amp;gt; 5&lt;br /&gt;
 (currency-of x) -&amp;gt; Euro&lt;br /&gt;
&lt;br /&gt;
* Schreiben sie eine Funktion, die einen Geldbetrag mit einem gegebenen Faktor multipliziert.&lt;br /&gt;
 (multiply-deposit x 3) -&amp;gt; 15 Euro&lt;br /&gt;
&lt;br /&gt;
* Gegeben ist eine Umrechnungstabelle mit Paaren in der Form:&lt;br /&gt;
 (define *Kurse* &#039;(&lt;br /&gt;
  ; Wert der Währung in Euro&lt;br /&gt;
  (0.15 . NOR)&lt;br /&gt;
  (0.71 . USD)&lt;br /&gt;
  (1.00 . Euro))&lt;br /&gt;
&lt;br /&gt;
* Schreiben sie eine Funktion, die einen Geldbetrag in Euro umgewandelt werden kann:&lt;br /&gt;
 (deposit-&amp;gt;Euro &#039;(10 USD)) -&amp;gt; 7.10&lt;br /&gt;
&lt;br /&gt;
* Schreiben sie eine Funktion deposit+ die zwei Geldbeträge addiert&lt;br /&gt;
 (deposit+ &#039;(10 USD) &#039;(2.10 Euro)) -&amp;gt; (10 Euro)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 5 - Funktionen höherer Ordnung ====&lt;br /&gt;
Funktionen höherer Ordnung - hier sollte man wo möglich apply, reduce, map, filter etc. pp. benutzen. Alles unter Zuhilfenahme der Funktionen, die man in der Aufgabe 4 geschrieben hat.&lt;br /&gt;
&lt;br /&gt;
* Die fiktive Problem-Person in der Aufgabe hat verschiedene Währungen in ihrer Kasse. Sie möchte wissen, wieviel die Beträge in Euro Wert sind. Schreiben sie eine Funktion, die eine Liste mit Währungen in Euro Umwandelt.&lt;br /&gt;
 (Kasse-&amp;gt;Euro &#039;( (10 USD) (2.10 Euro))) -&amp;gt; ( (7.10 Euro) (2.10 Euro) )&lt;br /&gt;
&lt;br /&gt;
* Nun möchte der Typ wissen, wieviel Geld insgesammt in seiner Kasse vorhanden ist.&lt;br /&gt;
 (betrag &#039;( (10 USD) (2.10 Euro) )) -&amp;gt; (10 Euro)&lt;br /&gt;
&lt;br /&gt;
* Jetzt ist die Frage nach allen Beträgen in einer bestimmten Währung&lt;br /&gt;
 (betragWährung &#039;( (10 USD) (2.10 Euro) ) &#039;USD ) -&amp;gt; ((10 USD))&lt;br /&gt;
&lt;br /&gt;
* Jetzt ist die Frage nach der Summe des Betrags in einer bestimmten Währung in Euro.&lt;br /&gt;
 (betragWährungSumme &#039;( (10 USD) (2.10 Euro) ) &#039;USD ) -&amp;gt; (7.10 Euro)&lt;br /&gt;
&lt;br /&gt;
* Was ist eine Funktion höherer Ordnung?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 6 - CLOS ====&lt;br /&gt;
&lt;br /&gt;
*Definieren Sie eine Klasse für Messgeräte, und eine dazugehörige generische Funktion messwert-auslesen. Definieren Sie weiterhin Klassen für:&lt;br /&gt;
** Thermometer, die die Temperatur messen&lt;br /&gt;
** Barometer, die den Luiftdruck messen&lt;br /&gt;
** Regenmesser, die die Regenmenge messen&lt;br /&gt;
** eine Wetterstation, die alles drei misst&lt;br /&gt;
&lt;br /&gt;
* Begründen Sie ihre Klassenhierarchie.&lt;br /&gt;
&lt;br /&gt;
* Beschreiben Sie das Konzept der Methodenpräzedenzlisten und begründen Sie, warum diese in CLOS nötig sind.&lt;br /&gt;
&lt;br /&gt;
* Beschreiben Sie die möglichen Methodenkombinationen, auch anhand des vorliegenden Beispiels (Messgeräte).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 7 - Prolog-in-Scheme ====&lt;br /&gt;
 &lt;br /&gt;
Gegeben sind ein paar Relationen, etwa wie folgt:&lt;br /&gt;
&lt;br /&gt;
 (kamera kamera-id name hersteller zoom auflösung)&lt;br /&gt;
 (anbieter anbieter-id name foo bar lieferzeit garantiedauer)&lt;br /&gt;
 (angebot kamera-id anbieter-id preis)&lt;br /&gt;
&lt;br /&gt;
sowie ein paar Beispieltupel mit etwa acht Angeboten für drei verscheidene Kamera und drei oder vier Hersteller, die alle untereinander durch die IDs verlinkt sind.&lt;br /&gt;
&lt;br /&gt;
* Stellen Sie geeignete Anfragen:&lt;br /&gt;
** Preis einer Kamera mit 18-fachem Zoom&lt;br /&gt;
** Namen der Anbieter die eine Kamera mit Irgendwas verkaufen.&lt;br /&gt;
** Alle Kameras, die in max. einem Tag geliefert werden&lt;br /&gt;
&lt;br /&gt;
* Was muss man beachten, wenn man funktionale Sprachelemente in Prolog-Programmen verwendet?&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: Gedaechtnisprotokoll|SE3]]&lt;/div&gt;</summary>
		<author><name>79.221.197.142</name></author>
	</entry>
	<entry>
		<id>https://wiki.mafiasi.de/index.php?title=Ged%C3%A4chtnisprotokoll_RS08-1&amp;diff=4943</id>
		<title>Gedächtnisprotokoll RS08-1</title>
		<link rel="alternate" type="text/html" href="https://wiki.mafiasi.de/index.php?title=Ged%C3%A4chtnisprotokoll_RS08-1&amp;diff=4943"/>
		<updated>2008-02-13T16:09:28Z</updated>

		<summary type="html">&lt;p&gt;79.221.220.78: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Aufgabe 1 ==&lt;br /&gt;
Wandeln sie die Dezimalzahl 17,125 in eine Binärzahl um mit 6 Vorkomma und 4 Nachkomma.&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 2 ( Extraaufgabe ) ==&lt;br /&gt;
Geben Sie die Dezimalzahl 0,9 als Binärbruch an. Geben Sie dazu die Vorperiode und die Periode sowie die Zahl auf 6 Stellen gerundet an.&lt;br /&gt;
&lt;br /&gt;
Vorperiode:&lt;br /&gt;
&lt;br /&gt;
Periode:&lt;br /&gt;
&lt;br /&gt;
Gerundet:&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 3 ==&lt;br /&gt;
Berechnen Sie zur Nachricht 1101001011 die Schutzkette nach dem CRC verfahren. Das Divisionspolynoms ist 10011.&lt;br /&gt;
Geben Sie die geschützte Nachricht (Nachricht + Schutzkette) an.&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 4 ( Extraaufgabe ) ==&lt;br /&gt;
Die Hamming Codierung lässt sich als CRC Codierung auffassen. Das Divisionspolynoms sei 1101. Berechnen Sie ob folgende Nachrichten korrekt übertragen wurden. Ansonsten geben sie die korrigierten Nachrichten an.&lt;br /&gt;
&lt;br /&gt;
a) 0111001&lt;br /&gt;
&lt;br /&gt;
b) 1010000&lt;br /&gt;
&lt;br /&gt;
c)  0100110&lt;br /&gt;
&lt;br /&gt;
d)  1111101&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 5 ==&lt;br /&gt;
Gegeben sind folgende Relative Häufigkeiten 5, 7, 11, 18, 19, 23 eines Zeichensatzes. Geben Sie die Längen der Codewörter eines zugehörigen Huffmancodes an.&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 6 ==&lt;br /&gt;
&lt;br /&gt;
Gegeben sind folgende DNF&lt;br /&gt;
&lt;br /&gt;
X = .....&lt;br /&gt;
&lt;br /&gt;
Y = .....&lt;br /&gt;
&lt;br /&gt;
Dadraus wurden mithilfe von KV-Diagrammen die folgenden minimierten DNF erstellt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
a)&lt;br /&gt;
&lt;br /&gt;
X = ....&lt;br /&gt;
&lt;br /&gt;
Y = .....&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kreuzen Sie alle zutreffenden Aussagen an:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ] Die minimierten Terme sind richtig&lt;br /&gt;
[ ] Die minimierten Terme sind falsch&lt;br /&gt;
[ ] Nur X ist richtig&lt;br /&gt;
[ ] Nur Y ist richtig&lt;br /&gt;
[ ] Die minimierten Terme sind richtig, aber vertauscht&lt;br /&gt;
[ ] Die minimierten Terme sind richtig, aber in der falschen Reinfolge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
b)&lt;br /&gt;
&lt;br /&gt;
Aus den minimierten DNF wurde folgende Schaltung gebaut:&lt;br /&gt;
&lt;br /&gt;
.....&lt;br /&gt;
&lt;br /&gt;
Kreuzen Sie alle richtigen Aussagen an:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ] Die Schaltung ist richtig.&lt;br /&gt;
[ ] Die Schaltung ist falsch.&lt;br /&gt;
[ ] Die Schaltung ist richtig, aber alle Ausgänge wurden vertauscht.&lt;br /&gt;
[ ] Die Schaltung ist richtig, aber alle Eingänge wurden vertauscht.&lt;br /&gt;
[ ] Die Schaltung ist richtig, aber aber die Eingäng A und B wurden vertauscht.&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
c)&lt;br /&gt;
&lt;br /&gt;
Geben Sie an welche Bedeutung die in der Schaltung verwendeten Symbole als elementare Schaltglieder haben.&lt;br /&gt;
&lt;br /&gt;
d)&lt;br /&gt;
&lt;br /&gt;
Geben Sie an wie oft die elementaren Schaltglieder in der Schaltung verwendet wurden.&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 7 ==&lt;br /&gt;
Zustansautomat:&lt;br /&gt;
a) [[Bild:http://theoneandonlyfoo.th.funpic.de/rs-aufgabe7.png]]&lt;br /&gt;
&lt;br /&gt;
b)&lt;br /&gt;
&lt;br /&gt;
c)&lt;br /&gt;
&lt;br /&gt;
d)&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 8 ==&lt;br /&gt;
Die Ausgabe der Sparc (inklusive Flags) für folgende Aufgaben&lt;br /&gt;
&lt;br /&gt;
// UNVOLLSTÄNDIG&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
0xFFFFFF9C + 0x6C&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
0x0 - 0x80000000&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 9 ==&lt;br /&gt;
Assembler 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 10 ( Extraaufgabe ) ==&lt;br /&gt;
Assembler 2&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 11 ==&lt;br /&gt;
Cache LRU und Beladys&lt;br /&gt;
&lt;br /&gt;
Anzahl Seitenalarme&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 12 ==&lt;br /&gt;
Haupspeichergröße = 2^18&lt;br /&gt;
&lt;br /&gt;
Cacheblöcke = 32&lt;br /&gt;
&lt;br /&gt;
Cacheblockgröße = 16&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In welchem Cacheblock werden die Werte folgender Adressen abgelegt:&lt;br /&gt;
&lt;br /&gt;
a) 10101001001010&lt;br /&gt;
&lt;br /&gt;
b) 10101001011101&lt;br /&gt;
&lt;br /&gt;
c) 01010011101001&lt;br /&gt;
&lt;br /&gt;
d) 01111010111010&lt;br /&gt;
&lt;br /&gt;
Geben Sie an wie viele Bit der Adresse auf was verfallen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Tag:          Bit&lt;br /&gt;
Index:        Bit&lt;br /&gt;
Offset:       Bit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Gedaechtnisprotokoll]]&lt;/div&gt;</summary>
		<author><name>79.221.220.78</name></author>
	</entry>
</feed>