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