• Keine Ergebnisse gefunden

Crash-Kurs 3

N/A
N/A
Protected

Academic year: 2022

Aktie "Crash-Kurs 3"

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Crash-Kurs 3

Heute beschäftigen wir uns u.a. mit folgenden Themen:

- Initialisierung des Zufallszahlengenerators: randomize - Funktion: rnd

- Schleife: do...while - Arrays

Arbeitsanleitung

Aufgabe 1. Erstellen Sie eine Prozedur (Aufgabe4), mit Hilfe derer der Anwender eine beliebige Anzahl von Zufallszahlen erzeugen kann. Die For...Next-Schleife ich hierfür ungeeignet. Warum?

Jede Zufallszahl soll in einer MsgBox ausgegeben werden. Wurde eine Zufallszahl mehrfach generiert, so soll diese nur ein einziges Mal ausgegeben werden. Dies bedeutet, daß jede erzeugte Zahl zwischengespeichert wird (und mehrfach erzeugte Zahlen ignoriert werden), bis die gewünschte Anzahl von Zahlen generiert wurde. Wie kann ich mir die erzeugten Zahlen

zwischenspeichern?

Public Sub Aufgabe4() Dim int_zufallszahl as Integer Dim int_maximal as Integer Dim int_anzahl as Integer Dim i as Integer

Dim j as Integer

Dim int_feld(1 To 10) As Integer

int_anzahl = CInt(InputBox("Wieviel Zufallszahlen wollen Sie ? (max. 10)", "Erzeugung von Zufallszahlen ohne Wiederholung")) int_maximal = CInt(InputBox("Maximalwert der Zufallszahlen", "Erzeugung von Zufallszahlen ohne Wiederholung"))

i = 0

If int_anzahl < 1 Or int_anzahl > 10 Then MsgBox ("Keine Zufallszahlen möglich") Else

Randomize ' Zufallszahlengenerator initialisieren.

Do While i < int_anzahl

i = i + 1 ' Zähler hochzählen.

int_zufallszahl = Int((int_maximal * Rnd) + 1) ' Zufallszahl im Bereich von 1 bis int_maximal generieren.

int_feld(i) = int_zufallszahl For j = 1 To (i - 1)

If int_feld(i) = int_feld(j) Then

i = i - 1 ' doppelte Zufallszahl gefunden; Zähler wieder zurückstellen End If

Next j Loop

For i = 1 To int_anzahl

MsgBox ("Die " & i & "-te erzeugte Zufallszahl lautet: " & int_feld(i)) Next i

End If End Sub

Aufgabe 2. Ändern Sie die Prozedur nun so ab (Name: Aufgabe5), daß eine Zufallszahl auch mehrfach auftreten kann.

/tmp/jodconverter_6717d9fd-f48d-4274-b469-d0d1e759f7a2/tempfile_2714.doc - 1 -

(2)

Aufgabe 3. Es sollen Rabattbeträge für Übernachtungen berechnet werden.

Eine Übernachtung kostet normalerweise 150,- DM/Person. Es wird zunächst nach der Anzahl der Übernachtungen gefragt. Ist die Anzahl der

Übernachtungen > 5, dann gibt es 20 Prozent Preisnachlaß. Handelt es sich bei dem Übernachtenden um ein Kind, wird nur die Hälfte berechnet.

/tmp/jodconverter_6717d9fd-f48d-4274-b469-d0d1e759f7a2/tempfile_2714.doc - 2 -

Sub rabatt()

Dim Personenart As String

Dim int_aufenthaltstage As Integer Dim dbl_preis As Double

int_aufenthaltstage = InputBox("Aufenthaltsdauer") Personenart = InputBox("Kind oder Erwachsener?") If Personenart = "Kind" Then

If int_aufenthaltstage < 5 Then dbl_preis = 150 * 0.5 Else

dbl_preis = 150 * 0.8 * 0.5 End If

MsgBox ("Preis: " & dbl_preis) Else

If Personenart = "Erwachsener" Then If int_aufenthaltstage < 5 Then dbl_preis = 150

Else

dbl_preis = 150 * (1 - 0.2) End If

End If

MsgBox ("Preis: " & dbl_preis) End If

End Sub

(3)

Sub rabattneu()

Dim Personenart As String

Dim int_aufenthaltstage As Integer Dim dbl_preis As Double

int_aufenthaltstage = InputBox("Aufenthaltsdauer") Personenart = InputBox("Kind oder Erwachsener?") If Personenart = "Kind" And int_aufenthaltstage < 5 Then art = 1

ElseIf Personenart = "Kind" And int_aufenthaltstage >= 5 Then art = 2

ElseIf Personenart = "Erwachsener" And int_aufenthaltstage < 5 Then art = 3

ElseIf Personenart = "Erwachsener" And int_aufenthaltstage <= 5 Then art = 4

Else art = 5 End If

Select Case art ' Klassifizierung auswerten.

Case 1

dbl_preis = 150 * 0.5 Case 2

dbl_preis = 150 * 0.8 * 0.5 Case 3

dbl_preis = 150 Case 4

dbl_preis = 150 * 0.8 Case Else

dbl_preis = 0 MsgBox ("Fehler") End Select

MsgBox ("Preis:" & dbl_preis)

End Sub

/tmp/jodconverter_6717d9fd-f48d-4274-b469-d0d1e759f7a2/tempfile_2714.doc - 3 -

Referenzen

ÄHNLICHE DOKUMENTE

Man kann eine „Gemischte Zahl“ auch als „unechten

Gruppen, Ringe, Moduln 2.?. Ist H ein Normalteiler

Eine Kugel mit Radius R trage gleichm¨aßig auf der Oberfl¨ache verteilt die Ladung Q und rotiere mit konstanter Winkelgeschwindigkeit.. Bestimmen Sie die dadurch erzeugte

Es dürfen nur drei gleiche Zeichen III = 3

Untersuchungen über eine Immunität gegen Mikrofilarien der Art Dipetalonema viteae bei Meriones libyeus und beim Hamster.. Serologische Untersuchungen an mit Dipetalonema

Kosten CHF 120.– pro Person/CHF 200.– pro Paar Erkundigen Sie sich bei Ihrer Krankenversicherung nach einer allfälligen Kostenbeteiligung. Information

Könnte man das ohne Benutzung des Struktursatzes zeigen, dann wäre die Existenzaussage in Teil (b) des Struktursatzes eine direkte Konsequenz aus Satz 1.5.5, denn endlich

Zur Energiewandlung wird der photoelektrische Effekt von Solarzellen ausgenutzt, die zu so genannten Solarmodulen verbunden werden.. Die erzeugte Elektrizität kann direkt genutzt