はじめに

プログラムをコンパクトにするため手を抜いているところがあり、

演算子の優先順序や関数の実引数の指定の仕方など常識と異なる

ところがあります。括弧をこまめに付けてみてください。

またこのヘルプを良くお読みください。余りにも不評なら直します。

複素関数や一次元配列やＣのような制御構造が使えることが

このソフトの特徴です。そのために実行速度が犠牲になりました。

バグは少ないと信じていますが、このソフトを利用したことにより

ユーザが損害を被った場合やデータが失われたような場合でも、

作者は一切の責任を免れることとさせて頂きますので、ご了承の

程宜しくお願いいたします。

配布は自由です。転載は作者の許可を獲ってください。

このソフトに関するご意見は

NIFTY-SERVE :  GCF01435  中村治

インターネット： GCF01435@niftyserve.or.jp

までお寄せ下さい。

目次

ＬＯＧＯについて

このソフトMICROLOGOについて

手続きについて

制御構造について

代入文について

変数について

関数について

演算子について

再帰について

複素数について

配列について

関数の引数について  ……　重要です

チュートリアル

ファイルメニュについて


ファイルメニュについて

ファイルメニュには「開く」「保存」「印刷」があります。

「保存」はLOGOで作ったプログラムをファイルに保存します。

LISTINGで表示されるすべてのプログラムを一括して保存します。

「開く」は「保存」で保存したプログラムをLOGOに読み込みます。

プログラムは単なるテキストですので、でファイルをEDITERで

作ることもできます。

「印刷」はLOGOのグラフィックス画面を印刷します。

単純に拡大しているだけで、あまり奇麗ではありません。

画面のコピーではなく、印刷用の絵を作るようにLOGOを

改良すれば、奇麗な絵が作れるのですが。


チュートリアル

ＭＩＣＲＯＬＯＧＯは基本は英単語の略語を使いますが、日本語

の命令も一部使えます。

基本的な命令は「まえへ」（ＦＤ）「うしろへ」（ＢＫ）「みぎへ」

（ＲＴ）「ひだりへ」（ＬＴ）「えをけせ」（ＣＳ）です。

まえへ　１００　改行　　または　ＦＤ　１００　改行

とするとカメが前へ１００単位だけ進みます。

みぎへ　９０　改行　または　ＲＴ　９０　改行

とするとカメが９０度右へ向きを変えます。

これを４回繰り返すと正方形を描きます。

すでに描いていた図を消すには、

えをけせ　改行　または　ＣＳ　改行

としてください。初期画面に戻ります。

同じことの繰り返しは馬鹿らしいので次のようにします。

くりかえせ　４　「まえへ　１００　みぎへ　９０」改行

または

ＲＥＰＥＡＴ　４　[　ＦＤ　１００　ＲＴ　９０]　改行

同じことを繰り返すには「くりかえせ」（ＲＥＰＥＡＴ）という

命令を使います。４は繰り返す回数です。繰り返す内容を「」で

囲みます。

正方形をいくつも書きたいときは、これを一つの命令にすることが

できます。

てじゅんは　しかく　改行　または　ＴＯ　ＳＨＩＫＡＫＵ　改行

とすれば、手続きを定義するためのダイアログボックスが開きます。

てじゅんは　しかく

くりかえせ　４　「まえへ　１００　みぎへ　９０」

おわり

または

ＴＯ　ＳＨＩＫＡＫＵ

ＲＥＰＥＡＴ　４　[ＦＤ　１００　ＲＴ　９０]

ＥＮＤ

と入力し、OKのボタンを押します。

しかく　改行　または　ＳＨＩＫＡＫＵ　改行

とすれば、正方形を描きます。「しかく」は「まえへ」などと

同様に使える命令になります。同じ大きさの正方形ばかりでは

面白くありません。

てじゅんは　しかく　改行　または　ＴＯ　ＳＨＩＫＡＫＵ　改行

として、手続きを定義するためのダイアログボックスを開きます。

今度は

てじゅんは　しかく　：ながさ

くりかえせ　４　「まえへ　：ながさ　みぎへ　９０」

おわり

または

ＴＯ　ＳＨＩＫＡＫＵ　：ＳＩＺＥ

ＲＥＰＥＡＴ　４　[ＦＤ　：ＳＩＺＥ　ＲＴ　９０]

ＥＮＤ

とします。てじゅんは　しかく　：ながさ　の「：ながさ」を

引数といいます。「しかく」は引数を持つ手続きです。

しかく　５０　改行　または　ＳＨＩＫＡＫＵ　５０　改行

とすれば、一辺５０の正方形を描きます。

いろは　あか　改行　または　ＳＥＴＰＣ　９　改行

のようにすれば、線の色が変わります。

はばは　３　改行　または　ＳＥＴＰＷ　３　改行

のようにすれば、線の幅が変わります。

「かくれろ」（ＨＴ）とするとカメが消えます。「でてこい」（ＳＴ）

とするとカメが現れます。「ペンをあげろ」（ＰＵ）とすると

カメが移動しても線を描かなくなります。「ペンをおろせ」（ＰＤ）

とするとカメが移動すれば、再び線を描くようになります。

次のような「たかくけい」という手続きを定義します。

てじゅんは　たかくけい　：ながさ　：かくど

まえへ　：ながさ　みぎへ　：かくど

たかくけい　：ながさ　：かくど

おわり

または

ＴＯ　ＰＯＬＹ　：ＳＩＺＥ　：ＤＥＧＲＥＥ

ＦＤ　：ＳＩＺＥ　ＲＴ　：ＤＥＧＲＥＥ

ＰＯＬＹ　：ＳＩＺＥ　：ＤＥＧＲＥＥ

ＥＮＤ

と定義します。「たかくけい」の定義の中に「たかくけい」が

出てきます。この様な手続きを再帰呼び出しといいます。

たかくけい　１００　６０　改行

または

ＰＯＬＹ　１００　６０　改行

とすれば、「：ながさ」が１００に、「：かくど」が６０になり、

「たかくけい」の定義より、前に１００進み、６０度右に向きを

変えます。次に「たかくけい　１００　６０」を実行しなければ

なりません。「たかくけい」の定義より、再び、前に１００進み。

６０度右に向きを変えます。また、「たかくけい　１００　６０」を

実行します。同じことの繰り返しです。無限ループといいます。

正六角形を描き続けます。これを止めるにはESCキーを押します。

星型五角形を描くには「かくど」を何にすればいいでしょう。

すこし「たかくけい」の定義を変えてみましょう。

てじゅんは　たかくけい　：ながさ　：かくど　：ぞうぶん

