<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DubbelBlog &#187; TI-BASIC</title>
	<atom:link href="http://www.haukeluebbers.de/category/programmierung/ti-basic/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.haukeluebbers.de</link>
	<description>Webworker.</description>
	<lastBuildDate>Sun, 25 Jul 2010 16:38:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Chatbot &#8220;BILL&#8221; fertiggestellt</title>
		<link>http://www.haukeluebbers.de/2009/03/chatbot-bill-fertiggestellt/</link>
		<comments>http://www.haukeluebbers.de/2009/03/chatbot-bill-fertiggestellt/#comments</comments>
		<pubDate>Sun, 29 Mar 2009 09:53:58 +0000</pubDate>
		<dc:creator>Dubbel</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Künstliche Intelligenz]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[TI-BASIC]]></category>
		<category><![CDATA[2009]]></category>
		<category><![CDATA[basic]]></category>
		<category><![CDATA[challenge]]></category>
		<category><![CDATA[chatterbox]]></category>
		<category><![CDATA[intel]]></category>
		<category><![CDATA[leibniz]]></category>
		<category><![CDATA[oop]]></category>
		<category><![CDATA[system]]></category>
		<category><![CDATA[ti]]></category>

		<guid isPermaLink="false">http://www.haukeluebbers.de/?p=147</guid>
		<description><![CDATA[Nun ja, was heißt fertig: So ein Projekt kann man vermutlich nie fertigstellen. Doch nun ist die Version 0.4 unter www.chatbot.haukeluebbers.de erreichbar. Natürlich noch schnell vor dem Einsendeschluss bei der Chatterbox Challenge angemeldet, und ab nach Italien, wo ich eine Woche im Rahmen eines Schüleraustausches weilte.Mehr als diese Ankündigung sollte dieser Artikel eigentlich nicht werden, [...]]]></description>
			<content:encoded><![CDATA[<p>Nun ja, was heißt fertig: So ein Projekt kann man vermutlich nie fertigstellen. Doch nun ist die Version 0.4 unter <a href="http://chatbot.haukeluebbers.de" target="_blank">www.chatbot.haukeluebbers.de</a> erreichbar. Natürlich noch schnell vor dem Einsendeschluss bei der <a href="http://www.chatterboxchallenge.com/" target="_blank">Chatterbox Challenge</a> angemeldet, und ab nach Italien, wo ich eine Woche im Rahmen eines Schüleraustausches weilte.<span id="more-147"></span>Mehr als diese Ankündigung sollte dieser Artikel eigentlich nicht werden, doch vielleicht fragen sich ja einige, was ich nun mache:</p>
<p>Meine To-Do Liste für die Osterferien sieht so aus:</p>
<p>1. Ein kleines PHP-OOP-System basteln, mit dem ich z.B. MySQL-Befehle und Designangaben effektiver programmieren kann</p>
<p>2. Endlich die Version 2.0 des TI-BASIC Tutorials beginnen. Mein Ziel ist es diese bis zum Ende der Ferien in zwei Wochen fertig gestellt zu haben.</p>
<p>Ansonsten nehme ich mit einigen Freunden an der <a href="http://www.intel-leibniz-challenge.de/" target="_blank">Intel-Leibniz-Challenge</a> (schon wieder so ein Wettbewerb -.- ^^) 2009 teil, bei der wir (wie immer) die Aufgaben rund um Programmierung und Physik wie immer am letzten Tag bearbeiten. <img src='http://www.haukeluebbers.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.haukeluebbers.de/2009/03/chatbot-bill-fertiggestellt/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Pingpong Multiplayer für TI-TRs</title>
		<link>http://www.haukeluebbers.de/2008/12/pingpong-multiplayer-fur-ti-trs/</link>
		<comments>http://www.haukeluebbers.de/2008/12/pingpong-multiplayer-fur-ti-trs/#comments</comments>
		<pubDate>Mon, 08 Dec 2008 17:23:20 +0000</pubDate>
		<dc:creator>Dubbel</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[TI-BASIC]]></category>
		<category><![CDATA[83plus]]></category>
		<category><![CDATA[84]]></category>
		<category><![CDATA[basic]]></category>
		<category><![CDATA[multiplayer]]></category>
		<category><![CDATA[pingpong]]></category>
		<category><![CDATA[plus]]></category>
		<category><![CDATA[ti]]></category>

		<guid isPermaLink="false">http://blog.haukeluebbers.de/?p=29</guid>
		<description><![CDATA[Heute hab ich ein simples kleines Spiel programmiert. Hier der Quellcode plus die Erklärungen in [...] Heute war in beim BurgerKing essen. Und während ich geduldig auf meinen Hambuger + 2 Cheeseburger + 0,4 Cola wartete kam ich auf die Idee ein kleines Spiel für den TR zu programmieren. Um es zu spielen benötigt man [...]]]></description>
			<content:encoded><![CDATA[<p>Heute hab ich ein simples kleines Spiel programmiert. Hier der Quellcode plus die Erklärungen in [...]<br />
<span id="more-29"></span><br />
Heute war in beim BurgerKing essen. Und während ich geduldig auf meinen Hambuger + 2 Cheeseburger + 0,4 Cola wartete kam ich auf die Idee ein kleines Spiel für den TR zu programmieren.</p>
<p>Um es zu spielen benötigt man 2 Personen. Man legt den Taschenrechner zwischen sich.<br />
Der eine kontrolliert seine Wand mit der 9 und 3, der andere mit der 7 und der 1.</p>
<pre class="brush: delphi;">PROGRAM:PINGO
ClrHome
Disp &quot;Pingo&quot;
Disp &quot;CODE BY DUBBEL&quot;
ClrHome
[hier evt. noch weitere Informationen und Anleitung ausgeben lassen]
0-&gt;A [Geschwindigkeit mit der sich der Ball nach oben/unten bewegt]
1-&gt;B [Geschwindigkeit mit der sich der Ball nach rechts/links bewegt]
5-&gt;C [Position des Balles auf der Y-Achse]
8-&gt;D [Position des Balles auf der X-Achse]
4-&gt;E [Position der oberen Wand auf der Y-Achse]
5-&gt;F [Position der unteren Wand auf der Y-Achse]
Pause

Lbl A
If (B=1):Then [wenn der rechte Spieler dran ist (Ball bewegt sich nach rechts)]
If (G=74):Then [wenn die 9 gedrückt wurde]
If (E &gt; 1):Then [Kollisionsabfrage]
E-1-&gt;E:F-1-&gt;F
End
End
If (G=94):Then [wenn die 3 gedrückt wurde]
If (F &lt; 8):Then [Kollisionsabfrage]
E+1-&gt;E:F+1-&gt;F
End
End
End
If (B=-1):Then [Wiederholung nur eben für die beiden anderen Tasten]
If (G=72):Then
If (E&gt;2):Then
E-1-&gt;E:F-1-&gt;F
End
End
If (G=92):Then
If (F&lt;7):Then
E+1-&gt;E:F+1-&gt;F
End
End
End
ClrHome
Output(E,16,&quot;O&quot;) [Rechte Wände]
Output(F,16,&quot;O&quot;)
Output(E,1,&quot;O&quot;)
Output(F,1,&quot;O&quot;)
Output(1,1,&quot;----------------&quot;) [Begrenzung oben/unten]
Output(8,1,&quot;----------------&quot;)
If (C=E and (D=15 or D=2)):Then
B*-1-&gt;B:1-&gt;A [kollision mit Wänden]
End
If (C=F and (D=15 or D=2)):Then
B*-1-&gt;B:1-&gt;A
End
If (C=2 or C=7):Then
A*-1-&gt;A [Kollision mit Wänden oben/unten]
[A*-1-&gt;A stand hier nocheinmal - muss entfernt werden]
End

If (D=16 or D=1):Then
Output(4,4,&quot;GAME OVER&quot;)
If(D=16):Then
Output(6,7,&quot;LINKS&quot;)
Else
Output(6,6,&quot;RECHTS&quot;)
End
Output(7,3,&quot;HAT GEWONNEN&quot;)
PAUSE
prgmPINGO
End
Output(1,D,&quot;I&quot;)
Output(1,D,&quot;I&quot;)
Output(C,D,&quot;+&quot;)
C+A-&gt;C:D+B-&gt;D [Update Positionen - hier vor vorher ein Fehler]
Output(C,D,&quot;*&quot;)
getKey-&gt;G [Tastendrücke werden abgefangen]
Goto A</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.haukeluebbers.de/2008/12/pingpong-multiplayer-fur-ti-trs/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>TI BASIC Tutorial 4</title>
		<link>http://www.haukeluebbers.de/2008/12/ti-basic-tutorial-4/</link>
		<comments>http://www.haukeluebbers.de/2008/12/ti-basic-tutorial-4/#comments</comments>
		<pubDate>Mon, 08 Dec 2008 17:16:37 +0000</pubDate>
		<dc:creator>Dubbel</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[TI-BASIC]]></category>
		<category><![CDATA[+]]></category>
		<category><![CDATA[basic]]></category>
		<category><![CDATA[lernen]]></category>
		<category><![CDATA[plus]]></category>
		<category><![CDATA[programmieren]]></category>
		<category><![CDATA[spiel]]></category>
		<category><![CDATA[ti]]></category>
		<category><![CDATA[ti84]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://blog.haukeluebbers.de/?p=20</guid>
		<description><![CDATA[Nach langem Warten und unzähligen verzweifelten Fanmails [/ironie] hier nun der 4 und letzte Teil des Tutorials. Laut meinem Plan müsste nun die erste Eingabe kommen (Ich habe allerdings bemerkt, dass auch schon im letzten Tutorial ein Input reingerutscht ist, hab ich wohl übersehen ^^). In der Theorie sieht die so aus: Input &#34;Eingabe:&#34;,A In [...]]]></description>
			<content:encoded><![CDATA[<p>Nach langem Warten und unzähligen verzweifelten Fanmails [/ironie] hier nun der 4 und letzte Teil des Tutorials.<br />
<span id="more-20"></span><br />
Laut meinem Plan müsste nun die erste Eingabe kommen (Ich habe allerdings bemerkt, dass auch schon im letzten Tutorial ein Input reingerutscht ist, hab ich wohl übersehen ^^).</p>
<p>In der Theorie sieht die so aus:</p>
<pre class="brush: delphi;">Input &quot;Eingabe:&quot;,A</pre>
<p>In diesem Beispiel würde nun das, was der User eingibt, in der Variable A gespeichert. Mit dieser Variable kann man dann machen was man will, zum Beispiel sie ausgeben.</p>
<p>Wir werden nun mal einen kleinen Additionierer schreiben, also ein Taschenrechner, der nur Plus rechnen kann.</p>
<pre class="brush: delphi;">
ClrHome
Disp &quot;ADDITIONIERER&quot;
Input &quot;VARIABLE A:&quot;,A
Input &quot;VARIABLE B:&quot;,B
Disp &quot;SUMME:&quot;
Disp A+B</pre>
<p>Doch hier muss der User seine Eingabe ja immer mit ENTER bestätigen: Für ein actionreiches Spiel reicht es also nicht.</p>
<p>Dafür gibts die Funktion</p>
<pre class="brush: delphi;">getKey-&gt;A</pre>
<p>(A ist natürlich nur eine Variable)<br />
Wenn wir nun schreiben:</p>
<pre class="brush: delphi;">Lbl A:
getKey-&gt;A
If (A &gt; 0)
Disp A
Goto A</pre>
<p>Die if-Verzweigung muss hier rein, da sonst die ganze Zeit 0 ausgegeben würde, denn wenn keine Taste gedrückt wurde, ist der Wert von getKey 0.</p>
<p>Wenn man nun verschiedene Tasten drückt kann man die Zahlencodes für sie sehen.<br />
Die Pfeiltasten haben z.B. für oben 25, für rechts 26, für links 24 und für unten 34. 34?<br />
Ja richtig gelesen, denn der Code für die Tasten berechnet sich folgendermaßen:<br />
Die erste Zahl ist die Zeile und die zweite ist die Spalte in der die Taste steht.<br />
Y= ist ja die erste Taste ganz oben. Logischerweise hat sie den Code 11. WINDOW 12, 2nd 21 usw.<br />
Da die Unten-Pfeiltaste zur dritten Zeile gerechnet wird, hat sie den Wert 34.<br />
Diese Eingabemöglichkeit wird auch in dem Spiel von mir ganz unten verwendet.</p>
<p>Noch was zum Schluss:<br />
Wenn ihr, während ihr im Editor seid, auf<br />
PRGM->EXEC geht, eins auswählt und ENTER drückt, wird dieses Programm dann gestartet, wenn euer Programm bei diesem Befehl (prgmNAMEDESPRGMS) ankommt. Natürlich nur wenn dieses Programm auf dem Taschenrechner auch existiert.</p>
<p>Ganz zum Schluss veröffentliche ich hier nochmal den Quellcode für eines meiner Spiele: ein kleiner Snake Klon, mit KI und ohne Schwanz:</p>
<pre class="brush: delphi;">ClrHome
Output(3,5,&quot;SNAKE&quot;)
Output(4,3,&quot;PRESS ENTER&quot;)
Output(8,2,&quot;CODE BY DUBBEL&quot;)
6-&gt;X
5-&gt;Y
5-&gt;B
7-&gt;D
15-&gt;E
0-&gt;P
7-&gt;N
5-&gt;O
P ause
Output(1,1,&quot;++++++++++++++++&quot;)
Output(2,1,&quot;+              +&quot;)
Output(3,1,&quot;+              +&quot;)
Output(4,1,&quot;+              +&quot;)
Output(5,1,&quot;+              +&quot;)
Output(6,1,&quot;+              +&quot;)
Output(7,1,&quot;+              +&quot;)
Output(8,1,&quot;++++++++++++++++&quot;)
Output(N,O,&quot;*&quot;)

Lbl A:
0-&gt;C
0-&gt;G
getKey-&gt;A
If(A=26)
Then
Output(Y,X,&quot; &quot;)
1-&gt;B
X+1-&gt;X
1-&gt;C
End
If(A=24)
Then
Output(Y,X,&quot; &quot;)
2-&gt;B
X-1-&gt;X
1-&gt;C
End
If(A=25)
Then
Output(Y,X,&quot; &quot;)
3-&gt;B
Y-1-&gt;Y
1-&gt;C
End
If(A=34)
Then
Output(Y,X,&quot; &quot;)
4-&gt;B
Y+1-&gt;Y
1-&gt;C
End

If(C=0):Then
Output(Y,X, &quot; &quot;)

If(B=1):Then
X+1-&gt;X:End
If(B=2):Then
X-1-&gt;X:End
If(B=3):Then
Y-1-&gt;Y:End
If(B=4):Then
Y+1-&gt;Y:End
End

Output(D,E,&quot; &quot;)
If(Q=1):Then
If(Y&gt;D):Then
D +1-&gt;D:1-&gt;G:End
If(Y&gt;D):Then
D -1-&gt;D:1-&gt;G:End
If (G=0):Then
If(X&gt;E):Then
E+1-&gt;E:End
If(X&lt;E):Then
E-1-&gt;E:End
End:0-&gt;Q
Else
1-&gt;Q:End
Output(D,E,&quot;+&quot;)
If((Y=D and X=E) or (Y&lt;2) or (Y&gt;7) or (X&lt;2) or (x&gt;15)):Then
ClrHome
Output(1,5,&quot;GAME OVER!&quot;)
Output(2,9,P)
Output(3,7,&quot;PUNKTE&quot;);
Output(4,4,&quot;PRESS ENTER&quot;)
Output(6,5,&quot;VISIT:&quot;)
Output(7,7,&quot;WWW.&quot;)
Output(8,1,&quot;HAUKELUEBBERS.DE&quot;)
Pause
prgmSNAKE
Else
Output(Y,X,&quot;O&quot;)
End
P +1-&gt;P
If(N=Y and 0=X):Then
P +100-&gt;P
randInt(2,7)-&gt;N
randInt(2,14)-&gt;O
End
Output(N,O,&quot;*&quot;)

Output(1,7,P)
Wurzel_aus(113.1337^5)
453.45/45.5^2
66/66^5*3
Goto A</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.haukeluebbers.de/2008/12/ti-basic-tutorial-4/feed/</wfw:commentRss>
		<slash:comments>41</slash:comments>
		</item>
		<item>
		<title>TI-BASIC &#8211; mal sinnvoll</title>
		<link>http://www.haukeluebbers.de/2008/12/ti-basic-mal-sinnvoll/</link>
		<comments>http://www.haukeluebbers.de/2008/12/ti-basic-mal-sinnvoll/#comments</comments>
		<pubDate>Fri, 05 Dec 2008 15:39:37 +0000</pubDate>
		<dc:creator>Dubbel</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[TI-BASIC]]></category>
		<category><![CDATA[logarithmus]]></category>
		<category><![CDATA[mathe]]></category>
		<category><![CDATA[matthias]]></category>
		<category><![CDATA[mergner]]></category>

		<guid isPermaLink="false">http://blog.haukeluebbers.de/?p=14</guid>
		<description><![CDATA[Wir nehmen in Mathe grade den Logarithmus durch, und da kam mir die Idee ein Programm zu schreiben, dass die ganze Sacher für mich etwas erleichtert&#8230; &#8230;es rechnet nämlich den Exponenten aus, wenn man nur eine Zahl und das Endergebnis hat: Also zB 2^x = 16. Mein Programm setzt nun erstmal für X 0 ein, [...]]]></description>
			<content:encoded><![CDATA[<p>Wir nehmen in Mathe grade den Logarithmus durch, und da kam mir die Idee ein Programm zu schreiben, dass die ganze Sacher für mich etwas erleichtert&#8230;<span id="more-14"></span><br />
&#8230;es rechnet nämlich den Exponenten aus, wenn man nur eine Zahl und das Endergebnis hat: Also zB 2^x = 16.<br />
Mein Programm setzt nun erstmal für X 0 ein, und überprüft, ob das Ergebnis von 2^x mit dem vom User eingegebenen Ergebnis übereinstimmt. Wenn es nicht übereinstimmt wird x um 0.1 oder 0.01, wobei die Berechnung bei 0.01 natürlich länger dauert, aber auch genauere Ergebnisse liefert, erhöht, und wieder in die Formel 2^x eingesetzt. Das ganze wiederholt sich so auf, bis der gewünschte Wert gefunden wurde, oder bis das Ergebnis von 2^x größer ist, als das Endergebnis. Dann wird &#8220;X ist kleiner als&#8221; und dann x ausgegeben.<br />
Vielleicht werde ich in einer Version 1.1 auch noch eine genaue Möglichkeit einbauen, nämlich das x, wenn das Ergebnis der Formel größer ist, um 0.001 zurückgesetzt wird. Mal sehen&#8230;</p>
<p>Hier nun erstmal der Programmcode:</p>
<pre class="brush: delphi;">ClrHome
0-&gt;B
Input &quot;BASIS:&quot;,A
Input &quot;ERGEBNIS:&quot;,C
Disp &quot;BERECHNE...&quot;
A^B-&gt;B
While (C != [bzw. ist nicht gleich] D)
B+0.1-&gt;B
A^B-&gt;D
Output(6,1,D);
If(D&gt;C):Then
Disp &quot;X KLEINER ALS&quot;
Disp B
PAUSE
prgmMATHHELP
END [Ende der if Verzweigung]
END [Ende der While Schleife]
Disp &quot;Ergebnis:&quot;
Disp B </pre>
<p>EDIT: Einige Tage später hat uns unser damaliger Mathelehrer (<a title="Matthias Mergner" href="http://matthias-mergner.de/ " target="_blank">http://matthias-mergner.de/</a>) verraten, wie man das auch einfacher ausrechnen kann (log10 a / log10 b  = x) &#8211; Na Toll ^^</p>
]]></content:encoded>
			<wfw:commentRss>http://www.haukeluebbers.de/2008/12/ti-basic-mal-sinnvoll/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>TI BASIC Tutorial 3</title>
		<link>http://www.haukeluebbers.de/2008/12/ti-basic-tutorial-3/</link>
		<comments>http://www.haukeluebbers.de/2008/12/ti-basic-tutorial-3/#comments</comments>
		<pubDate>Fri, 05 Dec 2008 15:33:51 +0000</pubDate>
		<dc:creator>Dubbel</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[TI-BASIC]]></category>
		<category><![CDATA[lernen]]></category>
		<category><![CDATA[spiele]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://blog.haukeluebbers.de/?p=11</guid>
		<description><![CDATA[Hier das dritte Tutorial, in dem wir ein erstes relativ sinnvolles Programm coden Bisher können wir zwar Texte ausgeben, aber mehr auch nicht. Nun kommen wir zu den Variablen. Die kennst du ja wahrscheinlich schon aus dem Matheunterricht (wenn du nicht die ganze Zeit mit deinem TR rumspielst ): Variablen sind eine Art Minispeicherplätze für [...]]]></description>
			<content:encoded><![CDATA[<p>Hier das dritte Tutorial, in dem wir ein erstes relativ sinnvolles Programm coden <img src='http://www.haukeluebbers.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><span id="more-11"></span></p>
<p>Bisher können wir zwar Texte ausgeben, aber mehr auch nicht.</p>
<p>Nun kommen wir zu den Variablen.</p>
<p>Die kennst du ja wahrscheinlich schon aus dem Matheunterricht (wenn du nicht die ganze Zeit mit deinem TR rumspielst <img src='http://www.haukeluebbers.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ): Variablen sind eine Art Minispeicherplätze für Zahlen.</p>
<p>Zuerst müssen wir der Variable einen Namen geben. Leider kann man nicht mehrere Buchstaben aneinanderreihen, sondern muss Namen wie x,y oder a und b nehmen.</p>
<p>ACHTUNG: Wenn man größere Projekte programmiert, sollte man sich unbedingt die Bedeutungen der Variablen aufschreiben, da man sonst nach einem Wochenende nix mehr versteht!</p>
<p>Wie kann man denn nun den Variablen Zahlen zuweisen?</p>
<pre class="brush: delphi;">5-&gt;X
3-&gt;Y
X+Y-&gt;A</pre>
<p>A wäre in diesem Fall 8.</p>
<p>(Den Pfeil kann man schreiben, indem man die Taste STO-&gt; drückt)</p>
<p>Eine Variable ausgeben, ist auch nicht weiter schwer:</p>
<pre class="brush: delphi;">8-&gt;A
Output(1,1,A)
Disp A</pre>
<p>Zu beachten ist, dass Disp das Ergebnis am rechten Bildschirmrand anzeigt.</p>
<p>Doch wie kann man Variablen vom User einlesen lassen?</p>
<pre class="brush: delphi;">Input &quot;Variable:&quot;,A
Disp A</pre>
<p>Nun kann man jede Zahl eingeben und wieder auslesen lassen.</p>
<p>Zeit für ein kleines Experiment:</p>
<p>Rufe dieses Programm auf, und gebe dort z.B. 19 ein, und lass die Variable auslesen.</p>
<p>Schalte dann den TR aus.</p>
<p>Starte ihn erneut, ruf das Programm auf, und gebe jetzt A ein. Der Taschenrechner gibt wieder 19 aus. Er hat sich also die Zahl gemerkt, und behält sie auch ausgeschaltet.</p>
<p>Die if-Verzweigung</p>
<p>Zeit für ein kleines &#8220;Spiel&#8221; ^^:</p>
<pre class="brush: delphi;">Lbl A   (Der Sprungpunkt)
ClrHome       (Löscht alles auf dem Display)
randInt(1,9)-&gt;A  (A ist nun eine Zufallszahl zwischen 1 und 9)
randInt(1,9)-&gt;B
A+B-&gt;C       ( C ist nun die Summe von A und B)
Output(1,1,A)
Output(1,2,&quot;+&quot;)
Output(1,3,B)
Disp&quot;&quot;           (Muss ausgegeben werden, damit Input nicht die Rechnung überschreibt)
Input &quot;Ergebnis:&quot;,D  (D ist die Eingabe des Users)
IF (D=C)    (Wenn D den gleichen Wert wie C hat)
THEN    (Dann mache)
Disp &quot;Richtig!&quot;   (Richtig ausgeben)
END  (Wenn das nicht so ist (D nicht gleich C ist))
IF (C	≠ D) (Wenn C nicht gleich D ist)
THEN
Disp &quot;Falsch!&quot;  (Falsch ausgeben)
END   (Die if Schleife beenden)
PAUSE   (aus ENTER warten)
Goto A  (Wieder zum Anfang (Sprungpunkt A) gehen</pre>
<p>In diesem Code sind zwei neue Sachen:</p>
<p>- randInt</p>
<p>Zu finden mit 2nd + 0 und dann x bzw. R drücken. Dies ist der Katalog. Hier findet man alles, was der TR kann. Wenn man den Anfangsbuchstaben des benötigten Befehls drückt, gelangt man direkt zu ihm.</p>
<p>-  GOTO A:</p>
<p>Wenn man dieses Goto z.B. in Zeile 3 einbaut, und Lbl A: in Zeile 1 stehen hat, würde er den Befehl in Zeile 2 ewig wiederholen. Anstatt a kann man natürlich auch jeden anderen Buchstaben nehmen, und auch mehrere Gotos in ein Programm einbauen.</p>
<p>- IF (Bedingung):THEN:Tu dies und das:END</p>
<p>Wenn die Bedingung in den Klammern stimmt (das = Zeichen findet man bei 2nd + Math), wird die Aktion, die zwischen Then und End steht ausgeführt.</p>
<p>Wenn sie nicht wahr ist, passiert nix.</p>
<p>Wenn doch etwas passieren soll, wenn die Bedingung unwahr ist, dann hilft:</p>
<p>ELSE</p>
<p>Die Syntax sieht dann so aus:</p>
<pre class="brush: delphi;">: IF (Bedingung)
: THEN
: Tu irgendwas
: Else
: Tu irgendwas anderes
: END</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.haukeluebbers.de/2008/12/ti-basic-tutorial-3/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>TI BASIC Tutorial 2</title>
		<link>http://www.haukeluebbers.de/2008/12/ti-basic-tutorial-2/</link>
		<comments>http://www.haukeluebbers.de/2008/12/ti-basic-tutorial-2/#comments</comments>
		<pubDate>Fri, 05 Dec 2008 15:30:16 +0000</pubDate>
		<dc:creator>Dubbel</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[TI-BASIC]]></category>
		<category><![CDATA[lernen]]></category>
		<category><![CDATA[spiele]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://blog.haukeluebbers.de/?p=9</guid>
		<description><![CDATA[Hier der zweite Teil, in den Output, ClrScreen und Pause behandelt werden. Mit der Disp "..." Funktion kann man schon eine Menge machen. Doch es gibt eine andere Ausgabe-Funktion, die Vor- und Nachteile hat. Nämlich Output. Zu finden: Prgm - I/0 - 6: Output Vorteil von Output: - Genaue Positionierung des Textes möglich. Nachteil von [...]]]></description>
			<content:encoded><![CDATA[<p>Hier der zweite Teil, in den Output, ClrScreen und Pause behandelt werden.<span id="more-9"></span></p>
<p>Mit der <code>Disp "..."</code> Funktion kann man schon eine Menge machen.<br />
Doch es gibt eine andere Ausgabe-Funktion, die Vor- und Nachteile hat.<br />
Nämlich <code>Output</code>.<br />
Zu finden: <code>Prgm - I/0 - 6: Output</code><br />
Vorteil von Output:<br />
- Genaue Positionierung des Textes möglich.<br />
Nachteil von Output:<br />
- Man darf nicht &#8220;über dem Displayrand&#8221; schreiben. Dies erzeugt den Fehler<br />
<code>ERR:DOMAIN<br />
1:Quit (um das Programm zu Beenden)<br />
2:Goto (um den Editor zu öffnen, und den Fehler zu bearbeiten)</code><br />
Doch wie funktioniert dieses Output nun?<br />
Die Syntax (eng. für &#8220;Satzbau, hier für die Schreibweise des Befehls):</p>
<pre class="brush: delphi;">Output(2,3,&quot;Hallo Welt&quot;)</pre>
<p>Dieser Befehl würde nun in Zeile 2 in Spalte 3 Hallo Welt ausgeben.<br />
Man muss allerdings wie gesagt darauf achten nicht über den Displayrand hinaus zu schreiben.</p>
<p>Wenn sie das Beispiel oben genauso abgetippt haben, werden sie bemerkt haben, dass die Ausgabe so aussieht:</p>
<pre class="brush: delphi;">prgmTUT
HALLO WELT</pre>
<p>Nun soll dieses prgmPROGRAMMNAME weg.<br />
Da hilft uns der Befehl ClearHome.<br />
Wenn wir diesen Befehl einfügen (zu finden zwei Zeilen unter dem Output Befehl), wird alles auf dem Bildschirm gelöscht.<br />
Der neue Code sieht also so aus:</p>
<pre class="brush: delphi;">ClrHome
:Output(2,3,&quot;HALLO WELT&quot;)</pre>
<p>Nun wird zunächst alles gelöscht und dann Hallo Welt ausgegeben.<br />
Doch was wenn wir nun mehrere Sachen ausgeben wollen?</p>
<pre class="brush: delphi;">Output(2,3,&quot;HALLO IHR!&quot;)
Output(2,3,&quot;HALLO WELT&quot;)</pre>
<p>Dies funktioniert nicht, da die erste Ausgabe von der zweiten überschrieben wird.<br />
Nun könnte man den Befehl PAUSE, der die Programmausführung stoppt, und erst weitermacht, wenn der Nutzer ENTER drückt.<br />
Zu finden ist Pause:<br />
<code>Prgm - CTL - 8:Pause</code></p>
<pre class="brush: delphi;">Output(2,3,&quot;HALLO IHR!&quot;)
Pause
ClrHome
Output(2,3,&quot;HALLO WELT&quot;)</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.haukeluebbers.de/2008/12/ti-basic-tutorial-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>TI BASIC Tutorial 1</title>
		<link>http://www.haukeluebbers.de/2008/12/ti-basic-tutorial-1/</link>
		<comments>http://www.haukeluebbers.de/2008/12/ti-basic-tutorial-1/#comments</comments>
		<pubDate>Fri, 05 Dec 2008 14:33:13 +0000</pubDate>
		<dc:creator>Dubbel</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[TI-BASIC]]></category>
		<category><![CDATA[deutsch]]></category>
		<category><![CDATA[lernen]]></category>
		<category><![CDATA[spiele]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://blog.haukeluebbers.de/?p=5</guid>
		<description><![CDATA[Hier der erste Teil meines TI-BASIC Tutorials für den TI Taschenrechner von Texas Instruments. Was man brauch: Einen TI-Taschenrechner, ich nutze den TI-83 Plus. Ältere Taschenrechner haben manchmal Probleme mit diesem Code, da sie eine andere Version von TI-BASIC benutzen. Inhalt: 1. Beginn und Hallo Welt 2. Andere Möglichkeiten der Ausgabe + ClearHome 3. If-Verzweigung [...]]]></description>
			<content:encoded><![CDATA[<p>Hier der erste Teil meines TI-BASIC Tutorials für den TI Taschenrechner von Texas Instruments.<span id="more-5"></span></p>
<p>Was man brauch: Einen TI-Taschenrechner, ich nutze den TI-83 Plus. Ältere Taschenrechner haben manchmal Probleme mit diesem Code, da sie eine andere Version von TI-BASIC benutzen.</p>
<p>Inhalt:<br />
1. Beginn und Hallo Welt<br />
2. Andere Möglichkeiten der Ausgabe + ClearHome<br />
3. If-Verzweigung + Variablen<br />
4. Input<br />
5. Label (Goto)<br />
6. Erstes kleines Spiel</p>
<p>ACHTUNG: Ich habe mir diese Sprache im Selbststudium in langweiligen Mathestunden beigebracht! Möglicherweise ist nicht alles korrekt. Wenn sie einen Fehler entdecken wäre ich dankbar über eine Mail.</p>
<p>Um selber ein Programm zu schreiben, muss man natürlich erstmal eins anlegen:</p>
<p>Klicken sie:</p>
<pre><code>PRGM-&gt;NEW-&gt;ENTER</code></pre>
<p>und geben sie einen Namen ein.</p>
<p>Direkt danach befinden sie sich im Editor.<br />
Das erste Programm von uns wird &#8220;Hallo Welt!&#8221; ausgeben.<br />
Eine Besonderheit ist, dass wir die Code-Befehle nicht direkt reinschreiben, sondern aus Listen auswählen.<br />
Dies geht so:</p>
<pre>PRGM</pre>
<p>Nun sehen sie eine Menge Befehle.<br />
Gehen sie nun einmal nach Rechts, und wählen sie dort</p>
<pre><code>3: Disp</code></pre>
<p>aus.<br />
Sie befinden sich jetzt wieder im Editor.<br />
Der Befehl Disp gibt eine Zeichenkette aus. Doch im Moment weiß der Befehl noch nicht, was er ausgeben soll.<br />
Wir müssen nun in den ALPHA-Mode wechseln (2nd + ALPHA drücken).<br />
Klicken sie nun auf &#8221; beziehungsweise +.</p>
<p>Geben sie nun ihren Text ein, und schließen sie die Anführungszeichen wieder.</p>
<p>Der Code sieht nun so aus:</p>
<pre class="brush: delphi;">Disp &quot;Ihr Text&quot;</pre>
<p>Um den Code auszuführen, müssen sie den Editor verlassen (2nd + MODE (bzw. Quit)), die Programmübersicht aufrufen (PRGM) und ihr Programm auswählen.</p>
<p>Sie sehen, der Taschenrechner gibt ihren Text aus. Um ihren Programmcode erneut zu bearbeiten, rufen sie erneut die Programmliste aus, gehen nach Rechts auf EDIT und wählen sie erneut ihr Programm aus.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.haukeluebbers.de/2008/12/ti-basic-tutorial-1/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
