AProg/2017/ex03
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*応用プログラミング及び実習 2017年度 第3回 [#u4f071ce]
//&color(#ff0000){工事中};
#contents
**注意 [#o3f5d008]
- 実習のすすめ方について [[AProg/2017/ex00]]
- Linux環境での操作についてわからないことがあったら [[Doc...
- &color(red){締切に間に合わずチェックを受けられなかった...
**課題A(self) 締切: 今回の実習終了時 [#kadaiA]
[[実習第1回の課題D-2>AProg/2017/ex01#kadaiD]]のプログラム...
-ソースファイル名は ex03x999.c とする
-- &color(white,blue){check}; cp コマンドを使って ex01x99...
-データ件数とデータを標準入力から受け取るかわりにファイル...
--キー入力をうながす「何個?」「0番目:」のようなメッセー...
--読み込むテキストファイルは data4ex03a.txt という名前と...
--ファイルを開く際のエラー処理を行うこと
-&color(white,blue){check}; 次の箇所がソースプログラム中...
--ファイルを開く所
--ファイルを閉じる所
--ファイルの内容を読み込んでいる所
--ファイルポインタの変数を宣言している所
-&color(white,blue){check}; 正しく動くことを確認したら,...
-&color(white,blue){check}; 次のようにわざと間違えて動作...
--開くファイルの名前を間違えてみる
--ファイルに記したデータ件数を実際の数より少なくしてみる...
**課題B(self) 締切: 今回の実習終了時 [#kadaiB]
下記のプログラムソースは,標準入力からPGMファイルの名前を...
+ 次のことをやってプログラムを完成させなさい.この2箇所の...
-- 空欄となっている fopen の引数を書きなさい
-- 空欄となっている readPGMHeader の引数を書きなさい
+ 実際に画像ファイルを読み込ませる等して動作確認しなさい
+ 次の問に対する答えを考えなさい(白字で答えが書いてあり...
-- このプログラムで正しく扱えるファイル名の文字数は最大何...
-- 次の三通りの条件でプログラムを実行した場合,21行目と24...
+++ ファイル名として,正しいPGM形式のファイルの名前を指定...
+++ ファイル名として,存在するがPGM形式ではないファイルの...
+++ ファイル名として,存在しないものを指定した場合: 答 ...
#gist(efb87905a4dbdc6bf706);
**課題C(TA&takataka) 締切: 後述 [#kadaiC]
- TAチェック課題としての締め切り: 今回の実習終了20分前
- takatakaチェック課題としての締め切り: 来週月曜13時まで...
次の仕様の二つの関数の定義を指定の紙に書いて提出しなさい.
いずれも,課題Bのプログラムに後で追加して使うと想定しよう...
- 関数 readPGMBody
-- 引数は,ファイルポインタ,画素値を格納する二次元配列,...
-- 戻り値はなし
-- ファイルポインタで指定されたファイルから画素値を読み込...
--- readPGMHeader の続きの読み込み処理をするものと考えれ...
--- 本当は,指定されたファイルが壊れてる(画素値の数が足...
- 関数 writePGM
-- 引数は,自分で考えよう.変数の順序等は readPGMHeader ...
-- 戻り値はなし
-- ファイルポインタで指定されたファイルに,引数で渡された...
-- "P2" を書く部分は,関数内で直接
fprintf(..., "P2\n");
とか書いちゃえばよいでしょう.
&color(white,blue){check}; [[前回の課題B>AProg/2017/ex02#...
**課題D(TA) 締切:次回実習開始直後 [#kadaiD]
&color(red){この課題のチェック時には,課題Cの紙を見せても...
[[課題B>#kadaiB]],[[課題C>#kadaiC]],[[前回の課題C>AProg...
- ソースファイル名は ex03negate.c とする
- 次のような動作をするようにしよう
#pre{{
$ ./ex03negate
入力ファイル名を指定してください: uni3.pgm ← サンプル...
出力ファイル名を指定してください: ex03negate.c
}}
--&color(white,blue){check}; &color(red){何も考えずにこの...
- 出力部分については,以下を参考にするとよい
#pre{{
while(1){
printf("出力ファイル名を指定してください: ");
scanf("%s", fname);
fp = fopen( );
if(fp == NULL){
fprintf(stderr, "ERROR: failed to open %s\n", fname);
}else{
writePGM( );
fclose(fp);
break;
}
}
}}
いきなり完成させようとすると混乱する可能性大です.次のよ...
+ cp コマンドで ex03b.c を ex03negate.c にコピーする
+ コンパイル&動作確認.この時点では当然課題Bと同じ動作し...
+ readPGMBody を追加し,main 内の適切な場所で呼ぶ
+ コンパイル&動作確認.readPGMBody の結果を出力してない...
+ writePGM を追加し,main に出力処理を書く
+ コンパイル&動作確認.画像をコピーすることができるはず
+ negate も追加
+ コンパイル&動作確認.画素値を反転させるプログラムの完成
**課題S & T(おまけ) [#md8761ed]
//&color(#ff0000){工事中};
右のリンク先参照 [[AProg/2016/ex03ST]]
終了行:
*応用プログラミング及び実習 2017年度 第3回 [#u4f071ce]
//&color(#ff0000){工事中};
#contents
**注意 [#o3f5d008]
- 実習のすすめ方について [[AProg/2017/ex00]]
- Linux環境での操作についてわからないことがあったら [[Doc...
- &color(red){締切に間に合わずチェックを受けられなかった...
**課題A(self) 締切: 今回の実習終了時 [#kadaiA]
[[実習第1回の課題D-2>AProg/2017/ex01#kadaiD]]のプログラム...
-ソースファイル名は ex03x999.c とする
-- &color(white,blue){check}; cp コマンドを使って ex01x99...
-データ件数とデータを標準入力から受け取るかわりにファイル...
--キー入力をうながす「何個?」「0番目:」のようなメッセー...
--読み込むテキストファイルは data4ex03a.txt という名前と...
--ファイルを開く際のエラー処理を行うこと
-&color(white,blue){check}; 次の箇所がソースプログラム中...
--ファイルを開く所
--ファイルを閉じる所
--ファイルの内容を読み込んでいる所
--ファイルポインタの変数を宣言している所
-&color(white,blue){check}; 正しく動くことを確認したら,...
-&color(white,blue){check}; 次のようにわざと間違えて動作...
--開くファイルの名前を間違えてみる
--ファイルに記したデータ件数を実際の数より少なくしてみる...
**課題B(self) 締切: 今回の実習終了時 [#kadaiB]
下記のプログラムソースは,標準入力からPGMファイルの名前を...
+ 次のことをやってプログラムを完成させなさい.この2箇所の...
-- 空欄となっている fopen の引数を書きなさい
-- 空欄となっている readPGMHeader の引数を書きなさい
+ 実際に画像ファイルを読み込ませる等して動作確認しなさい
+ 次の問に対する答えを考えなさい(白字で答えが書いてあり...
-- このプログラムで正しく扱えるファイル名の文字数は最大何...
-- 次の三通りの条件でプログラムを実行した場合,21行目と24...
+++ ファイル名として,正しいPGM形式のファイルの名前を指定...
+++ ファイル名として,存在するがPGM形式ではないファイルの...
+++ ファイル名として,存在しないものを指定した場合: 答 ...
#gist(efb87905a4dbdc6bf706);
**課題C(TA&takataka) 締切: 後述 [#kadaiC]
- TAチェック課題としての締め切り: 今回の実習終了20分前
- takatakaチェック課題としての締め切り: 来週月曜13時まで...
次の仕様の二つの関数の定義を指定の紙に書いて提出しなさい.
いずれも,課題Bのプログラムに後で追加して使うと想定しよう...
- 関数 readPGMBody
-- 引数は,ファイルポインタ,画素値を格納する二次元配列,...
-- 戻り値はなし
-- ファイルポインタで指定されたファイルから画素値を読み込...
--- readPGMHeader の続きの読み込み処理をするものと考えれ...
--- 本当は,指定されたファイルが壊れてる(画素値の数が足...
- 関数 writePGM
-- 引数は,自分で考えよう.変数の順序等は readPGMHeader ...
-- 戻り値はなし
-- ファイルポインタで指定されたファイルに,引数で渡された...
-- "P2" を書く部分は,関数内で直接
fprintf(..., "P2\n");
とか書いちゃえばよいでしょう.
&color(white,blue){check}; [[前回の課題B>AProg/2017/ex02#...
**課題D(TA) 締切:次回実習開始直後 [#kadaiD]
&color(red){この課題のチェック時には,課題Cの紙を見せても...
[[課題B>#kadaiB]],[[課題C>#kadaiC]],[[前回の課題C>AProg...
- ソースファイル名は ex03negate.c とする
- 次のような動作をするようにしよう
#pre{{
$ ./ex03negate
入力ファイル名を指定してください: uni3.pgm ← サンプル...
出力ファイル名を指定してください: ex03negate.c
}}
--&color(white,blue){check}; &color(red){何も考えずにこの...
- 出力部分については,以下を参考にするとよい
#pre{{
while(1){
printf("出力ファイル名を指定してください: ");
scanf("%s", fname);
fp = fopen( );
if(fp == NULL){
fprintf(stderr, "ERROR: failed to open %s\n", fname);
}else{
writePGM( );
fclose(fp);
break;
}
}
}}
いきなり完成させようとすると混乱する可能性大です.次のよ...
+ cp コマンドで ex03b.c を ex03negate.c にコピーする
+ コンパイル&動作確認.この時点では当然課題Bと同じ動作し...
+ readPGMBody を追加し,main 内の適切な場所で呼ぶ
+ コンパイル&動作確認.readPGMBody の結果を出力してない...
+ writePGM を追加し,main に出力処理を書く
+ コンパイル&動作確認.画像をコピーすることができるはず
+ negate も追加
+ コンパイル&動作確認.画素値を反転させるプログラムの完成
**課題S & T(おまけ) [#md8761ed]
//&color(#ff0000){工事中};
右のリンク先参照 [[AProg/2016/ex03ST]]
ページ名: