DVIOUT

Similar documents
DVIOUT

DVIOUT

DVIOUT

Prog1_6th

2006年10月5日(木)実施

Prog1_12th

Prog1_15th

memo

スライド 1

Microsoft Word - Cプログラミング演習(12)

Cプログラミング1(再) 第2回

comment.dvi

Microsoft Word - no13.docx

情報処理演習 B8クラス

演算増幅器

スライド 1

デバッグの工夫

Microsoft PowerPoint - kougi11.ppt

画像ファイルを扱う これまでに学んだ条件分岐, 繰り返し, 配列, ファイル入出力を使って, 画像を扱うプログラムにチャレンジしてみよう

PowerPoint Presentation

スライド 1

PowerPoint プレゼンテーション

Microsoft Word - cpro_m_13.doc

kiso2-09.key

Microsoft PowerPoint - 14th.ppt [互換モード]

slide5.pptx

PowerPoint プレゼンテーション

£Ã¥×¥í¥°¥é¥ß¥ó¥°ÆþÌç (2018) - Â裶²ó ¨¡ À©¸æ¹½Â¤¡§·«¤êÊÖ¤· ¨¡

コマンドラインから受け取った文字列の大文字と小文字を変換するプログラムを作成せよ 入力は 1 バイトの表示文字とし アルファベット文字以外は変換しない 1. #include <stdio.h> 2. #include <ctype.h> /*troupper,islower,isupper,tol

Microsoft Word - Cプログラミング演習(10)

Microsoft PowerPoint - kougi6.ppt

PowerPoint プレゼンテーション

gengo1-12

Microsoft Word - Cプログラミング演習(9)

プログラミング基礎

01-introduction.ppt

main

Microsoft PowerPoint - ca ppt [互換モード]

Microsoft PowerPoint - C4(反復for).ppt

計算機プログラミング

演習課題No12

C 言語第 3 回 2 a と b? 関係演算子 a と b の関係 関係演算子 等しい a==b 等しくない a!=b より大きい a>b 以上 a>=b より小さい a<b 以下 a<=b 状態 真偽 値 条件が満たされた場合 TRUE( 真 ) 1(0 以外 ) 条件が満たされなかった場合 F

memo

C言語講座 ~ファイル入出力編~

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

02: 変数と標準入出力

memo

Microsoft PowerPoint - 計算機言語 第7回.ppt

memo

8 / 0 1 i++ i 1 i-- i C !!! C 2

gengo1-12

ポインタ変数

Taro-ファイル処理(公開版).jtd

Microsoft Word - Training10_プリプロセッサ.docx

Microsoft PowerPoint - 10Com2.ppt

slide4.pptx

新・明解C言語 実践編

次に示す数値の並びを昇順にソートするものとする このソートでは配列の末尾側から操作を行っていく まず 末尾の数値 9 と 8 に着目する 昇順にソートするので この値を交換すると以下の数値の並びになる 次に末尾側から 2 番目と 3 番目の 1

tuat1.dvi

演算増幅器

スライド 1

£Ã¥×¥í¥°¥é¥ß¥ó¥°ÆþÌç (2018) - Â裵²ó ¨¡ À©¸æ¹½Â¤¡§¾ò·ïʬ´ô ¨¡

Microsoft PowerPoint - kougi9.ppt

プログラミング基礎

プログラミング演習3 - Cプログラミング -

第9回 配列(array)型の変数

Prog1_10th

講習No.9

Microsoft Word - no15.docx

PowerPoint プレゼンテーション - 物理学情報処理演習

第2回講義:まとめ

C言語7

Microsoft PowerPoint - 3.pptx

kiso2-06.key

Taro-リストⅠ(公開版).jtd

プログラミングA

ポインタ変数

物質工学科 田中晋

Microsoft Word - no12.doc

プログラミング基礎

r07.dvi

Microsoft PowerPoint - kougi2.ppt

プログラミング方法論 II 第 14,15 回 ( 担当 : 鈴木伸夫 ) 問題 17. x 座標と y 座標をメンバに持つ構造体 Point を作成せよ 但し座標 は double 型とする typedef struct{ (a) x; (b) y; } Point; 問題 18. 問題 17 の

ex14.dvi

ohp07.dvi

