前回の授業の達成率

第1回レポートの講評
インデント(字下げ)の統一
自宅学習用コンパイラの入手法
プロトタイプ宣言の意味
関数定義と仮引数
行列計算と for 文
インデント(字下げ)の統一

自分なりの字下げの数、やり方を決める




「不統一」はダメ
テキスト、資料: 2文字分
Tab を使う? → 印刷すると狂う場合はスペースで統一
波カッコ対{}の位置

テキスト ― すべて揃える、2段階
for (i = 0; i < n; i++)
→{
→→printf("%d", a[i]);
←}

資料 ― 関数ブロックだけは揃える、1段階
for (i = 0; i < n; i++) {
→printf("%d", a[i]);
}
自宅学習用コンパイラの入手法

タダで始めるC/C++プログラミング


Visual C++ 2005 Express Edition


http://www.ooyashima.net/db/prog.htm
http://www.microsoft.com/japan/msdn/vstudio/express/
Boland C++ 5.5

http://www.codegear.com/jp/downloads/free/cppbuilder
プロトタイプ宣言の意味


関数が呼ばれる前に形だけ宣言
関数定義が先なら必要なし?(コンパイラによる)
double function(double x);
この時点で
void main(void)
定義されてい
{
ないので不安
double y;
y = function(5);
}
double function(double x)
{
return x*x;
}
定 義
double function(double x)
{
return x*x;
}
定 義
この時点で
void main(void)
定義されて
{
いるので安心
double y;
y = function(5);
}
関数定義と仮引数




仮引数の変数名は暫定的なもの
定義内だけで有効. 矛盾なければOK
呼ぶ側は引数の位置と型(タイプ)だけが重要
意味の分かりやすい汎用的な名前がよい
double f(double x);
{
return x*x;
}
void main(void)
{
double t = 2;
printf("f(%f) = %f\n", t, f(t));
}
行列計算と for 文

∑の計算と for 文
N
S

k2
k 1

s = 0;
for (k = 1; k < N; k++) {
s += k*k;
}
行列の乗算と for 文
n
ci , j 
a
i,k
 bk , j
k 1
(i  1,2,..., m; j  1,2,..., m)
c[i][j] = 0;
for (k = 1; k < n; k++) {
c[i][j] += a[i][k]*b[k][j];
}
演習12.3の計算結果