プログラミング実習 1・2 クラス 第 1 週目 担当教員:  渡邊 直樹.

Slides:



Advertisements
Similar presentations
山元進.  for 文  while 文  do ~ while 文  文のネスト  break 文  continue 文.
Advertisements

1 第5回 配列. 2 今回の目標 マクロ定義の効果を理解する。 1次元配列を理解する。 2次元配列を理解する。 ☆2 × 2の行列の行列式を求めるプログラ ムを作成する.
プログラミング第5回 1 while ループ 文字列の操作
プログラミング実習 1 ・ 2 ク ラス 第 2 週目 担当教員 : 渡邊 直樹. 課題 2 ● 2 × 2型行列の固有値, 固有ベクトルを求め る EigMatrix.java というプログラムを作成せ よ。 ● 行列の各要素はコマンド・プロンプトから入力 ● 計算した結果もコマンド・プロンプトに表示.
6.4継承とメソッド 6.5継承とコンストラクタ 11月28日 時田 陽一
ゴールデンウィークの課題 (提出日:2009/05/12) 2009/05/12に小テストがあります!
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第3回 配列(1) 情報・知能工学系 山本一公
初年次セミナー 第8回 データの入力.
プログラミング演習(1組) 第7回
関数(1) 第11回 [6月29日、H.16(‘04)] 今日のメニュー 1 前回の課題 2 前回の宿題 3 いろいろな関数の演習 4 課題
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第4回 配列(2) 情報・知能工学系 山本一公
プログラミング入門2 第4回 配列 for文 変数宣言 初期化
プログラミング基礎I(再) 山元進.
プログラミング基礎I(再) 山元進.
C言語 配列 2016年 吉田研究室.
プログラミング言語としてのR 情報知能学科 白井 英俊.
IO - 入出力 小西 亨.
プログラミング基礎I(再) 山元進.
数理情報工学演習第一C プログラミング演習 (第3回 ) 2014/04/21
プログラミング基礎I(再) 山元進.
ファーストイヤー・セミナーⅡ 第8回 データの入力.
配列(2) 第10回[平成15年6月26日(木)]:PN03-10.ppt 今日の内容 1 素数を求める(教科書の例):復習
アルゴリズムとプログラミング (Algorithms and Programming)
プログラミング演習Ⅱ 第12回 文字列とポインタ(1)
プログラミング基礎I(再) 山元進.
プログラミング基礎I(再) 山元進.
C言語 配列 2016年 吉田研究室.
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
String - 文字列 2009年10月9日 7ADD2116 佐藤洋輔.
問題 1 フィボナッチ数列 xn は次で定義される。
繰り返し プログラミング 第4回 繰り返し プログラミング第4回.
配列の扱い、探索 有効範囲と記憶域期間 第12回 [7月10日、H.15(‘03)] 今日のメニュー 1 前回の課題の復習
プログラミングIII演習 第1回目.
第20章 Flyweight ~同じものを共有して無駄をなくす~
インタフェース プログラミング 第14回 インタフェース プログラミング第14回.
精密工学科プログラミング基礎Ⅱ 第3回資料 今回の授業で習得してほしいこと: 2次元配列の使い方 (前回の1次元配列の復習もします.)
第6回独習Javaゼミ 第6章 セクション4~6 発表者 直江 宗紀.
情報処理技法 (Javaプログラミング)2 第2回 前期の復習(2)
JAVA入門② 変数と型 式と演算子 制御文.
11.6 ランダムアクセスファイル 11.7 StreamTokenizerクラス
JAVA入門.
UDPマルチキャストチャット                    空川幸司.
例外処理 と ファイル入出力 情報システム学科 平塚 聖敏.
第9章 例外処理,パッケージ 9.1 例外処理 9.2 ガーベッジコレクション.
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
暗号技術 ~JAVAプログラム③~ (7週目)
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
プログラミング演習(2組) 第8回
アルゴリズムとプログラミング (Algorithms and Programming)
暗号技術 ~JAVAプログラム①~ (5週目)
ソフトウェア制作論 平成30年11月21日.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
アルゴリズムとプログラミング (Algorithms and Programming)
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
C#プログラミング実習 第3回.
計算機プログラミングI 木曜日 1時限・5時限 担当: 増原英彦 第1回 2002年10月10日(木)
計算機プログラミングI 第3回 プリミティブ値 クラスメソッド クラス変数 式と演算 変数の利用
アルゴリズムとプログラミング (Algorithms and Programming)
暗号技術 ~JAVAプログラム②~ (6週目)
計算機プログラミングI 第4回 2002年10月31日(木) 問題解決とアルゴリズム クラスメソッドと手続きの抽象化 最大公約数
プログラミング入門2 第5回 配列 for文 変数宣言 初期化
JAVA入門⑥ クラスとインスタンス.
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
プログラミング入門2 第5回 配列 変数宣言、初期化について
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
第4回 配列.
情報処理Ⅱ 小テスト 2005年2月1日(火).
第5回 配列.
計算機プログラミングI 第2回 2002年10月17日(木) 履習登録 複習 ライブラリの利用 (2.6-7) 式・値・代入 (2.6-8)
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
Presentation transcript:

