1 名前:JavaScriptは板違い、Web制作板をご利用ください [2007/12/02(日) 06:14:54 ] 【質問者へ】 回答者の便宜のため、以下の注意事項を遵守してください。 ・質問は【課題提示用テンプレ】を利用してください。 ・問題文は、出題されたまま全文を書いてください。 ・数学問題は「○×法でせよ」だけでなく、その数式、前提条件も説明してください。 ・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/1191108260/
751 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 06:17:05 ] >【 Ver 】java SDK*最新* v *1.4.2_17* フイタw いまさら1.4.2習っても時代遅れも良いとこなんだけど現実これなんだろうね。
752 名前:デフォルトの名無しさん [2008/04/28(月) 13:13:52 ] 【 課題 】class Node{ int key; Node next;} class LinkedListByObject{ static Node head, z, t; static void listInitialize(){ head = new Node(); z = new Node(); head.next = z; z.next = z;} static void deleteNext(Node t){ //★課題1-1} static Node insertAfter(int v, Node t){ Node x; x = new Node(); x.key = v; x.next = t.next; t.next = x; return x;}
753 名前:デフォルトの名無しさん [2008/04/28(月) 13:14:26 ] (続きです) static void showList(){ for(Node i = head.next; i != z; i = i.next) System.out.print("["+i.key+"]-->"); System.out.println();} public static void main(String args[]){ listInitialize(); showList(); insertAfter(1,head); showList(); insertAfter(2,head); showList(); insertAfter(3,head); showList(); insertAfter(4,head); showList();}}} プログラム中の「//★課題1-1」の箇所を書き換えて、メソッド deleteNextを作成せよ。
754 名前:デフォルトの名無しさん [2008/04/28(月) 13:15:06 ] 【 形態 】1. Javaアプリケーション(main()で開始 【 期限 】明後日 【 Ver 】1.4.1 【 補足 】是非この回答を教えて下さい。
755 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 13:18:25 ] 【 課題 】3 のべき乗 3k を k=1 から k=40 の範囲ですべて表示するプログラムを書きなさい。 プログラム名は Power とする。べきごとに行を分けて出力すること。 整数型 int を用いた計算結果と浮動小数点型 double を用いた計算結果を対照させて表示するようにすること。 また、 int 型の場合何乗でオーバフローが発生するか、 double 型の場合何乗で誤差が発生するかを確かめなさい。 (3のべき乗の値は各桁の和が3の倍数となるはずである (例: 33 = 27 → 2 + 7 = 9 → 9 は 3 の倍数) 。 そうならない場合、誤差が生じていると判別できる) 【 形態 】1. Javaアプリケーション(main()で開始) 【 GUI 】1. AWTのみ 【 期限 】本日中 【Ver 】1.5.0_11 【 補足 】丸投げです 期限が短いですが、宜しければどうぞお願いしたします。
756 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 16:19:02 ] >>752 以下の自己暗示を掛けた上で、 ・クラス変数head,zは、定数である(書き換えられることは絶対無い) ・クラス変数tは、不要である ・insertAfter(...,z)は、無効である /** * 引数tで指定されたNodeの次のNodeを削除する。 * ただし、削除対象Nodeがzであった場合は何もしない。 * @param t 削除対象Nodeの直前にあるNode */ static void deleteNext(Node t){ Node target = head; while(target != z){ if(target == t){ target.next = target.next.next; break;} target = target.next;}}
757 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 17:40:14 ] >>755 public class Power { public static void main(String[] args) { boolean isCorrectInteger = true; boolean isCorrectDouble = true; for(int i = 1; i <= 40; i++){ int resultOfInt = 1; double resultOfDouble = 1; for(int j = 0; j < i; j++){ resultOfDouble *= 3; resultOfInt *= 3; } System.out.println(String.format("k=%1$2d, int=%2$11d, double=%3$20.0f",i, resultOfInt, resultOfDouble)); if(checkError(String.format("%1$1d", Math.abs(resultOfInt))) && isCorrectInteger){ System.out.println("Overflow"); isCorrectInteger = false; } if(checkError(String.format("%1$1.0f", resultOfDouble)) && isCorrectDouble){ System.out.println("Error"); isCorrectDouble = false; } } } private static boolean checkError(String string) { int val = 0; for(int k = 0; k < string.length(); k++){ val += Integer.parseInt(string.substring(k, k+1)); } return (val % 3) != 0; } }
758 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 17:40:54 ] 実は>>752 が突っ込みどころ満載でdeleteNext()をどう書けば良いか悩んでいた俺w
759 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 22:54:04 ] >>757 さん 回答ありがとうございました! 非常に助かりました。
760 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 01:01:56 ] >>751 うちのシステムなんか1.3だぜ
761 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 13:46:11 ] それJAXPないな。 java xml pack(JAXPの別配布)もうないぞw
762 名前:デフォルトの名無しさん [2008/04/30(水) 01:05:29 ] 【 課題 】 素数を出すプログラムで例えば10を入力したら7,5,3,2みたいに 素数の数字が大きい順にでるようにしなさい。 【 形態 】1. Javaアプリケーション(main()で開始) 【 期限 】4月30日午後 【 Ver 】java version "1.5.0_13" よろしくお願いします。
763 名前:デフォルトの名無しさん [2008/04/30(水) 01:46:51 ] わからねえええええええええええええええ
764 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 02:56:01 ] >>762 702の配列を逆から表示すりゃいんじゃね
765 名前:デフォルトの名無しさん [2008/04/30(水) 09:20:26 ] >>756 回答どうも有難うございました。 お陰で課題が終わりました。
766 名前:デフォルトの名無しさん [2008/04/30(水) 09:22:54 ] 【 課題 】class LinkedListByArray{ static int max = 30; static int[] key = new int[max+2]; static int[] next = new int[max+2]; static int x, head, z; static void listInitialize(){ head = 0; z = 1; x = 2; next[head] = z; next[z] = z;} static void deleteNext(int t){ next[t] = next[next[t]]; } static int insertAfter(int v, int t){ //★課題1-2} static void showList(){ //★課題1-3} public static void main(String args[]){ listInitialize(); showList(); insertAfter(1,head); showList(); insertAfter(2,head); showList(); insertAfter(3,head); showList(); insertAfter(4,head); showList(); deleteNext(next[head]); showList();}}
767 名前:デフォルトの名無しさん [2008/04/30(水) 09:25:50 ] 問題@プログラム中の「//★課題1-2」の箇所を書き換えて、メソッドinsertAfter を作成せよ。 Aプログラム中の「//★課題1-3」の箇所を書き換えて、メソッド showList を 作成せよ。 【 形態 】1. Javaアプリケーション(main()で開始) 【 期限 】5月2日 【 Ver 】1.4.1 【 補足 】>>752 にあった問題の続きです。今度はこんな課題が出されました。分かる人がいましたら是非教えて下さい。
768 名前:デフォルトの名無しさん [2008/04/30(水) 18:46:23 ] 【 課題 】 乱数を用いて0,1,2を発生させる. 0の時には”グー”,1の時には”チョキ”,2の時には”パー”を表示.そして,これを10回繰り返す. 【 形態 】1. Javaアプリケーション(main()で開始) 【 期限 】5月2日 【 Ver 】 java version "1.6.0-oem" Java(TM) SE Runtime Environment (build 1.6.0-oem-b104) Java HotSpot(TM) Client VM (build 1.6.0-oem-b104, mixed mode, sharing) 【 補足 】 public class No0312 { public static void main(String[] args){ double x; int xx, i; x = Math.random(); xx = (int)(x*3); for (i=0; i<10; i++){ if (xx == 0){ System.out.println("グー"); }else if (xx == 1){ System.out.println("チョキ"); }else if (xx == 2){ System.out.println("パー"); }else { } } } } という風に作ったんですが,全部同じ動作になってしまって困っています. しかも,問題に「絶対値」「Math.abs(a)」とだけ書いてあるのですが,意味が分かりません.Javaを初めてまだ2週間ほどしか経ってなく,完全に初心者な質問ですが,全く分からないので,よろしくお願いします.
769 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 19:52:30 ] 課題まとめ人はいなくなったのか。
770 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 22:25:54 ] >>768 乱数の発生は for の下に書きましょう。 ・「Math.random()」 の処理は 0.0〜1.0未満の値(小数点を含む)を返します。 ・「xx = (int)(x*3);」の処理は小数点以下を切り捨てています。 ・「Math.abs(a)」はaの絶対値を返す。 上記のことから 「Math.abs(a)」の処理は使うひつようはないと思います。 つかうのであれば「xx = (int)(x*3);」を「xx = Math.abs(x*3);」 に置き換えるとよいです。
771 名前:デフォルトの名無しさん [2008/05/01(木) 12:02:02 ] >>770 丁寧なアドバイスありがとうございます. アドバイスを参考にプログラムを以下のように書き直してみました. public class No0312 { public static void main(String[] args) { double x, xx; int i; x = Math.random(); for (i=0; i<10; i++) { xx = Math.abs(x*3); if (xx == 0) { System.out.println("グー"); }else if (xx == 1){ System.out.println("チョキ"); }else if (xx == 2){ System.out.println("パー"); }else { } } } } このように作ったら,なぜか実行結果が表示されないようになってしまいました. どこがおかしいんでしょうか?
772 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 12:32:33 ] >>771 Math.random() は0.0以上1.0より小さい正のdoubleを返すので Math.abs(x*3)としてもx*3と同じことをしてるだけで意味ないと思うよ だから小数点は切り捨てられておらず、ちょうど0か1か2になるのはほぼありえない Math.abs(x*3) のとこは (int)(x*3) のままでいいよ
773 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 12:39:16 ] >>771 ごめんなさい。 Math.abs(a)は整数を返すと思ってたけど勘違いしていました(整数=絶対値と思った)。 Math.random()は正の符号の付いた double 値なのでMath.abs(a) を使用する必要はないかもしれません。 プログラムですが、 >>768 のソースで for の下に x = Math.random(); xx = (int)(x*3); を入れてください。
774 名前:デフォルトの名無しさん [2008/05/01(木) 13:19:06 ] >>772 >>773 ご親切にありがとうございました. プログラムを再度書きなおし public class No0312 { public static void main(String[] args) { double x, xx; int i; for (i=0; i<10; i++) { x = Math.random(); xx = (int)(x*3); if (xx == 0) { System.out.println("グー"); }else if (xx == 1){ System.out.println("チョキ"); }else if (xx == 2){ System.out.println("パー"); }else { } } } } にしたところ,無事に実行することができました. ありがとうございます!
775 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 13:41:54 ] LockのsignalとsignalAllのつか訳が分かりません。
776 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 13:47:13 ] >755 つか訳→使い分け
777 名前:デフォルトの名無しさん [2008/05/01(木) 18:43:06 ] >>762 import java.io.*; public class Prime { private static final int DISPLAY_MIN_VALUE = 2; public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); String line; while (!(line = in.readLine()).equals("")) { int max = Integer.parseInt(line); int[] primes = new int[max + 1]; for (int i = 1; i <= max; i++) { primes[i] = i; } for (int i = 2; i <= max; i++) { if (primes[i] >= 1) { for (int j = 2; i * j <= max; j++) { primes[i * j] = 0; } } } StringBuilder sb = new StringBuilder(); for (int i = max; i >= DISPLAY_MIN_VALUE; i--) { if (primes[i] >= DISPLAY_MIN_VALUE) { sb.append(primes[i]).append(","); } } if (sb.length() >= 1) { System.out.println(sb.substring(0, sb.length() - 1)); } } } }
778 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 19:48:55 ] >>775 スレ違いだぞ java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/concurrent/locks/Condition.html
779 名前:デフォルトの名無しさん [2008/05/02(金) 19:42:44 ] 【 課題 】class LinkedListByArray{ static int max = 60; static int[] key = new int[max+3]; static int[] next = new int[max+3]; static int x, head, z; static void listInitialize(){ head = 0; z = 1; x = 2; next[head] = z; next[z] = z;} static void deleteNext(int t){ next[t] = next[next[t]]; } static int insertAfter(int v, int t){ //★問題1} static void showList(){ //★問題2} public static void main(String args[]){ listInitialize(); showList(); insertAfter(1,head); showList(); insertAfter(2,head); showList(); insertAfter(3,head); showList(); insertAfter(4,head); showList(); deleteNext(next[head]); showList();}} プログラム中の「//★問題1」の箇所を書き換えて、メソッドinsertAfterを作成せよ。また、プログラム中の「//★問題2」の箇所を書き換えて、メソッド showList を作成せよ。 【 形態 】1. Javaアプリケーション(main()で開始) 【 期限 】5月6日 【 Ver 】1.4.2 【 補足 】丸投げです。分かる人がいましたら是非教えて下さい。宜しくお願いします。
780 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 13:04:32 ] >>779 問題はこれで全部? メソッドinsertAfterは何をして何を返すメソッドなの? showListメソッドは何を表示する(?)メソッドなの?
781 名前:デフォルトの名無しさん [2008/05/03(土) 20:00:24 ] 【 課題 】while文を使い,iを0〜9まで1ずつ増加させ,表示するプログラムを書きなさい. 【 形態 】1. Javaアプリケーション(main()で開始) 【 期限 】5月4日 【 Ver 】 java version "1.6.0-oem" Java(TM) SE Runtime Environment (build 1.6.0-oem-b104) Java HotSpot(TM) Client VM (build 1.6.0-oem-b104, mixed mode, sharing) 【 補足 】for文を使った場合のプログラムは public class No3111 { public static void main(String args[]) { int i, j; for (i=0; i<=9; i++) { for (j=0; j<i; j++) { System.out.print("i"); } System.out.println(); } } } といった感じになると思うのですが,whileを使った書き換えができなくて困っています. よくわからないので,よろしくお願いします!
782 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 20:11:38 ] >>781 for文で出来るなら、まずfor文で作って晒して。
783 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 20:17:26 ] >>781 ヒント for (i=0; i<=9; i++) { ...; } => i=0; while (i<=9) { ...; i++; }
784 名前:デフォルトの名無しさん [2008/05/04(日) 08:53:25 ] >>780 insertAfterは「引数で与えれた項目を、引数で与えられた節点の直後に挿入する」というメソッドで、 showListは「リストの内容を先頭から順番に全て表示する」というメソッドの事です。 それは分かりますよね?
785 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 09:38:43 ] >>784 分かりますよねじゃねーだろ、そこまでの仕様をちゃんと書けと言ってるんだよw
786 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 13:54:57 ] なんか static 使ってるの、やな感じ。
787 名前:デフォルトの名無しさん [2008/05/04(日) 19:26:56 ] >>752 For文を使った場合は public class No3111 { public static void main(String args[]) { int i, j; for (i=0; i<=9; i++) { for (j=0; j<i; j++) { System.out.print("i"); } System.out.println(); } } } だと思うのですが・・・もしかして間違ってますかね?
788 名前:デフォルトの名無しさん [2008/05/04(日) 19:28:10 ] ↑>>782 の間違いです,すみません.
789 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 20:15:45 ] >>787 なんで2重ループにしてるのかわからんw釣りにしてもレベル低ス
790 名前:デフォルトの名無しさん [2008/05/04(日) 20:21:06 ] >>789 釣りではないです(笑) やはり問題の解釈を間違えていたということですか.だったらもう少し頑張ってみます. ご迷惑をおかけして,すみませんでした.
791 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 01:30:00 ] >>790 > iを0〜9まで1ずつ増加させ,表示する を、iという文字を1行あたり0個から9個まで変化させて出力する問題ととるのなら、それでいい。 まあ、2重ループにしなくてもできるけれどね。 iというのが数値型の変数名でiの値を0から9まで変化させて、 そのiの値を表示する問題であるのなら1重ループでSystem.out.println(i);するだけで十分。 for文をwhile文に修正するのは>>783 のヒントのように、 for(A;B;C)D の形になっているものを A;while(B){D;C;} にすればいい。
792 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 02:20:34 ] >>781 =787 質問。 > 【 課題 】while文を使い,iを0〜9まで1ずつ増加させ,表示するプログラムを書きなさい. の答えは、 0123456789 となってほしいのか、 i ii iii iiii iiiii iiiiii iiiiiii iiiiiiii iiiiiiiii となってほしいのか、どっちだ?
793 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 02:57:28 ] 後者だったらなんかうけるなw
794 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 03:44:52 ] >>793 課題の「i」という文字のコンテキストが読めないからな。 「変数i」とか書いてたら前者なのにな。 後者でも間違いではないとも言えるなw
795 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 09:42:29 ] PENTOMINOをjavaで作成中なのですがなかなかうまくいきません。。。 まだ90度回転は書いてないのですがとりあえずある程度のグラフィック表示と2339×4通りの出力を 実現したいのです; www.dotup.org/uploda/www.dotup.org32301.txt.html パスワード:pentomino まだまだ初心者なのでぐちゃぐちゃですがアドバイスよろしくです><
796 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 11:09:03 ] >>795 >>1
797 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 20:16:28 ] 【 課題 】drawCircleを使わずにdrawLineだけで円を描くプログラムを作成せよ 【 形態 】2. Applet 【 期限 】5/8 【 Ver 】java version "1.6.0_10-beta" お願いします
798 名前:デフォルトの名無しさん [2008/05/05(月) 20:59:10 ] >>797 import java.applet.Applet; import java.awt.Graphics; public class CircleApplet extends Applet { @Override public void paint(Graphics g) { int centerX = 200; // 中心X座標 int centerY = 200; // 中心Y座標 int r = 100; // 半径 int n = 32; // 角の数(大きくするほど円に近くなる) int x0 = centerX; // 線を引く時の始点座標 int y0 = centerY - r; // 最初は中心から0時方向の点 for(int i = 0; i < n; i++){ double rad = 2 * Math.PI / n * (i+1); // 中心から時計回りに360/n度方向の点を求める int x1 = (int)(centerX + r*Math.sin(rad)); int y1 = (int)(centerY - r*Math.cos(rad)); g.drawLine(x0, y0, x1, y1); // 始点から求めた点まで線を引く x0 = x1; // 現在の終点を次の始点にする y0 = y1; } } }
799 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 22:20:18 ] >>798 ありがとうございます
800 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 02:44:09 ] ところでdrawOvalでなくdrawCircleは使おうにも標準APIにそういうメソッドはないな もしかしてupdate10で追加された?
801 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 00:49:41 ] 【 課題 】モンテカルロ法を使って y=sinx の (0,0)から(1,2/π)までの面積を求めよ 【 形態 】Javaアプリケーション(main()で開始) 【 GUI 】制限なし 【 期限 】5/7 【 Ver 】java version "1.5.0_11" 【 補足 】丸投げでごめんなさい
802 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 03:42:49 ] >>801 import java.util.Random; public class Monte { public static void main(String[] args) { Random rand = new Random(); int maxCount = 10000; int inCount = 0; for (int i = 0; i < maxCount; i++) { double x = rand.nextDouble(); double y = rand.nextDouble(); if (y <= Math.sin(x * Math.PI / 2)) { inCount++; } } System.out.println(Math.PI / 2 * inCount / maxCount); } }
803 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 03:58:39 ] >>801 > y=sinx の (0,0)から(1,2/π)までの面積を求めよ ってのはy=sin(x)とy=0に挟まれた面積を求めよってことだよね? sin(1)≠2/πだけれど積分範囲は0から1でいいの? もしかして、(1,2/π)は(π/2,1)のつもりで積分範囲は0からπ/2かもと思って、 コメントアウトしている部分にその場合のコードも入れておいた。 import java.util.Random; public class MonteCarlo { public static void main(String[] args) { Random r = new Random(); int N = 1000000; int n = 0; // 積分範囲が[0,1]の時 解析解=1-cos(1) for (int i = N; i > 0; i--) if (Math.sin(r.nextDouble()) > r.nextDouble()) n++; System.out.println((double)n / N); // モンテカルロ法 System.out.println(1 - Math.cos(1)); // 解析解 // 積分範囲が[0,π/2]の時 解析解=1 /*double p2 = Math.PI / 2; n = 0; for (int i = N; i > 0; i--) if (Math.sin(r.nextDouble() * p2) > r.nextDouble()) n++; System.out.println((double)n / N * p2);*/ } }
804 名前:803 mailto:sage [2008/05/07(水) 04:01:30 ] うお、リロードしていなかったorz やっぱり[0,π/2]って考えるよね
805 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 04:19:26 ] >>802 助かりました ありがとう
806 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 04:20:32 ] >>803 リロードしてなかった; ありがとうございます
807 名前:デフォルトの名無しさん [2008/05/07(水) 21:41:24 ] 下着にか
808 名前:デフォルトの名無しさん [2008/05/07(水) 22:56:09 ] コレクションフレームワークを使って、以下の要件を満たすクラスEmployeeDataAccessor.javaを作ってください。 標準入力から社員No、社員名のデータを5名分受け取って社員No、社員名のセットでデータを格納する 標準入力から社員Noを入力すると該当する社員名が表示される 「A」または「a」と入力すると全社員が昇順にソートされて表示される 「Q」または「q」と入力する終了する 方法1:ArrayListクラス、HashMapクラス、StringTokenizerクラス、Collectionsクラスのsortメソッドを使う 方法2:TreeMapクラスを使う (制限時間: 30分)
809 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 23:01:53 ] >>808 >>1
810 名前:デフォルトの名無しさん [2008/05/07(水) 23:12:59 ] 【 課題 】コレクションフレームワークを使って、以下の要件を満たすクラスEmployeeDataAccessor.javaを作ってください。 標準入力から社員No、社員名のデータを5名分受け取って社員No、社員名のセットでデータを格納する 標準入力から社員Noを入力すると該当する社員名が表示される 「A」または「a」と入力すると全社員が昇順にソートされて表示される 「Q」または「q」と入力する終了する 方法1:ArrayListクラス、HashMapクラス、StringTokenizerクラス、Collectionsクラスのsortメソッドを使う 方法2:TreeMapクラスを使う 【 形態 】Javaアプリケーション(main()で開始) 【 GUI 】制限なし 【 期限 】5/8 【 Ver 】java version "1.5.0_11" 【 補足 】丸投げでごめんなさい
811 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 01:21:03 ] >>810 ソートのキーは何?
812 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 04:01:08 ] >>810 ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=30277
813 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 08:45:24 ] 【 課題 】 フレーム上にDrawLineメソッドだけを使ってSin関数のグラフを描画せよ。 併せてフレームの中心部に原点をとるx軸、y軸も描画すること。 【 形態 】1. Javaアプリケーション(main()で開始) 【 GUI 】1. AWTのみ 【 期限 】5月9日 【 Ver 】java version"1.5.0_11" 【 補足 】丸投げですですがよろしくお願いします。
814 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 12:38:58 ] >>813 sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=30278
815 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 19:26:44 ] 【 課題 】配列を用い、可変個数のint型のデータの集合を扱えるようなメソッド群を作成しなさい。 具体的には、int型の配列に対して値の追加、削除、検索、要素の表示などさまざまな操作を行うメソッドを作成しなさい。具体的には次のとおり。 メソッド init: 配列 a と int 型の値 b を引数にとり、配列 a のすべての要素を b の値で初期化するメソッド メソッド add: 配列 a と int 型の値 b を引数に取り、配列 a のデータが入っている要素の末尾に b を追加するメソッド メソッド remove: 配列 a と int 型の値 b を引数に取り、配列 a の要素から b を探し削除するメソッド メソッド printIndexOf: 配列 a と int 型の値 b を引数に取り、値 b が配列の何番目に入っているか表示するメソッド メソッド print: 配列 a を引数に取り、配列 a に格納されているデータすべてを表示するメソッド さらに、メソッド main に、これらのメソッドを使い集合にいろいろな操作を行うプログラムを書きなさい。 新たな集合を作り、1, 9, 6 を追加すると、1 9 6 次に 10 を追加すると、1 9 6 10 また、6 を検索すると 2 番目であることがわかるようにする。 そして、集合から 6 を削除すると1 9 10となる。 可変個のデータを扱うことから、配列の何番目まで意味のあるデータが入っているかを管理する必要がある。 それを行う一つの方法として、最初に配列全体を「空」を表わす特別な値 (たとえば -1) を決めて初期化し、先頭から順番に値を入れていくことが考えられる。 値を順に取り出すときには -1 が見つかったら、取り出しを終了すれば良い。 次に、値が削除されたとき、削除済のデータを配列内で管理する必要がある。一つの方法として次のような処理が考えられる。 削除済みを示す特別な値 (たとえば -2) を決めて、値が削除されたときに配列要素にその値を書き込むようにする。 データを取り出すときは -2 があったらその要素を読み飛ばすようにする。 プログラム名は CollectionByArray とする。 【 形態 】Javaアプリケーション(main()で開始) 【 GUI 】1. AWTのみ 【 期限 】5/9(金)の17時まで 【Ver 】1.5.0_11 【 補足 】丸投げとなりますが、どうぞよろしくお願いします。
816 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 19:58:11 ] 【 課題 】rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/235.txt 【 形態 】1. Javaアプリケーション(main()で開始) 【 GUI 】制限なし 【 期限 】5/8(木)の23時まで 【Ver 】1.5.0_11 【 補足 】丸投げとなりますが、どうかよろしくお願いします。
817 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 20:19:17 ] 【 課題 】rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/236.txt 【 形態 】1. Javaアプリケーション(main()で開始) 【 GUI 】制限なし 【 期限 】5/8(木)の23時まで 【Ver 】1.5.0_11 【 補足 】前の書き込みの>>816 です。まだ問題があったのを書き込み忘れていました・・・どうかよろしくお願い致します。
818 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 20:47:17 ] >>816 rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/237.java
819 名前:818 mailto:sage [2008/05/08(木) 20:52:14 ] >>816 rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/237.java はフライングです。
820 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 21:42:49 ] >>814 ありがとうございます!
821 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 22:20:32 ] >>817 ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/238.java 問題1のみです。
822 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 23:32:14 ] >>817 sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=30281 問題2のみです。
823 名前:816,817 mailto:sage [2008/05/09(金) 00:40:00 ] >>818 ,>>819 ,>>821 ありがとうございます!助かりました。
824 名前:デフォルトの名無しさん [2008/05/09(金) 15:13:44 ] 【 課題 】鳥の画像を表示させるようにプログラムを改造しなさい。 改造前のプログラム→sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=30284 【 形態 】Javaアプリケーション(main()で開始 【 GUI 】AWT 【 期限 】5月12日、16:30分 【 Ver 】1.5.0_11(多分) 【 補足 】鳥の画像がうまくアップできないので、プログラムのどの部分に 鳥の画像を表示させるプログラムを入れればいいのかを教えていただければ有難いです。 よろしくお願いします。 何かあれば、ご指摘下さい。
825 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 16:25:23 ] >>824 GUIはAWTって書いているけど、ソースを見る限りswingだよね? どこに画像を入れるかはっきりしないけど、 画像用に別途JLabelをCheckBoxTest8に配置してやればいいと思う。 JLabelはコンストラクタやsetIconメソッドでIconを指定して画像を表示できるので、 IconのサブクラスのImageIconで画像ファイルから直にインスタンスを作っておいて、 JLabel用のIconとして使用できる。 画像の変更のタイミングはメッセージの変更と同じところにsetIconを記述すればいいと思う。
826 名前:825 mailto:sage [2008/05/09(金) 16:52:29 ] 正確にはIconはインタフェースなのでImageIconはIconを実装したクラス
827 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 00:41:42 ] 【課題提示用テンプレ】 【 課題 】1、2、3,4をそれぞれ1つずつ使い28になる式を全て抽出せよ。 条件・()は使えない。1と3で31という使い方も可能。四則記号はおなじものを何度使ってもよい。 【 形態 】1. Javaアプリケーション(main()で開始) 【 GUI 】1. AWTのみ/2. Swing/3. SWT/4. 制限なし/ 5. その他(明記すること) 《GUIの課題の場合必ず選択》 制限なし 【 期限 】5月11日23時59分 【 Ver 】java version "1.5.0_11" 【 補足 】丸投げになりますが、何卒よろしくお願いいたします。
828 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 01:33:30 ] >>827 【GUI】制限なしです。 記入ミスすいません。
829 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 03:07:50 ] めんどくさそーな問題だな
830 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 07:40:30 ] 必ず1つだけ使用しなければいけないから結構範囲せまいかも
831 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 17:14:00 ] 数と演算子の組み合わせパターンを全部生成して試していく方法を採ったとしても、 4桁の整数みたいな絶対正解になりえない場合も枝刈りせずに含めて、 1234から作られる全ての並びが 4! = 24通りで、 それぞれの並びに対して、 全部が一つの整数になる場合が1通り、 二つの整数になる組み合わせが3通りで、それぞれ整数間に演算子が4通り入り、 三つの整数になる組み合わせが3通りで、それぞれ整数間に演算子が4^2通り入り、 四つの整数になる組み合わせが1通りで、整数間に演算子が4^3通り入るから、 全部で 4! * (1 + 4 * 3 + 4^2 * 3 + 4^3) = 3000通りかな。
832 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 00:08:14 ] >>827 ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/240.java 合ってるかな?ドキドキ
833 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 02:59:06 ] >>832 作られた式を全部出力(答は抜き)させて、 sort | uniq をかけてもかけなくても3000行だったから、 >>831 によれば少なくとも全部の式を作っていると思う。 計算が正しく行われているかについては見ていないが。
834 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 05:24:18 ] >>831 整数間の演算子の数が5個(四則演算+両端の整数を連結する演算)、 その演算子のいずれかが4個の整数の間(3箇所)に入るので、 4! * 5 * 5 * 5 = 3000通り、と自分は導出してみた。
835 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 05:47:17 ] >>832 例えば、1+23+4=28 とかのいくつかの抜けがあるような。 確かめると、1+23+4=24.0とかになってる感じ。 ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=30286 これは検算用に別実装で式の生成と値の算出をしたものだけど、 答が28個出てきた(>>832 は22個)。 ただし、このソースはJDK6用なので、回答にはならない。 要求バージョンが6だったらネタ回答用に出そうと思ったけど残念w
836 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 06:59:09 ] >>827 俺も挑戦。 ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=30287 答は28個でてきた。
837 名前:832 mailto:sage [2008/05/11(日) 10:45:59 ] ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/241.java 直した。今度は28個だから良さげ
838 名前:832 mailto:sage [2008/05/11(日) 11:20:43 ] ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/242.java う〜ん
839 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 16:41:40 ] 【 課題 】実数値(double)を格納するスタックを実装せよ。 x072.s10.x-beat.com/up/src/up0607.txt.html 【 形態 】1. Javaアプリケーション(main()で開始 【 期限 】5/11 22:00 【 Ver 】1.6.0_10 【 用語 】数学用語、専門用語の意味、説明を書きます。 【 補足 】丸投げです。空白を埋めればいいんだと思います。
840 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 16:49:00 ] >>839 すいません、コメントの部分が日本語だと文字化けしてしまうみたい。 aaabbbccc.s6.x-beat.com/upload/src/up17608.jpg SSで許してください。
841 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 17:14:54 ] >>1 を読めばアップローダのURLまで書かれているというのに
842 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 17:21:42 ] >>841 容量小さすぎてupできなかったorz
843 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 18:14:05 ] >>839 自己解決しました。
844 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 18:44:58 ] 自己解決して当然だろ。
845 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 18:52:05 ] 自己解決が正しいあり方なのは当然だけど、ひとたび依頼があった以上、 自己解決したのならその報告がないと無駄手間取らされる人間が出る。 依頼する前にもうひとがんばりして解決するのが一番いいのだが。
846 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 19:29:45 ] >>831-838 どうもありがとうございました。 本当に助かりました。教えていただいた コードを見てどういう動きをしているか位は 理解します。本当にどうもありがとうございました。
847 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 20:26:23 ] String型で 例えば "なむあみだぶつ、なむあみだぶつ、なむあみだぶつ"ってあったとして "あみ" が合計何文字入ってるか計算したいんだけどこの場合どうすれば? 何の関数使うのか、はたまた関数すら使わないのか意味不明です お知恵を貸して下さい。 この場合答えは3ってしたいです
848 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 21:11:39 ] >>847 indexOf(String str, int fromIndex)メソッドでインデックスの位置をずらしながら、出現回数をカウントしながら、ループさせてゴニョゴニョ
849 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 23:23:03 ] >>847 今度から質問は質問スレへ 新しいのがたっていないからって違うスレに投げるのはよくない 単発質問スレを立てるわけじゃないんだから 無ければテンプレを引き継いで堂々と質問スレを立てればいい
850 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 10:51:06 ] 【 課題 】ペントミノの作成。5つのピースを用いて全通りを自動検出・表示する。また全部で何通りあるか。 【 形態 】 Applet 【 GUI 】AWTのみ 【 期限 】5/13 【 Ver 】1.6.0_02 【 用語 】数学用語、専門用語の意味、説明を書きます。 【 補足 】自分なりにプログラムを作ってみました rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/243.java 2339通りあることは分かっているのですがカウントされず ピースのグラフィックも表示できません。
851 名前:850 [2008/05/12(月) 10:55:06 ] 【 課題 】 class SelectionSort{ //比較回数を覚えておくための変数 static int compare = 0;//コピー回数を覚えておくための変数 static int copy = 0; static void swap(int a[], int i, int j){//1-1:配列の要素を入れ替えるメソッド //動作:配列aの要素a[i]とa[j]の値を入れ替える //例: a[0]=10, a[1]=30, a[2]=20の場合 // swap(a,1,0)を実行するとa[0]=30, a[1]=10, a[2]=20となる。 // swap(a,1,2)を実行するとa[0]=10, a[1]=20, a[2]=30となる。 //★以降を適切に埋めよ(課題1-1) }static int findMin(int a[], int N, int from){ //1-2:最小値のある場所を見つけるメソッド //動作:N個の要素を持つ配列aに対し、a[from]からa[N-1]の間にある //最小値を見つけ、最小値のある場所の添え字を返す //最小値を見つけるまでに行った比較回数を変数compareに加算 //例: a[0]=10, a[1]=30, a[2]=20の場合 // findMin(a,3,0)は0を返す(a[0]からa[2]の範囲ではa[0]が最小値だから) // compareの値は2増える。 // findMin(a,3,1)は2を返す(a[1]からa[2]の範囲ではa[2]が最小値だから) // compareの値は1増える。 //★以降を適切に埋めよ(課題1-2) int min = 0; return min;}
852 名前:850 [2008/05/12(月) 10:57:42 ] static void showArray(int a[], int N){ //1-3:配列の内容を表示するメソッド //動作:N個の要素を持つ配列aの要素を全て画面に表示する //例: a[0]=10, a[1]=30, a[2]=20の場合 // showArray(a,3)を実行すると画面に // 10 30 20 // と表示される。 //★以降を適切に埋めよ(課題1-3)} static void initArray(int a[], int N){ //1-4:配列にランダムな値を代入するメソッド //動作:N個の要素を持つ配列aに対し、1〜Nまでの範囲の数をランダムに入れる //ただし、a[0]には常に0を入れること。 //ヒント:次のようにして乱数を使えば1〜Nまでの範囲の数をランダムに1つ作れる //int n; //n = (int)(java.lang.Math.random()*(N-1)) + 1; // //配列に入れる値に重複が無ければ望ましい //★以降を適切に埋めよ(課題1-4)} static void selection(int a[], int N){ int i; //1-5:選択ソートを実行するメソッド //動作:選択ソートの過程を表示しながら、N個の要素を持つ配列aをソートする もう少し詳しく書くとこうなる。 /*選択ソートの手順: iの値を1からN-1まで増やしながら次のことを行う。 1.findMinメソッドを使って、a[i]からa[N-1]の間にある最小値の場所minを探す 2.swapメソッドを使って、a[i]とa[min]の値を入れ替える 3.showArrayメソッドを使ってソート途中の配列aの内容を表示する */ //★以降を適切に埋めよ(課題1-5)}
853 名前:850 [2008/05/12(月) 11:00:47 ] public static void main(String args[]){ //1-6:上で作ったメソッドを用いて、ソート過程を表示しながら //選択ソートを実行 //手順は次のようになる。 /* 1.要素を(20個もつ)整数型配列aを宣言 2.整数型変数Nに配列aの要素数を保存 3.initArrayメソッドを用いて配列aを初期化 4.showArrayメソッドを用いてソート前の配列aの内容を表示 5.変数compareの値を0に初期化 6.selectionメソッドを用いて配列aを選択ソート 7.showArrayメソッドを用いてソート後の配列aの内容を表示 8.ソートにかかった比較の回数を表示 */ //★以降を適切に埋めよ(課題1-6)}} 1-1:配列の要素を入れ替えるメソッドを完成させよ。 1-2:最小値のある場所を見つけるメソッドを完成させよ。 1-3:配列の内容を表示するメソッドを完成させよ。 1-4:配列にランダムな値を代入して初期化するメソッドを完成させよ。 1-5:選択ソートを実行するメソッドを完成させよ。 1-6:mainメソッドを完成させ、ソート過程を表示しながら選択ソートを実行するようにせよ。
854 名前:850 [2008/05/12(月) 11:02:05 ] 【 形態 】1. Javaアプリケーション(main()で開始 【 期限 】5月15日 【 Ver 】1.4.1 【 用語 】1-1〜1-5はメソッドを作成します。 【 補足 】丸投げです。是非教えて下さい。
855 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 11:45:30 ] ひどい設計だな
856 名前:デフォルトの名無しさん [2008/05/12(月) 13:54:25 ] >>854 問題に沿って作ってないけど、多分これで動くはず。 これをヒントにがんがってみれ rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/244.java
857 名前:850 [2008/05/12(月) 14:33:05 ] >>856 分かりました。頑張って作成してみます。
858 名前:デフォルトの名無しさん [2008/05/13(火) 11:02:10 ] >>824 です。 >>825 ご指摘ありがとうございます。仰る通り、swingでした。 一応、作ってみたんですがどうもイマイチ・・・↓ sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=30290 最初から画像が表示されるのでは無く、チェックを入れると画像が表示されるようにしたいのですが・・・ 締め切りも間違っていて、明日の16時半まででした・・・ どなたかフォローよろしくお願いします・・・
859 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 12:19:23 ] 最初に張り付ける画像をダミーにしといてイベントリスナでチェックボックス変更時に 描画する画像ファイル記憶しといてリスナ内でrepaint()呼んで paintConponent()内でJLabel#setIcon()呼び出すとかじゃだめだっけ? あと label2.setText(new String(sb)); は label2.setText(sb.toString());の方が良い。
860 名前:デフォルトの名無しさん [2008/05/13(火) 13:48:34 ] 【 課題 】20角錐を表示させる 【 形態 】1. Javaアプリケーション(main()で開始) 【 GUI 】1. AWTのみ 【 期限 】明日の16時まで 【 Ver 】"1.6.0_05" 【 用語 】なし 【 補足 】なし。 よろしくお願いします。
861 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 15:58:22 ] >>858 別領域に表示でなくチェックボックスの画像として表示するのね。その場合でもあまり難しく考えず、 > 画像の変更のタイミングはメッセージの変更と同じところにsetIconを記述すればいいと思う。 って書いたように、itemStateChanged内でメッセージを変えるようにIconも変えればいいんじゃないかと思う。 ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=30291 かなり適当だけどこれは最初は画像なしで、itemStateChangedが呼ばれるタイミングでIconを設定したり消したりして、 それに合わせてpackでウインドウサイズも変えるようにしている。 ウインドウサイズがころころ変わるのが嫌だったら、 鳥の画像サイズに合わせて空白(緑色?)のダミー画像をIconに設定しておき、 itemStateChanged内でIconを消す(setIcon(null))ところは、ダミーを再設定するようにすればいいと思う。 それと、>>858 のコードで、 > check1 = new JCheckBox("モリバト", false); > check1. setBackground(Color.green); > check1.addItemListener(this); > JCheckBox check1 = new JCheckBox("モリバト", new ImageIcon("./images/bird1.jpg"), true); ... > p.add(check1); ってしているところがあるけれど、上3行のcheck1はインスタンス変数のcheck1で、 そのあとの新しくnewしているcheck1はローカル変数なので別物になっている。 JPanelにaddして表示いるものはリスナを設定したり背景色を変えたものと異なるので挙動が思ったようにならない。 フィールドとローカルとで同じ名前の別の変数を定義できるので注意。
862 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 16:54:33 ] 【 課題 】 1)プログラムhighArray.javaのHighArrayクラスに配列の中で 一番大きなキーを持った値、あるいは配列が空の場合は-1を返すgetMax()を追加せよ。 キーはすべて正であると仮定する。 2)上のプロジェクト1)を、一番大きなキーを持ったアイテムがこのメソッドで返されると同時に 配列から削除されるように変更せよ。そのメソッドはremoveMax()とする。 3)上の2)のメソッドremoveMax()を使えば、キーの値で配列の中身を整列(sorting)することできる。HighArrayクラスは変更せずに、mainだけを変更して整列プログラムを作れ。逆の順位整列された第2の配列が必要とする。 【 形態 】java 【 GUI 】AWTのみ 【 期限 】今日中 【 Ver 】1.6.0.01 【 補足 】以下がhighArray.javaのソースです sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=27584 上の(1)(2)の問題は過去ログにあったのですが、(3)が解決しないので(3)をお願いします ついでに過去ログの(1)(2)のレスが次です
863 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 16:54:47 ] だからといって、 check1 = new JCheckBox("モリバト", new ImageIcon("./images/bird1.jpg"), true); とかしても、それ以前のcheck1が参照するインスタンスとは違うものになるのでだめだけど。 Iconはチェックするボックス画像の代わりなので、 空白のダミー画像を設定するとボックスが無くて変かもしれない。 その場合は、新しくJLabelをJCheckBoxの横に配置して、 そのJLabelの方に鳥やダミーの画像を設定した方がいいかも。
864 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 16:55:04 ] 1) public long getMax(){ long max = -1; if (nElems == 0) return max; for (int i = 0; i < nElems; i++) if (max < a[i]) max = a[i]; return max; } 2) public long removeMax(){ int index; long max = -1; if (nElems == 0) return max; for (int i = 0; i < nElems; i++){ if (max < a[i]){ max = a[i]; index = i; } } for (int i = index; i < nElems -1; i++){ a[i] = a[i+1]; } nElems--; return max; }
865 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 17:15:12 ] >>862 >プログラムhighArray.javaのHighArrayクラス すまんがどこにも発見できないので答えられんw
866 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 17:50:22 ] >>862 適当に入れても取り出すときには必ず中身の最大のものを取り出せる魔法のバッグを手にしてるんだから 整列させたいアイテムを全部入れて順番に取り出して並べれば大きい順に整列したものになっている もし小さい順に整列させたいなら大きい順に並べたものの順序を逆にするか 取り出したものを配列に入れて並べていくのなら逆順の場合は配列の最大インデックスから入れていけばいい
867 名前:デフォルトの名無しさん [2008/05/13(火) 21:36:45 ] 【 課題 】【配列のコピー(clone)】 配列のコピーを行う際、clone()メソッドを使用することがある。 メソッド Object.clone() は、戻り値としてあるオブジェクトのコピーを作成する。 大きさ3のString[ ]型配列 をローカル変数として異なる名前で3つ作成し、 直接代入した場合と、clone() メソッドでコピーした場合で、比較演算子 == による 比較結果が異なることを確認しなさい。 初期化: 配列1: "あ", "い", "う" 配列2: "か", "き", "く" 配列3: "さ", "し", "す" 実行例: $java Exam05 > 配列1: あ い う > 配列2: か き く > 配列3: さ し す > 1を2に直接代入... > 1を3にクローンコピー... > 配列1: あ い う > 配列2: あ い う > 配列3: あ い う > 1 == 2 ? --> MATCH > 1 == 3 ? --> UNMATCH 【 形態 】1. Javaアプリケーション 【 期限 】今日の0時まで 【 Ver 】"1.6.0_05" 【 用語 】なし 【 補足 】なし。 どうぞ、よろしくお願いします。
868 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 22:57:50 ] >>867 ってclone()メソッドの実装によって等値性の意味変わってくると思うんだが、 そもそも==で比較するのも間違ってないか?
869 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 23:18:41 ] >>860 ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/245.java ソース汚いけど一応完成。 おまけでマウスドラッグによる回転も付けてみた。
870 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 23:24:23 ] >>867 public class Exam05 { public static void main(String[] args) { String[] 配列1 = {"あ", "い", "う"}; String[] 配列2 = {"か", "き", "く"}; String[] 配列3 = {"さ", "し", "す"}; System.out.println("> 配列1: " + java.util.Arrays.toString(配列1).replaceAll("[],\\[]", "")); System.out.println("> 配列2: " + java.util.Arrays.toString(配列2).replaceAll("[],\\[]", "")); System.out.println("> 配列3: " + java.util.Arrays.toString(配列3).replaceAll("[],\\[]", "")); 配列2 = 配列1;System.out.println("> 1を2に直接代入"); 配列3 = 配列1.clone();System.out.println("> 1を3にクローンコピー"); System.out.println("> 配列1: " + java.util.Arrays.toString(配列1).replaceAll("[],\\[]", "")); System.out.println("> 配列2: " + java.util.Arrays.toString(配列2).replaceAll("[],\\[]", "")); System.out.println("> 配列3: " + java.util.Arrays.toString(配列3).replaceAll("[],\\[]", "")); System.out.println("> 1 == 2 ? --> " + (配列1 == 配列2 ? "MATCH" : "UNMATCH")); System.out.println("> 1 == 3 ? --> " + (配列1 == 配列3 ? "MATCH" : "UNMATCH")); } }
871 名前:デフォルトの名無しさん [2008/05/13(火) 23:36:35 ] 【 課題 】sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=30292 【 形態 】1. Javaアプリケーション 【 GUI 】?? 【 期限 】本日中 【 Ver 】わかりません。。。 【 用語 】なし 【 補足 】 丸投げです
872 名前:871 [2008/05/13(火) 23:44:08 ] すいません>>871 の問題文が抜けていました・・・ 問題の一部の画像です rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/246.zip
873 名前:デフォルトの名無しさん [2008/05/13(火) 23:59:57 ] >>870 どうも、ありがとうございました。 【 課題 】【領域再確保(オブジェクト再作成)】 空のクラスHumanを作成し、ランダムにHumanインスタンスの数を変化させる プログラムを作成したい。Math.random() を利用し、得られた0 〜 9 の数を 引数として、SampleクラスのフィールドHuman humans[ ] の数を変化させよ。 ※人数の表示には、humans.lengthを使用すること。 ・Sampleクラスのメソッド /* 領域を確保し直し、再確保後の配列要素数を表示するメソッド */ public void addMember(int nNum) 実行例: $java Sample > 人口は8人になりました。 > 人口は4人になりました。 > 人口は5人になりました。 > 人口は0人になりました。 > 絶滅です。処理を終了します。 【 形態 】1. Javaアプリケーション 【 期限 】今日の1時まで 【 Ver 】"1.6.0_05" 【 用語 】なし 【 補足 】なし。 よろしければ、おねがいします。
874 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 00:19:01 ] >>850 むり
875 名前:デフォルトの名無しさん [2008/05/14(水) 00:34:22 ] 乱数を利用して0〜53の値をランダムで配列に格納するプログラムなんですけど、 永久ループになってしまいます。値は一意です。 どなたか助けてください! public class XXX { public static void main(String[] args) { /* 変数宣言 */ int[] card = new int[53]; int nn, num; boolean frg = false; // 配列との比較用フラグ /* 乱数の発生と格納 */ nn = 0; while (nn != 52) { num = (int)(Math.random() * 54); for (int i = 0; i < nn; i++){ if (num == card[i]) { frg = true; break; } } if (frg == false) { card[nn] = num; nn++; } }
876 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 00:35:03 ] /* 結果の表示 */ String buf; for (int i = 0; i < card.length; i++){ buf = " " + card[i]; buf = buf.substring(buf.length() - 4); System.out.println(buf); if (i % 10 == 0){ System.out.println(); } } } }
877 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 00:57:18 ] 質問スレいこうね
878 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 01:33:30 ] public class XXX { public static void main(String[] args) { int[] card = new int[53]; // 格納 for(int i = 0; i < card.length; i++){ int num; boolean chk; do{ num = (int)(Math.random() * card.length); chk = false; for(int j = 0; j < i; j++){ if(num == card[j]){ chk = true; break; } } } while(chk); card[i] = num; } // 表示 for(int i = 0; i < card.length; i++){ System.out.println("card[" + i + "]=" + card[i]); } } }
879 名前:デフォルトの名無しさん [2008/05/14(水) 04:53:43 ] すみません、別のプロジェクト内のクラスのインスタンスを作ることって可能なんでしょうか? 教科書にスタックの考え方を再現したJAVAプロジェクトと、前置記法のアルゴリズムを再現したJAVAプログラムがあり、 そのうち前置記法のプロジェクトが当然のようにスタックのプロジェクト内のクラスのインスタンスを作っているのですが。 エクリプス上でその部分に赤線が引かれており、実行してもエラーが出ます。 また、別のクラスを呼び出すために「Javaのビルド・パス>プロジェクト」と「プロジェクト参照」の設定」とやらも試してみたのですが、 そうすると赤線部分はなくなったのですが、実行しても何も起こりません。 前置記法のプログラムの最初にはimport java.io.*; とあるのですがそれが関係しているのでしょうか?
880 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 05:28:41 ] >>879 スレ違い 質問スレへいけ
881 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 13:05:41 ] >>858 です。 >>859 >>861 >>863 無事動きました。今日の期限内に出せそうです。 ありがとうございました。
882 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 15:57:26 ] 【 課題 】 簡易ドローエディタにさまざまな改良を加えてください.最低限,次の二つの改良は加えることとします. 色の指定.赤以外の色を指定できるようにする.あらかじめ基本色を決めておいてよい. 図形の追加.四角形以外の図形が描画できるようにする. 【 形態 】Java 【 GUI 】Swing 【 期限 】5/17(土) 【 Ver 】1.5.0_15 【 補足 】www2.uploda.org/uporg1421970.txt.html ここまで作成しましたがこれをJButtonでなくJComeboBoxに変え図形に直線と塗った四角を追加したいです さらに色変更に関しても同様にして赤青緑+αで変更にしなければなりません どうかよろしくお願いします
883 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 16:00:57 ] >>882 に追記です その前の問題で作成した簡易ドローエディタはこちらです www2.uploda.org/uporg1421974.java.html
884 名前:デフォルトの名無しさん [2008/05/14(水) 21:08:59 ] 遅くなりましたが、 >>869 さん ありがとうございます。助かりました
885 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 21:55:03 ] >>882-883 404
886 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 22:48:01 ] >>852 すいません、死んでました >>882 のソースが www.uploda.net/cgi/uploader3/index.php?file_id=0000013074.txt >>883 のソースが www.uploda.net/cgi/uploader4/index.php?file_id=0000031264.txt です
887 名前:デフォルトの名無しさん [2008/05/14(水) 23:53:13 ] 【 課題 】rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/247.txt 【 形態 】1. Javaアプリケーション 【 期限 】今日の2時まで 【 Ver 】"1.6.0_05" 【 用語 】なし 【 補足 】どうか宜しくお願いいたします。
888 名前:デフォルトでない名無しさん mailto:age [2008/05/15(木) 01:17:23 ] 【 課題 】カーソル入力で画像を移動させるアプレット 【 形態 】2. Applet 【 GUI 】1. AWTのみ 【 期限 】5月15日 13時まで 【 Ver 】1.6.0_05 【 補足 】タイトルのままです。ほぼ完成しましたがカーソルで移動させる となぜか残像が残ってしまいます。残像を解決すれば終了です 途中までのソース↓ sleep-soul0131.hp.infoseek.co.jp/test.java
889 名前:デフォルトでない名無しさん mailto:age [2008/05/15(木) 01:19:45 ] >>888 期限間違えで16日です
890 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 02:27:13 ] >>887 rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/248.java 文字コードはUTF8 よく分からんとこは勝手に書いた
891 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 05:56:06 ] >>888 【解答】 paint() メソッド内の、 > OffScreen_Object.drawImage(OffScreenBuf, 0, 0, this); を、 OffScreen_Object.setColor(getBackground()); OffScreen_Object.fillRect(0, 0, width, height); に変更。 【理由】 paint()メソッドの終了後も、OffScreenBuf内のイメージは保持されるため。 …でいけると思うんだけど、動作確認してませんごめんなさい。
892 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 11:30:58 ] >>891
893 名前:デフォルトでない名無しさん mailto:age [2008/05/16(金) 08:03:43 ] >>891 うまくでき提出完了しました。ありがとうございます。
894 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 00:16:32 ] 【 課題 】 つぎのプログラムのactionPerformedを2通りの方法で,1つのクラスにまとめて,プログラムを書き直してください 1つ目は, actionPerformedの引数のActionEvent型のオブジェクトのgetSource()メソッドを使ってイベントが起こった部品のオブジェクトを調べる方法 2番目は,予め部品に setActionCommand()でアクションコマンドと呼ばれる文字列を付けておき, getActionCommand()でイベント発生時にどの部品で起こったイベントであるか調べるという方法 さらに2番目の方法で書き直したプログラムを,さらに,無名クラスを使って書きなおしてください. (ヒント:1つの無名オブジェクトを3つのボタンにaddActionListenerしましょう) 【 形態 】1. Javaアプリケーション 【 GUI 】Swing 【 期限 】5/17 【 Ver 】1.5.0 【 補足 】プログラムソースはrg550.hp.infoseek.co.jp/cgi-bin/joyful/img/249.txt です 丸投げです、よろしくお願いします
895 名前:デフォルトの名無しさん [2008/05/17(土) 00:36:05 ] 【 課題 】 問題1 Lesson classが起動するようにLesson class の すべてのフィールドの内容を表示するメソッドvoid print を完成させてください.例えば,表示は以下のようになります. Lesson :Jikken Teacher :Yokoshima #students:4 123,Goro,100 124,Tatsuya,74 125,Sinji,30 126,hiro,60 ---------- 直接代入する方法(l.st[l.num++]= new Student(..);) を用いて,必ず Student を3名分以上登録して,print が正しく動作するか確認してください 問題2 Lesson class の すべてのフィールドをprivate にできるように, l.st[l.num++]= new Student("012200","Ichiro",100); と同じ動作を行うメソッド boolean add(Student s) を追加しましょう.その際,numがmaxを越えないかどうかチェックして,num>=max ならば, false を返すようにしましょう.なお,オブジェクトは生成したものを直接引数で渡すことができて, add(new Student("012200","Ichiro",100)); とすることが可能です. 必ず Student を3名分以上登録して,Lesson class の print を利用して,結果が正しいか確認してください. なお,オブジェクトを引数とする関数呼出しでは,参照渡しになるので,生成されたオブジェクトがaddに渡されることになります. レッスンクラス rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/250.txt スチューデントクラス kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6577.txt です 【 形態 】1. Javaアプリケーション 【 期限 】5/17 18時 【 Ver 】 1.5.0 【 補足 】Studentclassは自作ですが後は丸投げです 課題1,2のソースは別々で作っていただきたいです、お願いします
896 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 00:43:27 ] >>895 追記です ソースは二つを利用して全体を書いていただけると嬉しいです
897 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 18:25:31 ] 【 課題 】rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/251.txt 【 形態 】1. Javaアプリケーション 【 期限 】5/18 15時 【 Ver 】1.5.0 【 補足 】/*flagを初期化*/&/*ここを記述*/の所わかりません><。よろしくお願いしますorz。
898 名前:デフォルトの名無しさん mailto:age [2008/05/17(土) 20:46:45 ] >>897 クラスSecretだけ↓にして class Secret{ private String ans = "ふとんがふっとんだ。"; private static final int KEY = 2005; private boolean flag; public Secret(){ flag=true; } public String getAns(int key){ if(key == KEY){ flag=false; return "--------\nよくぞここまできましたな。\n" + "秘密の言葉は,「" + this.ans + "」でした。"; }else{ return "暗号が違います。残念ながら秘密を教えることはできません!"; } } public boolean getFlag(){ return flag; } }
899 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 21:40:30 ] >>898 ありがとうございます!
900 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 14:47:46 ] 【 課題 】rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/253.java 【 形態 】1. Javaアプリケーション(main()で開始) 【 期限 】5/19 23:00 【 Ver 】jdk1.6.0_10 【 補足 】丸投げです。お願いします。
901 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 08:58:59 ] 【 課題 】 以下の機能を持つ StringConverter クラスを定義しなさい。 SampleString(String str): str を data に入れるコンストラクタ。 String toLowerCase(): data の大文字を小文字に変換した文字列を返す。 String toUpperCase(): data の小文字を大文字に変換した文字列を返す。 String toString(): data を返す。 なお、String クラスは Java の標準クラスライブラリに用意されている。 SampleString.java を使用して動作を確認すること。 public class SampleString { public static void main(String[] args) { StringConverter sc = new StringConverter(new String("Tokyo Disney Land")); System.out.println(sc); System.out.println(sc.toLowerCase()); System.out.println(sc.toUpperCase()); } } 【 形態 】Java 【 GUI 】Swing 【 期限 】5/21(水) 【 Ver 】1.5.0_15 【 補足 】どこから手をつけていいか分からない状態です。宜しくお願いします
902 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 12:51:10 ] >>901 dataてのはStringConverterが内部で持つフィールドでいいの? ならString#toLowerCase()とString#toUpperCase()をラップしてtoString()を実装すれば良いだけ。 仕様が内部実装に関与すんな屑講師って言っとけ。
903 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 18:14:28 ] >>900 (2)だけでもやってくれませんか?
904 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 20:12:49 ] あのソースのLinkedListの部分を他のコレクションに書き換えてジェネリックス型をStringに特化させれば良いだけだろ。 (1)の方がめんどくさいぞ。
905 名前:デフォルトの名無しさん [2008/05/19(月) 20:52:55 ] 【 課題 】rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/255.txt 【 形態 】1. Javaアプリケーション 【 期限 】明日の2時まで 【 Ver 】"1.6.0_05" 【 用語 】なし 【 補足 】どうかよろしくおねがいいたします。
906 名前:デフォルトの名無しさん [2008/05/20(火) 17:35:48 ] 【 課題 】鶴と亀の頭の数が10本、足の数が合計30本、鶴と亀は何匹いるか? プログラミングで答えよ。 【 形態 】1. Javaアプリケーション(main()で開始 【 期限 】明日 【 Ver 】1.5.0_15 【 用語 】ない 【 補足 】Javaエクリプスを使用しての学校からの課題です。 プログラミングで鶴と亀が何匹いるか答える課題です。 明日、提出なのでどうかおねがいします。
907 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 18:21:20 ] >>906 せっかく計算機にやらせるなら方程式を解くなんて野暮なことはしない public class TsuruKame { private static final int ATAMA = 10; private static final int ASHI = 30; public static void main(String[] args) { boolean solved = false; loop: for (int tsuru = 0; tsuru <= ATAMA; tsuru++) { for (int kame = 0; tsuru + kame <= ATAMA; kame++) { if (kame + tsuru == ATAMA && kame * 4 + tsuru * 2 == ASHI) { System.out.println("鶴は" + tsuru + "羽、亀は" + kame + "匹"); solved = true; break loop; } } } if (! solved) System.out.println("鶴亀算は不成立"); } }
908 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 18:27:29 ] > 方程式を解く 人間が前もって、ね
909 名前:デフォルトの名無しさん [2008/05/20(火) 18:58:05 ] >>907 助かりました。 これで、何とか点数はもらえるかとおもいます!! 本当に感謝します。 ありがとうございました!
910 名前:デフォルトの名無しさん [2008/05/20(火) 20:46:03 ] 【 課題 】任意の2数を入力して,最大公約数と最小公倍数を求めるプログラムを作れ. 【 形態 】1. Javaアプリケーション 【 期限 】5月21日 【 Ver 】java version "1.6.0-oem" 【 補足 】自分なりに考えたプログラムがあるんですが,実行できなくて困っています. kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6622.txt よろしくお願いします.
911 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:15:07 ] >>910 面倒なので最小限の修正で import java.io.*; public class Test3 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int a = Integer.parseInt(br.readLine()); int b = Integer.parseInt(br.readLine()); int koyaku = gcd(a, b); int kobai = (int)((long)a * b / koyaku); System.out.println("最大公約数は" + koyaku); System.out.println("最小公倍数は" + kobai); } private static int gcd(int a, int b) { while (true) { int c = a % b; if (c == 0) return b; a = b; b = c; } } }
912 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:27:21 ] long kobai = (long)a * b / koyaku; の方がよかったか
913 名前:デフォルトの名無しさん [2008/05/20(火) 22:35:48 ] >>911 結構おかしい場所があったんですね・・・修正ありがとうございました!
914 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 17:12:30 ] 【 課題 】rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/256.txt 【 形態 】1. Javaアプリケーション 【 期限 】5/24 24時 【 Ver 】1.5.0 【 補足 】よろしくお願い致します。
915 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 19:44:37 ] >課題4:次のメインプログラムをもとに,必要に応じて,クラス,抽象クラス,イン ターフェースなどを記述し,完成させよ。 こんな糞設計分かるかボケ。
916 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 23:40:55 ] >>914 ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=30302
917 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 23:59:22 ] >>916 ありがとうございました。
918 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 01:23:10 ] 【 課題 】SQL文を実行してデータベースの情報を表示する 【 形態 】3. Servlet 【 期限 】5/25 22時 【 Ver 】1.60_02 【 補足 】SQL文を実行して情報を表示させることは出来たのですが、全ての情報を 表示させることができません。zipの中に作成中のプログラムと仕様書を入れますので お力添えお願いします。 ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/257.zip
919 名前:918 mailto:sage [2008/05/25(日) 19:05:45 ] 無理そうですかね…
920 名前:918 mailto:sage [2008/05/25(日) 22:15:33 ] >>918 ですが、26日の午前8;00までに、どなたかといて貰えないでしょうか。 お願いします。
921 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 01:23:58 ] > 918 rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/258.txt 部分的にしかやってないけど、無いよりマシかな? こちらには動作環境が無くて動作確認できてないから、確認はしっかりと。
922 名前:924 [2008/05/26(月) 10:49:05 ] 【 課題 】 class ShellSort{ static int compare = 0; static int copy = 0; static void showArray(int a[], int N) { //2-0:逆順数と共に配列の内容を表示するメソッド //動作:N個の要素を持つ配列aの要素を全て画面に表示する //例: a[0]=10, a[1]=30, a[2]=20の場合 // showArray(a,3)を実行すると画面に // 逆順数=1: 10 30 20 // と表示される。 //★以降を適切に埋めよ} static void initArray(int a[], int N){ //2-0:配列にランダムな値を代入するメソッド //動作:N個の要素を持つ配列aに対し、1〜Nまでの範囲の数をランダムに入れる //ただし、a[0]には常に0を入れること。 //ヒント:次のようにして乱数を使えば1〜Nまでの範囲の数をランダムに1つ作れる //int n; //n = (int)(java.lang.Math.random()*(N-1)) + 1; //配列に入れる値に重複が無ければ望ましい //★以降を適切に埋めよ} static int shiftLargerElements(int a[], int v, int i){ //2-0:ソート済み部分に新しい値を挿入するための空き場所を // 作るメソッド //動作:配列aに対し、a[i]より手前にあるvより大きい要素を後ろ //に1つずつずらしてvを挿入するための空き場所を作る。最後に、 //できた空き場所の添え字を戻り値として返す。 //空き場所を作るまでに行った比較回数を変数compareに加算 //空き場所を作るまでに行ったコピー回数を変数copyに加算
923 名前:924 [2008/05/26(月) 10:50:08 ] /*例: a[0]=0, a[1]=30, a[2]=20,a[3]=10の場合 shiftLargerElements(a,a[3],3)を実行すると a[0]=0, a[1]=30, a[2]=30,a[3]=20 となり、戻り値として1を返す。*/ int space = 0; int j; j = i; while((compare++ >= 0) && (a[j-1] > v)){ a[j] = a[j-1]; copy++; j--;} space = j; return space;} static int shiftLargerElements(int a[], int v, int i, int h){ //2-1:ソート済み部分に新しい値を挿入するための空き場所を // 作るメソッド //動作:配列aに対し、a[i]より手前にある要素 //a[i-h],a[i-2h],a[i-3h],...のうち、vより大きい各要素を後ろに //hだけ移動させてvを挿入するための空き場所を作る。 //最後に、できた空き場所の添え字を戻り値として返す。 //空き場所を作るまでに行った比較回数を変数compareに加算 //空き場所を作るまでに行ったコピー回数を変数copyに加算 /* 例: a[0]=0, a[1]=30, a[2]=20,a[3]=10の場合 shiftLargerElements(a,a[3],3,1)を実行すると a[2]とa[1]が後ろに1つずつ移動して a[0]=0, a[1]=30, a[2]=30,a[3]=20 となり、戻り値として1を返す。
924 名前:924 [2008/05/26(月) 10:53:36 ] shiftLargerElements(a,a[3],3,2)を実行すると a[1]が後ろに2つ移動して a[0]=0, a[1]=30, a[2]=20,a[3]=30 となり、戻り値として1を返す。 shiftLargerElements(a,a[3],3,3)を実行すると a[3]はa[0]より大きいので要素の移動は起こらず a[0]=0, a[1]=30, a[2]=20,a[3]=10 となり、戻り値として3を返す。*/ /*ヒント:処理手順は次のようになる。 1.a[j-h]がvより大きい間、次のことを行う。 1-1.a[j-h]の値をa[j]にコピー 1-2.jの値をhだけ減らす 1-3.copy,compareの値を適切に増やす 2.上記処理終了後のjの値を元に空き場所の添え字を計算し、変数spaceに保存 */ //★以降を適切に埋めよ(課題2-1) int space = 0; return space;} static int reverseNumber(int a[], int N){ //2-2:配列の逆順数を計算するメソッド //動作:要素をN個持つ配列aに対して逆順数(テキストp.119参照) // を計算する/* 例: a[0]=0, a[1]=30, a[2]=20,a[3]=10の場合 reverseNumber(a,3)を実行すると3を返す a[1]より大きくかつ左側にある要素は0個 a[2]より大きくかつ左側にある要素は1個 a[3]より大きくかつ左側にある要素は2個 以上を合計すると3になる。*/ //★以降を適切に埋めよ(課題2-2) int val = 0; return val;}
925 名前:924 [2008/05/26(月) 10:55:34 ] static int smallerInterval(int h){ //2-3:今の歩幅より一段小さい歩幅を計算するメソッド //動作:歩幅hの次に小さい歩幅を // インターバル数列 h = 3h +1 // に従って計算する // 次に小さい歩幅が1より小さいときは歩幅として0を返す //★以降を適切に埋めよ(課題2-3) int interval = 0; return interval;} static int largerInterval(int h){ //2-0:今の歩幅より一段大きい歩幅を計算するメソッド //動作:歩幅hの次に大きい歩幅を // インターバル数列 h = 3h +1 // に従って計算する int interval = 0; return interval;} static int largestInterval(int N){ //2-4:配列の大きさに一番合った歩幅を計算するメソッド //動作:要素数Nの配列をシェルソートする時に使う最も大きい歩幅を // インターバル数列 h = 3h +1 // に従って計算する /*ヒント:処理手順は次のようになる。 歩幅1から始め、歩幅が配列の大きさを超える寸前までlargerIntervalメソッドを使って歩幅を一段階ずつ大きくしていく*/ //★以降を適切に埋めよ(課題2-4) int interval = 1; return interval;}
926 名前:924 [2008/05/26(月) 10:57:34 ] static void insertion(int a[], int N){ //2-0:挿入ソートを行うメソッド int i; int v,space; for(i=1;i<N;i++){ v = a[i]; copy++; space = shiftLargerElements(a,v,i); a[space] = v; copy++;}} static void insertion(int a[], int N, int h){ //2-5:歩幅hの挿入ソートを行うメソッド /*shiftLargerElementsメソッドを用い、 a[0],a[h],a[2h],a[3h],... a[1],a[1+h],a[1+2h],a[1+3h],... a[2],a[2+h],a[2+2h],a[2+3h],... . . . a[h-1],a[(h-1)+h],a[(h-1)+h],a[(h-1)+h],... の各グループをそれぞれ挿入ソートする。*/ /*a[j],a[j+h],a[j+2h],a[j+3h],...のグループを挿入ソートするための手順は次の通りである。 iの値を(i+jの値がNを超えない範囲で)hずつ増やしながら次のことを行う。 1.変数vにa[i+j]の値を覚えておく 2.shiftLargerElements(配列,値,添え字,歩幅)メソッドを用い、a[i+j]を挿入するための空き場所を作る 3.上記2.で作った空き場所にvの内容をコピー あとは0,1,2,...,h-1の各jの値に対して上の要領で各グループを挿入ソートすればよい*/ //★以降を適切に埋めよ(課題2-5)
927 名前:924 [2008/05/26(月) 11:08:33 ] int i,j,v,space; for(j=0;j<h;j++){ //a[j],a[j+h],a[j+2h],a[j+3h],...のグループを挿入ソート //1グループ分のソートが終わる毎に配列の内容を表示 }} static void shellSort(int a[], int N){ //2-6:シェルソートを行うメソッド int h; /*処理手順は次のようになる 1.largestIntervalメソッドを使って最初の歩幅を計算 2.歩幅が0より大きい間次の処理を繰り返す 2-1.歩幅の値を画面に表示 2-2.insertion(配列,要素数,歩幅)メソッドを使って歩幅hの挿入ソートを実行 2-3.smallerIntervalメソッドを使い、歩幅hを一段階小さい歩幅に更新 */ //★以降を適切に埋めよ(課題2-6)} public static void main(String args[]){ //2-7:上で作ったメソッドを用いて、ソート過程を表示しながら //シェルソートを実行 //手順は次のようになる。
928 名前:924 [2008/05/26(月) 11:11:59 ] //手順は次のようになる。 /* 1.要素を(27個もつ)整数型配列aを宣言 2.整数型変数Nに配列aの要素数を保存 3.initArrayメソッドを用いて配列aを初期化 4.showArrayメソッドを用いてソート前の配列aの内容を表示 5.変数compare,copyの値を0に初期化 6.shellSortメソッドを用いて配列aをシェルソート 7.showArrayメソッドを用いてソート後の配列aの内容を表示 8.ソートにかかった比較・コピーの回数を表示*/ //★以降を適切に埋めよ(課題2-7)}} 問題は、 2-1:ソート済み部分に新しい値を挿入するための空き場所を作るメソッドを完成させよ。 2-2:配列の逆順数を計算するメソッドを完成させよ。 2-3:今の歩幅より一段階小さい歩幅を計算するメソッドを完成させよ。 2-4:配列の大きさに一番合った歩幅を計算するメソッドを完成させよ。 2-5:歩幅hの挿入ソートを行うメソッドを完成させよ。 2-6:シェルソートを行うメソッドを完成させよ。 2-7:mainメソッドを完成させ、ソート過程を表示しながらシェルソートを実行するようにせよ。 2-8:作成したプログラムが正しく選択ソートを実行していることが分かる実行結果を示し、正しく動作していることを説明せよ。
929 名前:924 [2008/05/26(月) 11:13:32 ] 【 形態 】1. Javaアプリケーション(main()で開始 【 期限 】5月29日 【 Ver 】1.4.1 【 補足 】922〜928がプログラムリストです。 丸投げですので、是非教えて下さい。
930 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 16:06:06 ] あげまくりつつ長々とスレを消費しているのを見ているだけで胸焼けがする
931 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 16:50:34 ] プログラムをわかりにくく文書化するコンテストかなんか?
932 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 16:52:47 ] sage進行でもないのでage、sageの是非は好みだろうけど、 何のためのろだなんだとは思うな。
933 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 18:54:49 ] >>924 ろだにまとめてあげてください 読める気がしません
934 名前:924 [2008/05/26(月) 19:29:19 ] >>933 こちらです。 rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/260.txt
935 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 20:12:11 ] 卒倒したw
936 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 20:55:00 ] うpしたらまず自分の目で確かめて欲しい。
937 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 21:55:27 ] 穴埋め問題とはレベルが高い ・・・がレベル低いな・・・length使わせろよ・・
938 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 22:08:08 ] 画面イメージ +−−−+−−−+−−−+−−−+−−−+ | 20 | * | * | * | $ | | * | 2 | * | $ | * | | 3 | * | $ | * | * | | * | $ | * | * | * | | $ | * | * | 7 | * | +−−−+−−−+−−−+−−−+−−−+
939 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 22:16:42 ] >>935-936 の意味が分からなかったがIEで開いてみて分かった。 Content-Type: text/plainをhtmlとして解釈するブラウザを使っている? javaのプログラミング演習でなく実装例を通したシェルソートのアルゴリズム理解が主眼だとしても、 設計といい実装ヒントといい、これはあまりよくない問題だな。
940 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 22:41:28 ] int a[]の書き方とか全部がstaticとか元々Cで教えていたコードをJavaに手っ取り早くそのまま変換したんじゃないかい
941 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 22:50:10 ] なんで挿入ソート・シェルソートときてバブルソート・コムソートがないんだ! というかへんな設計だな。
942 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 22:59:15 ] バブルソート→コムソートの問題は、この課題の次に出てくるか先にやったんだろ。 まあ、期限はまだ先だから、変だと文句を言いつつ暇な人がそのうちやりそうだ。 なにせツンデレさんが集まるスレだからな。
943 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 23:04:57 ] 【 課題 】sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=30305 【 形態 】1. Javaアプリケーション 【 期限 】5/27 7時 【 Ver 】1.5.0 【 補足 】よろしくお願い致します。
944 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 23:11:50 ] >>943 表示の$は何? 対戦の場合のルールは?
945 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 23:28:34 ] ビンゴって普通最大値75だと思うんだ。25だと確立的にすぐ上がる。
946 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 23:39:57 ] >>944 $は揃ったラインの意味かな >>945 プログラミングの練習が主眼だからそこは気にしないでいいんじゃないか ここに投げた時点でその目的さえも潰えたわけだが
947 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:00:08 ] 問題はどうやってCUI画面を更新するかだな。javaでry
948 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:07:51 ] 単にどんどん標準出力に垂れ流して最新表示が一番下にあればいいんじゃないの? jcursesみたいな画面制御をするライブラリを使う手もあるけどさすがにそこまでは求められてないだろう
949 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:14:09 ] しかし,対戦となると・・・・うーむ どこまで要求されてるのかがわからんな
950 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:23:27 ] とりあえずランダムか小さい数からかで選択していない数を選択するんでいいんじゃない? それよりも対戦のルールが分からないんだが 成立したラインは最後の数を出してラインを成立させたやつのもので 終了時点で成立させたライン数が多いやつが勝ちでいいの?
951 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:42:22 ] そもそも自分で好きな数字入力できるなら対戦しても絶対に先攻が勝たないか? 1列揃う数字を順に入力すれば良いだけだろ。
952 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 01:05:44 ] どこにどの数字があるのか分かるのならね。
953 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 02:03:53 ] >複数人による対戦可能。 これって、例えばAが23で当てたら確定して他の人との違いを表示しないと わけ分からなくなるな。GUIなら色分けとかできるけど、、、あ、コンピュータ対戦もそうじゃんw
954 名前:918 mailto:sage [2008/05/27(火) 02:46:24 ] >>921 とても助かりました。 query.jspのほうで、ひっかかりましたが少しの修正で直りました。 <% AccessBean bean = (AccessBean)session.getAttribute("access"); List columnNames = bean.getNameList(); List rows = bean.getResultList(); %> <% session.getAttribute("access"); ArrayList columnNames = new ArrayList(); columnNames = (ArrayList)access.getNameList(); ArrayList rows = new ArrayList(); rows = (ArrayList)access.getResultList(); %> このように変更しました。 指摘された点、教えていただいた点を忘れずに勉強していこうと思います。 ありがとうございました。
955 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 03:53:32 ] >>943 ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=30306
956 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 04:06:12 ] リーチの表示もあったのかorz もうすぐ夜明けだしあばんだん
957 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 04:23:13 ] 連投すまん間違い発見 >>955 の28行目は int[] point = new int[panel.size()]; でなくて int[] point = new int[players.size()]; 26人対戦とかチェックしてなかったから見つけられなかったw
958 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 05:02:36 ] >>943 リーチの場所は@ ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=30307 いろいろ冗長だけどもう面倒に
959 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 15:16:17 ] 終わってない課題はどれだ
960 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 15:34:49 ] 【 課題 】rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/261.zip 【 形態 】3. servlet 【 期限 】5/27 18時 【 Ver 】1.4.2 【 補足 】javaの宿題でPL/SQLを使う問題がわかりません。お願いします。
961 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 16:03:46 ] 【課題提示用テンプレ】 【 課題 】ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/262.zip 【 形態 】1. Javaアプリケーション 【 期限 】5/28 17時 【 Ver 】1.5.0 【 補足 】DispListクラスの未完成部分(コメントになっている)を完成させよという問題です。お願いします。
962 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 16:09:49 ] >>961 です 問題ファイルの入れ忘れがありました。すみません。 ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/263.zip
963 名前:960 mailto:sage [2008/05/27(火) 18:05:26 ] 960です。 期限は5/28 12時までになりましたので どなたかお願いします。
964 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 18:41:47 ] >>959 期限の近い順 >>960 期限 5/28 12時 >>961-962 期限 5/28 17時 >>922-929 ,>>934 期限 5/29
965 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 19:20:40 ] 答えが返ってきてるやつにshit! 俺2,3回課題書き込んだことあるけど、一度も帰ってこなかったぜorz
966 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 21:54:17 ] >>965 それはご愁傷様。 ちょっとやってみようかなと思わせるくらいの魅力が課題のどこかにあるか、 片手間で即答できるくらい簡単な課題か、 そういう何かが無ければ所詮他人事なので回答されない可能性は多いにある。 回答者は課題を投げた人のためにやるんじゃなくて多分自分の暇つぶしや勉強やネタ披露のためにやっているだろうから。 あと、本来なら回答するであろう人間がちょうど見ていない時期だったとか、 アクセス規制に巻き込まれていたとか、忙しかったとかのタイミングに起因するものもあるかもね。 元々確実に回答されることは期待できないし、回答が無くて当たり前、あったら幸運くらいに考えて、 今後のことを考えて自力で課題が解けるように勉強に励んだほうが建設的だ。 まあ向き不向きはあるだろうから最後の不確実な手段としてここに投げるのは選択肢にあってもいいと思うが。
967 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 22:04:39 ] >>966 実に的を得てる回答。 次回から天麩羅にしてもいいくらい。
968 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 22:11:28 ] 【 課題 】ボタンを10個使って神経衰弱を作る 【 形態 】1. Javaアプリケーション(main()で開始) 【 GUI 】1. AWTのみ 【 期限 】明日の12時くらい 【 Ver 】1.6.0_03 【 補足 】ボタン10個の記述を出来たら配列にしたいのだけど 出来なくて困ってます
969 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 22:18:39 ] >>968 カード10枚の神経衰弱ということは1(A),2,3,4,5が2枚ずつとかでいいの?
970 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 22:45:46 ] >>969 そうです
971 名前:943 mailto:sage [2008/05/27(火) 23:32:34 ] >>958 返事遅れて申し訳ありませんでした。 解いて頂いてとても感謝しておりますが、 「?」があったりbooleanの所のインデントがおかしい? ため、よくわからずできませんでした。申し訳ないです。 【 課題 】sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=30314 【 形態 】1. Javaアプリケーション 【 期限 】5/28 6時30分 【 Ver 】1.5.0 【 補足 】内容が下がり、再度やらないといけないのでどなたかお願いします。
972 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 00:42:37 ] >>968 ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=30315
973 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 00:47:45 ] >>972 ありがとうございました
974 名前:デフォルトの名無しさん [2008/05/28(水) 01:07:07 ] 【課題】cgex.cis.k.hosei.ac.jp/wiki2/wiki.cgi?page=%C2%E86%B2%F3%B2%DD%C2%EA 【形態】Applet 【期限】6月6日 23:59 【Ver】1.5.0 【補足】これは第6回課題なのですが、第5回課題からの続きになっています。 ページ左上の方にリンクがあるので、そちらから第5回課題の方も参照していただければと思います。 ちなみに、第5回の課題はできており、色のグラデーションの出し方が分かりませんorz よろしくお願いしますm(_ _)m
975 名前:デフォルトの名無しさん [2008/05/28(水) 02:26:04 ] >>934 歩幅って?
976 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 02:50:00 ] >>971 ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=30316
977 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 02:58:37 ] >>975 シェルソートでソートするデータを元の配列からピックアップするインデックス間隔のこと
978 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 06:12:51 ] >>971 ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=30321 本当はPointは単なるObjectでもOK
979 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 07:52:56 ] 【 課題 】rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/261.zip 【 形態 】3. servlet 【 期限 】5/27 18時 【 Ver 】1.4.2 【 補足 】javaの宿題でPL/SQLを使う問題がわかりません。お願いします。
980 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 16:37:19 ] 【 課題 】整数をキーボードより2つ入力して、その最小公倍数(LCM)と最大公約数(GCD)を求め、表示させよ。 例:java LCM_GCD 整数を2つ入力してください 6 8 最小公倍数は 24 最大公約数は 2 【 形態 】Javaアプリケーション(main()で開始) 【 期限 】6/1 【 Ver 】1.60_05 【 補足 】丸投げですいません、お願いします
981 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 16:52:23 ] >>968 ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/264.java ボタンが微妙に配列