• 検索結果がありません。

プログラミング

N/A
N/A
Protected

Academic year: 2021

シェア "プログラミング"

Copied!
28
0
0

読み込み中.... (全文を見る)

全文

(1)

プログラミング

A

6回 配列

2015年6月1日 東邦大学 金岡 晃

(2)

前回の復習(1) このプログラムは作成・実行しなくても良いです。このプログラムは 作成・実行しなくても良いです。

(3)

前回の復習(2) このプログラムは

作成し実行してください このプログラムは

作成し実行してください

(4)

前回の復習(3) このプログラムは

作成し実行してください このプログラムは

作成し実行してください

(5)

前回の復習

条件

関係演算子、論理演算子

条件に従ったプログラミング

– if, else

– switch

繰り返し

– for

– while, do

while

– break, continue

(6)

配列

(7)

こういうプログラムを作りたい

ある教科のテスト ある教科のテスト

受講者120名の各学生のデータを記憶して、

その合計点と平均点を求めたい

これまで習ったもので実現できないことはない

(8)

たとえば

120個の変数を、それぞれの別の名前で用意する

(9)

配列

120人のそれぞれの学生の

点数を記憶したい全部おなじ型 配列

配列

同じ型の値を複数まとめて記憶する

配列の宣言 :配列を扱う変数を用意する

配列要素の確保 :値を格納するエリア(箱)を用意する

型名[] 配列変数名;

配列変数名 = new 型名[要素数];

配列の書式 配列の書式

(10)

配列プログラムの例

(11)

配列の使い方

型名[] 配列変数名;

配列変数名 = new 型名[要素数];

配列の書式 配列の書式

score[0], score[1], score[2], score[3], score[4], score[5], score[6], score[7], score[8], score[9]

という10個のint型の変数 を用意した

添え字

(インデックス)

添え字

(インデックス) 00番から始まり、番から始まり、

ポイント ポイント

(12)

配列への値の代入

通常の変数と同様に

score[0] = 100;

score[1] = 120;

(13)

なぜ配列が便利か?

複数の変数を一括で準備できる 複数の変数を一括で準備できる

後で変更が容易 添え字を使ってまとめて処理ができる

添え字を使ってまとめて処理ができる

(14)

配列の宣言:他のやり方

型名[] 配列変数名;

配列変数名 = new 型名[要素数];

配列の書式 配列の書式

この他にも

型名[] 配列変数名 = new 型名[要素数];

(15)

配列の初期化

通常の変数と同様、

初期化が必要

別の手段もある

自動的に

配列要素を初期化・確保自動的に 配列要素を初期化・確保 score[0] = 10, score[1] = 20, … と

score[0], score[1], score[2], score[3], score[4]が用意される

(16)

配列のコピー このプログラムを

作成し実行してください このプログラムを

作成し実行してください

(17)

出力は?

(18)

配列のコピー:注意すべき点

abにコピーしてから aを変更しても

bに変化はない

abにコピーしてから aを変更しても

bに変化はない

arrayAarrayBにコピーしてから arrayAを変更すると

arrayBも変化する

arrayAarrayBにコピーしてから arrayAを変更すると

arrayBも変化する

(19)

配列の応用(1):配列の長さを求める

配列変数名.length 配列の長さ

配列の長さ

後で変更が容易 後で変更が容易 何が便利?

(20)

配列の応用(1) 作成・実行する

必要はありません。作成・実行する 必要はありません。

Sample6_4と一部分しか 変わりません

Sample6_4と一部分しか 変わりません

(21)

配列の応用(1)

こうしておけば

配列のサイズ(要素数)を いくつにして変更しても このfor文の部分を変更する 必要がなくなる

こうしておけば

配列のサイズ(要素数)を いくつにして変更しても このfor文の部分を変更する 必要がなくなる

(22)

配列の応用(2):多次元配列

多次元配列の書式(2次元の場合)

多次元配列の書式(2次元の場合)

型名[][] 配列変数名;

配列変数名 = new 型名[要素数] [要素数];

score[0][0] = 100;

score[0][1] = 120;

score[0][2] = 130;

score[1][0] = 140;

代入 代入

初期化 初期化

int[][] score = { {100,120,130}, {140, 150, 160} };

int[][] score;

score = new int[2][3];

(23)

配列の応用(2)

(24)

0 1 2 3 4

0 53 58 76 68 43

1 43 51 46 61 31

配列の応用(2):多次元配列

2次元配列のイメージ 2次元配列のイメージ

2×5の表(あるいは行列)

2行目、3列目の要素は46です score[1][2] = 46;

(25)

来週から

演習を中心とした講義

これまでの内容を駆使してプログラムを作成

ポイントを事前に解説

(26)

今日の課題

1.

キーボードから

10

人分のテストの点数を入力させ、その

10

人の点数 と偏差値を出力するプログラムを作成してください

2. 4x4

の形の

2

次元配列

A

の内容を準備し、同じく

4x4

の形の

2

次元配列

B

に、下図のように

90

度回転するようにして移すプログラムを作れ

𝑖番の人の偏差値 = 10 𝑥𝑖 − 𝜇𝑥

𝜎𝑥 + 50

𝜇𝑥 = 1 𝑁 𝑖=1

𝑁

𝑥𝑖 𝜎𝑥 = 1

𝑁 𝑖=1 𝑁

𝑥𝑖 − 𝜇𝑥 2

1 2 3 4

5 6 7 8

9 10 11 12

13 9 5 1

14 10 6 2

15 11 7 3

平均

平均 標準偏差標準偏差

(27)

Java

での平方根(ルート)の使い方

double k = 2.0 double l = 0;

// l

k

の平方根を入れる

l = Math.sqrt(k);

(28)

今日の課題

提出先

[email protected]

件名

プログラミング

A

:第

6

注意

かならず、メールで提出してから帰ってください。また提出前 に実行画面を、私か

TA

に見せて確認を受けてから帰ってくださ い。

ソースコード(

java

ファイル)を添付してください

参照

関連したドキュメント

平成 28 年度については、介助の必要な入居者 3 名が亡くなりました。三人について

事業所や事業者の氏名・所在地等に変更があった場合、変更があった日から 30 日以内に書面での

・条例第 37 条・第 62 条において、軽微なものなど規則で定める変更については、届出が不要とされ、その具 体的な要件が規則に定められている(規則第

それに対して現行民法では︑要素の錯誤が発生した場合には錯誤による無効を承認している︒ここでいう要素の錯

このような環境要素は一っの土地の構成要素になるが︑同時に他の上地をも流動し︑又は他の上地にあるそれらと

①配慮義務の内容として︑どの程度の措置をとる必要があるかについては︑粘り強い議論が行なわれた︒メンガー

捕獲数を使って、動物の個体数を推定 しています。狩猟資源を維持・管理してい くために、捕獲禁止・制限措置の実施又

必要があります。仲間内でぼやくのではなく、異