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

プログラミング

N/A
N/A
Protected

Academic year: 2021

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

Copied!
29
0
0

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

全文

(1)

プログラミング

A

6回 配列

2016523 東邦大学 金岡 晃

(2)

講義

/

演習の進め方と中間試験

講義

/

演習の進め方

講義

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

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

に変更します

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

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

中間試験

8

回目(

5

30

6

13

)に実施し

ます

なお、

6

6

日は金岡グループは休講で す(ほかのグループは講義・演習があ ります)

内容は第

1

回目から第

7

回目までの内容

講義

演習

講義

演習

課題

(3)

前回の復習(1)

2 2016/5/23 プログラミングA

このプログラムは

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

(4)

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

作成し実行してください

(5)

前回の復習(3)

4 2016/5/23 プログラミングA

このプログラムは

作成し実行してください

(6)

前回の復習

条件

関係演算子、論理演算子

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

– if, else

– switch

繰り返し

– for

– while, do

while

– break, continue

(7)

配列

6 2016/5/23 プログラミングA

(8)

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

ある教科のテスト

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

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

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

(9)

たとえば

2016/5/23 プログラミングA

8

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

(10)

配列

120人のそれぞれの学生の

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

配列

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

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

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

型名[] 配列変数名;

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

配列の書式

(11)

配列プログラムの例

2016/5/23 プログラミング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)

配列への値の代入

2016/5/23 プログラミングA

12

通常の変数と同様に

score[0] = 100;

score[1] = 120;

(14)

なぜ配列が便利か?

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

後で変更が容易

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

(15)

配列の宣言:他のやり方

2016/5/23 プログラミングA

14

型名[] 配列変数名;

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

配列の書式

この他にも

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

(16)

配列の初期化

通常の変数と同様、

初期化が必要

別の手段もある

自動的に

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

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

(17)

配列のコピー

2016/5/23 プログラミングA

16

このプログラムを

作成し実行してください

(18)

出力は?

(19)

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

2016/5/23 プログラミングA

18

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

bに変化はない

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

arrayBも変化する

(20)

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

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

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

(21)

配列の応用(1)

2016/5/23 プログラミングA

20

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

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

(22)

配列の応用(1)

こうしておけば

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

(23)

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

2016/5/23 プログラミング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):多次元配列

2016/5/23 プログラミングA

24

2次元配列のイメージ

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

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

(26)

来週から

演習を中心とした講義

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

ポイントを事前に解説

(27)

今日の課題

1.

キーボードから

10

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

10

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

2. 4x4

の形の

2

次元配列

A

の内容を準備し、同じく

4x4

の形の

2

次元配列

B

に、下図のように

90

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

26 2016/5/23 プログラミングA

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

𝜎𝑥 + 50

𝜇𝑥 = 1 𝑁 𝑖=1

𝑁

𝑥𝑖 𝜎𝑥 = 1

𝑁 𝑖=1 𝑁

𝑥𝑖 − 𝜇𝑥 2

1 2 3 4

5 6 7 8

9 10 11 12

13 14 15 16

13 9 5 1

14 10 6 2

15 11 7 3

16 12 8 4

平均 標準偏差

(28)

Java

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

double k = 2.0 double l = 0;

// l

k

の平方根を代入する

l = Math.sqrt(k);

(29)

今日の課題

提出先

[email protected]

件名

プログラミング

A

:第

6

注意

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

TA

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

ソースコード(

java

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

2016/5/23 プログラミングA

28

参照

関連したドキュメント

キーボードからの入力(標準入力): scanf 関数. 

変数名 .read() の形でファイルやバッファから入力 変数名 .readLine() の形で1行分の文字列を入力 5. 変数名 .close()

まず最初にキーボードから自然数nを入力させ、入力する数値の数を決定させ、

ScoreAverage のヒント 入力データ格納のための変数、合計のための変数、 データ個数数えるための変数などの宣言初期化 最初の入力

その他、グラフの表示範囲や、プロットの色や形状など、様々な項目を変更することが出来ます。詳

表 1: 整数と実数を使う場合の変数宣言など 整数   実数 変数の定義 int double キーボード 入力 scanf %d %lf デ ィスプレ イ出力 printf

キーボードからアルファベットを 1 文字ずつ読み込み、入力したアルファベットの数を数え るプログラム。入力の中断は Ctrl-D とする。.

引数として幾つかの値を渡し、一定の処理をし て、値を返す …… 関数. ‹