情報B アルゴリズム 栃木県立鹿沼東高等学校 情報科 山﨑 貴史. アルゴリズムとコンピュータ z コンピュータ(計算機) 「命令しないとただの箱」 処理手順(アルゴリズム)が必要 → 表現方法はプログラム言語 z プログラム言語 C言語、COBOL、BASIC など → コンピュータ・人間どちらにとっても.

Slides:



Advertisements
Similar presentations
1 情報基礎 A 第 9 週 プログラミング入門 VBA の基本文法 1 準備・変数・データの入出力 徳山 豪・全 眞嬉 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野.
Advertisements

VBA の基礎 (Visual Basic for Application) 国立教育政策研究所 坂谷内 勝.
情報処理基礎 A ・ B 第 5 回 プログラミング入門 操作の自動化を実現する仕組み. 2004/11/16 ・ 17 情報処理基礎 A ・ B 2 本日の内容 処理の自動化~プログラムの概念 ハードウェアとソフトウェア プログラミング言語 Excel における処理の自動化 入力支援の機能 分析ツール.
小テスト解説 問1 次の中置記法で書かれた数式を、前置記法、後 置記法に直せ。 12 × 23 +( 34 + 45 ) × ( 56 + 67 ) × 78 + × 23 +( 34 + 45 ) × ( 56 + 67 ) × 78 + 89  前置記法 12 x 23 + (+ 34.
「コンピュータやネットワーク等の活用事例」
データ構造とアルゴリズム論 第5章 整列(ソート)のアルゴリズム
第10回 整列 ~ バブルソート,挿入ソート,選択ソート~
第11回 整列 ~ シェルソート,クイックソート ~
データ構造とアルゴリズム論 第5章 整列(ソート)のアルゴリズム
第11回 整列 ~ バケットソート,基数ソート,ヒープソート~
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
数値計算及び実習 第3回 プログラミングの基礎(1).
第10回 ソート(1):単純なソートアルゴリズム
C言語 配列 2016年 吉田研究室.
5年  面積.
第6章 2重ループ&配列 2重ループと配列をやります.
第9回 今日の目標 §3.2 アルゴリズム 問題解決の手順を示せる アルゴリズムの条件と処理要素を示せる
実習4 2次元テーブルの利用 フローチャートの作成.
岩井 儀雄 コンピュータ基礎演習  ー探索、整列ー 岩井 儀雄
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
情報基礎A 第11週 プログラミング入門 VBAの基本文法3 配列・For~Next
湘南工科大学 2013年12月10日 プログラミング基礎1 湘南工科大学情報工学科 准教授 小林 学.
①データ構造 ②アルゴリズム ③プログラム言語 ④マークアップ言語
1 式の計算 1章 式の計算 §2 単項式の乗法・除法         (2時間).
実習3 ページコントロール フローチャートの作成.
データ構造とアルゴリズム論 第7章 探索のアルゴリズム
配列(1) 第9回目 [6月15日、H.16(‘04)] 本日のメニュー 1)前回の課題について 2)前回の宿題について 3)配列 4)課題
プログラミング基礎a 第8回 プログラムの設計 アルゴリズムとデータ構造
第7回 条件による繰り返し.
学習の流れ 本時のねらい 「2次方程式を利用して、いろいろな問題を解決しましょう。」 ↓ 課題の提示 カレンダー 図形での活用場面4
【プログラミング応用】 必修2単位 通年 30週 授業形態:演習.
後期中間試験練習問題 12月3日(月)9:00~ 第3演習室.
プログラミング入門 電卓を作ろう・パートIV!!.
高度プログラミング演習 (03).
前回の練習問題.
実 習 4 2次元テーブルの利用.
第7回 条件による繰り返し.
高度プログラミング演習 (02).
 情報の授業 アルゴリズムとプログラム(1) Go.Ota.
