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/
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