まえへ　：ながさ　みぎへ　：かくど

たかくけい　：ながさ＋：ぞうぶん　：かくど　：ぞうぶん

おわり

と定義します。例えば

たかくけい　１　５９　２　改行

としてみてください。今度も無限ループになり、ESCキーで

止めなければなりませんが、まったく同じ繰り返しではなく、

「たかくけい」が呼ばれるたびに、「ながさ」が「ぞうぶん」の

大きさだけ大きくなっています。面白い絵が描けます。

今度は

てじゅんは　たかくけい　：ながさ　：かくど　：ぞうぶん

まえへ　：ながさ　みぎへ　：かくど

たかくけい　：ながさ　：かくど＋：ぞうぶん　：ぞうぶん

おわり

と定義して、

たかくけい　５　３　３　改行

としてください。今度も無限ループですが、今度は「かくど」が

「ぞうぶん」の値だけ大きくなっていきます。

二番目と三番目の数値を色々変えると色々な対称性を持った図が

描けます。

今度はユークリッドの互除法により最大公約数を求めてみよう。

てじゅんは　最大公約数　改行　または　ＴＯ　ＧＣＤ　改行

として、

てじゅんは　最大公約数　：数１　：数２

もし　：数２＝０「かえせ　：数１」

かえせ　最大公約数　：数２　：数１　％　：数２

おわり

または

ＴＯ　ＧＣＤ　：Ａ　：Ｂ

ＩＦ　：Ｂ　＝　０　[ＯＰ　：Ａ]

ＯＰ　ＧＣＤ　：Ｂ　：Ａ　％　：Ｂ

ＥＮＤ

と定義し、

かけ　最大公約数　１０　８　改行

または

ＰＲＩＮＴ　ＧＣＤ　１０　８　改行

とすれば、２が左側のメモに表示されます、

もし　「：数２」が０ならば、最大公約数は「：数１」なので

「：数１」を返します。「：数２」が０でなければ、「：数２」と

「：数１」を「：数２」で割った余りの最大公約数を返します。

昔、小学校で習ったユークリッドの互除法をコンピュータに

教える再帰を使った方法です。無限ループを避けるためには、

終了条件を与えておかなくてはなりません。それが最初の条件文です。

余りをつぎつぎとっていくのでいつかは二番目の引数が０になります。

そのとき、一番目の引数が最大公約数になっています。

「最大公約数　１０　８」＝「最大公約数　８　２」

＝「最大公約数　２　０」＝２です。

次に最小公倍数を最大公約数の関数を使って定義してみましょう。

てじゅんは　最小公倍数　：数１　：数２

へんすうは　“数３　最大公約数　：数１　：数２

かえせ　：数１＊：数２÷：数３

おわり

または

ＴＯ　ＬＣＭ　：Ａ　：Ｂ

ＭＡＫＥ　“Ｃ　ＧＣＤ　：Ａ　：Ｂ

ＯＰ　：Ａ　＊　：Ｂ　/　：Ｃ

ＥＮＤ

と定義します。

かけ　最小公倍数　１０　８　改行

とすれば、４０が表示されます。

へんすうは　“数３　最大公約数　：数１　：数２

または

ＭＡＫＥ　“Ｃ　ＧＣＤ　：Ａ　：Ｂ

が代入文です。変数「数３」に　「：数１」と「：数２」の

最大公約数を保存します。代入される変数には変数名の前に“　を

付けます。変数の値が欲しいときには：を変数名の前に付けます。

「かえせ」（ＯＰ）に出会うと対応する値を計算し、その値を

関数の値とし、以下の文の実行を止めます。

「多角形」という手続きを次のように定義します。

てじゅんは　多角形　：長さ　：角度

へんすうは　“回数　（最小公倍数　：角度　３６０）÷　：角度

くりかえせ　：回数　「まえへ　；長さ　みぎへ　：角度」

おわり

このように定義すれば、与えられた長さと角度を持つ多角形を

描く手続きを定義することができます。

多角形　１２０　６０　改行

とすれば、一辺１２０の正六角形を描いて停止します。

関数が式の一部となっているときは注意が必要です。

最小公倍数の引数が「：角度」と３６０であることがわかるように

（最小公倍数　：角度　３６０）と括弧で括ります。

最小公倍数　：角度　３６０　÷　：角度　とすると

「：角度」と「３６０÷：角度」が最小公倍数の引数と

解釈されてしまいます。

手続きで実行を止めるには「やめよ」（ＳＴＯＰ）の命令を使います。

後少し、日本語化された命令と関数があります。ヘルプで

調べてください。LOGOの日本語による命令の表が発表されて

いたはずですが、なくなりました、ご存知の方がいらっしゃれば

教えていただけると有り難いです。

このMICROLOGOは半角のアルファベットで使うことを前提に

作っています。最近、本屋に行ってもLOGOの本を見かけなく

なりましたが、かってはたくさん出版されていました。

文字とリストが使えないですが、独自の拡張として、複素数が

使え、複素関数をサポートしていることと、一次元ですが配列を

使えるようにしていること、FOR文、WHILE文、DO  UNTIL文

が使えることなどがMICROLOGOの特徴だとおもいます。

従って、

ＴＯ　ＰＯＬＹ　：Ｓ　：Ａ

ＭＡＫＥ　“Ｃ　０

ＤＯ　[

　　　ＦＤ　：Ｓ　ＲＴ　：Ａ

　　　ＭＡＫＥ　“Ｃ　：Ｃ＋：Ａ

]　ＵＮＴＩＬ　：Ｃ　％　３６０　＝　０

ＥＮＤ

としても、停止する多角形を描く手続きを定義できます。

また、複素数を使った手続きの例は次のようなものがあります。

TO MANDEL

MAKE “MINX  ―2.0

MAKE “MAXX  2.0

MAKE “MINY  ―2.0

MAKE “MAXY  2.0

MAKE “DX  (：MAXX―：MINX) / 200

MAKE “DY （：MAXY ―：MINY）/ 200

FOR ：I＝0  TO  200  [

   FOR ：J＝0  TO  200  [

      MAKE “MU  COMPLEX ：MINX＋：I＊：DX

                                ：MINY＋：J＊：DY

      MAKE “Z  COMPLEX  0  0

      MAKE “COUNT  40

      WHILE （（ABS ：Z）＜ ２ ）AND (：COUNT＞０)  [

         MAKE “Z  ：Z＊：Z＋：MU

         MAKE “COUNT ：COUNT―１

　　　]

      PUT ：I―100 ：J―100 ：COUNT ％ 16

   ]

]

END

と定義することによりマンデルブロー集合が描けます。