データ構造とアルゴリズム論 第6章 整列(ソート)のアルゴリズム
データ構造とアルゴリズム論 第1章 アルゴリズムの表現-流れ図
四則演算,変数 入力文,出力文,代入文, ライブラリ関数
アルゴリズムとプログラミング (Algorithms and Programming)
正多角形の作図 プログラミングで多角形を描く方法を考えよう 1時間目.
プログラミング基礎a 第8回 プログラムの設計 アルゴリズムとデータ構造
データ構造とアルゴリズム論 第5章 整列(ソート)のアルゴリズム
プログラミング 4 整列アルゴリズム.
2009/10/23 整列アルゴリズム (1) 第4講: 平成21年10月23日 (金) 4限 E252教室 コンピュータアルゴリズム.
プログラミング 4 探索と計算量.
データ構造とアルゴリズム論 第5章 整列(ソート)のアルゴリズム
復習 一定回数を繰り返す反復処理の考え方 「ループ」と呼ぶ false i < 3 true i をループ変数あるいはカウンタと呼ぶ
プログラムの基本構造と 構造化チャート(PAD)
アルゴリズムとデータ構造 --- 理論編 --- 山本 真基
基本情報技術概論(第10回) 埼玉大学 理工学研究科 堀山 貴史
5年 算数 「面積(平行四辺形)」.
行列式 方程式の解 Cramerの公式 余因数展開.
情報基礎Ⅱ (第1回) 月曜4限 担当:北川 晃.
プログラミングⅡ 第2回.
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
アルゴリズムとプログラミング (Algorithms and Programming)
基本情報技術概論(第5回) 埼玉大学 理工学研究科 堀山 貴史
基本情報技術概論(第5回) 埼玉大学 理工学研究科 堀山 貴史
アルゴリズム入門 (Ver /10/07) ・フローチャートとプログラムの基本構造 ・リスト ・合計の計算
小学校算数単元計画【第6学年:円の面積(どんどんコース)】
参考:大きい要素の処理.
本時の目標 いろいろな立体の表面積を求めることができる。
プログラミングの原理 データ構造とプログラミング (第4回).
アルゴリズム ~すべてのプログラムの基礎~.
プログラミング論 バイナリーサーチ 1.
ファーストイヤー・セミナーⅡ 第10回 if文による選択処理(2).
Presentation transcript:

情報B アルゴリズム 栃木県立鹿沼東高等学校 情報科 山﨑 貴史

アルゴリズムとコンピュータ z コンピュータ(計算機) 「命令しないとただの箱」 処理手順(アルゴリズム)が必要 → 表現方法はプログラム言語 z プログラム言語 C言語、COBOL、BASIC など → コンピュータ・人間どちらにとっても わかりやすさが必要!

アルゴリズムのわかりやすさ (1) z 複雑なものを整理 シンプル イズ ベスト! → 箇条書き(場合分け)、短文・記号化 <文章> 図形の面積を求めるとき、その形で求め方が 変わります。正方形や長方形それから平行四 辺形の場合はたてと横をかけて計算しますが 、台形の場合はまず上底と下底を加え、それ に高さをかけてさらに2で割ります。三角形 の場合は底辺と高さをかけて2で割り、円の 場合半径と半径をかけたものに円周率 π をか けて計算します。 <わかりやすくした例> 図形の面積の求め方 たてa, 横b, 上底j, 下底k, 底辺t, 高さh, 半 径rとする①正方形、長方形、平行四辺形 a × b ②台形 (j+k) × h/2 ③三角形 t × h/2 ④円 r × r ×π

アルゴリズムのわかりやすさ (2) z 構造化 「1つの入口と1つの出口」をもつ → ミスが減る、直しやすい → 高品質のプログラ ム 3つの基本制御構造の組合せ 順次選択くりかえ し

アルゴリズムのわかりやすさ (3) z 図式化(流れ図) 流れ図記号で表現 → 処理手順わかりやすい

流れ図(フローチャート) (1) z 流れ図記号(JIS規格) 端子 流れ図の開始・ 終了 データ データの入出力 処理 あらゆる種類の 処理 判断 条件による判断 (選択) 書類 書類に印字 表示 ディスプレイへ の表示 準備 初期値の設定等 の処理の準備 ループ始端 ループ終端 ループ(繰り返 し)の始まりと 終わり これらを実線や矢線で結んで、流れを表現する。

流れ図(フローチャート) (2) z 流れ図の例 端子 準備 判断 処理 データ 表示 (初期処理)面積を保存する変数Sに0を代入 (判断)図形の形によって、処理を分岐する データ入力を求め る z みんなの起床から学校到着 を流れ図に表現しよう!

流れ図(フローチャート)とプログ ラム z プログラミング アルゴリズムを図式した流れ図をもとに、 プログラムを作成すること。 z マクロ 処理を自動的に実行するプログラム → 手作業を自動化する (ミスが減る、作業時間の短縮) この教室のPCでは、これらマクロをプログラミング言語 VBA で記 述する。 Visual Basic for Applications ( Microsoft 製) <先生が開発した流れ図作成支援ツールも、 VBA でかいています。>

