問題 1 フィボナッチ数列 xn は次で定義される。

Slides:



Advertisements
Similar presentations
情報理論2 第4回 小林 学 湘南工科大学 2011年11月1日 〒 神奈川県藤沢市辻堂西海岸1-1-25
Advertisements

プログラミング入門2 第4回 配列 for文 変数宣言 初期化
C言語 配列 2016年 吉田研究室.
関数 C 言語では、関数を組み合わせてプログラムを構成する
ファーストイヤー・セミナーⅡ 第8回 データの入力.
配列(2) 第10回[平成15年6月26日(木)]:PN03-10.ppt 今日の内容 1 素数を求める(教科書の例):復習
解答 1 複素数を構造体として定義し、二つの複素数の積(結果は複素数)を返す 関数 を定義せよ。
プログラミング入門2 第10回 構造体 情報工学科 篠埜 功.
プログラミング論 I 行列の演算
問題提起その 1 一文字ずつ文字(数字)を読み込み、それぞれの文字が何回入力されたかを数えて出力するプログラム。
プログラミング演習(2組) 第12回
C言語 配列 2016年 吉田研究室.
情報処理Ⅱ 2005年12月9日(金).
プログラミング実習 1・2 クラス 第 1 週目 担当教員:  渡邊 直樹.
IT入門B2 ー 連立一次方程式 ー.
問題 1 キーボードから入力した数の合計を計算するプログラムを 作成せよ。最初に、何個の数を入力するかその数を入力 するようにする。
精密工学科プログラミング基礎 第9回資料 (12/11 実施)
精密工学科プログラミング基礎Ⅱ 第3回資料 今回の授業で習得してほしいこと: 2次元配列の使い方 (前回の1次元配列の復習もします.)
プログラミング入門2 第5回 関数(1) 芝浦工業大学情報工学科 青木 義満
プログラミング演習 バージョン1 担当教員:綴木 馴.
ちょっとした練習問題① 配列iroを['R', 'W', 'R', 'R', 'W' , 'W' , 'W']を宣言して、「W」のときの配列の番号をprintfで表示するようなプログラムを記述しなさい。
プログラミング2 関数
関数と配列とポインタ 1次元配列 2次元配列 配列を使って結果を返す 演習問題
関数の定義.
第10回関数 Ⅱ (ローカル変数とスコープ).
第10章 これはかなり大変な事項!! ~ポインタ~
プログラミング入門2 第8回 ポインタ 情報工学科 篠埜 功.
高度プログラミング演習 (03).
知能情報工学演習I 第12回(後半第6回) 課題の回答
第7回 プログラミングⅡ 第7回
復習 前回の関数のまとめ(1) 関数はmain()関数または他の関数から呼び出されて実行される.
第11回 プログラミングⅡ 第11回
情報基礎Ⅱ (第11回) 月曜4限 担当:北川 晃.
関数の再帰呼び出しとは ハノイの塔 リダイレクト レポート課題
情報理論2 第3回 小林 学 湘南工科大学 2011年10月25日 〒 神奈川県藤沢市辻堂西海岸1-1-25
演習0 func0, func1, func2を作成せよ. main()関数の中で,func0()を呼び出しを実行せよ.
メモリとメモリアドレス, ポインタ変数,関数へのポインタ渡し
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
プログラミング言語論 第六回 理工学部 情報システム工学科 新田直也.
演習07-0 “Hello\n” “World!\n”と
プログラミング序論演習.
プログラミング入門2 第9回 ポインタ 情報工学科 篠埜 功.
復習 2次元配列 4列 j = 0 j = 1 j = 2 j = 3 i = 0 i = 1 i = 2 3行
プログラミング 3 2 次元配列.
IF文 START もしも宝くじが当たったら 就職活動する 就職活動しない YES END NO.
プログラミング入門2 第6回 関数 情報工学科 篠埜 功.
復習 Cにおけるループからの脱出と制御 break ループを強制終了する.if文と組み合わせて利用するのが一般的. continue
情報基礎演習B 後半第2回 担当 岩村 TA 谷本君.
11.1 標準ライブラリ関数 11.2 関数呼び出しのオーバーヘッド 11.3 大域変数 11.4 プロトタイプ宣言 11.5 関数引数
地域情報学 C言語プログラミング 第4回 while文、do~while文、switch文、 2次元配列、ポインタ 2017年11月10日
第5回 プログラミングⅡ 第5回
精密工学科プログラミング基礎 第7回資料 (11/27実施)
プログラミング入門2 第5回 配列 for文 変数宣言 初期化
ループだよ!難しいよ! 第5章 while(ループ);.
演習00-0 “Hello\n” “World!\n”と
プログラミング入門2 第6回 関数 情報工学科 篠埜 功.
精密工学科プログラミング基礎Ⅱ 第2回資料 今回の授業で習得してほしいこと: 配列の使い方 (今回は1次元,次回は2次元をやります.)
第7章 そろそろ int 以外も使ってみよう! ~データ型 double , bool~
プログラミング演習I 2003年6月11日(第9回) 木村巌.
プログラミング序論演習.
プログラミング入門2 第5回 配列 変数宣言、初期化について
第4回 配列.
情報処理Ⅱ 小テスト 2005年2月1日(火).
値渡しと参照渡しについて.
知能情報工学演習I 第9回(後半第3回) 課題の回答
計算技術研究会 第5回 C言語勉強会 関数(function)を使う
岩村雅一 知能情報工学演習I 第13回(後半第7回) 岩村雅一
プログラミング演習II 2003年10月29日(第2,3回) 木村巌.
プログラミング演習I 補講用課題
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
Presentation transcript:

