13.07.2015 Aufrufe

Inhalt Programmiersprache Visual Basic

Inhalt Programmiersprache Visual Basic

Inhalt Programmiersprache Visual Basic

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

1. Einführung in die Informatik<strong>Inhalt</strong>2. Algorithmen - Wesen, Eigenschaften, Entwurf3. Darstellung von Algorithmen mit Struktogrammen undProgrammablaufplänen4. Algorithmen-Beispiele5. <strong>Programmiersprache</strong> <strong>Visual</strong> <strong>Basic</strong>6. Grundlagen der DatenbanktechnologiePeter Sobe1<strong>Programmiersprache</strong> <strong>Visual</strong> <strong>Basic</strong>5.0 <strong>Basic</strong> Varianten5.1 Programmaufbau in <strong>Visual</strong> <strong>Basic</strong>5.2 Basisdatentypen, Variablen und einfache Anweisungen5.3 Steuerfluss-Konstrukte5.4 Arbeit mit indizierten Größen (Felder, Vektoren, Matrizen)5.5 Zeichen und Zeichenketten5.6 Funktionen (Unterprogramme)5.7 Nutzerdefinierte Datentypen5.8 Systemfunktionen: Dateiverarbeitung5.9 Systemfunktionen: Windows und Dialoge5.10 Klassen und Objekte5.11 Office ObjektmodellPeter Sobe 2


<strong>Basic</strong>-Varianten (1)<strong>Basic</strong> wurde 1964 als einfache <strong>Programmiersprache</strong> entwickelt.Erste Systeme als BASIC Interpreter, d.h. der BASIC-Code wurdezur Laufzeit des Programms im Maschinencode umgewandelt.Später entstanden viele verschiedene BASIC-Dialekte:• IBMPC-<strong>Basic</strong> Interpreter (GWBASIC)• Quick-BASIC• VBA – Makrosprache für Microsoft Programme (z.B. Excel)• <strong>Visual</strong> <strong>Basic</strong> .NET innerhalb <strong>Visual</strong> Studio…Dialekte unterscheiden sich z.B. darin, ob Unterprogrammeunterstützt werden und welche Ein- und Ausgabebefehle existieren.Peter Sobe 3<strong>Basic</strong>-Varianten (2)VBA-Skripte innerhalb MS-Excel sind als interpretierte Makroszu verstehen.<strong>Visual</strong> <strong>Basic</strong> (VB) innerhalb <strong>Visual</strong> Studio ist eine Sprache, die auf die .NETPlattform kompiliert wird. Dort wird z.B. die Zusammenarbeit mit Modulengewährleistet, die in anderen <strong>Programmiersprache</strong>n geschrieben wurden.MicrosoftVB C++ C#Common Intermediate LanguageCommon Language Runtimevgl. SunJavaJavaBytecodeJava RuntimeHardwareOSHardwareOSPeter Sobe 4


<strong>Basic</strong>-Varianten (3)Programme, die in den verschiedenen BASIC-Systemen undDialekten geschrieben sind, sind i.d.R. nicht kompatibel.Aber:Systemunabhängige Programmteile, wie z.B. Unterprogrammeohne Ein- und Ausgabe können wiederverwendet werden.Peter Sobe 5<strong>Visual</strong> <strong>Basic</strong> MerkmaleMerkmale der Sprache:• Keine Zeilennummerierung - Codezeilen ohneNummerierung, Benutzung von Zeilenmarken möglich, umSprünge zu programmieren• imperative, prozedurale Sprache• Funktionen und Prozeduren – Modulares Programmierendurch selbstdefinierte Unterprogramme• Objekte – Objekte mir Eigenschaften und Methoden alsErweiterung• Grafische Benutzeroberfläche – Anwendungen könnenausgehend von einer Oberfläche (Fenster) gestaltet werden.Bedien- und Steuerelemente können grafisch platziert werden.Ereignisse werden mit programmierten Aktionen verbundenPeter Sobe 6