アルゴリズム基礎(1) 順次構造 ● キーボードから変数 a に 3 ,変数 b に 5 を入力し,その和を求めて表示する。 データを保存する容器にあたるもの 箇条書き フローチャート ①変数 a ,変数 b の値をキーボードから入力 ②変数 a と変数 b の値を加算して,変数 c に代入 ③変数 c の値をディスプレイ(画面)に表示 プログラム例および実行結 果

アルゴリズム基礎(2) 選択構造 ● 得点が 50 点以上のときは変数 G に 1 , 50 点未満のときは変数 G に 0 を代入して表示する。 箇条書き フローチャート ①変数 tokuten に値を入力 ② tokuten が 50 点以上ならば, ③ G に 1 を代入 ④ tokuten が 50 点未満ならば, ⑤ G に 0 を代入 ⑥変数 G の値を表示 プログラム例および実行結 果

アルゴリズム基礎(3) くりかえ し構造 ● 変数xに 1 から 10 までの値を代入して表示する。 箇条書き フローチャート (1) 繰り返し 1 (繰り返し回数が明確) (2) 繰り返し 2 (繰り返し回数が明確でない) ①x←1①x←1 ② x ≦ 10 の間,繰り返す ③ x を表示 ④x←x+1④x←x+1 ⑤ x の繰り返しはここまで ① x を 1 から 10 まで 1 ずつ 増やしながら繰り返す ② x を表示 ③ x の繰り返しはここまで プログラム例および実行結 果

アルゴリズム応用(1) 逐次探索 逐次探索 表の先頭から順番に 1 つずつ探しだす 「 36 」を探す 36 ≠ ≠ = アルゴリズ ム フローチャー ト ① j は 1 から 7 まで 1 ずつ増やしながら繰り返す ②もし a(j) = 36 ならば ③「あり」と表示して終了 ④ j の繰り返しはここまで

アルゴリズム応用(2) 二分探索 二分探索 探索範囲を半分ずつに分けて探索する 「 36 」を探す 36 ≠ ≠ = アルゴリズ ム フローチャー ト ① i と j に添字の下限と上限をいれる ② i ≦ j の間繰り返す ③ m ← (i + j)÷2 ④もし a(m) < 36 ならば, i ← m + 1 36 < 4211 < 36 ⑤もし a(m) > 36 ならば, j ← m - 1 ⑥それ以外ならば,「あり」と表示して終了 ⑦繰り返しはここまで

アルゴリズムの応用 探索ま とめ ①逐次探索(ちくじ) 表の先頭から順番に1つずつ探していく ○ アルゴリズムは簡単 ○ データは順番に並んでいなくても良い × 探索データが(すごく)多いときはちょっと使えない ※比較回数(データ 1000 件だと最悪 1000 回。平均 500 回) ②二分探索(にぶん) 探索範囲を半分に分けて探していく ○ 探索が速い × アルゴリズムはちょっと複雑 × データは順番に並べておく必要がある ※比較回数(データ 1000 件だと 10 回くらい。ちなみにn件だとlog 2 n回で す。) 「簡単だが遅い」 「複雑だが速い」 みなさんならどっちを選びます か?

アルゴリズム応用(3) 並べかえ データを交換法で昇順に並べかえる 最も大きいデータを一番最後にもっていく 24 > 17 入れかえる > 16 入れかえる > 18 入れかえる 1824 最も大きな値が確定 2 番目に大きいデータを確定する 17 > 16 入れかえる < 18 入れかえなし 2 番目に大きいデータが確定 18 3 番目に大きいデータを確定する 16 < 17 入れかえなし 3 番目に大きいデータが確定 17 最後のデータが自動的に確定 16 データの入れかえ手順 ① a と b を入れかえるため c を用意 ②c←a②c←a ③a←b③a←b ④b←c④b←c アルゴリズム ① i は 3 から 1 まで 1 ずつ減らしながら繰り返す ② j は 1 から i まで 1 ずつ増やしながら繰り返す ③もし a(j) > a(j + 1) ならば a(j) と a(j + 1) を入れかえる ④ j の繰り返しはここまで ⑤ i の繰り返しはここまで フローチャート

アルゴリズム応用 並べかえまと め z 並べかえ(ソート) ①交換法(バブルソート) となりあったデータを比較し、その大小により入れかえを行 う ※比較回数(データ 1000 件だと 回なのです・・・ ちなみにn件だと n(n-1)/2 回で す) 「ソートはソートー時間がかかる」などどいうオヤジギャグを言いたくなるね え・・・ 並べ替えには他のアルゴリズムもありますが、比較回数はあまり変わりません・・・ ②データ交換 となりあう 2 つのデータA,Bを入れかえるには? はじ め A→CA→C B→AB→A C→BC→B できた! → 別の変数Cが必要!