TI-Basic: Programme und Tutorials: nextPrime
Erstellt von: | Item |
Schwierigkeitsgrad: | Anfänger |
Im folgenden Tutorial wird schrittweise erklärt, wie man auf seinen Taschenrechner ein Programm entwickeln kann, welches einem eine Primzahl ausgibt. Es setzt keine Programmiererfahrungen voraus, da jeder Schritt einzeln erklärt wird.
Das Tutorial kann im Prinzip auch direkt auf dem Taschenrechner programmiert werden, da es nicht sehr lange ist. Getestet wurde es auf dem Voyage 200, sowie auf dem TI-89 Titanium.
Funktionsweise des Programms
BearbeitenDas Ziel ist es, ein Programm zu schreiben, welches einem die folgende Primzahl einer eingegeben Zahl liefert.
Eingabezahl, z.B. 18 → (Programm geht alle Zahlen ab dieser Zahl durch (bis maximal 100000-Stellen)) → Ausgabezahl, z.B. 19
Das Programm ging nun in Einerschritten alle Zahlen durch, bis es zur Endzahl (eingabezahl+100000) oder zur nächsten Primzahl kommt. Der "ist-es-eine-Primzahl"-Schritt muss man allerdings nicht machen, da der Taschenrechner die Funktion isPrime() kennt, und deshalb automatisch weiss, ob es eine Primzahl ist oder nicht.
Grundstruktur
Bearbeitennexprime() Prgm Dialog Title "Nächste Primzahl ermitteln" Text "Hier die Ursprungszahl eingeben" EndDlog Disp "Nächstgelegene Primzahl" EndPrgm
- Dialog...EndDlog
- Öffnet eine Art "Pop-Up"-Fenster im Rechner.
- Title
- Setzt einen Titel über das zuvor geöffnete Fenster.
- Text
- Setzt einen Text in das Fenster. Er darf nicht zu lange sein, da sonst die Fehlermeldung "Dimension" kommt. Den Text zu trennen ist deshalb vorteilhaft.
- Disp
- Setzt, nachdem der Rechner das Programm durchging, ein Resultat
Variabeln
Bearbeitennexprime() Prgm Dialog Title "Nächste Primzahl ermitteln" Text "Hier die Ursprungszahl eingeben" Request "Zahl",n,0 EndDlog expr(n)→n Disp "Nächstgelegene Primzahl",erg EndPrgm
- Request
- Gibt ein "Textfeld" aus, welches man ausfüllen muss. Der Text bzw. die Zahl, welche man in dieses Textfeld schrieb, wird dann in der Variabel n gespeichert. Die 0 bedeutet, dass die Eingabe numerisch sein muss, also keine Buchstaben enthalten darf (→[alpha]-Taste wird blockiert).
- expr()
- Wandelt den eingegeben String in einen numerischen Term um. Dieser Vorgang ist in der Regel unumgänglich. Der Pfeil bedeutet, dass die Ausgabe aus expr(n) in der Variabel n gespeichert wird.
Das ,erg nach der Disp-Ausgabe, setzt das Ergebnis auf den Bildschirm. Die variabel erg wird im nächsten, und letzten Schritt, bestimmt.
Programmierung des eigentlichen Programms
Bearbeitennexprime() Prgm Dialog Title "Nächste Primzahl ermitteln" Text "Hier die Ursprungszahl eingeben" Request "Zahl",n,0 EndDlog expr(n)→n For i,1,100000 n+i→erg If isPrime(erg) Exit EndIf EndFor Disp "Nächstgelegene Primzahl",erg EndPrgm
- For...EndFor
- Eine Schleife, welche die Variabel i jeweils verändert. Die 1 ist die Startzahl, die 100000 die Endzahl. Die Variabel i wird in jedem Durchgang um 1 erhöht (es sei denn, man ändert das). Die Schleife wird nun so lange durchgeführt, bis die Zahl 10000 erreicht ist, oder sie durch einen anderen Befehl abgebrochen wird.
- If
- Auf Deutsch etwa: "sollte es so sein, dann mach das". Also sollte bei einem Durchgang das n+i eine Primzahl sein (isPrime()), dann Exit.
- Exit
- Bricht jeweils eine aktuelle Schleife ab, und geht zum nächsten Programmschritt. In diesem Falle geht er zur Disp-Ausgabe, welches die gefundene Primzahl ausgibt.