PUT 　数式１　数式２　数式３

で　座標（数式１の値、数式２の値）に数式３の値の色で

点を描きます。

WHILEに与えた条件式が

ABS ：Z　＜ ２ AND ：COUNT＞０

ではなく、

（（ABS ：Z）＜ ２ ）AND (：COUNT＞０)

であることに注意してください。

上のようにすると

ABS （（：Z 　< （２ AND ：COUNT）） > ０）

と解釈されてしまいます。

簡単なチュートリアルでしたが、 MICROLOGOを使って

楽しいプログラムを作られることを期待しています。


配列
配列について

一次元の配列をサポートしています。

配列は大きさを気にせず、宣言すること無く使えます。

添え字を表すのに｛と｝で囲みます。

例えば、

MAKE “V｛５｝ ８

とすれば、配列名Ｖで添え字の範囲が０から５までの配列が

自動的に作られます。

使うときは

PRINT  ：Ｖ｛５｝

のようにします。

更に、

MAKE  “Ｖ｛９｝　５

のようにすれば、配列名Ｖの配列が添え字の範囲が０から９までに

拡張されます。

配列を関数の値として返すことはできませんが、手続きや関数の

引数として渡すことはできます。

例えば

TO  SUM  :A :N

MAKE “Ｓ　０

FOR ：I = 0  TO ：N [MAKE “Ｓ　：S + ：A｛：I｝ ]

OP ：S

END

と定義し、

FOR ：I ＝０　TO９ [MAKE “Ｖ｛：I｝　：I ]

PRINT  SUM  ＆Ｖ　９

のように使うことができます。実引数として、配列を渡すときは

＆を配列名の前に付けてください。配列を渡しても値渡しです。

手続きや関数で対応する配列の値を変えても元の配列は影響を

受けませんので注意してください。この方がプログラミングが

楽なのでこうしました。


複素数
複素数について

複素数が使えるようになっています。

複素数を定義するには

書式　COMPLEX  数式１　数式２

で定義してください。色々な初等関数が複素数を引数として

使えます。例えば

PRINT  SIN  COMPLEX  1  2

とすれば、sin (1 + 2 i) が表示されます。勿論、複素数の

四則が可能です。このMICROLOGOは複素数を基本データとして

動いています。


LOGO
LOGOについて

LOGOはシーモア・パパートが創案したプログラミング言語です。

LOGOの教育思想に感心のある方は「マインドストーム」

S. パパート著未来社をお読みになることをお勧めします。

LOGOはマサチューセッツ州ケンブリッジにおいて、

米国科学財団（NSF）がスポンサーとなってボルト・ベラネーク・

アンド・ニューマン社（BBN）が実施した研究プロジェクトの

一部として、1968年に初めて開発されました。それ以降、

LOGO研究の大部分はMITの人工知能研究所と教育に関する

調査研究部門で、またBBN社、エジンバラ大学や世界中の多くの大学で

重要な研究が続けられていました。

LOGOは1968年に誕生して以来、絶えず発展を続けてきました。

LOGOは複雑で洗練された言語なので、1970年代のほとんどの

研究は大型のコンピュータ・システムを使って行われてきました。

MITのLOGOグループは1979年に安価なコンピュータにLOGOを

適用させる研究を開始し、その結果TI99/4とApple IIという

2つのホーム・コンピュータ用のLOGOが開発されました。

8ビットのマイコンの時代には、Terrapin LOGO,APPLE LOGO,

CYBER LOGO, TLC LOGO, TI LOGO, FM_LOGO,

ひらがなLOGO, Gourd LOGO, MZ_LOGO, Dr.LOGO, αLOGO,

ACCESSLOGOといった処理系がありました。この時代には

たくさんのLOGOに関する本も出版されていました。

MS_DOSの時代になってもPC-9801用のLOGOが売り出され、

またフリーソフトのLOGOもいろいろありました。

Macintosh用にはExper LOGOが開発されます。

Windows 95の時代になるとLOGOの情報をあまり聞かなくなりました。

ウインドウのプログラミングは難しく、プログラミング離れが

起こり、また、新たな幾何学学習ソフト「カブリ」などが出現したり、

インターネットの利用法を考えなくてはいけなくなったりで、

数学教育研究者の関心が別のところに移ってしまったようです。

しかし、LOGOは今でも興味ある対象だと思います。

C++ BuilderやDelphiやVisual Basicといった簡単に使える言語が

出てきたので、またプログラミングが盛んになると良いですが。

FORTRANであれば数値計算、COBOLならば事務処理、Cなら

システム・ソフトウエアというように、プログラミング言語には

それぞれ得意とする分野があります。LOGOを特徴づけているのは

リスト処理とグラフィックスという2つの機能です。

LOGOは子供たちの教育を目的に作られてきましたが、人工知能の

研究者たちが最初から関わっていることから分かるように、人工

知能を指向している記述能力の高い汎用の高級言語です。


MICROLOGO
MICROLOGOについて

MICROLOGOは高知大学教育学部の小学校の先生を目指す学生

の教育用に作りました。最小限の機能しかなく、タートル・グラ

フィックスと数値計算しかサポートしていません。

文字列処理とリスト処理は今後の課題とさせていただきます。

リストが無いので複雑なプログラムは作れませんが

学生の教育用の試作品なので、LOGOに興味が出てくれば、

プロの作った本格的なLOGOの処理系を購入して下さい。

BASICのように半角の大文字と小文字は区別しません。

スピードが遅いし、グラフィックスの印刷が奇麗でないし、

完全に日本語化してないし全角文字のプログラムが奇麗でないなど

改良したいところがいっぱいありますが、タートル・グラ

フィックスがどのようなものか楽しんでいただけると思います。

また、フラクタル画像が楽しめるようにCのような制御構造と

複素関数と一次元配列をサポートしました。

三次元のタートルグラフィックスや球面上や立方体上の

タートルグラフィックスや複数のタートルのサポートなど

将来的には考えていますが、改良する時間がありません。

３５００行ちょっとのBorland C++ Builderで作った簡単な

プログラムですが、無計画で思い付くまま泥縄式に作ったので

結構時間がかかりました。

では、MICROLOGOの世界をお楽しみください。


手続き
手続きについて

組み込みの手続きは、

FD,  BK,  HT,

ST,  PU,  PD,  HOME,

SETPC, SETPW, SETX,

SETY,  SETXY,  SETH,

CS,  RT,  LT,

RANDOMIZE,  MAKE,

STOP,  OP,  TO,

END,  PUT,  LOCAL,

LISTING,  BREAK,

CONTINUE ,  SLEEP

まえへ、うしろへ,