Programmaufbau (1)Ein (unabhängig startfähiges) Programm hat immer eineHauptroutine:REM <strong>Visual</strong> <strong>Basic</strong> ProgrammModule Module1Sub Main()REM hier die BASIC AnweisungenEnd SubEnd ModulePeter Sobe 7Programmaufbau (2)Ein anderer Programmaufbau für BASIC-Interpretersysteme:REM <strong>Visual</strong> <strong>Basic</strong> Programm100 PI=4*ATN(1)110 INPUT "Radius";R120 U=2*PI*R130 F=PI*R*R140 PRINT "RADIUS=";R150 PRINT "UMFANG=";U160 PRINT "FLÄCHE=";F170 ENDDie Hauptroutine beginnt hier implizit mit der ersten AnweisungKommentare: REM oder ' (Apostroph)Peter Sobe 8


Programmaufbau (3)Deklaration der Variablen - global:Module Module1Dim eingabefehler As BooleanDim a, b, c As IntegerDim Nachricht As StringREM Variablen global sichtbar, auch für andere SubroutinenSub Main()REM Hier beginnt der ProgrammcodeEnd SubEnd ModulePeter Sobe 9Programmaufbau (4)Deklaration der Variablen – lokal für Subroutinen:Module Module1Sub Main()Dim eingabefehler As BooleanDim a, b, c As IntegerDim Nachricht As StringREM diese Variablen sind nur in der Main-Routine sichtbarREM Hier beginnt der ProgrammcodeEnd SubEnd ModulePeter Sobe 10


Programmaufbau (5)Programmanweisungen folgen nach der VariablendeklarationModule Module1Sub Main()Dim eingabefehler As BooleanDim a, b, c As IntegerREM Hier beginnt der ProgrammcodeDoeingabefehler = Falsea = InputBox("Bitte a eingeben:")If (Not IsNumeric(a) And a < 1) ThenMsgBox("es wurde kein gültiger Wert eingegeben")eingabefehler = TrueEnd IfLoop While (eingabefehler )…End SubEnd ModulePeter Sobe 11Programmaufbau (6)Programmanweisungen sind:• Einfache Anweisungen in BASIC-Syntax• Steuerfluss-Konstrukte in BASIC-Syntax, z.B. für Programmschleifen• Prozeduraufrufe (Sub – Subroutine)• Aufrufe von Bibliotheksfunktionen, die üblicherweise als Objekteinnerhalb .NET referenziert werden müssenPeter Sobe 12


Basisdatentypen und Variablen (1)• Variablen dienen zur Aufnahme von Werte während derProgrammverarbeitung.• Variablen werden durch Bezeichner referenziert und müssenentsprechend deklariert werden• Jede Variable besitzt einen Typ, der wiederspiegelt, welche Werte dieVariable aufnehmen kann, z.B. ganzzahlige Werte, Wahrheitswerte,Textzeilen usw.Beispiel:Dim A as IntegerDim Nachricht as STRINGA=-42Nachricht = “Es ist kalt!“Console.Write(“Die Außentemperatur beträgt “)Console.Write(A)Console.WriteLine(“ Grad.“)Console.WriteLine(Nachricht)Peter Sobe 13Basisdatentypen und Variablen (2)Standardtypen:Typ Erläuterung SpeicherplatzByte Ganzzahl zwischen 0 und 255 1 ByteBoolean Wahrheitswert (True = -1, False = 0) 2 ByteChar einzelnes Zeichen, z.B. `A`, `B`, … 2 ByteInteger Ganzzahl zwischen -32768 und 32767 2 ByteLong Lange Ganzzahl (Long-Integer) 4 Bytezwischen -2 147 483 648 und 2 147 483 647Single Einfachgenaue Gleitkommazahl 4 Bytemit 7-stelliger Genauigkeit zwischen10E-38 und 10E+38Double Doppeltgenaue Gleitkommazahl mit 8 Byte16-stelliger Genauigkeit zwischen10E-308 und 10E+308Peter Sobe 14


