基礎プログラミングa 第7回 (11/7)
(Basic Programing)
0 はじめに
前回の要約
- 値を返す関数の書き方と使い方を学んだ
- 再帰を使った数値計算の方法を紹介した
- if式の文法を学び、この記法で2分岐、3分岐、4分岐
と場合分けができることを知った。
キーボードシートカット
消えたファイル |
(エクスプローラで) |
Ctrl-Z (直後なら) |
消えたタブ |
(タブブラウザ等で) |
Shift-Ctrl-T |
ページ内検索 |
(多くのアプリケーションで) |
Ctrl-F |
- 今回右図のようないくつかのショートカットを実演した。
- 消えたファイルについては
- ゴミ箱からスカベンジするという案もあるが、
- エクスプローラ上でマウスの誤操作によるドラッグ&ドロップ等で、どこかわからない場所に移動してしまう、というケースもあり、
- この Ctrl-Z を知っておくのは咄嗟の時に役立つだろう。
エラーメッセージにも慣れよう
Error |
—> |
実行できない |
「できません」 |
Warning(警告) |
—> |
可能性の示唆 |
「もしかして間違い?」 |
- 実行を試みたときに赤い線が出てきて
実行できないことがある。
- このとき Output Pane に右図のようなメッセージが表示されているだろう。

- これをなんとか読解して、誤りの(可能性が高い)場所がどこか、見つけられるようにしておこう。
- 右図では、arcs という 値(変数あるいは関数)が、「見つからない(not found)」という趣旨。
- この名前を、定義したつもりで、定義していなかったことが原因であることが多い(タイプミスなど)。
-
もう1例、以下のプログラムでは、
var ang=90
var len=100
while(len>10) {
forward(len) ; left(ang)
len=len-5 ; ang=-ang
}
以下のようなメッセージを出してくる。
Error[5,28]: value =- is not a member of Int
len=len-5 ; ang=-ang
前回の落穂ひろい
1 描画しないプログラムも作ろう
復習1 値を返す関数
- 関数定義の文法は図のようになる。
- 関数(の返す値の)型指定は、多くの場合は
省略できる(処理系が適切に推測してくれるため)、が
- 再帰関数では省略できない。
環境の準備
REPLを使えるようにする

(まだの人のみ)
別ページに沿って行っておいて下さい。)
- なお、Scala用REPLはWindowsのGUIアプリケーションではないので、
インストールが完了しても、アプリ起動のためのアイコンなどは作成されないことに注意。
実習
インストールできたら、ガイド(別ページ)に沿って、
プログラムの入力と動作を試みてみよう。
基礎編 パソコン操作とCUI
- パソコンに関する経験の浅い人や、普段あまり考えずに使ってる
人のための、
[補足1] kojo やREPLの外でも使える

- エディタ(テキストエディタ)やIDEでもプログラムの編集ができる
- エディタとしてメモ帳(Windowsのおまけ)以外のものを使うようにするといい。
(右図のように)プログラムを便利に或いはエラーを減らすための、
支援機能が提供されている。
練習
以下のような関数を作って、使って(呼び出して)見ましょう。
- kojo の中なら
- 入力は readIntで
- 結果の出力は printlnで
-
REPL なら 式(関数呼出)を入力するだけ
- 関数名を例示するが、その通りでなくていい
- 引数名(と型)は自分で考える
- 関数が返す値も(指示しないものは)考える
- 何を渡しても、”hello” と答える(値を返す)1引数の関数 hel : String
- 渡した数の3乗を計算する関数 cube
- 2つの数の積を返す関数 mul

- n の m乗(べき乗)を計算する、再帰的な関数 pow
を math.pow を使わずに、乗算の演算子だけで。
- (数式で書けば)右図のように定義される。
- プログラムの大筋は以下のような書き方になる。

- 2つの整数 n, m の 最小公倍数を求める再帰的な
関数

課題(予定)
練習 1.~4. については自分で取り組んでみること。
やってみて気づいたことや感想をご報告下さい。
(1.~4.のプログラム例を別ページに掲載したが、まずは見ずに書いてみること)
(以下は次回)
2 再帰の応用(つづき)
3 様々な描画テクニック
3.1 再帰の活用例
=>別ページ
3.2 複数のタートルを並行的に使う
=>別ページ