スライド タイトルなし

新版明解C言語 実践編

C C UNIX C ( ) 4 1 HTML 1

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

PowerPoint プレゼンテーション - 物理学情報処理演習

Microsoft PowerPoint - adi05.ppt [互換モード]

のプログラムはそのままでは 人間は理解できても コンピュータは理解できません 皆さんが作るプログラムはソースプログラム ( ソースファイル ) と呼ばれます C 言語では *.c という形式にファイルで作成します そのソースプログラムをコンピュータが理解できるようなデータ形式に変換することをコンパイ

ファイル入出力

Microsoft Word - Cプログラミング演習(3)

プログラミング基礎

実際の株価データを用いたオプション料の計算

Microsoft PowerPoint pptx

新・明解C言語 ポインタ完全攻略

Microsoft PowerPoint - 説柔5_間勊+C_guide5ï¼›2015ã•’2015æŒ°æŁŽæš’å¯¾å¿œç¢ºèª“æ¸‹ã†¿ã•‚.pptx

gengo1-12

Transcription:

2009 年度情報科学 & 情報科学演習レポート 9 学生用 学籍番号 : 氏名 : 下記の注意事項を守り 次ページ以降の問いに答え レポートを完成させなさい 提出期限 : 2009 年 6 月 30 日 ( 火 ) 13:00 まで提出場所 : 理学部棟正面玄関内に設置のレポートボックス 注意事項 : (1) このページを印刷し 必要事項を記入の上 ( 学籍番号欄と氏名欄は 2 箇所あるので忘れずに記入すること ) レポートの表紙として提出すること (2) 文章処理ソフトウェアや図形処理ソフトウェア等を駆使してレポートを作成し ( 問 解答 問 解答 の順になるように記述すること) A4 サイズの用紙に印刷して提出すること ( 手書きは不可 ) (3) クラスメイトのレポートを参考にしたり クラスメイトと協力してレポートを作成した場合は 教員控の協力者氏名欄にクラスメイトの氏名を記入すること これらの場合も 自分の言葉で表現し直すこと コピー禁止 (4) 情報科学 & 情報科学演習について あなたの声を聞かせてください ( 教員控の意見 質問欄に記入のこと ) 気軽にどうぞ ( 成績には一切影響しません ) 出題者 : 幸山直人出題日 : 2009 年 6 月 24 日 ( 水 ) 得点 : /6 切り取り線 2009 年度情報科学 & 情報科学演習レポート 9 教員控 学籍番号 : 氏名 : 協力者氏名 :,, レポート作成に要した時間 :. 時間 得点 : /6 意見 質問 :

問 1 p.294 の コマンドラインでファイル名を指定するプログラム ( ファイル名 tcopy.c ) を参考に あるソースプログラムに行番号を付加してテキストファイルに出力するプログラム ソースプログラムに行番号を付加するプログラム ( ファイル名 report0901.c ) を作成しなさい さらに 作成したソースプログラム ( ファイル名 report0901.c ) をこのプログラムで処理し 出力されたテキストファイル ( ファイル名 report0901.txt ) を印刷して提出しなさい なお コンパイルと実行例は以下のようになる (2 点 ) コンパイルと実行例 : $ gcc -o report0901.exe report0901.c コンパイル $./report0901.exe report0901.c report0901.txt 実行例 $ ヒント : 行番号をカウントする変数を準備する 例えば int i = 1; ファイルへの出力は fprintf(fout, "%3d: %s", i, ss); を用いる ソースプログラムの書き出しは以下のようになる ソースプログラムに行番号を付加するプログラム report0901.c 2: #include <stdlib.h> /* for exit() */ 3: 4: int main(int argc, char *argv[]) 5: { 6: FILE *fin, *fout; 7: char ss[256]; 8: int i = 1; 9: 10: if (argc!= 3) { 11: printf(" 引数の数が違います Yn"); 12: exit(1); 13: }.. 解答例 添付書類を参考のこと 評価基準解答例に準じた解答であれば 2 点

