スライド

Download Report

Transcript スライド

学習姿勢とテスト成績の相関
グループ別の平均点
テスト成績とプリントの読み方の相関 2010年度
75
71.71
70
65
57.96
60
ただ、課題をこなすだ
けではなく、(プリントを
よく読んで)内容を理
解することが重要!
55
50
41.50
45
40
35
30
よく読む
課題部分のみ
ほとんど読まない
データ構造とアルゴリズム論
第1章 アルゴリズム
の表現-流れ図
平成27年4月17日
森田 彦
アルゴリズムとは?
問題を解決するための処理手順
例:1缶110円のジュースの(自動)販売を行う
①
②
③
<処理の流れ(アルゴリズム)>
料金を投入する
料金が不足していないかどうかを判定し、
料金≧110なら「ありがとうございます」と表示。
それ以外(料金<110)なら「お金が不足してい
ます」と表示。
流れ図による表現
開始
料金を入力
料金≧110
No
「お金が不足しています」と表示
Yes
「ありがとうございました」と表示
終了
プログラム(ソース)とは?
アルゴリズムをプログラミング言語で表現
したもの
Javaで記述
C++で記述
本章(本日)の学習のねらい
① 標準的な流れ図(JIS規格に準拠)の記
述の仕方を学ぶ。
② 流れ図を用いて簡単なアルゴリズムを
記述できるようになる。
③ アルゴリズムの(処理の)流れをつかむ
ため、トレースの仕方を身につける。
重要!
基本制御構造
1. 連接構造(順次処理)
2. 選択構造(分岐処理)
3. 反復構造(繰り返し処理)
これら3つの制御構造の組み合わせであ
らゆるアルゴリズムが表現可能。
構造化定理
数学者が証明
1-2 連接構造(順次処理)
開始
朝起きる
顔を洗う
歯を磨く
終了
例:朝起きて顔を洗って歯を磨く
上から下へ順番に処理
(一般に)順序が意味を持つ。
1-3 選択構造(分岐処理)
 2分岐処理
開始
Xの値を入力
X≧50
Yes
“合格”と表示
終了
例:テストの得点Xが50点以上
なら合格、50点未満なら不合
格と表示する。
X:50
<
≧
No
この記述も可
“不合格”と表示
Java言語ではif文で表現
Java言語ではif~else if~else文で
表現
選択構造その2
 多分岐処理1
開始
例:テストの得点Xが80点以上なら「よくで
きました」、80>X≧50なら「合格」、50点未
満なら「不合格」と表示する。
Xの値を入力
X≧80
Yes
No
X≧50
No
Yes
“よくできました”
と表示
終了
“合格”と表示
“不合格”と表示
選択構造その3
 多分岐処理2
変数の値に応じて処理を分ける。
開始
Xの値を入力
「その他」は省略も可
X
0
処理1
1
2
処理2
処理3
終了
その他
処理4
Java言語ではswitch文
で表現
【基礎課題1-1 】(p.4)
開始
Xを入力すると、それが偶数か
奇数かを表示するアルゴリズム
Xの値を入力
演習時に【応用課題1-A】、
【基礎課題1-2】、【応用課題
1-B】をやって下さい。
Y← X % 2
Y=0
No
Yes
“偶数です”と表示
終了
“奇数です”と表示
1-4 反復構造(繰り返し処理)
 決まった回数の繰り返し
例:腕立て伏せを5回行う。
開始
トレース表
i←1
iの値
No
1
2
3
4
6
5
腕立て伏せ回数 5
1
2
3
4
i≦5
Yes
腕立て伏せをする。
i ← i+1
終了
p.6でもう一度
確認
Java言語ではfor文で表現
反復構造その2
トレースとは?
 アルゴリズム(流れ図)の処理過程をた
どって行くこと。 具体的には、変数の値
の変化をたどること。 → トレース表
 アルゴリズムの理解 ← トレースが不可
欠
 本講義で学習するアルゴリズムを理解で
きるかどうか? → 理解できるまでト
レースするかどうかにかかっている。
反復構造その3
 【基礎課題1-3】 (p.9)
1~5までを順に表示させる
開始
開始
i←1
i i←
←0
i≦5
Yes
No
i≦
i≦4
Yes
i ← i+1
iを表示
i ← i+1
No
終了
iを表示
終了
※ 「iを表示」と「i ← i+1」を入れ替え
反復構造その5
 一般的な終了条件による繰り返し(p.7 B)
例:可能な限り腕立て伏せを行う
開始
続行可能
No
Java言語では
while文で表現
Yes
腕立て伏せをする。
終了
理解度チェック → 【基礎課題1-4】、【応用課題1-E】
反復構造その4
ループ端記号を使った表現
例:処理AをN回繰り返す
(1)列挙型
(2)「変数名:初期値,増分,
終値」 提示型
(3)終了条件提示型
i←1
ループ
i=1,2,3,・・・,N
ループ
i:1,1,N
処理A
処理A
ループ
ループ
ループ
i>N (となるまで)
処理A
i ← i+1
ループ
理解度チェック → 【基礎課題1-5】
 演習にとりかかってください。
 少なくとも、基礎課題のチェックは終えること。
 演習の時間内に基礎課題を終了できなかった
場合は、必ず次週までに課題を終えて
おいて下さい。基礎課題を翌週に持ち越す
と、本科目の修学が困難になります。
 応用課題まで含めて全ての課題のチェックを終
えた人は退出して結構です。