JavaプログラミングⅠ

Similar documents
Java プログラミング Ⅰ 11 回目多次元配列 2 次元配列 2 次元配列配列要素が直線上に並ぶ一次元配列に対して 平面上に並ぶ配列要素をもつ配列 直観的には 2 次元配列の準備配列変数の宣言は型と識別子を指定して次のように行う 型識別子 [ ][ ]; または 型 [ ][ ] 識別子 ; 配

JavaプログラミングⅠ

JavaプログラミングⅠ

JAVA入門

Prog1_6th

JavaプログラミングⅠ

JAVA入門

JavaプログラミングⅠ

Java プログラミング Ⅰ 3 回目変数 変数 変 数 一時的に値を記憶させておく機能型 ( データ型 ) と識別子をもつ 2 型 ( データ型 ) 変数の種類型に応じて記憶できる値の種類や範囲が決まる 型 値の種類 値の範囲 boolean 真偽値 true / false char 2バイト文

メソッドのまとめ

Microsoft PowerPoint - prog03.ppt

JavaプログラミングⅠ

JavaプログラミングⅠ

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 今日の講義講義で学ぶ内容 switch 文 論理演算子 条件演算子 条件判断文 3 switch 文 switch 文 式が case のラベルと一致する場所から直後の break; まで処理しますどれにも一致致しない場合 def

break 文 switch ブロック内の実行中の処理を強制的に終了し ブロックから抜けます switch(i) 強制終了 ソースコード例ソースファイル名 :Sample7_1.java // 入力値の判定 import java.io.*; class Sample7_1 public stati

cp-7. 配列

2

3,, となって欲しいのだが 実際の出力結果を確認すると両方の配列とも 10, 2, 3,, となってしまっている この結果は代入後の配列 a と b は同じものになっていることを示している つまり 代入演算子 = によるの代入は全要素のコピーではなく 先をコピーする ため 代入後の a と b は

Microsoft PowerPoint - 説柔5_間勊+C_guide5ï¼›2015ã•’2015æŒ°æŁŽæš’å¯¾å¿œç¢ºèª“æ¸‹ã†¿ã•‚.pptx

Prog1_2nd

JavaプログラミングⅠ

第9回 配列(array)型の変数

JavaプログラミングⅠ

Prog2_10th

JavaプログラミングⅠ

プログラミングA

JavaプログラミングⅠ

Java プログラミング Ⅰ 3 回目変 数 今日の講義講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能 変数は 型 ( データ型 ) と識別子をもちます 2 型 ( データ型 ) 変数に記憶する値の種類変数の型は 記憶できる値の種類と範囲

ガイダンス

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 条件判断文 3 switch 文 switch 文式が case の値と一致した場合 そこから直後の break; までを処理し どれにも一致しない場合 default; から直後の break; までを処理する 但し 式や値 1

Prog1_15th

Java講座

PowerPoint プレゼンテーション

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

memo

pp2018-pp9base

Microsoft PowerPoint - kougi6.ppt

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

7 ポインタ (P.61) ポインタを使うと, メモリ上のデータを直接操作することができる. 例えばデータの変更 やコピーなどが簡単にできる. また処理が高速になる. 7.1 ポインタの概念 変数を次のように宣言すると, int num; メモリにその領域が確保される. 仮にその開始のアドレスを 1

2

プログラミングA

memo

gengo1-8

Microsoft PowerPoint - chap10_OOP.ppt

問題1 以下に示すプログラムは、次の処理をするプログラムである

プログラミング入門1

講習No.9

JavaプログラミングⅠ

デジタル表現論・第6回

Microsoft PowerPoint ppt

Microsoft PowerPoint - handout07.ppt [互換モード]

HCI プログラミング 10 回目テキストフィールドとキーイベント 今日の講義で学ぶ内容 テキストフィールドの利用 キーイベントの処理 テキストフィールドの利用 1 テキストフィールドを配置してみましょう テキストフィールドを用いることにより 数値や文字列などのデータ入力が可能になります ソースファ

メディプロ1 Javaプログラミング補足資料.ppt

Javaの作成の前に

