プログラミングA - 学校法人東邦大学...2017/06/05  · 前回の課題 1....

26
プログラミングA 8演習(1) 201765東邦大学 金岡 晃

Transcript of プログラミングA - 学校法人東邦大学...2017/06/05  · 前回の課題 1....

Page 1: プログラミングA - 学校法人東邦大学...2017/06/05  · 前回の課題 1. キーボードから10人分のテストの点数を入力させ、その10人の点数 と偏差値を出力するプログラムを作成してください

プログラミングA第8回 演習(1)

2017年6月5日

東邦大学 金岡 晃

Page 2: プログラミングA - 学校法人東邦大学...2017/06/05  · 前回の課題 1. キーボードから10人分のテストの点数を入力させ、その10人の点数 と偏差値を出力するプログラムを作成してください

中間テスト解説:問1

2017/6/51

<問1> 次の中で、文法として正しいものに〇、正しくないものに×をつけなさい

(1) int x = 0; (〇) (2) int i=10000; (〇)

(3) int y = 0.5; (×) (4) int z = “50”; (×)

(5) double y=0.5; (〇) (6) long = 5; (×)

(7) double a = 3.0/2; (〇) (7) int p = 5+100; (〇)

(9) int q = false; (×) (10) int r = (short)10; (〇)

Page 3: プログラミングA - 学校法人東邦大学...2017/06/05  · 前回の課題 1. キーボードから10人分のテストの点数を入力させ、その10人の点数 と偏差値を出力するプログラムを作成してください

中間テスト解説:問2

2017/6/52

<問2> 下記の命令が実行された後のx,y,zの値を書きなさい

答え: xの値:1、yの値:2、zの値:19

int a = 10;int b = 5;int c = 7;int x,y,z;

x=a/c;y=c%b;z=c;z+=c+b;

Page 4: プログラミングA - 学校法人東邦大学...2017/06/05  · 前回の課題 1. キーボードから10人分のテストの点数を入力させ、その10人の点数 と偏差値を出力するプログラムを作成してください

中間テスト解説:問3

2017/6/53

<問3> 下記の命令が実行された後のx,y,zの値を書きなさい

答え: xの値:17、yの値:25、zの値:7

int a = 10;int b = 5;int c = 7;int x,y,z;

x=a+a*b/cy=b*c-a;z=1/a+c

Page 5: プログラミングA - 学校法人東邦大学...2017/06/05  · 前回の課題 1. キーボードから10人分のテストの点数を入力させ、その10人の点数 と偏差値を出力するプログラムを作成してください

中間テスト解説:問4

2017/6/54

<問4> 次の条件を論理演算子を用いて記述せよ

(1) xは5より大きい

(2) yは3以上5未満である

(3) zは-1ではない

(4) pは偶数である

(5) q+rの和が10以上である

(6) wは5の倍数である

x>5

y>=3 && y<5

z!=-1

p%2==0

(g+r)>=10

w%5==0

Page 6: プログラミングA - 学校法人東邦大学...2017/06/05  · 前回の課題 1. キーボードから10人分のテストの点数を入力させ、その10人の点数 と偏差値を出力するプログラムを作成してください

中間テスト解説:問5

2017/6/55

<問5> テスト科目の合計点が格納されている変数sumの値が100以上の場合は「Great!」、90以上100未満の場合は「Good!」、90未満の場合は「Do your best!」と画面に出力されるプログラムがある。次のプログラムの空欄を埋めなさい

if( )

System.out.println(“Great!”);

else if( )

System.out.println(“Good!”);else

System.out.println(“Do your best!”);

sum>=100

sum>=90

Page 7: プログラミングA - 学校法人東邦大学...2017/06/05  · 前回の課題 1. キーボードから10人分のテストの点数を入力させ、その10人の点数 と偏差値を出力するプログラムを作成してください

中間テスト解説:問6

2017/6/56

<問6> 次のプログラムの出力結果を書きなさい

for( int i=0; i<20; i++){if( i%5==2 )

System.out.println(i);}

27

1217

Page 8: プログラミングA - 学校法人東邦大学...2017/06/05  · 前回の課題 1. キーボードから10人分のテストの点数を入力させ、その10人の点数 と偏差値を出力するプログラムを作成してください

中間テスト解説:問7

2017/6/57

<問7> 次のプログラムの出力結果を書きなさい

