Allgemeine Hinweise

 

Technische Grundlagen

 

Software

 

Alle Programme wurden in Watcom C++ 10.6 geschrieben. Da ich keine compiler-spezifischen Befehle verwendet habe, müßte auch ANSI-C++-Konformität herrschen.

 

Als Zielplattform habe ich 32-Bit Windows gewählt. Die Grundlage dafür bildete die Entscheidung für diese intuitive und optisch ansprechende Oberfläche. Ebenso brauchte ich mir keine Gedanken mehr über längst überflüssige 64KByte-Grenzen machen. Viele Standardelemente, wie z.B. Eingabefelder, erleichtern die Arbeit.

 

Obwohl ich die Programme nur unter Windows 95 getestet habe, sollten sie auch unter Windows NT oder Win32s lauffähig sein. Als Klassenbibliothek habe ich die Microsoft Foundation Classes 3.2 verwendet. Als einziges visuelles Werkzeug kam der Resourcen Editor zum Einsatz, der MFC-orientierte Visual Programmer versagte hoffnungslos aufgrund zu kryptischen und aufgeblähten Code.

 

Zu jedem Programm gehören trotzdem immer mindestens folgende 5 Dateien: Zahl.CPP, Zahl.H, Zahl.RES, Zahl.DLG und RESOURCE.H (für Zahl ist Eins, Zwei, Drei, Vier bzw. Fuenf einzusetzen).

Die Texte wurden mit Word aus Office 97 geschrieben. Da dieses Dateiformat aber nicht sehr weit verbreitet ist, habe ich zusätzlich eine Konvertierung in HTML beigelegt. Aus mir unerfindlichen Gründen werden jedoch alle Leerzeilen verdoppelt. Ansonsten traten beim Microsoft Explorer 3 keine Probleme auf, mit dem Netscape Navigator konnte ich das leider nicht ausprobieren.

 

Hardware

 

Die Programme wurden auf meinem Privatcomputer erstellt, da ich in der Schule weder genug Leistung (nur 286er) noch genug Zeit zur Verfügung hatte. Auch fehlte die entsprechende Software (Windows 95 und ein C-Compiler).

 

Mein Rechner ist mit einer AMD K6-CPU mit 200 Mhz ausgestattet, der 32 Megabyte RAM zur Seite stehen. Ich konnte damit keinerlei Rechenzeit- oder Speicherprobleme feststellen. Der Code ist als 386-kompatibel generiert worden. Allerdings sollten auch 4 Megabyte RAM und eine 386er CPU im Notfall ausreichen.

 

Ich lege Ihnen zwei Disketten bei, die die Quellcodes und Texte enthält. Die Verzeichnisse sind von 1 bis 5 numeriert, die jeweiligen Dateien dagegen als ausgeschriebene Zahlwörter (eins bis fuenf). Im Verzeichnis Hinweis ist dieser Text zu finden. Da ich Speicherplatz sparen mußte, sind die lauffähigen Versionen auf der zweiten Diskette mit PKZip komprimiert worden.

 

Programmiertechnik

 

Ich habe mich bemüht, die sogenannte ungarische Namenskonvention einzuhalten, um Konformität mit den MFC-Befehlen herzustellen. Da sie aber auf der englischen Sprache basiert, kommt es unweigerlich zu Konflikten, bei denen ich mich entschieden habe, die Kernmethoden möglichst deutsch zu halten. Trotzdem sind viele Mischwörter enthalten. Obwohl ich bei der Programmierung in C Grundkenntnisse in Englisch als Voraussetzung ansehe, unterstützen viele Kommentare (oft ein Kommentar pro Zeile) das Verständnis.

 

Leider mußte ich alle Umlaute in den Variablennamen umwandeln, z.B. ä in ae usw. Dieses Problem besteht aber bisher bei fast allen Sprachen und ist deshalb nicht ungewöhnlich.

 

Bedienung

 

Die Oberflächen der einzelnen Programme wurden unter dem Gesichtspunkt möglichst einfacher und intuitiver Bedienung entworfen. Allgemein kann man die Dialoge von oben links nach unten rechts abarbeiten, so wie man es auch vom Lesen eines Buches gewohnt ist.

 

Es wurde die Enter-Taste mit der jeweils am häufigsten auftretenden Operation belegt, z.B. Hinzufügen zu einer Liste. Nach Möglichkeit habe ich versucht, Eingabefehler abzufangen und diese dem Anwender akustisch bzw. optisch mitzuteilen.

 

Allzu extreme Werte habe ich nicht immer berücksichtigt. Fast jede ordinale Variable ist als 32-Bit-Integer deklariert. Somit sollte der Zahlenbereich ausreichend sein; Grenzüberschreitungen, etwa mehr als 231, sehe ich bei den gestellten Aufgaben als nicht praxisnah und unrealistisch an.

 