Basisdatentypen und Variablen (3)Standardtypen (Fortsetzung):Typ Erläuterung SpeicherplatzCurrency Währung, umfasst 15 Stellen vor und 8 Byte4 Stellen nach dem DezimalpunktDate 1. Januar 100 0:00:00 bis 8 Byte31. Dezember 9999 23:59:59StringZeichenfolge mit einer maximalen Längevon ca. 2 000 000 000 Zeichen1 Byte pro Zeichenplus 10 BytesObject Verweis auf ein Objekt 4 BytePeter Sobe 15Basisdatentypen und Variablen (4)Variablendeklaration:DIM name AS typDIM und AS sind Schlüsselworte. Schlüsselworte dürfen nicht alsVariablennamen verwendet werden.Beispiele:DIM meinGuthaben AS CurrencyDIM meinGewicht AS SinglePeter Sobe 16


Variablendeklaration und WertzuweisungGetrennte Deklaration undWertzuweisungDIM meinGewicht AS Single…meinGewicht=75Zuweisung bei DeklarationDIM meinGewicht AS Single = 75…Konstanten-DeklarationCONST pi AS Double = 3.14159Pi kann wie eine Variable benutzt werden, solange man den Wertunverändert lässt.pi= 47.11 → error BC30074: Zuweisung zu einer Konstanten nicht zulässig.Peter Sobe 17Einfache AnweisungenZuweisungen konstanter und variabler Werte:y=3.14159x=ynachricht = “Die Kreiskonstante PI beträgt “Auswertung von Ausdrücken (rechte Seite)und Zuweisung (auf linke Seite):u = 2*y*rnachricht = “Der Umfang beträgt “+ Format(u)Referenzieren von Objekten:Value = TextBox1.TextTextBox2.Text = Value * 5.0Genaueres zu Objektenfolgt späterPeter Sobe 18


Arithmetische Operatoren:Operatoren in Anweisungen^ Potenzierung* / Multiplikation, Division+ - Addition, Subtraktion\ Ganzzahl-Division ("mit Rest")MOD modulo ("Rest" bei der Division)= ZuweisungBeispiel:Dim a, b, c, d As Integera = 8b = 5c = a / bd = a Mod bMsgBox("8/5=" + Format(c) + " Rest=" + Format(d))Peter Sobe 19Eingabe (1)Für Konsolen-Anwendungen:DIM eingabe As StringREM Eingabe über die Konsoleeingabe =Console.ReadLine()…REM Eingabe per Fenstereingabe = InputBox(“Bitte Wert angeben:“,“Eingabe“,““)StandardwertPeter Sobe 20


Eingabe (2)Für Forms-Anwendungen:Dim eingabe1 As StringDim eingabe2 As IntegerDim eingabe3 As BooleanDim checkNachricht As Stringeingabe1 = ZeichenFeld1.Texteingabe2 = NummerBox.Texteingabe3 = CheckBox1.CheckedIf (eingabe3) ThencheckNachricht = ", einverstanden"ElsecheckNachricht = ", nicht einverstanden"End IfMsgBox("Ihre Eingabe: " + eingabe1 + " ," + Format(eingabe2) +checkNachricht)Peter Sobe 21Eingabe (3)Für Forms-Anwendungen:Peter Sobe 22


Für Konsolen-Anwendungen:Ausgabe (1)DIM ausgabe As String =“Hallo“REM Ausgabe über die KonsoleConsole.Write(ausgabe)Console.WriteLine(ausgabe)…REM Ausgabe per FensterMsgBox(ausgabe)Peter Sobe 23Die Format()-FunktionAusgabe (2)Man kann Variable verschiedener Typen in Text umwandelnund die Formatierung beeinflussen.Benutzung:Ziel = Format(Ausdruck [,Formatierung])Beispiel:DIM Temperatur As Float = 13.8MsgBox(“ Die Raumtemperatur beträgt “+ Format(Temperatur,“ + 00.00 Grad Celsius “))Peter Sobe 24