問題 1 フィボナッチ数列 xn は次で定義される。 1000 以下のフィボナッチ数を全て表示するプログラムを作れ。n 番目のフィボナッチ数を返す関数 int fibonacci(int n) を定義して用いよ。 int fibonacci(int); main() { int i=1, f; while( (f=fibonacci(i)) < 1000 ){ printf("%d\n", f); i++; }

問題 2 n 個の中から r 個を取り出す組み合わせの数 nCr を計算する関数を作れ。 組合わせ数 nCr を階乗を用いて定義すると、階乗を計算する際、桁あふれが起こりうる。int combinatorial(int, int) を再帰定義してプログラムを作れ。 int combinatorial(int, int); main() { int n, r, c; printf(“input n & r:”); scanf(“%d %d”, &n, &r); c = combinatorial(n, r); printf(”c(%d,%d) = %d\n",n,r,c); } 例えば、20C10 =1846756 しかし、20! = 2432902008176640000 なので、  20!/10!2 として計算すると 正しく計算出来ない。 main 文は完成している。 関数 combinatorial を定義せよ。

問題 3 10 名分の成績(100 点満点の整数値)を配列に収め、この配列を受け取って 平均点と偏差を計算するユーザ関数 calculate を定義せよ。 平均と偏差は参照渡しで返すようにせよ。 main 文の骨格はすでに完成している。 void calculate(int[], int, double *, double *); main() { int score[10]; double heikin, hensa; /* 成績の入力部分 */ calcualte(score, 10, &heikin, &hensa); printf(“平均点は %f \n”, heikin); printf(“偏差は %f \n”, hensa); } この変数で結果を返す

問題 4 3 × 3 行列の行列式を計算する関数 det を作れ。 double det(double[3][3]); プロトタイプ宣言 main() { double a[3][3]={{1.0,2.0,1.0},{3.0,4.0,2.0} {2.0,3.0,4.0}}; double x; x = det(a); printf(“行列式は %f\n”, x); } double det(double x[3][3]) double tmp; ..... プロトタイプ宣言 引数は配列名のみ 配列名 x は仮引数

問題 5 2 つの行列の積を計算する関数を作れ。main 文は既に完成している。 main() { double A[3][3], B[3][3];     input_matrix(A, 3); input_matrix(B, 3); display_matrix(A, 3); display_matrix(B, 3); multiply_matrix(A, B, 3); } 行列は 3 × 3 行列とする 関数呼びだし後、実引数 A は行列の積 AB で上書きされる。 関数 display_matrix は 2 次元配列と行数を受け取りその内容を表示する関数 void display_matrix(double x[3][3], int dim); 関数 multiply_matrix は 2 次元配列を 2 つ受け取り、積を第一引数として返す関数 void multiply_matrix(double x[3][3], double y[3][3], int dim);

void input_matrix(A, n) double A[3][3]; int n; { int i, j; for (i=0; i < n; i++) { for(j = 0; j < n; j++) { printf(“配列の%d,%d要素を入力:”, i, j); scanf(“%lf”, &A[i][j]); } void display_matrix(A, n) double A[3][3]; int n; { int i, j; for (i=0; i < n; i++) { for(j = 0; j < n; j++) { printf(“配列[%d][%d] = %lf¥n”, i, j, A[i][j]); }