KinderUni - HPK

Transcrição

KinderUni - HPK
Computer selbst programmieren
Kleine Programme mit VisualBasic erstellen
vorgestellt von
Dipl.Ing. (FH) Hans-Peter Kiermaier
Fakultät Elektrotechnik/Wirtschaftsingenieurwesen
Dipl.Ing.(FH) Hans-Peter Kiermaier, Fak. ET/WI
Überblick
Programmiersprachen: C, C++, Pascal, VisualBasic
Scriptsprachen: Java, VB-Script, Perl
In der Regel enthalten alle höheren Programmiersprachen
Ausdrücke in englischer Sprache, z.B. PRINT, WRITE, …
Es ist also wichtig, ein wenig Englisch zu beherrschen!
Windows wird meist in C++ programmiert. Aber die integrierte
Standardsprache ist VisualBasic:
• Zum Steuern und Verwalten von Windows: VB-Scripting, Powershell
• Zum Erweitern der Office-Programme (Word, Excel): VBA
• Zum Erstellen ausführbarer EXE-Programme: VisualBasic (Studio)
VB-Scripting und VBA funktionieren auf jedem WindowsComputer (ab Windows 98, 2000, XP, Vista, 7). Man braucht
dazu lediglich einen Texteditor, z.B. Notepad.
Dipl.Ing.(FH) Hans-Peter Kiermaier, Fak. ET/WI
VB-Scripting: Einfache Ausgabe
Vorbereitung:
 Eigene Dateien öffnen
 Neues Textdokument: "Übung1.vbs"
 zum Bearbeiten öffnen