Innerhalb Forms-Anwendungen:Ausgabe (3)Dim Alter As Integer = NummerBox.TextDim Gewicht As Single = GewichtBox.TextDim Groesse As Single = GroesseBox.TextDim BMI As SingleName = ZeichenFeld1.TextBMI = Gewicht / (Groesse / 100.0 * Groesse / 100.0)Label4.Text = "Im Alter von " + Format(Alter) + " haben Sie einenBMI von " + Format(BMI)Peter Sobe 25Eingabe typisierter Variablen von der KonsoleConsole.ReadLine() gibt den eingetippten <strong>Inhalt</strong> als String zurück.Der Variableninhalt wird durch die Methode Parse() des jeweiligenTyp-Objekts ermittelt.Dim zeichen As CharDim ganzezahl As IntegerDim gebrochenezahl As SingleDim eingabestring As StringREM Annahme: Reihenfolge Zeichen, ganze Zahl, gebrochene Zahleingabestring = Console.ReadLine()zeichen = Char.Parse(eingabestring)eingabestring = Console.ReadLine()ganzezahl = Integer.Parse(eingabestring)eingabestring = Console.ReadLine()gebrochenezahl = Single.Parse(eingabestring)Peter Sobe 26


Steuerfluss-Konstrukte (1)Der Steuerfluss beschreibt die Reihenfolge, in der die einzelnenAnweisungen ausgeführt werden.Steuerfluss kann auch als Fluss oder Weg durch den Programmcodeinterpretiert werden.<strong>Visual</strong> <strong>Basic</strong> ist eine imperative <strong>Programmiersprache</strong> – damit werdendie Anweisungen von oben nach unten ausgeführt, wenn nichtsanderes angegeben ist (Sequenz).Steuerfluss-Konstrukte ermöglichen:• Alternative(n)• Zyklen• UnterprogrammaufrufeRealisierung durch besondere Schlüsselworte,Bedingungsausdrücke und ParameterPeter Sobe 27if-Anweisung (1)Die if-Anweisung ist das Ausdrucksmittel für die AlternativeVariante als „einseitige“ AlternativejaBedingungneinAnweisung /if Bedingung Then AnweisungoderIf Bedingung ThenAnweisung1Anweisung2…End ifEinzeilige Variante kommt ohne „End if“ ausPeter Sobe 28


if-Anweisung (2)Variante als zweiseitige Alternative:BedingungjaneinAnw1 Anw2if Bedingung ThenAnw1elseAnw2End ifAuch mit mehreren Anweisungen:möglichif Bedingung ThenAnw1Anw2elseAnw3Anw4End ifPeter Sobe 29if-Anweisung (3)Variante als MehrfachauswahlAuch mit mehreren Anweisungenund/oder else-Zweig für „sonst“if Bedingung1 ThenAnw1elseif Bedingung2Anw2elseif Bedingung3Anw3End ifif Bedingung1 ThenAnw1Anw2elseif Bedingung2Anw3Anw4elseAnw5End ifPeter Sobe 30


Select-case-Konstrukt (1)Zur Selektion unter mehreren alternativen ZweigenFallausdruckWert1 Wert2 ... sonstAnw_1 Anw_2 ... Anw_n Anw_0Select Case variablecase Wert_1Anw_1case Wert_2Anw_2…case Wert_nAnw_ncase elseAnw_0;End SelectPeter Sobe 31Select-case-Konstrukt (2)Weitere Variante mit IntervallenSelect Case variablecase Anfang1 to Ende1Anw_1case Anfang2 to Ende2Anw_2…case Anfang_n to Ende_nAnw_ncase elseAnw_0;End SelectPeter Sobe 32


