プログラミングa - 学校法人東邦大学...2017/06/05 · 前回の課題 1....
TRANSCRIPT
プログラミングA第8回 演習(1)
2017年6月5日
東邦大学 金岡 晃
中間テスト解説:問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; (〇)
中間テスト解説:問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;
中間テスト解説:問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
中間テスト解説:問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
中間テスト解説:問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
中間テスト解説:問6
2017/6/56
<問6> 次のプログラムの出力結果を書きなさい
for( int i=0; i<20; i++){if( i%5==2 )
System.out.println(i);}
27
1217
中間テスト解説:問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
前回の課題(1)1. キーボードから10人分のテストの点数を入力させ、その10人の点数
と偏差値を出力するプログラムを作成してください
8 2017/6/5
𝑖番の人の偏差値 =10 𝑥𝑖 − 𝜇𝑥
𝜎𝑥+ 50
𝜇𝑥 =1
𝑁
𝑖=1
𝑁
𝑥𝑖 𝜎𝑥 =1
𝑁
𝑖=1
𝑁
𝑥𝑖 − 𝜇𝑥2平均 標準偏差
前回の課題(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
前回の復習(1)
10 2017/6/5
このプログラムは作成・実行しなくても良いです。
ポイント解説(1)
• こういうプログラムは「求められているものを導くのに、何が必要か」を順にあぶりだすことが重要
• 今回の場合
各人の偏差値を求める
→ 偏差値を求めるには、平均点と標準偏差が必要
→ 平均点を求めるには、各人の点数と全部の人数が必要
→ 標準偏差を求めるには、各人の点数とその平均点と全部の人数が必要
2017/6/511
𝑖番の人の偏差値 =10 𝑥𝑖 − 𝜇𝑥
𝜎𝑥+ 50
𝜇𝑥 =1
𝑁
𝑖=1
𝑁
𝑥𝑖 𝜎𝑥 =1
𝑁
𝑖=1
𝑁
𝑥𝑖 − 𝜇𝑥2平均 標準偏差
ポイント解説(2)
各人の偏差値を求める
→ 偏差値を求めるには、平均点と標準偏差が必要
→ 平均点を求めるには、各人の点数と全部の人数が必要
→ 標準偏差を求めるには、各人の点数とその平均点と全部の人数が必要
• 各人の点数
– キーボードから入力させる
• 平均点
– 各人の点数から合計点をもとめて、全部の人数で割る
• 標準偏差の計算
– 各人の点数から平均点を引いて2乗したものの総和を求める
– その総和を全部の人数で割る
– 割ったものの平方根をとる
• 偏差値の計算
– 各人の点数から平均点を引き、その値に10を掛け、全部の人数で割る
– その値に50を足す
2017/6/512
偏差値を求める流れは…
前回の課題(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
前回の課題(2)
14 2017/6/5
このプログラムは作成・実行しなくても良いです。
演習:教科書の練習をやろう(1)
2017/6/515
Lesson 2の練習の3,4,5(教科書P.41-42)
円の面積を求めよう
2017/6/516
円の面積=半径×半径×円周率(𝜋)
𝜋 が与えられていないけどプログラミング環境がある、そんなときはどうしよう・・・・
円の面積を求めよう
2017/6/517
円の面積を求めよう
2017/6/518
平行四辺形に近い
円の面積を求めよう
2017/6/519
平行四辺形に近い
この平行四辺形はあの円の面積に近い(近似値)
円の面積を求めよう
2017/6/520
平行四辺形の面積を求めよう:底辺×高さ
底辺?
底辺𝑏 = 半径𝑟 × cos𝜋 −
2𝜋8
2× 2 ×
8
2
円の面積を求めよう
2017/6/521
平行四辺形の面積を求めよう:底辺×高さ
高さ?
高さℎ = 半径𝑟 × sin𝜋 −
2𝜋8
2
円の面積を求めよう
2017/6/522
平行四辺形の面積を求めよう:底辺×高さ
面積=底辺×高さ
面積𝑆
=半径𝑟 × cos𝜋 −
2𝜋8
2× 2 ×
8
2×半径𝑟 × sin
𝜋 −2𝜋8
2
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);
今日の課題
1. キーボードから分割数を入力させ、その分割数を利用して平行四辺形を使った円の面積の近似値を求めるプログラムを作れ
2. 1.のプログラムを応用し、円周率の近似値を求めるプログラムを作れ
ただし、半径は固定の好きな値を使って良い
1. <チャレンジ問題>
円周率を近似した値が3.14159***となるもっとも小さな分割数はいくつか求めよう。プログラムで。
24 2017/6/5
今日の課題
• 提出先
• 件名
– プログラミングA:第8回
• 注意
– かならず、メールで提出してから帰ってください。また提出前に、結果の画面を、私かTAに見せて確認を受けてから帰ってください。
– ソースコード(javaファイル)を添付してください
2017/6/525