情報・知能工学系 山本一公 kyama@tut.jp プログラミング演習Ⅱ 第4回 配列(2) 情報・知能工学系 山本一公 kyama@tut.jp.

Slides:



Advertisements
Similar presentations
プログラミング演習Ⅱ 第1回 ガイダンス 情報・知能工学系 山本一公 本演習の概要(1) C 言語の「基礎知識」の習得 – プログラミング演習Ⅰの続き – 配列、関数、ポインタ等 – プログラミング演習Ⅰの内容だけでは、 とてもじゃないが「 C 言語を勉強した」とは 言えない.
Advertisements

プログラミング演習Ⅱ 第 11 回 ポインタ(2) 情報・知能工学系 山本一公
プログラミング演習Ⅱ 第 8 回 マクロ・列挙体等 情報・知能工学系 山本一公
プログラミング演習( 2 組) 第 9 回
配列の宣言 配列要素の初期値 配列の上限 メモリ領域 多次元配列 配列の応用
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第3回 配列(1) 情報・知能工学系 山本一公
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第5回 関数(1) 情報・知能工学系 山本一公
初年次セミナー 第8回 データの入力.
7/10 if 文課題 力作が多くて感心! 演習1:キーボードから2つの整数を入力し、小さい方の数字を 表示せよ。
配列(2) 第10回目 [6月22日、H.16(‘04)] 本日のメニュー 1)前回の課題について 2)前回の宿題について 3)課題
ヒープソートの演習 第13回.
関数(1) 第11回 [6月29日、H.16(‘04)] 今日のメニュー 1 前回の課題 2 前回の宿題 3 いろいろな関数の演習 4 課題
プログラミング入門2 第4回 配列 for文 変数宣言 初期化
情報理論2 注意!! 11月26日(火)は休講 (小林が学会出張のため) 湘南工科大学情報工学科 准教授 小林 学 湘南工科大学
ファーストイヤー・セミナーⅡ 第8回 データの入力.
配列(2) 第10回[平成15年6月26日(木)]:PN03-10.ppt 今日の内容 1 素数を求める(教科書の例):復習
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第7回 データの基本型 情報・知能工学系 山本一公
プログラミングができるようになるには…. 一週間に1回では無理! 自分の力でできるだけがんばる
6/19 前回復習 for文による繰り返し計算 演習1:1から10まで足して画面に結果を表示する 提出者: 1人
6/26 前回復習 for文、while文による繰り返し計算
前回の復習 課題: ある動物の t 年における数は、前年と前々年の数の 合計で表わされるという。すなわち
プログラミング演習Ⅱ 第12回 文字列とポインタ(1)
多重ループ 繰り返し構造:補足事項 第8回目 [6月8日、H.16(‘04)] 本日のメニュー 1)前回の課題について
多重ループ 繰り返し構造:補足事項 第8回目 [6月12日、H.15(‘03)] 本日のメニュー 1)前回の課題について
C言語 配列 2016年 吉田研究室.
プログラミング実習 1・2 クラス 第 1 週目 担当教員:  渡邊 直樹.
第6章 2重ループ&配列 2重ループと配列をやります.
トキのカタチ2016 電子工作(Arduino)講習
プログラミング入門2 第3回 繰り返し文 芝浦工業大学情報工学科 青木 義満
配列(1) 第9回目 [6月15日、H.16(‘04)] 本日のメニュー 1)前回の課題について 2)前回の宿題について 3)配列 4)課題
精密工学科プログラミング基礎Ⅱ 第3回資料 今回の授業で習得してほしいこと: 2次元配列の使い方 (前回の1次元配列の復習もします.)
第10回 プログラミングⅡ 第10回
第7回 条件による繰り返し.
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
プログラミング演習(2組) 第8回
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第2回 ファイル処理 情報・知能工学系 山本一公
アルゴリズムとプログラミング (Algorithms and Programming)
プログラミング演習I 2003年5月7日(第4回) 木村巌.
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
第7回 条件による繰り返し.
第7回 プログラミングⅡ 第7回
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
第11回 プログラミングⅡ 第11回
プログラムの制御構造 配列・繰り返し.
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
データ構造とアルゴリズム (第5回) 静岡大学工学部 安藤和敏
知能情報工学演習I 第11回( C言語第5回) 課題の回答
プログラミングⅡ 第2回.
アルゴリズムとデータ構造 --- 理論編 --- 山本 真基
プログラミング入門2 第5回 配列 for文 変数宣言 初期化
プログラミング基礎演習 第4回.
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
プログラミング入門2 第6回 関数 情報工学科 篠埜 功.
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
情報処理Ⅱ 第2回 2004年10月12日(火).
プログラミング演習II 2003年12月10日(第7回) 木村巌.
プログラミング1 プログラミング演習I 第2回.
湘南工科大学 2013年10月22日 情報理論2 湘南工科大学情報工学科 准教授 小林 学.
プログラミング序論演習.
プログラミング入門2 第5回 配列 変数宣言、初期化について
知能情報工学演習I 第11回(後半第5回) 課題の回答
情報処理Ⅱ 第3回 2004年10月19日(火).
情報処理Ⅱ 2006年10月20日(金).
第5回 配列.
知能情報工学演習I 第10回( C言語第4回) 課題の回答
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
ファーストイヤー・セミナーⅡ 第10回 if文による選択処理(2).
Presentation transcript:

情報・知能工学系 山本一公 kyama@tut.jp プログラミング演習Ⅱ 第4回 配列(2) 情報・知能工学系 山本一公 kyama@tut.jp

課題1の採点結果から 学籍番号・氏名・プログラムの説明・実行結果を忘れずに 最後にコンパイル・実行チェックを忘れずに 提出直前に修正してコンパイルできないまま提出、なんてことがないように 課題1−1は、ほぼ問題無し 課題1−2 仕様を満たしていない fprintf()を使っていて、バイナリ出力になっていない

前回の課題の解説・ポイント 課題2-1 課題2-2 “4-i”で良い 行列の要素数が“ N”なら、 “Nーiー1” 初期化が必要 for (i = 0; i < 5; i++) vb[i] = va[5 - i - 1]; innerprod = 0.0; for (i = 0; i < n; i++) innerprod += a[i] * b[i];

今日の内容 教科書 p.102~ 配列 配列の応用 多次元配列(2次元配列) 素数を求めるプログラム unsigned long switch文じゃないところで使うbreak for文のおさらい コンマ演算子

多次元配列(1) 先週やった配列は1次元配列 配列の添え字を増やすと 多次元配列に! 2次元配列(行列) もっと次元を増やすことも可能 mc[0][0] mc[0][1] mc[0][2] mc[1][0] mc[1][1] mc[1][2] /* int型で、配列名が mc で、2行3列の行列だったら */ int mc[2] [3]; /* 厳密には「1次元配列の配列の配列」である */ int (((mc)[2]) [3])[4]; ←こういう書き方はしないけど

多次元配列(2) 初期化 ぱっと見、分かり易く 他にも /* 最初から値を入れておきたい */ int mc[2][3] = { {1, 2, 3}, {4, 5, 6} }; int mc[2][3] = { {1, 2, 3}, {4, 5, 6}, ←余分にコンマを書いても良い }; Fig.5-5を見よ int mc[][3] = { {1, 2, 3}, {4, 5, 6} } ←最初の要素数は省略可 int mc[2][3] = { 1, 2, 3, 4, 5, 6 };  ←途中の波括弧は省略可 int mc[2][3] = { {1, 2}, {4} } ←足りない要素は0で初期化される

素数を求める(1) アルゴリズムと実装の話 素数 1とその数自身以外に正の約数が存在しない1より大きな自然数 その数(no)を2~no-1で割ってみて、どの数でも割り切れなかったら素数 List 5-15

素数を求める(2) unsigned long break文 32ビットの符号なし整数 0~4,294,967,295 (232-1) 今の処理系だとunsigned long longが使えることも break文 switch文の中じゃなくても使える 一番近い(内側の)繰り返し文から抜ける for文、while文、do-while文

素数を求める(3) 2より大きい2の倍数は素数じゃない for文のおさらい 奇数に対してのみ計算する List 5-16 for文の制御 p.74, Fig.4-7 式1は、前処理がなければ省略可能 式2を省略すると、無限ループ 式3も、することがなければ省略可能

素数を求める(4) 3以上の素数は2の倍数で割り切れない noより小さい素数での除算において 一度も割り切れることがなければ素数 奇数だけで割ればよい List 5-17 noより小さい素数での除算において 一度も割り切れることがなければ素数 素数の倍数で割り切れるのなら、その前に素数で割り切れているはず 計算した素数を覚えておいて、素数で割る 配列 prime[] に素数を覚える

素数を求める(5) noの平方根以下の素数での除算において一度も割り切れなければ素数 コンマ演算子 n × m = m × n なので、noの平方根より大きい数で割り切れるなら、その前に割り切れているはず List 5-19 コンマ演算子 左から順番に演算 教科書の例では式は2つだが、もっと並べて書ける 式の値は一番右側の式

今週の課題 教科書 p.103, 演習5-7のプログラムを作成せよ。行列の要素は整数型でよい。 課題3-1のプログラムを、行列のサイズ(行数、列数)と行列の要素をキーボードから入力できるように拡張せよ。 1つめの行列をn行×k列、2つめの行列をk行×m列とし、結果の行列をn行×m列とせよ。 配列は#defineで定義した要素数で定義し、入力された行列のサイズがその数を越える場合には再入力させるようにプログラムを作成せよ。

レポートについて 電子メールで提出 提出先は prog2@slp.cs.tut.ac.jp Subjectを「プログラミング演習2 課題3提出 学籍番号・氏名 」とすること C言語ソースファイルを添付する メールの本文には何も書かなくて良いです ソースファイルの頭にコメントで以下の情報を入れる 学籍番号・氏名 プログラムの説明(どのように動くのか、工夫した点等) 実行結果(長い場合は一部)を貼る 提出締切は、10月31日(水) 12:00 (1週間後)

授業用Webサイト URL: http://www.slp.cs.tut.ac.jp/~kyama/programming2/ 課題のpdfファイルが置いてあります。 授業で使ったpptファイルを置いていきます。 質問メールは、以下のどちらかのアドレスまで kyama@tut.jp prog2@slp.cs.tut.ac.jp C-515へ直接質問しに来ても構いません