100 likes | 244 Views
湘南工科大学. 2014 年 1 月 21 日. 情報 理論2. 湘南工科大学情報工学科 准教授 小林 学. [ プログラミング 課題 1 ] 授業ホームページの課題プログラムに対し, max と pos を求める箇所を以下のように MaxMatch () 関数にしなさい.(変数は自分で考えること). Page 2. #include< stdio.h > #define MADO 8 int Dat [2*MADO]={0,1,0,1,2,0,2,0,0,1,2,0,1,2,1,-1 };
E N D
湘南工科大学 2014年1月21日 情報理論2 湘南工科大学情報工学科 准教授 小林 学
[プログラミング課題1]授業ホームページの課題プログラムに対し,max と posを求める箇所を以下のようにMaxMatch()関数にしなさい.(変数は自分で考えること) Page 2 #include<stdio.h> #define MADO 8 intDat[2*MADO]={0,1,0,1,2,0,2,0,0,1,2,0,1,2,1,-1}; int Max, Pos; //追加(先頭は大文字.以下も同じ!!) intIcchicho(int n){・・同じ・・ } void Shift(int n){・・同じ・・} void MaxMatch(void){ // 追加 ここへコピー!! } void main(void){ while(1){ max=0; pos=0; for(i=0; i<MADO; i++){・・同じ・・} printf("(%d,%d,%d)\n",pos,max,Dat[MADO+max]); if(Dat[MADO+max]==-1) break; Shift(max+1); } } ここの内容をMaxMatch()関数にする
Page 3 LZ77符号プログラムにおける配列の初期化 Dat 中身を0にする ファイルから読み込む 中身を0にする ファイルから読み込む 1バイトずつ c に読み込む 配列Datに c を挿入
Page 4 [プログラミング課題2] 以下のプログラムを作成し,実行しなさい. (注:課題1のプログラムは後で利用するので,とっておくこと) 1バイトずつ読み込む
Page 5 配列へのファイル読み込み関数 FileRead作成 [例] 引数start=11 start Dat 位置 start 以降にファイル 内容を読み込む関数
Page 6 [プログラミング課題3] 以下のプログラムの???の箇所を追加し,実行しなさい. 課題2を参考に,ここを作成!!
[プログラミング課題4] 課題1のプログラムに,課題3のFileRead関数を追加し,main関数を以下としなさい. Page 7 (注)このプログラムは終了しない! 追加 追加 ここは自分で考えること!!
Page 8 ファイルの終わりを検出するには以下を利用する • ファイル読み込み関数 freadの戻り値は,読み込んだシンボル数 • ファイルの終端の場合は,「0」を返す [プログラミング課題5] 課題4のプログラムの FileRead関数を以下のように修正しなさい.(ちゃんとプログラムが終了するようになる) ファイルの終端の場合「-1」を追加
[プログラミング課題6] 課題5のプログラムの画面出力を,ファイルにバイナリ形式で出力するプログラムを作成しなさい Page 9 追加 追加 追加.この関数を自分で作成すること 追加
Page 10 [プログラミング課題6のヒント] int型の変数(4バイト)を unsigned char 型(1バイト)に変換(キャストという) ここを考える!