Kategorisierung der einfachen Übungsbeispiele

Werbung
- 1 -
Martin Kastner
Versuch einer Kategorisierung der „einfachen“ Beispielsammlung
Bekanntlich kann beinahe jedes Beispiel in beliebig vielen Programmiersprachen umgesetzt
werden – wobei sich manche besser oder auch weniger gut dafür eignen. Für diese
Lehrveranstaltung sollten wir uns auf die Programmiersprachen Excel mit VBA, Java Script,
PHP und Java „beschränken“ und uns mit der „einfachen“ Beispielsammlung beschäftigen.
Bei jedem der zwanzig Beispiele könnte man beliebig ausschweifen und unzählige Varianten
gegenüberstellen – was freilich einen großen Einfluss auf die Daten- und Ablaufstruktur und
den Schwierigkeitsgrad hätte.
Aus diesem Grund habe ich mich entschlossen, mich (vorerst) nicht auf die praktische
Umsetzung zu stürzen, sondern für jedes Beispiel eine der vier Programmiersprachen
vorzuschlagen und diese (mögliche) Umsetzung zu kategorisieren.
Ich habe mich jeweils für die Variante entschieden, mit der das Beispiel möglichst einfach
und effizient zu lösen ist – meine Meinung ist allerdings sehr subjektiv, da meine
persönlichen Erfahrungen mit diesen vier Sprachen kaum über „Hello world!“-Programme
hinausgehen.
Ad (01) Benzinverbrauch, Euro-Umrechnung:
Hier bietet sich Excel an – eine Unterstützung durch VBA ist nicht nötig. Ich gehe
davon aus, dass die Daten in Spalten – und nicht einzeln – eingegeben werden.
Bei dieser Umsetzung stehen die Arithmetik und die Datenmanipulation
(Genauigkeit, Runden) im Vordergrund.
Ad (02) BMI:
Dieses Beispiel würde ich mit Java lösen, geschachtelte Alternativen können damit
recht einfach realisiert werden. Für die Ein- und Ausgabe genügt die
Eingabeaufforderung bzw. Shell. Als Datenstruktur kann Integer oder Float
verwendet werden.
Ad (03) Skelettfund:
Die geschachtelten Alternativen können in Java einfach umgesetzt werden.
Interessant ist hier die Mischung zwischen verschiedenen Datenstrukturen, z.B.
könnte das Geschlecht als Zeichen oder numerisch codiert eingelesen werden.
Ad (04) Berechnung des Ostersonntagstermines:
Mit den Excel-Funktionen lässt sich das Beispiel ohne komplizierte Syntax umsetzen.
Die Alternative WENN() ist nicht geschachtelt und damit auch noch in Excel
übersichtlich. Die Aufteilung eines Algorithmus in Einzelschritte kann hier einer
„Megaformel“ gegenübergestellt werden. Für die Berechnung werden die ExcelFunktionen REST() und QUOTIENT() verwendet.
Ad (05) Kleinste von 3 Zahlen:
Für geschachtelte Alternativen scheint mir wieder Java die ideale Sprache zu sein.
Eine Verwendung von Arrays ist für drei Zahlen noch nicht notwendig bzw. hilfreich.
Ganzzahlige Zufallszahlen können hier verwendet werden.
- 2 -
Martin Kastner
Ad (06) Zeichenerkennungsprogramm:
Obwohl geschachtelte Alternativen in Excel nicht gerade übersichtlich sind, würde ich
für dieses Beispiel Excel verwenden – einfacher kann es nirgends gehen. Die ASCIINummer kann durch die Excel-Funktion CODE() ermittelt werden.
Ad (07) Kleines Einmaleins:
In Excel lässt sich die zugrunde liegende Spaltenstruktur schnell und einfach nutzen –
man braucht nur noch relative und absolute Zellbezüge.
Ad (08) Turmrechnung:
Auch hier ist Excel wieder unschlagbar.
Ad (09) Lohnsteuer:
Um das Ergebnis anschaulich darstellen zu können, würde ich Excel verwenden. Die
einzelnen Stufentarife können (und sollten auch) tabellarisch ausgegeben werden –
nicht einfach nur das Endergebnis ausgeben. Damit könnte auch ein Beitrag zum
besseren Verständnis der Angabe geleistet werden.
Ad (10) Zahlenraten:
Das ist ein „klassisches“ Beispiel für ein Programmierbeispiel mit einer Schleife und
Alternativen. Die Ausgabe kann zeilenweise in einer Eingabeaufforderung bzw. Shell
erfolgen. Somit würde ich die Verwendung von Java empfehlen. Zufallszahlen
müssen hier verwendet werden (im Gegensatz zu Beispiel 5).
Ad (11) Rekorde in einem Jahrhundert:
In Excel kann man hundert Werte (pro Jahrhundert) leicht durch Zufallszahlen
erstellen und diese Jahrhunderte durch Statistikfunktionen auswerten. Die
Niederschlagsobergrenze sollte aber zuvor festgesetzt werden.
Ad (12) Irrfahrt in der Ebene:
Für dieses Beispiel scheint mir ein Java Applet sinnvoll – wenngleich ich keine
Ahnung habe, wie man so etwas realisiert. /
Ad (13) Ein Reaktionsspiel:
Ich vermute, dass die zufälligen Stellen, an denen die Zahlen ausgegeben werden
sollen, mittels VBA am einfachsten angesprochen werden können – hier kann man die
Tabellenstruktur von Excel ausnutzen. Die Rückmeldung kann mit einer Alternative
realisiert werden.
Ad (14) Zahlenfolgen:
Wenn das Bildungsgesetz gegeben bzw. ersichtlich ist, kann eine beliebig lange
Zahlenfolge in Excel mittels Zellreferenzen durch kopieren (ziehen) erstellt werden.
Ad (15) Prüfziffer:
Für dieses Beispiel würde ich Java heranziehen und die ISBN-Nummer in einem
Array abspeichern. Die Alternativen und die Berechnung des Rests sind hier einfach
– die größere Herausforderung ist die korrekte Abfolge der einzelnen Schritte und
Speichern eventueller Zwischenergebnisse.
- 3 -
Martin Kastner
Ad (16) Prämiensparen:
Wenn die Formeln zur Berechnung des Kapitals aus der Mathematik bekannt sind,
können diese direkt in Excel übertragen werden.
Ad (17) Das Abkühlungsproblem:
Mittels Java kann die Temperatur in einer Schleife berechnet und ausgegeben werden.
Als Datenstruktur sind hier sowohl ganze als auch Dezimalzahlen denkbar – die
Abbruchbedingung muss darauf abgestimmt sein.
Ad (18) Algorithmus zur Bestimmung des ggT:
Eine Schleife mit einer Abbruchbedingung kann auch bei diesem Beispiel mit Java
gut realisiert werden. Die Ganzzahldivision und der Rest werden dazu benötigt.
Ad (19) Ulam-Folge:
Die Alternative kann in Excel problemlos realisiert werden (wie wir schon gesehen
haben). Auch hier wird die Excel-Funktion REST() benötigt.
Ad (20) Zahlenumwandlung:
Eine Schleife mit einer Abbruchbedingung kann auch bei diesem Beispiel mit Java
gut realisiert werden. Die Ganzzahldivision und der Rest werden dazu benötigt.
Eine Umsetzung mit Java Script wäre dann zweckmäßig, wenn die HTML-Formularstruktur
gewinnbringend eingesetzt werden könnte – und das ist (aus meiner Sicht) in keinem Beispiel
der Fall. Ähnliches ist auch für PHP der Fall, außerdem gibt es keinen Nutzen, den man aus
der Server-Client-Beziehung schöpfen könnte. Im Sinne einer möglichst einfachen Lösung,
habe ich auf diese beiden Sprachen verzichtet.
Herunterladen