アルゴリズムと プログラミング ①データ構造 ②アルゴリズム ③プログラミング・プログラム言語 ④マークアップ言語 『プログラミング』 (C)Copyright, Toshiomi KOBAYASHI,2009-2015 1 ①データ構造 (p155~) 『プログラミング』 (C)Copyright, Toshiomi KOBAYASHI,2009-2015 2 (1)データとデータ構造 変数 プログラム実行中に データを一時的に記憶する領域 配列(p156-157) (イメージ)学年別 「外国人数」配列 D = Input(画面) 配列 A 変数をグループ化したもの 「添字」で位置を指定する 2次元、・・・もできる 2年生の 外国人数 『プログラミング』 A(1) A(2) A(3) A(4) (C)Copyright, Toshiomi KOBAYASHI,2009-2015 12 14 20 17 3 (2)リスト(p156-158) リスト 「ポインタ」で連結した一連の変数群 データの追加・削除が容易 並べ替え 追加・削除 が面倒 『プログラミング』 (C)Copyright, Toshiomi KOBAYASHI,2009-2015 4 リストの追加(例) アドレス データ 10 東京 30 名古屋 50 新横浜 70 浜松 90 熱海 ポインタ 50 0 90 30 70 アドレス データ 10 東京 30 名古屋 50 新横浜 70 浜松 90 熱海 150 静岡 ポインタ 50 0 90 30 70 『プログラミング』 アドレス データ ポインタ 10 東京 50 30 名古屋 0 50 新横浜 90 70 浜松 30 90 熱海 150 150 静岡 70 (C)Copyright, Toshiomi KOBAYASHI,2009-2015 5 リストの削除(例) アドレス データ ポインタ 10 東京 50 30 名古屋 0 50 新横浜 90 70 浜松 30 90 熱海 150 150 静岡 70 『プログラミング』 アドレス データ ポインタ 10 東京 90 30 名古屋 0 50 新横浜 90 70 浜松 30 90 熱海 150 150 静岡 70 (C)Copyright, Toshiomi KOBAYASHI,2009-2015 6 (3)スタックとキュー “特有な”追加・削除ができるデータ構造 『プログラミング』 (C)Copyright, Toshiomi KOBAYASHI,2009-2015 7 データ構造(Stack、p159) 本の摘み置き POP 挿入:Push 削除:Pop C B A Last In First Out 『プログラミング』 D (LIFO、後入れ先出し) (C)Copyright, Toshiomi KOBAYASHI,2009-2015 8 データ構造(Queue、p159) 窓口での待ち行列 Dequeue A B C First In First Out 『プログラミング』 Enqueue D (FIFO、先入れ先出し) (C)Copyright, Toshiomi KOBAYASHI,2009-2015 9 ②アルゴリズム (p160~) 『プログラミング』 (C)Copyright, Toshiomi KOBAYASHI,2009-2015 10 (1)流れ図(p160) JIS規格 (2)アルゴリズムの基本構造(p161) 順次構造 選択構造 繰返し構造 False 『プログラミング』 (C)Copyright, Toshiomi KOBAYASHI,2009-2015 11 (3)代表的なアルゴリズム 合計 選択構造 繰返し構造 偽 真 A = 経済学科 履修 不可 探索 線形探索法 二分探索法 履修 可能 整列したデータを二分しながら探索する 『プログラミング』 (C)Copyright, Toshiomi KOBAYASHI,2009-2015 12 ③プログラミング・ プログラム言語 (p162~) 『プログラミング』 (C)Copyright, Toshiomi KOBAYASHI,2009-2015 13 プログラム(Program) 配列の合計 を求める コンピュータに対する 計算などの手順を示したもの I=0 S=0 I=I+1 S = S + A(I) 手順を示す作業=プログラミング 手順を記述する言葉=プログラム言語 『プログラミング』 (C)Copyright, Toshiomi KOBAYASHI,2009-2015 14 (1)プログラム言語の種類(p162) 低水準言語 事務処理用言語(企業の基幹情報システム) COBOL 科学技術用言語 機械語、アセンブリ言語 FORTRAN オープン系、Web系 ソースプログラム (Javaの例) Java C、C++ VisualBASIC 『プログラミング』 public class Sample1 { public static void main(int x) { if (x < 3) System.out.println(true); else System.out.println(false); } } (C)Copyright, Toshiomi KOBAYASHI,2009-2015 15 (2)言語プロセッサ(p163) COBOL、C 翻訳 リンカ オブジェクト モジュール 他 一括実行 実行:速い コンパイラ コンパイラ(Compiler) ソース プログラム 実行(機械語) ロード モジュール インタプリタ(Interpreter) Perl(p163)などのスクリプト言語(p162) 通訳 逐次実行 『プログラミング』 JavaScript 実行(インタプリタ) (C)Copyright, Toshiomi KOBAYASHI,2009-2015 ソース プログラム 16 ④マークアップ言語 (p164~) 『プログラミング』 (C)Copyright, Toshiomi KOBAYASHI,2009-2015 17 (p164) 「タグ」を使って 文書の論理構造を記述する言語 HTML (論理構造):レイアウト、書式、リンク、・・・ Webページを作成するための言語 XML タグを独自に定義できる拡張可能なML 『プログラミング』 (C)Copyright, Toshiomi KOBAYASHI,2009-2015 18 HTMLファイル基本構造 タグ 論理構造 XMLでは 自分でタグを定義できる 『プログラミング』 (C)Copyright, Toshiomi KOBAYASHI,2009-2015 19 End 『プログラミング』 (C)Copyright, Toshiomi KOBAYASHI,2009-2015 20 小テスト-メモ欄ー選択理由の書き方 ア) イ) ウ) エ) 何を説明しているか 二分探索法 線形探索法 キュー操作 スタック操作 だから ア) 『プログラミング』 (C)Copyright, Toshiomi KOBAYASHI,2009-2015 21 Link先 『プログラミング』 (C)Copyright, Toshiomi KOBAYASHI,2009-2015 22 繰返し構造の例(配列の合計) (戻る) I=0 S=0 I=I+1 < S = S + A(I) S = 0 + A(1) S = S + A(2) S = S + A(3) ・ ・ ・ S = S + A(10) I:10 何回 繰り返すか 『プログラミング』 S=A(1)+A(2)+・・・ +A(10) (C)Copyright, Toshiomi KOBAYASHI,2009-2015 23 探索(「11」を探すケース) (戻る) 線形探索 12 8 5 17 11 1 3 20 6 10 15 18 1 3 5 6 8 10 11 12 15 17 18 20 二分探索 探索:速い ③ ② ① 『プログラミング』 (C)Copyright, Toshiomi KOBAYASHI,2009-2015 24
© Copyright 2024 ExpyDoc