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/
321 名前:639 mailto:sage [2008/06/30(月) 23:48:56 ] >>319 package java_center_test; public class six { public static void main(String[] args) { if(n == 90 || n == 80){ System.out.println("A"); }else if(n == 70){ System.out.println("B"); }else if (n == 60){ System.out.println("C"); }else{ System.out.println("D"); }
322 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 02:21:36 ] >>316 プログラミング言語C(K&R) が ++i って書いてあるからそれの影響じゃないかな?
323 名前:322 mailto:sage [2008/07/01(火) 02:40:50 ] 今確認したらK&Rも i++ だった.スレ汚しスマソ.
324 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 02:47:31 ] 【 課題 】1.線型リストの要素数を返すメソッド int listLength(ListNode head) を作成しなさい. 2.線形リストの要素を逆順に並べかえるメソッド ListNode listRev(ListNode head) を作成しなさい. 再帰的メソッドと,繰り返し制御を用いた非再帰的なものを作成しなさい. 非再帰的なメソッドの名前はlistRevとし,再帰的メソッドの名前はlistRev2として, 1つのプログラム中に両方の定義を書き,正しく実行できるかが示せればよい. 3. 線型リストの要素を大きさの順(辞書式順序)に並べ替えるメソッド ListNode listSort(ListNode head) を作成しなさい. 【 形態 】1. Javaアプリケーション 【 期限 】7/3 17:00 【 Ver 】1.5.0_15 【 補足 】条件は,next欄を書き換えることで要素の並び方を変更するのであり,単に逆順に表示するのではない. すなわち,「ポインタを付けなおす」ことに相当するので, new演算子を使わずにリストのnext欄の値を書き換えることで並べかえること. 任意の長さ(要素数)の線形リストに対して動作すること. すなわち,要素数が1つの線形リストや,要素数が0(空リストnull)のものに対しても正しく動作するか確認しなさい. となっています. また,グローバル変数は使えず,listSortではint compareTo(String anotherString)メソッドを使用するように言われています. 課題2の再帰的なメソッドlistRev2と,課題3がうまくいきません. 各メソッドの定義はttp://www.ed.noda.tus.ac.jp/j-takeda/list.htmlにあります. よろしくお願い致します.
325 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 17:33:31 ] >>320 の方 アドバイスありがとうございます! 本当ですね。> ";" でなく ":" が正しい 問題用紙をじっくり見たら確かにでした。そして画面で見たら分からなかったです。 ちなみに先輩は規則正しい生活なので帰られてました。>夜11時 >>321 の方 ありがとうございます! 動くことも確認しました。ありがとうございました。 あと、期限なのですが、来週と思っていたら、明後日の朝でした。 何でも持ち込みして良いとのことなので、この掲示板のお力も借りられればと思っています。
326 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 19:40:24 ] >>316 実装の問題じゃね? インクリメントを実装するときに、後置だとインクリメントする前の値を返す必要があるから、変数をバックアップした後に+1してバックアップをreturn。 でも前置なら+1した変数をそのままreturnすればいいので、後置にするよりローコストになる。 でも、正直intとかのネイティブならコンパイラの最適化対象になりそうなんで、コンパイルしてみるとどっちでも同じというオチ。
327 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 19:50:41 ] >>324 書いてみた。 ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/324.java
328 名前:319 mailto:sage [2008/07/01(火) 20:17:07 ] 丸投げで申し訳ないのですがよろしくお願いします。 問題 次のように画面に出力されるプログラムを作成せよ。 ただし作成するプログラムに反復構造を含めること。 ----------------------------------------------------------------- 12345 1234 123 12 1 -----------------------------------------------------------------
329 名前:319 mailto:sage [2008/07/01(火) 20:18:10 ] 問題 次のように画面に出力するプログラムを作成せよ。 ただし作成するプログラムに反復構造を含めること。 ----------------------------------------------------------------- 12345 1234 123 12 1 12 123 1234 12345 -----------------------------------------------------------------
330 名前:319 mailto:sage [2008/07/01(火) 20:22:31 ] 問題 2006年現在の日本の人口は127,700,000人です。 年率0.5%の割合で人口が減少した場合、2007年の人口は何人になるかを計算して、以下のように表示するプログラムを作成せよ。 ----------------------------------------------------------------- 2007年の日本の人口はXXXXXXX人になる。 -----------------------------------------------------------------
331 名前:319 [2008/07/01(火) 20:23:35 ] 問題 2006年現在の日本の人口は127,700,000人です。 年率0.5%の割合で人口が減少した場合、2030年の人口は何人になるかを計算して、以下のように表示するプログラムを作成せよ。 ----------------------------------------------------------------- 2030年の日本の人口はXXXXXXX人になる。 -----------------------------------------------------------------
332 名前:319 mailto:sage [2008/07/01(火) 20:28:41 ] package java_center_test; public class exam107 { //次のプログラムを実行したときの出力を示せ。 //また各 ans を求めた計算過程を説明せよ。 //(説明例)x=3, y=2 のとき ans=x+y=3+2=5 public static void main(String[] args){ int x=3, y=3, ans=1; ans = x-- * ++y; System.out.println(ans); ans += x++ * --y; System.out.print(ans); //初期状態:x=3,y=3,ans=1 //次の状態:x=2,y=4,ans=2*4=8 ??? //最後状態:y=3,y=3,(ansは12)←これに足し算するので ans=15 ??? //ゴメンなさい。コンソールでは 次,最後が 12,18 になっています。 //なぜでしょうか? } }
333 名前:319 mailto:sage [2008/07/01(火) 20:35:00 ] package java_center_test; public class exam108 { //以下のプログラムを実行したときの出力結果を示せ。 //さらにこのプログラムを for-loop 文で書き直せ。 public static void main(String[] args){ int num =0, i=1; while((num=23*i)<100){ System.out.println(num); i++; } //出力結果は得られて理解は出来たのですが、 // for-loop 文の書き直しがちっとも頭に浮かびません。 } }
334 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 20:39:35 ] >>332 >>317
335 名前:319 mailto: [2008/07/01(火) 20:49:26 ] package java_center_test;public class exam114 { //各学生の合計を計算し、配列 goukei に格納する。そして各学生の平均点を表示するプログラムを完成させなさい。なお、配列の要素数の情報は length を用いること。 // //配列 ten // // 英語 数学 社会 理科 合計 //学生A 60 50 80 80 → //学生B 70 80 70 90 → //学生C 40 90 60 70 → public static void main(String[] args){ int ten[][]={{60,50,80,80}, {70,80,70,90}, {40,90,60,70}}; int goukei[]=new int[ten.length]; //学生ごとの合計点数の集計 for(int i=0; i< 「Q.1」; i++){ 「Q.2」=0; //配列 goukei の初期化 for(int j=0; j<「Q.3」; j++){ goukei[i]=goukei[i]+「Q.4」; } } //平均点の表示 for (int i=0; i< goukei.length; i++){ System.out.println(goukei[i] /「Q.5」);}}}
336 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 21:03:05 ] 319の未来が心配だ・・この調子だと毎回丸投げしそうで怖いぞ >>328 とか 1 12 123 1234 12345 を表示するプログラムは授業でやってるとかじゃないのか?
337 名前:319 mailto:sage [2008/07/01(火) 21:23:48 ] >>336 自分でも未来が心配です・・ >>328 とか おそらく System.out.println("1"); System.out.println("12"); System.out.println("123"); System.out.println("1234";) System.out.println("12345";) を for 文で書くので、おそらく 12345 を数字でなくて、 文字列として書けば良いのだと思って今のところ String ary[] = 12345 みたいな感じで for 文 ループを回そうとしています。 授業で文字列の最後だけ消して行くような内容はやったかどうか分かりません。
338 名前:319 mailto:sage [2008/07/01(火) 21:28:03 ] 今は >>332 ではまっています。 以前に i++ と ++i の違いについての書き込みがあったので、 それを読みながら試行錯誤しています。 int x=3, y=3, ans=1; ans = x-- * ++y; System.out.println(ans); ans += x++ * --y; System.out.print(ans); //初期状態:x=3,y=3,ans=1 //次の状態:x=2,y=4,ans=2*4=8 ??? //最後状態:y=3,y=3,(ansは12)←これに足し算するので ans=15 ???
339 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 21:36:55 ] >>338 とりあえず、この辺りからじゃね? int x=3; System.out.println( x--); x=3; System.out.println( --x);
340 名前:319 mailto:sage [2008/07/01(火) 21:49:09 ] 自己解決したような気がします。 >>332 //日本語になっているのか怪しいけれどメモしておきます。 // int の次の行では x は ++ される前に ans に行くので、 // x は初期状態のままの 3 。そして y は ans に行く前に ++ されるので、 // y は初期状態から1つ足した値の 4 になる。 // 3*4 = 12 という答えが出てくる。 //最後のところは先ず x が int の次の行で -- されているので、 // x は 2 なのだけど、++ は ans に行く後なので、ここでは x は 2 のままで考えて、 // y は上のところと同様に y の前に -- があるから、こっちは -- されて 3 である。 // 3*2 = 6 となって、これが ans に入ってた 12 と足し算になるので合計 18 になる。 //一応、自己解決しました。
341 名前:319 mailto:sage [2008/07/01(火) 21:53:44 ] >>339 ありがとうございます。まさに、その辺りでした。> --x と x-- 何の意味があるのかわからないのですが、そういうものだと丸暗記して次に進みます。 実は public static void main(String[] args) の意味も理解してません。 とはいえ授業の配布資料のメモにも「丸暗記」と書いてありますし、悩むだけの時間も与えられてないので・・
342 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 21:57:35 ] >>341 そこは暗記で良いよ。 public static void main(String[] args)からプログラムが始まるってことでいい。 次は>>330 かな・・・
343 名前:319 mailto:sage [2008/07/01(火) 22:16:59 ] >>342 そう断言して頂けると安心して次に進めます。 「位置についてよーいドン」の訳語とでも丸暗記しておきます。 >>330 ですか。>>333 の書き換え問題で悩んでいるので、少し放置して330にチャレンジしてみたいと思います。 実は書き込んだ順と与えられた問題の順番が違っていて、手元の試験問題対策プリントだと、>>332 ,>>333 ,>>328 ,>>329 ,>>330 ,>>331 ,>>335 の順番に並んでいます。
344 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 22:36:54 ] これは>319が自分で解けるように誘導する流れなのか?
345 名前:639 mailto:sage [2008/07/01(火) 22:41:35 ] >>343 普通にその順番でやっていったほうがいいと思う。 >>330 以降の問題も>>333 の問題ができないとできない。(whileでもできんことはないけどめんどくさい) forは for(初期値;継続条件;増分){ 処理内容 } >>330 の問題を直すと int i,num=0; for(i=1;(num=23*i)<100;i++){ System.out.println(num); }
346 名前:639 mailto:sage [2008/07/01(火) 22:47:50 ] 俺なんで名前>>639 にしてたんだwww >>328 int i,j; for(i=0;i<5;i++){ for(j=1;j=5-i;j++){ System.out.print(j); } System.out.println(); }
347 名前:319 mailto:sage [2008/07/01(火) 22:51:43 ] >>344 ここは「丸投げ」のスレッドという認識を持ってしまっているのですが、それはあまりに皆様に失礼な気もしまして・・ >>328 と>>329 について、もしかしたら>>18 の三角形の問題が役立つかなと思って>>21 の解答例を見たら知らない単語が並んでいて自分には役立たないことが分かりました。 別スレッドに「14: 【初心者】Java質問・相談スレッド116【歓迎】 (***)」というのがあるのも知っているのですが、いきなり質問を投げても経緯を説明しないことには回答者の方も大変かなと思いまして。 Java そのものより Exlipse というソフトウェアの使い方も掴みきれていないような状況ですが、英語とかの課題も平行してプログラミングを勉強しています。 今日は目が痛くなってきたので、そろそろ Java のテキストの読み込みの方に移ろうかなと考えているところです。
348 名前:324 mailto:sage [2008/07/01(火) 22:58:05 ] >>327 こんなに早く答えていただきありがとうございます。 大変助かりました。 参考にさせていただきます。
349 名前:319 mailto:sage [2008/07/01(火) 23:04:06 ] >>345 書き換え問題ありがとうございます。 確かに同じ結果が出ますね。スゴいです。 どうして for 文と while 文とがあるのでしょうか? while でも出来るけどめんどくさいというのは直感でわかるものなのでしょうか? >>346 for 文の入れ子構造ですか!? ちょっとガンバって当てはめてみたいと思います。 「型の不一致: int から boolean には変換できません」と言われてしまいました。 もはや何を言っているのかわからないので今日は画面を消したいと思います。 ありがとうございました。
350 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 06:26:09 ] >>319 >>1 基本的にテンプレ無視にはレスしない 長い課題でロダ使わずレス消費するのはマナーいくない
351 名前:319 [2008/07/02(水) 13:08:19 ] 【 課題 】 package java_center_test;public class exam114 { //各学生の合計を計算し、配列 goukei に格納する。そして各学生の平均点を表示するプログラムを完成させなさい。なお、配列の要素数の情報は length を用いること。 //配列 ten // 英語 数学 社会 理科 合計 //学生A 60 50 80 80 → //学生B 70 80 70 90 → //学生C 40 90 60 70 → public static void main(String[] args){ int ten[][]={{60,50,80,80}, {70,80,70,90}, {40,90,60,70}}; int goukei[]=new int[ten.length]; //学生ごとの合計点数の集計 for(int i=0; i< 「Q.1」; i++){ 「Q.2」=0; //配列 goukei の初期化 for(int j=0; j<「Q.3」; j++){ goukei[i]=goukei[i]+「Q.4」; } } //平均点の表示 for (int i=0; i< goukei.length; i++){ System.out.println(goukei[i] /「Q.5」);}}} 【 形態 】1. Javaアプリケーション(main()で開始) 【 GUI 】GUI の問題ではないと思います。使用しているのはコマンドプロンプトなので。 【 期限 】明日の午前8時頃でお願いしたいです。 【 Ver 】1.5.0 【 用語 】 【 補足 】>>328 解決、>>329 解決、>>330 解決、>>331 解決、>>332 解決 >>333 解決 >>345 、>>346 ありがとうございました。 本問題(>>335 と同じ)は急にレベルが上がった気がします。 >>350 確かにマナー良くなかったです。ご指摘ありがとうございました。
352 名前:デフォルトの名無しさん [2008/07/02(水) 14:54:39 ] >>351 public class exam114 { public static void main(String[] args) { int ten[][] = { {60,50,80,80}, {70,80,70,90}, {40,90,60,70}, }; int goukei[] = new int[ten.length]; for(int i=0; i<ten.length; i++) { goukei[i] = 0; for(int j=0; j<ten[i].length; j++) { goukei[i] = goukei[i] + ten[i][j]; } } for(int i=0; i<goukei.length; i++) { System.out.println(goukei[i]/ten[i].length); } } }
353 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 16:48:22 ] 【 課題 】 スレッドの作成に関する、何か,自前のスーパークラスを継承し,かつRunnable Interface を実装したアプリケーションを作成せよ。 【 形態 】1. Javaアプリケーション(main()で開始) 【 期限 】明日の 7/3 19:00まで 【 Ver 】1.6.0 【 補足 】 凝ったものが良いらしいです、ゲームではじゃんけんなど。 よろしくお願いします。
354 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 17:04:31 ] >>353 なんか落ちてるもの拾ってくれば? www.google.co.jp/search?hl=ja&rls=GGLD%2CGGLD%3A2005-29%2CGGLD%3Aja&q=java%E3%80%80%E3%82%B8%E3%83%A3%E3%83%B3%E3%82%B1%E3%83%B3%E3%80%80thread&lr=
355 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 23:53:05 ] 【 課題 】カウントダウンタイマーを作る 【 形態 】1. Javaアプリケーション(mainLoop()で開始 【 期限 】7月3日 13:00まで 【 Ver 】1.6.0 【 補足 】下記のようにしたのですが秒数がカウントされません。 Date d = new Date(); int seconds = d.getSeconds(); int countdown=20; int starttime=0; int i=0; if(i==0){ starttime=seconds; i=1; } countdown=countdown-(seconds-starttime); System.out.println(countdown);
356 名前:デフォルトの名無しさん mailto:sage [2008/07/03(木) 00:30:37 ] >>292 この質問をした者ではないのですが、>>296 の方がやっていただいたプログラムを (ii)が完成した状態にしていだだけないでしょうか?
357 名前:デフォルトの名無しさん mailto:sage [2008/07/03(木) 00:50:05 ] >>356 はて? なにが出来ていないかな?
358 名前:デフォルトの名無しさん mailto:sage [2008/07/03(木) 00:58:46 ] >>357 完成はしていると思いますが(iii)の機能が付いた状態ではなく (i)と(ii)の機能が付いただけのものが見たかったもので・・・・・・
359 名前:デフォルトの名無しさん mailto:sage [2008/07/03(木) 01:12:11 ] 【 課題 】 rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/326.txt 上記のソースの簡易webブラウザに "戻る" というボタンを付け,ホームページの閲覧履歴を遡れるように実装する。 【 形態 】Applet 【 GUI 】制限なし 【 期限 】本日 7/3 20:00まで 【 Ver 】1.6.0 【 用語 】数学用語、専門用語の意味、説明を書きます。 《あれば必須》 【 補足 】丸投げです。よろしくお願いします。
360 名前:デフォルトの名無しさん mailto:sage [2008/07/03(木) 01:17:04 ] >>358 (iii)の関連部分を削ってみた。 ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/327.java ただ、(i)の出来上がりとしては、毎回、前の図を消去しないといけないと思う。
361 名前:デフォルトの名無しさん mailto:sage [2008/07/03(木) 01:37:42 ] >>360 横からでしたありがとうございます (i)は補足がありそれでできましたので大丈夫です
362 名前:デフォルトの名無しさん mailto:sage [2008/07/03(木) 07:10:31 ] >>355 sleepを使えば、こう。 int countdown = 20; while(0<=countdown){ System.out.println(countdown--); try{ Thread.sleep(1000); }catch(Exception ex){ ex.printStackTrace(); } }
363 名前:デフォルトの名無しさん mailto:sage [2008/07/03(木) 08:05:35 ] それきもい。
364 名前:デフォルトの名無しさん [2008/07/03(木) 08:17:53 ] 【課題】クラスA、B、C、Dがある。クラスAはBを継承し、クラスCはBを継承し、クラスDはクラスCを継承する。 【形態】1. Javaアプリケーション(main()で開始) 【期限】7月9日 【Ver】1.5.0 【補足】
365 名前:デフォルトの名無しさん mailto:sage [2008/07/03(木) 08:25:14 ] 【課題】クラスA、B、C、Dがある。クラスAはBを継承し、クラスCはBを継承し、クラスDはクラスCを継承する。 クラスBにはint型の変数bが定義されており、コンストラクタB(int B)も定義されているとする。クラスA、C、Dは すべて親のクラスを継承し、自分のクラスの中に独立した変数の定義はないものとする。すべてのクラスとコンストラクタを定義せよ。 mainを含むクラスはTestInheritanceとしクラスDの変数yをコンストラクタD(13)で生成し、y.bを印字せよ。 【形態】1. Javaアプリケーション(main()で開始) 【Ver】1.5.0 class B { int b; B(int b){ this.b=b; } } class A extends B { A(int b){ } } class C extends B { C(int b){ } } class D extends C { D(int b){ } } class TestInheritance { public static void main (String args[]){ D y = new D(13); System.out.println("y.b = " + y.b); } } ここまで書いてみたのですがうまくいきません。どこか違うのでしょうか?よろしくお願いします
366 名前:355 mailto:sage [2008/07/03(木) 08:26:35 ] >>362 ありがとうございます。 先ほど実行したのですが、 カウントダウンはできているのですがアプレット(MainLoop?)の中で実行できませんでした。 説明不足ですみません。 一回スレッドを使ってやろうとしたのですがうまくいかなかったので Dateクラスを使って作ってみたのですがよくわかりません。 どなたか良い方法あればよろしくお願いします
367 名前:デフォルトの名無しさん mailto:sage [2008/07/03(木) 08:39:01 ] >>366 >>355 では「Javaアプリケーション」と書いてるけど・・・ いずれにせよ、init()に書き込めば、コンソールに表示されるのでは?
368 名前:デフォルトの名無しさん mailto:sage [2008/07/03(木) 08:58:32 ] >>365 super(b)とか書けってことでは?
369 名前:365 mailto:sage [2008/07/03(木) 09:05:59 ] >>368 どのように書けばいいのでしょうか??
370 名前:365 mailto:sage [2008/07/03(木) 09:24:22 ] 自己解決しました どうもお騒がせしてすみませんありがとうございました
371 名前:デフォルトの名無しさん mailto:sage [2008/07/03(木) 14:10:40 ] どなたか>>359 をお願いします。
372 名前:デフォルトの名無しさん [2008/07/03(木) 17:07:28 ] rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/328.java 【 課題 】画像を読み込み、読み込んだ画像をグレースケール化した後名前をつけて保存する。 【 形態 】1. Javaアプリケーション(main()で開始 【 期限 】7月4日 【 Ver 】1.6.0 Eclipse仕様 【 補足 】 1.実行すると無限にでるウィンドウの処理を直したい。 displayPanel = new MousePaint(); をコメント文にすると無限にでなくなるのだが、その原因がわからない。 2.マウスリスナーのアクションを無くしてメニューからOpenでファイルを読み込み ウィンドウにすぐ画像を表示させたい。 3.読み込んだ画像をグレースケール化したい。←初心者のためここが一番わからない^^;
373 名前:デフォルトの名無しさん mailto:sage [2008/07/03(木) 17:32:47 ] >>372 1.→コンストラクタの中で無条件に同じコンストラクタを呼び出しているのだから、無限に呼び出されて当然。
374 名前:372 mailto:sage [2008/07/03(木) 17:41:38 ] >>373 どうすれば呼び出されないようにすればいいでしょうか?
375 名前:デフォルトの名無しさん mailto:sage [2008/07/03(木) 18:22:08 ] 【課題】 アルゴリズムの作成 (x,y,z,w)に代入されている数字が(1.2.4.8)→(1,2,8,4)→(1,4,2,8)→(1,4,8,2)→(1,8,2,4)→・・→(8,4,2,1) と4!通りのパターンが順番に代入されていく様子をprintlnで表示するコードを作成すること 【形態】 Javaアプリケーション(main()で開始) 【Ver】 1.6.0 【補足】 代入アルゴリズム部分だけでも大丈夫です よろしくお願いします。
376 名前:デフォルトの名無しさん [2008/07/03(木) 19:08:26 ] 【課題】平面に5つの座標を考える。5つの座標(x,y)を二次元配列に入力し、すべての座標間の距離を計算せよ。 【形態】Javaアプリケーション(main()で開始) 【期限】7月4日 【ver】1.6.0 【補足】わからないのでおねがいします
377 名前:デフォルトの名無しさん mailto:sage [2008/07/03(木) 19:18:38 ] >>374 1.displayPanel自体いらないので削除してみた。 2.主旨が分からなかったのでパス。 3.中に入っていたロジックをペーストして、ちょちょっと。 ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/331.java
378 名前:デフォルトの名無しさん mailto:sage [2008/07/03(木) 20:11:34 ] >>375 public static void main(String[] args) { int[] alphabet = {1,2,4,8}; int[] lngTemp = new int[0]; hoge(alphabet,lngTemp); } public static void hoge(int[] candi,int[] patt){ if(candi.length==0){ for(int i=0;i<patt.length;i++)System.out.print(patt[i]); System.out.println(); }else{ for(int i = 0;i<candi.length;i++){ int[] c = new int[candi.length-1]; int index = 0; for(int j = 0;j<candi.length;j++){ if(j!=i)c[index++]=candi[j]; } int[] p = new int[patt.length+1]; for(int j = 0;j<patt.length;j++){ p[j]=patt[j]; } p[patt.length]=candi[i]; hoge(c,p); } } }
379 名前:デフォルトの名無しさん mailto:sage [2008/07/03(木) 20:13:12 ] >>376 二次元配列という注文が、理解しがたい。
380 名前:デフォルトの名無しさん mailto:sage [2008/07/03(木) 21:10:05 ] >>376 とりあえずint[5][2]と判断 public static void main(String[] args) { int[][] point = new int[5][2]; for (int i = 0; i < 5; i++) { for (int j = 0; j < 2; j++) { point[i][j] = (int) (Math.random() * 10); } } for (int i = 0; i < point.length; i++) { System.out.println(i + 1 + ":("+point[i][0] + "," + point[i][1]+")"); } System.out.println(); for (int i = 0; i < point.length - 1; i++) { for (int j = i + 1; j < point.length; j++) { System.out.print((i+1) + "-" + (j+1) + ":"); System.out.println(distance(point[i], point[j])); } } } static double distance(int[] point1, int[] point2) { return Math.sqrt(Math.pow((point2[0] - point1[0]),2.0) + Math.pow((point2[1] - point1[1]),2.0)); }
381 名前:355 mailto:sage [2008/07/03(木) 21:13:51 ] >>367 お返事遅くなって申し訳ありません 違う方法ですが無事解決できました。ありがとうございました。
382 名前:372 [2008/07/03(木) 22:55:12 ] >>377 ありがとうございます。 これを参考に自分なりにアレンジして作ってみたいと思います。
383 名前:デフォルトの名無しさん [2008/07/04(金) 10:54:17 ] htmlのフォームのボタンを押す動作などをJavaで実現したいのですが、 何かそういったことのためのクラス・メソッドは無いでしょうか? HttpURLConnectionでUserAgent入れてソース落とすのはできるのですが、 そこから先のFormの処理がわかりません・・・。 よろしくお願いします。
384 名前:デフォルトの名無しさん mailto:sage [2008/07/04(金) 11:02:20 ] フォームについて少し勉強するといいよ
385 名前:デフォルトの名無しさん [2008/07/04(金) 12:46:16 ] >>383 全然言葉が足りないが、ダウンロードした HTML に含まれる form を Java で実行しようとしているのか? 宿題なら >>1 を参照してちょ。 んで、思っているのと違うかも知れんが、 java.sun.com/javase/ja/6/docs/ja/api/javax/swing/JEditorPane.html
386 名前:255 mailto:sage [2008/07/04(金) 22:35:57 ] 座標A(X1,Y1)〜座標B(X2,Y2)までの直線Eと 座標B(X3,Y3)〜座標C(X4,Y4)までの直線Fが 交差しているかどうか判定したいです。 どういうコードになりますか?
387 名前:デフォルトの名無しさん mailto:sage [2008/07/04(金) 23:06:25 ] >>386 >>1 テンプレを
388 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 04:54:06 ] >>386 質問だけならこっち行けばいい 【初心者】Java質問・相談スレッド116【歓迎】 pc11.2ch.net/test/read.cgi/tech/1213347130/
389 名前:デフォルトの名無しさん [2008/07/05(土) 23:09:27 ] 【 課題 】配列を用いて点数57,78,91,61,42,77点の合計点と平均点、60点以上の人数と 平均点以下の人数を求めるプログラムを作成せよ。 【 形態 】1. Javaアプリケーション 【 期限 】7/9 【 補足 】学校で配列の所を勉強した時に課題としてでました。丸投げですが宜しくお願いします。
390 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 23:30:39 ] >>389 public class Test{ public static void main(String[] args){ int[] score = {57,78,91,61,42,77}; int sum, avr, u60, lavr; sum = 0; for(int i = 0; i < score.length; i++){ sum += score[i]; } avr = sum / score.length; u60 = 0; lavr = 0; for(int i = 0; i < score.length; i++){ if(score[i] >= 60) u60++; if(score[i] <= avr) lavr++; } System.out.println("合計点:" + sum); System.out.println("平均点:" + avr); System.out.println("60点以上:" + u60); System.out.println("平均以下:" + lavr); } }
391 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 13:14:18 ] 【 課題 】 四桁の数字をコンソール上でキーボードから入力し、それを出力せよ。 同時に、その数字が素数であるかどうかを判定し、その判定結果を出力せよ。 さらに、その数字より小さい自然数で最大の素数を求め、出力するようにせよ。 上記の内容を実行するプログラムをJAVAで作成せよ。 ただし、以下のポイントを考慮すること。 ポイント:素数でない場合は、判定結果と合わせて、その最大の約数(1とその数自身を除く)も出力する。 【 形態 】1. Javaアプリケーション(main()で開始) 【 期限 】7/8 【 補足 】丸投げです。よろしくお願いします。
392 名前:389 [2008/07/06(日) 14:37:34 ] >>390 すぐに回答して頂きありがとうございました。 ホント助かりましたm(__)m
393 名前:デフォルトの名無しさん [2008/07/06(日) 15:21:59 ] >>391 public class ThePrime { public static void main(String[] args) throws IOException { System.out.println("4桁の整数を入力:"); Scanner sc = new Scanner(System.in); int value = sc.nextInt(); if(isPrime(value)) { System.out.println(value+"は素数"); } else { System.out.println(value+"は素数ではない"); System.out.println("最大の約数:"+getMaxDivisor(value)); } for(int lastPrime=value-1; lastPrime>=3; lastPrime--) { if(isPrime(lastPrime)) { System.out.println(value+"より小さい素数:"+lastPrime); break; }}} private static boolean isPrime(int value) { if((value%2) == 0) return false; for(int i=3; i<value/2; i+=2) if((value%i) == 0) return false; return true; } private static int getMaxDivisor(int value) { if((value%2) == 0) return value / 2; int divisor = value; for(int i=3; i<value; i+=2) if((value%i) == 0) divisor = i; return divisor; }} //エラー無視 & すまん、素数の求め方もあってるか分からんwwwww
394 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 15:37:44 ] エラトステネスのふるい涙目ww まぁ4桁ぐらいなら余裕かw
395 名前:デフォルトの名無しさん [2008/07/06(日) 15:59:55 ] 【 課題 】GUI設計に基づき、簡易電卓を設計せよ。ただし以下の条件を満たすように。 @0から9のボタン入力式でテキストフィールドに出力する A四則演算は+−×÷のボタン、小数計算は . のボタン、 結果は=のボタンで行うようにする。 B数字のクリアはCで行うように。 【 形態 】1. Javaアプリケーション(main()で開始) 【 GUI 】2.Swing 【 期限 】7/9 【 補足 】このプログラムはNetBeansIDE6.1でGUI設計してからプログラム を書いていくという手順でやっています。 あと0から9のボタンや+−×÷のボタンが押された時の ActionPerformedはそれぞれ個別にで定義するのではなく まとめて定義したいんですが、上手くいかないんです。 そこら辺の定義の仕方も詳しくして頂けるとありがたいです。
396 名前:デフォルトの名無しさん [2008/07/06(日) 16:37:58 ] >>395 NetBeans 使ってないので操作方法だったら分からんが、作りかけでもあるなら出したほうがいい。 >ActionPerformedはそれぞれ個別にで定義するのではなくまとめて定義したい というのが ActionListener をボタン毎に別のインスタンスにするのでは無く 一つのインスタンスでっていうことなら、各ボタンの AddActionListener に 同じ ActionListener インスタンスを渡すだけだ。 でその ActionPerformed 内で ActionEvent#getSource なり getCommand なりで どのボタンのイベントかを判別して処理分け。
397 名前:デフォルトの名無しさん [2008/07/06(日) 17:09:54 ] >>396 返信ありがとうございます。 package dentaku; import java.awt.event.*; import javax.swing.*; public class dentakuFrame extends javax.swing.JFrame { public dentakuFrame() { initComponents(); } ------------------------------------------------------------------------------------------ ここにボタンの位置などの設定がデフォルトで入っている。 ------------------------------------------------------------------------------------------ public void appendResult(String c) { result.setText(result.getText() + c); } public class NumberButton extends JButton implements ActionListener { public NumberButton(String key) { super(key); //JButtonクラスのコンストラクタを呼び出す this.addActionListener(this); //このボタンにアクションイベントのリスナを設定 }
398 名前:デフォルトの名無しさん [2008/07/06(日) 17:11:58 ] public void actionPerformed(ActionEvent evt) { String keyNumber = this.getText(); //ボタンの名前を取り出す appendResult(keyNumber); //ボタンの名前をテキストフィールドにつなげる } } public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new dentakuFrame().setVisible(true); } }); } private javax.swing.JButton Button0; private javax.swing.JButton Button1; private javax.swing.JButton Button2; private javax.swing.JButton Button3; private javax.swing.JButton Button4; private javax.swing.JButton Button5; private javax.swing.JButton Button6; private javax.swing.JButton Button7; private javax.swing.JButton Button8; private javax.swing.JButton Button9; private javax.swing.JButton divButton; private javax.swing.JButton minusButton; private javax.swing.JButton mulButton; private javax.swing.JButton plusButton; private javax.swing.JButton pointButton; private javax.swing.JButton resetButton; private javax.swing.JTextField result; private javax.swing.JButton resultButton; } これが現在の状況です。Actionに反応して値を受け渡したり、 演算子に応じる設定がどうしたらよいのかがわかりません。 よろしくお願いします。
399 名前:デフォルトの名無しさん [2008/07/06(日) 17:23:16 ] 補足 0から9のボタンはButton0からButton9に 小数点はpointButtonに 四則演算はplusButton,minusButton,mulButton,divButtonに クリアはresetButton、=はresultButtonに 数値表示テキストはresultに設定しています。
400 名前:デフォルトの名無しさん [2008/07/06(日) 17:25:15 ] >>397-399 >>1 省略しないで全部ろだ2等にアップ
401 名前:デフォルトの名無しさん [2008/07/06(日) 17:47:59 ] ろだ2の336.javaにupしました。お願いします。
402 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 18:15:34 ] NumberButton使ってないね・・
403 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 19:17:59 ] NumberButtonと言うことは、数字以外のActionPerformedはまとめなくて良いのだろうか、 それとも、すべてのActionPerformedを一つにしたいのだろうか。 そもそも、ActionPerformedをまとめると言うのは出された課題ではないようだけど・・・
404 名前:デフォルトの名無しさん [2008/07/06(日) 19:36:10 ] >>401 rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/337.java 全部一個のリスナ(dentakuFrame)にしてみた。 initComponents も弄ると危なそうなので弄らない方向で。 ときどき例外出ることがあるのはご愛嬌(!)
405 名前:デフォルトの名無しさん [2008/07/06(日) 21:22:14 ] >>404 回答ありがとうございます。複雑なプログラムを提示してしま って申し訳ないです。実際に動かしてみてまた何かあったら 質問します。本当にありがとうございました。
406 名前:デフォルトの名無しさん [2008/07/06(日) 23:07:46 ] たびたびで恐縮なんですが、>>404 のプログラム中で actionPerformedの定義の部分が理解できないんですが、 解説して頂けないでしょうか。プログラムの意味を 理解しようとしたんですけど初めてみるメソッドなどが多く て困っています。 特にpushとpop、Stack、peek()、getPriorityなどの意味と このプログラムにおける使用の仕方などを詳しく解説して 頂けるとありがたいです。 あとBigDecimalで何を行っているかなどもできればお願いします。
407 名前:404 [2008/07/07(月) 01:15:27 ] >>406 StackはスタックというLIFO構造で、pushで入れたモノがpopで取り出せる。 peekは取り出さすことなく最後に入れたモノを得る。 Operator#getPropertyは、掛け算割り算を足し算引き算より優先して実行するために入れてある。 1+2*3と入力しようとしたとき、1+2*と入力した場合、最後の*を押した時に1+2を実行「しない」。 1+2+と入力した場合は最後の+を押した時に1+2を「実行し」3を表示する。 BigDecimalは大きな/小さな数値を表現する場合に限界や誤差などを「あまり」気にせずに使うためのクラス。 Javaのドキュメントと「Java BigDecimal」で検索などしてみて。 ちなみにときどき例外が…というのはこのBigDecimalのdivideらしぃ^^;
408 名前:404 [2008/07/07(月) 01:21:21 ] よく見たらStack#pushをStack#addにしちゃってるとこばかりだな。 一応Stack#addはpushと同じだから動いてるみたいだが。
409 名前:404 [2008/07/07(月) 04:05:47 ] >>406 divideの例外回避とかStack#add→pushとか変数名変えたりとか動作中のスタックイメージコメントなども入れてみた。 rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/338.java
410 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 06:24:06 ] なんか某アスキーの逆ポーランドの解説を思い出した。
411 名前:デフォルトの名無しさん [2008/07/07(月) 23:17:27 ] >409 例外回避から詳しい説明まで感謝の限りです。実際に動かしてみて 動作も正常に行われました。説明を読んでpopやpush、getPriority などの使い方、プログラムの動作もよくわかりました。今度使って みようと思います。 最後に0で割った時のエラーメッセージを出力しようと try-catch構文でArithmeticExceptionは回避させたんですけど、 java.util.EmptyStackExceptionのほうが割り算のoperatorに try-catchで組み込んでもうまくいかないのですが、どうすれば よいのでしょうか。たびたび質問ですみませんがお願いします。
412 名前:409 [2008/07/08(火) 00:09:02 ] >>411 まず、状況を説明するならその元となるモノ(409が変更した結果のソース)をアプしたり どう「うまくいかない」のか、想像していたことと実際起きたことを明記しないと分からん。 というわけで想像だが、 values.push(a.divide(b,5,BigDecimal.ROUND_HALF_EVEN)); を丸ごと try{ }catch(ArithmeticException e) に入れてしまうと、 values への push がされず、以降の計算を進めるための values が 足りなくなってしまうだろな。 0割が発生した場合は式全体を消して初期状態に戻してしまうのが普通かもしれない。 divideOperator#operateではなく、式全体を計算してるactionPerformedで処理する。 rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/339.java
413 名前:409 [2008/07/08(火) 00:17:22 ] >409が変更した結果のソース → 411が変更した〜 スマン。 謝りついでも恐縮だが、長々サシ状態にしてしまってご免>スレ利用者各位
414 名前:デフォルトの名無しさん [2008/07/08(火) 00:40:39 ] >>412 upの件はすみません。 でも無事解決しました。設定する場所が違っていたんで すね。今回の質問で得るものが多かったです。これを活かして 精進しようと思います。>>409 さん、本当にありがとうございました。
415 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 15:59:10 ] 【 課題 】java3Dを用いてx,y,zの三次元のパラメータを持つ20個程度のデータを三次元上にプロットし プロットされたデータをマウスクリックするとプロットの色が変化するようにしなさい 【 形態 】2. Applet/ 【 GUI 】4. 制限なし/ 【 期限 】7月15日 【 補足 】java3Dを今回初めて触ってみてまだサンプルプログラムを使って箱が回転できる程度です 座標やマウスリスナーの座標指定の仕方について現在調べていこうと考えています アドバイス宜しくお願い致します
416 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 21:58:39 ] 【 課題 】ABC0703_111_Billiards.javaのpaint methodの繰り返し部分を for文を用いて書き換えよ。 ただし、繰り返しは300回行われるようにせよ。 【 形態 】1. Javaアプリケーション(main()で開始 【 GUI 】不明 【 Ver 】java version "1.6.0" 【 期限 】8月まで 【 補足 】ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/340.java ↑がABC0703_111_Billiards.javaの中身です。 丸投げで申し訳ありませんが、よろしくお願いします。
417 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 23:02:53 ] >>416 すでにfor文になってるじゃん・・・? paintメソッドの(1)〜(4)にある for(int n=0; n<100; n++)を for(int n=0; n<300; n++) にすればいいだけかと。
418 名前:デフォルトの名無しさん [2008/07/08(火) 23:32:29 ] 【 課題 】drawOval(50,50,300,300)の円と、その円が内接する正方形つまり drawRect(50,50,300,300)を描き、チェックボックスによりその円と 正方形を切り替えて表示できるようにせよ。 【 形態 】2. Applet 【 GUI 】2. Swing 【 期限 】7/10 【 補足 】丸投げですが、よろしくお願いします。
419 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 23:40:30 ] >>415 ネット上で拾ったサンプルを切り貼りしてみた。 当方も本日初めてjava3Dを触ったので、参考までにて。 ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/341.java
420 名前:デフォルトの名無しさん [2008/07/09(水) 02:04:23 ] >>417 その(1)〜(4)が同じっぽいから、つまり二重ループにしろってことじゃ? 繰り返し300回ってのがどっちのことか分からないが。
421 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 02:08:25 ] >>418 ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/342.java