Die Denkspielmaschine
Die Denkspielmaschine Vom kreativen Umgang mit Computern | |||
---|---|---|---|
Sprache | deutsch | ||
Autor(en) | Peter Milger, Fritz Reidenbach | ||
Verlag | Athenäum | ||
Jahr | 1986 | ||
ISBN | ISBN 3-7610-8393-9 | ||
Neupreis | DM 28,- | ||
Datenträger | |||
Seitenzahl | 192 | ||
letzte Auflage | 1. Auflage 1986 | ||
Genre | Programmieren | ||
Information |
Beschreibung[Bearbeiten | Quelltext bearbeiten]
Die Denkspielmaschine ist ein locker geschriebenes Buch für den kreativen Umgang mit Computern. Der Leser wird ermutigt, Denkaufgaben selbst zu lösen. Gleichsam nebenbei erklären die Autoren Schritt für Schritt die Programmiersprache BASIC. Ein Buch für alle, die noch keinen Einstieg gefunden haben. Und für Computer-Freaks, die nach neuen Aufgaben suchen. Mit einem Anhang, in dem alle Zeichen, Begriffe, Befehle und Fehlermeldungen noch mal erläutert werden.
Inhaltsverzeichnis[Bearbeiten | Quelltext bearbeiten]
Ansichten ...................................... 7 Was ist ein Computer? ............................ 9 Sie können besser denken.......................... 11 Anschauung und Logik ........................... 13 Zahlen haben es in sich ........................ 19 RAM, ROM und RECHBOT ............................. 25 Mein Name ist A ................................ 27 Zeile für Zeile .................................. 31 Wenn ... dann ................................. 38 Dialog mit der Maschine ......................... 43 Numerierbare Adressen............................. 47 Schleifen, auch verschachtelt .................. 52 Mathematik anschaulich ........................... 60 Achill und die Schildkröte ....................... 65 Natur und Kapital .............................. 72 Erfolgserlebnisse................................. 76 1000 Tage rechnen .............................. 77 Programmierter Zufall .......................... 82 Lottozahlen .................................... 84 Die Kunst des Sortierens.......................... 88 Wörter sortieren ................................ 93 Können Computer denken? .......................... 98 Vokabeln abfragen .............................. 102 Wahr oder falsch ............................... 111 KI — Künstliche Intelligenz....................... 117 Koordinaten und Bildschirm ..................... 121 Das lernende Wesen ............................... 128 Ein Ökospiel ................................... 133 Reime aus dem Computer .......................... 143 Primzahlgenerator .............................. 148 Kurven............................................ 156 Zahlensysteme, Bits und Bytes .................. 164 Das MIU-Rätsel und die endlose Schleife .......... 173 To BASIC or not to BASIC ........................ 178 Anhang 1. Zeichenerklärung............................... 181 2. Abkürzungen, Begriffe und Befehle ........... 183 3. Fehlermeldungen ............................. 191
Leseprobe[Bearbeiten | Quelltext bearbeiten]
Seite 148, (Primzahlgenerator)
Zurück zu den Zahlen. Und zwar zu jenen, die von jeher als rätselhaft gelten. Die Primzahlen. Ihren geheimnisvollen Ruf verdanken sie der Tatsache, daß sie schwer errechenbar sind. Eine Formel zu ihrer Errechnung ist zwar schon immer gesucht, aber nie gefunden worden. Versuchen Sie es lieber nicht, wenn Ihnen Ihr Schlaf lieb ist. Die Schwierigkeit der Primzahl liegt in ihrem Wesen. Eine Primzahl ist eine ganze Zahl größer als 1, die keine anderen Faktoren (Teiler) enthält als sich selbst und eins. Die anderen ganzen Zahlen außer der 1 bezeichnet man als zerlegbar oder zusammengesetzt. Jede solche Zahl größer als eins kann nur auf eine einzige Art als Produkt von Primzahlen beschrieben werden.
Die ersten Primzahlen sind: 2, 3, 5, 7, 11, 13
Die ersten zusammengesetzten Zahlen: 2*2=4, 2*3=6, 2*2*2=8, 3*3=9, 2*5=10, 2*2*3=12
Man sieht also: Die Primzahlen sind keineswegs rätselhaft, sondern genau definiert. Schon Euklid hat elegant bewiesen, daß es unendliche viele Primzahlen gibt. Viele andere Vermutungen über Primzahlen sind in der Zwischenzeit bewiesen, andere noch nicht. Im Prinzip gibt es nur ein Verfahren, herauszufinden, ob eine Zahl eine Primzahl ist oder nicht. Man muß teilen. Ohne Rechenmaschine war das bei großen Zahlen zeitraubend. Mit dem Computer geht es schneller. Versuchen Sie es bitte.
5 INPUT "UNGERADE ZAHL";X 10 Y=1 15 Y=Y+2 20 IF Y*Y > X THEN 35 25 IF X/Y = INT(X/Y) THEN 40 30 GOTO 15 35 PRINT "JA": GOTO 5 40 PRINT "NEIN":GOTO 5
- 5 Klar, daß man nur ungerade Zahlen eingibt, denn gerade Zahlen sind ja in keinem Fall Primzahlen, da sie mindestens durch 2 teilbar sind.
- 10 ... 15 Damit ist auch klar, daß man nur durch ungerade Zahlen teilen muß. In der anschließenden Schleife untersuchen wir, ob die Zahl ohne Rest durch die ungeraden Zahlen teilbar ist.
- 20 Wenn dabei Y*Y größer als die zu untersuchende Zahl X wird, also bis dahin kein Teiler ohne Rest gefunden wurde, handelt es sich um eine Primzahl. Würde ein Faktor größer als die Wurzel von X, müßte der zweite kleiner als dieser Faktor sein. Durch diese kleineren (ungeraden) Zahlen haben wir aber bereits geteilt.
- 25 Wenn X/Y eine ganze Zahl ist, also X durch Y ohne Rest teilbar ist, dann ist X keine Primzahl (für Y ungleich 1 und X). Um die Teilbarkeit ohne Rest zu überprüfen, eignet sich besonders die INT-Anweisung, Sie schneidet von einer Zahl die Dezimalstellen ab. INT(X/Y) ergibt das Ergebnis von X/Y ohne Rest. Wenn X/Y das gleiche Ergebnis liefert wie INT(X/Y), ist X durch Y ohne Rest teilbar.
Um Primzahlen zu erzeugen, müssen alle ungeraden Zahlen überprüft werden, etwa so:
10 X=1:PRINT 2; 20 X=X+2 21 Y=Y+2: IF Y*Y > X THEN 24 22 D=X/Y: IF D=INT(D) THEN 20 23 GOTO 21 24 PRINT X;:Y=1: GOTO 20
- 10 ... 20 Wir erzeugen die ungeraden Zahlen und überprüfen sie wie oben. Besonders schnell ist das Verfahren nicht. Auf dem Commodore 64 braucht man mehr als 6 Minuten, um die Primzahlen bis 5000 zu erzeugen. Es geht schneller.
- In Zeile 22 teilen wir auch durch die Zahlen 9, 15, 21 usw. Dies ist unnötig, weil wir ja schon durch 3 geteilt haben. Eigentlich brauchen nur durch die Primzahlen selbst zu teilen, weil alle teilbaren Zahlen Produkte von Primzahlen sind. Ein Beispiel:
5 INPUT "PRIMZAHLEN BIS";P 10 DIM F(7500) 15 PRINT 2;:F(1)=3 20 FOR X=3 TO P STEP 2 21 Y=Y+1: IF F(Y)*F(Y) > X THEN 24 22 D=X/F(Y): IF D=INT(D) THEN 25 23 GOTO 21 24 A=A+l: F(A)=X: PRINT X; 25 Y=0: NEXT X
In Zeile 24 werden die Primzahlen gespeichert, allerdings ist dies nur bis ca. 7500 möglich (bzw. Dimensionierungsgrenze). Das entspricht der theoretischen Möglichkeit von P=7500² = 5625000. Schneller als mit dem vorhergehenden Programm werden die Primzahlen erst bei größeren Zahlen ausgegeben.
Meinung[Bearbeiten | Quelltext bearbeiten]
Worf: "Das Buch macht anhand von vielen interessanten Beispielen Lust auf Programmieren. Vorkenntnisse bedarf es keiner, alle Beispiele sind in BASIC programmiert."