
2026/05/05 5:28
ボリス・チェルニー、「TI-83 プラス基本プログラミング入門」(2004 年)
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Boris Cherny が作成したチュートリアル「TI-83 PLUS BASIC PROGRAMMING TUTORIAL: A BEGINNERS' GUIDE v2.5」では、TI-83 Plus の習熟のための包括的な学習経路を提供しています。このチュートリアルは、シリアルケーブルやプログラムを可視化するための Emulator などの PC アプリケーションといった特定のハードウェアを必要とします。初心者は最初から読んでゲーム(例:当て推量ゲームや格闘ゲーム)などのチャレンジに挑戦するべきであり、上級ユーザーは単位換算器や行列演算などのプロジェクトのために提供されたコードを直接使用することができます。内容は基本的な入出力コマンド(DISP、OUTPUT)やロジック構造(IF/THEN、FOR/WHILE などのループ)から始め、ピクセル操作、円の描画、ネストしたループなどを含む高度なグラフィックスプログラミングへと体系的に展開します。データ処理のための不可欠なツールとして、変数、文字列、乱数の生成、リスト、行列を詳説しています。本ガイドは、円柱の面積計算やキャラクターの動きなどのプロジェクトに対する詳細な解答で終結し、マトリクスとリスト機能への探求を推奨する励ましを含んでいます。更新版(V2.5)として、貢献者を Ilya S と Tom T が認めています。また、適切なクレジットとともに修正されたプログラムの配布を許可しており、フィードバック用として連絡先メールアドレスを提供しています。
本文
TI-83 プラスプログラミング入門ガイド v2.5
著者: ボリス・チェルニー
注意事項
TI-83+ のプログラミングを存分に楽しむためには、PC 用アプリケーションとして Ti Graph Link 83+ Application を導入することをお勧めします。これにより、プログラムの可視化や作成が容易になります。
プログラミングを開始する前に、以下のアプリケーションを PC に入手することをご推奨します:
- TI Graph Link 83+
- 83i Viewer
- TI Connect
- エミュレーター
また、TI カルキュレータとコンピューターを接続するためには、黒色のシリアルケーブルまたは TI Connect コードが必要です。
本ガイドではこれらのプログラムを含めるつもりでおり、いくつかのサンプルプログラムもご用意しています。お気軽にカスタマイズして楽しんでください。ただし、インターネット上に公開したり販売したりする場合の条件は以下の通りです:
- 元のコードを何らかの変更を加えてください。
- ボリス・チェルニーへのクレジット(出典表記)をお願いします。
クレジット: 本チュートリアル作成に多大なご協力をいただいた皆様には心より感謝申し上げます:
Ilya STom T
初心者の方へ は、必ずガイドの最初から読み進めていただき、サンプルプログラムを実行したり、挑戦問題をこなしたりすることをお勧めします。楽しくプログラミングしましょう!
目次
基礎編
関数DISP
関数OUTPUT
関数CLRHOME
関数LBL/GOTO
関数END/PAUSE
関数MENU
関数INPUT/PROMPT
関数STOP- 変数(VARIABLES)
- レビュー
サンプルプログラム:
- シリンダーの面積計算
- カウントアップ
- シンプルな移動
応用編
関数FOR
関数WHILE- 比較対照(
vsFOR
vsWHILE
)LBL/GOTO
,IF
,THEN
, およびELSE
関数OR- ストリング(文字列)
関数GETKEY
,RAND
,randInt
, およびiPart
関数fPart- リスト(LISTS)
- マトリクス
- レビュー
サンプルプログラム:
- 高度なメニュー画面
- 移動ゲーム
描画機能
関数CLRDRAW
関数TEXT
,LINE
,TANGENT
, およびVERTICAL
関数HORIZONTAL
関数SHADE
関数CIRCLE
およびPt-On
関数Pt-Off- ネストされたループ(nested loops)
- 挑戦問題:
関数を用いずに円を描画するプログラムを作成せよ。CIRCLE
チャレンジ編
プログラミングの基本をマスターしたところで、以下のプログラムを試作してみてください:
- 推測ゲーム: カルキュレーターが事前に選択したランダムな数字まで、ユーザーが当てるゲーム(難易度レベル設定付き)。
- 格闘ゲーム: 生命値、ショップ、多彩な敵キャラクター、武器、防具などを備え、グラフィックとアニメーションが可能なシステム。
- 2 次方程式求解器: A, B, C の値を入力すると、根の個数および x 軸との交点(解)を表示するプログラム。
- 長除法: 商全体およびあまりを出力するプログラム。
- 変換計算機: 以下の単位変換が可能:
- F(華氏)⇔ C(摂氏)
- Cm(センチメートル)⇔ in(インチ)
もしご質問、コメント、あるいはフィードバックがあれば、pickledcherry668@yahoo.com までメールください。お気軽にご連絡ください!
バージョン履歴
- V1.0: 初版(2004 年 3 月)
- V2.0: 解説の改善、スクリーンショットの追加、初期レビューセクションの作成、初期の挑戦問題の追加
- V2.5: 解説のさらなる改善、新しい関数の追加、より多くのスクリーンショット、ダウンロード可能なサンプル例の提供、すべての機能におけるコードの公開、操作性の向上、高度な機能の導入、レビューセクションの拡充、追加の挑戦問題
著者: ボリス・チェルニー
基礎編
DISP
関数
DISPテキスト出力には主に 3 つの方法があります:
DISP, OUTPUT, および TEXT。ここでは最も基本的な DISP を解説します。このコマンドは、画面で利用可能な次の行(上から数えて最初で文字のない行)にフレーズを表示します。
- アクセス方法:
>PRGM
>I/O3 - 構文: 始終にかぎりを二重引用符(" ")で囲む必要があります。
例:
:Disp "TUTORIAL"
OUTPUT
関数
OUTPUTコンピューターの座標平面は標準的な数学とは異なります;Y 軸は上部から始まり、X 軸は左側からです。TI-83 Plus の画面は高さが 8 クラスター(文字)、横幅が 16 クラスターです。
DISP は重要なコマンドですが、実際のプログラミングでは OUTPUT を頻繁に使うことになります。「DISP」と違い、「OUTPUT」は特定の位置(座標)にテキストを出力することを指示し、自動的に改行(テキストの折り返し)を行ってくれます。
- アクセス方法:
>PRGM
>I/O6 - 構文: 始終にかぎりを二重引用符(" ")で囲む必要があります。
例:
:Output(3,2,"TUTORIAL")
ショートカット! 終結の括弧とクォートを省略しても問題ありません:
:Output(3,2,"TUTORIAL
CLRHOME
関数
CLRHOMECLRHOME は必須のコマンドであり、現在の画面(フレーム)をクリアする際に使用されます。通常、プログラムの冒頭で .PRGM(名前) というプログラム名表示が上部に現れるのを消去するために最初に使われます。
- アクセス方法:
>PRGM
>I/O8 - ヒント: 多くのフレームの開始部分にある最初のコマンドに設定することをお勧めします。
例:
:ClrHome :Disp "HELLO WORLD"
今回は、メインテキストの前にうっとうしい
PRGM TUTORIAL が表示されていないことがおわかりいただけるでしょう。
LBL/GOTO
関数
LBL/GOTOLBL コマンドはフレームにラベルを付けます(当然のことですが)。このコマンドを使うとコードが汚くなりやすいので、必要最小限に留めて使用してください;やがて必ず使うことになります。「GOTO」は指定されたフレームへ移動するために使用されます。
- アクセス方法:
>PRGM
(LBL)および9
>PRGM
(GOTO)0
例:
:Lbl A :ClrHome :Output(4,2,"HELLO WORLD" :Goto A
これはテキスト「HELLO WORLD」を点滅させて perpetual に表示し続けます;ON ボタンを押して QUIT を選択するまでです。フレームは 'A' としてラベル付けされ、テキスト「HELLO WORLD」は座標 (4,2) で表示されます。次に、計算機にはフレーム 'A' に戻ること、画面をクリア(
CLRHOME)し、同じメッセージを再度出力すること會被指示されます。これは非常に高速に行われるため、「HELLO WORLD」という文字が点滅するだけになります。これはあまり役に立たないので、この連続ループを停止させるためのコマンドが必要です。
END/PAUSE
関数
END/PAUSEもし
LBL/GOTO の例のようにコマンドを入力してループが止まらなくなってしまった場合どうすればよいでしょうか?答えは、そのループの停止を示すものを入れたままにすることです。
-
END: ループを終了させるか、フレームの終了であることを示します。「FOR」、「WHILE」、「GETKEY」、「INPUT」などのループで使用されます。
-
PAUSE: 次のフレームまたはステップに進む前にユーザーが入力(ENTER キー)を待機するための「ダム(堰)」として機能します。
-
アクセス方法:
>PRGM
(END)および7
(PAUSE)8
例:
:Lbl A :ClrHome :Output(4,2,"HELLO WORLD" :Pause :ClrHome :End
MENU
関数
MENUメニューはゲームの開始、終了、リストから選択など幅広く使用されます。作り方はどうすればよいでしょうか?TI カルキュレーターには、すでに「MENU」という素晴らしいコマンドが搭載されています。
- アクセス方法:
>PRGMC
例:
:Menu("--MENU--","BANANA",1,"ORANGE",2,"PEACH",3,"QUIT",X)
メニューには最大 7 つのアイテムしか設定できません。これは画面の高さが 8 クラスターしかないため、タイトルに 1 ライン使用されるからです。メニューでは最初の単語がタイトルであり、次に選択項目があり、それらを選択した際に移動すべきフレームが指定されます。
INPUT/PROMPT
関数
INPUT/PROMPTINPUT と PROMPT は同じ結果を得るための 2 つの方法です。どちらもユーザーに対して何らかの入力(数字、文字、文章)を求められるコマンドです。
はより注意が必要で、ただ数字を入力して終わらせることはできません。INPUT
は変数だけを収集し、すぐにループを終了できます。PROMPT
は文字列(STRINGS)も収集できますが、INPUT
はできません。PROMPT
後ほど、答えを事前に設定した変数と比較する方法をお教えします。これにより「変数(VARIABLES)」への導入となります;ここで変数を使う必要があります。
- アクセス方法:
>PRGM
>I/O
または12
例:
:ClrHome :Prompt X :Disp X :Pause :ClrHome :Input X :Disp X :Pause :Stop :End
STOP
関数
STOPSTOP コマンドはアクティブなプロセスを強制終了します。例えば、前述の例では STOP を使用して変数の要求と出力のプロセスを終了させています。「FOR」ループ(後で解説)を終了させる際にもよく使われます。
- アクセス方法:
>PRGMF
変数(VARIABLES)
変数は毎日のように目にします;代数学、論理学、科学、幾何学などで。プログラミングは数学と論理の組み合わせであるため、変数は幅広く使用されます。数字または文字列を定義し、それを単一文字として保存するために使用されます。これはプログラマーにとって数を呼び出すことを大幅に楽にします(例えば、その数が 1,243,822,256,012,355,566,761 と仮定しましょう)。
また、変数は以前は何かしらの値があったが、現在の値が変わるような数にも使用されます。例えば、ユーザーのスコアが 0 で、それを変数 'X' に保存したとします。ゲーム中では、ユーザーが完全なボーナスを獲得したのか、部分的なスコアしか得なかったのかが分かりません。その場合、計算機には「ユーザーのスコアを変数 X として保存せよ」と指示し、以前は何であっても値は前の値に依存しないようにします(例:
X+10, X+100000, X-4 など)。
例:
:ClrHome :250->A :500->B :Output(2,1,A :Pause :ClrHome :Output(2,1,B :Pause
この例では、数字 250 と 500 が変数 A および B に保存され、後に座標 (2,1) で出力されます。
レビュー - 基礎編
- シリンダーの面積: ユーザーに底辺の長さ(または直径)と半径を入力させ、シリンダーの面積を出力するプログラムを作成せよ。
- 答え: [解答参照]
- カウントアップ: 0 から 2000 まで数え上げ、画面に全ての数字を表示し、0 から 2000 の表示を確認できるプログラムを作成せよ。
- 答え: [解答参照]
- シンプルな移動: まずユーザーがリストからオプションを選択(上、下、左、右、爆発)させ、その後対応する単一文字が表示されるプログラムの設計。
- 答え: [解答参照]
応用編
FOR
関数
FOR初心者のレベルでは、「FOR」は一種の待機機能として使用されます;第 1 番目の数から第 2 番目の数まで、第 3 番目の数の間隔でカウントします。また、一定時間某物を表示するためにも使用されます。
構文:
FOR([変数 A-Z], [開始値], [終了値], [間隔])
-
間隔が小さいほど短い時間で完了します(当然)。
-
ループを終了させたい場所に必ず「END」コマンドを入れます。強制的にループを終了させるために「STOP」も使用される場合があります。
-
アクセス方法:
>PRGM4
シンプルな例:
:ClrHome :For(A,0,50) :Output(3,1,"THIS" :End :For(A,1,50,20) :Output(4,2,"IS A" :End :For(R,9,500,10) :Output(5,3,"TUTORIAL" :End
文字列(テキスト行)は一つずつ現れます。「FOR」は計算機に対し、次のコードを実行するまで指定された時間間中、その行を維持するように指示します。ただし、プログラム全体が終了すると最終的な「END」があり、ユーザーが ENTER キーを押すと計算機は自動的にプログラムを再起動します。
の裏側での動作:
この場合、計算機に 0 から 50 までの変動値を変数 END
.A に保存することを指示されます。Basic は非常に遅い言語であるため、「THIS」は座標 (3,1) で数秒間出力されたり、計算機が 0 から 50 をカウントするのに要する時間分出力されたりします。
WHILE
関数
WHILE「WHILE」もループであり、特定の条件が真になるまで続けます。「FOR」と異なり、「WHILE」は毎回自動的に変数の値に +1 を加えるわけではなく、追加または減算の量を手動で指定する必要があります。これによりループがより柔軟になります。
例:
:ClrHome :1->Y :While Y<=16 :1->X :While X<8 :Output(X,Y,"+") :X+1->X :End :Y+1->Y :End
解説: 画面がクリアされ、変数 'Y' の値が 1 に設定されます。Y が 16 以下であれば、X の値を 1 とします。X の値が 8 より小さければ、座標 (X,Y) でプラス記号 (+) を出力します。X の値に 1 を加え、X が 8 になるまでこれを繰り返します。X が 8 に達した時点で外側のループに戻り、X を再び 1 に設定します。同時に Y にも 1 を加えます。したがって、この '+' の列が各列完了ごとに Y が 1 つ大きくなるよう繰り返し表示され、Y が 16 に達してプログラムが終了します。
論理の注記:
とコーディングすると、この while ループ内の操作は無制限に繰り返されます(停止するコマンドが存在しない限り;例:ユーザーが ENTER キーを押すとループが停止)。While 1
とコーディングすると、「End」までの間にコードは実行されません。While 0- コンピューターは情報を転送するためにビット(微細な電気的な衝撃)に依存しています。電圧があるものが「1」、ないものが「0」を表します。したがって、1 は真(電流あり)、0 は偽(電流なし)を表します。照明スイッチを想像してください;オン时有电流,オフ时没有电流。つまり
とコーディングしているのは実際にはWhile 1
を意味しています。While True
比較対照(FOR
vs WHILE
vs LBL/GOTO
)
FORWHILELBL/GOTO以下は「FOR」関数のより高度な使用例です;このコードは以前のものよりも頻繁に使うことになります。3 つの関数を比較します:「FOR」、「WHILE」、および「LBL/GOTO」。これらプログラムは視覚的には完全に同じですが、裏で起こっていることは大きく異なります。
セットアップ: まず WINDOW を以下の様に設定してください:
- Xmin=-100, Xmax=100, Xscl=1
- Ymin=-100, Ymax=100, Yscl=1
- Xres=1
例 I: FOR
:ClrDraw :For(X,0,50) :Circle(0,0,X) :Text(0,0,"RADIUS:",X) :End :Text(6,0,"DONE")
描画画面がクリアされ、変数 X に値 0 が割り当てられます。座標 (0,0)(画面中央)で円が描画されます。半径は 0 に設定されます。座標 (0,0) でテキスト「RADIUS:」が表示され、その後に X の値が続きます。「END」コマンドは、X の値が 50 になるまで
FOR と End の間のコードを計算機に実行させる指令です。
例 II: WHILE
:ClrDraw :0->X :While X<50 :Circle(0,0,X) :Text(0,0,"RADIUS:",X) :X+1->X :End :Text(6,0,"DONE")
画面がクリアされ、変数 X に値 0 が割り当てられます。X が 50 より小さい間、座標 (0,0) で半径 X の円が描画されます。「RADIUS:」と値 X が座標 (0,0) に表示されます。1 が X に加えられ、この全体のプロセスは「X が 50 より小さい」という条件が偽になるまで(つまり X は 50 より大きくなるまで)繰り返されます。これが起こると、「DONE」が表示されます。
例 III: LBL/GOTO
:ClrDraw :0->X :Lbl 1 :Circle(0,0,X) :Text(0,0,"RADIUS:",X) :X+1->X :If X=50:Goto 2 :Goto 1 :End :Lbl 2 :Text(6,0,"DONE")
描画画面がクリアされ、値 0 が X に割り当てられます。フレーム 1 で円を描画しテキストを表示します。X が 50 と等しければ計算機はフレーム 2(「DONE」)へ移動しますが、そうでなければフレーム 1 に戻ります。
結論: コードから明らかな通り、「FOR」が円を描画して徐々に大きさを増加させるために最もクリーンで効率的であり、次は「WHILE」、そして最後に「LBL/GOTO」です。
IF
, THEN
, ELSE
, および OR
関数
IFTHENELSEORこれらはプログラミングで最も広く使用される関数の一つで、値、入力、文字列、変数を比較します。
-
ELSE: 変数が特定の値でない場合、別の動作を行います。
-
IF: 値を事前に設定した変数と比較します。
-
THEN: 条件が満たされた場合、アクションを実行します。
-
OR: 値を多数の変数と比較します(論理 AND とは異なる)。
-
アクセス方法:
/IF
/THEN
:ELSE
>PRGM
,1
, または2
。3
:OR
>TEST
>LOGIC
。2
例:
:ClrHome:Input "NMBR=",X :If X=1 or X=2:Then :Output(2,1,"1 or 2" :Else :Output(2,1,"3 and UP" :Pause :ClrHome :End
注意:
ELSE が機能するためには、比較に THEN を使用する必要があります。ただし、これらは通常非効率的なコマンドです。
改訂版(より機能的):
:ClrHome:Input "NMBR=",X :If X=1 or X=2:Output(2,1,"3 and UP" :If X<=3:Output(2,1,"3 and UP" :Pause :ClrHome
この改訂版は 2 行少ないコードを使用し、同じ機能を果たします。
ストリング(STRINGS)
「ストリング」は変数の一分野であり、単語、フレーズ、文字などを保存します。入力と併せて使用され、「Mary had a little lamb」といったテキスト行を収集します。
- アクセス方法:
>VARS
>STRING:0-9
例:
:ClrHome :Input "NAME:",Str1 :Output(2,1,"NAME IS: " :Output(3,1,Str1) :Stop :End
GETKEY
関数
GETKEY「GETKEY」はおそらく最も広く使用される関数の一つです。TI-83+ の各ボタンには番号が割り当てられていることを知っていましたか?「GETKEY」は「INPUT」と似ていますが、数字の入力を待つのではなくキー入力(キープレス)を待ちます。これは文字の移動やメニューに時々使用されます。
- アクセス方法:
>PRGM
>I/O7
標準的な公式: 多くの場合、「GETKEY」は以下の式と共に使用されます:
:While 1 :getKey(変数 A-Z) :While (変数 A-Z)=0:getKey(変数 A-Z):End
クイックキーチェッカー: ボタンを押すとそのキーの値を表示するプログラム(チートシートがない場合用):
:While 1 :getKey->A :While A=0:getKey->A:End :Disp A :End
変数の代わりに「ANS」を使用すると高速ですが、getKey 値を繰り返し使用しなければならない場合はできません。
簡略化: 全手順は短縮することも可能です:
:While 1 :getKey :'ここに何かを行う処理 :End
アルファベットの任意の文字('A' のみではありません)を使用できます。
シンプルなプログラム例:
:ClrHome :For(A,0,1) :getKey->V :While V=0:getKey->V:End :If V=41:Disp "YOU PRESSED MATH" :If V=42:Disp "YOU PRESSED APPS" :End
裏側では画面がクリアされ、変数 A に値 0 が割り当てられます。計算機はキー入力を受けます。その入力が MATH ボタン(値 41)であれば「YOU PRESSED MATH」が表示されます。APPS が押された場合(値 42)、「YOU PRESSED APPS」が表示されます。どちらも押されない場合は何も起こりません。
RAND
, randInt
, iPart
, および fPart
関数
RANDrandIntiPartfPartプログラム内で計算機に 2 つの境界の間で自動的にランダムな数字を選ばせる必要があり、時には整数部分だけを、時には小数部分だけを出力しなければならない場合があります。
- RAND: 0.0000000001 から 1 の間からランダムな数字を選びます。
- 例:
は 1 から 11 の間の任意の数字(整数または小数)を表示します。1+(rand*10)
- 例:
- iPart: 数の整数部分のみを表示します。
- 例:
は 1 から 11 の間の任意の整数を表示します。iPart(1+(rand*10))
- 例:
- fPart: 数の小数部分のみを表示します。
- 例:
fPart(1+(rand*10))
- 例:
- randInt: 2 つの数字の間でランダムな整数を選ぶための簡単な方法です。
- 例:
randInt(1,10)
- 例:
アクセス場所:
:RAND
>MATH
>PRB1
:randInt
>MATH
>PRB5
:iPart
>MATH
>NUM3
:fPart
>MATH
>NUM4
リスト(LISTS)
TI カルキュレーターには 6 つの標準リスト(L1, L2, L3, L4, L5, L6)があります。ただし、これらをプログラムやゲーム情報の保存に使用すると、他のリストを使用するプログラムや散点図をグラフ化する際などに妨害される可能性があります。したがって、カルキュレーターにはユーザー作成の数百個のリストを保持する可能性が 있습니다.
リストの作成:
:10->dim(LTTRL)
上記の例では、10 がリストのスロット数であり、
LTTRL がリストの名前です。リストの名前の前に常に「L」があります(2ND > STAT > OPS > B でアクセス)。
リストへの格納: 変数 'C' をリスト
LTTRL の最初のスロットに保存するには:
:C->LTTRL(1)
リストからの呼び出し: リスト
LTTRL の最初のスロットを呼び出して変数 'B' に保存するには:
:B<-LTTRL(1)
マトリクス(MATRICES)
マトリクスはリストの別の形態ですが、非常に大量の情報进行存储するために使用されます。
マトリクスの作成:
:{2,3}->dim([A])
2 と 3 はマトリクスの次元(高さ x 幅)であり、'A' がマトリクスの名前です。
レビュー - 応用編
- 高度なメニュー:
関数を用いずに作成し、5 つの選択肢、タイトル、カーソルを持つメニューを作成せよ。MENU- 答え: [解答参照]
- 移動ゲーム: ユーザー操作したキャラクターが画面内を動き回り、壁と衝突すると反対側に出現するプログラムを作成せよ。「O」と記された地点(座標 1,1)と衝突するとプログラムが終了します。「S」記号と記されたランダムな座標と衝突した場合、かつユーザー(ピの記号 $\pi$)がそれを衝突させた場合、「BONUS」というテキストが 5 回瞬きし、ゲームは継続し、得点(リストとして保存)に 10 点が加算されます。
- 答え: [解答参照]
描画機能
CLRDRAW
関数
CLRDRAW「CLRDRAW」は「CLRHOME」と似ていますが、描画画面をクリアします。TI-83+ は以下の 2 つの画面を持っていると考えることができます:一つ目は画像、線、テキストが表示される場所;二つ目は出力が表示される場所です。
- アクセス方法:
>2ND
>PRGM1
TEXT
関数
TEXT「TEXT」は「OUTPUT」と似ていますが、「TEXT」の方がずっと小さく、座標平面はピクセルベースです。「TEXT」はテキストの自動改行機能がありません(「DISP」同様)。「TEXT」は描画画面に表示され、出力画面には表示されません。
-
座標: 画面は左上隅に (0,0) で始まります。高さが 62 ピクセル、幅が 94 ピクセルです。
-
アクセス方法:
>2ND
>PRGM0
例:
:ClrDraw :Text(0,0,"(0,0)") :Text(50,0,"(50,0)") :Text(0,50,"(0,50)") :Text(50,50,"(50,50)")
LINE
, TANGENT
, VERTICAL
, および HORIZONTAL
関数
LINETANGENTVERTICALHORIZONTAL- 「HORIZONTAL」と「TANGENT」は同じもので、どちらも水平線を描画します。
- 「VERTICAL」は垂直線を描画します。
- 「LINE」は最初の座標から第二の座標までの線を描画します。
注意: 最初グラフウィンドウを以下の様に設定してください:
- Xmin=0, Xmax=94, Xscl=1
- Ymin=0, Ymax=62, Yscl=1
- Xres=1
アクセス場所:
:HORIZONTAL
>2ND
>PRGM3
:VERTICAL
>2ND
>PRGM4
:TANGENT
>2ND
>PRGM5
:LINE
>2ND
>PRGM2
例:
:ClrDraw :Horizontal 50 :Text(0,0,"HORIZONTAL" :Pause :ClrDraw :Vertical 50 :Text(0,0,"VERTICAL" :Pause :ClrDraw :Tangent(50,2,"TANGENT") :Pause :ClrDraw :Line(10,20,40,30) :Text(0,0,"LINE" :Pause :ClrDraw
SHADE
関数
SHADE「SHADE」は名前の通り:画面の一部を塗りつぶします。
- アクセス方法:
>2ND
>PRGM7
例:
:ClrDraw :ZStandard :Shade(-10,5)
注意: コマンド「ZStandard」はウィンドウを以下の様に設定する簡単な方法です:
- Xmin=-10, Xmax=10, Xscl=1
- Ymin=-10, Ymax=10, Yscl=1
- Xres=1
CIRCLE
関数
CIRCLE「Circle」は明示された座標に円を描画します。動作は以下の通りです:
Circle([原点の X 座標], [原点の Y 座標], [半径])。
TI の画面が長方形であるため、円はおびただしく楕円のように見えます;ただし、画面を以下の様に設定しない限り:
- Xmin=0, Xmax=94, Xscl=1
- Ymin=0, Ymax=62, Yscl=1
- Xres=1
例:
:ClrDraw :Circle(20,20,12) :Text(0,0,"CIRCLE")
Pt-On
および Pt-Off
関数
Pt-OnPt-Off「Pt-On」は画面の特定の場所に点を描画し、「Pt-Off」はその点を消去します。プログラム中に点を削除せざるを得ない場合は、
CLRDRAW の代わりにこのコマンドを使用してください;そうすると画面がフラッシュしません。
注意: まずペンを (p) を以下の様に設定してください:
- Xmin=0, Xmax=90, Xscl=1
- Ymin=0, Ymax=90, Yscl=1
- Xres=1
例プログラム:
:ClrDraw :For(A,0,90) :randInt(1,90)->X :Pt-On(X,A) :End
これは (0,0) と (90,90) の間の点をランダムに表示します。合計 90 ピクセルを表示します。
ネストされたループ(NESTED LOOPS)
ネストされたループとは、例えば「FOR」と「WHILE」が一つに内包され、一つのループの中に別のループを含むようなものです。これは特定の処理を繰り返し実行する必要がある場合に非常に一般的です。
挑戦問題: 「CIRCLE」関数を使わずに円を描画し、大きさを徐々に増加させるプログラムを作成せよ;10 行以下のコードで完了せよ。2 つの種類のループを使用せよ。
- 強く推奨:このプログラムを試作する前に進まずに試してみてください。
解答を表示: [解答参照]