Mehrere Buttons passen sich in ihrem Namen oder Markierungszustand an, um Multifunktionalität zu bieten. Auch verweigern sie dem Benutzer unmögliche Eingaben. Ich denke da besonders an die Schablone aus der Aufgabe 1.

 

In jedem Dialog habe ich ein Hinweis auf die Urheberschaft eingebaut. In der Dokumentation erwähne ich ihn nicht extra.

 

Dokumentation

 

Alle Texte zu den Aufgaben sind nach folgendem Grundschema aufgebaut:

  1. Vorüberlegungen
  2. Bedienung
  3. Programmdokumentation
  4. Testläufe
  5. Weiterführende Erläuterungen
  6. Quellcode

 

Um dem besseren Verständnis zu dienen, sind mehrere Bildschirmfotos eingefügt worden, besonders bei der Erklärung der Bedienung. Bei den Beispielen ist meist nur ein Beispielfoto gemacht worden, die restlichen Lösungen wurde aus Platzgründen in kürzerer Form abgetippt, lassen sich jedoch jederzeit problemlos nachprüfen.

 

Wichtige Begriffe aus dem Quellcode oder Bezeichnungen aus dem Bildschirmdialog sind kursiv gedruckt. Zusätzlich wurde die Enter-Taste auch mit diesem Schriftstil versehen.

 

Die Programmdokumentation (unter (4)) ist deutlich ausführlcher als die Kurzform der Kommentare im Quellcode. Letzterer umfaßt aber alle Methoden und Variablen, während ich mich im Text auf den Kern beschränke, der sich auf die Aufgabenlösung bezieht.

 

Ich sehe diese Aufteilung als sinnvoll an, da der Text nur das Verständnis des Algorithmus unterstützen soll. Dies ist für eine allgemeine Umsetzung auf alle Plattformen oder Programmiersprachen ausreichend. Irgendwelche Details, wie die Oberflächenintegration in Windows 95 sind dabei störend. Der Quellcode dagegen soll die spezielle Umsetzung erklären.

 

Den Quellcode habe ich in Courier New 8pt ausgedruckt, um durch diese nicht-proportionale Schriftart Tabulatoren und Einzüge besser sichtbar zu machen. Erklärungen sind stets auf Grad 49. Zum Quellcode zähle ich die CPP-, H- und DLG-Dateien.

 

In letzter Minute

 

Es kann sein, daß sich in letzter Minute noch einige Änderungen bzw. Verbesserungen am Quelltext ergeben haben. In diesem Fall ist das Gedruckte das jeweils neueste und verbindliche. Dies trifft auch auf die eingebundenen Bildschirmfotos zu.

 

 

 

Quellenverzeichnis

 

Alle benutzten Quellen beziehen sich auf die programmtechnische Realisation in C++ unter Windows und dienten in keinster Weise der Entwicklung der jeweiligen Algorithmen.

Folgende Bücher leisteten dabei große Hilfe:

"Einführung in Visual C++ 4.x" von Frank Heimann, Guido Krüger und Nino Turianskyj aus dem Addison-Wesley Verlag 1996

"Das C-Grundlagenbuch" von Gerhard Willms aus dem Data Becker Verlag 1995

Außerdem machte ich intensiven Gebrauch von der MFC-Onlinehilfe.

 

Vorschläge

 

Ich bitte Sie, die Informatiklehrer, eventuell auch Mathematiklehrer, mehr auf den Sinn und Nutzen außerschulischer Aktivitäten, wie diesen Bundeswettbewerb, hinzuweisen, um eine stärkere Förderung Begabter im Unterricht zu erreichen, was dem Klassenniveau und der Moral zuträglich ist.

 

Außendem empfehle ich, bei den Adressenkärtchen in der 2.Runde auch nach einer eventuellen E-Mail-Adresse zu fragen.

 

Persönliches

 

Meine bisherigen Programme, wie auch die des letztjährige Bundeswettbewerb Informatik bis einschließlich 2.Runde, wurden in Pascal unter DOS verfaßt. Da ich aber plane, auch private Projekte unter Windows 95 zu schreiben, stieg ich gezwungenmaßen auf C++ um.

 

Weil dies meine erste größere Arbeit unter diesen neuen Rahmenbedingungen ist, brauchte ich wesentlich länger als gedacht zur Lösung der Aufgaben. Zwar waren die Kernmethoden schnell fertig, aber die Oberflächenintegration benötigte sehr viel Zeit. Neben dem Umdenken in Hinsicht der Benutzerinteraktion waren auch viele programmiertechnische Hürden zu nehmen. Leider konnte ich nur auf meine bewährte autodidaktische Lernmethode zurückgreifen, da ich weder privat, noch in der Schule Ansprechpartner mit dem nötigen Wissen und der erforderlichen Erfahrung fand.

 

 

 

Viel Spaß beim Kontrollieren wünscht Ihnen

 

 

 

 

Stephan Brumme Luckenwalde, der 6. November 1997