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/
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()を実装すれば良いだけ。 仕様が内部実装に関与すんな屑講師って言っとけ。