Sonntag, 29. November 2015

Autobiografie Seite 50


                  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



                 

Den ganzen Sommer über bis nach den Herbstferien Probeprojekt.

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 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

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]
Else
  [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
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
·         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
·         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:

  1. 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.
  2. 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)
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