テキストダウンロード (text,43KB)

分類
3
ZE
新教科「情報」現職教員等講習会
補助テキスト
(講師用資料)
アルゴリズムの基礎
座学1・演習2
補助テキスト作成者
北海道札幌稲北高等学校
早苗
雅史
主
催
文部省、北海道教育委員会
会
場
北海道立教育研究所附属情報処理教育センター
期
間
平成12年7月27日(木)∼8月12日(土)
1 目的・ねらい
1_1
アルゴリズムの基本的考え
・アルゴリズム
問題を解決するための処理手順
・アルゴリズムの基本的な要素
効率と分かりやすさ
1_2
「情報」における目的
・普通教科「情報」
基本的なアルゴリズムの学習を通して,その重要性を理解
・専門教科「情報」
アルゴリズム,データ構造に関する知識・技術の習得と活用する能力・態度の育成
1_3
講座の内容
(1) アルゴリズムの概念と流れ図での表現
(2) 基本的なアルゴリズム
・集計,最大値・最小値
・整列
・探索
(3) 簡単なプログラミング
2 学習指導要領における取り扱い
2_1
−普通教科「情報」
学習指導要領における位置
「情報B」
(2)コンピュータの仕組みと働き
イ コンピュータにおける情報の処理
コンピュータの仕組み,コンピュータ内部での基本的な処理の仕組み及び簡単なアルゴリズム
を理解させる。
2_2
内容の取り扱い
・図を利用した説明などによる基本的な考え方の理解
・1 つ 1 つの命題がステップで動くことの理解
・並べ変えや探索などの基本的なもの
2_3
「コンピュータにおける情報の処理」の理解
・入力・出力,記憶,演算,制御機能の役割の理解
・処理手順を明確に記述することの必要性
・並べ替えや探索などの基本的な実習
・表計算ソフトの表機能の活用など
2
3 学習指導要領における取り扱い
3_1
−専門教科「情報」
科目「アルゴリズム」
目標
データ構造と代表的なアルゴリズムに関する知識と技術を習得させ,実際に活用する能力と態度
を育てる。
3_2
内容の構成
・数値計算の基礎
・データの型とデータの構造
・整列
・探索
・データベースの概要
3_3
内容の取り扱い
・基本的な要素を取り入れ,代表的なアルゴリズムを理解
・実習や実演を通し,アルゴリズムを適切に選択,改善する
・生徒や学校の実情に応じたプログラム言語の選択
4 アルゴリズムに関する内容
4_1
アルゴリズムの定義
明確に定義された有限個の規則の集まりであって,有限回適用することにより問題を解くもの
4_2
流れ図(フローチャート)
問題の定義,分析,または解法の図的表現であって,演算,データ,流れ,装置などを表現するた
めに記号を用いたもの
⇒ 基本的なフローチャート
4_3
構造化定理
1 つの入り口と 1 つの出口を持つようにプログラムが設計されていれば,3 つの制御構造の組合
せによって,どんなプログラム論理(ロジック)も記述できる
4_4
3 つの制御構造
・順次構造
・繰り返し構造
・選択構造
⇒ フローチャートでの表現
3
5 基本的なアルゴリズム
5_1
集計処理,最大値・最小値
・データの合計・平均
・最大値・最小値
⇒ 集計処理
5_2
データ構造
・コンピュータで扱うことができるデータの集まり
・レコード,配列
5_3
整列
・データを一定の順番に並べ替えること(整列,ソート)
・昇順(正順),降順(逆順)
・交換法,選択法,挿入法
⇒ 交換法シミュレーション
⇒ 交換法のまとめ
⇒ 整列
5_4
探索
・配列から必要なデータを探し出すこと
・線形探索,二分探索
⇒ 探索
6 プログラミング言語
6_1
プログラムとは
・コンピュータに与える命令の集まり
・プログラムを作成することをプログラミング
6_2
(1)
(2)
(3)
(4)
(5)
6_3
プログラムの手順
問題の明確化
入力データと出力結果の明確化
処理手順の表現(フローチャートの作成)
処理手順にそったプログラムの作成
プログラムの修正
様々なプログラミング言語
・BASIC
・JAVA
6_4
・COBOL
・C 言語
・DELPHI
・LISP
・LOGO
・PASCAL ・Visual Basic
使用する言語の選択
4
・生徒の実態や興味・関心に応じて
・各学校の実情(購入費用など)に応じて
6_5
考えられる言語例
・表計算ソフトのマクロ作成支援(Excel VBA)
・Windows 上で動く BASIC(10BASIC)
・ブラウザ上で動く言語(Java Script)
・その他(Visual Basic,C,LISP,Delphi,Java Applet)
7 Excel VBA
7_1
表計算ソフト「Excel」
・ワークシート,セル
・集計処理,グラフ作成,シミュレーション
・関数の利用,データベース
7_2
マクロ
Excel 上で行う様々な処理を,自動的に実行するプログラム
7_3
VBA(Visual Basic for Applications)
・マクロの命令を記述するための言語
・Microsoft Office のアプリケーション共通で利用
・プログラミング言語 Visual Basic が基本
7_4
VBA プログラミングの流れ
⇒
7_5
VBA プログラミングの流れ
VBA のよる基本的なプログラミング
・変数と式
・代入文・入力文
・繰り返し処理
・条件判断
・配列変数
⇒ 基本的なプログラミング
7_6
コードの実行をトレース (追跡)
・デバッグ機能
・アプリケーションエラーを見つけ,訂正
・項目や変数の値の監視
・1 行ずつの実行,ブレークポイントの設定,実行停止
・コードが設計どおりに機能しているかどうかを検査
⇒ ローカルウインドウでのデバッグ
5
8 JIS Full BASIC
8_1
JIS Full BASIC
・BASIC 言語の新しい日本工業規格(JIS)
・数値演算の正確さに関する厳格な規定
・論理的な構造を明確に表現するための文法
・グラフィックスに関する規定
8_2
(仮称)十進 BASIC
・JIS Full BASIC にそった BASIC 言語
・独自の拡張として複素数や有理数の計算を行うモード
8_3
どこから手に入れるのか
・著作者
文教大学教育学部 白石和夫
・「(仮称)十進 BASIC のホームページ」
http://hp.vector.co.jp/authors/VA008683/
8_4
動作環境・ファイルサイズ
・Windows95/98/NT4.0
・ファイルサイズ 854KB (2000 年 4 月 22 日,ver. 4.53)
8_5
10Basic プログラミングの流れ
⇒
8_6
10Basic プログラミングの流れ
10Basic のよる基本的なプログラミング
・変数と式
・代入文・入力文
・繰り返し処理
・条件判断
・配列変数
⇒ 基本的なプログラミング
8_7
コードの実行をトレース (追跡)
⇒
デバッグ機能
9 Java Script
9_1
Java Script とは
・スクリプト言語(短いプログラム)
・システム管理を簡単に
・JavaApplet とは別物
Netscape 社が開発
6
9_2
Java Script の特徴
・Web ブラウザ上で動作
・OS を選ばない(Java VM 上で動作)
・クライアント側で動作(cgi→サーバ側)
9_3
Java Script の欠点
・JavaScript をサポートしていないブラウザでは動かない
・NN や IE のバージョンによってかなり動作が異なる
・バグが多い
9_4
Java Script プログラミングの流れ
⇒
9_5
Java Script プログラミングの流れ
Java Script のよる基本的なプログラミング
・変数と式
・代入文・入力文
・繰り返し処理
・条件判断
・配列変数
⇒ 基本的なプログラミング
10 指導上の留意点
10_1
基本的なおさえ
・普通教科「情報」
・・・高度な内容に深入りしない
・専門教科「情報」
・・・基本的な知識の習得+活用する能力・態度の育成
10_2
流れ図について
・「情報」を学ぶ上での基本
・構造化定理は確実に指導
10_3
集計処理について
・身近な例で解説
・頭の中で処理している考え方との比較
・配列についての考え方の理解
10_4
整列と探索
・基本事項として確実に指導
・整列は「交換法」を指導
7
・探索は「線形探索」を指導
10_5
トレース
・変数の値の観察
・正確なアルゴリズムの構築
10_6
使用する言語
・生徒の実態や興味・関心に応じて
・各学校の実情(購入費用など)に応じて
11 演習
11_1 演習①
フローチャートの作成(40 分)
指定用紙へ記入
(2) VBA を用いた集計処理(40 分)
Visual Basic Editor で作成(ex_1.xls をダウンロード)
(1)
11_2 演習②
VBA を用いた整列(50 分)
Visual Basic Editor で作成(ex_2.xls)
(4) VBA を用いた探索(40 分)
Visual Basic Editor で作成(ex_3.xls(14Kb)をダウンロード)
(3)
11_3 作業用フォルダの作成
・フォルダ Kensyuu(K:)¥K** (**にログインするときの番号)
・ファイル
ex_1.xls(Sub ex_1())
ex_2.xls(Sub ex_2_1(),Sub ex_2_1())
ex_3.xls(Sub ex_3())
12 テキストの URL
12_1
テキストのページ名
・教科「情報」講習会テキスト アルゴリズムの基礎
・これだけで大丈夫
「情報」におけるプログラミング フローチャート 編
・これだけで大丈夫
「情報」におけるプログラミング Excel VBA 編
12_2
関連ページ
8
・これだけで大丈夫
「情報」におけるプログラミング
・これだけで大丈夫
「情報」におけるプログラミング
12_3
JIS Full BASIC 編
Java Script 編
テキストの URL
「数学とソフトウエア M.Sanae'S HomePage」
http://www.nikonet.or.jp/spring/sanae/
12_4
その他
「ネットワーク型教材データベース 数学のいずみ」
http://www.nikonet.or.jp/spring/
・10 進 BASIC で描くグラフィックス
・数学Aにおける「コンピュータの基礎」
・ネット上からダウンロードできる数学用フリーソフトウエア
9
演習①
フローチャートの作成
<演習 1>3 つの数字 A,B,C がある。これを昇順に
並べ替えるプログラムの流れ図を作成せよ。
<考え方>
①A>B ならば A と B を入れ替える
②A>C ならば A と C を入れ替える
③B>C ならば B と C を入れ替える
記入用紙
N0.1
<演習 2>ある西暦年号がうるう年であるかどうかを判
定するプログラムの流れ図を作成せよ。
<考え方>
①西暦年号÷4
で
余りが出る
うるう年でない
②西暦年号÷100
で
余りが出る
うるう年である
③西暦年号÷400
で
余りが出る
うるう年でない
で
余りが出ない
うるう年である
10
演習①
フローチャートの作成
記入用紙
N0.2
<演習 3>授業料の納付方法は次の要領である。これを流れ図で表せ。
1. 推薦入学生
学習成績書を提出
学習成績書を提出
推薦入学奨学金交付欄に封印
2. 一般生徒
a. 現金納付の場合
会計備え付けの一般生徒授業料納付書に記入の上,現金を添えて会計まで
b. 銀行振込の場合
会計備え付けの振込用紙を使用
口座番号 1234567 に振込み
3. 聴講生
会計備え付けの聴講生授業料納付書に記入の上,現金を添えて会計まで
*銀行振込は取り扱わない
11
演習①
フローチャートの作成
記入用紙
N0.3
<演習 4>ある人の給料(百円単位)がある。この給料の金種を求める流れ図を作成せよ。
<考え方>
①給料≧10000
1 万円札の枚数計算
給料から 1 万円札分の金額を引く
②給料≧5000
5 千札が 1 枚
給料から 5 千円分の金額を引く
③給料≧1000
千円札の枚数計算
給料から千円札分の金額を引く
④給料≧500
5 百円玉が 1 枚
給料から五百分の金額を引く
⑤給料≧100
百円玉の個数計算
給料から百円玉分の金額を引く
12
演習①
VBA を用いた集計処理
記入用紙
<演習 1>
次のように 1 列目のセルに市町村コード、2 列目のセルに学校名、3 列目のセルに生徒数が入ったデータが
15 件ある。セル(16,C)に生徒数の合計、セル(17,C)に生徒数の最大値、セル( 18,C)に生徒数の最
小値を求めるプログラムを作成しなさい。
また、市町村別の生徒数を右下のように求めるプログラムを作成しなさい。
13
演習②
VBA を用いた整列
記入用紙
<演習 2>
(1) 次のセルの数字を昇順に整列するプログラムを作成しなさい。整列方法は交換法を用いよ。
(2) (1)の整列のプログラムで、次のように整列の流れがわかるようにプログラムを変更しなさい。
14
演習②
VBA を用いた探索
記入用紙
<演習 3>
次のような 3 列目のセル(学級名)と 4 列目のセル(担任名)を配列に格納し、セル(1,A)の学級名から、
セル(1,B)に担任名を表示する線形探索法のプログラムを記述しなさい。学級名が存在しない場合はエラ
ーと表示する。
15