問 2 以下の ユークリッドの互除法を用いて最大公約数を求めるプログラム について 次の (1)~(2) の問いに答えなさい ユークリッドの互除法を用いて最大公約数を求めるプログラム gcd0.c 2: 3: int gcd(int x, int y); 4: 5: int main(void) 6: { 7: int x = 672, y = 204; 8: 9: printf("gcd(%d,%d)=%dyn", x, y, gcd(x, y)); 10: 11: return 0; 12: } 13: int gcd(int x, int y) 15: { 16: int tmp; 17: 18: while (y!= 0) { 19: tmp = x % y; 20: x = y; 21: y = tmp; 22: } 23: 24: return x; 25: }

(1) 情報科学テキストの p.177 の 平方根を求めるプログラム ( 会話型 ) に習って ユークリッドの互除法を用いて最大公約数を求めるプログラム ( 会話型 ) ( ファイル名 gcd1.c ) を作成し ソースプログラムを印刷して提出しなさい なお このプログラムのコンパイルと実行例は以下のようになる (2 点 ) コンパイルと実行例 : $ gcc -o gcd1.exe gcd1.c コンパイル $./gcd1.exe Enter 実行例 1 672 204 Enter gcd(672,204)=12 $./gcd1.exe Enter 実行例 2 1234 5678 Enter gcd(1234,5678)=2 $ 解答例 添付書類を参考のこと 評価基準解答例に準じた解答であれば 2 点 (2) 情報科学テキストの p.178 の 平方根を求めるプログラム ( 直接入力 ) に習って ユークリッドの互除法を用いて最大公約数を求めるプログラム ( 直接入力 ) ( ファイル名 gcd2.c ) を作成し ソースプログラムを印刷して提出しなさい なお このプログラムのコンパイルと実行例は以下のようになる (2 点 ) コンパイルと実行例 : $ gcc -o gcd2.exe gcd2.c コンパイル $./gcd2.exe 672 204 Enter 実行例 1 gcd(672,204)=12 $./gcd2.exe 1234 5678 Enter 実行例 2 gcd(1234,5678)=2 $ 解答例 添付書類を参考のこと 評価基準解答例に準じた解答であれば 2 点

問 1 の解答例出力されたテキストファイル ( ファイル名 report0901.txt ) * 行番号が付加されていること 000: 半角 3 文字分 2: #include <stdlib.h> /* for exit() */ 3: 4: int main(int argc, char *argv[]) 5: { 6: FILE *fin, *fout; 7: char ss[256]; 8: int i = 1; 9: 10: if (argc!= 3) } 11: printf(" 引数の数が違います Yn"); 12: exit(1); 13: } 15: if((fin = fopen(argv[1], "r")) == NULL) } 16: printf(" 入力ファイルをオープンできません Yn"); 17: exit(1); 18: } 19: if((fout = fopen(argv[2], "w")) == NULL) } 20: printf(" 出力ファイルをオープンできません Yn"); 21: exit(1); 22: } 23: 24: while (fgets(ss, 256, fin)!= NULL) } 25: fprintf(fout, "%3d: %s", i, ss); 26: i++; 27: } 28: 29: fclose(fin); 30: fclose(fout); 31: 32: return 0; 33: }

問 2 (1) の解答例 ユークリッドの互除法を用いて最大公約数を求めるプログラム ( 会話型 ) ( ファイル名 gcd1.c ) 2: 3: int gcd(int x, int y); 4: 5: int main(void) 6: { 7: int x, y; 8: 9: scanf("%d %d", &x, &y); 10: printf("gcd(%d,%d)=%dyn", x, y, gcd(x, y)); 11: 12: return 0; 13: } 15: int gcd(int x, int y). -------- 関数 gcd() は同じなので省略 -------- 問 2 (2) の解答例 ユークリッドの互除法を用いて最大公約数を求めるプログラム ( 直接入力 ) ( ファイル名 gcd2.c ) 2: #include <stdlib.h> /* for exit(), atoi() */ 3: 4: int gcd(int x, int y); 5: 6: int main(int argc, char *argv[]) 7: { 8: int x, y; 9: 10: if (argc!= 3) exit(1); 11: x = atoi(argv[1]); 12: y = atoi(argv[2]); 13: printf("gcd(%d,%d)=%dyn", x, y, gcd(x, y)); 15: return 0; 16: } 17: 18: int gcd(int x, int y). -------- 関数 gcd() は同じなので省略 --------