みぎへ　、ひだりへ　,

へんすうは　、ねよ ,

やめよ　、かくれろ　、

でてこい　、いろは　、

ペンをあげろ　、

ペンをおろせ　、

もどれ　、　よこのいちは　、

たてのいちは　、いちは　、

むきは　、かけ　、

えをけせ　、しめせ　、

かえせ　、RECTANGLE

FILLRECT , ELLIPSE ,

FILLELLIPSE , LINE ,

POLYLINE ,POLYGON ,

SETBC , SETPS

です。一部の手続きしか日本語化していません。

ユーザ定義の手続きはTO手続き名　改行　を入力すれ

ば、プログラム入力のためのダイヤログボックスが開きます。

手続きはENDでおわります。STOP文で処理の終了です。

手続き名は英字＋英数字列を使うことをお勧めします。

全角文字（漢字）でも可能です。

定義は一つずつ行ってください。一度に複数の手続きを

定義することは可能ですが、チェックのために

「TO  手順名」で覗けるのは一つだけです。

TOは「てじゅんは」、ENDは「おわり」、STOPは「やめよ」

でもいいです。再帰呼び出しを使っているときは再帰についての

項目も参照してください。大事なことが書いてあります。

例　木を描くプログラムです。

TO TREE :SIDE :LEVEL

IF :LEVEL=0[STOP]

FD :SIDE RT 60 TREE :SIDE*0.7 :LEVEL-1 LT 120

TREE :SIDE*0.7 :LEVEL-1 RT 60 BK :SIDE

END

例　上のプログラムは日本語で書くと次のようになります

てじゅんは　木　：長さ　：レベル

もし　：レベル　＝　０　「やめよ」

まえへ　：長さ　みぎへ　６０

木　：長さ　＊　０・７　：レベルー１

ひだりへ　１２０

木　：長さ　＊　０・７　：レベルー１

みぎへ　６０

うしろへ　：長さ

おわり


POLYLINE
POLYLINEについて

書式　POLYLINE  数式　＆配列名

配列名の配列に複素平面上の点列として、添え字の０から

数式の値までセットされた点を結ぶ線分の列を描きます。

閉じた多角形を描くには始点と終点を与えて、数式には頂点の

数＋１を与えて下さい。

例

MAKE “A  COMPLEX  (COS  PI / ３)  SIN  PI / ３

MAKE “Z  100

MAKE “LIST｛0｝  ：Z

FOR  ：I = 1  TO  6  [

   MAKE “Z  ：Z  *  ：A

   MAKE “LIST｛：I｝：Z

]

POLYLINE  7  ＆LIST

とすれば、正六角形を描きます。


POLYGON
POLYGONについて

書式　POLYGON  数式　＆配列名

配列名の配列にセットされた複素平面上の点列を結んでできる

多角形をSETPC  でセットした色で境界を塗り、SETBS  で

セットしたブラシのスタイルとSETBC  でセットした色で内部を

塗りつぶします。POLYLINEとは異なり、始点と終点は一致させ

なくても自動的に始点と終点を結びます。したがって、数式の値は

多角形の頂点数と一致します。凸多角形である必要はないです。

SETBSは０から７の数字でセットします。

SETBCは０から１５の数字でセットし、色の

コードはペンの色コードと同じです。

SETBC  やSETBSの効果はCSやタートルの状態変化の

命令を実行するとなくなりますので、その都度指定して下さい。

例

MAKE “A  COMPLEX (COS  PI  /  3)  SIN  PI  /  3

MAKE “Z  100

MAKE “LIST｛0｝：Z

FOR  ：I=1 TO 5 [

   MAKE “Z  ：Z  ＊ ：A

   MAKE “LIST ｛：I｝：Z

]

SETPC 9

SETBC 9

POLYGON  6  ＆LIST

とすれば、赤色の正六角形を描きます。


LINE
LINEについて

書式　LINE  数式１　数式２　数式３　数式４

（数式１の値、数式２の値）と(数式３の値、数式４の値)を

座標とする点を線で結びます。

線の色はSETPCでセットします。線の幅はSETPWでセット

します。


FILLELLIPSE
FILLELLIPSEについて

書式　FILLELLIPSE  数式１　数式２　数式３　数式４

（数式１の値、数式２の値）と（数式３の値、数式４の値）を

かどの座標とする長方形に内接する楕円をSETBSで設定された

パターンとSETBCで設定された色で描きます。

SETBSは０から７の数字でセットします。SETBCは０から１５の

数字で色コードをセットします。色コードはSETPCのものと

同じです。

SETBC  やSETBSの効果はCSやタートルの状態変化の

命令を実行するとなくなりますので、その都度指定して下さい。


ELLIPSE
ELLIPSEについて

書式　ELLIPSE  数式１　数式２　数式３　数式４

（数式１の値、数式２の値）と（数式３の値、数式４の値）を

かどの座標とする長方形に内接する楕円を描きます。

線の色はSETPCで設定します。


FILLRECT
FILLRECTについて

書式　FILLRECT  数式１　数式２　数式３　数式４

（数式１の値、数式２の値）と（数式３の値、数式４の値）を

かどの座標とする長方形をSETBSで設定されたパターンと

SETBCで設定された色で描きます。SETBSは０から７の数字で

セットします。SETBCは０から１５の数字でセットし、色の

コードはペンの色コードと同じです。

SETBC  やSETBSの効果はCSやタートルの状態変化の

命令を実行するとなくなりますので、その都度指定して下さい。


RECTANGLE
RECTANGLEについて

書式　RECTANGLE 　数式１　数式２　数式３　数式４

（数式１の値、数式２の値）と（数式３の値、数式４の値）を

かどの座標とする長方形を描きます。

線の色はSETPCで設定します。


かえせ
かえせについて

書き方　かえせ　数式

関数の定義の中で「かえせ」に出会うと数式の値を関数の値と

して返します。

半角英数のOPと同じです。


しめせ
しめせについて

書き方　しめせ

ユーザーの定義した手続きと関数の名前を表示します。

半角英数のLISTINGと同じです。


えをけせ
えをけせについて

書き方　えをけせ

画面を消し、カメを画面の中央に戻し、向きを上にします。

半角英数のCSと同じです。


かけ
かけについて

書き方　かけ　数式

数式の値を表示します。

半角英数のPRINTと同じです。


むきは
むきはについて

書き方　むきは　数式

カメの向きを数式の値で指定します。

半角英数のSETHと同じです。


いちは
いちはについて

書き方　いちは　数式１　数式２

カメを数式１の値を横の座標、数式２の値を縦の座標とする

位置に移動させます。

半角英数のSETXYと同じです。


