ソフトウェア制作論 平成30年10月10日.

Slides:



Advertisements
Similar presentations
山元進.  for 文  while 文  do ~ while 文  文のネスト  break 文  continue 文.
Advertisements

プログラミング 平成24年1月11日 森田 彦.
プログラミング 平成24年10月16日 森田 彦.
プログラミング 平成25年12月3日 森田 彦.
プログラミング基礎I(再) 山元進.
計算技術研究会 C言語講座 第3回 Loops (for文 while文).
データ構造とアルゴリズム論 第5章 レコード構造を使った処理-クラスの利用
プログラミング 平成24年10月23日 森田 彦.
プログラミング 平成23年10月19日 森田 彦.
プログラミング基礎I(再) 山元進.
CGプログラミング論 平成28年6月1日 森田 彦.
情報理論2 第6回 小林 学 湘南工科大学 2011年11月15日 〒 神奈川県藤沢市辻堂西海岸1-1-25
データ構造とアルゴリズム論 第2章 配列(構造)を使った処理
プログラミング 平成25年12月10日 森田 彦.
プログラミング 平成24年10月30日 森田 彦.
第7回 条件による繰り返し.
データ構造とアルゴリズム論 第8章 再帰処理 平成15年12月2日 森田 彦.
ネットワークプログラミング論 平成28年11月21日 森田 彦.
プログラミング 平成25年11月5日 森田 彦.
データ構造と アルゴリズム論 平成29年9月27日 森田 彦.
ちょっとした練習問題① 配列iroを['R', 'W', 'R', 'R', 'W' , 'W' , 'W']を宣言して、「W」のときの配列の番号をprintfで表示するようなプログラムを記述しなさい。
プログラムの制御構造 選択・繰り返し.
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
CGプログラミング論 平成28年6月8日 森田 彦.
関数の定義.
プログラミング 平成23年12月21日 森田 彦.
ネットワークプログラミング論 平成28年11月7日 森田 彦.
アルゴリズムとプログラミング (Algorithms and Programming)
ソフトウェア制作論 平成30年12月5日.
データ構造とアルゴリズム論 第3章 ファイルを用いたデータ入出力2
ソフトウェア制作論 平成30年10月3日.
データ構造とアルゴリズム論 第3章 ファイルを用いたデータ入出力
indentについて forやifの「中身」を右に寄せる. forやifの「外枠」は右に寄せない. int x; x = 3;
第7回 条件による繰り返し.
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
データ構造とアルゴリズム論 第7章 再帰処理 平成17年12月6日 森田 彦.
データ構造とアルゴリズム論 第1章 アルゴリズムの表現-流れ図
プログラミングⅠ 平成30年10月29日 森田 彦.
ソフトウェア制作論 平成30年9月26日.
ソフトウェア制作論 平成30年10月24日.
ソフトウェア制作論 平成30年10月31日.
プログラムの制御構造 配列・繰り返し.
ソフトウェア制作論 平成30年11月21日.
データ構造とアルゴリズム論 第4章 レコード構造を使った処理-クラスの利用
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
プログラミングⅠ 平成30年10月15日 森田 彦.
岩村雅一 知能情報工学演習I 第12回(C言語第6回) 岩村雅一
疑似乱数, モンテカルロ法によるシミュレーション
プログラミングⅠ 平成30年10月22日 森田 彦.
プログラミングⅠ 平成31年1月7日 森田 彦.
プログラミング 平成22年12月15日 森田 彦.
C言語ファミリー C# 高級言語(抽象的) Java オブジェクト指向 C++ C 機械語(原始的)
データ構造とアルゴリズム論 第7章 再帰処理 平成16年11月30日 森田 彦.
ソフトウェア制作論 平成30年11月28日.
計算機プログラミングI 第4回 2002年10月31日(木) 問題解決とアルゴリズム クラスメソッドと手続きの抽象化 最大公約数
プログラミングⅠ 平成30年12月10日 森田 彦.
高度プログラミング演習 (11).
ソフトウェア制作論 平成30年11月14日.
Nakano School of Business 経営情報ビジネス科 【 Java概論(Test4)】
プログラミング基礎演習 第4回.
cp-15. 疑似乱数とシミュレーション (C プログラミング演習,Visual Studio 2019 対応)
プログラミング 平成28年11月15日 森田 彦.
データ構造とアルゴリズム論 第9章 連結リスト
プログラミング 平成24年12月11日 森田 彦.
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
ソフトウェア制作論 平成30年10月17日.
プログラミング 平成28年10月25日 森田 彦.
C言語講座 四則演算  if ,  switch 制御文.
分岐(If-Else, Else if, Switch) ループ(While, For, Do-while)
プログラミング演習I 補講用課題
Presentation transcript:

ソフトウェア制作論 平成30年10月10日

第3章 エラーへの対応1 実行時エラーへの対応 <本日の学習のねらい> 第3章 エラーへの対応1 実行時エラーへの対応 <本日の学習のねらい> プログラムの実行時にエラーメッセージが発生する典型例を体験し、 エラーメッセージの見方やそれに基づくエラー修正(解消)の仕方を 学習する。 論理エラー(エラーは出ないがプログラムが意図通りに動作しない 場合のエラー)の典型例を体験し、その対応の仕方を学習する。

