DVIOUT

Similar documents
DVIOUT

DVIOUT

DVIOUT

Microsoft Word - no13.docx

Microsoft PowerPoint - C4(反復for).ppt

演習課題No12

main

プログラミング基礎

kiso2-09.key

C 言語第 7 回 掛け算 (multiply number) ìz1 = x1 + iy1 í îz = x + iy 割り算 (devide number) ( )( ) ( ) Þ z z = x + iy x + iy = x x - y y + i y x + x y

memo

情報処理演習 B8クラス

プログラミング基礎

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

C言語によるアルゴリズムとデータ構造

第2回

Prog1_15th

17 1. strucr Potter ( ) Harry Potter and the Philosopher s Stone 1997 English Title : Harry Potter and the Philosopher s Stone : : 1997 #include<stdio

/* do-while */ #include <stdio.h> #include <math.h> int main(void) double val1, val2, arith_mean, geo_mean; printf( \n ); do printf( ); scanf( %lf, &v

memo

Microsoft Word - 3new.doc

Taro-ポインタ変数Ⅰ(公開版).j

memo

Microsoft PowerPoint - kougi11.ppt

Prog1_10th

Microsoft PowerPoint - C言語の復習(配布用).ppt [互換モード]

‚æ4›ñ

Microsoft PowerPoint - kougi9.ppt

Prog1_6th

C言語7

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

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