たてのいちは
たてのいちはについて

書き方　たてのいちは　数式

カメの縦の座標を指定します。カメの現在の横の座標と数式の値を

縦の座標とする位置にカメが移動します。

半角英数のSETYと同じです。


よこのいちは
よこのいちはについて

書き方　よこのいちは　数式

カメの横の座標を指定します。現在のカメの縦の座標と数式の

値を横の座標とする位置にカメが移動します。

半角英数のSETXと同じです。


もどれ
もどれについて

書き方　もどれ

カメが画面の中央に移動します。

半角英数のHOMEと同じです。


ペンをおろせ
ペンをおろせについて

書き方　ペンをおろせ

ペンをおろしてカメが移動すれば戦を描くようにします。

半角英数のPDと同じです。


ペンをあげろ
ペンをあげろについて

書き方　ペンをあげろ

ペンを上げて、移動しても線を描かないようにします。

半角英数のPUと同じです。


いろは
いろはについて

書き方　いろは　数式

数式の値の色コードをペンの色にします。

色は「くろ」「くりいろ」「みどり」「きみどり」「こいこん」

「むらさき」「くらいあおみどり」「はいいろ」「ぎん」「あか」

「こいみどり」「きいろ」「あお」「あかむらさき」「みずいろ」

「しろ」で指定することもできます。

例　いろは　あか

半角英数のSETPCと同じです。


でてこい
でてこいについて

書き方　でてこい

カメが現れる。

半角英数のSTと同じです。


かくれろ
かくれろについて

書き方　かくれろ

カメが消えます。

半角英数のHTと同じです。


やめよ
やめよについて

書き方　やめよ

手続きの中で手続きの実行を中止するのに使います。

例

てじゅんは　C　：Ｓ　：Ｌ

もし　：Ｌ＝０　「　まえへ　：Ｓ　やめよ　」

Ｃ　：Ｓ　：Ｌ－１

みぎへ　９０

Ｃ　：Ｓ　：Ｌ－１

ひだりへ　９０

おわり

半角英数のSTOPと同じです。


ねよ
ねよについて

書き方　ねよ　数式

数式の値だけ実行を中止します。

半角英数のSLEEPと同じです。


へんすうは
へんすうはについて

書き方　へんすうは　“変数名　数式

変数名であたえられる変数に数式の値をセットします。

半角英数のMAKEと同じです。


ひだりへ
ひだりへについて

書き方　ひだりへ　数式

カメの頭を左へ数式の値だけ回転します。

半角英数のLTと同じです。


みぎへ
みぎへについて

書き方　みぎへ　数式

数式の値だけカメが頭を右に回転します。

半角英数のRTと同じです。


うしろへ
うしろへについて

書き方　　うしろへ　数式

数式の値だけカメが後ろに下がります。

半角英数のBKと同じです。


まえへ
まえへについて

書き方　まえへ　数式

数式の値だけカメが前に進みます。

半角英数のFDと同じです。


SLEEP
SLEEPについて

書式　　SLEEP  数式

数式の値だけ実行を中止します。単位はミリ秒です。


LISTING
LISTINGについて

書式　LISTING

ユーザーの定義した手続きと関数の名前を表示します。


LOCAL
LOCALについて

書式　LOCAL 　“変数名　の並び

手続きや関数で局所的に使われる変数を宣言します。

大域変数と局所変数が重なったときは局所変数が使われます。


FD
FDについて

FDはFORWARDの略で前進するという意味です。

書式　FD  数式

カメが数式の値だけ頭の向いている方向に進みます。


BK
BKについて

BKは　BACKWARDの略で後退するという意味です。

書式　BK  数式

カメが数式の値だけ頭の反対方向に進みます。


HT
HTについて

HTはHIDE TURTLEの略です。

書式　HT

カメを消します。


ST
STについて

STはSHOW TURTLEの略です。

書式　ST

カメを表示します。


SETPC
SETPCについて

SETPCはSET PEN COLORの略です。

書式　SETPC  数式

ペンの色を数式の値の色にします。色の番号は

0  BLACK  黒　　　1  MAROON  栗色

2  GREEN  緑　　　3  OLIVE　黄緑

4  NAVY  濃い紺  　5  PURPLE　紫

6  TEAL  暗い青緑  7  GRAY　灰

8  SILVER  銀　　　9  RED  赤

10  LIME   濃い緑　11 YELLOW　黄

12 BLUE    青　　　13 FUCHSIA  赤紫

14 AQUA  水　　　　15  WHITE　白

です。初期値は黒です。


SETBC
SETBCについて

書式　SETBC  数式

ブラシの色を数式の値の色にします。色の番号は

0  BLACK  黒　　　1  MAROON  栗色

2  GREEN  緑　　　3  OLIVE　黄緑

4  NAVY  濃い紺  　5  PURPLE　紫

6  TEAL  暗い青緑  7  GRAY　灰

8  SILVER  銀　　　9  RED  赤

10  LIME   濃い緑　11 YELLOW　黄

12 BLUE    青　　　13 FUCHSIA  赤紫

14 AQUA  水　　　　15  WHITE　白

です。初期値は白です。


SETBS
SETBSについて

書式　SETBS  数式

ブラシのスタイル（パターン）を数式の値に対応するスタイルに

します。スタイルは

０　SETBCで指定した色で塗りつぶします。デフォルト値です。

１　中空のブラシです。

２　スラッシュ

３　逆スラッシュ

４　縦横の格子線

５　斜めの格子線

６　横線

７　縦線

です。


PUT
PUTについて

書式　PUT  数式１　数式２　数式３

数式１の値をX座標、数式２の値をY座標、数式３の値を

色のコードとして、点を表示します。座標の原点は画面の

中心です。色のコードは

0  BLACK  黒　　　1  MAROON  栗色

2  GREEN  緑　　　3  OLIVE　黄緑

4  NAVY  濃い紺  　5  PURPLE　紫

6  TEAL  暗い青緑  7  GRAY　灰

8  SILVER  銀　　　9  RED  赤

10  LIME   濃い緑　11 YELLOW　黄

12 BLUE    青　　　13 FUCHSIA  赤紫

14 AQUA  水　　　　15  WHITE　白

です。


SETPW
SETPWについて

SETPWはSET PEN WIDTHの略です。

書式　SETPW  数式

ペンの幅を数式の値に設定します。初期値は１です。


PU

PUについて

PUはPEN UPの略です。

書式　PU

ペンを上げます。移動しても跡を残しません。


PD

PDについて

PDはPEN DOWNの略です。

書式　PD

ペンを降ろします。移動すれば跡を残します。


HOME
HOMEについて