do-while-SchleifeSo lange BedingungzutrifftAnweisungenAllgemeine Form:Do while Bedingunganweisung1anweisung2Loop• While: Die Anweisung oder Verbundanweisung wird solangewiederholt ausgeführt, wie die Bedingung zutrifft.• Durch Änderungen der Variablenwerte wird die Bedingung i.d.R.nach endlich vielen Durchläufen irgendwann nicht mehr zutreffenund die Wiederholung endet.• Trifft die Bedingung bei Eintritt in die Schleife nicht zu, wird dieAnweisung nicht (auch nicht ein einziges mal) ausgeführt.Peter Sobe 33do-until-SchleifeBis Bedingung zutrifftAnweisungenAllgemeine Form:Do until Bedingunganweisung1anweisung2Loop• Until: Die Anweisung oder Verbundanweisung wird solangewiederholt ausgeführt, bis die Bedingung zutrifft.• Das Zutreffen der Bedingung ist das AbbruchkriteriumPeter Sobe 34


Schleifen – Kopf- vs. FußgesteuertKopfgesteuert (abweisender Zyklus):BedingungAnweisungenFußgesteuert (nichtabweisender Zyklus):BedingungAnweisungenEine fußgesteuerte Schleife prüftam Ende eines Durchlaufs, ob derAnweisungsblock wiederholt wird.Der Anweisungsblock wird damitmindestens einmal abgearbeitet.Varianten:Do…Loop While/Until BedignungPeter Sobe 35For-Schleife (1)Zählzyklus:Lv = awert (s) ewertAnwEntsprechende Form:FOR Lv=awert TO ewert STEP sAnweisung1…NEXT LvLv dient hier als ZählvariableSolange die Zählvariable den ewert nicht über-/unterschreitet, wird dieAnweisung wiederholt. STEP kann weggelassen werden, wenn dieSchrittweite 1 ist.Beispiel:FOR i=1 TO 10Call Auswerten( datensatz(i) )NEXT iPeter Sobe 36


FOR-Schleife (2)Wirkungsweise einer FOR-Schleife als PAP:Lv=awert(s>0 AND Lv= 0(auch null Durchläufe möglich!)• Verwendung der fußgesteuerten Schleife, wenn im Gegensatzdazu n>=1 (mindestens ein Durchlauf!)• Bevorzugung der for-Zählschleife dann, wenn die Anzahl derIterationen schon bekannt ist. Insbesondere zum „Durchlaufen“von Feldern geeignet.Peter Sobe 38


Operatoren im Bedingungs-AusdruckVergleichsoperatoren= gleich< kleiner als> größer als= größer oder gleich< > ungleichBeispiel:If (BMI 64) ) Then ...If ( (zahl >= 0) AND (zahl = 0 AND zahl


Bedingungen & Boolesche Algebra (1)Die Algebra ist über Elemente definiert, die die Werte wahr oder falschannehmen können, bzw. true oder false, auch 1 oder 0Axiomatische Definition – Operationen AND, OR, NOTa AND ba OR ba b a AND bfalsch falsch falschfalsch wahr falschwahr falsch falschwahr wahr wahra b a OR bfalsch falsch falschfalsch wahr wahrwahr falsch wahrwahr wahr wahrNOT aafalschwahrNOT awahrfalschPeter Sobe 41Bedingungen & Boolesche Algebra (2)Eigenschaften:a AND b = b AND aa OR b = b OR a0 AND a = 0, 1 AND a = a a OR 0 = a, a OR 1 = 1(a AND b) AND c = a AND (b AND c) = a AND b AND c(a OR b) OR c = a OR (b OR c) = a OR b OR c(a AND b) OR c = (a OR c) AND (b OR c)(a OR b) AND c = (a AND c) OR (b AND c)Regeln:NOT (a AND b) = (NOT a) OR (NOT b)NOT (a OR b) = (NOT a) AND (NOT b)a XOR b = (a AND (NOT b)) OR ((NOT a) AND b)Peter Sobe 42

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!