Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und...

31
Mehrfachausführungen Schleifen in VB 2010 ee

Transcript of Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und...

Page 1: Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.

Mehrfachausführungen

Schleifen in

VB 2010 ee

Page 2: Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.

Programmidee:

Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das 1x1).

Das könnte so aussehen:

Page 3: Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.

Mögliches Formular:

Textbox

Listbox

Label

Buttons

Page 4: Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.

Was soll das Programm können?

• Einen Wert aus der Textbox einlesen

• Diesen Wert mit 1 bis 10 multiplizieren

• Das 1x1 in der Liste ausgeben

• sich schließen können

• die Eingabefelder leeren

Page 5: Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.

Syntax Listbox

• Objekt.Methode

• lst_Listbox.Items.Add(was reinsoll)

Page 6: Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.

Syntax Multiplikation

Ergebnis = Faktor1 * Faktor2

Page 7: Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.

Für die Ganze Prozedur:

• Deklaration der Grundzahl:dim Grundzahl As Single

• Einlesen der Grundzahl:Grundzahl = txt_Grundzahl.text

• Multiplikation:Ergebnis = Grundzahl * 1

• Ausgabe:lst_Ergebnis.items.add(Ergebnis)

Page 8: Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.

Das ganze 1x1:

Die Multiplikation und die Ausgabe muss natürlich für die Zahlen von 1 bis 10 wiederholt werden. Ergebnis = Grundzahl * 2 lst_Ergebnis.items.add(Ergebnis) Ergebnis = Grundzahl * 3 lst_Ergebnis.items.add(Ergebnis)

Ergebnis = Grundzahl * 10 lst_Ergebnis.items.add(Ergebnis)

Page 9: Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.

Problem:

• Ein ziemlich langer Code für ein ziemlich kleines Progrämmchen,

Oder???

Page 10: Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.

Lösung

Wir sagen dem Computer, er solle denselben Vorgang mit verschiedenen Zahlen wiederholen.

Die Schleife

Page 11: Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.

For-Next-Schleife

Pseudo-Code:

Mache von i = 1 bis 10 folgendes:

Ergebnis = Grundzahl * i

Schreibe das Ergebnis ins Label

Nimm das nächste i

Page 12: Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.

Syntax: For-Next-Schleife

• For i = Startzahl to Endzahl

Anweisungsblock

Next

Page 13: Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.

VB-Code

Das heißt für uns:

For i = 1 to 10

Ergebnis = Grundzahl * i

lst_Ergebnis.Items.Add(Ergebnis)

Next i

Page 14: Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.

Ein Versuch…

… das Programm macht dasselbe wie vorher, es wurde aber wesentlich weniger Code benötigt.

Page 15: Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.

Großer Vorteil:

Wenn wir das Programm erweitern wollen, dass es bis zum 20-, 30-, 200- fachen der Grundzahl oder sonst wie weit rechnet, müssen wir nur einen Wert in der Schleife ändern:

For i = 1 To Obergrenze

Page 16: Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.

Freie Wahl der Obergrenze

Dann kann die Obergrenze doch aber bestimmt auch frei gewählt werden, sprich:

Vom Anwender festgelegt werden:

Los Geht‘s

Page 17: Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.

Code für großes 1x1:

Private Sub cmd_Rechne…

Dim Grundzahl As Single

Dim Faktor As Integer, Dim Ergebnis As Single

Dim i As Integer

Grundzahl = txt_Grundzahl.text

Faktor = txt_Faktor.text

For i = 1 To Faktor

Ergebnis = Grundzahl * i

lst_Ergebnis.items.add(ergebnis)

Next

End Sub

Page 18: Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.

Operatoren

• Bekannte Operatoren sind:

+ für Addition

- für Subtraktion

/ für Division

* für Multiplikation

Page 19: Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.

Ein neuer Operator:

Modulo-Rechnung:

Entspricht der aus der Grundschule bekannten Division mit Rest.

38 : 7 = 5 Rest 3

79 : 2 = 39 Rest 1

80 : 2 = 40 Rest 0

Page 20: Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.

Als Modulo:

38 : 7 = 5 Rest 3

79 : 2 = 39 Rest 1

80 : 2 = 40 Rest 0

38 mod 7 = 3

79 mod 2 = 1

80 mod 2 = 0

Page 21: Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.

Ein Übungsprogramm

• Erstelle ein Programm, in das zwei Zahlen eingegeben werden, die dann „modulo“ gerechnet werden.

Der Rest dieser Division soll dann ausgegeben werden.

Page 22: Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.

Mögliches Formular:

Page 23: Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.

Woran müsst ihr denken?

• Deklaration der nötigen Variablen

(Zahl1, Zahl2, Ergebnis)

• Einlesen der Zahlen

• Eigentliche Rechnung

• Ausgabe

Page 24: Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.

Programmcode:

Dim Zahl1 As Integer

Dim Zahl2 As Integer

Dim Ergebnis As Integer

Zahl1 = txt_Zahl1.Text

Zahl2 = txt_Zahl2.Text

Ergebnis = Zahl1 Mod Zahl2

Lbl_Ergebnis.Text = "Bei Division von " & Zahl1 &

" durch " & Zahl2 & " bleibt der Rest " &

Ergebnis & "."

Page 25: Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.

Zweites Modulo-Programm:

• Schreiben Sie ein Programm, dass entscheidet, ob eine Zahl durch eine andere Zahl teilbar ist und eine entsprechende Meldung ausgibt.

Page 26: Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.

Voraus-Überlegungen:

• Wie muss das Formular aussehen?• Welche Schritte muss das Programm

ausführen? (Algorithmus)• Welche Variablen benötige ich?• Wie müssen die Variablen deklariert sein?• Wie sieht der Programmcode aus

Dann mal los, ihr seid dran!

Page 27: Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.

Mögliches Formular:

Page 28: Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.

Benötigte Schritte

• Modulo Rechnung

• If-Entscheidung

Wenn Ergebnis = 0, dann Teiler

Wenn Ergebnis ≠ 0, dann kein Teiler

• Ausgabe in einem Label

Page 29: Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.

Benötigte Variablen und ihre Deklariation

Benötigt werden große ganze Zahlen

Dim Zahl1 As Long

Dim Zahl2 As Long

Dim Ergebnis As Long

Page 30: Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.

Programmcode

Private Sub cmd_teilt_Click…

Zahl1 = txt_Zahl1.Text

Zahl2 = txt_Zahl2.Text

Ergebnis = Zahl2 mod Zahl1

If Ergebnis = 0 Then

lb_lErgebnis.Text = Zahl1 & " ist ein Teiler von " & Zahl2 & "."

Else

lbl_Ergebnis.Text = Zahl1 & " ist nicht Teiler von " & Zahl2 & "."

End If

End Sub

Page 31: Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.

Aufgabenstellung

Jetzt seid ihr soweit, in euren Taschenrechner eine Funktion einzubauen, die überprüft, ob einen eingegebene Zahl eine Primzahl ist.

Viel Erfolg!