明星大学 情報学科 2012年度 後期   情報技術Ⅱ   第8回  中間試験の解説 @ DENGINEER.

Slides:



Advertisements
Similar presentations
アルゴリズムとデータ構造 第2回 線形リスト(復習).
Advertisements

配列の宣言 配列要素の初期値 配列の上限 メモリ領域 多次元配列 配列の応用
基本情報技術概論 I 演習(第5回) 埼玉大学 理工学研究科 堀山 貴史
データ構造とアルゴリズム 平成20年度 前期 2年生必修  水曜日 3-4時限.
Generic programming と STL
プログラミング演習II 2004年11月 30日(第6回) 理学部数学科・木村巌.
5.データ構造入門 5-1.連結リスト(Linked List) 5-2.スタック(Stack) 5-3.キュー(Queue)
プログラミング入門2 第10回 動的な領域確保 情報工学科 篠埜 功.
データ構造とアルゴリズム 第10回 mallocとfree
プログラミング入門2 第10回 構造体 情報工学科 篠埜 功.
プログラミング演習Ⅱ 第12回 文字列とポインタ(1)
基本情報技術概論(第4回) 埼玉大学 理工学研究科 堀山 貴史
2章 データ構造.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
情報工学概論 (アルゴリズムとデータ構造)
データ構造とアルゴリズム 第7回 木 ~ データ構造(3)~.
第8回 プログラミングⅡ 第8回
構造体.
プログラミング論 II 電卓,逆ポーランド記法電卓
データ構造とアルゴリズム 第13回 スタックとキュー
データ構造とアルゴリズム 第5回 スタック ~ データ構造(2)~.
Stack & Queue & List 3.
アルゴリズムと データ構造 第4回 スタック・キュー.
第4回放送授業.
アルゴリズムとデータ構造 第2回 線形リスト(復習その2).
アルゴリズムとデータ構造 第4回 配列によるスタックとキュー.
プログラミング演習Ⅰ 課題2 10進数と2進数 2回目.
演習問題の答え #include #include #define NUM 5 typedef struct { // 構造体の定義 float shincho; // 身長 float taiju; // 体重 } shintai; void hyouji(shintai.
第3回 配列,構造体,ポインタ ~ データ構造について学ぶための基礎~
二分探索木によるサーチ.
データ構造とプログラミング技法 (第2回) ー線形構造ー.
2009/10/16 いろいろなデータ構造 第3講: 平成21年10月16日 (金) 4限 E252教室 コンピュータアルゴリズム.
プログラミング論 関数ポインタ と 応用(qsort)
Cプログラミング演習 中間まとめ2.
データ構造とアルゴリズム 第4回 リスト ~ データ構造(1)~.
データ構造とアルゴリズム 第5回 スタック ~ データ構造(2)~.
データ構造とアルゴリズム (第2回) ー線形構造ー.
データ構造とアルゴリズム 第6回 キュー ~ データ構造(2)~.
精密工学科プログラミング基礎 第10回資料 (12/18実施)
プログラミング 4 記憶の割り付け.
データ構造と アルゴリズム第4回 知能情報学メジャー 和田俊和.
2005年度 データ構造とアルゴリズム 第3回 「C言語の復習:再帰的データ構造」
プログラミング演習I 2003年5月7日(第4回) 木村巌.
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
プログラミング入門2 第11回 情報工学科 篠埜 功.
プログラミング演習Ⅱ 課題4第3週 画像処理 (1) ビット演算子.
プログラミング入門2 第11回 情報工学科 篠埜 功.
第7回 プログラミングⅡ 第7回
地域情報学 C言語プログラミング 第5回 ポインタ、関数、ファイル入出力 2017年11月17日
第9回 優先度つき待ち行列,ヒープ,二分探索木
アルゴリズムとデータ構造1 2005年7月1日
アルゴリズムとデータ構造1 2009年6月29日
データ構造と アルゴリズム 第六回 知能情報学部 新田直也.
データ構造と アルゴリズム 第五回 知能情報学部 新田直也.
基本情報技術概論(第6回) 埼玉大学 理工学研究科 堀山 貴史
Cプログラミング演習 第10回 二分探索木.
フロントエンドとバックエンドのインターフェース
プログラミング 4 木構造とヒープ.
プログラミング 3 スタックとキュー.
スタックとキュー データ構造とプログラミング (第5回).
精密工学科プログラミング基礎Ⅱ 第5回資料 今回の授業で習得してほしいこと: 構造体 (教科書 91 ページ)
6.データ構造入門 6-1.連結リスト(Linked List) 6-2.スタック(Stack) 6-3.キュー(Queue)
データ構造とアルゴリズム 第11回 リスト構造(1)
情報数理Ⅱ 第11章 データ構造 平成29年1月18日.
第9回 優先度つき待ち行列,ヒープ,二分探索木
情報基礎演習B 後半第2回 担当 岩村 TA 谷本君.
基本情報技術概論(第6回) 埼玉大学 理工学研究科 堀山 貴史
第4回 CPUの役割と仕組み2 命令の解析と実行、クロック、レジスタ
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
2005年度 データ構造とアルゴリズム 第2回 「C言語の復習:配列」
Presentation transcript:

明星大学 情報学科 2012年度 後期   情報技術Ⅱ   第8回  中間試験の解説 @ DENGINEER

本日 の メニュー 1.中間試験の結果報告 2.問題についての解説

1.木構造の応用(1) 四則演算式の解析 (4+2)×(3-1) 4 2 + 3 1 - × 4 2 + 3 1 - 4 2 +

2.解説(問題1 1-1)(1) 問題1 C言語 1-1 unsigned char moji_1; ・・・文字型 1-1  unsigned char moji_1; struct Kouzou { unsigned char code; unsigned char str[10]; }; struct Kouzou mk[3]; ・・・文字型 ・・・文字型 ・・文字型配列 構造体 ・・・構造体配列

2.解説(問題1 1-1)(2) 問題1 C言語 1-1 unsigned char moji_1; struct Kouzou { 1-1  unsigned char moji_1; struct Kouzou { unsigned char code; unsigned char str[10]; }; struct Kouzou mk[3]; 1 11 1 1 2 3 4 5 6 7 8 9 10 11 11 11

sizeof( struct Kouzou ) 2.解説(問題1 1-2) 問題1 C言語 1-2  int main( void ) { struct Kouzou ; //構造体 Kouzouのポインタ pkを宣言 pk = malloc( ); //動的にメモリを確保し、pkに割り当てる = 168; //pkのcodeに168を入れる printf( “pkのcodeその1 = %02x\n” , (3)と同じもの ); // pkのcodeを表示する printf( “pkのcodeその2 = %02X\n” , (3)と同じもの ); // pkのcodeを表示する free( ); //pkを解放する return ( 0 ); } (1) (2) (3) (4) *pk sizeof( struct Kouzou ) pk -> code pk

2.解説(問題1 1-3) 問題1 C言語 1-3 pk の code には 、10進表記の 168 が入っている 1-3  printf( “pkのcode その1 = %02x\n” , (3)と同じもの ); // pkのcodeを表示する printf( “pkのcode その2 = %02X\n” , (3)と同じもの ); pk の code には 、10進表記の 168 が入っている 16進に変換すると A8 となる

2.解説(問題2 2-1) 問題2 逆ポーランド記法 2-1 (1) 2+3-5×8 (2) 2+(3-5)×8 (3) (2+3-5)×8 問題2 逆ポーランド記法 2-1  (1)  2+3-5×8 (2)  2+(3-5)×8 (3)  (2+3-5)×8 - + × 2 + × × - 8 2 3 5 8 - 8 + 5 3 5 2 3  2 3 + 5 8 × -  2 3 5 - 8 × +  2 3 + 5 - 8 ×

2.解説(問題2 2-2) 問題2 逆ポーランド記法 2-2 + - (1) 20_12_×_11_-_29_+ (2) 問題2 逆ポーランド記法 2-2  (1)  20_12_×_11_-_29_+ (2)  1_2_3_4_+_×_- (3)  10_2_3_+_÷_73_× 4 7 + 14 3 5 3 × + 11 240 12 229 29 258 -13 2 2 2 146 73 - × ÷ × + - 20 1 10

2.解説(問題2 2-3) 問題2 逆ポーランド記法 2-3 4 8 2 6 + + × (1) (2) 6 8 + 2 16 + 64 8 問題2 逆ポーランド記法 2-3  4 8 2 6 + + × (1) (2) 4 8 2 6 + × × 6 8 + + 2 16 + + 64 8 × 4 8 2 6 4

2.解説(問題3 3-1) 問題3 スタックとキュー 3-1 (1)stack (2)queue LINK リングバッファ LIFO 問題3 スタックとキュー 3-1  LINK リングバッファ LIFO PUSH FILA 先入れ後出し FIFA PULL 待ち行列 FILE FIFO LOLI ドーナツバッファ FILO 先入れ先出し (1)stack LIFO , PUSH , 先入れ後出し , FILO (2)queue リングバッファ , 待ち行列 , FIFO , 先入れ先出し

2.解説(問題3 3-2)(1) 問題3 スタックとキュー 3-2 ・・・入れた順番どおりに取り出す必要がある (1)速度差を吸収する 問題3 スタックとキュー 3-2  ・・・入れた順番どおりに取り出す必要がある (1)速度差を吸収する 先入れ先出し(FIFO) キュー(queue) (2)読み出し不能の間は、バッファから取り出して再生するだけ バッファが空になるまでは、連続して再生できる (音飛びしない) バッファサイズが、何秒分の再生データか 計算すればよい 256,000(byte) 176,400(byte/sec) ≒ 1.4512(sec)

2.解説(問題3 3-2)(2) (3)3通りの考え方で解説 その1 256kbyte 読み出しにかかる時間は 256,000(byte) ・ 再生 読み出し (3)3通りの考え方で解説 その1 256kbyte 読み出しにかかる時間は 256,000(byte) 4×176,400(byte/sec) ≒ 0.3628(sec) この間に再生されている分は 176,400(byte/sec)×0.3628(sec) ≒ 64,000(byte) 0.3628秒 読み出した時点で、さらに64,000byte 使えることになる 64kbyte 読み出しにかかる時間は 64,000(byte) 4×176,400(byte/sec) ≒ 0.0907(sec) よって、 0.3628 + 0.0907 ≒ 0.4535(sec)

2.解説(問題3 3-2)(3) (3) その2 読み出し時間をt(sec)と置くと、 読み出せるデータ量は ・ 再生 読み出し (3) その2 読み出し時間をt(sec)と置くと、 読み出せるデータ量は (4×176,400) ×t(byte) この間に再生されるデータ量は、  176,400 ×t(byte) 読み出し部がバッファを1周してから、再生部に追いつくのは、 (4×176,400) ×t= 176,400 ×t+256,000 と、なるので、tについて解くと t ≒ 0.4837(sec)

2.解説(問題3 3-2)(4) 再生された部分は、再利用可能 (3) その3 再生しながらなので、4倍速で読み出す間に 1倍速で再生される ・ 再生 読み出し (3) その3 再生しながらなので、4倍速で読み出す間に 1倍速で再生される 再生された部分は、再利用可能 t秒で バッファに溜まる分は、 (4×176,400)×t - 176,400 ×t =(3×176,400)×t(byte) バッファサイズは、256kbyte なので、 (3×176,400)×t= 256,000 t ≒ 0.4837(sec)

2.解説(問題4 4-1)(1) 問題4 木構造 4-1 (1)2分木 ・・・・・・○ (2)2分探索木 ・・・・○ (3)完全2分木 問題4 木構造 4-1  ア 4 2 9 15 12 17 8 10 (1)2分木 ・・・・・・○ (2)2分探索木 ・・・・○ (3)完全2分木 ・・・・× (4)木構造 ・・・・・・○ (5)ヒープ木 ・・・・ × (6)ハフマン木 ・・・ ×

2.解説(問題4 4-1)(2) 問題4 木構造 4-1 (1)2分木 ・・・・・・○ (2)2分探索木 ・・・・ × (3)完全2分木 問題4 木構造 4-1  イ 5 1 8 9 13 12 (1)2分木 ・・・・・・○ (2)2分探索木 ・・・・ × (3)完全2分木 ・・・・ ○ (4)木構造 ・・・・・・○ (5)ヒープ木 ・・・・ × (6)ハフマン木 ・・・ ×

2.解説(問題4 4-1)(3) 問題4 木構造 4-1 (1)2分木 ・・・・・・ × (2)2分探索木 ・・・・ × (3)完全2分木 問題4 木構造 4-1  ウ 3 1 2 5 6 7 4 8 (1)2分木 ・・・・・・ × (2)2分探索木 ・・・・ × (3)完全2分木 ・・・・× (4)木構造 ・・・・・・○ (5)ヒープ木 ・・・・ × (6)ハフマン木 ・・・ ×

2.解説(問題4 4-1)(4) 問題4 木構造 4-1 (1)2分木 ・・・・・・ × (2)2分探索木 ・・・・ × (3)完全2分木 問題4 木構造 4-1  エ 7 6 4 8 10 9 2 1 3 5 (1)2分木 ・・・・・・ × (2)2分探索木 ・・・・ × (3)完全2分木 ・・・・× (4)木構造 ・・・・・・ × (5)ヒープ木 ・・・・ × (6)ハフマン木 ・・・ ×

2.解説(問題4 4-1)(5) 問題4 木構造 4-1 (1)2分木 ・・・・・・○ (2)2分探索木 ・・・・○ (3)完全2分木 問題4 木構造 4-1  オ 10 13 6 15 12 8 (1)2分木 ・・・・・・○ (2)2分探索木 ・・・・○ (3)完全2分木 ・・・・ ○ (4)木構造 ・・・・・・○ (5)ヒープ木 ・・・・ × (6)ハフマン木 ・・・ ×

2.解説(問題4 4-1)(6) 問題4 木構造 4-1 (1)2分木 ・・・・・・○ (2)2分探索木 ・・・・ × (3)完全2分木 問題4 木構造 4-1  カ 5 2 4 11 12 10 8 7 6 3 1 9 (1)2分木 ・・・・・・○ (2)2分探索木 ・・・・ × (3)完全2分木 ・・・・ ○ (4)木構造 ・・・・・・○ (5)ヒープ木 ・・・・ ○ (6)ハフマン木 ・・・ ×

2.解説(問題4 4-2) 問題4 木構造 4-2  1 , 2 , 5 , 8 , 13 , 18 , 21 1 5 2 13 21 18 8

2.解説(問題5 5-1) 問題5 線形リスト 5-1  ● 1 ● 2 ● 2 ● 8 ● 13 ● 18 ② ① ● 5

2.解説(問題5 5-2) 問題5 線形リスト 5-2 ● ● ● ● ● ● ● 1 2 8 13 18 5 0x01 0x00 1 問題5 線形リスト 5-2  0x9000 0x9004 0x9008 0x900C 0x9010 ● 1 ● 2 ● 8 ● 13 ● 18 0x0001 0x0002 0x0008 0x000D 0x0012 ● 5 0x9014 0x0005 struct singly_list { short value; struct singly_list *next; }; value *next 0x01 0x00 ● 1 0x04 0x90

@