Lernpfad Know-How-Computer/KHC Programmieraufgaben Teil 2: Unterschied zwischen den Versionen
KKeine Bearbeitungszusammenfassung Markierung: Quelltext-Bearbeitung 2017 |
KKeine Bearbeitungszusammenfassung Markierung: Quelltext-Bearbeitung 2017 |
||
| Zeile 84: | Zeile 84: | ||
|2=Lösung in Maschinensprache anzeigen|3=Lösung in Maschinensprache verstecken}} | |2=Lösung in Maschinensprache anzeigen|3=Lösung in Maschinensprache verstecken}} | ||
--> | --> | ||
{{Box | |||
|1=7. Aufgabe „Kleiner Gauß 1 + 2 + 3 + ... + n = ?” | |||
|2=Berechne die Summe der natürlichen Zahlen von 1 bis n, also 1+2+3+...+n. | |||
; Vor dem Programmstart steht | |||
: in Speicherzelle 23 ein beliebiger Wert n, z.B. der Wert 4. | |||
; Nach dem Programmende steht | |||
: in Speicherzelle 24 die Summe der natürlichen Zahlen von 1 bis 4, im Beispiel also der Wert 1+2+3+4 = 10. | |||
Das Programm heißt „Kleiner Gauß”, weil der berühmte Mathematiker Carl Friedrich Gauß einer Anekdote nach in der Schule schon als kleiner Junge die Summe der natürlichen Zahlen von 1 bis 100 sehr schnell mithilfe einer Formel berechnete, die er selbst entdeckt hatte und die heute als „Gaußsche Summenformel” bekannt ist. | |||
|3=Üben}} | |||
{{Box | |||
|1=8. Aufgabe „Produkt x * y = ?” | |||
|2=Berechne das Produkt zweier Zahlen x und y. | |||
; Vor dem Programmstart steht | |||
: in Speicherzelle 23 ein beliebiger Wert x, z.B. der Wert 2, und <br>in Speicherzelle 24 ein beliebiger Wert y, z.B. der Wert 3. | |||
; Nach dem Programmende steht | |||
: in Speicherzelle 25 das Produkt x * y, im Beispiel also der Wert 2*3 = 6. | |||
|3=Üben}} | |||
{{Box | |||
|1=9. Aufgabe „Euklid ggT von x und y = ?” | |||
|2=Berechne den größten gemeinsamen Teiler zweier natürlicher Zahlen x und y, also den ggT von x und y. | |||
; Vor dem Programmstart steht | |||
: in Speicherzelle 27 eine beliebige natürliche Zahl x, z.B. der Wert 9 und <br>in Speicherzelle 28 eine beliebige natürliche Zahl y, z.B. der Wert 6. | |||
; Nach dem Programmende steht | |||
: Speicherzelle 29 der ggT von x und y, im Beispiel also der Wert 3. | |||
|3=Üben}} | |||
{{Lösung versteckt | |||
|1= Der ggT zweier natürlicher Zahlen x und y kann mit dem so genannten „Euklidischen Algorithmus“ berechnet werden:<br> | |||
„Euklid berechnete den größten gemeinsamen Teiler, indem er nach einem gemeinsamen „Maß“ für die Längen zweier Linien suchte. Dazu zog er wiederholt die kleinere der beiden Längen von der größeren ab. Dabei nutzt er aus, dass sich der größte gemeinsame Teiler zweier Zahlen (oder Längen) nicht ändert, wenn man die kleinere von der größeren abzieht.“ (siehe Wikipedia: https://de.wikipedia.org/wiki/Euklidischer_Algorithmus) | |||
|2=Tipp anzeigen|3=Tipp verstecken}} | |||
Hinweis: Im Javascript-Code khc-emulator.html kann die Anzahl der verfügbaren Hauptspeicherzellen ganz oben in der Variablen speicheranzahl verändert werden. Der Standardwert ist speicheranzahl = 25; kann aber bei umfangreicheren Programmen beliebig erhöht werden. Bei diesem ggT-Programm bietet sich z.B. der Wert speicheranzahl = 30 an. | |||
{{Fortsetzung| | {{Fortsetzung| | ||
Version vom 26. Mai 2025, 15:19 Uhr
Entscheide, ob der Wert der Variablen x kleiner ist als der Wert der Variablen y.
- Vor dem Programmstart steht
- in Speicherzelle 21 ein beliebiger Wert x, z.B. der Wert 5, und
in Speicherzelle 22 ein beliebiger Wert y, z.B. der Wert 7. - Nach dem Programmende steht
- in Speicherzelle 23 der Wert 1, wenn der ursprüngliche Wert von x kleiner als der ursprüngliche Wert von y war,
andernfalls steht in Speicherzelle 23 weiterhin der Initialisierungswert 0.
Berechne die Differenz zweier beliebiger natürlicher Zahlen x und y. Im Gegensatz zu Aufgabe 2 wird jetzt nicht mehr vorausgesetzt, dass y nicht größer als x sein darf. Das bedeutet, dass das Ergebnis nun auch negativ sein kann. Da im KHC negative Zahlen als Grunddatentypen nicht zugelassen sind, wird das Ergebnis in zwei Speicherzellen ausgegeben: die eine enthält den Betrag der Differenz und die andere das Vorzeichen des Ergebnisses, wobei der Wert 1 für ein negatives Ergebnis steht, der Wert 0 für ein nicht-negatives Ergebnis.
- Vor dem Programmstart steht
- in Speicherzelle 23 ein beliebiger Wert x, z.B. der Wert 3, und
in Speicherzelle 24 ein beliebiger Wert y, z.B. der Wert 5. - Nach dem Programmende steht
- in Speicherzelle 23 der Betrag der Differenz x - y, im Beispiel also der Wert 2,
in Speicherzelle 24 der Wert 1, wenn das Ergebnis negativ ist und der Wert 0, wenn dies nicht der Fall ist.
Da im vorliegenden Beispiel das Ergebnis 3 - 5 = -2, also negativ ist, steht in diesem Fall
in Speicherzelle 23 der Betrag 2 und
in Speicherzelle 23 der Wert 1 für das negative Vorzeichen
Berechne die Summe der natürlichen Zahlen von 1 bis n, also 1+2+3+...+n.
- Vor dem Programmstart steht
- in Speicherzelle 23 ein beliebiger Wert n, z.B. der Wert 4.
- Nach dem Programmende steht
- in Speicherzelle 24 die Summe der natürlichen Zahlen von 1 bis 4, im Beispiel also der Wert 1+2+3+4 = 10.
Berechne das Produkt zweier Zahlen x und y.
- Vor dem Programmstart steht
- in Speicherzelle 23 ein beliebiger Wert x, z.B. der Wert 2, und
in Speicherzelle 24 ein beliebiger Wert y, z.B. der Wert 3. - Nach dem Programmende steht
- in Speicherzelle 25 das Produkt x * y, im Beispiel also der Wert 2*3 = 6.
Berechne den größten gemeinsamen Teiler zweier natürlicher Zahlen x und y, also den ggT von x und y.
- Vor dem Programmstart steht
- in Speicherzelle 27 eine beliebige natürliche Zahl x, z.B. der Wert 9 und
in Speicherzelle 28 eine beliebige natürliche Zahl y, z.B. der Wert 6. - Nach dem Programmende steht
- Speicherzelle 29 der ggT von x und y, im Beispiel also der Wert 3.
Der ggT zweier natürlicher Zahlen x und y kann mit dem so genannten „Euklidischen Algorithmus“ berechnet werden:
Hinweis: Im Javascript-Code khc-emulator.html kann die Anzahl der verfügbaren Hauptspeicherzellen ganz oben in der Variablen speicheranzahl verändert werden. Der Standardwert ist speicheranzahl = 25; kann aber bei umfangreicheren Programmen beliebig erhöht werden. Bei diesem ggT-Programm bietet sich z.B. der Wert speicheranzahl = 30 an.
