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

Bearbeiten

Das 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

Bearbeiten
nexprime()
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

Bearbeiten
nexprime()
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

Bearbeiten
nexprime()
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.

Die folgenden Bilder stammen von einem TI-89 Titanium: