1 名前:JavaScriptは板違い、Web制作板をご利用ください [2008/05/30(金) 03:17:59 ] 【質問者へ】 回答者の便宜のため、以下の注意事項を遵守してください。 ・質問は【課題提示用テンプレ】を利用してください。 ・問題文は、出題されたまま全文を書いてください。 ・数学問題は「○×法でせよ」だけでなく、その数式、前提条件も説明してください。 ・JavaScriptは板違い、Web制作板をご利用ください。 ・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。 ・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。 ・回答されたら動作報告を必ずしてください。 ・課題文が長い時、添付ファイルがある時はこちらのアップローダーを使うと便利です。 ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/main.htm 【課題提示用テンプレ】 【 課題 】与えられた課題文をそのまま書きます。 《必須》 【 形態 】1. Javaアプリケーション(main()で開始)/2. Applet/3. Servlet/ 4. 携帯(開発環境のver.必須)/5. その他(明記のこと) 《必ず選択》 【 GUI 】1. AWTのみ/2. Swing/3. SWT/4. 制限なし/ 5. その他(明記すること) 《GUIの課題の場合必ず選択》 【 期限 】提出期限、解答希望日を書きます。「できるだけ早く」はNG。 《必須》 【 Ver 】コンソールでjava -versionを実行し、その結果を貼ります。 《必須》 【 用語 】数学用語、専門用語の意味、説明を書きます。 《あれば必須》 【 補足 】課題について自分なりに補足する事、何か思う事があれば書きます。 丸投げでない場合は、途中までのソースとその経過報告、 質問点、疑問点を書きます(なるべく丸投げにしてください)。 【回答プログラムの掲載場所】 Java質問スレWiki ttp://www.wikiroom.com/java/ ソースポストネット ttp://sourcepost.sytes.net/ ろだ2 ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/main.htm 【前スレ】 pc11.2ch.net/test/read.cgi/tech/1196543694/
445 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 21:33:52 ] >>440 Scanner って ctrl-d で終わるんだっけ? そんな風には動かないんだが。 ま、いいかw import java.util.*; public class WordCounter { public static void main(String[] args) { System.out.println("欧文を入力してください(終了: Ctrl-d)"); Scanner scanner = new Scanner(System.in); HashMap<String,Integer> wordMap = new HashMap<String,Integer>(); while(scanner.hasNext()) { String word = scanner.next(); if(wordMap.containsKey(word)) { wordMap.put(word, wordMap.get(word).intValue() + 1); } else { wordMap.put(word, 1); } } System.out.println("---- 単語数: "+wordMap.size()); for(Map.Entry<String,Integer> entry : wordMap.entrySet()) { System.out.println(entry.getKey()+": "+entry.getValue()); } } }
446 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 21:36:44 ] >>439 >以下のように出力せよ。 って何
447 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 22:00:32 ] >>436 式知らないので参考URLとともにむりやりwhile。 // ttp://atsugi5761455.fc2web.com/calking14.html public class ピタゴラスの三角形 { public static void main(String[] args) { int n = 1; int i = 1; int n2 = n * n; int k = 1; while(i <= 20) { int m = n + k; int m2 = m * m; int a = m2 + n2; int b = m2 - n2; int c = 2 * m * n; System.out.println(i+": a="+a+",b="+b+",c="+c); i ++; k += 2; } } }
448 名前:447 mailto:sage [2008/07/13(日) 22:04:27 ] ああ、 > c ≧ b ≧ a を満たしてないし。数値入れ替えるだけじゃだめ?w
449 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 22:22:30 ] >>441 回答ありがとうございます。 しかし、それだと問題1しか解けていないと思うのですが・・・ 問題は1〜5まであります。 どうか宜しくお願いします。
450 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 22:29:26 ] >>437 import java.util.*; public class Uruu { static final int[] daysOfMonth = new int[]{31,29,31,30,31,30,31,31,30,31,30,31}; public static void main(String[] args) { while(true) { System.out.println("yyyy mm dd"); Scanner in = new Scanner(System.in); int y = Integer.parseInt(in.next()); int m = Integer.parseInt(in.next()); int d = Integer.parseInt(in.next()); if(y < 1583 || m < 1 || m > 12 || d < 1 || d > daysOfMonth[m-1]) { System.out.println("err."); continue; } else if(m == 2 && !isUruu(y) && d > 28) { System.out.println("URUU-day err."); continue; } System.out.println("y="+y+",m="+m+",d="+d); break; } } static boolean isUruu(int y) { if((y % 400) == 0) return true; if((y % 100) == 0) return false; return ((y % 4) == 0); } } 自分で書いといてヒドイ書き方だと思う…
451 名前:446 mailto:sage [2008/07/13(日) 22:44:54 ] >>439 とりあえず import java.util.*; public class RndNum { public static void main(String[] args) { Random random = new Random(); int num = random.nextInt(3); System.out.println(num); System.out.println("input 0-2"); Scanner scanner= new Scanner(System.in); int input = scanner.nextInt(); if(input == num) { System.out.println("当たり!"); } else { System.out.println("はずれ!"); } } }
452 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 23:29:47 ] >>438 ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/347.java
453 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 23:34:28 ] >>441 週末向けに宿題だされたけど結局やらずに駆け込みってことかねぇ。 暇つぶしには適当にばらけてくれたほうがいいんだが。
454 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 01:18:18 ] >>431 3 の Cell を使うと >スタックは大きさを持ち、格納できる要素数はその大きさまでとする。 ちゅうのをどう表現するか決めかねるんだが。 3. >>441 のを修正して ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/348.java 4. 大きさチェックなし ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/349.java メールでレス貰おうなんざ面倒くさ杉
455 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 07:29:10 ] メールの場合ノーチェックになるからな ここにレスするかうpろだだとこのスレの他の人のチェックはいるから 変なプログラムはめちゃ叩かれるw
456 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 12:53:50 ] 【 課題 】じゃんけんゲームを作成せよ。完成版は、反復構造により続けてゲームができるようにし、0で終了させて最後に勝ち負けの集計(勝率も計算させる)が表示できるようにせよ。 なお、プログラムは あなたの手の入力の処理 コンピュータの手の生成 勝ち負けの判定 勝率の計算 の4つの処理を行うメソッドを定義し、これを利用して作成すること。 【 形態 】1. Javaアプリケーション(main()で開始 【 期限 】7月31日まで 【 補足 】単位かかってます。
457 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 14:14:14 ] >>456 こういうの見ると、 "必ず勝つ(or負ける)ようにしとけば判定とか率とか表示1行で済んで楽だ" と思うんだが、そするとやっぱり単位とやらが貰えないのだろうか。 閑話休題。 >完成版は、 とあるが、未完成版はあるのか? もしくは未完成版でもいいのか? >0 で終了させて というのは、手の入力には何か規則があるのか?
458 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 14:22:55 ] 【 課題 】コマンドライン引数から西暦を受け取り、うるう年であるかを判定するプログラム report3.javaを作成しなさい。うるう年の条件は次のとおりである。 ・4で割り切れる年はうるう年である ・100で割り切れる年はうるう年ではない ・400で割り切れる年はうるう年である 【 形態 】1. Javaアプリケーション(main()で開始) 【 期限 】7/15 【 補足 】どうしても結果が被ってしまいます。お願いします。 public class report3 { public static void main(String[] args) { int x = Integer.parseInt(args[0]); if(0 == x%4 || 0 == x%400) { if(0 != x%100) { System.out.println(x + "年はうるう年です"); } } if(0 == x%100) { System.out.println(x + "年はうるう年ではありません"); } else { System.out.println(x + "年はうるう年ではありません"); } } }
459 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 14:42:40 ] >>458 >>450 を参考にせんか?
460 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 14:52:51 ] >>458 public class report3 { public static void main(String[] args) { int x = Integer.parseInt(args[0]); if((0 == x%4 && 0 != x%100) || 0 == x%400) { System.out.println(x + "年はうるう年です"); } else { System.out.println(x + "年はうるう年ではありません"); } } } 動かしてないからそのつもりで。 しかし = の前に 0 があるのって私には違和感あるなぁ。
461 名前:デフォルトの名無しさん [2008/07/14(月) 15:14:32 ] 【 課題 】キーボードから5回整数の入力を受け取り、 それらの合計値と平均値を計算して表示するプログラムを作成しなさい。
462 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 15:17:34 ] >>460 ありがとうございます カッコで区切るんですね 爆発しそうな脳みそがやっと縮みました
463 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 16:04:16 ] >>458 x にどんな値をいれたらどの順にどの行が実行されるのかを一つ一つ追ってみるといい。 ちなみに、途中でプログラムを強制終了させるなら System.exit() というのがあってだな…。
464 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 16:07:29 ] 【課題提示用テンプレ】 【 課題 】 整数nを入力して、1からnまでの整数を、それぞれ素因数分解した結果を返すプログラムを作る。 条件として、2つのスレッドを用いる。Thread の起動方法は、thread.start() を用いよ。 2つのスレッドは、共通のAtomicInteger のカウンタから、getAndIncrement()として得た整数に対して、素因数分解を行う。 得られた整数がnを超えたらスレッドを終了する。 素因数分解の結果は、ConcurrentHashMap<Integer>, List<Integer>>に格納する。 キーのInteger が素因数分解の対象の整数であり、値のList<Integer>が素因数分解した結果の整数群である。 全ての素因数分解が終了したのち、メインスレッドで、整数1からnまでの全ての結果を「12: 2 2 3」のように表示させよ。 【 形態 】Javaアプリケーション(main()で開始)Eclipseを用いています。 【 期限 】7/14 18:00まで 【 Ver 】3.2.2
465 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 16:09:38 ] 【課題提示用テンプレ】 【 課題 】 整数 n を入力し、1からnまでの素数を List<Integer> にまとめて返却するメソッドを作成せよ。 また、このメソッドを利用し、整数1000に対して、求めた素数を1行にひとつずつ画面に表示するプログラムを作成し、動作確認せよ。 表示した素数は桁合わせされていること。 【 形態 】Javaアプリケーション(main()で開始)Eclipseを用いています。 【 期限 】7/14 18:00まで 【 Ver 】3.2.2
466 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 16:10:28 ] 【 課題 】 1京(10000000000000000)、2京、3京、4京のそれぞれより大きい最初の素数を計算せよ。これを計算する上では、スレッドを利用すること。FixedThreadPool を用いて、スレッド数2にして、上記の4つのタスクを並行実行して、結果を求めよ 【 形態 】Javaアプリケーション(main()で開始)Eclipseを用いています。 【 期限 】7/14 18:00まで 【 Ver 】3.2.2
467 名前:464-466 mailto:sage [2008/07/14(月) 16:11:04 ] 課題丸投げですが、よろしくお願いします。
468 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 17:04:36 ] >>464 ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/350.java
469 名前:464 mailto:sage [2008/07/14(月) 17:14:36 ] >>468 ありがとうございます!
470 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 17:20:16 ] >>465 ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/351.java
471 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 17:21:55 ] >>464 - >>466 時間無さ杉w
472 名前:464 mailto:sage [2008/07/14(月) 17:26:01 ] スマソwww急に演習課題とか始まって\(^o^)/オワタ
473 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 17:30:53 ] >>472 リアルタイムかい。 で、オワタ?466はもういいのか?
474 名前:464 mailto:sage [2008/07/14(月) 17:33:40 ] すみません。人生的な意味で終わってるってことですw 466もお願いします!
475 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 18:02:51 ] >>466 まにあわなかったか? ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/352.java でかすぎてテストしきれてないぞ
476 名前:466 mailto:sage [2008/07/14(月) 18:09:45 ] >>475 ありがとうございます! みんなできていないようなので、レポートという形になりそうです。 さらに問題が追加されましたww 近々またお世話になるかもしれません。 お忙しい中、本当にありがとうございます。
477 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 18:16:51 ] >>475 でかすぎですねwwww プログラムテストできませんw
478 名前:464 mailto:sage [2008/07/14(月) 18:40:06 ] 追加された問題たちです。 【 課題 】 初期化時に文字列引数を持つ Enum 型 Fruit を作成し、 APPLE, ORANGE, GRAPE, CHERRY, PEACH のそれぞれの要素を、 日本語名を引数にして初期化せよ。 そして、この Enum 型から全ての要素を取出し、英語名でアルファベット順にソートして、 「英語名: 日本語名」の形で、アルファベット順に表示せよ。 【 形態 】Javaアプリケーション(main()で開始)Eclipseを用いています。 【 期限 】7/14 24:00まで 【 Ver 】3.2.2
479 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 18:45:16 ] Javaにもenumってあったのか
480 名前:475 mailto:sage [2008/07/14(月) 18:46:10 ] まぁなにしろ間に合うかどうか優先で全然速さを考えてないからなw 素因数分解をBigDecimal対応にするだけで面倒くさかった。 時間できたらなんとかの篩でもなんでもやってくれぃ。
481 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 18:47:22 ] 【 課題 】 キャプチャーしてzipでうpしました。 お手数おかけします。 rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/353.zip 【 形態 】Javaアプリケーション(main()で開始)Eclipseを用いています。 【 期限 】7/14 24:00まで 【 Ver 】3.2.2
482 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 18:49:25 ] >>480 ありがとうございます。 なんとかやってみます! 先生が理不尽で、困ります(><)
483 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 18:51:20 ] >>481 ワシそゆのダメ、素で読めんw
484 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 18:55:43 ] >>483 すみません。 そうですよね〜。さすがにこれはわけがわからないです。 なにをどうすればいいのかさっぱりです。
485 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 19:05:49 ] >>479 1.5から追加になった。
486 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 19:11:48 ] >>481 こんな感じだろうか int k=0; while(true) { if(Math.PIの小数点第8位までの値 == (1/無限小数の式)の小数点第8位までの値) break; } k+1回がループ数
487 名前:478&481 mailto:sage [2008/07/14(月) 19:26:23 ] すみません! 友達がやってくれました! みなさんありがとうございました!
488 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 19:31:51 ] >>487 じゃあ結局467は何もやってないのかw >>478 とりあえずやってみたのでうp import java.util.*; public class K478 { public static void main(String[] args) { Fluit[] fluits = Fluit.values(); Arrays.sort(fluits, new Comparator<Fluit>() { public int compare(Fluit o1, Fluit o2) { return o1.toString().compareTo(o2.toString()); } }); for(Fluit fluit : fluits) { System.out.println(fluit.toString()+": "+fluit.getJapanese()); } } static enum Fluit { APPLE("リンゴ"), ORANGE("オレンジ"), GRAPE("ブドウ"), CHERRY("サクランボ"), PEACH("モモ"); private String japanese; Fluit(String japanese) { this.japanese = japanese; } public String getJapanese() { return japanese; } } }
489 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 22:31:12 ] /* 手持ちのお金の枚数と買い物の合計金額から,お釣りの枚数が最も少なくなる支払い方を計算するプログラム. */ import java.io.*; public class MinimalChanges { public static void main(String[] args) { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); try { System.out.println("手持ちのお金の枚数を入力してください."); System.out.print("一万円札:"); String line = reader.readLine(); int man = Integer.parseInt(line); System.out.print("五千円札:"); line = reader.readLine(); int gosen = Integer.parseInt(line); System.out.print("千円札:"); line = reader.readLine(); int sen = Integer.parseInt(line); System.out.print("五百円玉:"); line = reader.readLine(); int gohyaku = Integer.parseInt(line); System.out.print("百円玉:"); line = reader.readLine(); int hyaku = Integer.parseInt(line); System.out.print("五十円玉:"); line = reader.readLine(); int goju = Integer.parseInt(line); System.out.print("十円玉:"); line = reader.readLine(); int ju = Integer.parseInt(line);
490 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 22:32:40 ] 続き System.out.print("五円玉:"); line = reader.readLine(); int go = Integer.parseInt(line); System.out.print("一円玉:"); line = reader.readLine(); int ichi = Integer.parseInt(line); System.out.print(""); System.out.println("買い物の合計金額を入力して下さい."); line = reader.readLine(); int sum = Integer.parseInt(line); int p = sum % 10; System.out.println(""); int pay1 = one(p, ichi); p = p - pay1; int pay5 = five(p, go); if (p <= (pay5 * 5)) { sum = sum / 10; } else { sum = (sum / 10) + 1; } p = sum % 10; int pay10 = one(p, ju); p = p - pay10; int pay50 = five(p, goju); if (p <= (pay50 * 5)) { sum = sum / 10; } else { sum = (sum / 10) + 1; } p = sum % 10;
491 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 22:34:07 ] int pay100 = one(p, hyaku); p = p - pay100; int pay500 = five(p, gohyaku); if (p <= (pay500 * 5)) { sum = sum / 10; } else { sum = (sum / 10) + 1; } p = sum % 10; int pay1000 = one(p, sen); p = p - pay1000; int pay5000 = five(p, gosen); if (p <= (pay5000 * 5)) { sum = sum / 10; } else { sum = (sum / 10) + 1; } p = sum % 10; int pay10000; if (man >= p) { pay10000 = p; System.out.println("一万円札" + pay10000 + "枚"); System.out.println("五千円札:" + pay5000 + "枚"); System.out.println("千円札:" + pay1000 + "枚"); System.out.println("五百円玉:" + pay500 + "枚"); System.out.println("百円玉:" + pay100 + "枚"); System.out.println("五十円玉:" + pay50 + "枚"); System.out.println("十円玉:" + pay10 + "枚"); System.out.println("五円玉:" + pay5 + "枚"); System.out.println("一円玉:" + pay1 + "枚");
492 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 22:34:55 ] System.out.println("で支払ってください."); System.out.println(""); } else { System.out.println("お金が足りません."); } } catch (IOException e) { System.out.println(e); } catch (NumberFormatException e) { System.out.println(e); } } public static int one(int p, int ichi) { if (p > 5) { if ((p - 5) <= ichi) { return p - 5; } else { return 0; } } else if (p <= ichi) { return p; } else { return 0; } }
493 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 22:37:12 ] public static int five(int p, int go) { if (p != 0) { if ((p <= 5) && (go != 0)) { return 1; } else { return 0; } } else { return 0; } } } これで終わりなのですが、手持ちのお金と,買い物の金額を入力すると, お釣りの枚数が最も少なくなる支払い方を教えてくれるプログラムです. 例えば1000円札1枚,100円玉2枚,10円玉4枚持っていて,買い物の合計が625円の時, プログラムを実行させると1000円札1枚,100円玉1枚,10円玉3枚で支払うように指示します. ただしこのプログラムでは,1000円札,100円玉,10円玉,1円玉に関しては4枚以内, 5000円札,500円玉,50円玉,5円玉に関しては1枚以内しか持っていないという前提になっているため, 例えば1円玉のみ100枚持っているときに,100円の買い物をしようとしても「お金が足りません」と出力されてしまいます. この、問題をどんな形でも良いので解消してください。
494 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 22:47:55 ] >>493 >>1 くらい読め
495 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 23:05:01 ] 【 課題 】手持ちのお金と,買い物の金額を入力すると,お釣りの枚数が最も少なくなる支払い方を教えてくれるプログラムです. 例えば1000円札1枚,100円玉2枚,10円玉4枚持っていて,買い物の合計が625円の時, プログラムを実行させると1000円札1枚,100円玉1枚,10円玉3枚で支払うように指示します. ただしこのプログラムでは,1000円札,100円玉,10円玉,1円玉に関しては4枚以内, 5000円札,500円玉,50円玉,5円玉に関しては1枚以内しか持っていないという前提になっているため, 例えば1円玉のみ100枚持っているときに,100円の買い物をしようとしても「お金が足りません」と出力されてしまいます. この問題を直しなさい。 【 形態 】Javaアプリケーション(main()で開始) 【 GUI 】制限なし 【 期限 】明日のAM6時 【 Ver 】1.6.0_07 【 補足 】スレ汚してしまってすいません。 rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/354.java
496 名前:デフォルトの名無しさん [2008/07/15(火) 00:57:36 ] 【 課題 】キーボードから5回整数の入力を受け取り、 それらの合計値と平均値を計算して表示するプログラムを作成しなさい。 for文またはwhile文による繰り返しを使うこと。 平均値も整数とし、小数点以下が表示されなくてもよい。 キーボードから入力した文字列が制すうちに変換されないときの例外処理はしなくてよい。 【 形態 】Javaアプリケーション(main()で開始)Eclipseを用いています。 【 期限 】7/16 18:00まで 【 Ver 】3.2.2 よろしくお願いします。
497 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 01:59:57 ] >>496 public static void main(String args[]) { Scanner kbd=new Scanner(System.in); int sum=0; for(int i=0;i<5;i++){ sum+=kbd.nextInt(); } System.out.println("合計値:"+sum); System.out.println("平均値:"+sum/5); }
498 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 11:28:23 ] 本日の課題プログラムを参考にして、じゃんけんゲームを完成させよ。完成版は、反復構造により続けてゲームができるようにし、0で終了させて最後に勝ち負けの集計(勝率も計算させる)が表示できるようにせよ。 なお、プログラムは あなたの手の入力の処理 コンピュータの手の生成 勝ち負けの判定 勝率の計算 の4つの処理を行うメソッドを定義し、これを利用して作成すること。 実行例: あなたの手を入力して下さい。(1:グー, 2:チョキ, 3:パー, 0:終了)? 1 あなたの手はグーです。 コンピュータの手はチョキです。 あなたの勝ちです。 あなたの手を入力して下さい。(1:グー, 2:チョキ, 3:パー, 0:終了)? 2 あなたの手はチョキです。 コンピュータの手はグーです。 コンピュータの勝ちです。 あなたの手を入力して下さい。(1:グー, 2:チョキ, 3:パー, 0:終了)? 2 あなたの手はチョキです。 コンピュータの手はグーです。 コンピュータの勝ちです。 あなたの手を入力して下さい。(1:グー, 2:チョキ, 3:パー, 0:終了)? 0 終了 あなたは3試合中、1勝2敗0分け(勝率:3割3分3厘)です。
499 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 11:59:42 ] >>498 >>1 くらいよめ
500 名前:デフォルトの名無しさん [2008/07/15(火) 13:26:40 ] >>498 >>456 か
501 名前:デフォルトの名無しさん [2008/07/15(火) 13:32:39 ] >>498 んで、「本日の課題プログラム」とやらはどこにある?
502 名前:デフォルトの名無しさん [2008/07/15(火) 15:02:26 ] >>497 さんありがとうございます。 【 課題 】キーボードから2個の小数点の入力を受け取り、 それらを底辺と高さとする三角形の面積を計算して表示する プログラムを作成しなさい。 ・三角形をオブジェクトとして考え、三角形オブジェクトを作成するTriangleクラスを宣言して使うこと。 ・Triangleクラスのメンバには、底辺と高さの値をあらわすインスタンス変数、面積を計算するためのインスタンスメソッドを含むこと。 ・キーボードから入力された文字列が数値に変換できないときの例外処理はしなくてよい。 【 形態 】Javaアプリケーション(main()で開始)Eclipseを用いています。 【 期限 】7/17 18:00まで 【 Ver 】3.2.2 追加でよろしくお願いします。
503 名前:デフォルトの名無しさん [2008/07/15(火) 15:19:58 ] テンプレを勘違いのまま使ってるな。 【Ver】は Eclipse のバージョンじゃなくて Java のバージョンだぞ。
504 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 15:31:10 ] >>502 import java.util.Scanner; public class Triangle { private double 底辺, 高さ; public Triangle(double 底辺, double 高さ) { this.底辺 = 底辺; this.高さ = 高さ; } public double 面積() { return 底辺 * 高さ / 2; } public static void main(String[] args) { System.out.println("三角形の底辺と高さを入力(スペース区切り):"); Scanner scanner = new Scanner(System.in); double 底辺 = scanner.nextDouble(); double 高さ = scanner.nextDouble(); Triangle 三角形 = new Triangle(底辺, 高さ); System.out.println("面積="+三角形.面積()); } }
505 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 15:32:14 ] >>502 小数点とは、『.』のことだぞ?
506 名前:431 mailto:sage [2008/07/16(水) 01:21:23 ] >>454 回答ありがとうございます。 >3 の Cell を使うと >>スタックは大きさを持ち、格納できる要素数はその大きさまでとする。 >ちゅうのをどう表現するか決めかねるんだが。 問題文は原文のままですのでなんとも言えないのですが・・・ TestStack.classファイルが今日配布されましたので、もし修正して頂けるなら参考にして下さい。 問題1〜2、3〜4でどういうソースを書けば良いのか参考になると思います。 以下にzipファイルのURLと説明を書きます。 ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/355.zip TestProgram11_1フォルダ内のTestStack.classファイルは、Stack.classと共にsrc/Problem11/Answer3に格納して実行してみて下さい。 TestProgram11_2フォルダ内のTestStack.classファイルは、Stack.class、Cell.classと共にsrc/Problem11/Answer4に格納して実行してみて下さい。 パッケージの宣言(?)をそれぞれProblem11.Answer3、Problem11.Answer4にすれば良いようです。 そもそもProblem11.Answer1、Problem11.Answer2でTestStack.classファイルを作成して配布していれば良いと思うのですが、 こういう部分に問題文の作りの甘さが表れていると思います…
507 名前:431 mailto:sage [2008/07/16(水) 01:21:57 ] 問題1に関しては>>441 で回答して頂いたファイルの一部分を void push (Object anObject) { // スタックの最後の位置を増やす top++; // スタックに要素追加 stack[top] = anObject; } に直したら正常動作しました。ありがとうございます。 問題2はまだ回答して頂いておらず、上にアップロードしたTestProgram11_1フォルダ内のTestStack.classを実行した際に動作するようなソースを書いて頂けないでしょうか。 問題4の >import java.io.ByteArrayOutputStream; >import java.io.PrintStream; の記述がよくわかりません。コンパイルでもエラーが出ました。 現在コンパイルしてエラーを表示できる環境にないので、今はエラーの詳細を貼ることは出来ませんが… 後ほど貼ります。 問題3、問題4に関しても上記のファイルのTestProgram11_2フォルダ内のTestStack.classの動作に添うようにソースを書いて頂けないでしょうか。 色々文句をつけてしまいすみません。 自力では解けませんのでなんとか宜しくお願いします。
508 名前:468 [2008/07/16(水) 01:27:36 ] >>464 すまぬ〜、さっき知ったんだが、 >AtomicInteger って java.util.concurrent.atomic.AtomicInteger なんだな。手前勝手に作っちまった。 クラス宣言消して import 追加して生成してるとこでパラメータに 1 を指定する、のが 正解ってことで。
509 名前:デフォルトの名無しさん [2008/07/16(水) 02:13:12 ] 【 課題 】コンパイルせよ。エラーが出たら原因を考えて修正せよ。 【 形態 】1. Javaアプリケーション(main()で開始) 【 GUI 】1. AWTのみ(だと思います) 【 期限 】今週金曜日 【 Ver 】 java version "1.6.0_05" Java(TM) SE Runtime Environment (build 1.6.0_05-b13) Java HotSpot(TM) Client VM (build 10.0-b19, mixed mode, sharing) プログラムをコンパイルすると Ex5c.java:28: 警告:[unchecked] raw 型 java.util.ArrayList のメンバとしての add(E ) への無検査呼び出しです。 list.add(new AnalogClock()); というエラーが出るのですが、直し方がよくわかりません AnalogClock aClock; aClock = new AnalogClock(); ArrayList list = new ArrayList(); ググったら↑を書き換える必要があるらしいのですが、どう書き変えたらいいのかわかりません。 お願いします。
510 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 02:22:19 ] >>509 警告だから、別に直さなくても良いけど、 ArrayList<AnalogClock> list = new ArrayList<AnalogClock>(); とか書けば消えるんじゃね?
511 名前:454 [2008/07/16(水) 03:27:27 ] >>506 >>507 なんだか変な話になってきそうだが、問題2/問題4の >Stack が要求を満たしていることをテストするプログラムTestStack を定義しなさい。 というのは、その配布された TestStack.class のソースを再現しろということなのか? そもそも、1と3で作成した Stack は指示されたインターフェースを満たすようにつくって いるのだから、UnitTest ならともかくそのレベルのテストは同じものになるはずだが。 ちなみに ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/348.java は4つのテスト全てで >テスト結果 = true と表示されたが、これでいいのか?
512 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 04:11:37 ] >>506 jad という逆コンパイルツールを探してきて TestStack.class と同じ フォルダに展開して、 jad -8 TestStack.class とやると TestStack.jad というファイルが出来るから、 TestStack.java に変名してそれぞれの Stack と一緒に出したらどうだい。 それ見てたら作者がタコに思えてきて弄る気力無くなった…。
513 名前:デフォルトの名無しさん [2008/07/16(水) 14:51:55 ] >>510 ありがとうございます!やっとコンパイル通りました!
514 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 15:10:42 ] >>513 いや、別に、警告は出てても実行は出来るよ。
515 名前:デフォルトの名無しさん [2008/07/16(水) 15:57:41 ] >>514 元に戻してやってみたら通りましたorz ファイル名を入力し間違えてたみたいですorzorz
516 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 00:36:03 ] いま暇だ。 残ってる宿題リストくれ
517 名前:デフォルトの名無しさん [2008/07/17(木) 00:56:43 ] 「1〜1000までの足し算を行うプログラムを書け。」 簡単かもしれませんがお願いします。
518 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 01:27:37 ] >>516 期限が切れてるのばかり・・・ >>495 の金種計算と >>466 も現実的な時間で算出できる方法かな
519 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 01:36:47 ] >>517 n=1000; として、 for(i=1,sum=0; i<=n; i++) sum+=i; または n*(n+1)/2;
520 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 01:51:31 ] >>466 なにこのベンチマークw
521 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 02:47:45 ] >>431 は一応まだ期限内なんだが。 問題1,3はともかく、問題2,4の出題者の意図がイマイチ分からん。 そのもののクラスファイルを >>506 で出題者から提供されたが、 んじゃ問題2,4では何を作るのかと。 >>512 ではjadで終わりってことにしたな。
522 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 10:10:12 ] >>466 を実装するには、まずBigDecimalのsqrtを実装しないといけないよね。チェックの回数を減らさないと。
523 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 11:57:56 ] 【 課題 】 class Data{ String name; String start_time; String end_time; String place; String id; //以下ゲッタ、セッタ; } で定義されているデータ型とこのデータ型のオブジェクトdata1[n]がある. このとき、以下の条件に従って、Data data2[n]に値を挿入する関数arrange()を作成せよ. (1)n=0の時、data2[n] = data1[n] (2-2)n=kの時、data1[0]~data1[k-1]までに「name,start_time,end_timeすべてが一致するもの」があれば、data2[k].id=data2[k].id+","+data1[k-α].id *αはそれまでの一致した数 (2-2)n=kの時、data1[0]~data1[k-1]までに「name,start_time,end_timeすべてが一致するもの」がなければdata2[k]=data1[k-α] 【 形態 】1. Javaアプリケーション(main()で開始) 【 GUI 】なし 【 期限 】7月18日24時 【 Ver 】 $ java -version java version "1.6.0_05" Java(TM) SE Runtime Environment (build 1.6.0_05-b13) Java HotSpot(TM) Client VM (build 10.0-b19, mixed mode, sharing) 【 用語 】 【 補足 】data1のデータは定義されていません。自分で何か文字列入れて動作確認せよとのことです.
524 名前:431 mailto:sage [2008/07/17(木) 18:19:45 ] >>511 度々ありがとうございます。 自宅で実行環境を整えたのですが、 Exception in thread "main" java.lang.NoClassDefFoundError とエラーが出てしまい、動作を確認出来ない状況です。 学校で実行した時は3が実行できて、4はエラーが出て実行できない状況だったのですが・・・ 作って頂いた4のファイルも、きちんとした環境でコンパイルして実行すれば動作するのでしょうか? Ver.1.4.2_12でコンパイルして実行したらエラーが表示されたのですが・・・ 4でのエラー文は明日貼りますので、もう暫くお待ち下さい。 3を実行したとき、スタックにa、b、cを積んでいって取り出すような実行結果が表示されたと思うのですが、 教師からはTestStack.classを配布したので実行してみろという指示を出されただけで特に説明はありませんでした。 恐らくTestStack.classが実行できた場合は教師が指定したスタックの条件は満たせているぞ、という意味なのだと思います。
525 名前:431 mailto:sage [2008/07/17(木) 18:27:35 ] 問題2と4に関しては、作成したスタックが教師の条件に沿っていることを確認するものが作れれば良いと思います。 スタックに要素を積んでいって、満杯になったらこれ以上積めないということを表示し、 スタックの要素だけを表示するメソッドを実行して、次に要素をスタックから取り出して表示するメソッドを実行することで、 スタックの要素を表示するメソッドと、要素をスタックから取り出して表示するメソッドが正しく動作することを確認することが出来るのでそのような動作をするようにし、 スタックが空の時に要素を取り出して表示するメソッドを実行したらスタックが空で取り出せないことを表示する、 といったことが出来れば良いと思います。 問題4は「>スタックは大きさを持ち、格納できる要素数はその大きさまでとする。」という部分が問題になっているのでしょうか。 実行できていないので「>テスト結果 = true」についてよくわからないのですが、 Cellを利用して作ると無限に要素を積めるスタックを作れるとしたら、問題文の「>スタックは大きさを持ち、格納できる要素数はその大きさまでとする。」は無視して良いと思います。 問題4では スタックに要素を積んでいって、スタックの大きさに制限がないためにいくつか積んでも満杯にならないことを確認し、 スタックの要素だけを表示するメソッドを実行して、次に要素をスタックから取り出して表示するメソッドを実行することで、 スタックの要素を表示するメソッドと、要素をスタックから取り出して表示するメソッドが正しく動作することを確認することが出来るのでそのような動作をするようにし、 スタックが空の時に要素を取り出して表示するメソッドを実行したらスタックが空で取り出せないことを表示する、 といったことが出来れば良いと思います。 そして、どちらも問題文で指定されている >ただし、show メソッドにより、 >スタックが空の場合には >スタックは空です! >と表示し、 >“a”,”b”,”c”の順序にスタックにつまれている場合にはスタックの内容を >c <-- b <-- a >と表示するようにする。 という部分は守る必要があると思います。
526 名前:431 mailto:sage [2008/07/17(木) 18:28:14 ] 私は「import〜」など、少し複雑になったソースでさえ理解することが出来ませんので、 もし良かったら、上のようなプログラムで、より単純なソースで作って頂けると助かります… 問題2に関しては単純にpush(Object anObject),pop(),top()を実行するプログラムを書けば良いので自分でなんとかなりますが、 問題4に関しては問題3で作成して頂いたソースのコンパイルすら通っておらず、そのソースの構造がどうなっているのか理解することが出来ていないのでメソッドをどう実行したら良いのか分かりません。 問題4も単純に要素を何個か積んで、表示して、取りだしていって、要素が無くなったら要素がないことを表示するようなソースを、メソッドを繰り返し使うことで実現するようなプログラム(?)を書いて頂けると助かります。 恐ろしく素人なので、回答して頂いている方達が疑問に思っている点について私が理解出来ておらず、 回答になっていない気もします… >>521 恐らく私が今書いたようなことだと思います。 配布されたTestStack.class自体を再現する必要はないと思いますが、 それを再現出来れば動作の確認自体が出来ると思うので、それを再現してもいいのかもしれません。
527 名前:431 mailto:sage [2008/07/17(木) 18:44:42 ] そして、前回の課題に合わせて追課題が出てしまいました・・・ 【 課題 】 ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/358.txt 【 形態 】 Javaアプリケーション(main()で開始) 【 期限 】 2008/07/22 06:00 【 Ver 】 1.4.2_12 【 補足 】 課題の丸投げです。>>431 で作成すべきソースを利用して作る課題です。 私は動作確認できていませんが、 もしかしたら ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/346.javaの一部分を void push (Object anObject) { // スタックの最後の位置を増やす top++; // スタックに要素追加 stack[top] = anObject; } に書き換えたものと、 ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/348.java を利用して解けるかもしれません。 >>431 の課題も作成して頂いている途中なので作成をお願いするのが申し訳ないのですが、 そんなことに構っていられないほど色々な課題や勉強が増えてきておりまして、 図々しいことは承知の上で回答お願いします。 できるだけ初心者にも理解し易く、単純な形で記述して頂けると助かります。 コンストラクタ、メソッド、インスタンス、オーバーロード、合成、継承、オーバーライド、ポリモルフィズム、 アップキャスト・ダウンキャスト、equalsのオーバーライド、インターフェース、 程度しか教わっていないようなレベルです。 宜しくお願いします。
528 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 18:55:31 ] >>527 > ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/346.javaの一部分を > void push (Object anObject) { > // スタックの最後の位置を増やす > top++; > // スタックに要素追加 > stack[top] = anObject; > } > に書き換えたものと、 それは何処が書き換わってるの?
529 名前:431 mailto:sage [2008/07/17(木) 19:11:16 ] >>528 失礼しました。 public Stack() { // スタックの大きさ size = 5; // スタックサイズで配列作成 stack = new Object[size]; // 空っぽの時はマイナス1とする top = -1; } を public Stack(int size) { // スタックサイズで配列作成 stack = new Object[size]; // 空っぽの時はマイナス1とする top = -1; } に書き換えたものと、 です。
530 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 19:45:27 ] >>527 この問題コンストラクタ、メソッド、インスタンス以外使ってないんだが・・
531 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 23:35:59 ] 作成する側がって意味だろ
532 名前:デフォルトの名無しさん [2008/07/18(金) 01:17:02 ] だれか 1.4.2_12 の環境ある超暇な人、 >import java.io.ByteArrayOutputStream; >import java.io.PrintStream; でコンパイルエラーになるか確認してくれないか。
533 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 01:26:12 ] ごちゃごちゃ想像してないで、課題2と課題4とTestStack.classを どうしろというのか直に教師に確認してきなさいよ・・・
534 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 02:31:14 ] >>533 実行してみろとしか言われてないって書いてあるだろ 課題自体は431なんだろ
535 名前:デフォルトの名無しさん [2008/07/18(金) 12:05:40 ] 課題がわからなくてこまってます。にもかかわらず先延ばしにしてしまい今日の午後四時が締め切りです。 図々しいけどよろしくお願いします。 [課題]10.0、18.5、4.2、19.0、5.0、22.7、2.4、4.8、9.9、7.0 という十個の実数について大きい順に並び替え、 最大値、最小値、平均値を求めるプログラムを作成せよ。 [形態]1Javaアプリケーション [GUI]1AWTのみ [期限]今日(金曜日)の午後四時
536 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 12:39:03 ] >>535 足す順で若干精度が変わるけど、そのへんポイントなの? double[]a={10.0,18.5,4.2,19.0,5.0,22.7,2.4,4.8,9.9,7.0}; double sum = 0; java.util.Arrays.sort(a); System.out.println("大きい順"); for(int i=a.length-1;i>=0;i--){ System.out.println(a[i]); sum+=a[i]; } System.out.println("最大値:"+a[a.length-1]); System.out.println("最小値:"+a[0]); System.out.println("平均:"+sum/a.length);
537 名前:デフォルトの名無しさん [2008/07/18(金) 13:03:44 ] 【 課題 】適当なフレーム(正方形が望ましい)をつくり、その中心にdrawRectで正方形を描画する。 その後、その正方形に内接する円を描き、正方形の中だけにランダムに 点を描画することにより円周率πの近似値を求めるプログラムを作成せよ。 【 形態 】1. Javaアプリケーション(main()で開始) 【 GUI 】1. AWTのみ 【 期限 】7/22(火) 13:00 【 Ver 】java version "1.5.0_11" 【 補足 】モンテカルロ法を再現するのだと思いますが、その部分の計算方法がよく分かりません。 丸投げにしてすいませんがお願いします。
538 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 15:04:04 ] >>537 > モンテカルロ法を再現するのだと思いますが、その部分の計算方法がよく分かりません。 正方形の一辺の長さを a とすると、その面積は a × a になる。 この正方形に内接する円の面積は π × a × a ÷ 4 。 正方形内に一様にばらまいた点が内接円の内部に存在する割合は、 正方形の面積に対する内接円の面積の比、すなわち π ÷ 4 。 つまり、ばらまいた点の総数で内接円内の点の数を割ったものの4倍がπの近似値になる。 点が内接円の内部か外部かの判定は、 正方形の重心=円の中心から点までの距離と円の半径 a ÷ 2 との比較で行える。 カルテシアン座標で点の座標を発生させているのなら、 平方根計算が必要な距離そのものでなく、その2乗値と a × a ÷ 4 とを比較してもいい。
539 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 18:59:26 ] 【課題】Music クラスのオブジェクトを要素とするリストの中から、指定された曲名を持つオブジェクトを線形探索で探すプログラムを作成する。 今回は番兵法を使って作成しなさい。main メソッドのあるクラスのクラス名は SequentialSearchSentinel とする。 rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/359.java 【形態】1. Javaアプリケーション(main()で開始) 【期限】7月21日 23:59 【Ver】1.5.0.11 【補足】丸投げです。宜しくお願いします
540 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 22:14:05 ] >>537 >正方形が望ましい uN以外で正方形以外のフレームの作り方教えてくれw >>539 ちょっとまて、それとあるruby本で同じ問題あったぞw
541 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 22:18:55 ] >>540 フレームの形は一般に長方形で、正方形とは限らないのでは?
542 名前:デフォルトの名無しさん [2008/07/18(金) 22:19:43 ] 【 課題 】 □実行時に2つの数値を受け取るプログラムを作成しなさい。 □受け取った2つの数値の前1つを「月」、残りの1つを「日」として表示のみさせなさい。 □前出の月・日に対して、その曜日を表示するプログラムを作成しなさい。 【 形態 】1. Javaアプリケーション 【 期限 】7月23日 【 Ver 】1.6.0.06 【 補足 】丸投げです。基本的なことかもしれませんがよろしくお願いします。
543 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 22:25:39 ] >>542 どうやって「受け取る」のか、 曜日といっても、何年の曜日なのか・・・
544 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 22:37:03 ] >>542 if(args.length != 2) return; Calendar c =Calendar.getInstance(); c.set(Calendar.MONTH, Integer.parseInt(args[0])-1); c.set(Calendar.DAY_OF_MONTH, Integer.parseInt(args[1])); // c.set(Calendar.YEAR, 2008); System.out.println("月火水木金土日".charAt(c.get(Calendar.DAY_OF_WEEK)-2)); 年は2008(今年でいいのであれば設定の必要なし)、受け取り方はプログラム引数として、と仮定してます。
545 名前:デフォルトの名無しさん [2008/07/18(金) 22:44:32 ] >>544 さん、ありがとうございます。 いろいろ説明不足ですみません。