プログラミング実習 1・2 クラス 第 1 週目 担当教員:  渡邊 直樹

課題 1 3×3型行列の行列式と逆行列を求める プログラムを作成せよ。 行列の各要素はコマンド・プロンプトから入力    プログラムを作成せよ。 行列の各要素はコマンド・プロンプトから入力 計算した結果もコマンド・プロンプトに表示 課題提出の際は授業中に指示された行列を   使うこと!(さもないと減点)

課題1の提出について 1. プログラムの実行結果とソースコード(javaファイル) 提出方法:以下の事項に留意して記述したメールを      shakoj31@sk.tsukuba.ac.jp  あてに送付。  1. プログラムの実行結果とソースコード(javaファイル)     をメールの本文に書く。順番は        実行結果、ソースコード   (どちらか一方だけでは提出とみなさない。) 2. メールの件名は 必ず課題番号:学籍番号:氏名。   例:課題1:2007xxxxx:山田太郎 締め切りは 12月14日 (金)、 10:00am

今日の実習 3×3 型行列の行列式と逆行列を計算するための InvMatrix.javaという名前のプログラムを作成する。   3×3 型行列の行列式と逆行列を計算するための   InvMatrix.javaという名前のプログラムを作成する。 1. 行列Aとその逆行列Bはdouble 型の二次元配列   として宣言 2. 行列Aの各要素aijはコマンド・プロンプトから入力 for 文を使い配列Aに値を代入 3. 行列Aをコマンド・プロンプトに出力。 4. 行列式サラスの公式により求め, 得られた値を   コマンド・プロンプトに出力 5. 計算した逆行列Bをコマンド・プロンプトに出力

sample1の実行結果の例(1) >a11= 2 >a12= 3 … >a33= 1 画面に表示された行列の要素をコマンド・プロンプトから入力 >a11= 2 >a12= 3 … >a33= 1

sample1の実行結果の例(2) >A= | 2.000 3.000 1.000 | | 1.000 3.000 3.000 | | 2.000 3.000 1.000 | | 1.000 3.000 3.000 | | 4.000 2.000 1.000 | >Det(A)=17.0です。 >Inverse Matrix=…自分で書いたプログラムで計算しましょう

サラスの公式

逆行列の求め方 行列Aの逆行列A-1は余因子行列を用いて以下の手順によって求める。 det(A)=0であればA-1は存在しない。 行列Aの(i, j)-余因子をとおく。行列Aの(i, j)-余因子とは、行列Aの第i行と第j列を取り除いて得られる行列の行列式を倍したものである。例えば行列Aの(2,3)-余因子であれば、 この余因子を用いると行列Aの逆行列は(2行3列の下付添え字は32)

ヒント (1) :課題1の雛形 import java.io.*; public class InvMatrix { public static void main(String args[]) { double a[][] = new double[3][3]; // [2][3]と書くと3行2列という意味 String line; BufferedReader reader         = new BufferedReader(new InputStreamReader(System.in)); try { System.out.println("a11="); // 代入する成分を表示 line = reader.readLine(); a[0][0]= Double.parseDouble(line);   // この後にプログラムを書く               // for文を使うとかなりすっきりする(sample1参照) } catch (IOException e) { System.out.println(e); } catch (NumberFormatException e) { System.out.println("値が正しくありません"); }

ヒント (2) if (det(A) = = 0.0) { // det(A)が0階中で分岐 System.out.println("逆行列は存在しません"); } else {   // この後に逆行列の成分を計算するプログラムを書く }

2次元配列の定義と領域の確保 int [][] a; (int a [][]) // 配列aの宣言 ● 宣言には2つの形式(どちらでもよい) int [][] a; (int a [][]) // 配列aの宣言 a=new int[2][3]; // 領域の確保(3行2列) double [][] b=new double[5][2]     // 宣言と領域確保を同時に行うことも出来る ●   int [][] a = {{58, 19}, {34,73}, {9,29}}     // { {a[0][0], a[0][1]}, {a[1][0],a[1][1]}, {a[2][0],a[2][1]} }