int[] a = new int[100];for(int i=0; i<a.length; i++){

a[i] = 0;}for( int i=0; i<a.length; i++){

a[i] = i*5 % 7;}

System.out.println(a[50]);

5

Page 9: プログラミングA - 学校法人東邦大学...2017/06/05  · 前回の課題 1. キーボードから10人分のテストの点数を入力させ、その10人の点数 と偏差値を出力するプログラムを作成してください

前回の課題(1)1. キーボードから10人分のテストの点数を入力させ、その10人の点数

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

8 2017/6/5

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

𝜎𝑥+ 50

𝜇𝑥 =1

𝑁

𝑖=1

𝑁

𝑥𝑖 𝜎𝑥 =1

𝑁

𝑖=1

𝑁

𝑥𝑖 − 𝜇𝑥2平均 標準偏差

Page 10: プログラミングA - 学校法人東邦大学...2017/06/05  · 前回の課題 1. キーボードから10人分のテストの点数を入力させ、その10人の点数 と偏差値を出力するプログラムを作成してください

前回の課題(2)

2017/6/59

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

Page 11: プログラミングA - 学校法人東邦大学...2017/06/05  · 前回の課題 1. キーボードから10人分のテストの点数を入力させ、その10人の点数 と偏差値を出力するプログラムを作成してください

前回の復習(1)

10 2017/6/5

このプログラムは作成・実行しなくても良いです。

Page 12: プログラミングA - 学校法人東邦大学...2017/06/05  · 前回の課題 1. キーボードから10人分のテストの点数を入力させ、その10人の点数 と偏差値を出力するプログラムを作成してください

ポイント解説(1)

• こういうプログラムは「求められているものを導くのに、何が必要か」を順にあぶりだすことが重要

• 今回の場合

各人の偏差値を求める

→ 偏差値を求めるには、平均点と標準偏差が必要

→ 平均点を求めるには、各人の点数と全部の人数が必要

→ 標準偏差を求めるには、各人の点数とその平均点と全部の人数が必要

2017/6/511

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

𝜎𝑥+ 50

𝜇𝑥 =1

𝑁

𝑖=1

𝑁

𝑥𝑖 𝜎𝑥 =1

𝑁

𝑖=1

𝑁

𝑥𝑖 − 𝜇𝑥2平均 標準偏差

Page 13: プログラミングA - 学校法人東邦大学...2017/06/05  · 前回の課題 1. キーボードから10人分のテストの点数を入力させ、その10人の点数 と偏差値を出力するプログラムを作成してください

ポイント解説(2)

各人の偏差値を求める

→ 偏差値を求めるには、平均点と標準偏差が必要

→ 平均点を求めるには、各人の点数と全部の人数が必要

→ 標準偏差を求めるには、各人の点数とその平均点と全部の人数が必要

• 各人の点数

– キーボードから入力させる

• 平均点

– 各人の点数から合計点をもとめて、全部の人数で割る

• 標準偏差の計算

– 各人の点数から平均点を引いて2乗したものの総和を求める

– その総和を全部の人数で割る

– 割ったものの平方根をとる

• 偏差値の計算

– 各人の点数から平均点を引き、その値に10を掛け、全部の人数で割る

– その値に50を足す

2017/6/512

偏差値を求める流れは…

Page 14: プログラミングA - 学校法人東邦大学...2017/06/05  · 前回の課題 1. キーボードから10人分のテストの点数を入力させ、その10人の点数 と偏差値を出力するプログラムを作成してください

前回の課題(2)

2017/6/513

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

Page 15: プログラミングA - 学校法人東邦大学...2017/06/05  · 前回の課題 1. キーボードから10人分のテストの点数を入力させ、その10人の点数 と偏差値を出力するプログラムを作成してください

前回の課題(2)

14 2017/6/5

このプログラムは作成・実行しなくても良いです。

Page 16: プログラミングA - 学校法人東邦大学...2017/06/05  · 前回の課題 1. キーボードから10人分のテストの点数を入力させ、その10人の点数 と偏差値を出力するプログラムを作成してください

演習:教科書の練習をやろう(1)

2017/6/515

Lesson 2の練習の3,4,5(教科書P.41-42)

Page 17: プログラミングA - 学校法人東邦大学...2017/06/05  · 前回の課題 1. キーボードから10人分のテストの点数を入力させ、その10人の点数 と偏差値を出力するプログラムを作成してください

