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/
702 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 17:57:27 ] >>698 public class Prime{public static void main(String[]args){int N=30; int i,j;int[]a=new int[N+1];for(a[1]=0,i=2;i<=N;i++){a[i]=1;} for(i=2;i<=N/2;i++){for(j=2;j<=N/i;j++){a[i*j]=0;} System.out.println(i+"の倍数をふるいにかけた直後の配列aの状態"); for(j=1;j<=N;j++)System.out.print(a[j]+" ");System.out.println();} for(i=1;i<=N;i++){if(a[i]>0){System.out.print(i+" ");}} System.out.println();}}
703 名前:デフォルトの名無しさん [2008/04/17(木) 18:14:15 ] 【 課題 】既約分数を計算するプログラムを書いてみよ。 3つの自然数u,v,wの最大公約数を求めるプログラムを書いてみよ。 【 形態 】1. Javaアプリケーション(main()で開始) 【 期限 】 4月19日 【 Ver 】1.4.1 【 補足 】分かる人がいましたら是非教えて下さい。
704 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 21:33:24 ] なにげに難しくないか・・・
705 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 22:49:18 ] >>703 ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/229.java 適当に書いてみた が、1.4だとInteger#toString()しないと駄目なんだっけ?
706 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 15:08:04 ] >>705 2数の最大公約数の約数の集合は2数の公約数の集合に等しいから 3数の公約数を求める時にeucrid()を呼ぶ回数を1回減らせると思う ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=30249
707 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 22:25:28 ] >>706 そういえばそうだった。 ソース付きアドバイスありがとう。
708 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 22:43:59 ] >>694 あ、情報処理試験のせいで忘れてたorz もしも完成したらうpするけど、時間確保できる自信ナシ
709 名前:デフォルトの名無しさん [2008/04/20(日) 23:01:56 ] 【 課題 】実行時に指定した値を受け取り、口座作成および入金処理を行うBankApp_A01クラスを作成せよ。 mainメソッドで行う処理 ・実行時に4つの値を指定していなければ、使用方法を表示して終了 ・実行時に指定した1つめ、2つめの値を使って口座を作成 (値はname,20000,5000,3000です。) 【 形態 】1. Javaアプリケーション(main()で開始) 【 期限 】 4月21日 【 Ver 】1.4.2まで 【 補足 】 どなたか教えていただけませんでしょうか よろしくお願いします。
710 名前:デフォルトの名無しさん [2008/04/21(月) 00:38:48 ] 【 課題 】年利3%の奨学金を、在学中三年間60万円ずつ借り、卒業後 十年間で返済するものとする(学生の間、利子は計上され ないものとする)。毎年、借りた総額の十分の一と利子を 返済する場合、初年度から最終年度(十年目)の各年の返済 金額はいくらになるか、それぞれ計算せよ。また、返済金 額はいくらになるか、計算せよ この問題をforもしくはwhileループを使用して解く 【 形態 】1. Javaアプリケーション(main()で開始) 【 期限 】 4月23日 【 Ver 】1.4.2まで 【 補足 】よろしくお願いします。
711 名前:デフォルトの名無しさん [2008/04/21(月) 00:43:40 ] 【 課題 】6000万円の家を購入し、年利2%のローンを30年間で返済するものとする 毎年、同一の金額で返済することを考えた場合、各年の返済金額はいくらになるか この問題において、毎年の返済結果として元金がいくらになっているか、 1年目から30年目まで、それぞれ表示するプログラムを作成せよ。 【 形態 】1. Javaアプリケーション(main()で開始) 【 期限 】 4月23日 【 Ver 】1.4.2まで 【 補足 】よろしくお願いします。
712 名前:java素人 [2008/04/21(月) 01:40:03 ] 【 課題 】ユークリッドの互除法を用いて、与えられた2つの整数の最大公約数を出力する JavaのプログラムGCD.javaを作成し、そのソースコードと実行結果を示せ。 java GCD 45 18 ←入力 9 ←出力(結果) 【 形態 】1. Javaアプリケーション(main()で開始) 【 期限 】4月23日まで 【 Ver 】1.4.2 【 補足 】どなたかお教えください。お願いします。
713 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 02:26:30 ] >>710 >>711 こ、これはなんという醜いJava課題! 値が決まっているなら普通に電卓で計算した方が速いのに プログラムで計算させる意図が分からない・・・
714 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 09:54:40 ] ポカーン
715 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 15:04:57 ] >713 そんな餌では(ry
716 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 19:15:11 ] >>711 ttp://www.smbc.co.jp/kojin/jutaku_loan/ganri_sim.html
717 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 19:31:35 ] >>715 財務や会計や金融、保険の経験がある人に聞いてみな。 自己流計算なんてしたら笑われるよ。
718 名前:デフォルトの名無しさん [2008/04/21(月) 20:37:47 ] 入門レベルのjavaですが・・・ 【 課題 】数学関数を用いて,自分の名前や所属をできるだけ半円状に表示するようなプログラムを作りなさい. 例:あまりよい例ではない A B C D E F G H 【 形態 】1. Javaアプリケーション(main()で開始) 【 期限 】本日中 【 Ver 】1.4.2まで
719 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 21:27:15 ] >>718 public class Shukudai718 { public static void main(String[] args) { String[] info = { "gakkou", // school "1", // grade "A", // class "male", // sex "name", // name }; String nl = System.getProperty("line.separator"); StringBuffer ret = new StringBuffer(); int max = info.length; int mid = max / 2; for (int i = Math.abs(0); i < max; ++i) { StringBuffer b = new StringBuffer(); int k = i <= mid ? i : max - (i + 1); for (int j = 0; j < k; ++j) { b.append(" "); } b.append(info[i]).append(nl); ret.append(b); } System.out.println(ret); } }
720 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 21:28:36 ] java 1.4.2 は同一人物かね。
721 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 21:35:03 ] >>694 「色付き長方形」って何だ?? 適当に追加しとくぞ。
722 名前:よろしくおねがいします mailto:sage [2008/04/21(月) 23:51:24 ] 【 課題 】以下のプログラムは探索要素nによってエラーがでる、理由を応えよ 【 形態 】1. Javaアプリケーション(main()で開始) 【 GUI 】わかりません 【 期限 】明日中 【 Ver 】java version "1.6.0_02" 【 用語 】 【 補足 】与えられたプログラム↓
723 名前:よろしくおねがいします mailto:sage [2008/04/21(月) 23:51:50 ] import java.util.*; public class SequentialSearch1 { static Scanner stdIn = new Scanner(System.in); static int[] s = { 3,4,6,7,9,11,14,15,17,18,20,23,24,26,27,29,30,32 }; static int n = s.length; // s.length は配列s のサイズ(要素数) n=18 public static void main(String[] args){ System.out.print("Enter some integer: "); int x = stdIn.nextInt(); // 探索したい数値x を入力する int i = 0; do{ if( s[i] >= x) break; else i++; } while( i<n ); if(x == s[i]) System.out.println(x + " exists. (index " + i + ")"); else System.out.println(x + " does not exist. (-1)"); } }
724 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 00:06:32 ] >>723 探索要素nってのは、コード中の変数xのことでいいのかね。 s の要素の最大値(32)を越える数値を入力されると、i が余計に インクリメントされる。要素が見付からないままループを抜けた後、 余計にインクリメントされた i を用いて結果の調査を行うため、 エラーとなる。
725 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 00:36:25 ] >>724 の言うとおり 期待通りの動作をするように修正するなら↓みたいにすればOK import java.util.*; public class SequentialSearch1 { static Scanner stdIn = new Scanner(System.in); static int[] s = { 3,4,6,7,9,11,14,15,17,18,20,23,24,26,27,29,30,32 }; static int n = s.length; // s.length は配列s のサイズ(要素数) n=18 public static void main(String[] args){ System.out.print("Enter some integer: "); int x = stdIn.nextInt(); // 探索したい数値x を入力する for ( int i = 0; (i < n) && !(s[i] <= x); i++ ) { ; // 何もしない } if(x == s[i]) System.out.println(x + " exists. (index " + i + ")"); else System.out.println(x + " does not exist. (-1)"); } }
726 名前:よろしくおねがいします mailto:sage [2008/04/22(火) 00:37:38 ] >>724 さん わかりやすい回答ありがとうございます 理解できました!
727 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 00:40:04 ] //修正例その2 import java.util.*; public class SequentialSearch1 { static Scanner stdIn = new Scanner(System.in); static int[] s = { 3,4,6,7,9,11,14,15,17,18,20,23,24,26,27,29,30,32 }; static int n = s.length; // s.length は配列s のサイズ(要素数) n=18 public static void main(String[] args) { System.out.print("Enter some integer: "); int x = stdIn.nextInt(); // 探索したい数値x を入力する for ( int i = 0; i < n; i++ ) { if (x == s[i]) { System.out.println(x + " exists. (index " + i + ")"); return; } } System.out.println(x + " does not exist. (-1)"); } }
728 名前:よろしくおねがいします mailto:sage [2008/04/22(火) 00:47:41 ] どう直せばいいのか悩んでいたので助かります 勉強になりました
729 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 00:48:51 ] >>694 rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/230.zip
730 名前:デフォルトの名無しさん [2008/04/22(火) 15:19:08 ] >>702 この間結果が返ってきましたが、途中経過の内容も書かないと駄目だと言われました。 コンパイルしてみたら、最大公約数しか表示されませんでした。 途中経過の内容も表示させるにはどうすれば良いですか?
731 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 15:35:35 ] ソース取り違えてるんじゃねーのw
732 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 21:08:09 ] 【 課題 】コマンドラインから正の整数値を取得し、その整数値を要素数とする配列を作成後、 その要素にランダムな整数値を入れなさい。 また、その配列の要素を何らかの整列アルゴリズム(バブルソート、挿入ソート、クイックソートなど) で整列し、出力しなさい。 【 形態 】1. Javaアプリケーション(main()で開始) 【 期限 】4月23日中 【 Ver 】java version "1.6.0_03" よろしくお願いします。
733 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 21:32:16 ] >>732 public class Shukudai732 { public static void main(String[] args) { int size = Integer.valueOf(args[0]); int[] nums = new int[size]; java.util.Random gen = new java.util.Random(); for (int i = 0; i < size; ++i) { nums[i] = gen.nextInt(); } java.util.Arrays.sort(nums); System.out.println(java.util.Arrays.toString(nums)); } }
734 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 21:37:53 ] >>732 java.util.Arrays#sort(int[]) のソートアルゴリズムは、調整されたクイックソートだそうな。 普通のクイックソートよりも効率がいいんだとかどうとか。 java.sun.com/javase/6/docs/api/java/util/Arrays.html#sort (int[])
735 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 23:27:26 ] 宿題レベルだと、args.length > 0 と Integer.valueOf(args[0]) > 0 の範囲チェックは要らないのか。
736 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 00:26:35 ] あったほうがいいんじゃね
737 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 01:31:10 ] 回答でも提出したときにA,B,Cのどの評価がもらえるかはわからんが、 まれにD回答があるから注意だなw
738 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 04:36:15 ] Integerのインスタンスを利用するわけでもないしvalueOfはparseIntでいいんじゃね? というかソートアルゴリズムも自分で実装するんじゃないのかな? Arraysクラスを使うなという縛りは書かれていないし課題の主眼次第だとは思うけど。
739 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 08:20:59 ] >>738 どう見てもネタ解答
740 名前:デフォルトの名無しさん [2008/04/23(水) 13:48:16 ] >>729 本当にありがとうございます でも・・・色つき長方形の色の重ねの事すっかり忘れてた・・・orz ええ・・・もう間に合いませんね (1) 長方形とボードに色をつける。 . ボードの色はwhite とする。 . 長方形の色として指定できる色は以下の通りである。 - red - blue - yellow - gray (2) 長方形に対する配置の機能の内intersect を以下のように拡張する。 . 重なり部分の色を以下の規則でマージして、色を決定する。 - 色の組み合わせが同じであればgray とする。 - 色の組み合わせが yellow とblue ならば、green とする。 - 色の組み合わせが red とyellow ならば、orange とする。 - 色の組み合わせが red とblue ならば、magenta とする。 - その他の場合は cyan とする。 (3) 長方形は色が異なってもボード上で同じ幅、高さ、位置をもつ場合は同一の 長方形とみなす。 こうでしたとも・・・orz そして自分でやろうとしても不完全でオワタwww とりあえずコマンドの一部だけできたの(mix)同封してみます http: //rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/231.lzh あとイメージ画像もつけてみました 次に続きます
741 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 13:48:56 ] 続き 第三回は . 仕様変更要求:出力の仕様 次回までの課題 . 入出力の一部をGUI 化したプログラムの作成 ですが追加情報あったら今度こそ書きこみますね 今後とも皆様よろしくお願いします
742 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 14:45:07 ] >>740 >>1
743 名前:デフォルトの名無しさん [2008/04/23(水) 15:21:23 ] あ
744 名前:デフォルトの名無しさん [2008/04/23(水) 15:40:13 ] class java { public static void main(String [] args) { double rad=(Math.PI)/180; double [] space={0,0,0,0,0,0,0,0,0,0} char [] a={' ','あ','い','う','え','お','か','き','く','け'}; int n; int x=0; for(n=1;n<=9;n++) { space[n]=Math.sin(20*n*rad)*20; while(x<=space[n]) { System.out.print(' '); x++; } System.out.println(a[n]); }}} 数学関数sinを使い、半円上に文字を表示するプログラムですが、 a[5]ぐらいからスペースが表示されなくなり正しく表示されません。 どなたかご教授願います。
745 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 15:43:03 ] >>744 >>1
746 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 17:13:05 ] >>733 ありがとうございました。
747 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 16:56:14 ] 【 課題 】 www.slashaster.jp/uploader/input.html を読み込み、 www.slashaster.jp/uploader/output.html に変換して出力するプログラムを作りなさい。 ただし、HTML Parser2.0(htmlparser.sourceforge.net/ )を使うこと。 【 形態 】1. Javaアプリケーション(main()で開始) 【 期限 】4月25日午前 【 Ver 】java version "1.5.0_13" よろしくお願いします。
748 名前:デフォルトの名無しさん [2008/04/24(木) 21:19:53 ] かなり急ぎですがよろしく御願いします。 穴埋め問題になります。 【 課題 】 オブジェクト生成時に氏名と3教科の点数を格納できるコンストラクタ(1)を記述しまさい。 また、3教科の合計点数を計算し出力するgetTotalScoreというメソッド(2)をSubjectクラスに作成しなさい。 sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=30260 【 形態 】2. Applet 【 期限 】無理なのを押して明日、12時までに御願いします。 【 Ver 】java SDK最新 v 1.4.2_17
749 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 21:38:11 ] >>748 (1) public Subject(String name, int phys, int math, int chem) { this.name = name; this.phys = phys; this.math = math; this.chem = chem; } (2) public int getTotalScore () { int totalScore = phys + math + chem; System.out.println("合計点数:" + totalScore); return totalScore; } Applet?
750 名前:デフォルトの名無しさん [2008/04/24(木) 21:43:11 ] >>749 ありがとうございます。 >>無理なのを押して明日、12時までに御願いします。 瞬殺ですか、自分はこれに5時間かけて結局上手く出来ず諦めましたorz 一応、【 形態 】2. Applet は講座名がWeb技術でjavaAppletを習っているのでそうしました。
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); } }