プログラミング

プログラミング
平成24年12月11日
森田 彦
課題進行状況(12/4終了時点)
30
基礎課題提出状況(12/4演習終了時点)
全体平均 65.1 → 【基礎課題6-11-1】に対応
7-2節終了
→70.2%
25
人数
20
挽回を!
15
6章に入っていない人 →6名
10
7章終了→3名
5
0
~5_7節 ~5-10節 ~6-9節 ~6-12節 ~7-2節
平均的には【基礎課題6-11-1】まで終了
~7-4節
応用課題提出状況(12/4終了時点)
応用課題提出状況(12/4演習終了時点)
全体平均=7.36
14
平均7.36題
12
人数
10
8章以降に進んで
いる人 →2名
8
6
4
2
0
0
1~2
1.34題:1名
3~4
5~6
7~8
2.20題:1名
9~10 11~12 20~34
3.12題:1名
第2回テストのアナウンス






第2回テストを以下の要領で行います。
日時:1月8日13:15~14:05
範囲:テキスト7-4節まで(p.195まで)
形式:ペーパーテスト形式
その他:要領は基本的に第1回と同様です。テキス
トは参照可です。
理解度確認テストを掲載しています。→各自取り組
んで下さい。(特に1回目のテストで50点未満だった
人は、必ずこれに取り組み、2回目テストで挽回して
下さい)
成績について
成績=2回のテストの平均点+応用課題数-未提出の
基礎課題数
(50点未満の場合は単位取得ができません。)
 特に前回のテストであまり良い成績を収められなかった
人はできる限り応用課題を解いて、2回目テストでの挽
回に備えて下さい。また、理解度確認テストを行って確
実に理解しておいて下さい。
 課題の受付は、1/25の演習終了までです。それ以降は
原則として受け付けないので注意して下さい。

理解度チェック1
int a=3;
int b=5;
MethodA(a,b);
左の様なプログラムを考
えましょう。
void MethodA(int b,int a) {
int Ans=b-a;
jTextField1.setText(
String.valueOf(Ans) );
}
ここに、
MethodA()は
左のように定
義されていま
す。
このプログラムが実行された時、テキストフィールド
jTextField1に表示される答えは?
1.3
2.5
3.2
4.-2
5.8
理解度チェック1 解答
int a=3;
int b=5; 3 5
MethodA(a,b);
引数の順番通りに対応
void MethodA(int b,int a) {
3
5
int Ans=b-a;
jTextField1.setText(
String.valueOf(Ans) );
}
1.3
2.5
3.2
4.-2
5.8
理解度チェック2
int a=1;
int b=2;
double c;
c=MethodA(a,b);
左の様なプログラムを考
えましょう。
ここに、MethodA(a,b)は次のよ
うに二つの引数の平均値を返す
メソッドとします。
double MethodA(int b,int a){
double c=(a+b)/2.0;
return c;
}
このとき、空欄に入る適切な用語は?
1.public
4.double
2.void
5.String
3.int
理解度チェック2 解答
int a=1;
int b=2;
double c;
c=MethodA(a,b);
 戻り値のあるメソッド
 空欄には戻り値の型が入る。
 MethodAの型は・・・
double MethodA(int b,int a){
double c=(a+b)/2.0;
double
return c;
}
1.public
4.double
2.void
5.String
3.int
理解度チェック3
0,1の乱数cを発生させ、その値によってA,Bの2グ
ループにクラス分けを行うプログラムを考えましょう。
int c = (int) ( *************** );
switch(c) {
case 0:
jTextField1.setText("あなたはAグループです。");
break;
case 1:
jTextField1.setText("あなたはBグループです。");
break;
このとき、空欄に入る適切な式は?
}
1.Math.random()
3.Math.random(0)
5.Math.random(2)
2.2* Math.random()
4.Math.random(1)
理解度チェック3 解答
int c = (int) ( *************** );
switch(c) {
case 0:
jTextField1.setText("あなたはAグループです。");
break;
case 1:
jTextField1.setText("あなたはBグループです。");
break;
}
 乱数はMath.random()で発生。
 0≦Math.random()<1
 n個の乱数は(int) (n*Math.random())で発生
1.Math.random()
3.Math.random(0)
5.Math.random(2)
2.2* Math.random()
4.Math.random(1)
理解度チェック4
jButton1→jButton2→jButton3の順番でクリックした
時に、テキストフィールドjTextField1に表示される結
果は何でしょうか?
int a=1;
void jButton1ActionPerformed(ActionEvent evt){
a=a+1;
}
void jButton2ActionPerformed(ActionEvent evt){
a=a*2;
}
void jButton3ActionPerformed(ActionEvent evt){
jTextField1.setText(String.valueOf(a));
}
1.1
2.2
3.3
4.4
5.5
理解度チェック4 解答
aの値
1
int a=1;
void jButton1ActionPerformed(ActionEvent evt) {
a=a+1;
jButton1クリック
}
2(=1+1)
void jButton2ActionPerformed(ActionEvent evt) {
a=a*2;
jButton2クリック
}
4(=2*2)
void jButton3ActionPerformed(ActionEvent evt) {
jTextField1.setText(String.valueOf(a));
}
1.1
2.2
3.3
4.4
5.5
理解度チェック5の実施





次の問題に進みます。
ステップ6の[戻る]ボタンをクリックして下さい。
再びプリントのステップ4を行います→[回答す
る]ボタンを押してそのまま待機。
これから次の問題を提示しますので、ステップ5
に従って回答を選択した後、ステップ6の状態で
待機して下さい。
正解した人には応用課題と同じく1点を加算しま
す。
理解度チェック5
jButton1→jButton2→jButton3の順番でクリックした
時に、テキストフィールドjTextField1に表示される結
果は何でしょうか?
int a=1;
void jButton1ActionPerformed(ActionEvent evt){
int a=0;
a=a+2;
}
void jButton2ActionPerformed(ActionEvent evt){
a=a*2;
}
void jButton3ActionPerformed(ActionEvent evt){
jTextField1.setText(String.valueOf(a));
}
1.1
2.2
3.3
4.4
5.5
理解度チェック5 解答
int
a=1;
インスタンス変数
aの値
1
void jButton1ActionPerformed(ActionEvent evt) {
int a=0; ローカル変数
aの値 0
= +2;
2(=0+2)
jButton1クリック
}
aa
void jButton2ActionPerformed(ActionEvent evt) {
a=a*2;
jButton2クリック
}
2(=1*2)
void jButton3ActionPerformed(ActionEvent evt) {
jTextField1.setText(String.valueOf(a));
}
1.1
2.2
3.3
4.4
5.5
今後の予定
• 12/18
理解度チェック(クラス定義について)
「理解度確認テスト」(テスト範囲)の実施
演習(特に応用課題に取り組む)
• 1/8 第2回テスト、テスト後は通常の演習
• 1/22 テスト結果の講評と通常の演習(この
日の4講時終了後は課題を受け付けません)
理解度確認テストについて
• テストを行った後は、間違った箇所の解説を
よく読んで、なぜ間違ったのかを理解してお
いて下さい。
• 解説を読んでも理解できない場合は、テスト
には対応できません。→テキストの該当箇所
を読んで、内容を確認するようにして下さい。
• また、友人に尋ねても結構です。お互いに教
え合って下さい。
• それでも、よく分からない点があれば、森田ま
で質問に来て疑問点を解消しておいて下さ
い。
進度について

本日は、7章までの基礎課題を全て終えた人
は、次のいずれかを終えれば演習を終えて
結構です。ただし、その際は補助員にきちん
とその旨断って下さい。
1.理解度確認テスト(「分岐処理2」~「クラ
スの定義」まで)を行う。
2.応用課題を10題以上提出する(8章以降
の応用課題でもOK)。