PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [HELP]Kleine Fragen zu VBA und For...Next


Philipp
10.06.2002, 16:20
For I = 0 To 9
Text1 = ""
For J = 1 To 10
Text1 = Text1 & 10 * I + J & " " ' nächste Zahl an Zeichenfolge anfügen
Next J ' Zähler J hochzählen
ListBox1.AddItem(Text1)
Next I ' Zähler I hochzählen


das habe ich und habe diese Aufgaben dazu:

Aufgaben:
1. Ändere das Programm von Beispiel 4 so ab, dass es von den natürlichen Zahlen im Bereich von 1 bis 100
a) nur die geraden ausgibt.
b) nur die ausgibt, deren Zehnerziffer gerade ist.
c) nur die ausgibt, deren Zehner- und Einerziffer ungerade sind.
d) diese in umgekehrter Reihenfolge ausgibt.
e) alle ausgibt, nach jeder Zeile mit Zahlen aber eine Leerzeile einfügt.

2. Ersetze in den Programmen von Beispiel 1 und Beispiel 2 die For...Next - Anweisungen durch Schleifen mit Wiederholbedingung (while -Schleifen).



1a) habe ich. einfach Step 2 einfügen
1d) weiss ich auch einfach I und J vertauschen und dann Step -1
1e) habe ich auch!
bitte helft mir ein bisschen bei 1b, 1c und 2.

Auserdem würde ich gerne wissen was es damit auf sich hat:
Schleifen mit Wiederholbedingung und Schleifen mit Zählvariablen

philipp


Steup
10.06.2002, 23:16
also aufgabe 2 mache ich dir

i=0
j=0
while I <= 9
i=i+1
Text1 = ""
while J >= 10
j=j+1
Text1 = Text1 & 10 * I + J & " "
wend
ListBox1.AddItem(Text1)
wend


wenn nich dann weiss ich auch nicht... dann mussu weiter fragen

DarkTemplar
12.06.2002, 01:05
Hi!!

Keine Ahnung, aber könnte dir(Steup) womöglich ein Fehler unterlaufen sein? Rein theoretisch müßte in der innereren Schleife doch auch <=10 anstatt von >= 10 stehen?!!

Was die anderen Aufgaben angeht, so hast du(Philipp) ja selber gesagt, dass man zur Lösung der aufgabe 1a die Step 2 Ergänzung (Position hast du nicht genannt, aber du meintest doch sicher bei der 2.For-Schleife und hast sicher auch daran gedacht, dass diese Schleife dann auch nicht von 1 an beginnen darf, sondern erst von 2) einfügen muß.
Bei Aufgabe 1b ist das nun nichts anderes, bloß dass das Step 2 diesmal zur 1. for-Schleife hinzugefügt werden muß (dort kannst du den Startwert auf 0 lassen, wenn 0 bei euch zu den geraden Zahlen zählen sollte), anstatt zur 2.. Allerding mußt du unbedingt die obere Grenze von J auf 9 ändern, da sonst wieder ungerade Zehnerstellen auftauchen können (2*10 + 10 => 30)!

Aufgabe 1c löst du nun hingegen so:


For I = 1 To 9 Step 2 'Liefert nur ungerade Zahlen
Text1 = ""
For J = 1 To 9 Step 2 'liefert auch nur ungerade Zahlen
Text1 = Text1 & 10 * I + J & " "
Next J
ListBox1.AddItem(Text1)
Next I


Bei dieser Lösung ist allerdings die Null noch nicht einbezogen, da mir momentan nicht so recht klar ist, ob man die zu den geraden oder ungeraden Zahlen zählen kann!

Also dann,
hoffe ich konnte dir helfen!

Bye,
DarkTemplar

Steup
12.06.2002, 20:29
jo hast ja recht :( aber ich denke das hätte philipp auch so gemerkt

Philipp
12.06.2002, 21:06
danke an euch beiden :) den fehler hätte ich vllt. schon gemerkt, spätestens, wenn ichs selber nochmal geschrieben hätte.

philipp