書式　HOME

画面の中央に移動します。


SETX
SETXについて

SETXはSET  Xです。

書式　SETX  数式

数式の値をカメのX座標とします。画面の中央が原点（0, 0）

です。


SETY
SETYについて

SETYはSET  Yです。

書式　SETY  数式

数式の値をカメのY座標とします。画面の中央が原点 （0, 0）

です。


SETXY
SETXYについて

SETXYはSET  X  Yです。

書式　SETXY  数式　数式

二つの数式の値をそれぞれカメのX座標とY座標とします。

画面の中央が原点（0, 0）です。


SETH
SETHについて

SETHはSET HEADINGの略です。

書式　SETH  数式

上を０とし、時計周りに角度を測り、数式の値の方向にカメの

向きを変えます。単位は度です。


PRINT
PRINTについて

書式　PRINT  数式

数式の値を専用の画面に表示します。


CS
CSについて

CSはCREAN SCREENの略です。

書式　CS

画面を消去し、カメを原点に位置し、向きを上にします。

すなわち、初期画面に戻します。


RT

RTについて

RTはRIGHTの略です。

書式　RT  数式

数式の値だけカメの向きを右に向けます。単位は度です。


LT
LTについて

LTはLEFTの略です。

書式　LT  数式

数式の値だけカメの向きを左に向けます。単位は度です。


RANDOMIZE
RANDOMIZEについて

書式　RANDOMIZE

乱数発生ルーチンを乱数値で初期化します。


MAKE
MAKEについて

書式　MAKE 　“変数名　数式

例　　MAKE  “X  （SIN　PI/３) * :Y + :Z

変数に数式の値を代入します。


STOP
STOPについて

書式　STOP

ユーザ定義の手続きにおいて、処理を終わります。

C言語の引数無しのRETURNにあたります。


OP
OPについて

書式　OP  数式

ユーザ定義の関数において、処理を終わり、数式の値を

関数値とします。Ｃ言語のRETURN　数値　にあたります。


TO
TOについて

書式　TO  手続き名または関数名

ユーザ定義の手続きまたはユーザ定義の関数を定義するとき

または修正するとき使います。ENTERキーを押せば、

プログラム入力のためのダイヤログが開きます。

一度に一つのプログラムしか呼び出せませんが、複数の手続きや

関数を定義したり修正したりできることはできます。


END
ENDについて

書式　END

ユーザ定義手続きまたはユーザ定義の関数の定義の終了を

示すためにプログラムの最後に必ず書き込みます。

ENDは必ず最後の行にENDだけ書いてください。

例

TO TREE :SIDE :LEVEL

IF :LEVEL=0[STOP]

FD :SIDE RT 60 TREE :SIDE*0.7 :LEVEL-1 LT 120

TREE :SIDE*0.7 :LEVEL-1 RT 60 BK :SIDE

END


制御構造
制御構造について

制御構造はIF文、REPEAT文、WHILE文、FOR文

および

DO UNTIL文を備えています。DO UNTIL文であって、

DO WHILE文でないので注意してください。

ループの中でBREAK文があれば、ループを抜けます。

CONTINUE文があれば、以下の文の実行を中止し、

条件判断の部分に制御を移します。

GOTO文はプログラミングするのが厄介そうだったのでありません。

IFは「もし」でもいいです。REPEATは

「くりかえせ」でも

いいです。


くりかえせ
くりかえせについて

書き方　くりかえせ　数式　「手続きの並び」

数式の値だけ「手続きの並び」を繰り返します。


もし
もしについて

書き方

もし　数式　「手続きの並び」

もし　数式　「手続きの並び」「手続きの並び」

数式の値が０でなければ、最初の「手続きの並び」を実行します。

数式の値が０であれば、第一の書式の場合はなにもしません。

第二の書式の場合は二番目の「手続きの並び」を実行します。

数式は普通論理式です。論理式は比較演算子や論理演算子を

使って作ります。論理式は真のとき１、偽のとき０と評価されます。


BREAK
BREAKについて

書式　　BREAK

ループの中で、ループを抜けるのに使います。

例

FOR  :I = 1 TO 10 [PRINT :I  IF :I = 5 [BREAK] ]

では　1から5まで表示します。


CONTINUE
CONTINUEについて

書式　CONTINUE

ループの中でCONTINUEに出会うと直ちにループの判断部に

制御が移ります。

例

FOR  :I = 1  TO  10  [IF :I > 5 [CONTINUE] PRINT :I]

1から5を表示します。


IF
IFについて

書式　IF  数式　[  手続きの並び ]

　　　IF  数式　[  手続きの並び ]  [  手続きの並び ]

IF文における数式の値はゼロのとき偽、それ以外のとき真

と解釈されます。条件式は真のとき１、偽のとき０と評価

されます。数式が真のとき最初の手続きの並びが実行され

数式が偽のとき、二番目のIF文のように二番目の手続きの

並びが与えられていれば二番目の手続きの並びが実行されま

す。IF文はネストできます。


REPEAT
REPEATについて

書式　REPEAT  数式　[ 手続きの並び ]

手続きの並びを数式の値だけ繰り返します。制御構造は

ネストできます。

例

REPEAT 4 　[ FD 100 RT 90]


WHILE
WHILEについて

書式　WHILE  数式　[ 手続きの並び ]

数式が真である限り手続きの並びを繰り返します。

例

MAKE  “X  4

WHILE 　:X>0 　[FD 100 RT 90 MAKE “X :X-1]


DO UNTIL
DO UNTILについて

書式　DO  [ 手続きの並び ]  UNTIL  数式

まず手続きの並びを実行し、数式を評価し、偽である間は

手続きの並びを繰り返します。制御構造はネストできます。


FOR
FORについて

書式　FOR  :変数名=数式１TO数式２[手続きの並び]

FOR :変数名=数式１TO数式２STEP数式３[手続きの並び]

変数を数式１の値で初期化し、その値が数式２の値以下で

あれば、手続きの並びを実行します。そして変数の値を

STEP数式３があれば数式３の値だけ、なければ１増やします。

その値が数式２の値以下であれば、再び手続きの並びを実行します。

これを変数の値が数式２の値を超えるまで繰り返します。

数式１＞数式２ならば手続きの並びは実行されません。

また数式２および数式３は最初に一度だけ評価されます。

制御構造はネストできます。数値は整数値でなくてもいいが、

正確かどうか保証しません。

例　FOR  :I  =  1  TO 10  [PRINT  :I]

書式　FOR :変数名 = 数式１DOWNTO数式２[手続きの並び]

FOR :変数名=数式１DOWNTO数式２STEP数式３[手続きの並び]

