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