論理思考とプログラミング 第第6回 - 1時限目skk/lt2009f/material/06/...logical...
TRANSCRIPT
●●● Logical Thinking and Programming
論理思考とプログラミング第6回 1時限目第6回-1時限目
アルゴリズムの発明と構築アルゴリズムの発明と構築
今日の授業の流れLogical Thinking
今日の授業の流れ
1時限目1時限目講義
前回の復習前回の復習
1限目の演習範囲の解説
演習演習Project10 並び替えをしてみよう<練習問題>
2時限目講義
2限目の演習範囲の解説
演習辞書を作 う
Logical Thinking and Programming ●●●
Project11 辞書を作ってみよう
前回授業の復習
授業情報Logical Thinking授業情報
Webhttp://www.ht.sfc.keio.ac.jp/~skk/lt2009f/SFSからたどれますSFSからたどれます。
教材や配布資料が閲覧できる
授業で使うソフトウェアがダウンロードできる
メールル
スタッフ用メーリングリスト[email protected]@ jp
クラス用メーリングリスト[email protected]
Logical Thinking and Programming ●●●
前回の復習Logical Thinking
前回の復習
並び ゴ ズ並び替えアルゴリズムの理解と実装
小値選択法小値選択法
未処理束にあるカードをすべてチェックして,一番小さな数字を持つカードを探していく.
カードがN枚ある場合の検索回数は,
(N-1)+(N-2)+(N-3)+…+1=N×(N-1)/2( ) ( ) ( ) ( )
できなかった人もいると思うので 回答を示しますできなかった人もいると思うので,回答を示します.
Logical Thinking and Programming ●●●
フローチャートLogical Thinking
フロ チャ ト
ジ120 ページのフローチャートを見ながら話を聞いて下さい.
小値候補
ソート済束
検索済束検索済束
未処理束
Logical Thinking and Programming ●●●
画面のレイアウト
小値選択法の実装1Logical Thinking
小値選択法の実装1
フローチャート ことだまのスクリプトに
未処理束に入っているものの個数を
フロ チャ ト ま クリ近い説明
数を調べる
未処理束のカーソル位置にあるものの数値が 小値候補のカーソル位置にあるものの数値より小さいかどうかを調べる
Logical Thinking and Programming ●●●
小値選択法の実装2Logical Thinking
小値選択法の実装2
小さければ:
1.検索済束の 後に 小値候補のカーソル位置にあるものを追加する追加する
2. 小値候補の先頭に未処理束のカーソル位置にあるものを追加する追加する
小値候補より小さいものが見つかったので 小値候補からカードを取り除たので, 小値候補からカ ドを取り除いて,見つかった数の小さなカードを小値候補に置く.
小さくなければ:
検索済束の 後に未処理束の
Logical Thinking and Programming ●●●
検索済束 後 未処 束カーソル位置にあるものを追加する.
小値選択法の実装3Logical Thinking
小値選択法の実装3
未処理束に入っているものの個数が0と等しいかどうかを調べる数
入っていればなにもしない入 れ な も な
未処理束にカードがなければ,
1 ソ ト済束の 後に 小値候補の1.ソート済束の 後に 小値候補のカーソル位置にあるものを追加する.
2.検索済束にあるすべてのものを未処理束に追加する理束に追加する.
3. 小値候補の先頭に未処理束のカーソル位置にあるものを追加する.
Logical Thinking and Programming ●●●
カード全体の処理が終わったので,検索済束にあるカードをすべて未処理束に移すなどの,リセット作業をする.
小値選択法の実装4Logical Thinking
小値選択法の実装4
1.ソート済束の 後に 小値候補のカーソル位置にあるものを追加する.
束 値 択 を2.未処理束の 小値選択法をポーズにする.
全部の検索が終わったので, 小値候補を移動させて,スクリ全部の検索が終わったので, 小値候補を移動させて,スクリプトの動作を止める.
Logical Thinking and Programming ●●●
全部のスクリプトLogical Thinking
全部のスクリプト
Logical Thinking and Programming ●●●
フローチャートからのプログラミングLogical Thinking
フロ チャ トからのプログラミング
が大きなフローチャートがあっても,恐れない.
一つ一つの処理が プログラミング(ことだまつ つの処理が,プログラミング(ことだま上)ではどのような意味を持つのかを考えながら フロ チャ トどおりに実装するがら,フローチャートどおりに実装する.
授業後半 も同様授業後半のJava でも同様.
Logical Thinking and Programming ●●●
配布資料Logical Thinking
配布資料
第6回 演習チェックシート
白紙1枚白紙1枚フローチャートを記述するため
Logical Thinking and Programming ●●●
1時限目の目標Logical Thinking
1時限目の目標
新しい(並び替え)アルゴリズムを分析し,プログラムを書けるようになる
Logical Thinking and Programming ●●●
講師によるデモLogical Thinking
講師によるデモ
第6回 > 練習問題10.1
Logical Thinking and Programming ●●●
第6回 > 練習問題10.1
1時限目の演習範囲Logical Thinking
1時限目の演習範囲
並び替 を う 練Project10 並び替えをしてみよう<練習問題>
テキストの範囲P.131
指定問題先週 練習問題先週の練習問題
やってみよう No.10-2(P.127)やってみよう No.10-3(P.130)やってみよう No.10 3(P.130)
練習問題 10.1(P.131)
発展問題練習問題 10.2(P.131)練習問題 10.3(P.131)
Logical Thinking and Programming ●●●
「練習問題10 1」について1Logical Thinking
「練習問題10.1」について1挿入法の概要挿入法の概要
未処理束の先頭のカードの数値を調べ,ソート済束の適切な位置にカードを「挿入」することを繰り返すことによっ切な位置にカ ドを 挿入」することを繰り返すことによって,並び替えを行います
ソート済み束にはどんなカードよりも大きな数値のカード(999のカード)が 初から入っています(999のカード)が 初から入っています
授業ページに 実行の様子を録画した デモビデオ授業ペ ジに,実行の様子を録画した,デモビデオがあるので,並び替えの様子を観察してアルゴリズムを理解すること
Logical Thinking and Programming ●●●
「練習問題10 1」について2Logical Thinking
「練習問題10.1」について2理解したアルゴリズムを フロ チ トにしてみまし う理解したアルゴリズムを,フローチャートにしてみましょう
どのような命令が使えるか,Squeakの画面を確認しながら書くとよい
小値選択法のフローチャートを参考にすると書きやすい小値選択法のフロ チャ トを参考にすると書きやすい
どんなアルゴリズムでも,「順次」,「分岐」,「繰り返し」を組み合わせて実現できる
Squeakでは 繰り返し構造は一回しか使えないことに注意せよSqueakでは,繰り返し構造は一回しか使えないことに注意せよ
はじめ はじめ は じめ
命令A 何かを調べて
Yes No
何 か を 調 べて(繰り返 す か )
Y e s
N o
命令B命令A 命令B
繰 り返 し た い命 令
Logical Thinking and Programming ●●●
おわりおわり お わ り
「練習問題10 1」について3Logical Thinking
「練習問題10.1」について3
トが かどうか ビ をフローチャートが正しいかどうか,レビューをしてみましょう
以下のような場合に,正しく並び替えができるでしょうか?
が う あれば 実装をフローチャートが正しいようであれば,実装をしてみましょう
Logical Thinking and Programming ●●●
●●● Logical Thinking and Programming
論理思考とプログラミング第6回 2時限目第6回-2時限目
アルゴリズムの発明と構築アルゴリズムの発明と構築
2時限目の目標Logical Thinking
2時限目の目標
検索アルゴリズムを理解し,それを応用した簡単なソフトウェア(ミニゲーム)を作成する
Logical Thinking and Programming ●●●
講師によるデモ1Logical Thinking
講師によるデモ1
第6回 > Project11 > 11.1第6回 > Project11 > 11 2第6回 > Project11 > 11.2
第 第
Logical Thinking and Programming ●●●
第6回 > Project11 > 11.1 第6回 > Project11 > 11.2
講師によるデモ2Logical Thinking
講師によるデモ2
第 練第6回 > Project11 > 練習問題11.1第6回 > Project11 > 練習問題11.2j第6回 > Project11 > 練習問題11.3
第6回 > Project11 > 練習問題11.1 第6回 > Project11 > 練習問題11.2 第6回 > Project11 > 練習問題11.3
Logical Thinking and Programming ●●●
第6回 Project11 練習問題11.1 第6回 Project11 練習問題11.2 第6回 Project11 練習問題11.3
練習問題11.1 Logical Thinkingタイピングゲームの仕様
タ を押すと 絵が表 されるスタートを押すと,絵が表示される
単語を入力し,決定を押す
ば が正しく押されていれば,次の問題が表示される
単語が間違えていれば,ボタンを押しても進まない
問題の出題が全て終わると,結果を表示する
Logical Thinking and Programming ●●●
練習問題11.2Logical Thinkingクイズゲームの仕様
タ を押すと 問題が表 されるスタートを押すと,問題が表示される
答えのボタンを押す
が問題の出題が全て終わると,結果を表示する
Logical Thinking and Programming ●●●
練習問題11.3Logical Thinking記憶君の仕様
質問を 力 質問ボタ を押す質問を入力し,質問ボタンを押す
既に質問の答えが登録されていれば,その答えを表示する
新しい質問なら,解答を入力するためのフォームを表示する
フォームに答えを入力して,教えるボタンを押すと,質問と解答が登録される答が登録される
(使えば使うほどコンピュータが賢くなる)
Logical Thinking and Programming ●●●
2時限目の演習範囲Logical Thinking
2時限目の演習範囲
並2種類の並べ替えを完成させよう
Project11 辞書を作ってみようProject11 辞書を作ってみよう
テキストの範囲
P 133 P 146P.133~P.146指定問題
練習問題11.1~11.3(P.144~146)から1問選択
発展問題
なし
Logical Thinking and Programming ●●●
指定問題の取り組み方Logical Thinking
指定問題の取り組み方
考 書テキスト P.133~P143を参考に,絵辞書を完成させる
練習問題11.1~11.3のうち,好きな1問を選び 絵辞書を改造して完成させるび,絵辞書を改造して完成させる
Logical Thinking and Programming ●●●
中間課題Logical Thinking
中間課題
生活の中にある何らかのシステムのフローチャートを作る.
例)バスに乗る
例2)掛け算を筆算で解く例2)掛け算を筆算で解く
どのようなシステムに関するフローチャートなのかを文章で記述してください.
Logical Thinking and Programming ●●●
中間課題Logical Thinking
中間課題
期限:2009 / 11 / 16, 23:59 まで
提出形態:doc docx または pdf 枚数制限提出形態:doc, docx, または pdf.枚数制限はなし.
提出方法 授業ウ ブ 第6回に設置される提提出方法:授業ウェブ 第6回に設置される提出フォームより.
Logical Thinking and Programming ●●●