3. Programmierübung (Fachinformatiker)

Werbung
3. Programmierübung (Fachinformatiker)
hlsv-zv4-ew-fi0301
Frank Zimmermann
28. Mai 2001
1
1.1
Aufgabe
Astrologie
Aufgabe ist die Erstellung eines Horoskops.
Dazu benötigen wir ein Programm, daß aus einem Kalenderdatum und der Uhrzeit
die Winkel der Planeten/Objekte (in Bezug auf die Erde, die Erde ist im Mittelpunkt) berechnet.
Dieses Programm ist vorgegeben und kann im HlSV–Intranet unter
ftp://www.hannover.lsv.de.intern/pub/progueb/astro.exe
heruntergeladen werden (Win32-Programm). Dieses Programm soll von dem zu
erstellenden Horoskop-Programm als externes Programm eingebunden (gestartet
und ausgeführt) werden.
Ausgabe soll eine sortierte Liste von Aspekten mit Angabe deren Güte sein.
1.2
Hintergrund
Die Astrologie glaubt (im Gegensatz zur Astronomie!), daß das Schicksal der Menschen eng mit astronomischen Himmelskörpern und Konstellationen verbunden ist.
Zur Berechnung dieser Konstellationen wird die Erde in das Zentrum eines Kreises gesetzt und die Himmelskörper (Sonne, Merkur, Venus, Mars, Saturn, Jupiter,
Uranus, Neptun, Pluto, Mond) werden auf konzentrischen Kreisen plaziert.
Dann werden von der Erde ausgehend Linien durch die Himmelskörper gezogen und
die dabei entstehenden Winkel zwischen den Objekten interpretiert.
Dabei sind üblicherweise (je nach astrologischer Schule eher mehr) folgende Winkelkonstellationen (auch (Haupt-)Aspekte genannt) für die Astrologie bedeutsam1 :
1 Daneben gibt es noch diverse Nebenaspekte, die oft in den verschiedenen Astrologieschulen Bedeutung besitzen (Halbsextil/30◦ , Halbquadrat/45◦ , Quintil/72◦ , Anderthalbquadrat/135◦ ,
1
2
hlsv-zv4-ew-fi0301
Winkelbezeichnung
Konjunktion
Quadrat
Opposition
Sextil
Trigon
Winkel
0◦
90◦
180◦
60◦
120◦
Bedeutung
harmonisch / disharmonisch
extremer Spannungsaspekt
herausfordernd
harmonisch und sich gegenseitig ergänzend
harmonisch und sich gegenseitig verstärkend
Da es praktisch unmöglich ist, daß die Himmelskörper genau diese Winkel untereinander besitzen, gesteht der Astrologe sich üblicherweise eine kleine Ungenauigkeit bei der Definition eines Aspektes zu (Orbis genannt). Für jeden an einem
(Haupt-)Aspekt beteiligten Himmelskörper toleriert der Astrologe eine Ungenauigkeit von ca. 2◦ . Damit aber möglichst viel zu Deuteln ist, ziehen die meisten Astrologen nicht nur die Himmelskörper, sondern auch die sogenannten Halbsummen
zwischen den Himelskörpern in ihre Deutung mit ein; das sind gedachte Winkelhalbierende zwischen zwei Himmelskörpern. Für die Halbsummen gilt ein kleinerer
Orbis von ca. 1.5◦ .
Objekt
Sonne
Merkur
Venus
Mond
Mars
Jupiter
Saturn
Uranus
Neptun
Pluto
Halbsumme
Orbis
2◦
2◦
2◦
2◦
2◦
2◦
2◦
2◦
2◦
2◦
1.5◦
Ein kleines Beispiel:
Folgende Ausgaben liefere das Astronomieprogramm astro.exe:
Venus bei 33.00◦ ,
Mars bei 127.00◦ und
Jupiter bei 262.50◦ .
Dann finden wir mindestens folgende Aspekte (nach Güte sortiert):
Nr
1.
2.
1.3
Objekte
HS(Venus/Mars)—Jupiter
Venus—Mars
Aspekt
Opposition
Quadrat
Winkel
182.50◦
94.00◦
Orbis
3.5◦
4◦
Güte
29%
0%
Die Aufgabe
Das Hauptprogramm soll ein Datum in der Form “JJJJ MM TT hh.mm“ entgegennehmen und das Astronomieprogramm astro.exe mit diesem Datum (in Anführungszeichen) als Parameter starten und die notwendigen Ausgaben in irgendeiner Form
zwischenspeichern (z.B. temporäre Datei).
Biquintil/144◦ , Quinkunx/150◦ , etc.), hier aber nicht weiter beachtet werden. Auch werden in der
Aufgabe nicht die Positionen der Objekte in Bezug auf die Tierkreiszeichen (Häuser) betrachtet
(auch wieder abhängig von der jeweiligen Astrologierichtung).
3
hlsv-zv4-ew-fi0301
Aus den erhaltenen Daten soll dann eine Tabelle mit allen erkannten Aspekten
erzeugt und ähnlich wie oben mit folgenden Feldern ausgegeben werden:
Nr lfd. Nummer des Aspekts
Objekt Name des Objekts (Mond, Sonne, Mars, HS(Venus/Mars), etc.)
Aspekt Name des Aspektes (Konjunktion, Quadrant, etc.)
Winkel tatsächlicher Winkel zwischen den Objekten
Orbis Summe der beteiligten Orben (Orbis1+Orbis2)
Güte (Orbis - tatsächliche Abweichung vom idealen Aspekt)/Orbis * 100 %
Ziel ist es, möglichst alle vorhandenen Aspekte (unter Berücksichtigung des jeweiligen Orbis) zu einem vorgegebenen Datum (1800-2100) automatisch zu erkennen.
Die Tabelle soll nach absteigender Güte sortiert werden.
Aspekte, die aus zwei Halbsummen gebildet werden, sollen nicht berücksichtigt werden.
2
Durchführung
Die Programmierung kann mit den folgenden Programmiersprachen durchgeführt
werden: C, C++, Perl, Java.
Das Programm/Skript muss unter NT4.0 lauffähig sein.
3
Tipps
• Die Halbsumme von zwei Himmelskörpern H1 und H2 errechnet sich einfach
durch
HS(H1 , H2 ) = (H1 + H2 )/2.
• Halbsummen von Halbsummen sind nicht möglich. Halbsummen können nur
mit Himmelskörpern (Sonne, Mond, Planeten) gebildet werden.
• Die Güte eines Aspektes liegt immer zwischen 0% und 100%: Wenn die
tatsächliche Abweichung des Winkels vom idealen Aspekt bedeutet (bei einem Quadranten von 91.45 ist das 1.45) und Oges den gesamten Orbis (Orbis1+Orbis2) darstellt, so ist die Güte gegeben durch
Güte =
|Oges − |
∗ 100%
Oges
• Mit Sonne und Mond gibt es insgesamt 10 Himmelskörper. Zwischen je zwei
Himmelskörpern gibt es jeweils eine Halbsumme (45 mögliche Halbsummen).
Es sind also insgesamt Aspekte unter 55 Objekten zu suchen. Da jeweils 2
Objekte ein Aspekt festlegen, können maximal 1540 Aspekte vorhanden sein.
hlsv-zv4-ew-fi0301
4
• Da sich alles auf einem 360◦ –Kreis abspielt könnte eine Modulo-Funktion nützlich sein.
• Das Programm astro.exe zeigt keine Werte für Pluto an, wenn das Datum
vor 1890 und nach 2100 liegt2 .
4
Bewertung
Folgende Teilaufgaben sind zu lösen und werden bewertet:
• Dokumentation
• Starten eines externen Programms
• Bearbeiten einer temporär erzeugten Datei
• Algorithmus/Lösungsweg zum Erkennen der vorhandenen Aspekte
• Codierungsstil
• Erweiterbarkeit (andere Aspekte, anderer Orbis, Interpretationen, etc.)
• Performanz
5
Abgabe
Die lauffähigen Programme und der Quelltext sind mit einer maximal 5-seitigen Dokumentation abzugeben (Email, Dokumentation in HTML oder Winword-Format).
Abgabetermin ist der 10.08.2001.
Die vollständigen Ergebnisse können bei Herrn Zimmermann, Herrn Hesse oder
Frau Spang abgegeben werden.
6
Zeitrahmen
Der Zeitrahmen dieser Aufgabe ist mit etwa 30 Stunden angesetzt.
2 Pluto läßt sich nur mit beträchtlichem Aufwand genau berechnen. Pluto wurde erst 1930
entdeckt und ist möglicherweise ein früherer Mond von Neptun.
Herunterladen