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/
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" 【 用語 】なし 【 補足 】なし。 よろしければ、おねがいします。