Turtle Cafe
>>
Turtle Cafe
タートルと言霊で学ぶ論理思考とプログラミング
version 1.15 (2010/5/1)
CreW Project
http://www.crew.sfc.keio.ac.jp/
目次
1 言霊プログラムを動かしてみよう
1.1 学習目標
1.2 基本的な使い方
1.2.1 エディタのインストール
1.2.2 論プロエディタの基本
1.2.2.1 起動のやり方
1.2.2.2 各部名称・機能
1.2.2.3 リソース
1.2.3 プログラム作成の流れ
1.2.3.1 プログラムの編集
1.2.3.2 コンパイル
1.2.3.3 実行
1.3 発展的な使い方
1.3.1 サンプルプログラムの使い方
1.3.1.1 サンプルプログラムの使い方
1.3.1.2 リソースとファイルシステムの関係
1.3.2 その他の機能
1.3.3 ショートカットキー
2 初めての言霊タートルプログラミング
2.1 学習目標
2.2 最初のプログラムの解説
2.2.1 家を書くサンプルプログラム
2.2.2 プログラムの要素
2.2.2.1 命令
2.2.2.2 命令の区切り
2.2.2.3 コメント
2.3 プログラムの作成手順
2.3.1 ファイルの作成
2.4 プログラムミスと対処
2.4.1 コンパイルエラー
2.4.2 バグ
2.5 タートルを使って好きな図形を書くためのテクニック
2.5.1 曲線が書きたい
2.5.2 タートルの最初の位置を変えたい
2.6 練習問題
2.6.1 問題1:五角形を描こう
2.6.2 問題2:星を描こう
2.6.3 問題3:好きな図形を描こう
3 コンピュータに情報を記憶させてみよう(変数)
3.1 学習目標
3.2 変数
3.2.1 変数と値
3.2.2 変数を使ったプログラムの実行
3.2.2.1 変数の宣言
3.2.2.2 変数へ値を代入する
3.2.2.3 変数を評価して値にする
3.2.3 複数の変数と変数名
3.2.3.1 複数の変数と変数名
3.2.3.2 プログラムの実行過程
3.3 コンピュータに計算をさせる
3.3.1 計算式を使ったプログラム
3.3.2 計算式を使ったプログラムの実行
3.3.3 計算式と代入文を使ったプログラムの実行
3.4 ユーザと対話する(インタラクティブ)なプログラム
3.4.1 入力を受け付ける
3.4.2 ユーザにメッセージを出す
3.5 おみくじ
3.5.1 乱数
3.6 練習問題
3.6.1 問題1:五角形や星を描くプログラムの改造
4 プログラムに知性を(条件分岐)
4.1 学習目標
4.2 条件分岐を使う
4.2.1 条件分岐
4.2.2 条件式の評価
4.2.2.1 成立する場合
4.2.2.2 不成立(false)する場合
4.2.3 複数の分岐
4.2.3.1 じゃんけんプログラム
4.2.3.2 じゃんけんの手のデータの扱いについて
4.2.3.3 複数の条件分岐
4.3 いろいろな条件式
4.3.1 比較演算子
4.3.2 論理演算子
4.3.2.1 論理演算子の評価の過程
And演算子が成立(true)する場合
And演算子が不成立(false)する場合
4.4 変数の有効範囲
4.5 練習問題
4.5.1 問題1:絵の描き分けプログラムを作ろう
4.5.2 問題2:おみくじプログラムを作ろう
5 コンピュータの得意な仕事(繰り返し)
5.1 学習目標
5.2 繰り返し
5.2.1 何を繰り返すのか
5.2.2 繰り返しを使ったプログラム
5.2.2.1 プログラムのフローチャート
5.2.2.2 繰り返しのフローチャート
5.2.3 繰り返しを使ったプログラムの実行過程
5.2.3.1 変数の宣言
5.2.3.2 変数を初期化する(1を代入)
5.2.3.3 変数を評価して条件を判定する
5.2.3.4 変数に1を加える
5.3 応用:円を書くプログラム
5.3.1 円を書きつづけるプログラム
5.4 練習問題
5.4.1 問題1:円を描くプログラムを改良しよう
5.4.2 問題2:円の描かれ方について考察しよう
5.4.3 問題3:五角形や星を繰り返しを使って描こう
6 ブロックの入れ子構造
6.1 学習目標
6.2 繰り返しの入れ子
6.2.1 たくさんの円を書くプログラム
6.2.2 ブロックの入れ子
6.2.3 インデント
6.3 奇数と偶数を判定する
6.4 応用:花を描くプログラム
6.4.1 花びらを描く
6.4.2 花を描く
6.5 練習問題
6.5.1 問題1:四角形と三角形を交互に100個描くプログラムを作ろう
6.5.2 問題2:貝殻を描くプログラムを作ろう
6.5.3 問題3:タイヤを描くプログラムを作ろう
6.5.4 問題4:ドラえもんを描くプログラムを作ろう
6.5.5 問題5:キーボードを描くプログラムを作ろう
7 はじめてのCUIプログラム
7.1 学習目標
7.2 はじめてのCUIプログラム
7.2.1 CUIとは
7.2.2 情報の表示とユーザ入力の受け取り
7.2.2.1 入力を受け付ける命令
7.2.2.2 コンソールに出力する命令
7.2.3 変数の型-文字列型
7.3 入力、処理、出力
7.3.1 西暦和暦変換プログラム
7.3.2 変数の型-整数型
7.4 変数の型とキャスト
7.4.1 平均得点計算プログラム
7.4.2 変数の型-実数型
7.4.3 キャスト(型変換)
7.5 CUIプログラムの作り方
7.5.1 クラス(ファイル)の作り方
7.5.2 新しい命令-変数の型と変数宣言
7.6 練習問題
7.6.1 問題1:体型評価プログラムを作ろう
7.6.1.1 概要
7.6.1.2 機能
7.6.1.3 エラー処理
7.6.1.4 プログラム設計条件
7.6.2 問題2:恋愛占いプログラムを作ろう
7.6.2.1 概要
7.6.2.2 機能
7.6.2.3 エラー処理
7.6.2.4 プログラム設計条件
7.6.3 問題3:単位取得状況評価プログラムを作ろう
7.6.3.1 概要
7.6.3.2 機能
7.6.3.3 エラー処理
7.6.3.4 プログラム設計条件
7.7 発展問題
7.7.1 問題1:脳トレ 論プロ風
7.7.1.1 概要
7.7.1.2 機能
7.7.1.3 エラー処理
7.7.1.4 プログラム設計条件
7.7.2 問題2:マイホーム大作戦
7.7.2.1 概要
7.7.2.2 機能
7.7.2.3 エラー処理
7.7.2.4 プログラム設計条件
7.7.3 問題3:ザ・バイナリサーチ
7.7.3.1 概要
7.7.3.2 機能
7.7.3.3 エラー処理
7.7.3.4 プログラム設計条件
8 たくさんの亀
8.1 学習目標
8.2 複数の亀を使う
8.2.1 2匹の亀を使うプログラム
8.2.2 亀(オブジェクト)の生成
8.2.3 亀(オブジェクト)への命令
8.3 同時に動いているように見せるために
8.4 練習問題
8.4.1 問題1:たくさんの亀で絵を描こう
9 アニメーション入門
9.1 学習目標
9.2 アニメーションの基本
9.2.1 回る車
9.2.2 アニメーションの基本構造
9.2.3 アニメーションをするための新しい命令
9.2.4 円を描く車
9.3 座標の制御
9.3.1 上向きのまま右に動かす
9.3.2 XY座標設定命令を使う
9.4 大きさの変更(拡大/縮小)
9.4.1 大きさを変更するプログラム
9.4.2 徐々に大きくする
9.5 練習問題
9.5.1 流れ星アニメーションを作ろう
10 ぱらぱら漫画アニメーション
10.1 学習目標
10.2 オブジェクトを隠す/出現させる
10.3 ぱらぱら漫画アニメーション
10.3.1 見た目を別のオブジェクトのものに
10.3.2 人を動作させる
10.3.3 背景を動かす(画面のスクロール)
10.4 文字をオブジェクトして扱う
10.4.1 文字を回す
10.4.2 文字を変化させる
10.5 練習問題
10.5.1 問題1:アニメーションを作ろう
11 ゲームを作ろう!
11.1 学習目標
11.2 キーボード入力の判定
11.2.1 キーコードの取得
11.2.2 キーコードを調べる
11.3 マウス入力の判定
11.3.1 マウスの位置を調べる
11.3.2 マウスが押されているかどうか調べる
11.3.3 マウス入力を詳しく調べる
11.4 あたり判定
11.4.1 2つのオブジェクトのあたり判定
11.4.2 座標とオブジェクトのあたり判定
11.5 課題
11.5.1 簡単なゲームを作ろう
12 プログラムの構造化(1)(関数・引数)
12.1 学習目標
12.2 関数
12.2.1 関数とは
12.2.2 四角形を描くプログラム
12.2.3 関数の作り方
12.2.3.1 関数定義と関数呼び出し
12.2.3.2 関数定義の注意点
12.2.4 四角形を3つ描くプログラム
12.2.5 関数の処理の順序
12.3 引数あり関数
12.3.1 引数とは
12.3.2 大きさを変えて四角形を描くプログラム
12.3.3 引数あり関数の宣言と呼び出し
12.4 関数を用いたプログラムの構造化
12.4.1 窓付きの家を描くプログラム(関数なし)
12.4.2 窓付きの家を描くプログラム(1レベルを関数化)
12.4.3 窓付きの家を描くプログラム(2レベルを関数化)
12.5 引数を用いた関数の抽象化
12.5.1 窓付きの家を描くプログラム(引数を用いた、四角形を描く関数の抽象化)
12.5.2 窓付きの家を描くプログラム(引数を用いた、多角形を描く関数の抽象化)
12.6 課題
12.6.1 問題1-1:中心角を指定して円弧を描く関数を作ろう
12.6.2 問題1-2:円弧を描く関数を使って猫の目を描こう
12.6.3 問題1-3:円弧を描く関数を使って蝶を描こう
12.6.4 問題1-4:円弧を描く関数を使って花を描こう
12.6.5 問題2:入力によって猫の目、蝶、花を描き分けるプログラムを作ろう
12.7 おまけ問題
12.7.1 再帰を使って木を描くサンプルプログラム
12.7.2 おまけ問題1:再帰を使って自然な木を描くプログラム
12.7.3 おまけ問題2:再帰を使ってコッホ曲線を描くプログラム
13 プログラムの部品化(2)(戻り値)
13.1 学習目標
13.2 入力・処理・出力
13.2.1 プログラムの入出力
13.2.1.1 累乗計算プログラムの入出力
13.2.1.2 一般的なプログラムの入出力
13.2.2 関数の入出力
13.2.2.1 累乗を計算する関数の入出力
13.2.2.2 一般的な関数の入出力
戻り値とは
戻り値あり関数の定義と呼び出し
13.3 入出力を持つ関数を用いたプログラムの構造化
13.3.1 西暦和暦変換プログラム(関数なし)
13.3.2 西暦和暦変換プログラム(1レベルを関数化)
13.3.3 西暦和暦変換プログラム(2レベルを関数化)
13.4 練習問題
13.4.1 問題1:体型評価プログラムを作ろう
13.4.1.1 概要
13.4.1.2 機能
13.4.1.3 エラー処理
13.4.1.4 プログラム設計条件
13.4.2 問題2:恋愛占いプログラムを作ろう
13.4.2.1 概要
13.4.2.2 機能
13.4.2.3 エラー処理
13.4.2.4 プログラム設計条件
13.4.3 問題3:単位取得状況評価プログラムを作ろう
13.4.3.1 概要
13.4.3.2 機能
13.4.3.3 エラー処理
13.4.3.4 プログラム設計条件
13.5 発展問題
13.5.1 問題1:脳トレ 論プロ風
13.5.1.1 概要
13.5.1.2 機能
13.5.1.3 エラー処理
13.5.1.4 プログラム設計条件
13.5.2 問題2:マイホーム大作戦
13.5.2.1 概要
13.5.2.2 機能
13.5.2.3 エラー処理
13.5.2.4 プログラム設計条件
13.5.3 問題3:ザ・バイナリサーチ
13.5.3.1 概要
13.5.3.2 機能
13.5.3.3 エラー処理
13.5.3.4 プログラム設計条件
14 集合データ構造とアルゴリズム
14.1 学習目標
14.2 入れ物を使ったプログラム
14.2.1 カードを出し入れするプログラム
14.2.1.1 break文
14.2.2 入れ物に関する新しい命令
14.2.2.1 入れ物を作る命令
14.2.2.2 追加と削除
14.2.2.3 カーソルに関する命令
14.2.2.4 その他の命令
14.2.3 カードに関する新しい命令
14.2.3.1 カードを作る命令
14.2.3.2 その他の命令
14.3 ソートアルゴリズム
14.3.1 ソートアルゴリズムとは
14.3.2 最小値選択法
14.3.2.1 最小値選択法のフローチャート
14.3.2.2 最小値選択法を作る準備
14.3.2.3 問題1:カードの準備
14.3.2.4 問題2:カードの並び替え その1
14.3.2.5 問題3:カードの並び替え その2
14.3.2.6 問題4:カードの並び替え その3
索引
Turtle Cafe
>>