プログラミングⅠ 平成31年1月7日 森田 彦
第2回テストのアナウンス 第2回テストを以下の要領で行います。 日時:1月16日 14:55~15:45 日時:1月16日 14:55~15:45 範囲:テキスト5-10節まで(p.146まで) 形式:ペーパーテスト形式 その他:要領は基本的に第1回と同様です。テキストは参照 可です。
理解度チェック1 次のプログラムを実行したとき、変数Ansの値は最終的に何になっていますか?下の選択肢から選んで下さい。 int Ans=10; for(int i=1;i<=3;i++) { Ans=Ans+i; } 1.4 2.10 3.12 4.15 5.16
理解度チェック1 解答 1.4 2.10 3.12 4.15 5.16 Ans=Ans+i=10+1=11 理解度チェック1 解答 int Ans=10; for(int i=1;i<=3;i++) { Ans=Ans+i; } Ans=Ans+i=10+1=11 i=1 Ans=Ans+i=11+2=13 i=2 i=3 Ans=Ans+i=13+3=16 Ans=10+1+2+3 1.4 2.10 3.12 4.15 5.16
理解度チェック2 次のプログラムを実行したとき、変数Ansの値は最終的に何になっていますか?下の選択肢から選んで下さい。 int Ans=10; for(int i=2;i<=3;i++) { Ans=Ans+i; } 1.5 2.12 3.13 4.15 5.16
理解度チェック2 解答 Ans=Ans+i=10+2=12 Ans=Ans+i=12+3=15 理解度チェック2 解答 int Ans=10; for(int i=2;i<=3;i++) { Ans=Ans+i; } Ans=Ans+i=10+2=12 i=2 i=3 Ans=Ans+i=12+3=15 Ans=10+2+3 1.5 2.12 3.13 4.15 5.16
理解度チェック3 次のプログラムを実行したとき、変数Ansの値は最終的に何になっていますか?下の選択肢から選んで下さい。 int Ans=10; for(int i=4;i>=2;i=i-1) { Ans=Ans+i; } 1.-1 2.19 3.1 4.17 5.-5
理解度チェック3 解答 Ans=Ans+i=10+4=14 Ans=Ans+i=14+3=17 Ans=Ans+i=17+2=19 理解度チェック3 解答 int Ans=10; for(int i=4;i>=2;i=i-1) { Ans=Ans+i; } Ans=Ans+i=10+4=14 i=4 i=3 Ans=Ans+i=14+3=17 Ans=Ans+i=17+2=19 i=2 Ans=10+4+3+2 1.-1 2.19 3.1 4.17 5.-5
理解度チェック4 次のプログラムを実行したとき、変数Ansの値は最終的に何になっていますか?下の選択肢から選んで下さい。 int Ans=10; for(int i=1;i<=3;i++) { Ans=Ans-i; } 1.1 2.4 3.6 4.12 5.16
理解度チェック4 解答 Ans=Ans-i=10-1=9 Ans=Ans-i= 9-2=7 Ans=Ans-i= 7-3=4 理解度チェック4 解答 int Ans=10; for(int i=1;i<=3;i++) { Ans=Ans-i; } Ans=Ans-i=10-1=9 i=1 i=2 Ans=Ans-i= 9-2=7 Ans=Ans-i= 7-3=4 i=3 Ans=10-1-2-3 1.1 2.4 3.6 4.12 5.16
理解度チェック5 1.i<=10 2.i==5 3.i<5 4.i<=4 5.i<=5 int Ans=0; for(int i=1; ***** ;i++) { Ans=Ans+i*2; } 空欄に入る適切な式を次の選択肢から選んで下さい。 1.i<=10 2.i==5 3.i<5 4.i<=4 5.i<=5
理解度チェック5 解答 1.i<=10 2.i==5 3.i<5 4.i<=4 5.i<=5 i 1 2 3 4 5 理解度チェック5 解答 int Ans=0; for(int i=1; ***** ;i++) { Ans=Ans+i*2; } 空欄に入るのは、繰り返し条件 今の場合、5回反復(繰り返し)しているから、反復条件は、i<=5となる i 1 2 3 4 5 i*2 6 8 10 1.i<=10 2.i==5 3.i<5 4.i<=4 5.i<=5
本日の学習 学習内容 学習目標 学習のポイント while(継続条件) { 反復する処理 } 「5-9節 繰り返し処理 (5) ―回数が決まっていない繰り返し―」 pp.141~142 「5-10節 繰り返し処理 (6) ―while文の導入―」 pp.143~146 学習目標 while文を応用できるようになること。 学習のポイント while文の構文と処理の流れを理解すること。 while(継続条件) { 反復する処理 } 【基礎課題5-10-A】までチェックを受けた人は終了して結構です。
Collatzの予想 nの取得 サンプルプログラム n≠1である限り繰り返す。(n=1になるまで繰り返す) nが偶数の場合 nが奇数の場合 ある数字が偶数なら2で割る 奇数なら3倍して1を加える という操作を繰り返すと、必ず1になる。 Collatzの予想 サンプルプログラム private void jTextFieldNActionPerformed(ActionEvent evt) { int n=Integer.parseInt(jTextFieldN.getText()); String result=""; while (n!=1) { if(n%2 ==0) { n=n/2; } else { n=3*n+1; } result=result+String.valueOf(n)+"\n"; jTextArea1.setText(result); nの取得 n≠1である限り繰り返す。(n=1になるまで繰り返す) nが偶数の場合 nが奇数の場合 表示結果にnを連結 改行記号