補足課題 private void jButtonGroupingActionPerformed(ActionEvent evt) { int month=Integer.parseInt(jTextFieldBirthMonth.getText()); String groupName; switch(month % 4) { case 0: groupName="Aグループです。"; break; case 1: groupName="Bグループです。"; case 2: groupName="Cグループです。"; case 3: } jLabelMessage.setText(groupName); 補足課題 ローカル変数 groupName が初期化されていない可能性があります

【基礎課題2-2 補足】 private void jButton1ActionPerformed(ActionEvent evt) { 【基礎課題2-2 補足】 112 113 114 115 116 117 118 119 private void jButton1ActionPerformed(ActionEvent evt) { int n=Integer.parseInt(jTextFieldN.getText()); int sum=0; for(int i=1; i<=n; i++) { sum=sum+i; } jTextFieldAns.setText(String.valueOf(sum)); エラーメッセージを見れば原因と該当箇所が分かる! 空文字を整数に変換できない。 Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "" at java.lang.NumberFormatException.forInputString(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at kiso2_2.NewJFrame.jButton1ActionPerformed(NewJFrame.java:113)

【基礎課題3-1】 86 87 88 89 90 91 92 93 94 95 96 97 private void jButtonAverageActionPerformed(ActionEvent evt) { int[] score={45,80,63,72,55,90};//受験者のテスト得点の定義 int n=score.length; //配列の大きさを取得 //テストの平均点を求める double average; int sum=0; for(int i=0;i<=n;i++) { sum=sum+score[i]; } average=sum/(double)(n); jTextFieldAns.setText(String.valueOf(average)); i<n Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 6 at kiso3_1.NewJFrame.jButtonAverageActionPerformed(NewJFrame.java:93) at kiso3_1.NewJFrame.access$0(NewJFrame.java:86) ・・・

【基礎課題3-2】 private void jButtonKeisanActionPerformed(ActionEvent evt) { int n=Integer.parseInt(jTextFieldN.getText()); //2のn乗を求める int ans=1; for(int i=1;i<=n;i++); { ans=ans*2; } jTextFieldAns.setText(String.valueOf(ans)); for文が空回りしている。

【基礎課題3-3】 private void jButton1ActionPerformed(ActionEvent evt) { int n=Integer.parseInt(jTextFieldN.getText()); int sum=0; for(int i=1; i<=n; i=i++) { sum=sum+i; } jTextFieldAns.setText(String.valueOf(sum)); i++ i++:iの値を返してから1増やす。 ++i:1増やしてからiの値を返す。

【基礎課題3-4】 private void jButtonRyokinActionPerformed(ActionEvent evt) { //年齢の入力 int age=Integer.parseInt(jTextFieldAge.getText()); //料金の表示 if(age>=7 || age<65) { jTextFieldMessage.setText("あなたの料金は500円です。"); } else { jTextFieldMessage.setText("あなたの料金は無料です。"); && 全ての年齢に対して500円と表示される。

【基礎課題3-5】 int i=0; int sum=0; private void jButtonKeisanActionPerformed(ActionEvent evt) { int n=Integer.parseInt(jTextFieldN.getText()); int i=0; int sum=0; i=i+1; sum=sum+i; jTextFieldI.setText(String.valueOf(i)); jTextFieldSum.setText(String.valueOf(sum)); if(i>=n){ jButtonKeisan.setEnabled(false); jLabelEnd.setText("終了!"); }

【応用課題3-A】 private void jButtonHanteiActionPerformed(ActionEvent evt) { int year=Integer.parseInt(jTextFieldYear.getText()); if( (year % 4)==0 && (year % 100)!=0 && (year %400)==0 ) { jLabelMessage.setText("閏年です"); } else { jLabelMessage.setText("閏年ではありません。"); ||

private void jRadioButtonGuuActionPerformed(ActionEvent evt) { //コンピュータの手 0:グー 1:チョキ 2:パー int computer=(int)(3*Math.random()); switch (computer){ case 0: jLabelComputer.setText("グー"); jLabelResult.setText("おあいこ!"); break; case 1: jLabelComputer.setText("チョキ"); jLabelResult.setText("あなたの勝ち!"); case 2: jLabelComputer.setText("パー"); jLabelResult.setText("あなたの負け!"); } 【応用課題3-B】

private void jRadioButtonGuuActionPerformed(ActionEvent evt) { //コンピュータの手 0:グー 1:チョキ 2:パー int computer=(int)(3*Math.random()); switch (computer){ case 0: jLabelComputer.setText("グー"); jLabelResult.setText("おあいこ!"); break; case 1: jLabelComputer.setText("チョキ"); jLabelResult.setText("あなたの勝ち!"); case 2: jLabelComputer.setText("パー"); jLabelResult.setText("あなたの負け!"); } 【応用課題3-B】