SJ 21/22: Klasse 10a: Unterschied zwischen den Versionen

Aus MINT.lentner.net
Zur Navigation springen Zur Suche springen
Zeile 58: Zeile 58:
  
 
* Hausi: Schleife so ergänzen, dass die Anzahl der Durchläufe ausgegeben wird
 
* Hausi: Schleife so ergänzen, dass die Anzahl der Durchläufe ausgegeben wird
* [[CUBE.CODES: Schleifen mit while]]
+
* [[CUBE.CODES: Schleifen mit while Teil 2]]
 
* 11. Januar 2022: [[CUBE.CODES: Schleifen mit for]]
 
* 11. Januar 2022: [[CUBE.CODES: Schleifen mit for]]
 
* 14. Januar 2022: [[CUBE.CODES: Besondere (Rechen-)Ausdrücke]]
 
* 14. Januar 2022: [[CUBE.CODES: Besondere (Rechen-)Ausdrücke]]

Version vom 1. Februar 2022, 13:50 Uhr

Mathematisch-Naturwissenschaftlicher Zweig (zweistündig - IT Wahlpflichtfächergruppe I)
Bezeichnung in der SchulApp: IT_1/10a_1
>>> zurück zur Klassenübersicht

Ausgewählte Themenblöcke

  • Themenblock: CUBE.CODES zu den Lehrplanthemen ...
    • IT 2.6.1 Modellieren und Codieren von Algorithmen,
    • IT 2.8.1 Computergrafik und
    • IT 2.8.2 Computeranimation

Blog

x=1;
y=364;
ergebnis=y;
while(x<=10) 
  {
   UI.log(x + " mal " + y + " ist " + ergebnis); 
   x=x+1; 
   ergebnis=ergebnis+y;
  }
[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
  • 14.2: Teiler finden
  • 14.2: Primzahlen finden
//Siegerin Chiara
Teiler=1;
Zahl=999999751;
while(Teiler<=Zahl) 
 {
  if(Zahl%Teiler==0) UI.log(Teiler); 
  ++Teiler; 
 }
  • do-while-Schleife
do await CUBE.move(" R B L F "); while(!CUBE.isSolved()) 

28.1.22: Unendliche Reihen basteln und testen

for(n=1; n<=10; ++n) UI.log("1/"+n);

... ist eine witzige Folge von Zahlen, die immer kleiner werden.

[08:57:53] Program starting ...
[08:57:53] Program running ...
1/1
1/2
1/3
1/4
1/5
1/6
1/7
1/8
1/9
1/10
[08:57:53] Program finished successfully

Wir können die Ausdrücke nicht nur als Text ausgeben, sondern auch ausrechnen lassen. Dann bekommen wir halt die Ergebnisse dezimal:

for(n=1; n<=10; ++n) UI.log(1/n);

Ausgabe:

[08:59:54] Program starting ...
[08:59:55] Program running ...
1
0.5
0.3333333333333333
0.25
0.2
0.16666666666666666
0.14285714285714285
0.125
0.1111111111111111
0.1
[08:59:55] Program finished successfully

Wenn man die nun zusammenzählen würde, ...

Würde das Ergebnis immer mehr anwachsen (weil es ja immer mehr Zahlen werden, die dazugezählt werden) oder würde es über eine gewisse Schranke nie drübergehen (weil ja immer verschwindend kleinere Zahlen dazugezählt werden)? Probieren wir's aus!

summe=0;
for(n=1; n<=1000; ++n) 
  {
  	summe=summe+1/n; 
  	UI.log(summe);
  }

... ergibt die Ausgabe:

[08:52:31] Program starting ...
[08:52:31] Program running ...
1
1.5
1.8333333333333333
2.083333333333333
2.283333333333333
2.4499999999999997
2.5928571428571425
2.7178571428571425
2.8289682539682537
2.9289682539682538
...
...
(das geht jetzt 1000 Zeilen weiter ;-))
...
...
7.483469859549342
7.484470860550343
7.485470860550343
[08:52:32] Program finished successfully

Man kann die Obergrenze für n jetzt immer größer machen. Es spielt ja keine Rolle. Der PC rechnet ja, nicht wir! :-) Wir beobachten, dass die Zahlen immer langsamer anwachsen (wie vermutet), aber irgendwann klickt es über 8, viel viel später mal über 9, ... Eine eindeutige Tendenz auf Dauer ist aber nicht erkennbar. Irgendwann schmiert auch der Rechner aus Überlastung ab. Dann kann man das Programm nur noch extern abbrechen. Hm!

IT-technisch interessant:

Könnt Ihr aus dem, was wir gelernt haben (CUBE.CODES: Besondere (Rechen-)Ausdrücke), wieder einen Einzeiler machen?

summe=0; for(n=1; n<=1000; ++n) UI.log(summe+=1/n);

Elegant, aber schon a bisserl crazy!

Ist die Summe nun unendlich oder beschränkt?

Hier gibt's noch mehr interessanten Stoff

Nochmehrreihen.png