2008
Wie erwartet ist das Auto erst Mitte Januar fertig.
Im ersten Halbjahr betreuen wir mehrere Pflegekinder aber immer nur kurzzeitig (zwei bis drei Wochen)
Neue Heizung im ersten Jahr „klasse“. Einsparung
rund 1/3.
Gitarrenunterricht (Figura) und VHS nur noch bis Dezember.
Umzug Gitte zur Jülicher Str.
Jan entwickelt sich sehr gut. Er ist viel
pflegeleichter als Tyler.
BK läuft weiter
(im November startet unser Präsentationsprojekt).
24. Juni 2008. Jahreszeugnis für das 3. und 4. Semester
Hier einmal beispielhaft ein Arbeitsblatt von vielen.
Projekt: Bewerbertest Zahlenraten
Arbeiten mit Verzweigungen und Schleifen, Verwenden von Bildlaufleisten
I. Problemanalyse und Produktdefinition
Ihr
Arbeitgeber ist von Ihrer Anwendung begeistert und möchte nun eine Anwendung,
die er im Rahmen des Einstellungstests bei der Auswahl von gewerblichen
Auszubildenden einsetzen möchte. Das Programm soll sich eine ganze Zahl
zwischen 0 und 100 "ausdenken". Anschließend soll der
Ausbildungsplatzbewerber diese Zahl mit möglichst wenig Schritten erraten. Als
Hilfe soll das Programm nur sagen, ob die "ausprobierte" Zahl zu
klein, zu groß oder richtig war. Das Programm soll von jedem Auszubildenden
drei mal durchlaufen werden. Zu jedem Durchlauf soll es einen Ausdruck geben.
Immer, wenn das Programm beendet wird, soll das Programm in ein
Excelarbeitsblatt die Zufallszahl, den letzten Tipp und die Anzahl der Versuche
festhalten und dazu auffordern, das Ergebnis zu drucken. Außerdem soll
das Programm dem Bewerber eine Rückmeldung über die Anzahl der Versuche geben.
Ein systematisch und zielgerichtet denkender Bewerber sollte im Durchschnitt
der drei Programmdurchläufe weniger als 8 Versuche benötigen.
II. Lösungsentwurf und Programmentwurf
Die Steuerelemente auf dem Formular
Benutzen Sie drei
Steuerschaltflächen, zwei Bezeichnungsfelder und eine horizontale
Bildlaufleiste.
Durch einen Klick auf
den Button NeueZahl soll das Programm eine Zufallszahl bilden, die dem Bewerber
natürlich nicht angezeigt wird. Das Click-Ereignis auf NeueZahl soll außerdem
die Bildlaufleiste und den "Prüfen-Button" erscheinen lassen. Geraten
wird durch Schieben des Reglers auf der Bildlaufleiste, wonach anschließend der
Prüfen-Button angeklickt werden muss, welcher die Bildlaufleiste und den
"Prüfen-Button" wieder "verschwinden" lässt. Das Programm
soll dann im Bezeichnungsfeld lblMitteilung einen Hinweis geben. Es wird
also für jede Steuerschaltfläche eine click-Ereignisprozedur benötigt, ebenso
eine Prozedur für die Anzeige der mittels Bildlaufleiste eingegebenen Zahl.
Ferner werden zwei Variablen
vom Typ integer benötigt. Eine Variable Zahl speichert die vom
Computer erzeugte Zufallszahl, die andere (Tipp) speichert die vom
Bewerber eingegebene Zahl. Eine Variable vom Type Byte soll später die
Anzahl der Versuche festhalten.
III. Programmcodierung
Durch einen Klick auf
den Button NeueZahl wählt der Computer eine Zufallszahl. Dieses Click-Ereignis
aktiviert die Bildlaufleiste und macht den Prüfen-Button sichtbar. Geraten wird
mit Klick auf die Bildlaufleiste, wodurch der Prüf-Button aktiviert wird und
anschließend angeklickt werden kann, um den Tipp"abzugeben". Der
Computer sagt dann im Bezeichnungsfeld lblMitteilung etwas zum Tip. Wir
brauchen also für jede Steuerschaltfläche eine Click-Ereignisprozedur und wir
benötigen eine Prozedur für die Anzeige der mittels Bildlaufleiste eingegebenen
Zahl.
Steuerelement
|
EigenschaftName
|
EigenschaftWert
|
UserForm1
|
Name
|
frmZahlenraten
|
|
Caption
|
Bewerbertest
Zahlenraten
|
BorderStyle
|
1-Fixed
Single
|
|
Label1
|
Name
|
lblMitteilung
|
|
Caption
|
[Blank]
|
Font
|
Arial
|
|
FontSize
|
16
|
|
TextAlignment
|
2-Center
|
|
BackColor
|
weiß
|
|
ForeColor
|
blau
|
|
BorderStyle
|
1-Fixed
Single
|
|
Label2
|
Name
|
lblRaten
|
|
Caption
|
0
|
Font
|
Arial
|
|
FontSize
|
16
|
|
TextAlignment
|
2-Center
|
|
BackColor
|
White
|
|
ForeColor
|
Red
|
|
BorderStyle
|
1-Fixed
Single
|
|
HScroll1
|
Name
|
hsbRaten
|
|
Value
|
0
|
Min
|
0
|
|
Max
|
100
|
|
SmallChange
|
1
|
|
LargeChange
|
10
|
|
Enabled
|
False
|
|
Command1
|
Name
|
cmdPrüfen
|
|
Caption
|
Prüfen
|
Enabled
|
False
|
|
Visible
|
False
|
|
Command2
|
Name
|
cmdNeueZahl
|
|
Caption
|
Neue
Zahl
|
Command3
|
Name
|
cmdEnde
|
|
Caption
|
Ende
|
Ferner benötigen wir
zwei Variablen vom Typ integer. Eine Variable Zahl speichert die
vom Computer erzeugte Zufallszahl, die andere (Tipp) speichert die
eingegebene Zahl.
Beginnen Sie in einer
neuen Exceldatei mit <Alt> + <F11> ein neues Projekt.
Erstellen Sie zunächst
die Userform wie oben abgebildet und beachten Sie dabei die folgenden
Informationen:
Festlegung der Eigenschaften
Starten Sie nun mit der
Variablendeklaration im Code-Fenster (Ansicht Code) und wählen Sie im
Code-Fenster zunächst links Allgemein und rechts Deklarationen um
die folgenden Variablen für die gesamte Anwendung zu definieren:
Option Explicit
Dim Zahl As Integer
Dim Tipp As Integer
Dim Zahl As Integer
Dim Tipp As Integer
Dim Versuche As Byte
Private Sub
UserForm_Initialize()
'Variablen beim Öffnen
des Formulars auf 0 setzen.
Zahl = 0
Tipp = 0
Versuche = 0
End Sub
Lesen Sie nun zunächst
aufmerksam die nachfolgenden Informationen. Diese werden Ihnen bei der
Codierung der Click-Ereignisse hilfreich sein.
Theorie zur Lektion
Bildlaufleisten (scroll bar)
Es gibt zwei Sorten:
horizontale und vertikale. Je nach dem, wie Sie die Bildlaufleiste auf die
UserForm ziehen, erhalten Sie entweder die eine oder die andere Art (probieren
Sie es mal aus!). Bildlaufleisten können Sie verwenden, um Zahlen einzugeben,
Lautstärken zu regeln oder um aus einer Optionsliste zu wählen.
horizontale
Bildlaufleiste (von links nach rechts aufziehen)
|
vertikale Bildlaufleiste (von oben nach unten
aufziehen)
|
||
Werkzeug
|
Aussehen
im Formular :
|
Werkzeug
|
Aussehen
im Formular :
|
|
|
|
|
Beide Typen bestehen aus
drei Bereichen, die angeklickt oder gezogen werden können, um den Wert
(Eigenschaft Value) zu ändern.
Klickt man auf Endpfeile
bewegt sich die scroll box ein kleines Stück, Anklicken der bar area
bewegt die scroll box ein großes Stück, ziehen der scroll box ermöglicht eine
fließende Bewegung. Mit den Eigenschaften einer Bildlaufleiste kann man ihre
Arbeitsweise vollständig festlegen. Die folgenden Eigenschaften sollten Sie
beim Einbinden einer Bildlaufleiste unbedingt definieren:
Eigenschaften
Eigenschaft
|
Beschreibung
|
Name
|
identifiziert die Bildlaufleiste. Präfix: hsb
bzw. vsb.
|
Value
|
Die aktuelle Position (ein Integer-Wert) der
scroll box.
|
Max
|
Der größte Wert. (zwischen -32768 und 32767).
|
Min
|
Der kleinste Wert.
|
SmallChange
|
Schrittweite, um die sich der Wert ändert, wenn
man auf die Endpfeile klickt.
|
LargeChange
|
Schrittweite, um die sich der Wert ändert, wenn
man auf die bar area klickt
|
Left, Top,
Width, Height, Enabled, Visible |
wie bei den anderen Steuerelementen
|
Ereignisse: Wir benutzen zwei Ereignisse bei Bildlaufleisten:
Ereignis
|
Beschreibung
|
Change
|
Ereignis wird immer dann ausgeführt, wenn der
Wert (Eigenschaft Value) sich geändert hat.
|
Scroll
|
Ereignis wird ständig ausgeführt, wenn die scroll
box bewegt wird.
|
Das Change-Ereignis
wird immer dann ausgeführt, wenn sich der Wert ändert. Im unserem Projekt
schreiben wir den Code für die Anzeige des Wertes im das begleitende
Steuerelement lblRaten. Die Anweisungen gelten entsprechend auch für das Scroll-Ereignis,
deshalb können Sie den gleichen Code in die Ereignisprozedur für scroll
hineinkopieren. Sie werden es schon "schaffen", lesen Sie einfach
weiter.
Nun müssen Sie noch
etwas über die Programmierung von Entscheidungen und den Einsatz der
Zufallsfunktion erfahren:
Logische Ausdrücke
Computer-Logik ist
ziemlich simpel: Der Computer kann nur zwischen wahr (true) und falsch (false)
unterscheiden. Ein logischer Ausdruck besitzt diese Wahrheitswerte, d.h. die
Auswertung ergibt einen Wert vom Datentyp boolean (wahr oder falsch).
Falls Sie mehr darüber erfahren möchten, lesen Sie weiter in der Visual Basic
Hilfe.
Logische Ausdrücke
werden mit Hilfe von Operatoren gebildet
Vergleichsoperatoren: < , = ,
> , <= , >= , <>
Logikoperatoren; And , Or, Not
Werden zwei logische
Ausdrücke durch Or oder And verknüpft, so
sollte man die Ausdrücke unbedingt in Klammern setzen.
Entscheidungen - Die If-Anweisung (Wenn-Funktion)
If
Ausdruck (wie Prüfungsteil in Excel) Then
[BASIC-Anweisungen, falls Ausdruck wahr]
Else
[BASIC-Anweisungen, falls Ausdruck falsch]
End If
[BASIC-Anweisungen, falls Ausdruck wahr]
Else
[BASIC-Anweisungen, falls Ausdruck falsch]
End If
Entscheidungen - Die ElseIf-Anweisung bei mehr als zwei Fallunterscheidungen (Wenn-Wenn-Funktion)
If
Ausdruck (wie Prüfungsteil in Excel) Then
[BASIC-Anweisungen, falls Ausdruck wahr]
ElseIf Ausdruck (wie Prüfungsteil in Excel) Then
[BASIC-Anweisungen, falls Ausdruck falsch]
[BASIC-Anweisungen, falls Ausdruck wahr]
ElseIf Ausdruck (wie Prüfungsteil in Excel) Then
[BASIC-Anweisungen, falls Ausdruck falsch]
Else
[BASIC-Anweisungen, falls Ausdruck falsch]
End If
[BASIC-Anweisungen, falls Ausdruck falsch]
End If
Zufallszahlen
(Rnd-Funktion)
Die
Visual-BASIC-Funktion Rnd erzeugt eine Zufallszahl zwischen 0 und 1.
Zufallszahl
= Rnd
Mit dem Befehl Randomize
wird der Zufallsgenerator initialisiert. Dieser Befehl sollte unbedingt in der Form_Load
Prozedur stehen, also
Private Sub
Form_Load()
Randomize
End Sub
Randomize
End Sub
Um ganzzahlige
Zufallszahlen zwischen einem Mindestwert bis zu einem Maximalwert
zu erhalten, gilt:
Zufallszahl
= Int(Rnd * (Maximalwert - Mindestwert + 1)) + klein
Dabei wird die
BASIC-Funktion Int benutzt, die eine Dezimalzahl in eine ganze Zahl
umwandelt. Für die Simulation eines Würfels müsste man also z. B. schreiben:
Augenzahl = Int(Rnd * 6) + 1
Für ganze Zahlen von 0
bis 100 müssten Sie also auf folgende Funktion kommen:
Zahl = Int(Rnd * 101)
Nun zur Programmierung
Wenn die
Steuerschaltfläche cmdNeueZahl angeklickt wird, muss der Computer
folgende Schritte ausführen:
·
Zuerst die Übergabe der Inhalte aller Variablen an
ein Excelarbeitsblatt, z. B. mittels der Anweisungen
Range("B2").Value =
"Versuche"
Range("B3").Value = "Zufallszahl"
Range("B4").Value = "Tipp"
Range("D2").Value = Versuche
Range("D3").Value = Zahl
Range("D4").Value = Tipp
Range("B3").Value = "Zufallszahl"
Range("B4").Value = "Tipp"
Range("D2").Value = Versuche
Range("D3").Value = Zahl
Range("D4").Value = Tipp
·
Diese Variablen sollten natürlich in der
Ausgangssituation den Wert 0 haben. Schon nach der ersten Spielrunde enthalten
die Variablen aber die Ergebnisse des Prüflings.
·
In einer Mitteilungsbox soll zum Drucken der
Variablenwerte aufgefordert werden.
·
Die Variable Versuche muss nun auf 0 gesetzt werden
mittels der Anweisung Versuche = 0
·
Bereitstellen einer Zufallszahl zwischen 0 und 100.
Eine passende Funktion müssten Sie im Theorieteil finden.
·
Mitteilung für den Benutzer anzeigen "Eine
neue Zahl wurde generiert", z. B. mittels lblMitteilung.Caption =
"...."
·
Bildlaufleiste aktivieren, damit geraten werden
kann, mittels hsbRaten.Enabled = True
·
Prüfen-Button mittels der Eigenschaft Visible =
True sichtbar machen.
Wenn auf die
Bildlaufleiste hsbRaten geklickt wird, muss der Computer folgende
Schritte ausführen:
·
Übergabe des Wertes der Bildlaufleiste an das
Steuerelement lblRaten mittels lblRaten.Caption = hsbRaten.Value.
·
Prüfen-Button mittels der Eigenschaft Enabled =
True aktivieren
Wenn Sie Ihr Projekt
jetzt einmal unter AUSFÜHREN und SUB/USERFORM AUSFÜHREN starten und dann auf
neue Zahle klicken und den linken oder den rechten Pfeil des Scrollbalken
anklicken, so wird durch das Change-Ereignis die Zahl im lblRaten verändert.
Auch wenn Sie den Schieber anklicken und nach rechts oder links ziehen und dann
loslassen, ändert sich der Wert. Sie können aber noch nicht sehen, bei welcher
Zahl Sie den Schieber loslassen. Deshalb brauchen wir hier noch das
"scroll-Ereignis".
Beenden
Sie also wieder Ihr Programm und wechseln Sie in das Code-Fenster (Ansicht
Code). Kopieren Sie Ihre komplette Sub hsbRaten_Change() bis End Sub und fügen
Sie diese direkt darunter erneut ein. Ändern Sie nun den Namen von
hsbRaten_Change() in hsbRaten_Scroll() ab. Damit haben Sie auch für das
Scroll-Ereignis bewirkt, dass die Zahlen an das lblRaten übergeben werden.
Probieren Sie es aus! Beim Schieben des Reglers müssten Sie nun direkt die
anvisierte Zahl im lblRaten sehen können.
Wenn auf den Button
cmdPrüfen geklickt wird, muss der Computer folgende Schritte ausführen:
·
Übergabe des Wertes (Value) des hsbRaten an die
Variable Tipp
·
Zählen des Versuches mit der Funktion Versuche =
Versuche + 1.
·
Wenn (If) Tipp > Zahl, dann (Then) soll im
lblMitteilung als Text (Caption) stehen: "Die gesuchte Zahl ist
kleiner" sonst, wenn (ElseIf) Tipp < Zahl, soll dort stehen "Die
gesuchte Zahl ist größer" sonst (Else) soll dort stehen "Sie haben es
geschafft, Ihr Tipp ist richtig! Das war Ihr Versuch Nr." +
Format(Versuche, 0) (Achten Sie auf die richtige Syntax bei der
ElseIf-Anweisung!).
·
Einblenden einer Mitteilungsbox, mit dem Text
"Das war Ihr Versuch Nr." +Fomat(Versuche, #)
Wenn auf den Button
cmdEnde geklickt wird, muss der Computer folgende Schritte ausführen:
·
Zuerst noch einmal die Abschließende Übergabe des
letzen Programmdurchlaufs mit den Inhalten aller Variablen an ein
Excelarbeitsblatt, z. B. mittels der Anweisungen
Range("B2").Value =
"Versuche"
Range("B3").Value = "Zufallszahl"
Range("B4").Value = "Tipp"
Range("D2").Value = Versuche
Range("D3").Value = Zahl
Range("D4").Value = Tipp
Range("B3").Value = "Zufallszahl"
Range("B4").Value = "Tipp"
Range("D2").Value = Versuche
Range("D3").Value = Zahl
Range("D4").Value = Tipp
·
In einer Mitteilungsbox soll zum Drucken der
Ergebnisse aufgefordert werden.
·
Schließlich soll das Programm beendet werden.
Falls Sie noch Lust/Zeit haben: Mögliche Erweiterungen:
- Die Mitteilungen an den Benutzer können etwas "genauer" sein. Z.B. wie beim Spiel "Blinde Kuh" die Angaben eiskalt, kalt, warm, heiß. Dabei hilft die BASIC-Funktion Abs, mit der man den Betrag einer Zahl bzw. den Abstand zweier Zahlen bestimmen kann.
- Ist die gedachte Zahl gefunden worden, erhält der Spieler im Mitteilungsfeld eine Bewertung, z.B.
a) Versuche < 5
|
Mitteilung "Das war reiner Zufall!"
|
b) 4 < Versuche < 8
|
Mitteilung "Super!"
|
c) Versuche > 7
|
Mitteilung
"Schwach!"
|
Für die Bereichsüberprüfung in b) schreibt man in
Visual Basic den Ausdruck
(Versuche > 4) AND (Versuche < 8)
(Versuche > 4) AND (Versuche < 8)
3.
Ergänzen Sie eine Textbox, so dass der Benutzer den
Zahlenbereich, in dem die Zahl gesucht werden soll, selbst festlegen kann.
4.
Und wir ergänzen noch einen Schritt. Wird der
Button NeueZahl einmal angeklickt, hat der Button keine weitere Aufgabe,
solange bis die Zahl geraten wurde. Aber wir brauchen einen Button, mit dem wir
die Lösung gezeigt bekommen, wenn wir das Spiel vorzeitig aufgeben. Dazu
benutzen wir cmdNeueZahl. Wir ändern die Caption-Eigenschaft und
ergänzen Entscheidungslogik, um den Zustand dieser Steuerschaltfläche zu sehen.
Wenn bei einem Klick die Aufschrift "Neue Zahl" lautet, führen wir
die obigen Schritte aus. Wenn bei einem Klick die Aufschrift "Lösung
zeigen" lautet, soll die Lösungszahl angezeigt und alle Steuerelemente
wieder auf ihre Ausgangswerte gesetzt werden. (Ein Standardverfahren bei Visual
Basic.)
Meine Nachhilfe PC und Programme bei Herbert läuft weiter.
Mathe-Nachhilfe bei mehreren Schülern läuft auch weiter (dabei handelt es sich um Schüler/innen der Grundschule Klasse 2, der Gesamtschule Klasse 10 und des Gymnasiums Klasse 8)
Änderung im Rentenrecht.
Die Regelaltersgrenze wird schrittweise ab 2012 bis 2029 auf 67 Jahre angehoben. Beginnend mit dem Geburtsjahrgang 1947 erfolgt die Anhebung ab 2012 zunächst in Ein-Monats-von 2024an in Zwei-Monats-Schritten, so dass dann für Versicherte ab Jahrgang 1964 die Regelaltersgrenze von 67 Jahren gilt.
Durch diese Änderung kann ich erst ein halbes Jahr später in die vorgezogenen Rente gehen. Also nicht mehr März 2015 sondern erst im August 2015
Außerdem gibt es eine Änderung im Arbeitsrecht, die für uns Vorruheständler interessant ist. Das Arbeitsamt darf uns ab sofort nicht nur noch Vollzeitjobs anbieten sondern ein Minijob reicht schon. Vorteil bei einem Minijob: die Versorgung von rwe läuft trotzdem weiter wogegen sie bei einer Vollzeitbe-schäftigung weg gewesen wäre.
In diesem Jahr gibt es keinen Sommer, deshalb stagnieren die Umbauarbeiten.
Silvester mit Micha
Keine Kommentare:
Kommentar veröffentlichen