Freitag, 5. Oktober 2012

Lösungen Test 1 Fachqualifikation

Liebe FIAE, anbei die Lösungen des ersten Tests:

Aufgabe 1:
Richtig sind die Aussagen a, c, d;
(2012-10-08) Ich muss mich korrigieren:
Richtig sind die Aussagen a, d;


Aufgabe 2:
Alle vom mir gefundenen Fehler im UML-Diagramm
Person:
1. Den Namen der Person als statisches Attribut zu benutzen macht keinen Sinn.
2. gebDatum sollte nicht öffentlich sein.
3. Die Methode GetGroesse() sollte öffentlich sein.
4. GetGebDatum() sollte einen Rückgabetyp DateTime haben aber kein Argument.
5. SetName() benötigt ein Argument aber keinen Rückgabetyp

Abgeordneter:
6. Abgeordneter ist kein Interface, die Vererbungslinie sollte durchgezogen sein.
(2012-10-8) Korrektur Abgeordneter erbt nicht vom Interface Person,
die Vererbungslinie sollte durchgezogen sein.

Wahlbezirk:
7. Ein Wahlbezirk ist kein Abgeordneter. Die Vererbungsbeziehung ist falsch.
8. Das Attribut name sollte nicht public sein.
9. SetName() sollte ein Argument vom Typ String haben, keinen Rückgabetyp.
10. Die Methode GetErgebnis() sollte public sein.

Aufgabe 3:
Der Fehler in der Klassendefinition entsteht durch die abstrakte Methode Tagespreis(). Eine Klasse mit einer abstrakten Methode muss mit dem Schlüsselwort abstact gekennzeichnet sein.

Aufgabe 4:
a)
Der Accessor stellt eine Schnittstelle für den Zugriff auf das Attribut dar. Damit kann die Funktion der Klasse verändert werden, ohne dass andere Klassen verändert werden müssen, die über den Accessor auf das Attribut zugreifen.
Seiteneffekte können sich ebenso schädlich auswirken wie bei einem direkten Zugriff auf das Attribut.
b)
Die Schnittstelle für den Zugriff auf das Attribut ist vorhanden.
Da der Wert des Attributs zwar ausgelesen werden kann, aber nicht verändert werden kann, gibt es einen umfassenden Schutz gegen Seiteneffekte.

c)
Ja.

Aufgabe 5:
Die Datei lege ich in der DropBox unter Test1, TestPerson ab.






Montag, 24. September 2012

Lösungsvorschlag für die Schneckenaufgabe

Liebe FIAE,

zur Lösung der Schneckenaufgabe stelle ich einmal ein Struktogramm ein:

 
Die innere Abfrage dStrecke >= dHoehe führt im "JA"-Fall zu einem Break.
Sonst wird die kopfgesteuerte Schleife fortgesetzt.
Aber wie lagen dauert es, bis die Schnecke die Mauerkrone erreicht hat?
 
Herzliche Grüße
Rolf Krüger


Nicht nur für die "Kranken"

Liebe FIAE,
wir haben heute begonnen, die erste Klausur vorzubereiten. Dazu gehört ein wenig Wiederholung, die wir in dieser Woche abschließen wollen. Die Klausur könnte dann am Freitag, den  28.09.2012 stattfinden.