変数を数式１の値で初期化し、その値が数式２の値以上で

あれば、手続きの並びを実行します。そして変数の値を

STEP数式３があれば数式３の値だけ、なければ１減らします。

その値が数式２の値以上であれば、再び手続きの並びを実行します。

これを変数の値が数式２の値を下回るまで繰り返します。

数式１＜数式２ならば手続きの並びは実行されません。

また数式２および数式３は最初に一度だけ評価されます。

制御構造はネストできます。数値は整数値でなくてもいいが、

正確かどうか保証しません。

例FOR :I=10 DOWNTO 4 STEP 2 [PRINT  :I]


代入文
代入文について

代入はMAKE文で行います。書式は次のとおりです。

書式　MAKE 　“変数名　数式

例　　MAKE  “X  SIN(30)　 *　 :Y 　+　 :Z

MAKEは「へんすうは」でもいいです。

複素数を指示するには

COMPLEX  実部　虚部

を使います。


変数
変数について

変数名は半角３０文字までの英字＋英数字列です。手続き

および関数の仮引数や参照されるときは、:Xのように変数名

の前にコロンを付けてください。MAKEで代入するときは、

“Xのように変数名の前に引用符を付けてください。

変数名は全角漢字でもいいです。


関数
関数について

関数は

SIN,  COS,  TAN,

ASIN,  ACOS,  ATAN,

ATAN2,  POW,  LOG,

EXP,  SQRT,  ABS,

FLOOR,  CEIL,

QUOTIENT,  RANDOM,

RAND,  XCOR,  YCOR,

HEADING,  TOWARDS,

PC,  PW , DISTANCE

らんすう ,　よこのいち　、

たてのいち、むき　、

ほうこう　、いろ　、きょり

ARG , CONJ , COSH,

IMAG , LOG10 , NORM ,

POLAR , REAL ,

SINH , TANH , PI

です。

ユーザ定義関数は　TO  関数名　改行　で関数定義のための

ダイアログボックスが開きます。値を返すにはOPを使います。

関数定義のプログラムの最後にはENDが必要です。

関数の定義は一つずつ行ってください。

関数の実引数の与え方に奇妙なところがあります。

関数の引数についてを参照してください。

TOは「てじゅんは」でもいいです。

例

TO MAX :X :Y

IF :X > :Y [OP :X] [OP :Y]

END


PI
PIについて

書式　PI

円周率を返します。


DISTANCE
DISTANCEについて

書式　DISTANCE 　数式１　数式２

タートルの現在の位置と数式１および数式２で与えられる点の

距離を返します。


きょり
きょりについて

書式　きょり 　数式１　数式２

タートルの現在の位置と数式１および数式２で与えられる点の

距離を返します。

半角英数のDISTANCE　と同じです。


TANH
TANHについて

書式　TANH  数式

数式の値のTANHを返す。

引数には複素数が使えます。


SINH
SINHについて

書式　SINH  数式

数式の値のSINHを返す。

引数には複素数が使えます。


REAL
REALについて

書式　REAL  数式

数式の値の実部を返す。


POLAR
POLARについて

書式　POLAR  数式１　数式２

数式１の値を絶対値、数式２の値を偏角とする複素数を返す。


NORM
NORMについて

書式　NORM  数式

数式の値のノルムを返します。


LOG10
LOG10について

書式　LOG10  数式

数式の値の10を底とする対数を返す。

引数は複素数が使えます。


IMAG
IMAGについて

書式　IMAG  数式

数式の値の虚部を返します。


COSH
COSHについて

書式　COSH  数式

数式の値のCOSHを返す。

引数は複素数が使えます。


CONJ
CONJについて

書式　CONJ  数式

数式の値の複素共役を返します。


ARG
ARGについて

書式　ARG  数式

数式の値の偏角を返します。

引数には複素数が使えます。


いろ
いろについて

書き方　いろ

ペンの色を返します。ペンの色は「黒」は０、「栗色」は１、

「緑」は２、「黄緑」は３、「濃い紺」は４、「紫」は５、

「暗い青緑」は６、「灰色」は７、「銀」は８、「赤」は９．

「濃い緑」は１０、「黄色」は１１、「青」は１２、

「赤紫」は１３、「水色」は１４、｢白｣は１５です。


ほうこう
ほうこうについて

書き方　ほうこう　数式1　数式２

カメの現在の位置から数式１の値を横の座標とし、数式２の値を

縦の座標とする点に向かってどの方向になるか、上を０として、

時計回りに度で角度を測り、返す。


むき
むきについて

書き方　むき

カメの頭の向きを返します。


たてのいち
たてのいちについて

書き方　たてのいち

カメの縦の座標を返します。


よこのいち
よこのいちについて

書き方　よこのいち

カメの横の座標を返します。


らんすう
らんすうについて

書き方　らんすう　数式

０から数式―１の範囲の乱数を返します。


SIN
SINについて

書式　SIN  数式

サイン（正弦）を計算します。引数の単位はラヂアンです。

複素数の値を与えると複素数の値が返されます。


COS
COSについて

書式　COS  数式

コサイン（余弦）を計算します。引数の単位はラヂアンです。

複素数の値を与えると複素数の値が返されます。


TAN

書式　TAN  数式

タンジェント（正接）を計算します。引数のラヂアンは度です。

複素数の値を与えると複素数の値が返されます。


ASIN
ASINについて

書式　ASIN  数式

アークサイン（逆正弦）を計算します。

実数値を与えると－π/2～π/2の範囲にある値を返します。

引数には複素数が使えます。


ACOS
ACOSについて

書式　ACOS  数式

アークコサイン（逆余弦）を計算します。

実数値を与えると０～πの範囲にある値を返します。

引数には複素数が使えます。


ATAN
ATANについて

書式　ATAN  数式

アークタンジェント（逆正接）を計算します。

実数値を与えると－π/2～π/2の範囲にある値を返します。

引数は複素数が使えます。


ATAN2
ATAN2について

書式　ATAN2  数式１　数式２

数式１/数式２のアークタンジェント（逆正接）を計算します。

－π/2～π/2の範囲にある値を返します。

引数には複素数が使えます。


POW
POWについて

書式　POW  数式１　数式２

数式１の数式２乗を計算します。

引数には複素数が使えます。


LOG
LOGについて

書式　LOG  数式

自然対数を計算します。

引数には複素数が使えます。


EXP
EXPについて

書式　EXP  数式

E（自然対数の底）の数式の値乗を計算します。

引数には複素数が使えます。


SQRT
SQRTについて

書式　SQRT  数式

平方根を計算します。