第 3 回 Java 講座 今回の内容 今週の Java 講座はコレクション 拡張 for 文, ガベージコレクションについて扱う. 今週の Java 講座は一番内容が薄いも のになるだろう. コレクション コレクションとは大きさが決まっていない配列だと考えればよい. コレクションには List 先

プログラミングA

Microsoft PowerPoint - C4(反復for).ppt

Microsoft PowerPoint - prog04.ppt

情報処理概論(第二日目)

プログラミング基礎

問題1 以下に示すプログラムは、次の処理をするプログラムである

本サンプル問題の著作権は日本商工会議所に帰属します また 本サンプル問題の無断転載 無断営利利用を厳禁します 本サンプル問題の内容や解答等に関するお問 い合わせは 受け付けておりませんので ご了承ください 日商プログラミング検定 STANDARD(Java) サンプル問題 知識科目 第 1 問 (

02: 変数と標準入出力

Prog2_9th

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

JavaプログラミングⅠ

Prog1_10th

JavaプログラミングⅠ

プログラミング基礎I(再)

Prog1_3rd

プログラミング入門1

FORTRAN( と C) によるプログラミング 5 ファイル入出力 ここではファイルからデータを読みこんだり ファイルにデータを書き出したりするプログラムを作成してみます はじめに テキスト形式で書かれたデータファイルに書かれているデータを読みこんで配列に代入し 標準出力に書き出すプログラムを作り

PowerPoint プレゼンテーション

4 月 東京都立蔵前工業高等学校平成 30 年度教科 ( 工業 ) 科目 ( プログラミング技術 ) 年間授業計画 教科 :( 工業 ) 科目 :( プログラミング技術 ) 単位数 : 2 単位 対象学年組 :( 第 3 学年電気科 ) 教科担当者 :( 高橋寛 三枝明夫 ) 使用教科書 :( プロ

Microsoft PowerPoint - 計算機言語 第7回.ppt

Prog1_11th

02: 変数と標準入出力

プログラミング実習I

デジタル表現論・第4回

JavaプログラミングⅠ

C#の基本2 ~プログラムの制御構造~

Microsoft PowerPoint - 5Chap15.ppt

講習No.8

program7app.ppt

memo

PowerPoint プレゼンテーション

情報処理Ⅰ

memo

Microsoft PowerPoint - 第3回目.ppt [互換モード]

5

PowerPoint プレゼンテーション

プログラミング基礎

プログラミング入門1

<4D F736F F D2091E F196E291E889F090E C4816A82CC838C E646F6378>

Java 基礎問題ドリル ~ メソッドを理解する ~ 次のプログラムコードに 各設問の条件にあうメソッドを追加しなさい その後 そのメソッドが正しく動作することを検証するためのプログラムコードを main メソッドの中に追加しなさい public class Practice { // ここに各設問

問題 01 以下は コンソールより年齢を入力させ その年齢にあった料金を表示するプログラムである 年齢ごとの金額は以下の通りである 年齢の範囲金額 0 歳以上 6 歳以下 120 円 7 歳以上 65 歳未満 200 円 65 歳以上無料 package j1.exam02; import java

ÿþ˜u#u·0¹0Æ0à0

Report#2.docx

gengo1-11

プログラミング入門1

Transcription:

Java プログラミング Ⅰ 11 回目多次元配列 今日の講義で学ぶ内容 2 次元配列とその使い方 不規則な 2 次元配列.length 修飾子 2 次元配列 1 次元配列配列要素が直線的に並ぶ配列です次のように考えると分かりやすいでしょう 2 次元配列配列要素が平面的に並ぶ配列です次のように考えると分かりやすいでしょう 2 次元以上の配列のことを多次元配列といいます 2 次元配列の利用 2 次元配列の利用手順配列変数の宣言 配列要素の確保 配列要素の参照 利用手順は 1 次元配列の場合と同様です配列変数の宣言型と識別子を指定して次のように行います 型識別子 [][]; または 型 [][] 識別子 ; // Java での標準のスタイル コード例 int[][] ary; 括弧 [] の数が配列の次元を表しますたとえば int[][][] ary; は int 型の 3 次元配列型の変数 ( 配列変数 )ary を宣言します - 1/8 -

配列要素の確保型と配列要素の個数を指定して次のように行います 識別子 = new 型 [ 行の配列要素の個数 ][ 列の配列要素の個数 ]; コード例 int[][] ary; ary = new int[2][3]; 配列要素の参照各配列要素の参照は配列変数の識別子と添え字を用いて次のようにします 識別子 [ 行の添え字 ][ 列の添え字 ] 添え字には個々の配列要素の位置 ( 行方向と列方向 ) を表す 0 以上の整数を指定します 行の添え字には 0 ~ 行の配列要素の個数 -1 までの整数を指定します 列の添え字には 0 ~ 列の配列要素の個数 -1 までの整数を指定します 添え字は 1 次元の配列と同様に 0 から始まることに注意しましょう 例えば 4 行 5 列の配列要素をもつ 2 次元配列の場合は次のようにして添え字を指定します 2 次元配列 対応する行の添え字 3 2 0 1 行の添え字 :2 列の添え字 :3 0 1 2 3 4 対応する列の添え字 配列要素 配列要素への値の代入は 各配列要素を参照して次のように行います 識別子 [ 行の添え字 ][ 列の添え字 ] = 値 ; コード例 int[][] ary; ary = new int[2][3]; ary[0][1] = 1; - 2/8 -

ソースコード例ソースファイル名 :Sample11_1.java // 配列を用いて 3 人の学生 (3 行 ) の 2 科目の点数 (2 列 ) を管理する class Sample11_1 // 配列変数の宣言 int[][] test; // int test[][]; とも記述可能 // 配列要素の確保 test = new int[3][2]; // 配列変数の宣言と配列要素の確保は同時に記述可能 // int test[][] = new int[3][2]; // int[][] test = new int[3][2]; // 各配列要素へ値を代入 // 添え字は 0 から要素数 -1 まで!! test[0][0]=80; test[0][1]=50; test[1][0]=60; test[1][1]=75; test[2][0]=22; test[2][1]=90; // 各配列要素を順番に出力 for(int i=0; i<3; i++) System.out.println(i+" 番目の学生の得点 :"); System.out.println(" 科目 1:"+test[i][0]+" t 科目 2:"+test[i][1]); 0 番目の学生の得点 : 科目 1:80 科目 2:50 1 番目の学生の得点 : 科目 1:60 科目 2:75 2 番目の学生の得点 : 科目 1:22 科目 2:90-3/8 -

2 次元配列の初期化 2 次元配列の初期化は 配列変数の宣言時に次のように行います指定する値が指定する行と列に代入された配列要素をもつ配列変数が宣言されます 型識別子 [][] = 0 行 0 列, 0 行 1 列,, 1 行 0 列, 1 行 1 列,, ; または 型 [][] 識別子 = 0 行 0 列, 0 行 1 列,, 1 行 0 列, 1 行 1 列,, ; 括弧 が入れ子になっていることに注意しましょう ソースコード例ソースファイル名 :Sample11_2.java // 2 次元配列の初期化 class Sample11_2 // 2 次元配列の初期化 int[][] test=80, 50, 60, 75, 22, 90; // int test[][]=80, 50, 60, 75, 22, 90; とも記述可能 // 各配列要素を順番に出力 for(int i=0; i<3; i++) System.out.println(i+" 番目の学生 :"); System.out.println(" 科目 1:"+test[i][0]+" t 科目 2:"+test[i][1]); 0 番目の学生 : 科目 1:80 科目 2:50 1 番目の学生 : 科目 1:60 科目 2:75 2 番目の学生 : 科目 1:22 科目 2:90-4/8 -

配列の初期化では配列要素の数を指定しません配列要素の数は の入れ子や値の列より自動的に計算されます 不規則な 2 次元配列 不規則な 2 次元配列 各行の配列要素の数がそれぞれ異なる 2 次元配列です 不規則な 2 次元配列の作り方次の 2 通りの方法で作成することができます 配列の初期化を利用して作成する方法 配列変数の宣言と配列要素の確保の利用手順にしたがい作成する方法 配列の初期化を利用して作成する方法ソースコード例ソースファイル名 :Sample11_3.java // 不規則な 2 次元配列で初期化する class Sample11_3 int i, j; 配列の初期化による不規則な配列 配列の列方向の配列要素を指定する内側の括弧 内で列挙する値の個数を変えてやればよいです // 2 次元配列の初期化 int[][] test=80, 60, 22, 50, 75, 72, 33, 75, 63; // 各行の列数と要素を順番に出力します //.length は指定行の列数を値としてもちます (.length の詳細は次節 ) for(i=0; i<3; i++) System.out.print(i+" 行目の要素数は "+test[i].length+" で "); for(j=0; j<test[i].length; j++) System.out.print(test[i][j]+" "); System.out.println(" です "); test[i].length test[i].length は行方向の添え字 i で指定される行の列数を表します (.length 修飾子の詳細は次節で ) - 5/8 -

0 行目の要素数は 3 で 80 60 22 です 1 行目の要素数は 2 で 50 75 です 2 行目の要素数は 4 で 72 33 75 63 です.length 修飾子とその利用.length 修飾子 配列要素の数を得るための修飾子です 1 次元配列の場合 : 1 配列変数.length 配列要素の数 2 次元配列の場合 : 1 配列変数.length 行数 2 配列変数 [i].length 第 i 行の列数 1 1 2 3 次元配列の場合 : 1 配列変数.length 行数 2 配列変数 [i].length 第 i 行の列数 3 配列変数 [i][j].length 第 i 行 j 列の高さ 1 3 2 4 次元以降も同様です ソースコード例ソースファイル名 :Sample11_4.java //.length 修飾子 class Sample11_4 // 配列の初期化 int test[]=72, 33, 75, 63; System.out.println(" 配列要素の数は "+test.length+" です "); 配列要素の数は 4 です - 6/8 -

配列変数の宣言と配列要素の確保の利用手順にしたがい作成する方法 ソースコード例ソースファイル名 :Sample11_5.java // 不規則な 2 次元配列を宣言する class Sample11_5 int[][] // ( ポイント ) // 2 次元配列は "1 次元配列の配列 " である int[] // int 型の配列型の配列型の変数 ( 配列変数 ) int[] test[]; int[][] ary; ary=new int[3][4]; 実際は int // 下記と同じ意味である // int test[][]; // int[][] test; // int 型の配列型の変数 ( 配列変数 ) を 3 つ確保する test = new int[3][]; // 各配列変数に int 型の変数をそれぞれの個数だけ確保して 2 次元配列は完成 test[0] = new int[3]; // 0 行目の配列要素は 3 つ test[1] = new int[2]; // 1 行目の配列要素は 2 つ test[2] = new int[4]; // 2 行目の配列要素は 4 つ // 各行の列数 (.length の詳細は前節 ) と要素を順番に出力 System.out.println(" 配列の行数は "+test.length+" であり "); for(int i=0; i<test.length; i++) System.out.println(i+" 行目の配列要素は "+test[i].length+" です "); 配列の行数は 3 であり 0 行目の配列要素は 3 です 1 行目の配列要素は 2 です 2 行目の配列要素は 4 です - 7/8 -

参考 : 例題 Sample11_5 の変数の振る舞いは図的に次のように理解できます int[] test[]; // int 型の配列型の配列型の変数 ( 配列変数 ) test = new int[3][]; // int 型の配列型の変数を 3 つ確保 test[0] = new int[3]; // int 型の変数を 3 つ確保 test[1] = new int[2]; // int 型の変数を 2 つ確保 test[2] = new int[4]; // int 型の変数を 4 つ確保 今日の講義のまとめ 1 次元配列は配列要素が直線的に並ぶ配列のことです 2 次元配列は配列要素が平面的に並ぶ配列のことです 一般に 2 次元以上の配列を多次元配列といいます 2 次元配列の配列要素を指定するとき 行方向と列方向の 2 つの添え字が必要です 2 次元配列の初期化は 行単位で値を列挙することにより行います 各行の列数が異なる不規則な 2 次元配列を作成することができます.length 修飾子を用いることにより 配列要素の数を知ることができます - 8/8 -