C のコード例 (Z80 と同機能 ) int main(void) { int i,sum=0; for (i=1; i<=10; i++) sum=sum + i; printf ("sum=%d n",sum); 2

プログラミング基礎

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

I. Backus-Naur BNF : N N 0 N N N N N N 0, 1 BNF N N 0 11 (parse tree) 11 (1) (2) (3) (4) II. 0(0 101)* (

PowerPoint プレゼンテーション

プログラミング基礎

RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用

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

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

Microsoft Word - no02.doc

計算機プログラミング

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

Microsoft PowerPoint - KHPCSS pptx

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

PowerPoint プレゼンテーション

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

memo

Microsoft Word - no15.docx

講習No.9

I. Backus-Naur BNF S + S S * S S x S +, *, x BNF S (parse tree) : * x + x x S * S x + S S S x x (1) * x x * x (2) * + x x x (3) + x * x + x x (4) * *

PowerPoint プレゼンテーション

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

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

バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科

プログラミング基礎

Microsoft Word - no12.doc

Microsoft Word - no15.docx

ポインタ変数

PowerPoint プレゼンテーション

講習No.12

PowerPoint Presentation

プログラミングA

Microsoft PowerPoint - 説明2_演算と型(C_guide2)【2015新教材対応確認済み】.pptx

C 言語固有の命令で全部で32 個 の関数C 言語第 1 回 C 言語って?( シラバス 1 2 回目 ) 関数型言語 コンピュータに実行してもらう命令はすべて関数の中に記述されている 関数がプロ グラム

Microsoft Word - no206.docx

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

関数 C 言語は関数の言語 関数とは 関数の定義 : f(x) = x * x ; 使うときは : y = f(x) 戻り値 引数

問 2 ( 型変換 ) 次のプログラムを実行しても正しい結果が得られない 何が間違いかを指摘し 正しく修正せよ ただし int サイズが 2 バイト long サイズが 4 バイトの処理系での演算を仮定する #include <stdio.h> int main( void ) { int a =

Microsoft PowerPoint - lec10.ppt

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

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

PowerPoint プレゼンテーション

C 言語講座 Vol 年 5 月 29 日 CISC

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

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

void hash1_init(int *array) int i; for (i = 0; i < HASHSIZE; i++) array[i] = EMPTY; /* i EMPTY */ void hash1_insert(int *array, int n) if (n < 0 n >=

第3回 配列とリスト

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

DA13

:30 12:00 I. I VI II. III. IV. a d V. VI

Microsoft PowerPoint - C_Programming(3).pptx

2006年10月5日(木)実施

/*Source.cpp*/ #include<stdio.h> //printf はここでインクルードして初めて使えるようになる // ここで関数 average を定義 3 つの整数の平均値を返す double 型の関数です double average(int a,int b,int c){

printf("5つの整数を入力して下さい \n"); /* データ入力 */ for( /*** 02 ***/ ){ printf("%dつ目の入力 :",i+1); scanf("%d", /*** 03 ***/ ); sum=dat[0]; /* 合計値の初期設定 */ n_max= 0

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdiu.h> #define InFile "data.txt" #define OutFile "surted.txt" #def

:30 12:00 I. I VI II. III. IV. a d V. VI

EPSON LP-S7000 ユーザーズガイド

Microsoft Word - 03

プログラミング基礎

Prog1_12th

Cプログラミング - 第8回 構造体と再帰

第2回講義:まとめ

PowerPoint Template

gengo1-11

program7app.ppt

<4D F736F F D2091E63589F182628CBE8CEA8D758DC08E9197BF2E646F6378>

始めに, 最下位共通先祖を求めるための関数 LcaDFS( int v ) の処理を記述する. この関数は値を返さない再帰的な void 関数で, 点 v を根とする木 T の部分木を深さ優先探索する. 整数の引数 v は, 木 T の点を示す点番号で, 配列 NodeSpace[ ] へのカーソル

Microsoft PowerPoint - 11.pptx

Transcription:

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

問 1 演習 1 の 配列の各要素の和を計算するプログラム ( ポインタを使用 ) を作成し そのソースプログラムを印刷して提出しなさい 解答例配列の各要素の和を計算するプログラム ( ポインタを使用 ) 1: #include <stdio.h> 2: 3: int main(void) 4: { 5: int a[] = {90, 76, 80, 65, 100, -1}; 6: int sum = 0; 7: int *p; 8: 9: p = a; 10: while (*p!= -1) { 11: sum = sum + *p; 12: p++; 13: } 14: printf("sum = %dyn", sum); 15: 16: return 0; 17: } 評価基準解答例に準じたソースプログラムであれば 1 点 ポイント : ポインタの利用方法

問 2 演習 2 の ユークリッドの互除法を用いて最大公約数を求めるプログラム ( ポインタを使用 ) を作成し そのソースプログラムを印刷して提出しなさい 解答例ユークリッドの互除法を用いて最大公約数を求めるプログラム ( ポインタを使用 ) 1: #include <stdio.h> 2: 3: void gcd(int x, int y, int *pans); 4: 5: int main(void) 6: { 7: int x = 672, y = 204, ans; 8: 9: gcd(x, y, &ans); 10: printf("gcd(%d,%d)=%dyn", x, y, ans); 11: 12: return 0; 13: } 14: 15: void gcd(int x, int y, int *pans) 16: { 17: int tmp; 18: 19: while (y!= 0) { 20: tmp = x % y; 21: x = y; 22: y = tmp; 23: } 24: *pans = x; 25: } 評価基準解答例に準じたソースプログラムであれば 1 点 ポイント : ポインタの利用方法 ポインタを用いた関数間の値の受け渡し

問 3 演習 3 の 有理数 Q 上で四則演算を行なうプログラム ( 構造体を使用 ) を作成し そのソースプログラムを印刷して提出しなさい 解答例有理数 Q 上で四則演算を行なうプログラム ( 構造体を使用 ) 1: #include <stdio.h> 2: 3: struct rational { rational ( 有理数 ) 4: int nu; numerator ( 分子 ) の略 5: int de; denominator ( 分母 ) の略 6: }; 7: 8: int gcd2(int a, int b); 9: struct rational q_add(struct rational a, struct rational b); 10: struct rational q_sub(struct rational a, struct rational b); 11: struct rational q_mul(struct rational a, struct rational b); 12: struct rational q_div(struct rational a, struct rational b); 13: 14: int main(void) 15: { 16: struct rational a, b, x; 17: char op; 18: 19: printf("?"); 20: scanf("(%d/%d)%c(%d/%d)", &a.nu, &a.de, &op, &b.nu, &b.de); 21: 22: if (op == + ) x = q_add(a, b); 23: else if (op == - ) x = q_sub(a, b); 24: else if (op == * ) x = q_mul(a, b); 25: else if (op == / ) x = q_div(a, b); 26: 27: if (x.de < 0) { 28: x.nu = (-1) * x.nu; 29: x.de = (-1) * x.de; 30: } 31: 32: printf("=(%d/%d)yn", x.nu, x.de); 33: 34: return 0; 35: } 36:

37: int gcd2(int a, int b) 38: { 39: int tmp; 40: 41: if (a < 0) a = (-1) * a; 42: if (b < 0) b = (-1) * b; 43: 44: while (b!= 0) { 45: tmp = a % b; 46: a = b; 47: b = tmp; 48: } 49: 50: return a; 51: } 52: 53: struct rational q_add(struct rational a, struct rational b) 54: { 55: struct rational x; 56: int tmp; 57: 58: x.nu = a.nu * b.de + a.de * b.nu; 59: x.de = a.de * b.de; 60: tmp = gcd2(x.nu, x.de); 61: x.nu = x.nu / tmp; 62: x.de = x.de / tmp; 63: 64: return x; 65: } 66: 67: struct rational q_sub(struct rational a, struct rational b) 68: { 69: struct rational x; 70: int tmp; 71: 72: x.nu = a.nu * b.de - a.de * b.nu; 73: x.de = a.de * b.de; 74: tmp = gcd2(x.nu, x.de); 75: x.nu = x.nu / tmp; 76: x.de = x.de / tmp; 77: 78: return x; 79: } 80:

81: struct rational q_mul(struct rational a, struct rational b) 82: { 83: struct rational x; 84: int tmp; 85: 86: x.nu = a.nu * b.nu; 87: x.de = a.de * b.de; 88: tmp = gcd2(x.nu, x.de); 89: x.nu = x.nu / tmp; 90: x.de = x.de / tmp; 91: 92: return x; 93: } 94: 95: struct rational q_div(struct rational a, struct rational b) 96: { 97: struct rational x; 98: int tmp; 99: 100: x.nu = a.nu * b.de; 101: x.de = a.de * b.nu; 102: tmp = gcd2(x.nu, x.de); 103: x.nu = x.nu / tmp; 104: x.de = x.de / tmp; 105: 106: return x; 107: } 評価基準解答例に準じたソースプログラムであれば 1 点 ポイント : 構造体の利用方法 構造体を用いた関数間の値の受け渡し