引数には複素数が使えます。


ABS
ABSについて

書式　ABS  数式

絶対値を計算します。

引数には複素数が使えます。


FLOOR
FLOORについて

書式　FLOOR  数式

数式の値を超えない最大の整数値を計算します。

引数は実数です。


CEIL
CEILについて

書式　CEIL  数式

数式の値以上の最小の整数を計算します。

引数は実数です。


QUOTIENT
QUOTIENTについて

書式　QUOTIENT  数式１　数式２

数式１および数式２を整数値に切り捨て、数式１を数式２で

割った商を計算します。

引数は実数です。


RANDOM
RANDOMについて

書式　RANDOM  数式

乱数発生ルーチンです。

０から数式の値－１の間の乱数値を計算します。


RAND
RANDについて

書式　RAND

乱数発生ルーチンです。

０から１の間の乱数値を計算します。


XCOR
XCORについて

書式　XCOR

カメの位置のX座標を返します。


YCOR
YCORについて

書式　YCOR

カメの位置のY座標を返します。


HEADING
HEADINGについて

書式　HEADING

カメの向きを返します。


TOWARDS
TOWARDSについて

書式　TOWARDS  数式１　数式２

カメの現在の位置から（数式１、数式2）に真っ直ぐ進むために

必要なカメの向きを返します。


PC
PCについて

書式　PC

現在のペンの色番号を返します。

色の番号は

0  BLACK  黒　　　1  MAROON  栗色

2  GREEN  緑　　　3  OLIVE　黄緑

4  NAVY  濃い紺　  5  PURPLE　紫

6  TEAL　暗い青緑　7  GRAY　灰

8  SILVER　銀　　  9  RED　赤

10  LIME　濃い緑   11 YELLOW　黄

12 BLUE　青　　    13 FUCHSIA  赤紫

14 AQUA  水　　　　15  WHITE　白

です。初期値は黒です。


PW
PWについて

書式　PW

現在のペンの幅を返します。


演算子

演算子について

算術演算子は　＋、－、＊、/、％　です。

比較演算子は　>、<、>=、<=、=、!=　です。

論理演算子は　AND、OR、NOT　です。

強さは単項演算子の　＋、－、NOTが一番強くて、

次に　＊、/、％、ANDが強く、＋、－、OR　の

グループが続き、比較演算子が最も弱いです。

論理演算子の強さが通常と異なっているので注意。

したがって、

：Ｘ＊：Ｘ＋：Ｙ＊：Ｙ＜４　ＡＮＤ　：Ｃ　＞０

という条件式は意図したように働きません。

（：Ｘ＊：Ｘ＋：Ｙ＊：Ｙ＜４）　ＡＮＤ　（：Ｃ　＞０）

と括弧をこまめに付けて下さい。常識に合うように作ると

プログラムが長くなるので手を抜いています。したがって、

これは仕様であって、バグではありませんので悪しからず。

除法を表す / に対応する全角文字の記号は÷です。


関数の引数
関数の引数について

LOGOの引数はＣの引数のように括弧で囲っていません。

ただ並べているだけです。したがって、二個以上の引数をとる

関数や手続きにおいて、例えば１０とー５の引数を与えたいとき

単に１０とー５を並べたのでは１０－５の値５を最初の引数の値

として認識し、二番目の引数の値は与えられていないと認識され

ます。この時はー５を（－５）と括弧で囲んでください。

またＣのように条件式も数式として評価されますので、例えば

ABS  ：Ｚ　＜　２

のような条件式もABSの引数は：Ｚ＜２を評価し値と解釈されます。

このような時は

（ABS ：Ｚ）＜　２

と括弧を使ってください。これも仕様であってバグではありません

ので悪しからず。


＊
＊について

書式　数式１　＊　数式２

数式１と数式２の積を計算します。

数式は複素数でも大丈夫です。


/
/ について

書式　数式１　/  数式２

数式１を数式２で割った値を求めます。

/ に対応する全角文字は÷です。


%
% について

書式　数式１　%  数式２

数式１および数式２を切り捨てて整数値にし、数式１を数式２

で割ったときの余りを求めます。


+
+ について

書式　+  数式

　　　数式１　+  数式２

単項の + は何もしません。二項演算子の + は和を求めます。


-
― について

書式　―  数式

　　　数式１　―  数式２

単項の ― は数式の負数を計算します。二項演算子の ― は

差を求めます。


>
> について

書式　数式１　>  数式２

数式１が数式２より大きければ１、そうでなければ０です。


>=
>= について

書式　数式１　>=  数式２

数式１が数式２より大きか等ければ１、そうでなければ０です。


<
< について

書式　数式１　<  数式２

数式１が数式２より小さければ１、そうでなければ０です。


<=
<= について

書式　数式１　<=  数式２

数式１が数式２より小さいか等しければ１、そうでなければ０です。


=
= について

書式　数式１　=  数式２

数式１が数式２と等しければ１、そうでなければ０です。


!=
!= について

書式　数式１　!=  数式２

数式１が数式２と等しくなければ１、そうでなければ０です。


NOT
NOTについて

書式　NOT  数式

数式が０ならば１、そうでなければ０です。

０は偽、１は真と解釈されます。

普通は（NOT  数式）の形で使うことになります。


AND
ANDについて

書式　数式１　AND  数式２

数式１または数式２が０ならば０、そうでなければ１です。

０は偽、１は真と解釈されます。

数式1および数式2はともに評価されます。

普通は（数式１）AND （数式２）で使います。


OR
ORについて

書式　数式１　OR  数式２

数式１および数式２が０ならば０、そうでなければ１です。

０は偽、１は真と解釈されます。

数式1および数式2はともに評価されます。

普通は（数式１）OR （数式２）で使います。


再帰について

手続きおよび関数においては、再帰呼び出しをサポートしています。

例えば

TO  POLY  :S  :D  :I

FD  :S  RT  :D

POLY  :S  :D + :I  :I

END

のような手続きは終端再帰といいます。このような再帰は

繰り返しとして処理しています。

チェックに手を抜いているので、再帰呼び出しの後には、

同じ行に手続きを書かないようにしてください。

END行の一つ前の行で始めて再帰呼び出しがあると

終端再帰と解釈して、その後に手続きがあっても無視します。

上のような再帰手続きを実行すると無限ループになります。

実行を止めるにはESCキーを押してください。


作者よりのお願い

MICROLOGOは試作品で不都合なところが多々あると

思います。時間が取れれば改良していきたいと思います。

お気づきの点を下記までお知らせいただければ幸いです。

〒７８０　高知市曙町２－５－１

高知大学教育学部数学教室

　　　　　中村治