山元進.  今日 総合的な演習  来週  中間試験  期末と中間両方受けて初めて成績が付く  どちらかを欠席したら 成績表は X  期末試験:適切な理由があれば追試が受けられる  適切な理由であるかの判定のため、診断書などを持参せ よ  対外試合に参加、などの理由は基本的に認めない.

Slides:



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

プログラミング実習 1 ・ 2 ク ラス 第 2 週目 担当教員 : 渡邊 直樹. 課題 2 ● 2 × 2型行列の固有値, 固有ベクトルを求め る EigMatrix.java というプログラムを作成せ よ。 ● 行列の各要素はコマンド・プロンプトから入力 ● 計算した結果もコマンド・プロンプトに表示.
オブジェクト指向言語・ オブジェクト指向言語演習 中間試験回答例. Jan. 12, 2005 情報処理技術基礎演習 II 2 オブジェクト指向言語 中間試験解説 1  (1) 円柱の体積(円柱の体積 = 底面の円の面積 x 高さ) を求めるプログラムを作成しなさい。ただし、出力結果は、入 力した底面の円の半径.
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第3回 配列(1) 情報・知能工学系 山本一公
初年次セミナー 第8回 データの入力.
Generic programming と STL
プログラムのパタン演習 解説.
プログラミング基礎I(再) 山元進.
プログラミング入門2 第4回 配列 for文 変数宣言 初期化
プログラミング基礎I(再) 山元進.
プログラミング基礎I(再) 山元進.
数理情報工学演習第一C プログラミング演習 (第3回 ) 2014/04/21
プログラミング基礎I(再) 山元進.
ファーストイヤー・セミナーⅡ 第8回 データの入力.
配列(2) 第10回[平成15年6月26日(木)]:PN03-10.ppt 今日の内容 1 素数を求める(教科書の例):復習
6/19 前回復習 for文による繰り返し計算 演習1:1から10まで足して画面に結果を表示する 提出者: 1人
基礎プログラミングおよび演習 第9回
プログラミング演習Ⅱ 第12回 文字列とポインタ(1)
プログラミング基礎I(再) 山元進.
プログラミング基礎I(再) 山元進.
第4章 配 列 オブジェクト指向Javaプログラミング入門 近代科学社©2008 Toru Kato Masahiro Higuchi
C言語 配列 2016年 吉田研究室.
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
プログラミング演習II 2004年10月19日(第1回) 理学部数学科・木村巌.
情報処理Ⅱ 2005年12月9日(金).
C言語講座 第4回 ポインタ.
プログラミング実習 1・2 クラス 第 1 週目 担当教員:  渡邊 直樹.
第6章 2重ループ&配列 2重ループと配列をやります.
情報基礎A 第11週 プログラミング入門 VBAの基本文法3 配列・For~Next
プログラミング演習Ⅰ 課題2 10進数と2進数 2回目.
第10回 プログラミングⅡ 第10回
ちょっとした練習問題① 配列iroを['R', 'W', 'R', 'R', 'W' , 'W' , 'W']を宣言して、「W」のときの配列の番号をprintfで表示するようなプログラムを記述しなさい。
プログラミング言語入門 手続き型言語としてのJava
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
アルゴリズムとプログラミング (Algorithms and Programming)
前回の練習問題.
C#言語ソースプログラムの原型 C言語 C#言語 Hello World! Hello Students! オマジナイ! 適当なクラス名
P n ポインタの基礎 5 q m 5 7 int* p; int 型の変数を指すポインタ int* q; int 型の変数を指すポインタ int n=5, m=7; int 型の変数 int array[3]; int* pArray[3]; p = &n; ポインタにアドレスを代入しているのでOK.
プログラミング 4 整列アルゴリズム.
プログラミング言語論 第四回 理工学部 情報システム工学科 新田直也.
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語.
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
プログラミング言語論 第六回 理工学部 情報システム工学科 新田直也.
アルゴリズムとプログラミング (Algorithms and Programming)
プログラミング 3 2 次元配列.
IF文 START もしも宝くじが当たったら 就職活動する 就職活動しない YES END NO.
プログラミングⅡ 第2回.
C#プログラミング実習 第3回.
プログラミング入門 電卓を作ろう・パートI!!.
アルゴリズムとプログラミング (Algorithms and Programming)
第5回 プログラミングⅡ 第5回
高度プログラミング演習 (11).
プログラミング入門2 第5回 配列 for文 変数宣言 初期化
コンパイラ 2012年10月11日
プログラミング 4 文字列.
プログラミング入門2 第6回 関数 情報工学科 篠埜 功.
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
プログラミング演習I 2003年6月11日(第9回) 木村巌.
プログラミング演習II 2004年11月 2日(第3回) 理学部数学科・木村巌.
プログラミング1 プログラミング演習I 第2回.
プログラミング序論演習.
プログラミング入門2 第5回 配列 変数宣言、初期化について
情報処理Ⅱ 小テスト 2005年2月1日(火).
情報処理Ⅱ 2006年10月20日(金).
プログラミング演習I 補講用課題
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
プログラミング 3 ポインタ(1).
計算機プログラミングI 第2回 2002年10月17日(木) 履習登録 複習 ライブラリの利用 (2.6-7) 式・値・代入 (2.6-8)
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
ファーストイヤー・セミナーⅡ 第10回 if文による選択処理(2).
Presentation transcript:

山元進

 今日 総合的な演習  来週  中間試験  期末と中間両方受けて初めて成績が付く  どちらかを欠席したら 成績表は X  期末試験:適切な理由があれば追試が受けられる  適切な理由であるかの判定のため、診断書などを持参せ よ  対外試合に参加、などの理由は基本的に認めない  中間試験:適切な理由があれば欠席を認める  再来週以降総合的な演習

 データを記憶するメモリ領域に、名前 ( 識 別子 ) を対応づけたもの int a; どこかのメモリと対応している 対応は計算機が自動的に管理 整数のデータ 10 データ書き込み データ読み出し

 変数をまとめて一つの名前で扱う  添字 (index) によりどの要素か指定  添字は名前の後につける [ ] の中に書く  添字は整数型の変数でも良い b[0]b[1]b[2]b[3] int[ ] b = new int[4]; b という名前で 4 つの変数をまとめて扱う b.length → 4

 条件が成り立つかどうかで処理を変える  if ( 条件 ) {  条件成立時の処理  } else {  条件不成立時の処理  }  switch ( 変数 ) { case … } という親戚もい る

for( int i=0; i < 10; i++) { 繰り返す処理 ( この例では i=0, i=1, i=2, … i=9 まで 10 回繰り返す ) } while( 条件 ){ 条件が成立している間繰り返す処理 } do { … } while ( 条件 ); という親戚もいる

 繰り返し・配列・条件分岐の組み合わせが大 事  組み合わせ方は、たくさんプログラムを書か ないと、多分覚えられない(身に付かない)  さらには、メソッドの使い方が大事になる  プログラミング基礎 II で

 一般的にはそのクラスの性質を表すデー タを記憶する変数  プログラミング基礎 I では、クラスを本格的に 使わないので、単に変数として使うことも多 い

 メソッドは特定の機能をはたす  メソッドには引数と戻り値がある  引数と戻り値には型がある  特別な型として void 型  ある程度まとまった機能ならメソッドに する  まとまった機能の例 素数かどうか判定 する機能  フィールドへのアクセス ( 読み・書き )  プログラミング基礎 I では、クラスを本格的に 使わないので、いまはそれほど気にしなくて よい  特別なメソッド : main メソッド  仮想マシン起動時、最初に実行される

 p. 203 int tmp = test[t]; //1 行目 test[t] = test[s]; // 2 行目 test[s] = tmp; // 3 行目  この部分の動作を確かめよう

 i = 1, j = 3 の例 tmp の値は関知しない tmp ? test[s] 3 test[t] 6 = 演算子 ( 代入 ) 1 行目が実行されると tmp が 6 になる

tmp 6 test[s] 3 test[t] 6 = 演算子 ( 代入 ) 2 行目が実行されると test[t] が 3 になる

tmp 6 test[s] 3 test[t] 3 = 演算子 ( 代入 ) 3 行目が実行されると test[s] が 6 になる

tmp 6 test[s] 6 test[t] 3 test[s] 3 test[t] 6 下の、始まる前と比べると、 test[s], test[t] の値が入れ替わっている

前の for 文により、 t > s であることに注意 if(test[t] > test[s]){ 「 test[t] と test[s] の値の入れ替 え」 } test[s] と test[t] を比べて後ろが大きかっ たらデータを入れ替える → 前の方に大きな値が格納される ( test[s] >= test[t] が保証される)

for(int t=s+1; t<test.length; t++){ 「 test[s] >= test[t] となるように入れ替 え」 } for 文で、この操作を test[s] より後の全ての test[t] に対して 行う この for 文が完了すると、 test[s] >= test[t] が、 test[s] より 後ろの全ての test[t] に対して成り立つ → test[s] が test[s] から test[test.length-1] の最大値

for(int s=0; s<test.length; s++){ 「 test[s] から test[test.length-1] までの 最大値が test[s] になるよう並べ替え」 } この for 文が終わると、値の大きい順に並 べ替えられる

 ソートのような複雑な操作も、 1 ステップ 1 ステップ、全ての配列と変数の値を紙に 書いてみれば、必ず動作が理解できる。  慣れれば、全部書かなくても分かるよう になる  こういう仕組みを理解するように努力し ないと、決してプログラムが書けるよう にならない  単位を取るのに苦労するし、なにより卒研で 困る

 Report1 : a k = a k-1 + a k -2 (k>2), a 1 = 1, a 2 = 1 とする。 a n を画面に出力するプログラム を作成せよ。 n は各自の学籍番号の各ケタの 数の和とする。ただし、 n <10 の場合、さら に 10 を足せ。  Report2 : n を引数として渡すと 戻り値とし て a n を返すメソッドを作成せよ。 メソッド 名は a とする。 a メソッドを for 文の中で呼 び出し、 a 1 から a 30 までを画面に出力する プログラムを作成せよ。  ただし、 a メソッドを main メソッドから呼び出 せるよう、 static int a(int n) と宣言すること。  注意 : このメソッドを素直に実装すると、何度も 同じ計算をすることになり効率が悪い。実用的な プログラムを書くときには工夫すべき。

 main メソッドがあるクラス名は Report3  A, J, Q, K と書かれたカード 1 枚ずつと、 2 から 10 までの数字が書かれたカード 1 枚 ずつ、計 13 枚のカードを使ってゲームを する。ルールは以下の通りとする。  カード 2 枚を同時に引き、合計点を競う。  ただし、 A は 11 点、 J, Q, K は 10 点、数字 の札は、書かれた数字を点数とする。  ( 今回使わないが、合計点 21 点を超えたら 0 点)

 2 枚のカードの全ての組み合わせをしらべ、点数 の頻度分布を書き出せ。  k 点となるカードの順列は N k 通りだとして、 N 0, N 1, N 2, …, N 最高点 までを全て書き出すこと  ヒント  カードを 1 ~ 13 の整数と対応させる  2 枚のカードは 2 つの変数に対応させる  for 文を使うと、 1 ~ 13 全ての場合を調べることがで きる  引くカードは 2 枚だから、 2 重にネストした for 文を 使うと …  頻度を配列に記憶する。最高点を p 点とすれば、配 列の長さは p+1 になる。  A は 11 点、 J, Q, K は 10 点であることを忘れるな。