- ベストアンサー
javaの問題の動かし方?
平成17年春期 基本情報技術者試験午後問題の 問12 JAVA電卓プログラムの プログラム4を 実際にコーディングしたのですが コンパイルできません。 (全部で4つのプログラムから構成されていて、 プログラム1、2、3はコンパイル及び実行できました) 肝心のメインメソッドである最後のプログラム4がコンパイルできず 実際の検証が出来ないので困っています。 (エラー内容) CalculatorTest.java:30: シンボルを見つけられません。 シンボル: メソッド eventDispatched(CalculatorEvent) 場所 : Calculator の クラス calc.eventDispatched(event); (プログラム内容) //プログラム4 public class CalculatorTest{ public static void main(String[] args){ Calculator calc = new Calculator( new CalculatorOutput(){ public void display(int value){ System.out.println(value); } public void display(String value){ System.out.println(value); } }); String keys = args[0]; for (int i=0; i<keys.length(); i++){ char c = keys.charAt(i); CalculatorEvent event = null; if (c>= '0' && c<= '9'){ event = new CalculatorEvent( CalculatorEvent.DIGIT,c - '0'); }else if (c == '=' || c == '+' || c == '-' || c == '*' || c == '/'){ event = new CalculatorEvent( CalculatorEvent.OPERATOR, c); }else if (c == 'C'){ event = new CalculatorEvent( CalculatorEvent.CLEAR); } if(event != null) calc.eventDispatched(event); } } } 尚、eventDispatchedは、プログラム3で出てきました。 プログラム1、2、3、4は ソースファイル、クラスファイル共に同じ フォルダにあります。 プログラム4の 何処をどの様に変更したら コンパイル及び実行できるようになるでしょうか? 詳しい方教えて下さい。 宜しくお願い致します。
- みんなの回答 (4)
- 専門家の回答
関連するQ&A
- java iを1づつ増やすプログラムと2づつ増やすプログラム
次のようにすればiを1づつ増やして表示されます。 class Calc{ int i=1; int add(){ return i++; } } class Count{ public static void main(String[] args){ Calc calc = new Calc(); System.out.println("i = " + calc.add()); System.out.println("i = " + calc.add()); System.out.println("i = " + calc.add()); } } 実行結果 i = 1 i = 2 i = 3 しかし次のように2づつ増やそうとすると、 class Calc{ int i=1; int add(){ return i+2; } } class Count{ public static void main(String[] args){ Calc calc = new Calc(); System.out.println("i = " + calc.add()); System.out.println("i = " + calc.add()); System.out.println("i = " + calc.add()); } } 実行結果 i = 3 i = 3 i = 3 このようになってしまいます。どこがおかしいのでしょうか?
- ベストアンサー
- Java
- 以下の問題の式について教えてください。
以下についてご教示願います。 class Calculator { public int count = 0; public void calc(int n, int p) { count++; if (p>n) return; for (int i=0; i<n; i++) { calc(n, p+1); } } } // int nは、キーボードからの入力 Calculator c = new Calculator(); c.calc(n, 0); System.out.println(c.count); この時、出力されるc.countはどのくらいですか? nを用いた式で表してください。
- ベストアンサー
- Java
- JAVAのコンパイルについて教えてください。
public class exam05d { public static void main(String[] args) { int value=args[0]; if(value==0) { System.out.println("valueの値は0"); } else { System.out.println("valueの値は0以外"); } } } 上記のプログラムをコンパイルすると exam05d.java:3: 互換性のない型 検出値:java.lang.String 期待値:int int value=args[0]; というエラーが出てしまいます。 これを正常に動作させるにはどう改良すれば良いか教えて頂けないでしょうか。 また変更を行わなければならない理由も教えていただけると有難いです。 プログラミングを始めたばかりで行き詰っています。 回答お待ちしております。
- 締切済み
- Java
- javaプログラムについて
コマンドライン引数から複数の値を受け取り、それらの最大と最小を表示する、というプログラムなのですが。 class Maxmin{ public static void main (String[] args) { int max=Integer.MIN_VALUE; int min=Integer.MAX_VALUE; for (int i=0; i<args.length; i++){ int num= Integer.parseInt(args[i]); if(num>max) max=num; if(num<min) min=num; } System.out.println("最大値は" + max + "です。"); System.out.println("最小値は" + min + "です。"); } } このプログラムでも問題なく表示されるのですが、MIN_VALUEとMAX_VALUEを使用せずに表示する事、と指摘を受けました。自分の中でぱっと思いついたのがこれだったのですが、他にはどのような方法があるのでしょうか?
- ベストアンサー
- Java
- Javaの初歩
変数のスコープみたいなものが、いまだに良く分かって ないみたいなんです。このプログラムを実行すると、 15 0 20と表示されるのですが、最後がなぜ15ではなく て、20なのかがなかなか分かりません。どなたか教えて 頂けませんでしょうか。お願いします。 class Value { public int i = 15; } public class Test { public static void main(String argv[]) { Test t = new Test(); t.first(); } public void first() { int i = 5; Value v = new Value(); v.i = 25; second(v, i); System.out.println(v.i); } public void second(Value v, int i) { i = 0; v.i = 20; Value val = new Value(); v = val; System.out.println(v.i + " " + i); } }
- ベストアンサー
- Java
- javaの問題
import java.util.Scanner; class test6{ static void printArray(int[] a) { for(int i=0;i<a.length;i++) System.out.print(String.format("%1$6s", (a[i]+" "))); System.out.println(); } static void printArray(int[][] a) { for(int[] i:a) { for(int j:i) System.out.print(String.format("%1$6s",(j+"\t"))); System.out.println(); } } public static void main(String[] args) { int[] a = {12,536,-8,7}; int[][] c = {{32,-1,32,45,67}, {535,99999,2}, {2,5,-123,9}}; printArray(a); printArray(c); } } このプログラムを表示するとこのようになるのですが、 12 536 -8 7 32 -1 32 45 67 535 99999 2 2 5 -123 9 これに一工夫加えて見やすくしたいです。 このような形にするのはどのようにすればよいのでしょうか + + | 32 -1 45 67 | | 535 99999 2 | | 2 5 -123 9 | + +
- 締切済み
- Java
- 専門学校で情報処理の勉強しております。自宅のパソコンが故障しており使用
専門学校で情報処理の勉強しております。自宅のパソコンが故障しており使用不可能です。実際にプログラムを動かすことが一番なのですが、、大変申し訳ございませんが有識者の方ご教授お願い致します。Q1 class Calculator { public int count = 0; public void calc(int n, int p) { count++; if (p>n) return; for (int i=0; i<n; i++) { calc(n, p+1); } } } // int nは、キーボードからの入力 Calculator c = new Calculator(); c.calc(n, 0); System.out.println(c.count); この時、出力されるc.countはどのくらいですか? nを用いた式で表現しては頂けませんでしょうか
- ベストアンサー
- Java
- java練習
import java.util.Scanner; class test { public static void main (String[ ] args) throws IOException { System.out.println("文章を入力してください。"); BufferedReader input = new BufferedReader (new InputStreamReader (System.in)); String str = input.readLine( ); if (str == A) { str ="10"; } else if (str == 64) { str ="100"; } else if (str == 3E8) { str ="1000"; } else if (str == FF) { str ="255"; } else if (str == 100) { str ="256"; } System.out.println(" str + "); } } 今プログラミングの練習で文字や数字を判別するプログラムを作っています。 とりあえず16進数を入力したら10進数に変換されるプログラムを書いてたんですけどコンパイルしたらどうしてもエラーが出てきてしまいます。 調べてもよくわかりません、助けてください。
- 締切済み
- Java
- java 実行できない
javaで public class HelloWorld{ public static void main(String[] args){ System.out.println("Hello World!"); } } のようなプログラムをかいて、コンパイルして、実行しようとすると エラー: メイン・メソッドがクラスStringで見つかりません。次のようにメイン・メソッドを定義してください。 public static void main(String[] args) またはJavaFXアプリケーション・クラスはjavafx.application.Applicationを拡張する必要がありま というエラーがでます。コンパイルはできます。jdkは1.8.0_25を使っています。
- 締切済み
- Java
- [Java]Javaの文法が間違っているのでしょうか・・・?
6人分の小テストの点数を記録し,平均点,最高点,平均点以下の人の一覧を計算するプログラムを作成したいのです。 入力はコマンドラインから行います。 しかし,TEST配列がうまく初期化がうまく記述できないため,コンパイル時点で”シンボルが見つけられません”というエラーが出てしまいます。 Javaの経験が浅いので、文法そのものが間違っているか心配です。C言語についてはある程度知識がありますから、C言語と対比して教えて頂けたりすると大変たすかります。 宜しくお願い致します。 class Lecture { static Lecture[] TEST; static double avg=0; static int max=0; static int i = 0; static String kamoku; int scorebox; String name; String student_number; Lecture(int size){ TEST = new Lecture[size]; for (int i = 0; i < size; i++) { Exercise a = new Exercise(); Student b = new Student(); TEST[i] = new Lecture(a,b); } } static void add(Exercise score, Student aStudent) { TEST[i].name = aStudent.name; TEST[i].student_number = aStudent.student_number; TEST[i].scorebox = score.score; i++; } static void avg() { int sum=0; for (int i = 0; i < 6; i++) { sum += TEST[i].scorebox; } avg = sum / 6; } static void max() { int max = 0; int temp = 0; for (int i = 0; i < 6; i++) { if (max < TEST[i].scorebox) { temp = i; max = TEST[i].scorebox; } } max = i; } static void show_kamoku(){ System.out.println("科目:"+kamoku); } static void show(){ Lecture.max(); System.out.println("平均点:"+avg); System.out.println("最高得点者:"+TEST[max]); } static void under_avg(){ Lecture.avg(); System.out.println("平均点を下回った者"); for(int i=0 ; i<6 ; i++){ if(avg > TEST[i].scorebox){ System.out.println(TEST[i]); } } } } class Exercise { int score; Exercise(int score) { this.score = score; } Exercise() { } public String toString() { return " 得点:" + score; } } class Student { String name; String student_number; Student(String student_number,String name ) { this.name = name; this.student_number = student_number; } Student() { } public String toString() { return "学籍番号:" + student_number + " 名前:" + name; } } class ExerciseEvaluation { public static void main(String args[]){ Lecture.kamoku=args[0]; Lecture[] lec = new Lecture[6]; Student Y0 = new Student(args[1],args[2]); Exercise X0 = new Exercise(Integer.parseInt(args[3])); lec[0].add(X0, Y0); Student Y1 = new Student(args[4], args[5]); Exercise X1 = new Exercise(Integer.parseInt(args[6])); lec[1].add(X1, Y1); Student Y2 = new Student(args[7], args[8]); Exercise X2 = new Exercise(Integer.parseInt(args[9])); lec[2].add(X2, Y2); Student Y3 = new Student(args[10], args[11]); Exercise X3 = new Exercise(Integer.parseInt(args[12])); lec[3].add(X3, Y3); Student Y4 = new Student(args[13], args[14]); Exercise X4 = new Exercise(Integer.parseInt(args[15])); lec[4].add(X4, Y4); Student Y5 = new Student(args[16], args[17]); Exercise X5 = new Exercise(Integer.parseInt(args[18])); lec[5].add(X5, Y5); Lecture.show_kamoku(); Lecture.show(); Lecture.under_avg(); } }
- 締切済み
- Java
お礼
プログラム3のコーディングミスを発見、訂正して、 ご指南通りの結果を得ました。 20ポイントしか贈呈できないことが 残念です。 又、ご教授をお願い致します。 お忙しい中、沢山の貴重なお時間を戴き、 且つご丁寧なご助言を賜り、 ありがとうございました!
補足
ご回答をありがとうございます。 >コマンドプロンプトで java -versionをした結果です。 尚、C:\Workは、ソースファイルと(classファイルの) 保存フォルダです。 C:\Work>java -version java version "1.5.0_17" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_17-b04) Java HotSpot(TM) Client VM (build 1.5.0_17-b04, mixed mode) >いったんクラスファイルをすべて削除して、 CalculatorTest.javaのみでコンパイル した結果です。 C:\Work>javac CalculatorTest.java CalculatorTest.java:30: シンボルを見つけられません。 シンボル: メソッド eventDispatched(CalculatorEvent) 場所 : Calculator の クラス calc.eventDispatched(event); ^ エラー 1 個 と表示しました。 そして、他のファイル (Calculator.java、CalculatorOutput.java、 CalculatorEvent.java)のclassファイルは、 3つ共に、生成しませんでした。 他の3つのclassファイルの未生成の異常は、 環境変数等の設定不備?ですか? 繰返しになりますが、 iTEC JAVAプログラミングの例題は、 問題なく起動しました。 更に別の本(工学社 文系のためのJAVA入門)の 例題も問題なく起動しました。 それで何故、基本情報技術者試験問題は こうも不動なのか、キツネにつままれている感じです そこで、更に教えて欲しいのですが、 基本情報技術者試験問題は、 クラスパス等の考慮も問うているのでしょうか? (一つのフォルダにソースファイルとそのクラスファイルを 全部保存して、同じフォルダ内で>java ・・・・とやっても 起動するプログラム仕様にしていない、という事実からの推定ですが・・・) 学習書のご指南、ありがとうございます。 検討しようかと思います。 長文かつ初心者の疑問ですみません。 宜しくお願いします。