第1回レポートの講評 インデント(字下げ)の統一 自宅学習用コンパイラの入手方法 行列計算と for 文 演習12.3の計算結果 演習12.4の計算結果 インデント(字下げ)の統一 自分なりの字下げの数、やり方を決める 「不統一」はダメ テキスト、資料: 2文字分、サンプル:4文字分 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++ 2008 Express Edition http://www.ooyashima.net/db/prog.htm http://www.microsoft.com/japan/msdn/vstudio/express/ Boland C++ 5.5, Turbo C++ Explorer http://www.codegear.com/jp/downloads/free/cppbuilder 行列計算と 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,..., N ; j 1,2,..., N ) c[i][j] = 0; for (k = 0; k < N; k++) { c[i][j] += a[i][k]*b[k][j]; } 演習12.3の計算結果 12 14 16 A B 18 20 22 24 26 28 10 10 10 A B 10 10 10 10 10 10 90 96 102 A B 216 231 246 342 366 390 演習12.4の計算結果 2 3 1 x 1 3 1 2 y 7 1 2 3 z 6 x 1 y 2 z 3 ポインタとは何か 配列の先頭=ポインタ定数 ポインタ メモリ空間における目印 ポインタ変数 ポインタ'定数' 固定された目印=「ランドマーク」 配列名はポインタ定数 ポインタ'変数' 動かせる目印=「本のしおり」 使いたいときに定義しておく int *p; メモリ空間 pはポインタで、pの位置の中味(*p)がint型であるような物. ポインタを1つ増すごとに sizeof(int)(= 4バイト)進む. 実体はなく、常に何か(配列や文字列)の代理人として働く. ポインタの正体 ポインタの正体はメモリのアドレス int a; int *p; → 変数: a, アドレス: &a → 変数: *p, アドレス: p → 変数(配列の要素): a[0] アドレス: &a[0] = a int a[2][1];→ 変数(配列の要素): a[0][0] アドレス: &a[0][0]=a[0]=a &a[1][0]=a[1] int a[1]; ポインタ配列とは ポインタの配列 例えば、2次元配列の1列目(各行の先頭)のアドレス だけを集めて配列にすると便利なことがある int a[2][2]; int *p[2]; 定義しただけでは実体はない p[0] = a[0]; p[1] = a[1]; としておくと、2次元配列を関数に引き渡すときに サイズを指定しなくて済む
© Copyright 2024 ExpyDoc