Endung .vbs
ist wichtig!
Texte anzeigen:
Syntax: Msgbox Meldung, Bild + Button, Titel
Meldung = Beliebiger Text in Anführungsstrichen " "
Bild = ein Symbol: vbCritical , vbExclamation , vbInformation , vbQuestion
Button = Schaltflächen: vbOk, vbOkCancel, vbYesNo, vbYesNoCancel, vbAbortRetry, usw.
Titel = Beliebiger Text in Anführungsstrichen für die Titelleiste
Beispiele:
Msgbox "Hallo du da!"
Msgbox "Hallo du da!", vbYesNo
Msgbox "Hallo du da!", vbYesNo + vbInformation
Msgbox "Hallo du da!", vbYesNo + vbQuestion, "Begrüssung"
Msgbox "Festplatte löschen?", vbYesNo + vbCritical, "Systemfehler"
Dipl.Ing.(FH) Hans-Peter Kiermaier, Fak. ET/WI
VB-Scripting: Einfache Eingabe
Texte eingeben:
Syntax: Variable = InputBox(Meldung, Titel, Vorgabe)
Variable = Platzhalter mit beliebigem Namen (aber ohne Leerzeichen)
Meldung = Beliebiger Text in Anführungsstrichen " "
Titel = Beliebiger Text in Anführungsstrichen für die Titelleiste
Vorgabe = Text, der bereits als Standard enthalten sein soll
Beispiele:
Antwort = InputBox("Hallo! Wie heißt Du?")
Antwort = InputBox("Hallo! Wie heißt Du?", "Begrüßung", "DeinName")
Antwort = InputBox("Hallo! Wie heißt Du?", "Begrüßung")
Msgbox "Ich grüsse dich, " & Antwort, vbinformation, "Begrüßung"
Dipl.Ing.(FH) Hans-Peter Kiermaier, Fak. ET/WI
VB-Scripting: Mit Schleifen zählen
Vorbereitung: Neues Textdokument: "Übung2.vbs"
Abzählbare Wiederholungen:
Syntax: For Variable = Startwert to Endwert: … : Next
titel = "Ich kann zählen:"
For zahl = 1 to 5
Msgbox zahl, , titel
Next
Unbegrenzte Wiederholungen:
Syntax: Do : … : Loop
titel = "Ich hör nicht auf"
zahl = 1
'Anfangswert festlegen
Do
taste = Msgbox(zahl, vbOKCancel, titel)
if taste = vbCancel then exit do
zahl = zahl + 1 'um eins weiterzählen
Loop
Erst wenn man auf Abbrechen klickt, verlässt er die Schleife (exit do) und hört auf
zu zählen.
Dipl.Ing.(FH) Hans-Peter Kiermaier, Fak. ET/WI
VB-Scripting: Zufallszahlen erzeugen
Vorbereitung: Neues Textdokument: "Übung3.vbs"
Zufallszahlen erzeugen:
Syntax: variable = Int(rnd * Wertevorrat) + Minimum
zahl = Int(rnd * 6) + 1
Msgbox "Ich würfle eine " & zahl, , "Würfel"
Wie langweilig - immer die gleiche Zahl!
Erst mit randomize am Anfang wird es ein echter zufälliger Würfel:
Randomize
zahl = Int(rnd * 6) + 1
Msgbox "Ich würfle eine " & zahl, , "Würfel"
So lassen sich auch die Lottozahlen ermitteln und auf einmal ausgeben:
Randomize
For i = 1 to 6
Text = Text & Int(rnd * 49) + 1 & ", "
Next
Msgbox Text, , "Die Lottozahlen lauten"
Dipl.Ing.(FH) Hans-Peter Kiermaier, Fak. ET/WI
Kleine Rechenprogramme
Vorbereitung: Neues Textdokument: "Übung4.vbs"
Rechentrainer für Ein-mal-Eins-Aufgaben:
Randomize
titel = "Kopfrechnen lernen"
zahl1 = Int(rnd*10) + 1
'denkt sich eine Zahl zw. 1 und 10 aus
zahl2 = Int(rnd*10) + 1
'denkt sich noch eine Zahl zw. 1 und 10 aus
ergebnis = zahl1 * zahl2
'rechnet schon mal aus, was rauskommt…
do
eingabe = InputBox("Wieviel ist " & zahl1 & " x " & zahl2, titel)
'Falls Abbrechen, Schleife verlassen
if eingabe = "" then exit do
eingabe = Cint(eingabe)
'Eingabe in ganze Zahl umwandeln
if eingabe = ergebnis then Msgbox "Richtig!", ,titel: exit do
loop
Reaktionzeit-Spiel: Wie genau kannst du 10 Sekunden schätzen?
zeit1 = time
'aktuelle Uhrzeit merken
msgbox "Klick auf OK wenn 10 Sekunden vorbei sind"
zeit2 = time
'neue Uhrzeit holen
vorbei = second(zeit2 - zeit1)
'Unterschied in Sekunden (Differenz)
if vorbei = 10 then
Msgbox "Bravo, genau 10 Sekunden!"
else
Msgbox "Das waren " & vorbei & " Sekunden"
end if
Dipl.Ing.(FH) Hans-Peter Kiermaier, Fak. ET/WI
VB-Scripting: Umgang mit Objekten
Vorbereitung: Neues Textdokument: "Übung5.vbs"
Objekte erzeugen:
Syntax: Set ObjName = CreateObject(Systemobjekt)
Eigenschaften des Objekts ändern:
Eigenschaften des Objekts abfragen:
ObjName.Eigenschaft = Wert
Variable = ObjName.Eigenschaft
set VT = CreateObject("SAPI.Spvoice")
Set VT.Voice = VT.getvoices().Item(0)
'Stimme 1 (Item=0) wählen
VT.rate = 1
'Sprechgeschwindigkeit -10..10
VT.volume = 100
'Sprechlautstärke 0..100
VT.Speak "Hello, I am your computer!"
Anmerkung: Für deutsche Sprachausgabe benötigt man:
die Datei "SpchAPI.EXE" und die deutsche Sprachdatei "Lhttsged.exe".
Dipl.Ing.(FH) Hans-Peter Kiermaier, Fak. ET/WI
Aussprachetrainer für Englisch
Vorbereitung: Neues Textdokument: "Übung6.vbs"
Aussprachetrainer für englische Wörter oder Sätze:
set VT = CreateObject("SAPI.Spvoice")
text = "Gib ein englisches Wort oder einen Satz ein"
eingabe = InputBox(text, "Ausprachetrainer")
if eingabe = "" then wscript.quit
VT.Speak eingabe
Falls in die Inputbox nichts eingegeben wird oder Abbrechen geklickt wird, so
endet das Programm durch wscript.quit. Andernfalls wird es ausgesprochen.
Geburtstagsgruss:
set VT = CreateObject("SAPI.Spvoice")
do
if time >= "10:30" then exit do
'if date = "24.12.2011" then exit do
loop
VT.speak
"Happy birthday to you!"
Erst wenn die Uhrzeit oder das Datum erreicht wurde, wird der Satz ausgesprochen. Dazu sollte man das Programm in die Autostartgruppe schieben!
Dipl.Ing.(FH) Hans-Peter Kiermaier, Fak. ET/WI
VB-Scripting: Windows fernsteuern
Vorbereitung: Neues Textdokument: "Übung7.vbs"
VB-Scripting kann Windows komplett steuern und auch andere
Anwendungen starten.
Set WS = CreateObject("Wscript.Shell")
WS.run "firefox.exe kinderuni.fh-landshut.de"
Man kann auch den Computer Tasten tippen lassen:
Set WS = CreateObject("WScript.Shell")
titel = "Was soll ich addieren?"
zahl1 = InputBox("Erste Zahl", titel)
zahl2 = InputBox("Zweite Zahl", titel)
WS.run "calc.exe"
Wscript.sleep 2000
WS.sendkeys zahl1
WS.sendkeys "{+}"
WS.sendkeys zahl2
WS.sendkeys "~"
'Rechner starten
'2 Sekunden warten
'Erste Zahl eintippen lassen
'Ein Pluszeichen eintippen lassen
'Zweite Zahl eintippen lassen
'Eingabetaste drücken lassen
Dipl.Ing.(FH) Hans-Peter Kiermaier, Fak. ET/WI
VB-Scripting: Windows fernsteuern
Weitere Spielereien:
Reaktionszeittest:
Set WS = CreateObject("WScript.Shell")
Do
zeit = int(rnd*10)+3
wscript.sleep zeit * 1000
'3 bis 10 Sekunden warten
taste = WS.PopUp("Klick mich weg!", 1) 'Nur 1 Sekunde zeigen
if taste = 1 then exit do
Loop
msgbox "OK! Getroffen"
Krümmelmonster:
Set WS = CreateObject("WScript.Shell")
Titel = "Krümelmonster": Meldung = "Bitte gib mir einen Keks!"
Do
Antwort = MsgBox (Meldung, vbYesNo + vbSystemModal, Titel)
if Antwort = vbYes then
WS.PopUp "Mampf, mampf, mampf", 2, Titel ,vbInformation
Exit do
End if
Loop