円の面積を求めよう

2017/6/516

円の面積=半径×半径×円周率(𝜋)

𝜋 が与えられていないけどプログラミング環境がある、そんなときはどうしよう・・・・

Page 18: プログラミングA - 学校法人東邦大学...2017/06/05  · 前回の課題 1. キーボードから10人分のテストの点数を入力させ、その10人の点数 と偏差値を出力するプログラムを作成してください

円の面積を求めよう

2017/6/517

Page 19: プログラミングA - 学校法人東邦大学...2017/06/05  · 前回の課題 1. キーボードから10人分のテストの点数を入力させ、その10人の点数 と偏差値を出力するプログラムを作成してください

円の面積を求めよう

2017/6/518

平行四辺形に近い

Page 20: プログラミングA - 学校法人東邦大学...2017/06/05  · 前回の課題 1. キーボードから10人分のテストの点数を入力させ、その10人の点数 と偏差値を出力するプログラムを作成してください

円の面積を求めよう

2017/6/519

平行四辺形に近い

この平行四辺形はあの円の面積に近い(近似値)

Page 21: プログラミングA - 学校法人東邦大学...2017/06/05  · 前回の課題 1. キーボードから10人分のテストの点数を入力させ、その10人の点数 と偏差値を出力するプログラムを作成してください

円の面積を求めよう

2017/6/520

平行四辺形の面積を求めよう:底辺×高さ

底辺?

底辺𝑏 = 半径𝑟 × cos𝜋 −

2𝜋8

2× 2 ×

8

2

Page 22: プログラミングA - 学校法人東邦大学...2017/06/05  · 前回の課題 1. キーボードから10人分のテストの点数を入力させ、その10人の点数 と偏差値を出力するプログラムを作成してください

円の面積を求めよう

2017/6/521

平行四辺形の面積を求めよう:底辺×高さ

高さ?

高さℎ = 半径𝑟 × sin𝜋 −

2𝜋8

2

Page 23: プログラミングA - 学校法人東邦大学...2017/06/05  · 前回の課題 1. キーボードから10人分のテストの点数を入力させ、その10人の点数 と偏差値を出力するプログラムを作成してください

円の面積を求めよう

2017/6/522

平行四辺形の面積を求めよう:底辺×高さ

面積=底辺×高さ

面積𝑆

=半径𝑟 × cos𝜋 −

2𝜋8

2× 2 ×

8

2×半径𝑟 × sin

𝜋 −2𝜋8

2

Page 24: プログラミングA - 学校法人東邦大学...2017/06/05  · 前回の課題 1. キーボードから10人分のテストの点数を入力させ、その10人の点数 と偏差値を出力するプログラムを作成してください

Javaでの三角関数の使い方

• 円周率𝜋

– Math.PI

• sin関数

– Math.sin(***)

• cos関数

– Math.cos(***)

2017/6/523

𝜋=180°として𝜋を使って入力する。たとえばsin(45°)を求めたいときはsin(𝜋/4)というように。なのでJava上ではMath.sin(Math.PI/4.0)でsin(45°)が与えられる

double m = Math.sin(Math.PI/4.0);

Page 25: プログラミングA - 学校法人東邦大学...2017/06/05  · 前回の課題 1. キーボードから10人分のテストの点数を入力させ、その10人の点数 と偏差値を出力するプログラムを作成してください

今日の課題

1. キーボードから分割数を入力させ、その分割数を利用して平行四辺形を使った円の面積の近似値を求めるプログラムを作れ

2. 1.のプログラムを応用し、円周率の近似値を求めるプログラムを作れ

ただし、半径は固定の好きな値を使って良い

1. <チャレンジ問題>

円周率を近似した値が3.14159***となるもっとも小さな分割数はいくつか求めよう。プログラムで。

24 2017/6/5

Page 26: プログラミングA - 学校法人東邦大学...2017/06/05  · 前回の課題 1. キーボードから10人分のテストの点数を入力させ、その10人の点数 と偏差値を出力するプログラムを作成してください

今日の課題

• 提出先

[email protected]

• 件名

– プログラミングA:第8回

• 注意

– かならず、メールで提出してから帰ってください。また提出前に、結果の画面を、私かTAに見せて確認を受けてから帰ってください。

– ソースコード(javaファイル)を添付してください

2017/6/525