CUBE.CODES: Schleifen mit while Teil 1: Unterschied zwischen den Versionen
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 16: | Zeile 16: | ||
[14:02:19] Program finished successfully | [14:02:19] Program finished successfully | ||
− | Wollen wir die Malrechnung mit größeren '''faktoren1''' (z.B. ... bis faktor1=10) wiederholen, schreiben wir einfach ... | + | Wollen wir die Malrechnung mit größeren '''faktoren1''' (z.B. ... bis faktor1=10) wiederholen, schreiben wir einfach '''while(faktor1<=10)''' vor den Ausgabebefehl. Allerdings müssen wir nach jeder Ausgabe '''faktor1''' auch noch größer machen! Insgesamt ... |
− | + | '''Programm 2: Malaufgabe wiederholen''' | |
faktor1 = 5; | faktor1 = 5; | ||
Zeile 41: | Zeile 41: | ||
Wir kürzen faktor1 und faktor2 auch noch etwas ab, verbessern die Ausgabe, lassen das Ganze von 1 bis 10 laufen und schon haben wir ein nettes Programm, das ein Einmaleins ausgibt: | Wir kürzen faktor1 und faktor2 auch noch etwas ab, verbessern die Ausgabe, lassen das Ganze von 1 bis 10 laufen und schon haben wir ein nettes Programm, das ein Einmaleins ausgibt: | ||
+ | |||
+ | '''Programm 3: Einmaleins ausgeben''' | ||
x=1; | x=1; | ||
Zeile 51: | Zeile 53: | ||
ergebnis=x*y; | ergebnis=x*y; | ||
} | } | ||
+ | |||
+ | ... bewirkt ... | ||
[08:37:01] Program starting ... | [08:37:01] Program starting ... | ||
Zeile 66: | Zeile 70: | ||
[08:37:01] Program finished successfully | [08:37:01] Program finished successfully | ||
− | + | == Teiler einer Zahl finden == | |
− | + | Statt der Vielfachen einer Zahl, können wir durch Wiederholung auch die Teiler einer Zahl finden - was händisch sehr mühsam ist... | |
+ | |||
+ | Teiler=1; | ||
+ | Zahl=12; | ||
+ | while(Teiler<=Zahl) | ||
+ | { | ||
+ | if(Zahl%Teiler==0) UI.log(Teiler); | ||
+ | ++Teiler; | ||
+ | } | ||
+ | |||
+ | liefert die Teiler... | ||
+ | |||
+ | [08:27:03] Program starting ... | ||
+ | [08:27:04] Program running ... | ||
+ | 1 | ||
+ | 2 | ||
+ | 3 | ||
+ | 4 | ||
+ | 6 | ||
+ | 12 | ||
+ | [08:27:04] Program finished successfully | ||
+ | |||
+ | Große Zahlen haben "in der Regel" auch mehr Teiler. Aber manchmal gibt es riesige Zahlen, die trotzdem nur die "nötigsten Teiler" haben, nämlich die 1 und sich selbst! Sie sind also nicht in kleinere Faktoren zerlegbar. In der 5. Klasse haben wir sie Primzahlen genannt. Sie mit Kopfrechnen zu finden, war ganz schön knackig! Wer findet die größte Primzahl mit CUBE.CODES?! | ||
//Siegerin Chiara | //Siegerin Chiara | ||
Zeile 78: | Zeile 104: | ||
} | } | ||
− | + | Probiert mal die um 1 kleinere Zahl aus ;-) | |
− | |||
− | |||
− | |||
− |
Aktuelle Version vom 8. Februar 2022, 08:33 Uhr
Die Möglichkeiten einer Tabellenkalkulation lassen wir spätestens dann hinter uns, wenn wir beliebige Wiederholungen von Berechnungen formulieren können. Z.B. Ist die Ausgabe eine Einmaleins nichts anderes als die Wiederholung einer Malaufgabe.
Einfache Befehle wiederholen
Programm 1: Einfache Malaufgabe
faktor1 = 5; faktor2 = 23; UI.log(faktor1*faktor2);
Bewirkt die Ausgabe:
[14:02:18] Program starting ... [14:02:19] Program running ... 115 [14:02:19] Program finished successfully
Wollen wir die Malrechnung mit größeren faktoren1 (z.B. ... bis faktor1=10) wiederholen, schreiben wir einfach while(faktor1<=10) vor den Ausgabebefehl. Allerdings müssen wir nach jeder Ausgabe faktor1 auch noch größer machen! Insgesamt ...
Programm 2: Malaufgabe wiederholen
faktor1 = 5; faktor2 = 23; while(faktor1<=10) { UI.log(faktor1*faktor2); faktor1 = faktor1 + 1; }
Bewirkt die Ausgabe:
[14:07:13] Program starting ... [14:07:13] Program running ... 115 138 161 184 207 230 [14:07:13] Program finished successfully
Wir kürzen faktor1 und faktor2 auch noch etwas ab, verbessern die Ausgabe, lassen das Ganze von 1 bis 10 laufen und schon haben wir ein nettes Programm, das ein Einmaleins ausgibt:
Programm 3: Einmaleins ausgeben
x=1; y=364; ergebnis=x*y; while(x<=10) { UI.log(x + " mal " + y + " ist " + ergebnis); x=x+1; ergebnis=x*y; }
... bewirkt ...
[08:37:01] Program starting ... [08:37:01] Program running ... 1 mal 364 ist 364 2 mal 364 ist 728 3 mal 364 ist 1092 4 mal 364 ist 1456 5 mal 364 ist 1820 6 mal 364 ist 2184 7 mal 364 ist 2548 8 mal 364 ist 2912 9 mal 364 ist 3276 10 mal 364 ist 3640 [08:37:01] Program finished successfully
Teiler einer Zahl finden
Statt der Vielfachen einer Zahl, können wir durch Wiederholung auch die Teiler einer Zahl finden - was händisch sehr mühsam ist...
Teiler=1; Zahl=12; while(Teiler<=Zahl) { if(Zahl%Teiler==0) UI.log(Teiler); ++Teiler; }
liefert die Teiler...
[08:27:03] Program starting ... [08:27:04] Program running ... 1 2 3 4 6 12 [08:27:04] Program finished successfully
Große Zahlen haben "in der Regel" auch mehr Teiler. Aber manchmal gibt es riesige Zahlen, die trotzdem nur die "nötigsten Teiler" haben, nämlich die 1 und sich selbst! Sie sind also nicht in kleinere Faktoren zerlegbar. In der 5. Klasse haben wir sie Primzahlen genannt. Sie mit Kopfrechnen zu finden, war ganz schön knackig! Wer findet die größte Primzahl mit CUBE.CODES?!
//Siegerin Chiara Teiler=1; Zahl=999999751; while(Teiler<=Zahl) { if(Zahl%Teiler==0) UI.log(Teiler); ++Teiler; }
Probiert mal die um 1 kleinere Zahl aus ;-)