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

プログラミング

N/A
N/A
Protected

Academic year: 2021

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

Copied!
30
0
0

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

全文

(1)

プログラミング

A

6回 配列

2017年5月22日 東邦大学 金岡 晃

(2)

講義

/

演習の進め方と中間試験

講義

/

演習の進め方

講義

演習というスタイルで進めます

内容やみなさんの進捗度合によって柔軟

に変更します

授業の最後に課題を出すようにします

課題の提出をもって、出席のカウント とします

中間試験

次回、第

6

回目(

5

29

日)に実施します

内容は第

1

回目から第

7

回目までの内容

講義

演習

講義

演習

課題

(3)

前回の復習(1)

2 2017/5/22 プログラミングA

このプログラムは

作成・実行しなくても良いです。

(4)

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

作成し実行してください

(5)

前回の復習(3)

4 2017/5/22 プログラミングA

このプログラムは

作成し実行してください

(6)

前回の復習

条件

関係演算子、論理演算子

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

– if, else

– switch

繰り返し

– for

– while, do

while

– break, continue

(7)

配列

6 2017/5/22 プログラミングA

(8)

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

ある教科のテスト

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

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

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

(9)

たとえば

2017/5/22 プログラミングA

8

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

(10)

配列

120人のそれぞれの学生の

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

配列

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

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

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

型名[] 配列変数名;

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

配列の書式

(11)

配列プログラムの例

2017/5/22 プログラミングA

10

(12)

配列の使い方

型名[] 配列変数名;

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

配列の書式

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

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

添え字

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

ポイント

(13)

配列への値の代入

2017/5/22 プログラミングA

12

通常の変数と同様に

score[0] = 100;

score[1] = 120;

(14)

なぜ配列が便利か?

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

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

(15)

配列の宣言:他のやり方

2017/5/22 プログラミングA

14

型名[] 配列変数名;

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

配列の書式

この他にも

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

(16)

配列の初期化

通常の変数と同様、

初期化が必要

別の手段もある

自動的に

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

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

(17)

配列のコピー

2017/5/22 プログラミングA

16

このプログラムを

作成し実行してください

(18)

出力は?

(19)

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

2017/5/22 プログラミングA

18

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

bに変化はない

arrayAarrayBにコピーしてから

arrayAを変更すると

arrayBも変化する

(20)

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

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

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

(21)

配列の応用(1)

2017/5/22 プログラミングA

20

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

Sample6_4と一部分しか

変わりません

(22)

配列の応用(1)

こうしておけば

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

(23)

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

2017/5/22 プログラミングA

22

多次元配列の書式(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];

(24)

配列の応用(2)

(25)

0 1 2 3 4

0 53 58 76 68 43

1 43 51 46 61 31

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

2017/5/22 プログラミングA

24

2次元配列のイメージ

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

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

(26)

再来週から

演習を中心とした講義

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

ポイントを事前に解説

(27)

今日の課題(1)

1.

キーボードから

10

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

10

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

26 2017/5/22 プログラミングA

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

𝜎𝑥 + 50 𝜇𝑥 = 1

𝑁෍

𝑖=1 𝑁

𝑥𝑖 𝜎𝑥 = 1

𝑁෍

𝑖=1 𝑁

𝑥𝑖 − 𝜇𝑥 2

平均 標準偏差

(28)

今日の課題(2)

2.

次の仕様に従って、生徒の科目得点から平均点と評価を求め、実行 結果のように画面表示するプログラムを作成してください

1.

生徒番号を

1

次元配列、科目点数を

2

次元配列として、初期値を 与える(初期値は下の表の通り)

2.

各人の

4

科目の平均点を求める

生徒番号 国語 数学 理科 社会 1001 85 74 63 90 1002 78 65 70 62 1003 89 92 88 76 1004 32 48 66 25 1005 92 76 81 93

(29)

Java

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

double k = 2.0 double l = 0;

// l

k

の平方根を代入する

l = Math.sqrt(k);

2017/5/22 プログラミングA

28

(30)

今日の課題

提出先

[email protected]

件名

プログラミング

A

:第

6

注意

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

TA

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

ソースコード(

java

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

参照

関連したドキュメント

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

各テーマ領域ではすべての変数につきできるだけ連続変量に表現してある。そのため

借受人は、第 18

スライド P.12 添付資料1 補足資料1.. 4 審査会合における指摘事項..

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

変更条文 変更概要 関連する法令/上流文書 等 説明事項抽出結果

「東京都スポーツ推進計画」を、平成 30 年 3 月に「東京都スポーツ推進総合計画」を策定すると ともに、平成 25 年

学会論文 約4万件/年 自社/電力共研.