Themen dazu waren:
  1. Im DopBox-Odner "TESTVORBEREITUNG" die Datei "Übungstest_100210.pdf
    Dabei wurden alle Aufgaben bis auf 3, 6, 8 und 9 behandelt.
    (Der Stoff für diese Aufgaben wurde noch nicht vermittelt)
  2. Die "Übungsaufgabe_Vererbung.pdf
    wurde zur Wiederholung der Themen "Vererbungsstrukturen"
    und Polymorphie benutzt. Dabei wurde in der Basiskklasse sowohl
    eine abstrakte Methode als auch eine virtuelle Methode "Ausgabe()"
    eingefügt, um den korrekten polymorphen Aufruf der Methoden zu testen.
  3. Die Klassenhierarchie der Übungsaufgabe wurde dann benutzt, um die
    Methode "Equals()" der Klasse Object zu überschreiben. Equals() der Klasse Object liefert einen Vergleich der Referenzen von Objekten. Wir haben diese Methode so überschrieben, dass die beiden Felder "persNr" und "name" für den Vergleich der Objekte herangezogen wird.
    (Siehe Beispielprojekt "Lohnabrechnung" im Odner "TESTVORBEREITUNG".

    Morgen werden wir die Methode "GetHashCode" der Basisklasse Object überschreiben.
    Siehe dazu auch den Artikel: "Überschreiben_Equals_GetHashCode"
Wir werden den Verlauf der Fachqualifikation weiter beschreiben und wünschen allen Erkrankten GUTE BESSERUNG.

Herzliche Grüße Rolf Krüger.

PS: Es schreibt Niemand (null) Kommentare und es bearbeitet Niemand (null) die
Aufgaben!

Freitag, 21. September 2012

Für die "Kranken"

Liebe FIAE,

Heute, Freitag der 21.09.2012 haben wir im Unterricht etwas gebremst. Wir wollten nicht zu weit vorwärts mit dem Stoff.
Was haben wir bereits durchgenommen:
  • Vererbungshierarchien
  • Abstrakte Basisklassen
  • Abstrakte Methoden
  • Interfaces
Dabei haben wir auch eine erste WPF-Anwendung geschrieben.
Bitte schauen Sie in den DropBox-Ordner nach den Übungsaufgaben
und den Mittwoch_2-Aufgaben.

In der kommenden Woche möchte ich noch einmal den Stoff wiederholen.
Dann werden wir den ersten Test vorbereiten müssen.

Mit freundlichem Gruß
Rolf Krüger

Mittwoch, 12. September 2012

Liebe FIAE,

eine weitere Aufgabe zur Übung:
Diese Aufgabe ist kein Pflichtprogramm, sondern eine Art von sportlichem Wettbewerb.
Die starke (oder binäre) Goldbachsche Vermutung lautet wie folgt:
Jede gerade Zahl größer als 2 kann als Summe zweier Primzahlen geschrieben werden.
Mit dieser Vermutung befassten sich bis in die heutige Zeit viele Zahlentheoretiker, ohne sie beweisen oder widerlegen zu können.
Für den Beweis gab es einmal ein Preisgeld von einer Millione Dollar, das aber nicht ausgezahlt wurde, weil bis April 2002 niemand diese Vermutung beweisen konnte.

Es dürfte nicht so einfach sein, einen Beweis mit Hilfe unserer "Rechenknechte" zu finden. Allerdings würde eine einzige gerade Zahl die Vermutung zu Fall bringen, wenn diese Zahl nicht als Summe zweier Primzahlen geschrieben werden könnte.

Ein Hinweis auf die Richtigkeit der Vermutung könnte aber darin liegen, dass bei größeren ganzen Zahlen die Anzahl der möglichen Primsummen steigt.

  1. Versuchen Sie z.B. mit dem Sieb des Eratosthenes Primzahlen im Bereich von 1 bis <100000 zu ermitteln.
  2. Prüfen Sie, ob es möglich ist, alle geraden Zahlen in diesem Bereich als Summe zweier Primzahlen zu schreiben.
  3. Zählen Sie, wie viele Möglichkeiten es gibt, jede gerade Zahl in diesem Bereich durch die Summe der Primzahlen darzustellen.
Mit herzlichen Grüßen
Rolf Krüger

Eine Schneckenaufgabe

Liebe FIAE,
eine kleine Programmieraufgabe:

Eine Schnecke klettert eine Mauer von 4,5 m Höhe hoch. Tagsüber schafft sie eine Strecke von 0,5 m höher zu klettern.
Leider rutscht sie jede Nacht um 10% der erreichten Höhe wieder herunter. (Eine merkwürdige Schnecke ist das.)
Wie viele Tage dauert es, bis die Schnecke gerade die Mauerhöhe erreicht hat?

Viel Spaß damit.
Rolf Krüger

Montag, 30. Juli 2012

Liebe FIAE,

Womit beginnen?
Wenn es nach meinen Vorstellungen geht, möchte ich mit einer Einführung in die objektorientierte Programmierung beginnen. Dabei möchte ich kurz oder länger die OO-Konzepte durchnehmen und üben.
Die OO-Grundlagen lassen sich mit vielen Programmiersprachen (Java, C#, ...) behandeln. Die Sprachen Java und C# haben eine ähnliche Syntax, aber unterschiedliche Klassenbibliotheken. Diese Fachqualifikation möchte ich mit C# bearbeiten (ohne hier auf den Grund dafür einzugehen) .

Auf Linux-Systemen lässt sich C# ebenfalls benutzen (im Rahmen des Mono-Projekts). Ich rate davon aber zunächst ab, weil VisualStudio eine sehr gute Entwicklungsumgebung ist und diese auf Linux nicht zur Verfügung steht.

Für die ersten Schritte brauchen Sie also folgendes:
Ein Microsoft Betriebssystem (Windows 7) und das VisualStudio (min 2010, Express Edition).
Wir brauchen auch die SQL-Server 2008 R2 Express-Edition mit der Management Console. Das Paket kann aber später nachinstalliert werden.

Richten Sie sich also für Montag, den 10.09.2012 im Raum Q2.02 (oder Q2.03 muss noch abgesprochen werden) ein. Ich werde mit einer kurzen Wiederholung beginnen und damit eine Einführung in die Sprache C# und die Entwicklungsumgebung Visual Studio beginnen.

Herzliche Grüße
Rolf Krüger