2013年度 情報処理・演習2 中間試験の解答解説
問題1 アンケートのデータベースを設計するために,
IDNo.氏名,年齢,回答1(番号),回答2(数文字の記述),回答3(番号)
から構成されるデータを扱いたい.
1)上記のデータの構造体を作成せよ.変数の型に注意すること
struct enqt_str{ |
2)メイン関数にて構造体を用いて具体的なデータを記述せよ.
例えば50人分作るとして,初期値として代表的に2人分くらい作ればよい.
なお, scanfで対話して入力する,fscanfでファイルから読み出すなど,各自工夫しても構わない.
main(){ |
参考
構造体名を決めず,以下のように構造体の構造だけを先に定義しておき,関数内で構造体名を
決めて利用する方法もある.
typedef struct{ |
問題2 変数a, b, cがある.(a+b)のc乗を計算したい.cは正の整数でよい.
1)上記の関数を作成せよ.
double calc_n_jo(double a, double b, int c){ |
※ math.hを読み込んでいるので,pow(a+b, c);を用いても良い.
2)上記の関数をメイン関数で呼び出し,演算を行うプログラムを作成せよ.
a=1.3, b=2.8, c=5として初期値を与えてよい.
#include <stdio.h> |
問題3 グローバル変数をプログラム中にて利用したい.
1)グローバル変数とは何か,どのように使うか,説明せよ.
グローバル変数とは,開発しているプログラム内の関数の全てから参照できる変数である. |
2)グローバル変数を使う際の注意点について説明せよ.
グローバル変数は,開発しているプログラム内の関数の全てから参照できる変数であるが, |
参考
グローバル変数は極力使うべきではないと考えている参考書も多い.ソースコードが大きい場合,
他人と共有してソフト開発している場合,仕様を充分に明確に残していない場合,上記の通り,不便
だけでなく,結果を保証できない面でも危険なものであると言える.
しかしながら,アルゴリズム上,グローバル関数を書き換える関数がはっきりしていてその動作に問題
なく,,グローバル関数の値を常にモニターするような利用法であれば,便利な場合もある.
こうした一般論は経験則に基づく貴重なものであるが,仕様と必要性がはっきりしている場合には,
使ってみるのも一策であることも確かである.(避けられれば避けた方が無難なことが多いのも確か)
問題4 変数a, b, cがあり,変数の内容をa→b,b→c,c→aと入れ替えたい.
また,データ数は5を考えている.
1)変数内のデータを入れ替える関数を作成せよ.ポインタを用いて作成すること.
void irekae(double* a, double* b, double* c){ |
上記は最低ラインの解答.aa, bb, ccをまとめた配列にしてもかまわない.
あるいは,関数の変数一つでも可能である.
2)メイン関数内にてこの処理を行うプログラムを作成せよ.データ群は適宜初期化して作成せよ.
main(){ |
問題5 以下について説明せよ
1)分割コンパイル(複数ファイルの利用)とは何か.その利点は何か.
CまたはC++言語にて,複数のソースファイルを利用したソフトウェア開発をすることがある. |
2)計算機解析,シミュレーションについて注意すべきことを説明せよ.
授業で用いた,複素数やフーリエ解析を題材に利用して説明しても良い.
プログラムは間違い(バグ)を含んでいることを留意しておかなければならない.バグとしては, |
本日の講義では,このことについて扱うことにする.