[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 02/24 18:23 / Filesize : 383 KB / Number-of Response : 978
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

★★ Java の宿題ここで答えます Part 60 ★★



1 名前:JavaScriptは板違い、Web制作板をご利用ください。 [2007/01/20(土) 22:34:12 ]
【質問者へ】
回答者の便宜のため、以下の注意事項を遵守してください。
・質問は【課題提示用テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・数学問題は「○×法でせよ」だけでなく、その数式、前提条件も説明してください。
・JavaScriptは板違い、Web制作板をご利用ください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。
・回答されたら動作報告を必ずしてください。

【課題提示用テンプレ】
【 課題 】与えられた課題文をそのまま書きます。 《必須》
【 形態 】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  www.wikiroom.com/java/
ソースポストネット  sourcepost.sytes.net/

【前スレ】
pc10.2ch.net/test/read.cgi/tech/1165167516/

577 名前:563 [2007/03/08(木) 23:54:27 ]
>>550
結果を新しいフレームに表示させるようにした。
そして・・・プログラムはますます見苦しくなった・・・
ttp://yoshitake052.web.fc2.com/JavaLink/Q/Q555.zip

578 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 01:00:25 ]
>>577
一応sageたほうがよいかと…

579 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 01:03:58 ]
Javaアプリケーションなのになんでアプレット使うんだろう
両方で動作するようにしたいのか?

580 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 01:40:40 ]
プログラムがプリミティブすぎる・・

581 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 02:42:20 ]
>>579
学習中ということだし、アプレットから入った初学者じゃないのかね?
まだアプレットしか作ったことないとか。

582 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 03:56:45 ]
すまんすまん。577ではFrameを使ってるね。
ということは、
> 【 形態 】1. Javaアプリケーション(main()で開始)
を見落としてるか、勘違いしてるか。
まあ、アプレット→アプリケーションはその逆より難しくないから、いいのかも。

583 名前:582 mailto:sage [2007/03/09(金) 04:01:14 ]
というか、今ソース見たら、ちゃんとアプリケーションとアプレット両対応になってたw

584 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 11:48:46 ]
元々両対応で行くつもりっだったんじゃない?
アプリケーション側の初期化処理が不完全くさかったし・・・破棄コードも見当たらないしね。

なぜか意味なくtransientついた変数あるのにシリアライズID付けてなかったり、いわゆるアクティブレンダリングはしてなかったり、イベントハンドラで処理してたり、
ゲームっぽい組み方は出来てんのに
javaの作法が出来てない所をみると他言語経験者じゃない?

C/C++とjavaの両方教える所あるよ

585 名前:563 [2007/03/09(金) 19:51:57 ]
>>584
C、C++、VRMLを少しだけかじっていました・・・
>アプリケーション側の初期化処理が不完全くさかったし・・・破棄コードも見当たらないしね。
>なぜか意味なくtransientついた変数あるのにシリアライズID付けてなかったり、いわゆるアクティブレンダリングはしてなかったり、イベントハンドラで処理してたり、
何を言っているのかまだ私には分かりませんor2
明日あたりにこのあたりを中心に勉強をしてみようと思います
>javaの作法
今ちょっと検索をかけてみたらJavaの本や10万以上もする授業や別の掲示板での質問くらいしかひっかかりませんでしたor2
作法について書かれているホームページや良い書籍を紹介してもらえないでしょうか?
出来ればホームページの紹介を優先的に・・・

>>581
実際に組んだプログラムはアプレットを4〜5個(簡単なものも含め)つくり、
アプリケーションは・・・これが始めて・・・ですね
初めて取り組むのには難しすぎたのかな?
ちょっと反省しています or2 でしゃばったまねをしてすいません

>>580
>プログラムがプリミティブすぎる・・
これってプリミティブ型(?=intなど基本データ?)の使いすぎってことかな?
まだまだ知識が足りないもので・・・
今日の深夜あたりにList,Set,Map,Iteratorインタフェースについて勉強をしてこのプログラムをよりよくしていくつもりです

>>579
はい

>>578
sageって・・・あまり書き込むなってことですか?

長文失礼しました



586 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 19:54:52 ]
>>585
>sageって・・・あまり書き込むなってことですか?

スレをあげないでという事だと思いますよ。

587 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 21:10:20 ]
>>585
メールアドレス欄に"sage"と入れて書き込む。

大丈夫、その素地ならこのスレの大抵の住人より地力はあるはず。
揚げ足取りにはめげないで頑張って。

588 名前:デフォルトの名無しさん [2007/03/10(土) 01:46:57 ]
【 課題 】以下のようなCSVファイル(下記参照)を用意し、ファイルを読み込んでyyyymmdd.txtというファイルに5科目合計を求め、合計点の降順にソートして出力しなさい。
1.ファイル読み込み時にエラーチェックをする。
(a)入力された点数が数値かどうか(b)入力された点数が0から100点の範囲内か(c)ファイルIOエラー(入力ファイルオープンエラー、出力ファイル書き込みエラー等)
2.java.ioパッケージ丸ごとのインポートは行なわず必要なクラスのみインポートする
3.人数や科目が増えた場合にもコード修正なしに実行可能にするArrayListを使用
4.わかりやすいコメントを下記の要領で記述
(a)ヘッダコメント(b)各クラスヘッダコメント(c)各メソッドコメント
----------(参照)CSVファイル-- ----(yyyymmdd.txt)--------------
名前,国語,数学,社会,理科,英語 ⇒ 順位 名前   国語  数学  社会  理科  英語   合計    
山田一朗80,80,78,60,75    出⇒ 1  山田一郎    80   80   78   60   75    373
山田次郎40,12,50,37,89    力⇒ 2  山田四郎    85   95   65   57   58    360
山田三郎60,38,45,68,40    例⇒ 3  山田五郎    90   95   55   45   72    357
山田四郎85,95,65,57,58    で⇒ 4  山田三郎    60   38   45   68   40    251
山田五郎90,95,55,45,72    す⇒ 5  山田次郎    40   12   50   37   89    228
                  科目合計         355   320   293   267   334   1569

【 形態 】Javaアプリケーション(main()で開始)
【 GUI  】コマンドプロンプトで表示します
【 期限 】解答希望日:3月11日(日) 20時まででお願いいたします。
【 Ver  】java version "1.5.0_05"
【 補足 】課題丸投げです。申し訳ありません。
      色々資料見て自力で何とか頑張ったのですがわかりませんでした。
      本当にすいませんがよろしくお願いします。

589 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 05:18:33 ]
>>588
ttp://www.uploda.org/uporg724176.jar

590 名前:デフォルトの名無しさん [2007/03/10(土) 13:40:12 ]
588です!
589さんありがとうございます!!
わざわざやって頂いて本当に申し訳ないんですが、コンパイルする時にどれを実行していいのかわかりません!
JAVA初心者なもので、できたらで良いのですがもう少し簡単に1つのメモ帳にまとめて書けたりできますでしょうか?
やってもらった分際で本当にすいません!!

591 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 14:20:09 ]
>>590
一応必要な情報は全部入ってるはずなんやけどな・・・

jarは実行可能なので
java -jar hogehoge.jar 読むファイル 結果ファイル
で実行できるし、
jarを展開したらソースが入ってるからそれからコンパイルし直したり修正も出来る。
メインクラスは、展開したらでてくるMANIFESTにかかれているよ。

時間はあるからガン( ゚д゚)ガレ〜
クラスは三つ出てくるけど、必要なのは二つ。一つはテストクラス。

592 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 14:21:51 ]
jarの使い方は
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/tooldocs/windows/jar.html

593 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 21:39:44 ]
もうjdk6のjavadoc日本語版リリースされてるよ

594 名前:デフォルトの名無しさん [2007/03/11(日) 00:32:12 ]
590です!591、592さんありがとうございます!
jarファイルは展開できました!
コマンドプロンプトでMainとResultの2つをコンパイルすればいいということでしょうか?
javac Main.javaでコンパイルしたところエラーが6個出てしましました・・・。
後javac Result.javaでコンパイル通りましたが実行でjava Resultでいんでしょうか?
NOClassDefFoundError:Result〜というエラーがでてしました。
無知すぎて本当にすいません!!

595 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 13:02:28 ]
>>593
>【 Ver  】java version "1.5.0_05"
だから。
jarくらいなら大丈夫だけどね。

>>594
間違いです。
教科書の索引の「パッケージ」「クラスパス」あたりを調べてみましょう。
コンパイル対象のクラス2つは合っているはず。
あと、マニフェストファイルも覗いてみましょう、と



596 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 17:45:14 ]
>>595

次は、
「MANIFEST.MFをダブルクリックすると、開くアプリケーションがないと
怒られました」
かな。


597 名前:563 mailto:sage [2007/03/12(月) 00:45:23 ]
>>550
今こんな感じで進めて行ってますがこんな感じでいいですか?
ttp://yoshitake052.web.fc2.com/JavaLink/Q/Q555.zip
素人制作のためソースコードがかなり汚くなっていますが・・・

それと、仕様書では行末でEnterキーを押すことにより次の行に移るようにせよとのことですが・・・
これを実際にやってみたのですが見にくく分かりにくかったので次のように変えました。
行末には勝手に'↓'を付け加えるようにして、'↓'にきたらEnterキーを押すことにより次の行に移るように変えました。
この仕様が不満でしたら書き込みお願いしますor2

598 名前:563 mailto:sage [2007/03/12(月) 00:57:50 ]
書き忘れ
もし、'↓'を透明にしたいのでしたら下の行をTypingクラスの96行と97行の間に付け加えてください。
if(st.charAt(i-sNumSum) == '↓')graphics.setColor(new Color(0, 0, 0, 0));

599 名前:555 mailto:sage [2007/03/12(月) 03:34:10 ]
>>597
お疲れ様です。
仕様を満たして作成していただき、本当にどうもありがとうございました。
>>564では具体的なアドバイスが出来ていなくてすみません。
行末の記号につきましては現状のままで結構です。
欲を言えば、小数部分は小数点以下2桁が望ましいかと思います。
もし、お時間がございましたら、各クラスの大まかな役割を示したreadmeファイルを付けていただけるとありがたいです。
あと、各プログラムのJAVAファイル(Q555,Typing,Infor1,Infor2)等を一つにまとめるには、単に一つのJAVAファイルにコピペすればよろしいのでしょうか?
最後に色々と注文をつけてしまい申し訳ありません。
レポ作成等がありますので、次に書き込めるのは13日になってしまうと思われますが、上の注文に関しては12日までということはありませんので、よろしくお願いします。

600 名前:563 mailto:sage [2007/03/12(月) 13:27:36 ]
>>555
>欲を言えば、小数部分は小数点以下2桁が望ましいかと思います。
実装しました
>各クラスの大まかな役割
Q555: フレームを作ったりボタン、Typingクラス、Inforクラス等を置いたりしてるだけ。ここにmain()あり。
Typing: このクラスはキー入力やファイルの読み込み文字の表示などをさせている。
Infor: タイピングの情報を受け取ってそれを計算して表示させるだけ。
Infor2: Inforを継承させて結果の表示にバーを表示しないようにしただけ。
>各プログラムのJAVAファイル(Q555,Typing,Infor1,Infor2)等を一つにまとめるには、単に一つのJAVAファイルにコピペすればよろしいのでしょうか?
説明するのはめんどくさいので1つのファイルにまとめました。(ちなみにただ単純にコピペしただけではエラーが出るはずです)
でもこれってまとめてもいいものなの?分けたほうが分かりやすくていいのでは?
ttp://yoshitake052.web.fc2.com/JavaLink/Q/Q555_2.zip

601 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 18:14:33 ]
見るに耐えない

602 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 19:44:28 ]
うぜーーーーーーーーー

603 名前:555 mailto:sage [2007/03/13(火) 01:22:26 ]
>>600(563)様
期限までに作成してくださり、本当にありがとうございました。
また、細かい仕様にも満たしていただけ、素晴らしいものになっていると思います。
こちらで確かに動作を確認いたしました。

度々の質問で恐縮なのですが、打鍵時間を色々変更して計測せよと言われたので、
打鍵時間を2分から変更したいのですが、その場合、
public final int limitTime = 120;をpublic final int limitTime = 180;
等に変更しても打鍵時間が120分のまま変わりませんでした。
他に変更すべき点ございますでしょうか。
最後に色々to
質問させていただくというのは大変申し訳ないと思いますが、よろしくお願いします。

604 名前:555 mailto:sage [2007/03/13(火) 01:24:09 ]
>>603
120分→120秒です。スレ消費スミマセンでした。

605 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 01:36:03 ]
定数、変数があっちゃこっちゃに散らばってるからそうなるんだよ
マジックナンバー使いまくりなのもよくないかと



606 名前:555 mailto:sage [2007/03/13(火) 01:44:24 ]
>>605
アドバイス通り、protected final int restTime = 120;
のほうも変更してみたところ、打鍵時間を変更することができました。
どうもありがとうございました。


607 名前:563 mailto:sage [2007/03/13(火) 03:47:08 ]
>>555
もう解決しちゃってるみたいだけど・・・
打鍵時間はマジックナンバーにならないようにしました。
あと下にテキストフィールドとボタンを追加しました。
テキストフィールドに数字を入力してボタンを押すと時間が変更できる仕様にしました。
ttp://yoshitake052.web.fc2.com/JavaLink/Q/Q555_2.zip

>>605
マジックナンバーという言葉を初めて知りましたor2
次からはそのようなことが起こらないように作っていきたいと思います
ご指摘ありがとうございます

608 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 10:30:12 ]
そろそろor2をNGワードにしようと思う
妙な自己主張はやめてくれ

609 名前:563 mailto:sage [2007/03/13(火) 12:54:00 ]
>>608
不快にさせて申し訳ありません
次からはNGワードを使わないようにします

610 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 17:07:53 ]
>>609
むしろ逆
お前はどんどん使え
そうしたらお前のレスを読まなくて済むからな

611 名前:デフォルトの名無しさん [2007/03/16(金) 15:53:32 ]
【 課題 】下記の出力するテキストファイルのファイル名を日付表示にする。⇒text.txtを現在日付(2007036.txt)
public class Writedown {
public static void fileWrite(ArrayList<ArrayList<String>> WriteArrayList) {
try {
File txt = new File("text.txt"); /*出力するファイル*/
BufferedWriter bw = new BufferedWriter(new FileWriter(txt));/*追記モード*/
for(int i = 0; i < WriteArrayList.size(); i++){
ArrayList<String> list = WriteArrayList.get(i);
if(i == 0){
bw.write((list.size() - 3));
}
for(int j = 0; j < list.size(); j++){
if(j > 0){
bw.write("\t");
}
if(list.get(j).toString().equals("名前")){
list.remove(j);
list.add(j,"名前");
}
}
bw.close();
} catch (IOException e) {
System.out.println("ファイルオープンエラー");
}
}
}
【 期限 】解答希望日:3/17(日)23時
【 Ver  】java version "1.5"
【 補足 】課題丸投げです。長々とすいません!

612 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 16:26:23 ]
File txt = new File("text.txt");

File txt = new File(new SimpleDateFormat("yyyyMMdd.'txt'").format(new Date()));

613 名前:デフォルトの名無しさん [2007/03/18(日) 13:13:07 ]
611です。
612さんありがとうございます。
後はimport java.text.DateFormat;とimport java.text.SimpleDateFormat;を追加すればよいですか?

614 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 02:46:46 ]
sage推奨?

615 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 04:57:04 ]
大昔は知らないが最近のスレの>>1近辺でsage推奨の注意書きがあったことはなかったと思う。
だから別にsage推奨とかではないとは思うが、あがっていてもいいことはあまりない気がする。
スレ順位に関係なく、見てる人間はそれなりにチェックしてるだろうから、
ageて注意を促そうとすることはあまり効果がないと思われ。
まあ、自分のレスはsageるけど、ageられていても俺は特に気にはしないが。



616 名前:デフォルトの名無しさん [2007/03/20(火) 21:40:28 ]
【 課題 】Iteratorを使い、文字列をリストに詰め替え、最後に文字列(”Winter”)を追加せよ。

ArrayList array=new ArrayList();

array.add("Spring");
array.add("Summer");
array.add("Autumn");

ArrayList array2=new ArrayList();

for(Iterator it=array.iterator();it.hasNext();){
String str=(String)it.next();
System.out.println("array:"+str);
array2.add(it);
System.out.println("array2:"+str);


【 期限 】3月22日
【 Ver  】java version "1.4"
【 補足 】リストの詰め替えまでは理解出来たのですが、詰め替え後にリストの最後に
文字列を追加する処理の記述がわかりませんでした。

617 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 22:05:49 ]
最後に
array2.add("Winter");


618 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 00:54:51 ]
課題の内容も意味不明だが

List array=new ArrayList();

// init array is sniped

List array2=new ArrayList();

for(Iterator it=array.iterator();it.hasNext();){
array2.add(it.next());
}
array2.add("Winter");

で最後に"Winter"が追加されるが、それでいいのか?
詰め替えって標準語なのか?

619 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 05:15:05 ]
詰め替えは標準語だろう。
でも、このコンテクストで使って、やりたいことを伝えているかとなると微妙だな。
詰め替えるって元の場所から取り出して別の場所に入れ直すってイメージがあるから、
array2にaddするだけじゃなくarrayの方からremoveしないといけないんじゃないか?
課題の意図としては多分リストの要素をコピーするって意味だろうとは思うけど。

620 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 06:45:33 ]
何故かスタックをせっせと詰め換えてるデュークが頭過った・・・org

まあ期限が今日だからドボンか・・・

621 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 18:52:23 ]
でも、まぁ、ある程度理解しているなら完全にダメという訳でもあるまい。

622 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 19:10:10 ]
理解してて>>616はないだろ。

ブロッキングキューを必死こいてpopしようとして悩んでるデュークが頭の中に・・・

誰だ変なもんインスタンス化したのはw

ブロッキングキューはあってもリングキューないよね。特殊過ぎるか。

623 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 01:37:37 ]
>>619の解釈が正しいとすれば
>Iteratorを使い、文字列をリストに詰め替え
ってのは高度だよな(moveだとすれば)
どうやってやればいいかわからん

624 名前:デフォルトの名無しさん [2007/03/23(金) 01:59:18 ]
詰め換えってんだからビューやミラーでは無いわな。
しかし、「文字列をリストに詰め替え」
そのソース文字列が例文に何処にも無いんだが・・・
リテラルがいきなり出てきてるのは例文だから?

Iteratorがコピー元とコピー先を持ってれば良い?

今まさにこの>Iteratorを使い、文字列をリストに詰め替え
をxmlに対し可能にするAPI作ってるがこのIteratorの事をCrawlerって呼んでる。

xmlをフラットに走査してビューを作れるんだぜ?

 さ あ 、 講 師 が 馬 鹿 か 俺 ら が 馬 鹿 か ! ?


625 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 05:45:02 ]
>>623
Iteratorを使っての要素の移動だとすればこうじゃね。
for (Iterator it = array.iterator(); it.hasNext(); ) {
Object o = it.next();
it.remove();
array2.add(o);
}
array2.add("Winter");



626 名前:625 mailto:sage [2007/03/23(金) 05:50:18 ]
for文の中身はこれの方がすっきりするね。徹夜で頭が働いてないや。
array2.add(it.next());
it.remove();


627 名前:デフォルトの名無しさん [2007/03/25(日) 20:35:37 ]
【 課題 】Zipファイルの中にあるJavaコードを書き換えて、
      以下の仕様通りに動作するJava GUIプログラムを完成させよ。
      1.Startボタンをクリックした時に、JPanel内のオブジェクトを動作させ、
       ボタンの表示を「Stop」に変更させよ。また、Stopボタンをクリックした時に、
       JPanel内のオブジェクトの動作を停止させ、ボタンの表示を「Start」にするようにせよ。
      2.JPanel内のオブジェクト(ボール)がJPanelの壁にぶつかった時、跳ね返るようにせよ。
      3.JFrameのタイトル部分に日付(時計)を表示させよ。※毎秒、時間が経つように設定せよ。
      4.JPanel内のオブジェクト(ボール)はスレッドを使用し、別々に
       動作するようにせよ。※sleepメソッドを使用する。
      5.動作の途中結果をコンソール画面に表示させよ。
       ※例えばプログラムの反復処理が200の場合、20毎にその結果を表示させる。
       また、反復処理の回数と途中処理チェックをユーザーが設定出来るようせよ。
      6.オブジェクト(ボール)の数をユーザーが設定出来るようにせよ。
      7.スレッドの動作ステータスをプログレスバーを使用し、
       どれくらいで処理が終わるのかユーザーに分かるようにせよ。
      
【 形態 】1. Javaアプリケーション(main()で開始)
【 GUI  】2. Swing
【 期限 】3/27
【 Ver  】1.5.0_11
【 補足 】仕様の通りに組むのですが、自分でGUIのデザインだけは終わらせておきました。
      処理サンプル図を見ていただけたら、分かり安いと思われます。
      GUIデザイン、処理サンプル図:ttp://www.uploda.org/uporg746765.jpg.html
      GUI完成Zipファイル:ttp://www.uploda.org/uporg746763.zip.html
      配布されたZipファイル:ttp://www.uploda.org/uporg746759.zip.html

丸投げでよろしくお願いします。

628 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 22:03:25 ]
4,5,6,7は見た目以上の試練だな。
ソースコード読んだらオフスクリーン管理自分でやってゲームループ回した方がすっきりしそうだ。
描画フローは一本化したいなぁ・・・。

629 名前:627 [2007/03/26(月) 04:54:23 ]
>>628
取り組んで頂いてありがとうございます。


アップロードしたファイルが流れてしまったみたいなので、
普通のWebスペースにアップロードし直しておきました。

GUIデザイン、処理サンプル図:ttp://www.geocities.jp/colt_ps/as4.jpg
GUI完成Zipファイル:ttp://www.geocities.jp/colt_ps/ic5_guikansei.zip
配布されたZipファイル:ttp://www.geocities.jp/colt_ps/ic5.zip

630 名前:627 [2007/03/26(月) 22:22:41 ]
627です。
もし、途中まででも良いので終わらせているのであれば、
そのコードを戴けないでしょうか?
628さんの言う通り、4以降やっていないのでも大丈夫です。

631 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 22:37:00 ]
気が向いたらやってやるかな・・

632 名前:627 [2007/03/26(月) 22:47:33 ]
>>631
ありがとうございます。
自分でもやってはいるのですが、GUIでのプログラムに慣れておらず、
試行錯誤しているうちに、ひとつの終わらないまま提出期日が迫っているので…。

633 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 23:10:05 ]
visual editorか・・

634 名前:627 mailto:sage [2007/03/27(火) 00:15:22 ]
>>633
はい。Visual Editorを使用しています。

635 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 03:08:54 ]
反復処理とは一体何を指すのか?



636 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 04:06:07 ]
>>627
sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29284
眠い、限界
雑な作りだが一応動くはず
反復処理回数の意味がわからなかったので描画回数にした

637 名前:627 mailto:sage [2007/03/27(火) 05:15:19 ]
>>635
イタレーションの事です。分かりにくくて申し訳ありません。

>>636
ありがとうございます。早速、提出しようと思います。
本当にありがとうございました。

638 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 10:19:20 ]
>>637
あーiterationのことか。
じゃあ間違ってるかな。
要するに各スレッドのiterationの合計が反復回数なわけだ?

まあもう提出してしまったみたいだからいいか

639 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 19:29:03 ]
宿題スレなんてあるなんて凄いです。

問1
パラメータから得た値をnとして、2のn乗を求めて表示してください。
nの上限は62として、63以上が入るとメッセージを表示するようにしてください。
int型だと2の30乗までになってしまいます。

って問題なんですけど



640 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 19:29:53 ]
>>639
>>1

641 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 19:30:10 ]
import java.io.*;
public class kadai13{
public static void main(String[]args)throws IOException{

@

int i=1;
long a=2;
while(i<myAnswer){
a*=2;
i++;
}
if(myAnswer<=62){
System.out.println("2の"+myAnswer+"乗は"+a+"です。");
}else if(myAnswer>=63){
System.out.println("2の2乗までしか計算できないよ。");
}
}
}


この@のところに
int a=Imterger.parse Int(args[0])
ってのを使って解かなければならないんですが
分かる方教えてください。


642 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 19:30:55 ]
>640
改行多いっていわれたので2分割しました。

643 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 19:32:44 ]
>>641
>>640

644 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 19:34:43 ]
>>642
誰が改行多いって言ったの?

645 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 19:38:28 ]
POSTしたcgiにだろw



646 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 19:38:59 ]
>>644
ブラウザです。
書き込もうとしたら改行多いから書き込めないっていわれました。

で、すぐ2分割した方を書き込もうとおもったら
連投はできない。しばらくたってから。みたいなこと言われたんで
まってたらその間に違う人が書き込んでしまったんです。

647 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 19:43:22 ]
>>646
質問スレじゃないんだからテンプレ使えと、、、、わかれよそんぐらい

648 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 20:21:11 ]
>>639
public class kadai13 {
public static void main(String[] args) {
try {
int a = Integer.parseInt(args[0]);
if(a <= 62) {
System.out.println("2の" + a +"乗は"+ Math.pow(2, a) +"です。");
}
else System.out.println("2の2乗までしか計算できないよ。");
}catch (NumberFormatException e) {
System.err.println("数字を渡せ!");
}
}
}

649 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 20:46:33 ]
>>648
>>1

650 名前:デフォルトの名無しさん [2007/03/30(金) 09:43:36 ]
【 課題 】入力された複数の数値(数列)の合計値を計算する
【 形態 】Javaアプリケーション(main()で開始)
【 GUI  】制限なし
【 期限 】3月30日一杯
【 Ver  】コンソールでjava -versionを実行し、その結果を貼ります。 《必須》
【 用語 】数学用語、専門用語の意味、説明を書きます。 《あれば必須》
【 補足 】クラス図を以下に記します。

BootStrap 起動クラス

public static void main(args[]) mainメソッド:合計計算クラスを使い、
引数の数列を合算する

CalcSum 合計計算クラス

public void exec (String seq)

private int calc (String seq) execメソッド:calcメソッドを使って数列を合計し、
OutputAnswerクラスを使って結果を出力する
calcメソッド:数列の合計を計算する

OutputAnswer 計算結果出力クラス
private int answer answerメンバ:計算結果
public void setAnswer(int answer)
public void display() setAnswerメソッド:計算結果をanswerにセットする
displayメソッド:計算結果を画面表示する

急な質問ですみません。

651 名前:デフォルトの名無しさん [2007/03/30(金) 10:23:30 ]
ジャバでさ、コマンドライン引数で取得したargs[0]ってString型じゃん?それをintにしたいんだけどどうしたらいいかね?

652 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 10:30:59 ]
英字の名称がカタカナなのと全角なのは流石だな。
高校の頃に固有名詞くらい正式に書けるようになれって言われなかったか。

何はともあれスレ違い乙

653 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 10:44:02 ]
>>650
import java.util.StringTokenizer;
class BootStrap {
  public static void main(String[] args){
    StringBuffer seqBuf = new StringBuffer();
    for(int i = 0; i < args.length; i++){
      seqBuf.append(args[i] + " ");
    }
    CalcSum calcSum = new CalcSum();
    calcSum.exec(seqBuf.toString());
  }
}
class CalcSum {
  public void exec (String seq){
  OutputAnswer outputAnswer = new OutputAnswer();
  outputAnswer.setAnswer(calc(seq));
  outputAnswer.display();
  }
  private int calc (String seq){
  StringTokenizer stringTokenizer= new StringTokenizer(seq);
  int sum = 0;
  while(stringTokenizer.hasMoreTokens()){
    sum += Integer.parseInt(stringTokenizer.nextToken());
  }
  return sum;
  }
}
class OutputAnswer {
  private int answer;
  public void setAnswer(int answer){this.answer = answer;}
  public void display(){System.out.println(answer);}
}

654 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 10:44:14 ]
>>651
pc11.2ch.net/test/read.cgi/tech/1173026128/929-930

655 名前:650 [2007/03/30(金) 11:59:25 ]
>>653さん
早速のレスありがとうございます。
コンパイルして実行してみると入力とは関係無しに出力され結果が0になってしまいます。
どうすれば解決するでしょうか?





656 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 07:44:22 ]
【 課題 】 www.uploda.org/uporg758735.txt
3問ありますorz
【 形態 】Javaアプリケーション
【 GUI  】AWTのみ
【 期限 】4/4まで
【 Ver  】java version "1.6.0"
Java(TM) SE Runtime Environment (build 1.6.0-b105)
Java HotSpot(TM) Client VM (build 1.6.0-b105, mixed mode, sharing)

【 補足 】タートルグラフィックスの問題です。
java初心者で、期限に間に合わなそうなので依頼しにきました。
厚かましくも3問もありますが、よろしくお願いします!

657 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 09:32:24 ]
>>651 Integer.parseInt(args[0]);

658 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 12:12:13 ]
>>656
>java初心者で、期限に間に合わなそう
画面に点を打てて数学関数使える言語なら何でも出来るぞ。
精もない言い訳してる暇があったら高校やり直せ。
ゆとり世代じゃなけりゃ中学で基礎は習ってる。

入力を何処から拾うかと、亀をどう描くかと亀の移動速度が無いように見えるけど?

>>657
初質でとうに解決済みだから見てないと思う。

659 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 13:44:31 ]
講師が居るおまいらが羨ましい。漏れは4ヶ月javaやってるが先生はずっと参考書。
一人でやってみて気付いたが、教えてくれる人が居るって恵まれてるよ。


660 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 16:35:15 ]
丸投げは何も教えてない件について。
それに気づくのは本人じゃなくて後に就職した先の先輩や上司・・・
しかも、講義の内容を理解してないからここで投げるという。

専門生オソロシスw

>>659
このスレでタダで専門と同じ勉強が出来るじゃないか?

661 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 18:59:23 ]
ここは教育機関じゃないし
そんな人間をそれに気づく前に就職させた側に問題がある
フィルターをかける手間を惜しんでリスクを背負うことを選択した結果だ
採用担当と配置後の直接の職場とは違うだろうから使えなくて上司が泣くのはかわいそうだが
そういうのは採用担当に使えんやつは採るなってねじこむしかないな

662 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 19:09:39 ]
>>656
> Turtle は整数の座標でしか動けない。
とか
> 亀の色を変えるのは,亀のkameColor 変数に代入します。線の色を変えるのには,
> setColor メソッドを使います。
とかを見てると、整数座標系で動くタートルグラフィックスのライブラリが出題者から示されていて、
それを使ってプログラムを組めっていうことのように思えるんだけど。
もしそうなら、そのライブラリも提供してくれないと。
それとも、そういう風にタートルグラフィックスシステムも作れっていうことかな?
でも、タートル色はフィールドへの代入で線色はセッターメソッドを使うとか、いやーんな仕様だね。

663 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 20:00:57 ]
とりあえず質問者は亀さんグラフィックスライブラリをどっかにあげるべし。
指定されてる奴があるだろ?
(kameColorでググるとそれらしいのが見つかるが)


664 名前:659 mailto:sage [2007/04/02(月) 20:33:52 ]
でも先生が居たらいたで、漏れも出された課題をこういう所で丸投げしてるんだろうなぁ。


665 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 21:51:47 ]
ほんと一瞬だな。javadocは概要ページとサブパッケージ指定しようぜ?

ttp://www.graco.c.u-tokyo.ac.jp/~masuhara/classes/cp1-2003/resources/api/index.html

バイナリが見つからなかった。




666 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 22:06:35 ]
タートルグラフィックスライブラリあったよ
ttp://bakkers.gr.jp/javabook/download.html

kameColor・タートルしかヒントないのに俺の方が先にライブラリ晒すって質問者ドンだけ無能なんだ?

さあ、ドキュメントもライブラリも揃った。
あとは誰かガンガレ!

667 名前:デフォルトの名無しさん [2007/04/03(火) 05:34:11 ]
【 課題 】Javaアプレットを使用し、ゲームを作りなさい。
      ゲームの詳細・仕様は配布したイメージファイルを参考にしなさい。
      配布イメージ:ttp://www20.tok2.com/home/sweatslip/cgi-bin/uploader/src/ss0218.jpg
【 形態 】2. Applet
【 GUI  】4. 制限なし
【 期限 】4月5日
【 Ver  】1.5.0_11
【 補足 】特にありません。丸投げでよろしくお願いします。

668 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 07:14:15 ]
>>656
ライブラリのひどいソースを見て真面目にやる気が無くなった。
補足質問に対する依頼者の回答がまだないから本当にこれでいいのかどうかも分からないし。
とりあえず問題Aだけ、いい加減に書いた。B、Cはやる気ないから誰かよろしく。
入力は問題の入力仕様に従ったファイルをコマンドライン引数で指定。
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29300

669 名前:656 mailto:sage [2007/04/03(火) 07:25:15 ]
色々と不備があり、大変申し訳ありません…
問題文に補足などがあったのも見落としていて、
ご迷惑おかけしました。
ライブラリは>>666ので合っています。
今後質問するときは不備がないよう気をつけます。
問題文の補足を加えたものを再度UPしましたので、
よろしくお願いします。。。
www.uploda.org/uporg760045.txt

>>668
不備だらけの中、解答してくださって本当にありがとうございます。
参考にさせていただきます!

670 名前:668 mailto:sage [2007/04/03(火) 07:38:19 ]
ごめん。視野角の定義を勘違いしていたみたい。

望遠鏡を覗いたときの中心から星の角度をθとすると,θ<φのときにだけ望遠鏡から見えるとする。

ってなってた。

//* このθが視野角φの半角より小さければ視野に収まっている
* このθが視野角φより小さければ視野に収まっている

//if (φ / 2 > Math.acos((sx[i] * tx + sy[i] * ty) / (Math.hypot(sx[i], sy[i]) * Math.hypot(tx, ty)))) {
if (φ > Math.acos((sx[i] * tx + sy[i] * ty) / (Math.hypot(sx[i], sy[i]) * Math.hypot(tx, ty)))) {

//double angle = Math.atan2(ty, tx) - φ / 2;
double angle = Math.atan2(ty, tx) - φ;

//angle = Math.atan2(ty, tx) + φ / 2;
angle = Math.atan2(ty, tx) + φ;

の4ヶ所を修正して

671 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 07:50:43 ]
データの読み込み方法が補足のやり方とは違っちゃってるね。
BufferedReader + StringTokenizerを使う場合は、、
Scanner#nextDoubleの代わりにDouble.parseDouble(st.nextToken())、
Scanner#nextIntの代わりにInteger.parseInt(st.nextToken())でいけるんじゃないかな。

672 名前:656 mailto:sage [2007/04/03(火) 10:16:03 ]
>>670-671
何度もありがとうございます!
助かります!

673 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 12:28:19 ]
>>667
授業で何やってんの?
サーバとの通信?それともアプレット作るだけ?
アカウントの認証は本当に処理しなきゃいけない?てかベーシック認証?

1)鯖と通信するのか?
2)するならどのような方法で行うのか?
3)なんか資料や必要な物が他にあるだろ?
4)あんなでっち上げ画像なんの役にも立たんから抜けてる所は自分で補完しろ。

#アプレットやろうと思ったら環境ナス・・・

674 名前:667 [2007/04/03(火) 16:36:43 ]
>>673
授業では前期の方でJavaの基礎をやった後、簡単なアプレットを作って、
最後の課題で本格的なアプレットを作れといった流れです。
リサーチもかねて、簡単なコンセプトを配布されただけで後は自分で調べろといった感じです。
本格的な認証は必要ないと思います。ただ、ユーザーのデータベースにあるIDとパスが通れば、
ログインさせる流れです。

1)サーバーと通信します。
2)仮想サーバーを作って、そこにユーザーがアクセスするという形です。
 アパッチで仮想サーバーを自分のPCに作っています。実際にWebには公開しないと思うので、ひとつのマシンでやり取りを完結します。
 つまり、多数ブラウザを開いて一人で複数アカウントを作ってログインして、きちんと動作していれば大丈夫です。
3)資料、画像は自分で図書館や書店で調べろ・用意しろと言われました…。他に必要な物があるなら自分で補完しろとの事です。
4)どうしてもアプレットで無理なら、サーブレットでやっても良いとの事です。

675 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 17:16:55 ]
>>674
>3)資料、画像は自分で図書館や書店で調べろ・用意しろと言われました…。

なら言われた通りに不足分埋めてテンプレの【 補足 】を埋めろ。

>Javaアプレットを使用し、ゲームを作りなさい。
>ゲームの詳細・仕様は配布したイメージファイルを参考にしなさい。
だけじゃ不足してる。その不足分を補完するのが【 補足 】だ。
補完するのはお前の仕事だ。

>【 補足 】特にありません。丸投げでよろしくお願いします。

じゃないだろ。
何で足りん分は自分で考えて自分で用意しろって前提で課題が出てるか分かるか?

#ちょっと待て最近、使えねSEとそいつのせいで仕事出来ねぇPGの図になってるぞ。

丸投げの定義を>>1~のテンプレに追加した方がよくね?
ループしてるぞこの話。



676 名前:667 mailto:sage [2007/04/03(火) 18:12:22 ]
>>675
分かりました。補足・素材を用意して出直してきます。
少々お待ちください。

677 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 18:56:45 ]
>>656
面倒だしmainメソッドをどんどん大きくしていった。

ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29301
問題Aについて補足のようにBufferedReaderとStringTokenizerを使ったファイルの読み込みかたに>>668を修正。

ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29302
それと問題B。亀の速度制御の変更とかは定数をいじるなりspeedの値の増加アルゴリズムを変えるなり。

問題Cは亀の最初の移動方向をどうするかが指定されていない。出題ミス?
って尋ねてるけど、別にやるなんて言ってないわよ。勘違いしないでよね!

678 名前:656 mailto:sage [2007/04/03(火) 19:36:16 ]
>>677
ありがとうございます!
自分で解こうとしても、半日かけても1問も解けなかったりするのですが
ここの人たちは仕事早いしツンデレだったり、ホントすごいです!

問題Cの最初の移動方向は好きなように設定して
良いかと思います。
問題の指示通り動けば良いみたいなので。


問題文流れてしまったようなので別のうpロダに再うp
したので、どなたか問題Cをお願いします。。。
up.spawn.jp/file/up13102.txt

679 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 00:50:56 ]
>>678
なんか誰もやってないっぽいんでいまさらながら見てみたけど。。
ライブラリいらね・・あまりに糞過ぎる
これは確かにやる気が失せる
ってか俺はもう投げた

680 名前:677 mailto:sage [2007/04/04(水) 01:21:32 ]
>>678
つんでれうんぬんは置いておいて、実際のところ問題Cまで手を出す暇はない。
「示しなさい」のところの簡単な手がかりを出しとく。でも、今はこれが精一杯。
正しくやろうとすると、例えば、内部判定の場合、
判定する点からの線分と辺とが重なってたり頂点を通ってたりする場合を考えないといけないとか、
いろいろ特別な場合について考慮しないといけないんだけど。がんばってくれ。

Q. 亀が檻の中にいるのかいないのか求める計算方法を外積を使って示しなさい。
A.
檻の辺がとる最大X座標は限定されているので
亀の位置からX軸に平行で檻の頂点のX座標の最大値よりも大きいX座標をもつ点までの線分を考え
その線分と檻の各辺との交点が奇数個であれば内部、偶数個であれば外部と判定する
交点があるかどうかの判定は
亀から線分の端点へのベクトルをA
亀から檻の辺の両端点へのベクトルをB、C
外積A×Bと外積A×Cの符号が異なれば交点をもつと判断する

Q. 亀が檻にぶつかったときに,次にどの方向に動くのか求める計算方法を示しなさい。
A.
檻の頂点がとる座標の最大最小値は限定されているので
現在の亀の位置から亀の移動方向で確実に檻の外にある点までの線分を考える
この線分と檻の各辺との交点をそれぞれ問題Bの亀の軌跡とハードルの交点を求める方法で求める
もし線分が2辺と交わるのなら、それは檻の角でぶつかったことになる
この場合は亀の移動方向を180度回転させる(移動方向ベクトルの符号を反転させる)
さもなければ亀は檻内部にいるので1辺との交点しかないはず
その辺がX軸の正の方向となす角をα
ぶつかる前の亀の移動方向とX軸の正の方向とのなす角をθ
衝突後の亀の移動方向とX軸の正の方向とのなす角は 2 * α - θ となる

681 名前:665=666 mailto:sage [2007/04/04(水) 02:01:27 ]
まあ、ミニミニ衝突判定ライブラリを書かなきゃいけないからね。
あのクソ亀公使って・・・あれはやる気なくす。

javadoc見て酷い設計だと思ったが。
ソースコード見て絶句した。

あの本、素人向けでライブラリ作るんじゃなくて
既存ライブラリ使う所から始めるんだってさ。

682 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 00:46:10 ]
恐いものみたさに見てしまった

683 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 07:12:38 ]

それはjava宿題スレに晒されたタートルグラフィックスライブラリである・・・。

ライブラリの出来の酷さに見ただけでやる気を無くす回答者が続出した。

警告しよう決して怖いもの見たさに見てはいけない・・・。

 〜D Q N な カ メ さ ん〜
   D Q K 3 -そして伝説へ-

ttp://bakkers.gr.jp/javabook/download.html


684 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 00:15:46 ]
【 課題 】ttp://www.uploda.org/uporg772084.txt.html
【 形態 】1. Javaアプリケーション
【 GUI  】4. 制限なし
【 期限 】4/16
【 Ver  】java version "1.5.0_06"
【 補足 】恥ずかしながら丸投げです。
       お願いします。

685 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 12:47:56 ]
以前同じような問題を解いた



686 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 13:39:39 ]
>>684
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29319
「////////// filename」でそれぞれのファイルに分けてくれ。
デバッグしてないから動かなくても知らん。エラーメッセージも一貫性がないぜ。
長方形の指定方法が指定されてない&「4つの属性でボード上の長方形を識別できるものと考える」
なんて書かれてるから、操作対象の長方形は幅、高さ、左上隅のx、y座標で指定するようにしてる。
浮動小数使うと指定が面倒になるので、長方形の座標やサイズはintにしてる。

687 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 20:48:36 ]
>>686
有難うございます!助かりました。
大いに参考にさせてもらいます!

688 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 22:18:48 ]
【 課題 】1.レベル1(直線発生アルゴリズム)
直線式を用いて(100,100)から(600,300)の2次元座標点を結ぶ直線と、(100,100)から(300,600)の点を結ぶ直線を描画する。直線の色は視覚可能な色であれば任意とする。JavaのPolylineなど直線描画関数を使用しない。

2.レベル2(3次元デプスキューイング・アルゴリズム)
 (100,100,0)から(600,300,100)の3次元座標点を結ぶ直線を描画する際、z値の座標値を輝度と見なしてz=0の点の輝度を0(最小値)、z=100の点の輝度を255(最大値)として描画する。直線の色は視覚可能な色であれば任意とする。

【 形態 】2. Applet

【 期限 】4月26日

【 補足 】1はたぶん
package Ex1;

import java.applet.Applet;
import java.awt.Graphics;

public class level1 extends Applet {

public void paint(Graphics g) {
g.drawLine(100, 100, 600, 300);

g.drawLine(100, 100, 300, 600);
}

}

だと思うのですがどうでしょうか?
2はまったくわかりません

689 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 22:27:12 ]
>>688
drawLine使っていいの?

690 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 22:30:28 ]
>>689
それがよくわからんのです。
使わないとしたら、どのようにすれば?
直線式というのが気になりますよね。

691 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 22:30:47 ]
>>688
drowLineってここで言ってる直線描画関数なんじゃ?
y=ax+bみたいな式を作ってしてループでぐりぐりまわしてちまちま点を打っていけ
ととれるんだけど…


692 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 22:32:36 ]
>>691
なるほど。
そういう用語とか調べてはいるのですが、よくわからないもので。
forを使うのですか?

693 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 22:47:34 ]
drawLine等を使わないとなると、
for文で回して1ピクセルごとに直線の座標を計算して点を打っていくんだが、
残念なことにGraphicsには点を打つメソッドがない。
幅と高さが1の四角形の中を塗りつぶす等で代用するか、
画像バッファとして配列等を用意して、それに画素値を入れて行き、
最後にバッファの内容を画像として表示するかのどちらかだな。
Imageを使う手法は習ってる?

あと、問題2の方の座標系は左上が原点でX,Y座標が右、下方向で、
Z座標が画面に垂直な方向ということでいいの?

694 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 22:57:00 ]
>>693
丁寧にありがとうございます。
たぶん一番初めの問題なので、それほど高度なことはしないと思います。
Imageを使う手法わかりません。

問い2はそうであると思います。

695 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 23:39:27 ]
>>688
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29321
とりあえず、問題1の方。こんな感じでいいかい?
要は、(x1,y1)から(x2,y2)までの線分が通るピクセル(x,y)が
y = y1 + (y2 - y1) / (x2 - x1) * x
とか
x = x1 + (x2 - x1) / (y2 - y1) * y
の直線の式を満たすから、xかyを1づつ変化させて、
もう一方の座標を求めてそのピクセルを塗ればいい。
問題2はこれの応用だ。自分でやるかい?



696 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 00:53:01 ]
すまん。プログラムを見れば分かると思うけど、直線の式は、
y = y1 + (y2 - y1) / (x2 - x1) * (x - x1)
x = x1 + (x2 - x1) / (y2 - y1) * (y - y1)
の間違いね。

697 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 20:04:52 ]
なんで大学とかって基礎(if文だのfor文だの)一通り教えたらGUIに走るのかな。

そんなのは必要になったときに自習でなんとかなるんだから、もっとOOPを教えるべき。

698 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 20:42:52 ]
そりゃ見た目派手で眺める分には楽しいし、
数字の羅列や意味の分からないプログラミング理論を教えられるより、
プログラムによって計算機に何かさせているという実感が沸くからじゃないかね。
もちろん、今後こっち方面で仕事したいとかいう人間は、
GUIが必要になったときに自習で何とかして、OOPとかの基本を教えられるべき人間なんだろうけど。
そういう人間ばかりじゃないと思うから。

699 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 20:47:29 ]
>>688
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29324
問題2。基本は問題1と同じ。
X,Y座標のついでにZ座標も求めて、その値に応じてピクセルの色を設定するだけ。

700 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 21:26:39 ]
本当に必要なのはOOPなんかじゃない論理的な思考だよ。
どんなことも論理的に考え、論理的に理解出来る姿勢。
ある事を知っているということは重要じゃない。

↑にはもちろん、知らない事があったら
ブチ切れるより前に自分で調べるという姿勢も含みます。

701 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 23:55:17 ]
まあ>>688はCGの授業らしいからグラフィクス関係が出てこないと看板に偽りありだけどね

702 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 00:00:33 ]
やる気のある奴ならOOPくらい自習で何とかなるよ。
しかし抽象的概念が先っていうのはやる気でねぇよ。

703 名前:デフォルトの名無しさん [2007/04/16(月) 12:06:55 ]
【 課題 】一定の幅と高さをもつボードがある。図のようにボード上には左上隅を原点とする座標
系(x 座標、y 座標)が定義されているとする。この時、つぎの条件を満たすように二
辺の長さとボード左上の位置を表す座標をもつ長方形をボード上に配置するプログラ
ムを作成せよ。座標系の単位はピクセル。
【 形態 】1. Javaアプリケーション(main()で開始)
【 GUI  】4. 制限なし
【 期限 】4月17日13時ぐらいまで
【 補足 】自分でやってもどうしてもわからなかったので丸投げです
      期限が近くてごめんなさい・・・
      でも一応自分でも今努力中です
      補足には続きがあります
      

704 名前:デフォルトの名無しさん [2007/04/16(月) 12:09:27 ]
703の補足の続き  

1) 配置に関する以下の操作を行うことができる。各操作の名前は以下の通りである。
a) 幅、高さ、左上の位置(x座標、y座標)を与えて長方形を作成する。create
b) 長方形R を指定して、Rを現在位置から指定したx方向の距離x0,y方向の距
離y0b だけ移動する。move
c) 長方形R を指定して、指定した幅の倍率mx(>1)で幅を、高さの倍率my(>1)で
高さをそれぞれ拡大する。倍率は有限小数で与えるものとする。expand
d) 長方形R を指定して、指定した幅の倍率mx(0<mx<1)で幅を高さの倍率
my(0<my<1)で高さをそれぞれ縮小する。倍率は有限小数で与えるものとする。
shrink
e) 長方形R を指定して削除する。delete
f) ボード上の長方形をすべて削除する。deleteAll
g) 2 つの長方形R1 とR2 を指定し、R1 とR2 の重なり部分を抽出し、新たな長方
形R3 として配置する。intersect
(2) その他に次の操作を行うことができる。
a) ボードの状態を表示する。displayBoard
ここで「ボードの状態を表示する」とはボード上にあるすべての長方形の属性(幅、
高さ、x 座標、y 座標)を表示するということ。
b) 配置に関する操作を終了する。 exit
(3) ユーザはキーボード(標準入力)から(1)の操作名と必要なデータを入力し、プ
ログラムが結果のボード上のデータ(どの位置にどの長方形が配置されている
か)を標準出力に出力する。このプログラムは以下のように使用することができ
る。
a) ユーザは起動時にボードの大きさ(幅と高さ)を設定する。
b) 起動すると、操作一覧が表示される。
c) ユーザは操作を選択し、要求されるデータを入力する。
d) 操作の実行が終了すると、操作一覧に戻り、exit が実行されるまで操作を選
択することができる。

さらに続きます

705 名前:デフォルトの名無しさん [2007/04/16(月) 12:11:03 ]
704の続き

(6) クラス構成に関する条件:
RectangleEditor:mainメソッドをもつクラス
Rectangle:長方形のクラス
Board:長方形を配置するボードのクラス
Command: ユーザからの入力を受け取り、長方形に対する操作を呼び出し、ボー
ドの状態を更新するクラス
標準入力からの入力ならびに標準出力への出力クラスをInput およびOutputと
して、それぞれ以下のインターフェースを実装する。
public interface InputIF {
public abstract double input();
}
public interface OutputIF {
public abstract void write(Board b);
public abstract void write(String s);
}
10 20 30 40 50 60
10
20
30
40
50
60

だそうです・・・この1.2.3.6を今回はやるそうです
よろしくお願いします



706 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 14:01:55 ]
>>703
>>686を見ろ

707 名前:デフォルトの名無しさん [2007/04/16(月) 16:17:09 ]
>>706
同志がいたんですね・・・ご指摘ありがとうございます

708 名前:688 mailto:sage [2007/04/17(火) 00:39:27 ]
>>699
遅れましたが、ありがとうございました。

if (Math.abs(dx) > Math.abs(dy)) {
for (int x = x1; x != x2; x += sx) {
double y = y1 + (double) dy / dx * (x - x1);
setPixel(g, x, y);
}
} else {
for (int y = y1; y != y2; y += sy) {
double x = x1 + (double) dx / dy * (y - y1);
setPixel(g, x, y);
}

と途中にあったのですが、これが点をひとつずつずらしていっているという作業なのですか?
今までforはfor(int a=0;a<10;a++)のような簡単のものしか扱った事しかないので、
理解に苦しんでいます、

709 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 01:50:19 ]
>>708
sx(sy)はx1>x2(y1>y2)なら-1、x1<x2(y1<y2)なら1が入ってるから、
x(y)がx1(y1)から始まればx(y)座標を1ずつ変化させて、
最終的にx2(y2)に到達してx!=x2(y!=y2)が不成立となりループが終了する。

710 名前:688 mailto:sage [2007/04/17(火) 11:52:43 ]
>>709
1の問題を自分なりにわかりやすく解いてみたのですが、線が点線のようになってしまいます。
なにが足りないのでしょうか?
package Ex1;
import java.applet.Applet;
import java.awt.Graphics;
public class level1 extends Applet {
public void paint(Graphics g) {
drawLine1(g, 100, 100, 600, 300);
drawLine2(g, 100, 100, 300, 600);
}
private void drawLine1(Graphics g, int x1, int y1, int x2, int y2) {
for (int y = y1; y < y2; y += 1) {
double x = x1 + (double) (x2 - x1) / (y2 - y1) * (y - y1);
setPixel(g, x, y);
}
}
private void drawLine2(Graphics g, int x1, int y1, int x2, int y2) {
for (int x = x1; x < x2; x += 1) {
double y = y1 + (double) (y2 - y1) / (x2 - x1) * (x - x1);
setPixel(g, x, y);
}
}
private void setPixel(Graphics g, double x, double y) {
g.fillRect((int) x, (int) y, 1, 1);
}
}

711 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 16:19:34 ]
【 課題 】以下のプログラムを作成せよ。
(1)スタックと演算子順位を使った構文解析により、中置記法の式を後置記法に変換するプログラム。
(オペランドはa〜zの一文字とする)
(2)中置記法の式を後置記法に変換し、スタックを使ってその後置記法の式を計算するプログラム。
(オペランドは整数または実数)

後置記法に変換するアルゴリズム:
 初期設定:スタックに'$'だけを積む
 以下を繰り返す
(1)次の入力記号aiを読む(入力記号がなかったら'$'を読んだことにする)
(2)aiがオペランドなら、それをそのまま出力
(3)aiが'('なら、それをスタックに積む
(4)aiが')'なら、最初に出てくる'('までスタックから降ろす(オペレーターは出力する)
(5)aiが'$'なら、'$'までをスタックから降ろし(オペレーターは出力する)、処理を終了
(6)その他の場合(aiはオペレーター。そのときスタックのトップがbであるとする)
 bがオペレーターでありprec(b)>=prec(ai)である間(precは演算子順位を返す関数)
 bをスタックから下ろして出力する。
 bがオペレーターでないか(bは'('か'$')、prec(b)<prec(ai)なら、aiをスタックに積む

 prec(+)=prec(-)=1
 prec(*)=prec(/)=2

問題の例:
中置記法 a*b+c → 後置記法 ab*c+
中置記法 d-(e+f*g) → 後置記法 defg*+-

【 形態 】1. Javaアプリケーション
【 期限 】4/20(金) 23:00まで
【 Ver  】java version "1.6.0_01"

丸投げですがよろしくお願いします。

712 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 16:53:07 ]
>>710
惜しい!
drawLine1はy軸を基準に1ドットずつ描画してるだろう。
だけど、引数をみるとx軸の線の方がy軸より長い。
だからdrawLine1はy軸が1増えるたびに、x軸の一定距離の描画をすっぽかしている。
もう答えは分かるだろう。

713 名前:688 mailto:sage [2007/04/17(火) 20:22:28 ]
>>712
むむ。。。
ならばこういうことでしょうか?
sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29327

714 名前:712 mailto:sage [2007/04/17(火) 22:58:02 ]
>>713
課題はクリアしてるし、これで提出しても最低でも良(優良可不可)、学校によっては優をとってもおかしくないと思う。
でも、線は太くなるだろう。
まだ時間があるなら極めるも良し、このまま寝るも良し。

ただ、さっきのソースの方が今回のソースより惜しかった。

715 名前:688 mailto:sage [2007/04/17(火) 23:29:18 ]
>>714
ありがとうございます。
とりあえず他の授業のレポートも残っているので、これで切り上げます。
色々とありがとうございました



716 名前:デフォルトの名無しさん mailto:sceudle1029@mail.goo.ne.jp [2007/04/19(木) 00:00:17 ]
1,2,3,…,nの和・積を表示されるプログラムを作りたいのですが、わかりません。教えて下さい。
たとえば7を入力すると、
1+2+3+4+5+6+7=28
1*2*3*4*5*6*7=5040
という風になります。

【形態】CPad for Java2 SDK
【期限】4月24日午後0時
【補足】計算はできているのですが、1+2+3+…1*2*3*,の部分ができない状態です。

717 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 00:02:02 ]
>>716
>>1

718 名前:デフォルトの名無しさん mailto:sceudle1029@mail.goo.ne.jp [2007/04/19(木) 00:06:33 ]
??


719 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 00:47:44 ]
>>718
>>1を1文ずつ良く読め。テンプレに従って書け。」ということ
守らないとスルーされるから(−人

720 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 01:09:49 ]
>>711
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29329
//////////--**++**-- "ファイル名"
で各ファイルに分解してくれ。
設計せずにてきとーに書いたので、かなりいい加減なコードだ。
正しい入力にはたぶん正しく応答すると思うが、
誤り処理の仕様が書かれてなかったので、誤った入力は無視したり例外を投げたりてきとー。
中置記法の式の与え方も書いていなかったので、コマンドライン引数で与える形にした。
(1)の実行はjava InfixNotationTranslator "a*b+c"みたいに。
(2)の実行はjava Calc 1.5+3/2みたいに。
空白文字は無視するし、複数のコマンドライン引数に分けて与えると空白を挿入して連結する。
字句解析器に渡す入力はReaderにしてるので、
入力がファイルとかコンソールとかなら今のStringReaderをそういう入力にすれ。

721 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 01:34:01 ]
>>716
またおまえか

722 名前:688 mailto:sage [2007/04/19(木) 21:49:43 ]
【 課題 】
1.レベル1(スクロールバーによる回転)
直線が互いに直行するメッシュ図(碁盤の目の模様)を描画し、スクロールバーにより、メッシュを360度回転せよ。
メッシュは2次元図形でよい。またメッシュの色や数(>4)は任意とする。

2.レベル2(3次元メッシュ)
 メッシュを3次元で描画し、3軸のスクロールバーを用いて3次元で回転する。回転中心はメッシュの中央とする。

3.レベル3(デプスキュー)
 課題2において、z軸の値を輝度(色)と見なしz値が遠方を輝度が弱く、手前を強い映像を描画し、これを3軸のスクロールバーで回転せよ。メッシュは細かくするのが好ましい。

4.レベル4(透視変換)
 課題3のメッシュに透視変換(z値でx、y軸を除算)を加えて描画せよ。

【 形態 】2. Applet

【 期限 】4月3日

【 補足 】
スクロールバーは作れたのですが、メッシュがいまいちわかりません。
直線を組み合わせて作るだろうということはわかるのですが。。。

723 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 23:41:44 ]
>>722
1本の直線の描き方は分かってきたんだから、
メッシュは線分を複数描けばすむじゃないか。
ところで、これも標準のAPIを使わず自前の直線描画メソッドを使うの?
回転したときの線分の両端の座標の計算はJavaの宿題じゃなくて数学の宿題だな。
座標変換の式を質問者が補足で説明した方がいい。
なんにせよ、しめきりまで少なくともまだ1年近くあるんだし、もう少し自分でがんばれw

724 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 00:01:11 ]
>>723
あれ?AffineTransform使わないの?

725 名前:688 mailto:sage [2007/04/20(金) 01:12:56 ]
>>723
ちょww
5月3日ですorz
直線をforループで等間隔に並べていけばおkってことですか?
APIとは?



726 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 01:34:51 ]
>>724
前回の出題レベルを見るにAffineTransformは使っちゃいけないんじゃないか?
それに3次元に対応できないし。座標変換は自分で書けってことだと思うが、どうよ?>>722
Java3Dとかでも使っていいってこととは思わないんで。

>>725
> 直線をforループで等間隔に並べていけばおkってことですか?
原理的にはそう。
「標準のAPIを使わず自前の直線描画メソッドを使うの?」って聞いたのは、
drawLineとかのJavaで最初から用意されている直線描画用のメソッドは使ってもいいのかどうかってこと。
前回は点を打って直線にするメソッドを自前で作ったから。

標準で用意されたどのメソッドまで許されるのかとかは、AffineTransformは使えないの?とかも含め、
どの程度の縛りがあるのかは授業を受けている人間でないと分からない。

727 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 12:32:06 ]
>>722
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29330
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29331
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29332
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29333
とりあえず動きそうなものを作ったが正しいかどうか知らんよ。
3,4はアプレットのサイズを大きくすると環境によっては結構重いかも。

1,2では直線描画のメソッドdrawLineは単にGraphicsクラスのdrawLineを呼び出しているだけなので、
もし使用不可なら以前の課題で作成した2次元での線分描画メソッドに変更のこと。

2以降の3次元内での回転は、z=0平面内にメッシュがある最初の状態から始めて、
x軸周りの回転、y軸周りの回転、z軸周りの回転の順序で行った時の状態を表示する。
だから、たとえばy軸周りに90度回した状態でx軸周りに回転すれば、
見かけはz軸周りに回転しているように見えるので注意。

Level1.javaからLevel4.javaまで全てを同時にコンパイルすると、
Point3クラスが重複するって怒られるので、別々にコンパイルのこと。
どれも同じバイトコードを生成するので、コンパイル後のクラスファイルが上書きされるのは問題ないはず。

728 名前:688 mailto:sage [2007/04/20(金) 20:52:39 ]
>>726
drawlineは前回のものを使うそうです。

それとlength = (width > height ? height : width) / 3;
の?って始めてみたのですが、どういう意味があるのですか?

729 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 21:15:45 ]
>>728
三項演算子
条件式?値1:値2
条件式の評価結果がtrueなら値1、falseなら値2を返す
値の代わりに処理も記述可能(複雑な処理だと可読性が下がるのであまりお勧めしない)

if〜elseを一行にまとめたようなものとでも思ってくれい

730 名前:デフォルトの名無しさん [2007/04/22(日) 00:04:57 ]
【 課題 】
int型の要素を持つsourceを0,2,4,6,....16,18で初期化しint型の配列要素aliasを宣言し、sourceと同じ配列要素を確保する。
aliasにsourceを代入する。 int型の配列変数targetを宣言し、sourceと同じ配列要素数を確保する。
sourceのそれぞれの要素をtargetの要素に繰り返し文によりコピーする。
aliasのそれぞれの要素を10倍する(10倍したものをaliasに代入)しsourceの要素、targetの要素をそれぞれ表示


【 形態 】1. Javaアプリケーション(main()で開始)
【 期限 】提出期限は月曜です。
【 補足 】 プログラムは作って、コンパイルは出来るように なったんですが、表示が上手くできません
class FirstClass04{
public static void main(String args[]) {
int source[]={0,2,4,6,8,10,12,14,16,18};
int alias[]= new int[10];
alias=source;
int target[]=new int[10];
for(int i=0; i<10; i++) {
target[i]=source[i]; }
for(int j=0; j<10; j++) {
alias[ j]=alias[ j]*10; }
System.out.println("sourceの要素");
for(int g=0; g<10; g++) {
System.out.println("source[ j]"); }
System.out.println("targetの要素");
for(int k=0; k<10; k++) {
System.out.println("target[i]");
}}}




731 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 00:32:21 ]
System.out.println("source["+j+"]="+source[j]);
面倒だから読んでないんだがjでいいのか?

732 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 01:54:43 ]
>>730
System.out.printlnで表示するときに""で囲むのは囲まれたものを文字そのものとして表示するとき
変数の内容を表示するときは""で囲わずそのまま書く

public class FirstClass04 {
public static void main(String[] args) {
int[] source = {0, 2, 4, 6, 8, 10, 12, 14, 16, 18};
int[] alias = new int[source.length];
alias = source;
int[] target = new int[source.length];
for (int i = 0; i < source.length; i++) target[i] = source[i];
for (int j = 0; j < alias.length; j++) alias[j] = alias[j] * 10;
System.out.println("sourceの要素");
for (int g = 0; g < source.length; g++) System.out.println(source[g]);
System.out.println("targetの要素");
for(int k = 0; k < target.length; k++) System.out.println(target[k]);
}
}

733 名前:デフォルトの名無しさん [2007/04/22(日) 14:24:38 ]
【 課題 】オセロの盤面を作成せよ《必須》
【 形態 】1. Javaアプリケーション(main()で開始)
【 GUI  】2. Swing
【 期限 】2007/4/22
【 Ver  】java version "1.5.0_10"
【 補足 】以下のソースのプログラムを起動したときにオセロの盤面が表示されません。
      フレームを最大化などにすると、ようやく表示されます。
      コンポーネントの作成順序が間違っているのでしょうか?


734 名前:733 [2007/04/22(日) 14:29:18 ]
以下がコンポーネントを作成しているメソッドになります。

public void init_view(){

cnt = getContentPane();
cnt.setLayout(new BorderLayout());
JPanel jp[] = new JPanel[2];
jp[0] = new JPanel(new GridLayout(8,8));
jp[1] = new JPanel(new FlowLayout());
for(int i=0;i<8;i++){
for(int j=0;j<8;j++){
jl[i][j] = new JLabel();
jl[i][j].setBorder(new LineBorder(Color.black,3));
jp[0].add(jl[i][j]);
}
}
jb[0] = new JButton("PASS");
jb[1] = new JButton("EXIT");
jb[2] = new JButton("RESET");
jp[1].add(jb[0]);
jp[1].add(jb[1]);
jp[1].add(jb[2]);
jp[0].setBackground(Color.green);
jp[1].setBackground(Color.black);
cnt.add(jp[0],BorderLayout.CENTER);
cnt.add(jp[1],BorderLayout.SOUTH);
}

735 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 16:54:23 ]
>>733
setBounds



736 名前:デフォルトの名無しさん [2007/04/22(日) 18:39:45 ]
【 課題 】 複素数のクラス(Complex)を考える.複素数は「もの」として考えると,
実部の値と虚部の値という性質を持つ必要があり,実部や虚部の値を取り出す機
能が最低限必要である.

コンストラクタ:
実部と虚部を引数として初期化

フィールド:
実部の値及び虚部の値を持つために,realNum 及び imagNum を用意

メソッド:
toString()メソッドは,「2.3+4.2i」等と表示を行うためのメソッド(詳細は次週)
getReal()メソッドは,複素数の実部の値を返す
getImaginary()メソッドは,複素数の虚部の値を返す

以下の SecondClass01.java を完成して,実行しなさい.

【形態】1. Javaアプリケーション(main()で開始)
【 期限 】2007/4/23まで




737 名前:デフォルトの名無しさん [2007/04/22(日) 18:41:04 ]
これが問題です。
class SecondClass01{
public static void main(String args[]){
Complex complex01 = new Complex(2.5, 4);
Complex complex02 = new Complex(4, -2);
System.out.println("The first complex = " + complex01);
System.out.println("The second complex = " + complex02);
System.out.println("Re(" + complex01 + ") = " + complex01.getReal());
System.out.println("Im(" + complex01 + ") = " + complex01.getImaginary());
}}
class Complex {
double realPart;
double imagPart;
public Complex(double r, double i){
realPart = r;
imagPart = i;}
public double getReal(){
// ここを完成させる}
public double getImaginary(){
// ここを完成させる }
public String toString(){
StringBuffer sb = new StringBuffer().append(realPart);
if (imagPart >= 0.0)
sb.append('+');
return sb.append(imagPart).append('i').toString();
}}


738 名前:デフォルトの名無しさん [2007/04/22(日) 18:47:22 ]
732の方ありがとうございました。
【 課題 】
730と同じ問題で、実行後どうしてそのような表示結果が得られるかを
変数の参照方法などに注意して詳しく説明しなさい.
【 期限 】明日までです


739 名前:デフォルトの名無しさん [2007/04/22(日) 19:18:25 ]
ソースを一行ずつみていって、メモリへの格納内容を見ていけばいいんじゃない?

740 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 19:21:17 ]
>>736-737
そこまで提示されて何故自力でやろうとしないのか...

741 名前:733 [2007/04/22(日) 19:54:51 ]
>>735
setBoundsでもうまく行きません。
お願いします。今日中にやらないと間に合いません。

742 名前:デフォルトの名無しさん [2007/04/22(日) 20:37:21 ]
今日中?朝マックまで12時間はあるだろ?

743 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 21:51:10 ]
>>741
普通に描画されるぞ?

744 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 22:19:46 ]
>>733の言ってる事って、ウインドウ出るけど描画されない
(うちだとされる時もある)って事?
それ、俺もあるわw
sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29336
原因分かる方俺にも教えてって事で。

>>736
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29338
これでいいの?いいのか?w
2つ目の複素数を出力しないのも気になったんでそれも追加w

745 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 22:53:02 ]
>>744
setVisibleを最後にもってきたらちゃんと表示された



746 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 23:32:44 ]
そりゃそうだろうな

747 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 01:35:43 ]
激しくすれ違いなんだが、

次の2の補数表現で表された2進数を10進数を直せ。
0111 1111 1111 1111 1111 1101 0011 0011

748 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 01:47:41 ]
>>747
2147482931

749 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 02:03:40 ]
>>748
1111 1111 1111 1111 1111 1101 0011 0011


750 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 03:09:17 ]
>>747
最上位ビットが0ってのが,いまいち解せんのですが
33ビットの二進数だと考えて、つまり

   1 0111 1111 1111 1111 1111 1101 0011 0011
  ↑
 ここに符号があって、値部分を32ビットで表現してる

ものだと解釈すれば、それを10進数で表現したものは
   -2147484365
になると思います。

一方、>>749さんのように解釈し、「2の補数なので符
号ビット部分は1だけど、>>747では符号ビットを除い
て示した(ただしつい最上位ビットも0と書いてしまった)
のだと見れば、それを10進数で表現したものは
    -717
じゃないでしょうか。

しかし、ここはJavaスレですし、Javaらしく「intは符号
付き32ビット」と考えれば>>747の数値は正の値という
ことになり >>748にあるように、10進数での表現は
   2147482931
だと思います。

751 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 13:16:07 ]
どれが正解かわかんねw

752 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 19:37:09 ]
>>751
まあ問題文の日本語の助詞からして狂ってるから
分かるわけないな。

753 名前:デフォルトの名無しさん [2007/04/23(月) 22:27:31 ]
重い課題投下してもいいでしょうか・・・

【 課題 】フレーム上で画像を選択して読み込み、その画像を閾値(しきいち)をつかって二値化するプログラムを作成せよ。
まずフレームのメニューから画像を読み込み、さらにメニューから閾値を入力するダイアログを表示させる。
そのなかに用意したテキストボックスに閾値を入力して決定すると、あらたなフレームに二値化された画像が表示される。

【 形態 】1. Javaアプリケーション(main()で開始)
【 GUI  】1. AWTのみ(フレームを使う)
【 期限 】4月25日(水)午後5:30迄
【 Ver  】java version "1.5.0_11"
【 用語 】
●閾値(しきいち)
閾値というのは各画素の明るさをあらわす一定の基準値であり、
画像の各画素値が0〜255の濃度で表されるため、これを閾値の範囲として定める。

●二値化
二値化とはこの場合前述の閾値を使って、画像を黒と白の二つの値に変換することである。
例えば閾値100であるならば濃度値100以上は黒それ以下は白というように。
※モノクロ画像に変換するということではない。

【 補足 】全然わかりづらいと思うので、ペイントで書いてみました。
www.uploda.org/uporg785109.png
たくさん数式が必要なんでしょうけどわかりません;
プログラム上でRGBにマスク?をかけてモノクロ画像にしてから濃度値を取り、
二値処理を行うってことでいいんでしょうか。全然的外れなこと言ってたらごめんなさい;
ここまでの少ない情報量で作れるかたいらっしゃらないでしょうか?
どうかよろしくお願いします。


754 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 22:58:34 ]
RGBから明るさへはjava.awt.Color.RGBtoHSBで変換できるので、
そこからB成分だけ貰えばいい。


755 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 22:59:29 ]
訂正 →HSB表現に変換できるので

UI作るのめんどうなのでヒントだけ。




756 名前:デフォルトの名無しさん [2007/04/23(月) 23:01:36 ]
>>755
ありがとうございます。
自分でも頑張ってみます。

757 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 06:52:02 ]
>>756
いやここは俺がやるわ

758 名前:デフォルトの名無しさん [2007/04/24(火) 06:52:46 ]
>>757
いーや、俺がやるね!

759 名前:デフォルトの名無しさん [2007/04/24(火) 06:53:15 ]
>>758
いやいや、俺が

760 名前:デフォルトの名無しさん [2007/04/24(火) 06:53:22 ]
>>758
どうぞどうぞ

761 名前:デフォルトの名無しさん [2007/04/24(火) 06:53:24 ]
>>758
いやいや、俺の方が

762 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 06:53:50 ]
じゃあ俺がやるよ!!!

763 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 06:53:50 ]
>>761
ここは俺がいくよ

764 名前:デフォルトの名無しさん [2007/04/24(火) 06:54:17 ]
・・・俺もやろうかな

765 名前:デフォルトの名無しさん [2007/04/24(火) 06:54:49 ]
>>764
どうぞどうぞ



766 名前:デフォルトの名無しさん [2007/04/24(火) 06:55:03 ]
>>764
どうぞどうぞ

767 名前:デフォルトの名無しさん [2007/04/24(火) 06:55:12 ]
>>764
どうぞどうぞ

768 名前:デフォルトの名無しさん [2007/04/24(火) 06:55:20 ]
>>764
どうぞどうぞ!

769 名前:デフォルトの名無しさん [2007/04/24(火) 06:55:33 ]
>>764
どうぞどうぞ

770 名前:デフォルトの名無しさん [2007/04/24(火) 06:55:59 ]
>>764
どうぞどうぞ

771 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 06:56:19 ]
>>764
どうぞどうぞ

772 名前:デフォルトの名無しさん [2007/04/24(火) 06:56:29 ]
>>764
どうぞどうぞ

773 名前:デフォルトの名無しさん [2007/04/24(火) 06:56:56 ]
>>764
どうぞどうぞ

774 名前:デフォルトの名無しさん [2007/04/24(火) 06:57:57 ]
>>764
どうぞどうぞ

775 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 07:19:04 ]
>>764
どうぞどうぞ



776 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 07:48:59 ]
>>764
どうぞどうぞ

777 名前:デフォルトの名無しさん [2007/04/24(火) 10:03:05 ]
>>764
どうぞどうぞ

778 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 10:16:25 ]
>>764
どうぞどうぞ

779 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 10:34:36 ]
>>753
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29345
「明るさ」がHSBの明度なのかHLS等の輝度なのか分からないので、
ソースはHSBの方で書いておいて、その下に輝度での明るさの計算をコメントアウトしてある。
どちらでもお好きなように。極端な画像でなければ差はあまりないと思うが。
HSBの明度は>>754のやり方でもいいけど、単にRGBのうちの最大値が明度になるので、
明度だけ求めるのなら、RGBの3値の大きさを比較する式だけですむ。
閾値で変なものを入れたらてきとーに値を設定する。
明るさが閾値以下なら黒、閾値より大きければ白。
見えている全てのフレームを閉じると終了。
エラーとかは気にしないてきとーな造り。

780 名前:753 [2007/04/24(火) 18:39:48 ]
>>779
うおおおおおおおおおおおおおっ!!!!!!!
ありがとうございます!!!動作確認しました!
すげええええ!今感動でちょっと泣いてますマジで。
完璧です。
てきとーだなんてとんでもない。
細かいとこに気遣いを感じるプログラムですよ!
俺のプログラムなんて元画像の大きさに合わせてフレームの大きさ変えることすら出来ないんですもん。
俺の説明不足なのにコメントまでつけていただいて・・・

さっき帰宅したものですから、
お返事が遅れてしまって申し訳ありませんでした。
本当にありがとうございました。恩に着ます;;

781 名前:デフォルトの名無しさん [2007/04/24(火) 21:24:10 ]
流れ嫁よ糞が

782 名前:753 [2007/04/24(火) 22:15:30 ]
>>757からの流れには、俺もこれはもうだめかな・・と思ったね。
プログラム板あなどりがたし。

783 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 22:17:07 ]
朝の10時から暇な奴だな

784 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 22:47:08 ]
鈴木高弘は火曜晩は暇なのか?
毎週火曜日晩になると無茶な暴れ方をするな。

785 名前:688 mailto:sage [2007/04/25(水) 00:22:03 ]
>>727
亀レスですが、g.drawlineつかってよいそうです
うpしてもらったのを参考に自分なりに作り直しているのですが、直接座標指定(100とか200)
してしまうと回転はしなくなってしまうのですか?
回転しなくてあせってます泣



786 名前:688 mailto:sage [2007/04/25(水) 01:08:04 ]
逆に数値を指定しないと、画面にメッシュが表示されません。。。

787 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 03:18:24 ]
作り直したものも示さずに誰が答えられるんだ?
お前の頭の中はオープンソースなのか?
ソースを出したからといって答えてくれるとも限らんが
例えばLevel1
public void paint(Graphics g) {
Point p1 = rotateZ(50, 200);
Point p2 = rotateZ(250, 200);
drawLine(g, p1.x, p1.y, p2.x, p2.y);//(50,200)-(250,200)を回転した線
p1 = rotateZ(100, 50);
p2 = rotateZ(100, 250);
drawLine(g, p1.x, p1.y, p2.x, p2.y);//(100,50)-(100,250)を回転した線
}
アプレットのサイズは線が見える程度はないと当然見えんよ

788 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 23:50:56 ]
この問題昔やったな・・・。

789 名前:688 mailto:sage [2007/04/26(木) 00:52:20 ]
>>787
なんとかできました。
ありがとうございます。

参考にしながらlevel3まで来たのですが、少々複雑になってきたので、g.drawlineを使った場合
を教えていただけないでしょうか?

790 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 03:34:49 ]
>>789
せっかく直線描画ルーチンを実装したのに、面倒な方向が好きなやつだね。
Level3,4をどうしてもGraphics#drawLineで描画したいっていうのなら、
zL,zHを、z<=zLで黒(最小輝度)、z>=zHで白(最大輝度)になるようなz座標の値として、
Foo3CanvasやFoo4Canvasの
private void drawLine(Graphics g, int x1, int y1, int z1, int x2, int y2, int z2)
の中身を、
点(x1,y1,z1)と点(x2,y2,z2)を通る直線と、平面z=zLとの交点(Px,Py,zL)、平面z=zHとの交点(Qx,Qy,zH)を求めて、
Graphics2D g2 = (Graphics2D)g;
g2.setPaint(new GradientPaint(Px, Py, Color.black, Qx, Qy, Color.white));
g2.drawLine(x1, y1, x2, y2);
で線分を描画するようにすれば、できるような気がする。
z=zLやz=zHに平行な直線の時は交点が求められないけれど、
このときは直線全体が同じz座標の値だから、その値に応じた色をsetColorして単一色の線分を描くだけ。
これで、setPixelとsetLuminanceが不要になる他は変更せずにすむ。
z座標と各点の色との対応関係はGradientPaintによるグラデーション描画の実装に依存するけれど。

まあsetPixel内でfillRectでピクセルを塗るかわりに、
Graphics#drawLineで一点だけの直線を引いてもGraphics#drawLineを使ったことにはなるね。

791 名前:688 mailto:sage [2007/04/26(木) 10:40:47 ]
>>790
詳しくありがとうございます。
まだイロイロと聞きたいことあり、聞きたいのですが、ここに自分の晒すと
同じ学校のほかの生徒がコピペしてしまうかもしれないので、もしよかったらメールで教えていただけませんか?
pinkly@inter7.jp

792 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 08:21:15 ]
>>791
アダルトサイトに登録しておいた。

っていうのはジョークとして、おまいの専属家庭教師になれと?


お  断  り  だ  。

793 名前:688 mailto:sage [2007/04/27(金) 09:03:50 ]
>>792
そうですか。。
せめて、うpしたのを添削してほしかったわけですが。。。

794 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 09:06:01 ]
>>793
ネタじゃなかったのか。馬鹿だなお前さん。

795 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 10:11:31 ]
>>793
添削って、、、それをするのが学校だろw



796 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 14:26:27 ]
池戸さん怒るぞ

797 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 14:55:11 ]
>>796
  ( ^ω^) …
  (⊃⊂)







⊂(^ω^)⊃ セフセフ!!
 ミ⊃⊂彡

798 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 15:48:13 ]
法政…?いやまさかな

799 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 19:56:56 ]
>>791
ここに投げたこと自体はまあアレなんだが、
出てきたものを自分なりに咀嚼して再構築しようとしているのはいいことだと思って付き合っただけで、
ひとが晒したソースを自分が参照するのはよしとするが、
自分のソースがひとに参照されるのは気に入らんなどという二重基準な方針には付き合わんよ。
このスレはソースが出てくれば幸運、アフターサービスはレアケースくらいの感じだ。
せっかく学校に授業料を払ってるんだから疑問は先生に聞いて解決しる。

800 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 20:20:58 ]
【 課題 】
フィボナッチの数列は以下の漸化式で表される。
f1 = 1, f2 = 1
fi = fi-1 + fi-2 (i >= 3)
f1 から f10 を計算し表示せよ。さらにその和を求めよ。
またプログラム作成にはWhile 文を使え。

【 形態 】1. Javaアプリケーション(main()で開始)    
【 GUI  】4. 制限なし
【 期限 】 2007/04/29 PM01:00 まで
【 Ver  】java version "1.5.0_11"
【 用語 】特になし
【 補足 】丸投げです。よろしくお願いします。

801 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 20:54:42 ]
>>800
public class Fibonacci{
public static void main(String[] args){
int[] f=new int[11];
int i,sum;
sum=0;
i=1;
while(i<=10){
if(i>=3){
f[i]=f[i-1]+f[i-2];
}else{
f[i]=1;
}
System.out.println("f(" + i + ")=" + f[i]);
sum+=f[i];
i++;
}
System.out.println("フィボナッチ数の合計 = " + sum);
}
}

802 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 21:28:13 ]
>>801
こんなに早くありがとうございます。
非常に助かりました。

803 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 05:26:18 ]
【 課題 】リマソンの描画
【 形態 】Applet
【 GUI  】制限なし
【 期限 】来週の月曜日まで
【 Ver  】java version "1.6.0"
【 補足 】丸投げです。静止画でいいんでよろしくお願いします。

804 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 07:15:31 ]
r=b+acosθ
* a=bのとき「カージオイド」

これ数1じゃないか?

805 名前:デフォルトの名無しさん [2007/04/29(日) 09:58:42 ]
【 課題 】重複しない配列を作れ
【 形態 】Javaアプリケーション(main()で開始
【 GUI  】制限
【 期限 】火曜日
【 Ver  】
【 補足 】
※要素が重複しない一つの配列を作れではありません。
要素が重複しないn!個の配列を列挙する問題です。
たとえば要素数が3なら
{1,2,3},{1,3,2},{2,1,3},{2,3,1},{3,1,2},{3,2,1}
を表示したいわけです。nは比較的小さな数(n<8くらいまで)で計算量が膨大にならない程度でかまわいません。



806 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 15:40:14 ]
>>803
r=b+a*cosθ :a=100,b=50のグラフを表示するApplet
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29352
Applet初体験&数学苦手なんで変なところや間違いが有っても許して

807 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 18:23:21 ]
>>805
圧縮したので少しパスタ
public class Main {
public static void main(String[] args) {
int n = 4; //要素数.設定方法は任す
int[] a = new int[n];
for (int i=0; i<n; i++) a[i] = i+1;
while (true) {
System.out.print("{ ");
for (int i=0; i<n; i++) System.out.print(a[i]+" ");
System.out.println("}");
int k=n-2, l=n-1, w;
while (k>=0 && a[k]>a[k+1]) k--;
if (k<0) break;
while (a[k]>a[l]) l--;
w = a[k]; a[k] = a[l]; a[l] = w;
l=n;
while (++k<--l) {
w = a[k]; a[k] = a[l]; a[l] = w;
}
}
}
}


808 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 21:33:16 ]
                        , '"´    ̄` 、 /Z
      ___,. --- .             / /   イ i  ヽ   ヾイ
   ,.-‐'´   ,   ヽ.          .' 〃 /||!|. l   .い
.  /亅  ノ /     ト、         i i./|/  !ハl i| | iト′
  { {  / 〈.   /  ! \_ ,r┐  | ルfホ.  l!≦小!  ! リ
.  ヽヽ ヽ ___、__,⊥  }  |i ヽ_l  l | tリ ,   {tリ !  !v
   ヽゝ{__     _/   !!  `ヽ.| l、  r‐‐、 `゜ | /ノ
     `¨ぃこヱ孑'         ぃ| !ヽ._  ノ  ,..|v'´ ぱんち
        `ー―---‐、¬¬-、_  / ,'ー-、_、Z¨´_}}|(う、
              冫こ__ラーV /|   } } ̄ !厂フ′


809 名前:805 mailto:sage [2007/04/30(月) 02:30:27 ]
>>807
ありがとうございました。こんな質問にも答えてくださって感謝です。

810 名前:デフォルトの名無しさん [2007/04/30(月) 19:57:59 ]
【 課題 】class SquareCode {
public int area(String tmpWidth, String tmpHeight){
int width = Integer.parseInt(tmpWidth);
int height = Integer.parseInt(tmpHeight);
int answer = width * height;
return answer;
}
}

上記のSquareCodeクラスを継承して、更にarea()メソッドをオーバーライドした
TriangleCodeクラスを定義して下さい。

【 形態 】1. Javaアプリケーション(main()で開始)
【 GUI  】4. 制限なし
【 期限 】5月1日
【 Ver  】java -version"1.4.2"
【 補足 】諸事情により動作確認は明日の夜になりそうです。


811 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 20:06:52 ]
                    ,. --―…、
                  /    /:. \
                ./    /::::::::::. ヽ
                ‘ー--一'´ \:::::::.  ',
                        ヽ:::::.  !
            /⌒丶   ,. .-.''.´ . .',::::  |` 丶、
           /    !:::::..\/ . . . . . \.L__ l. . . \
           |   |――/. /、 . . . . . . .ヽ . ヽ . . . .ヽ
           |   j  /. ./ \.ヽ . . . . .'., . . . . . . .',
           |   /  |. . l   \_. . . . ',. . . . . . ..|
           |  /   |:.._l     ´\ . . . . !. . . . . . .|
           l   /   .|´.l _     ,r7jヽ,. .:.r ‐、 . . ...|
           |_,ノ    |. .!イト、    弋:ソ!. ..|  〉 . .:.|
                 |.小 ヾ'    , , , |:!. |! イ. . . ..|
                 |. |..ハ'''        |リ!.|l . !. . . . |
                 |. | |. ヽ、,-_ _ -' ''|.!ヽ.|:.. . . .|
                 |. | |! . . ._ -'     |l  ヽ:.:. . .|
                 |._| > ''         |!   ', . ...|
            __r‐'7 ̄!.               !:. .:.|
       ,r=―フ/  |  |     _ ,, --      !:. .:.|
      /__/   |   l  l  _. - '          /l. . .|
  _r''厂\     !   ! l ''            / !i . !
 //     \    |   !:人              /  i i:リ
./|    ヽ_        ヽ!个‐'           /    i i
| .!       \    __/l /             /
∨\       /   /_l /            /
. |  \rへ _/ヽー '   ∨          /


812 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 20:51:48 ]
>>810
コード見ても何したいのかさっぱりわかんねw
Triangleだと引数足りないからオーバーライドは無理じゃね?w

813 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 21:06:15 ]
>>812
簡単に高さ×底辺/2で三角形の面積を出すように、再定義するだけなら、ひきすうは十分でない?
?な所も有るけど気にするだけ無駄ですよ。
>>810
public class TriangleCode extends SquareCode{
public int area(String tmpWidth, String tmpHeight){ 
int width = Integer.parseInt(tmpWidth); 
int height = Integer.parseInt(tmpHeight); 
int answer = width * height/2; 
return answer; 




814 名前:潮吹きたい人この指留まれ〜♪ [2007/04/30(月) 21:58:47 ]
all-inone-eclipse でjava練習中ですが
for 文で無限ループになりました。
eclipseでデバッグではなく実行で走っていますが
アプリをどうやって終わらせてるのでしょうか?
eclipse自体はキー入力とかできますが
これってアプリ単独で終了はできないですか?
eclipseごと終了ですか?
今動いていますが、javaw.exeのメモリが増えていますが
だれか〜〜 おせ〜て
おせ〜〜てくれくれ君です
返事が早いか、どこかで異常終了するのが早いか
寝てしまうかか。。。

815 名前:デフォルトの名無しさん [2007/04/30(月) 22:27:13 ]
開発やめたら早いよ



816 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 22:36:53 ]
>>814
コンソールを表示しているペインに赤い×印のボタンはないかね?


817 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 22:52:17 ]
スレ違いなやつを相手にするなって
精々誘導するぐらいにしとかないとノイズが増えるぞ

818 名前:デフォルトの名無しさん [2007/04/30(月) 23:00:09 ]
【 課題 】2進数を10進数に変換するプログラムを作れ。 
【 形態 】1. Javaアプリケーション(main()で開始
【 GUI  】4. 制限なし
       《GUIの課題の場合必ず選択》
【 期限 】期限ナシ。
【 補足 】Java初心者の自分でやってみようと思った課題です。
      とりあえず、1101と具体的な数字を10進数に直そうと思いました。
      自分なりに作ってみました。ですが、実行してみると、733になってしまいました。
      ドコが問題でしょうか?どなたか、初心者に優しい解説をヨロシクお願いします。

public static void main(String[] args) {

String x = "1101";       //2進数を文字列として入力
int a[] = new int [4];     //配列は4つ
double y = 0;


for(char i=0; i<4; i++){
   a[i] = x.charAt(i);    //配列a[i]に一つずつ2進数の各位を代入する

   y = (double)(y + a[i]*(Math.pow(2, (3-i))));

}

    System.out.println(y);

}

819 名前:潮吹きたい人この指留まれ〜♪ [2007/04/30(月) 23:06:13 ]
814です
放置していたらwindowsが重くなって制御できなくなってきたので
eclipseごと落しました。

>>815,816 さんありがとうございます
なにしろポンコツプログラマですので。JAVAできるかな。。。
>コンソールを表示しているペインに赤い×印のボタンはないかね?
ありがとうございます。
再実行させて、×押すとアプリが終了しました。

for ループ内でprint文入れてましたから、Ctrl+C相当なのですね

では、と言うわけで print 文コメント化して実行させましたら
X入力がききません。またwindowsXPがめっちゃ重くなって
javaw.exe がcpu 食っていますが。。。
これはどうやってとめるんだろうか。。。
教えてくれくれ君ですが
教えて〜〜〜

820 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 23:27:18 ]
a[i]に入ってるのはchar(文字コード)であって数値ではない。

関係ないけど、一度ずつしか使ってないし配列に入れる意味ないよ。


821 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 23:28:49 ]
>>818
いろいろ直したいプログラムですが、とりあえずドコが問題かといえば

   a[i] = x.charAt(i);    //配列a[i]に一つずつ2進数の各位を代入する

この行です。このであなたがやりたいと思っていることは、たぶん

   a[i] = x.charAt(i) - '0';

という処理だと思います。

822 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 23:34:37 ]
>>813
どうせ変な問題だし回答も変な方がいいんじゃまいか?
public class TriangleCode extends SquareCode {
public int area(String tmpWidth, String tmpHeight) {
return super.area(tmpWidth, tmpHeight) / 2;
}
}
とか

823 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 23:36:48 ]
【 課題 】
ガソリン使用量や走行距離に着目して, 自動車の振る舞いを模倣するクラス Car をプログラミングせよ. Carが主たる機能(メソッド)は以下の通りである.
● int fuel(int x) 自動車にあるxリットルの燃料を給油を 試みることができる. タンクの量は有限(簡単のためタンク容量は30リットルに固定)なので, 実際に給油できるのはxリットル以下で, その量が返り値として得られる.
● int odometer() 自動車にその時点での走行距離(キロメートル)を問い合わせることができる.
● void efficiency(int x) 自動車の燃費を設定することができる(xキロメートル/リットル). 燃費は正整数の値を必ずインスタンス毎に設定すること.
● int drive(int x) 自動車をxキロメートル運転することを試みる. 燃料残量によって実際に運転できる距離は変わる. 実際に運転できた距離は返り値として返される.
【 形態 】1. Javaアプリケーション(main()で開始)/
【 GUI  】1. AWTのみ/2. Swing/3. SWT/4. 制限なし/ 5. その他(明記すること)
       《GUIの課題の場合必ず選択》
【 期限 】5月3日までにお願いします。
【 Ver  】java version "1.4.2_12"


824 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 23:37:40 ]
Carクラスのmainメソッドは以下のような内容にして, このクラスの振る舞いが正しいか否かの動作チェックをせよ.

// Carクラスの振る舞いのテスト
public static void main(String[] args) {
Car sedan=new Car();
Car wagon=new Car();
sedan.efficiency(20); // セダンならリッター20キロ
wagon.efficiency(9); // ワゴンは9キロしか走れない

sedan.fuel(50); // 双方,50リットル給油しようと試みるが,実際には30しか入らない
wagon.fuel(50);

sedan.drive(100); // 100キロ走ろうとする
System.out.println(sedan.odometer()); // 実際,走れた距離を表示
sedan.drive(200); // 200キロ走ろうとする
System.out.println(sedan.odometer()); // 実際,走れた距離を表示

wagon.drive(100); // 100キロ走ろうとする
System.out.println(sedan.odometer()); // 実際,走れた距離を表示
wagon.drive(200); // 200キロ走ろうとする
System.out.println(sedan.odometer()); // 実際,走れた距離を表示
}

よろしくお願いします。

825 名前:810 mailto:sage [2007/04/30(月) 23:39:10 ]
>>812-813 >>822
早い回答をありがとうございます。




826 名前:デフォルトの名無しさん [2007/04/30(月) 23:43:45 ]
>>820
ご回答ありがとうございます。
確かに一度しか使っていないので配列使う必要ないですね。
配列を使わない場合、

     y = (double)(y + x.charAt(i)*(Math.pow(2, (3-i))));

みたいに書けば、配列必要ないですね。非常に勉強になりました。ありがとうございます。
ただ、この場合も結果は733になってしまいますが・・・
charをintに変えるには、

(int)(x.charAt(i))

みたいにするんですか?実行してみても結果は変わらなかったのですが・・・
文字列を数字として認識させるにはどうしたらいいのでしょうか?

>>821
ご回答ありがとうございます。
突っ込みどころ満載のプログラムですよね・・・orz
確かに、821さんのようにプログラムを書き換えると正しい答えが出ました。
非常に勉強になります。ありがとうございます。
ただ、

  a[i] = x.charAt(i) - '0'

の意味が分からないのですが、どういう意味でしょうか?
「xのi番目の数から0を引いた数をa[i]に代入する」
といった意味でしょうか?

かなりの初心者なモノで、質問ばかりで申し訳ないです。

827 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 23:51:51 ]
>>826
どちらかというと質問スレ向けっぽい気もするけど

a[i] = x.charAt(i) - '0';
は各文字コードと'0'との差を取る意味
javaで使ってる文字コードは'0','1','2'...の順序に並んでいるので
数字と'0'との差を取ると数になる

(int)(x.charAt(i)) は文字コードをint型に変換しているだけなので'0'が0になるわけではない

a[i] = Character.getNumericValue(x.charAt(i));
てのもあるのでAPIドキュメントを見てみるのもいい

828 名前:デフォルトの名無しさん [2007/04/30(月) 23:56:10 ]
>>827
ご回答ありがとうございました。
何となくですが、分かったかもしれないです。
非常に助かりました。ありがとうございます。


スレ違いで申し訳ないです。
でも、非常に勉強になりました。
ありがとうございました。

829 名前:827 mailto:sage [2007/04/30(月) 23:58:54 ]
ごめん
a[i] = Character.digit(x.charAt(i), 10);
でもいいや

>>828
ソースがほとんどできあがっていて
思い通りに動かない原因が特定できないくらいなら
質問スレで聞いても十分だと思う
そのときは宿題とか課題とかは伏せておいたほうが無難かも

830 名前:デフォルトの名無しさん [2007/05/01(火) 00:06:06 ]
>>829
分かりました。
これからは、質問スレで聞いてみようと思います。
本当にお手上げな学校の課題が出た場合は、
こちらのスレも利用するかもしれないので、
その際はヨロシクお願いします。

ありがとうございました。

831 名前:wwww mailto:sage [2007/05/01(火) 00:32:02 ]
仮想化とは対象物を不完全ながらもその性質や姿を模倣し現出させることだ。
対して抽象化は、対象物のある特徴的な側面を抽出し概念化することだ。
仮想化で抽象化の技術が使われることはあるだろうが、その逆は考え難い。
コンピュータを使い、扇風機やコタツを抽象化することはできても、仮想化する
ことはできないのだ。少なくとも今の技術では無理だ。コンピュータがその姿形
を変えることはできないのだから。コンピュータが仮想化できるものは、コンピュー
タそのものが直接扱うものだけだ。例えば、仮想メモリ、仮想ネットワーク、仮想
マシン、仮想キーボードといったものだ。

抽象化した結果表現されるものは、設計者が想定した概念やイメージだ。しかし、
実在するものそのものではなく、人が考えたものであるために、このイメージは
非常に脆く、不安定だ。外部からの影響をもろに受け、形を変え易い。個々人が
持つイメージの些細な相違から認識のずれが生じ易い。扇風機の使い方は人に
よって異なることはないが、人がイメージしたものは、その生成から、破棄に至る
まで、非常に不安定な状態になり易い。それを防ぐには、イメージそのものをなる
べく強固なものにし、インターフェースに一貫性と整合性をもたせ、外因による影響
を受けに難くく、壊れ難くするための技術を見につけ、理解を深めておくしかない。

832 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 01:13:19 ]
>>823
public class Car{
final int fullFuel=30;
private int tank=0,mileage=0,run=0;

public int fuel(int x){
int empty=fullFuel-tank;
if(empty>x){tank+=x;return x;}
tank=fullFuel;return empty;
}

public int odometer(){return run;}

public void efficiency(int x){mileage=x;}

public int drive(int x){
int ad=tank*mileage;
if(ad>x){tank=tank-x/mileage;run+=x;return x;}
tank=0;run+=ad;return ad;
}
}

833 名前:潮吹きたい人この指留まれ〜♪ [2007/05/01(火) 09:33:51 ]
>>817
すまません、どこかに誘導してください〜〜♪
ちなみに、タスクマネジャーからjavaw.exeの
プライオリティを下げると、
eclipseの操作がなんとかできますね。。。


834 名前:デフォルトの名無しさん [2007/05/01(火) 10:18:24 ]
天国に行ってこい!

835 名前:潮吹きたい人この指留まれ〜♪ [2007/05/01(火) 10:41:19 ]
塩吹いて〜♪ あ、極楽極楽www ねっちょりちんぽが欲しい〜〜www



836 名前:デフォルトの名無しさん [2007/05/01(火) 10:45:33 ]
売ってるよ

837 名前:初心者 [2007/05/02(水) 15:46:57 ]
【 課題 】一文字入力し、大文字A〜Zならば”大文字”と、小文字a〜zならば”小文字”と表示させよ。
【 形態 】Javaアプリケーション
【 GUI  】制限なし
【 期限 】明日
【 Ver  】コンソールでjava -version1.4.1_03
【 

838 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 16:05:59 ]
public class test{
public static void main(String[] args){
int c=0;
try{
java.io.InputStreamReader r = new java.io.InputStreamReader(System.in);
c = r.read();
}catch(java.io.IOException e){}
if('a'<=c&&c<='z')System.out.println("小文字です");
else if('A'<=c&&c<='Z')System.out.println("大文字です");
}
}

839 名前:初心者 [2007/05/02(水) 16:45:24 ]
838ありがとうございました。
質問なのですが、一回実行して終わるのではなく何回も実行できるようにするには
どうすればよいのでしょうか??

a
小文字

大文字

のように続けてしたいのですが。

840 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 16:55:51 ]
while(true)

841 名前:子羊 [2007/05/02(水) 19:44:43 ]
【 課題 】二つの数字x,yをキーボードから入力し、最大公約数とxからyの合計を求める。
【 形態 】Javaアプリケーション
【 GUI  】なし
【 期限 】明後日
【 Ver  】1.5.0_11
【 補足 】丸投げでお願いします。

842 名前:デフォルトの名無しさん [2007/05/02(水) 22:12:03 ]
public class Max {


843 名前:サブリミナル・キッドやっちゃん [2007/05/02(水) 22:25:44 ]
class GCDTest {
public static int gcd(int n,int m){
int r=n%m;
if(r==0) return m;
else return gcd(m,r);
}

public static int kaijo(int n,int m) {
int s;
int i1;
for (i1 = 1; n <= m; i1++)
s *= (double)i1;

return s;
}

public static void main(String[] args){
BufferedReader r =
new BufferedReader(new InputStreamReader(System.in)
int x=Integer.parseInt(r.readLine());
int y=Integer.parseInt(r.readLine());
System.out.println(x+"と"+y+"の最大公約数は"+gcd(x,y)+"です");
System.out.println(x+"から"+y+"の合計は"+kaijo(x,y)+"です");
}
}


844 名前:サブリミナル・キッドやっちゃん [2007/05/02(水) 22:29:50 ]

class MaxXYAndXYGCD {
public static int gcd(int n,int m){
int r=n%m;
if(r==0) return m;
else return gcd(m,r);
}

public static int kaijo(int n,int m) {
int s;
int i1;
for (i1 = 1; n <= m; i1++)
s *= i1;
return s;
}

public static void main(String[] args){
BufferedReader r =
new BufferedReader(new InputStreamReader(System.in)
int x=Integer.parseInt(r.readLine());
int y=Integer.parseInt(r.readLine());
System.out.println(x+"と"+y+"の最大公約数は"+gcd(x,y)+"です");
System.out.println(x+"から"+y+"の合計は"+kaijo(x,y)+"です");
}
}

>>841


845 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 22:32:14 ]
>>841
sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29358



846 名前:デフォルトの名無しさん [2007/05/02(水) 22:35:03 ]
>>845
おお!俺間違ってた。適当やっちゃったよー

847 名前:子羊 [2007/05/03(木) 22:01:26 ]
841の問題で最大公約数と合計を別のソースでプログラムするにはどういった事をすればよいでしょうか??

848 名前:デフォルトの名無しさん [2007/05/03(木) 22:54:08 ]
つ【検索しる】

849 名前:子羊 [2007/05/04(金) 08:20:24 ]
【 課題 】4桁以内の正の整数を二つ以上入力し、入力された数の最大値、最小値を求め、さらに何件目
      の入力かを表示させよ。ただし5桁以上もしくは負の数が入力されたら終了とする。
【 形態 】Javaアプリケーション
【 GUI  】なし
【 期限 】明後日
【 Ver  】1.4.0_03
【 補足 】丸投げでお願いします。 連続で申し訳ないです・・


850 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 17:00:11 ]
>>849
sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29362

851 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 19:18:36 ]
【 課題 】ttp://www.uploda.org/uporg797526.txt
【 形態 】2. Applet
【 GUI  】4. 制限なし
【 期限 】5/7
【 Ver  】1.6.0_01
【 補足 】丸投げでお願いします。#現在作成中です。。
      読みにくいテキストで申し訳ありません。よろしくお願いします。

852 名前:851 mailto:sage [2007/05/04(金) 23:07:43 ]
【 補足 】後々の追加で申し訳ないです。。
      長方形には条件がつきます。。


(1) 長方形とボードに色をつける。
" ボードの色はwhite とする。
" 長方形の色として指定できる色は以下の通りである。
- red
- blue
- yellow
- gray
(2) 長方形に対する配置の機能の内intersect を以下のように拡張する。
" 重なり部分の色を以下の規則でマージして、色を決定する。
- 色の組み合わせが同じであればgray とする。
- 色の組み合わせが yellow とblue ならば、green とする。
- 色の組み合わせが red とyellow ならば、orange とする。
- 色の組み合わせが red とblue ならば、magenta とする。
- その他の場合は cyan とする。
(3) 長方形は色が異なってもボード上で同じ幅、高さ、位置をもつ場合は同一の長方形とみなす。

853 名前:デフォルトの名無しさん [2007/05/04(金) 23:35:49 ]
【 課題 】キーボードから数値を入力します。入力された数値が奇数であるならば、
      奇数です。と表示し、処理を終了します。
      偶数であるならば入力された数値から100までの偶数の合計を求めよ。
【 形態 】Javaアプリケーション
【 GUI  】なし
【 期限 】明後日
【 Ver  】1.4.0_03
【 補足 】丸投です。



854 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 00:39:55 ]
>>851
5時間ももたないところにうpされてもな

855 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 00:40:29 ]
>>853
sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29363




856 名前:851 mailto:sage [2007/05/05(土) 00:50:26 ]
失礼いたしました。。

【 課題 】ttp://www.dotup.org/uploda/www.dotup.org6746.txt
【 形態 】2. Applet
【 GUI  】4. 制限なし
【 期限 】5/7
【 Ver  】1.6.0_01
【 補足 】丸投げでお願いします。#現在作成中です。。
      読みにくいテキストで申し訳ありません。あらためてよろしくお願いします。

857 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 01:59:18 ]
待ってる間にじっくり考えても終わってるだろ

858 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 09:08:41 ]
>>856
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29364
////////// "ファイル名" で分割すること。
上段のTextFieldは幅、高さ、x、yで、残り2つはコマンドに応じて必要なもの(x0,y0とかmx,my)。
下段はintersect用の2つ目の四角を指定。
マウスで四角をクリックするたびに、上段の数字が下段に送られ、上段にクリックしたもののサイズと位置が入る。
つまり2つの四角を順にクリックすれば2つを指定できる。

今回のは、前回のやつを色付き対応に拡張するのはやらずに、アプレットを作るだけでいいということ?
とりあえず前回のBoardとRectangleを色付き対応にしている。

859 名前:851 mailto:sage [2007/05/05(土) 12:24:22 ]
>>858
す、すごい・・・。
今回は色付き対応させ、アプレットを作るといった形です。
説明不足で申し訳ないです。。わざわざコメントまでつけて頂いて。。
本当にありがとうございました。

860 名前:デフォルトの名無しさん [2007/05/05(土) 19:09:11 ]
【 課題 】ソフトウェア作成の課題で、マルチスレッドゲームを作っています。
      内容は同一PC内で動く通信ゲームで、Javaアプレットを使用して
      サーバープログラムとクライアントプログラムそれぞれが通信し、
      サーバー起動後、クライアント(最高4人まで)がログインするとそれぞれ違った図形でゲーム画面に表示され、
      ドラッグ&ドロップで行き来できるという内容です。(対戦するといったようなゲーム性はありません。)

      起動画面です:ttp://w1.oroti.com/~gary831/cgi-bin/joyful/img/6.jpg

      もともとのソースは海外の様々なWebサイトから拾ってきた物で、それらを改造して作っているのですが、
      自分にとって初の大きなプログラムなので、エラー数が多く分けが分からない状態になっています。
      その中で一番の問題は、起動画像を見てもらえると分かると思うのですが、プレイヤーを起動した時、
      赤い長方形(Red Rectangle)と、緑の円(Green Circle)はどの窓でも普通に表示されているのですが、
      黄色の円(Yellow Circle)と青の角丸長方形(Blue Rounded Rectangle)だけ、自身の形と他の窓での形が違います。
      ここを修正しようと3〜4時間、コードを調べているのですがいっこうに修正する事が出来ません。
      他のエラー部分も修正しないといけないのですが、とりあえずこの部分だけでも修正してくださる方、よろしくお願いします。

      ソースです。:
      プレイヤー:ttp://w1.oroti.com/~gary831/cgi-bin/joyful/img/3.txt
      シェイプドロウ:ttp://w1.oroti.com/~gary831/cgi-bin/joyful/img/5.txt
      サーバー:ttp://w1.oroti.com/~gary831/cgi-bin/joyful/img/4.txt
【 形態 】1. Javaアプリケーション
【 GUI  】4. 制限なし
【 期限 】5月7日まで
【 Ver  】java version "1.5.0_11"

861 名前:860 [2007/05/05(土) 19:39:39 ]
jarファイルで起動サンプルを作ったので、公開しておきます。

ttp://w1.oroti.com/~gary831/cgi-bin/joyful/img/7.zip

862 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 22:38:41 ]
【 課題 】ttp://nijibox.ohflip.com/futabafiles/001/src/sa15141.txt
【 形態 】Javaアプリケーション
【 GUI  】制限なし
【 期限 】5/7
【 Ver  】1.5.0_11
【 補足 】配列、制御構文まで習いました。よろしくお願いします。

863 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 23:12:13 ]
【 課題 】nijibox.ohflip.com/futabafiles/001/src/sa15172.txt
【 形態 】1. Javaアプリケーション
【 GUI  】4. 制限なし
【 期限 】5/7
【 Ver  】java version "1.4.2"
【 補足 】丸投げです。宜しくお願いします。


864 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 23:51:19 ]
>>862
sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29367

865 名前:デフォルトの名無しさん [2007/05/05(土) 23:56:01 ]
メインHDDが8ケ月以内に故障するらしいのですが、どうしたらいいですか?



866 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 23:56:33 ]
問おう、ttp://nijibox.ohflip.com/futabafiles/001/src/sa15141.txtの何処が仕様か!?
総理、納得のいく回答をお願いします。

さて、専門の課題って仕様とか言って実装の断片を箇条書きにして
最後に謎の出力結果を張り付けるだけの
イミフが多いよね。どうしろと?

>・その値は配列の初期化時に与えられるものとする。
その初期化方法とタイミングを考えるのがお前だろ糞講師。

>>862
1)得点の最小値と最大値。
2)score[]をどのタイミングでどうやって初期化するのか。(受験者の点数を何処から取って来るかに関係)

が、最低限決まってないとどうしようもない。
よろしく。
2)はプログラムの使用方法左右するんでそこら辺も考慮。

受験者数が可変とか言ってんのにその得点がハードコーディングってのは考え難いよね?
なんか俺間違ってる?

867 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 23:59:55 ]
862出ちゃったのね・・・orz

868 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 00:41:56 ]
>>863
sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29368


869 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 00:59:09 ]
>>864
ありがとうございます。
参考にさせてもらいました。


870 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 07:06:42 ]
【 課題 】
下記は九九を計算するプログラムの製作途中のものである。
コンパイルは正常終了するが実行時にエラーが出ることが分かっている。
このプログラムの問題点を指摘し、正しく修正すること。
なお、修正箇所は必要最小限にすること。

public class Calc99{
public static void main(String[] args){
String[][] cell = new String[9][];
for(int j = 1; j <= 9; j++){
for(int i = 1; i <= 9; i++){
cell[j][i] = " " + Integer.toString(j * i);
}
}
for(int j = 1; j <= 9; j++){
for(int i = 1; i <= 9; i++){
System.out.print(cell[j][i]);
}
System.out.println();
}
}
}

【 形態 】 Javaアプリケーション
【 期限 】 5/6 17:00
【 Ver 】 特になし
【 補足 】
連休前に出されたのですが今まで放っぽってました。
5/7 10:00 からの授業で提出しますので今日中に解答頂けると有難いです。


871 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 08:39:10 ]
>>868
回答ありがとうございます。

872 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 10:55:58 ]
>>870
3行目
String[][] cell = new String[9][];

String[][] cell = new String[10][10];


873 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 11:02:14 ]
クラス名がC99に見えたぜ

874 名前:■■■質問@■■■ [2007/05/06(日) 19:11:15 ]
【 課題 】
1: // ドルと円の換算プログラム
2:
3: import java. io. * ;
4:
5: public class dollyen {
6: public static void main( String arg[] ) throws IOException {
7: BufferedReader keyln = new BufferedReader (
8: new InputStreamReader ( System.in ) ) ;
9: double r = 112.0, d, y;
10:
11: System. out. print ( “ ドルの金額(終了は 0)> “ ) ;
12:
13: d = new Double( keyln. readLine() ). doubleValue() ;
14: while ( d > 0.0 ) {
15: y = r * d ;
16: System. out. println( d + “ ドルは ” + y + “ 円です “ ) ;
17: System. out. print( “ ドルの金額(終了は 0) > “ ) ;
18: d = new Double( keyln. readLine() ) .doubleValue() ;
19: }
20:
21: } }


875 名前:■■■質問A■■■ [2007/05/06(日) 19:11:51 ]
《実行結果》
C : \jp>javac dollyen. java

C : \jp>java dollyen
ドルの金額(終了は 0 ) > 100
100.0 ドルは11200.0円です
ドルの金額(終了は 0) > 50
50.0 ドルは5600.0円です
ドルの金額(終了は 0) > 0

C : \jp>

《問題》
上記のプログラムを温度摂氏(C)を入力して
華氏(F)を出力するものに変更しなさい。
C  0 100
F 32 212

【 形態 】多分Javaアプリケーションです
【 GUI 】?
【 期限 】火曜日まででお願いします(><)
【 Ver  】?
【 補足 】○投げですすいません。宜しくお願い致しますm(__)m




876 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 19:31:13 ]
>>875
摂氏--華氏の換算式

877 名前:■■■質問■■■ [2007/05/06(日) 19:47:47 ]
>>876
レス有り難うございます。
華氏→摂氏の換算式は C=(F-32)x5/9 です!

878 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 20:41:24 ]
>>875
↓行頭の全角スペースは半角に直すこと。

import java.io.*;

public class dollyen {
 public static void main(String[] args) throws IOException {
  BufferedReader keyln =
   new BufferedReader(new InputStreamReader(System.in));
  
  double f, c;
  
  System.out.print("温度摂氏(終了は0)> ");
  f = new Double(keyln.readLine()).doubleValue();
  
  while (f > 0.0) {
   c = (f - 32) * 5 / 9;
   System.out.println("華氏(F)" + c + "度です。");
   System.out.print("温度摂氏(終了は0)> ");
   f = new Double(keyln.readLine()).doubleValue();
  }
 }
}


879 名前:878 mailto:sage [2007/05/06(日) 20:44:41 ]
>>878の間違えて摂氏と華氏(fとc)が逆だった。
まぁ式直すだけだから自分で直してくれ。


880 名前:■■■質問■■■ [2007/05/06(日) 21:07:59 ]
>>878さん有り難うございます!!<(__)>
fとcを入れ替えるのは、
c = (f - 32) * 5 / 9;のところだけ
でおkですか!?


881 名前:デフォルトの名無しさん [2007/05/06(日) 22:42:25 ]
>>868
863です。問題なく動作いたしました。ありがとうございました。

882 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 23:01:52 ]
【 課題 】
俗に「Javaにはポインタは存在しない」と云われているが、
実行時に NullPointerException が発生することがあるのはなぜか?
50字以内で説明せよ。

【 期限 】月曜日中
【 補足 】色々語ることが多すぎて50字に収まりません(><)


883 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 23:08:31 ]
逃れられると思うなよ
>>882ガッ

884 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 23:12:03 ]
>>882
Javaの言語仕様でポインタが扱えないだけで内部の実装ではポインタを使ってるから。

で良いんじゃない?
う〜ん、説明も何もソースコード公開されてるんだが。

>色々語ることが多すぎて50字に収まりません(><)
根本的に突っ込み所のある課題だから仕方ない。
たぶんお前さんは間違ってない。

885 名前:デフォルトの名無しさん [2007/05/06(日) 23:22:38 ]
【課題】
例えばコマンドプロントにjava 154 54 12 250
と入力したら
250
154
54
12と出力されるプログラムを記述せよ。

class big{public static void main(String[] args){
int a = 0;int b = args.length-1;
a=Integer.parseInt(args[a]);b=Integer.parseInt(args[b]);
String tmp;
while(a<b){
tmp=args[a];
args[a]=args[b];
args[a]=tmp;
a++; b--;
for(int i=0; i< args.length; i++)
System.out.println("大きい順に並びます");
System.out.println(""+args[ i ]+""); } } }
【 形態 】 Javaアプリケーション
【 期限 】 5/7 9:00まで
【 Ver 】 特になし
【 補足 】 連休前に出題され書いてみたのですが正しく動作されなくて全く分かりません。急ですがお願いします。



886 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 23:31:23 ]
>>885
なにこれ
課題は引数を降順にしろってことだよな
で、おまいさんのプログラムを修正しろってことか?
それともそれ無視していいのか?


887 名前:デフォルトの名無しさん [2007/05/06(日) 23:35:20 ]
>>886
すみません。修正して貰えませんか。

888 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 23:54:45 ]
>>887
修正する部分のほうが修正されていない部分よりも圧倒的に多くなる気がする。
それは修正というべきものなのか疑問だ。

class big{
public static void main(String[] args){
java.util.Arrays.sort(args, new java.util.Comparator<String>() {
public int compare(String o1, String o2) {
return Integer.valueOf(o1).compareTo(Integer.valueOf(o2));
}
});
System.out.println("大きい順に並びます");
for(String arg : args) System.out.println(arg);
}
}
java 154 54 12 250と入力しても動かないけどな。
java big 154 54 12 250

889 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 23:57:49 ]
>>882
NullPointerExceptionってのは単に例外のクラス名がそういう名前のだけ。
自分で発生させることもできるし。
throw new NullPointerException("ぬるぽ");

890 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 00:02:34 ]
>>890
catch (NullPointerException e) {
System.err.println("ガッ");
}

891 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 00:03:25 ]
自己撞着orz...

892 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 00:03:53 ]
逃れられると思うなよ
>>889ガッ


893 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 00:16:19 ]
>>887
元のをできるだけ残してみた。でも構成からして違うし。
class big{
public static void main(String[] args){
String tmp;
for(int i=0; i<args.length; i++){
for (int j=i; j<args.length; j++){
if (Integer.parseInt(args[i]) < Integer.parseInt(args[j])) {
tmp=args[i];
args[i]=args[j];
args[j]=tmp;
}
}
}
System.out.println("大きい順に並びます");
for(int i=0; i< args.length; i++) System.out.println(""+args[ i ]+"");
}
}
154てクラス名はさすがに使えないからjava 154 54 12 250で実行ネタは難しいな。

894 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 00:22:21 ]
>>888
大きい順か。
× return Integer.valueOf(o1).compareTo(Integer.valueOf(o2));
○ return -Integer.valueOf(o1).compareTo(Integer.valueOf(o2));

895 名前:デフォルトの名無しさん [2007/05/07(月) 00:27:14 ]
>>888
>>893
レス有難う御座います!!ホント助かりました!!



896 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 04:41:27 ]
【 課題 】
CSVファイルからのデータ検索ページを作成しなさい。
また、HTMLファイルのフォームから送られてきた文字列を検索の条件に使用し、結果をJSPを使い<table>で出力しなさい。
なお検索結果が

 一戸建て,2LDK,東京都
 一戸建て,2LDK,埼玉県

であるならば、

 一戸建て,2LDK,東京都
 -,-,埼玉県

と表示しなさい。


[使用するCSV]
一戸建て,2LDK,東京都
一戸建て,2LDK,埼玉県
一戸建て,3LDK,埼玉県
マンション,3K,北海道
マンション,4K,大阪府

【 形態 】1.
【 GUI  】4. 制限なし
【 期限 】5月8日までによろしくお願いします
【 Ver  】java version "1.5.0_11"
【 補足 】
ttp://www.iis.u-tokyo.ac.jp/~susaki/envinfo/jsp_csvfile.html#form_reg
↑を参考にCSVの検索はなんとかなりそうなんですが、検索結果の置換(?)がまったくわかりません。。。

よろしくお願いします。。。。

897 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 18:42:32 ]
>>896
前行の結果を持っていて、前行と同じだったら"-"を出力させるようにすればいいんじゃないかな?

898 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 20:24:42 ]
>>896
参考になれば幸い。
sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29373

899 名前:のん [2007/05/08(火) 14:55:21 ]
【 課題 】ファイルを読み取り、各タブ文字をスペース文字に変換し、その出力を別のファイルに書き込むアプリケーションを作成せよ
(入出力 バッファ付き文字アプリケーション)
【 形態 】Javaアプリケーション(main()で開始
【 GUI  】制限
【 期限 】明日
【 Ver  】
【 補足 】

なにとぞよろしくお願いいたします。
宿題です。できません。
2ちゃんの方々の力を少し分けてください。

900 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 14:59:19 ]
>>898
もうちょいkwsk

901 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 15:31:33 ]
アンカーミス
>>899

902 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 16:12:47 ]
>>899
import java.io.*;
public class Expand {
public static void main(String[] args) throws IOException {
if (args.length != 2) { System.err.println("java Expand infile outfile"); return; }
int expand = 8; // TAB width
BufferedReader in = null;
BufferedWriter out = null;
try {
in = new BufferedReader(new FileReader(args[0]));
out = new BufferedWriter(new FileWriter(args[1]));
String s;
while ((s = in.readLine()) != null) {
StringBuilder sb = new StringBuilder(s);
int index = 0;
while ((index = sb.indexOf("\t", index)) != -1) {
sb.setCharAt(index, ' ');
for (int i = index % expand + 1; i < expand; i++) sb.insert(index, ' ');
}
out.write(sb.toString());
out.newLine();
}
} finally {
if (in != null) in.close();
if (out != null) out.close();
}
}
}

903 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 16:26:27 ]
あー、expandコマンドを作れって意味にとったけど、
もし単純にタブ1文字ををスペース1文字にに置き換えるだけという意味だったなら、
int expand = 1; // TAB width
にすれば動作的にはそうなる。無駄処理がいっぱいあることにはなるが。

904 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 16:43:19 ]
もし>>903の意味なら、>>902の外側のwhileループ内の、
StringBuilder sb = new StringBuilder(s);
int index = 0;
while ((index = sb.indexOf("\t", index)) != -1) {
sb.setCharAt(index, ' ');
for (int i = index % expand + 1; i < expand; i++) sb.insert(index, ' ');
}
を取っ払って、次の2行を、
out.write(s.replace('\t', ' '));
out.newLine();
に。

905 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 17:49:41 ]
各タブ文字って書いてあるけど垂直タブは?



906 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 18:01:23 ]
普通に考えりゃ各タブ文字って各種のタブ文字って意味じゃなく
ファイルに現れた各々のタブ文字についてって意味だろw

907 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 18:46:30 ]
ハードタブからソフトタブに書き換えろ。

って言えばほかに解釈のしようが無いのにね。
言葉を知らんのは不便だなぁ。

908 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 21:45:15 ]
【 課題 】球を跳ねさせる
【 形態 】Applet
【 GUI  】制限なし
【 期限 】来週の月曜日まで
【 Ver  】java version "1.6.0"
【 補足 】kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3956.txt
球の動きであるルンゲクッタ法は既にできています。
そこで、地面と壁があると考え(別に描かなくてもいいです)
球の動きに跳ねる動作を加えて欲しいです。
地面に当たれば跳ねて、壁にあたれば跳ね返るという具合に。
よろしくお願いします。

909 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 22:33:50 ]
Java・・・いつのまに1.6なんて出やがった
気づかなかったよママン(´・ω・`)

910 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:12:04 ]
【 課題 】立方体を定義し、
スクロールバーを用いてXY平面上の45度の軸の周りを回転する映像を描画する
【 形態 】Applet

【 期限 】木曜日まで
【 Ver  】わかりません
【 補足 】立方体とを回転させることまではできたのですが、45度傾かせることができません。
よろしくお願いします

911 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:29:46 ]
>>910

>【 Ver  】コンソールでjava -versionを実行し、その結果を貼ります。 《必須》

>立方体を定義し
既存ライブラリの有無。

>スクロールバー
スライダーじゃなくて?

>回転する映像を描画する
正四面体モデリングしてアニメつけてavi吐いてJMFで描画!俺って頭イイ!!

さて、今のままじゃ永遠に回答は来ないわな。

912 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:31:55 ]
【 課題 】複数の口座による預金、引き出し等。
【 形態 】1. Javaアプリケーション
【 期限 】木曜日まで
【 Ver  】1.5.0
【 補足 】丸投げでお願いします。問題文は
      www.uploda.org/uporg802811.rtf.html
      にuploadしてあります。
      よろしくお願いします。

913 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:40:34 ]
>>912です。
アカウントクラスの問題のところで最初の変数がnextCustIDとなっていますが
実際はnextAcctNoです。失礼しました。

914 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:44:41 ]
>>911
すいません。
再度。

【 課題 】
スクロールバーを用いてXY平面上の45度の軸を中心に回転する立方体を描画する

【 Ver  】1.5.0

スクロールバーを動かすと立方体が回転します。
回転の中心は立方体の中心です。

わかりずらくてすいません。

915 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 04:08:54 ]
>>908
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29374
元のソースをできるだけ残してるけれど、アニメーション部分は総書き直し。
元のままだと何も描画されずに応答も無くなっただろ?
paintの中で無限ループするなんて無茶しやがってw
x=xmin,x=xmax,y=yminに障壁があるものとしている。
水平方向は等速直線運動だから問題ないが、
鉛直方向は等加速度直線運動だから本当はこの方法では誤差が出てくる。
タイムスライスが小さいのでy=ymin丁度の時点の速度が得られているかもしれないが、
y<yminが得られた時は誤差が蓄積していく。とはいえ、そうだとしても長時間動かさないと、
このパラメータなら気にならないとは思う。



916 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 16:35:58 ]
C/C++スレにあるようなうpロダの需要ってある?
あるなら作ろうと思うんだが。
ソースポストネット、手軽に投稿できるのはいいんだがログがずっと残るから
ひょんな事からばれてパアという事になりかねん気がしてきた。

917 名前:デフォルトの名無しさん [2007/05/09(水) 18:18:55 ]

【 形態 】1. Javaアプリケーション(main()で開始)    
【 GUI  】4. 制限なし
【 期限 】 2007/05/10 AM9:00 まで
【 Ver  】java version "1.5.0_11"
【 用語 】特になし
【 補足 】丸投げです。よろしくお願いします。

微分方程式
d^2y/dt^2-μ(1-y^2)dy/dt+y=0, 0≦t≦10

y(0)=2,dy/dt(0)=0,μ=1として上の微分方程式
を数値的に解き、dy/dt(t)をグラフ表示しなさい。
また、分かりやすく説明しなさい。



918 名前:デフォルトの名無しさん [2007/05/09(水) 18:27:41 ]

【 形態 】1. Javaアプリケーション(main()で開始)    
【 GUI  】4. 制限なし
【 期限 】 2007/04/29 PM01:00 まで
【 Ver  】java version "1.5.0_11"
【 用語 】特になし
【 補足 】丸投げです。よろしくお願いします。

微分方程式
d^2y/dt^2-μ(1-y^2)dy/dt+y=0, 0≦t≦10
を考える。
y(0)=2, dy/dt(0)=0,μ=1として微分方程式を数値的に解き、
dy/dt(t)をグラフ表示しなさい。また、分かりやすく説明しなさい。



919 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 20:42:02 ]
物理のお勉強ですか?
微分・積分とはまた、これぞ高校生!って内容だな。
ナツカシス

920 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 20:55:54 ]
>>912です。課題を上げなおしました。
www.uploda.org/uporg803605.rtf.html


921 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 21:41:03 ]
【 課題 】文字列の最初の10文字と最後の10文字とを表示するプログラム
【 形態 】Javaアプリケーション
【 GUI  】制限なし
【 期限 】今日
【 Ver  】
【 補足 】 最初の10文字までの方まではできましたが最後の10文字がわからないです

class 10Chars{
public static void main(String args[]){
String s ="One Two Three Four Five Six Seven";
String substring = s.substring(0,10);
System,out,println(substring);
}
}

922 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 21:43:35 ]
>>921
ヒント: String.length() メソッド

923 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 22:37:40 ]
>>921
最初の10文字までの方もできてないじゃん
コンパイル通らねえ
そんなお前にはこれでいいだろう
public class Chars10 {
public static void main(String[] args) {
String s ="One Two Three Four Five Six Seven";
String substring = s.substring(0,10);
System.out.println(substring);
while (s.length() > 10) s = s.substring(1);
System.out.println(s);
}
}

924 名前:921 mailto:sage [2007/05/09(水) 23:09:48 ]
>>922 >>923
ありがとうございました

925 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 00:34:30 ]
ネットワークプログラミングが課題で出たのですが解りません。
誰か助けて頂けないでしょうか。

問1 次を実行した結果を書きなさい
サーバー1

#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>

#define PORT 8427

int main(int argc, char* argv[]){
struct sockaddr_in server;
struct sockaddr_in client;
int s_wait;
int s_connect;
int client_len;
unsigned char* client_addr;
char buf[128];




926 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 00:35:16 ]
bzero((char *)&server, sizeof(server));
server.sin_addr.s_addr = htonl(INADDR_ANY);
server.sin_family = AF_INET;
server.sin_port = PORT;


if((s_wait = socket(AF_INET, SOCK_STREAM, 0)) == -1){
fprintf(stderr, "サーバへのソケットが生成できません。 \n");
exit(1);
}

if(bind(s_wait, (struct sockaddr*)&server, sizeof(server)) == -1){
fprintf(stderr, "ソケットにサーバを設定できませんでした。 \n");
exit(1);
}

927 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 00:35:46 ]
if((listen(s_wait, 5)) == -1) {
fprintf(stderr, "待ち行列が設定できません。 \n");
exit(1);
}

client_len = sizeof(client);
if((s_connect = accept(s_wait, (struct sockaddr *)&client, &client_len)) < 0) {
fprintf(stderr, "サーバに接続を要求できません。 \n");
exit(1);
}




if((close(s_wait)) == -1) {
fprintf(stderr, "ソケットディスクリプタをクローズできません。 \n");
exit(1);
}


client_addr = (unsigned char*)&(client.sin_addr.s_addr);
printf("connected to %d.%d.%d.%d.",
client_addr[0], client_addr[1], client_addr[2], client_addr[3]);

928 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 00:36:14 ]
>>925-927
だが言語が違う

929 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 00:36:16 ]
sprintf(buf, "HELLO, %d.%d.%d.%d!.",
client_addr[0], client_addr[1], client_addr[2], client_addr[3]);
if((write(s_connect, buf, strlen(buf))) == -1) {
fprintf(stderr, "ソケットへデータを書き込めません。 \n");
exit(1);
}

if((close(s_connect)) == -1) {
fprintf(stderr, "ソケットディスクリプタをクローズできません。 \n");
exit(1);
}
}

930 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 00:53:09 ]
>>928
すいませんでした
cにいけばいいですか?


931 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 05:45:44 ]
>>930
授業中寝過ぎだろw

932 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 09:45:38 ]
【 課題 】1、 計算機イプシロンを求めるプログラムを組め。
@ 倍精度(double)
A 単精度

【 形態 】1. Javaアプリケーション
【 期限 】来週の木曜日
【 Ver  】1.5.0
【 補足 】お願いします。

933 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 14:21:55 ]
>>932
float ef = 1; while (ef + 1 > 1) ef /= 2; ef *= 2;
double ed = 1; while (ed + 1 > 1) ed /= 2; ed *= 2;
System.out.println("float: " + ef + ", double: " + ed);
System.out.println("1.0f: " + Integer.toHexString(Float.floatToRawIntBits(1)));
System.out.println("1.0f + eps: " + Integer.toHexString(Float.floatToRawIntBits(1 + ef)));
System.out.println("1.0: " + Long.toHexString(Double.doubleToRawLongBits(1)));
System.out.println("1.0 + eps: " + Long.toHexString(Double.doubleToRawLongBits(1 + ed)));
System.out.println("float: " + (float)StrictMath.pow(2, -23) + ", double: " + StrictMath.pow(2, -52));

934 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 21:00:53 ]
【 課題 】www.csync.net/service/file/view.cgi?id=1178798337

【 形態 】1. applet
【 期限 】来週の木曜日
【 Ver  】1.5.0
【 補足 】よろしくお願いします。初心者でもわかりやすいようにしていただけるとありがたいです。

935 名前:デフォルトの名無しさん [2007/05/10(木) 23:31:02 ]
【 課題 】インターネット時代の暗号技術―噂の公開鍵を作ってみよう―
【 形態 】 Javaアプリケーション(main()で開始)
【 GUI 】制限なし
【 期限 】5月末まで
【 用語 】平分:元データ、人間が(第三者も)読むことが出来る
      暗号文:第三者に解読不可能な形式に変換されたデータ
      暗号化:平分を暗号化する処理
      複合化:暗号文を平分に変換する処理
      鍵:暗号化、複合化に必要なパラメタ
【 補足 】
公開鍵のしくみ
1番簡単な例だとインターネットを用いて商業活動などを行うとき、たとえばクレジットカードの
番号が知れ渡って悪用される危険を犯したい人はいません。
しかし本や航空券の購入などには便利です。普通、家や金庫の鍵は、所有者や所有者が開けることを許した人が鍵を持ちます。
その場合、不屈性された鍵を普通は直接手渡します。ところがインターネットではそのようなことは出来ません。
そこで考えられたのが閉める鍵と開ける鍵を別々にするという方法です。
そのように分けると閉めるための鍵はネット上で誰でも使えるようにしておいて開けるための鍵は自分だけが知っていればいいわけです。
暗号のための鍵をインターネットでやり取りするという矛盾を抱えるひつようがなくなります。

A氏の秘密鍵は1234,公開鍵はABCD, B社の秘密鍵は6789,公開鍵はVXYZ
A氏がB社から物を買う。→他の人には知られないよう自分のクレジットカードの番号を送りたい。
(1) A氏はB社の公開鍵VXYZを使って自分のクレジットカードの番号を暗号にしてB社にメールで送る。
(2) 受け取ったB社は自社の秘密鍵(非公開)6789で複合化します。
(3) 誤ってコレが悪意のあるCさんに誤送されたりクラッキングされてもB社の公開鍵では
複合化できないのでB社の秘密鍵が漏れない限り安全


*今回の課題*
上記のアルゴリズムに従って公開鍵と秘密鍵を生成するプログラムを作って生成してください(きちんと関数わけすること)
これらの鍵を使って暗号化、複合化を行うプログラムも作って結果を確認してください。
暗号化と複合化は同じ関数で引数が異なるだけというのはアルゴリズムを見ればわかると思います。(なるべくコメントをつけておくこと)




936 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 00:28:47 ]
>>935
無茶しやがって・・・(AA略

937 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 00:35:53 ]
>>935
まぁなんだ・・・
うん、がんばれ

938 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 00:42:46 ]
>>935
特許庁→RSA暗号技術ゲッツ→Javaで書く→タイホーwww

939 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 01:28:38 ]
つーか、こんな問題出す奴は馬鹿にも程があるな。


940 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 04:15:29 ]
>>935
public class HogeCode {
private static java.util.Random r = new java.util.Random();
public static byte[] generateKey() {
byte b; do { b = (byte)r.nextInt(); } while (b == -128);
return new byte[]{b, (byte)(-b)};
}
public static byte code(byte text, byte key) {
return (byte)(text + key);
}
public static void main(String[] args) {
byte[] key = HogeCode.generateKey();
System.out.printf("公開鍵: %d, 秘密鍵: %d%n", key[0], key[1]);
byte[] 元の文 = "Hogeほげ".getBytes();
byte[] 暗号文 = new byte[元の文.length];
byte[] 復号文 = new byte[元の文.length];
System.out.print("元の文: "); for (byte b : 元の文) System.out.print(b + ","); System.out.println("\"" + new String(元の文) + "\"");
for (int i = 0; i < 元の文.length; i++) 暗号文[i] = HogeCode.code(元の文[i], key[0]); // 公開鍵で暗号化
System.out.print("暗号文: "); for (byte b : 暗号文) System.out.print(b + ","); System.out.println("\"" + new String(暗号文) + "\"");
for (int i = 0; i < 暗号文.length; i++) 復号文[i] = HogeCode.code(暗号文[i], key[1]); // 秘密鍵で復号化
System.out.print("復号文: "); for (byte b : 復号文) System.out.print(b + ","); System.out.println("\"" + new String(復号文) + "\"");
for (int i = 0; i < 暗号文.length; i++) 復号文[i] = HogeCode.code(暗号文[i], key[0]); // 公開鍵で復号化
System.out.print("公開鍵で復号: "); for (byte b : 復号文) System.out.print(b + ","); System.out.println("\"" + new String(復号文) + "\"");
}
}

941 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 04:25:24 ]
あとは公開鍵や暗号文から秘密鍵や平文を知るのが難しいアルゴリズムをいかに見つけるかだが
それは商売のネタになるくらいなのでがんばってくれ

942 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 06:11:11 ]
>>940
間違ってはないがそういう問題じゃないよな暗号化って、むしろ>>941
だからメチャクチャなんだよな>>935の課題って。

ところでそろそろ次スレだね

943 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 06:16:24 ]
いや、たぶん
> 上記のアルゴリズムに従って
ってあるくらいでアルゴリズムは提示されていて
それを質問者が出していないだけだと思ったんだが
単に既にあるアルゴリズムの実装とそのテストが課題だと思う
>>940はもちろんシャレだよ

944 名前:デフォルトの名無しさん [2007/05/11(金) 06:26:07 ]
>単に既にあるアルゴリズムの実装とそのテスト
それこそ、もしかしたら本当に>>398だなw
アメリカなんかじゃ保護されたアルゴリズムは輸出制限掛かってたくらいなのに。


945 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 06:29:08 ]
ミスった。

>既にあるアルゴリズムの実装とそのテスト
てぶぶんは同意だからそれがないとどうしようもないなぁ。

あと、>>938だね



946 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 06:35:11 ]
普通にRSAじゃないのかな。
実装するのにシンプルでパブリックドメインで。

947 名前:デフォルトの名無しさん [2007/05/11(金) 09:02:56 ]
>>935の補足です

RSA暗号方式を使用してください
1. 必要なアルゴリズム
(1)素数の求め方
pやqの素数は256bit前後が一般的です。素数にしてもあくまで素数である確率がある程度以上ということでやっています。
乱数を使って見つけてください。約数の有無を調べればいいわけだが・・2からqまでなんて調べないこと、ほとんどが不要な無駄な計算になります。
2からsqrt(q)で十分です。
@ システムが用意している乱数を作る関数を使い適当な整数を得る。
A これを今日は3桁以内になるように変換する
B それが素数かどうかを調べる
C 2つの素数が見つかるまで(pとqに設定)上記@からの処理を繰り返す
n=p*qとm=(p-1)*(q-1)を計算する

(2)eの見つけ方(最大公約数gcd(e,m)ただm=(p-1)*(q-1))
次にgcd(e,m)=1となるeを見つける
ここで最大公約数(gcd)を見つける必要がありますがこれには有名なユーグリッドの互助法というのがあります。
ここでもまた適当に乱数eを発生させ(2桁以内),gcd(e,m)が1かどうかを調べる。gcd(e,m)が1ではない場合は1になるまで乱数を発生させる。
ユーグリットの互助法によりxとyのgcdを求める手順
@ 常にx>yとなるように、場合によってはxとyの値を交換する
A z = x mod y を計算する。zが0だったら終了(gcdはy)
B yとx – yを比較して大きいほうをx小さいほうをyとする →Aへ

(3)dの見つけ方
eが決まりm=(p-q)*(q-1)が決まると(e*d) mod m = 1となるdを計算する必要がある
(2)よりeとmは互いに素(gcd(e,m)=1)であるとき
1=e*d(mod m)となるdが存在する。(法mに関するeの乗法的逆元存在する)
このdを求めるためには不定方程式e*d+m*n=1を解くことになる
そのために今度はユーグリッドの互助法の拡張定理を使う


948 名前:デフォルトの名無しさん [2007/05/11(金) 09:07:12 ]
>>947の続き

ユーグリッドの互助法の拡張定理により、互いに素であるyとaに対して
a*x+b*y=1となるxを求める。
作業用のローカル変数(s,t,u,v)を次のように初期化
s=a; t=y; u=1; v=0;
while(sが正の間){
q=t/s(切捨て)
w=t-q*s
t=s
s=w
w=v-q*u
v=u
u=w
}
v<0ならばv+yがv>0ならばvが求めるxになる
このときの公開鍵が(e,n)で秘密鍵が(d,n)である。ただしpとqも秘密にする必要がある
(4) 暗号化と複合化
平分Mの暗号化Me%n -> C
暗号文Cの複合化Cd%n -> M
MeやCdの計算をそのまま行うとあっという間にオーバーフローしてしまいます。Word=2の31乗を超えて
しまうのです。そこで次のような手順で計算するようなプログラムにしてください。
たとえば111の37乗%323という計算をする場合は次のように計算させます
111の2乗%323=111*111%323=2321%323=47
111の3乗%323=111*47%323=5217%323=49
111の4乗%323=111*49%323=5439%323=271

111の37乗%323=111*305%323=33855%323=263
このように計算させることにより圧倒的に計算量が少なくなります。

949 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 12:20:57 ]
ど、どうでもいいけど言葉として、より適切なのは「復号化」じゃなくて「復号」なんだからねっ!

950 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 14:04:41 ]
「暗号化する」と「復号する」
技術用語としては対称性がないのが美しくないな

951 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 14:37:30 ]
暗号する

952 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 14:40:04 ]
>>949-951

www.st.ryukoku.ac.jp/%7Ekjm/admin/2005/10.html#20051025__fukugou


953 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 15:08:16 ]
「復号化」で「暗号化」と対称だ、というのは馬鹿っぽいけど
だからと言って「暗号化」と「暗号解除」で対語だというのも何だかね
「暗号」も「する」を付けたら動詞になるようになればいいが
「暗号する」は違和感あり過ぎだw
暗号化で暗号になるのなら平文にするのは平文化か?これも酷いが

954 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 15:16:56 ]
> 「復号化」で「暗号化」と対称だ、というのは馬鹿っぽいけど
技術者が『「復号」が正しい』とか言うのも馬鹿っぽい。

そんなん国語学者にでもやらせとけ、とか思う。

955 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 15:18:39 ]
訳語2.0のスレはここですか?



956 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 15:19:21 ]
欧米化っ!

957 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 15:21:44 ]
専門家にやらせて良い方向に進んだ例はない

958 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 15:23:10 ]
>>957
専門化

959 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 15:37:04 ]
スレの大喜利化。。。

960 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 20:08:13 ]
で、誰かやってるの(*‘ω‘ *) ? >935

話は変わるけど、誰かバーローwwwで出てきた
ナイトバロン(ウィルス)をJavaで作ってくださいぽっぽ(*‘ω‘ *)

961 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 20:08:36 ]
>>947
その理論を15〜20年くらい前にログインで読んだときは感動した覚えがあるな

962 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 20:18:54 ]
マスコミか!と掛けまして、またお前か!と解く
そのこころは?

963 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 20:24:46 ]
>>962
誤爆は何かうp

964 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 20:37:19 ]
まあ>935は
明日になっても誰もやってなかったらやったるよ
興味あるし

965 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 20:42:40 ]

そのこころは、えー、笑天はガチかどうかが何かと話題になりますが、実は誤爆も
含めて、前もってコミにしてあるわけで、仕込みと申しますか、ヤラsうわなにをすrr



        (そのままでしばらくお待ちください)



       **** ぉーぃ、やまだくん! クマのぬいぐるみ。 はやくはやく!!





966 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 21:27:57 ]
>>964
ついでに商用でも使えるライセンスでライブラリー化お願いします(=ω=)

967 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 21:58:53 ]
bouncycastle では駄目なん?

968 名前:デフォルトの名無しさん mailto:sage らきすたネタでお送りします [2007/05/12(土) 00:48:20 ]
(=ω=. ) いや、課題に既製品使っちゃ駄目でしょ。常識的に考えて・・・。



969 名前:らき☆すたチャンネル mailto:sage 二世容坊花台 [2007/05/12(土) 01:47:50 ]
【 課題 】 らき☆すた 動画の好きなコマをAAに変換できるWebアプリケーションの作成
【 形態 】 3. Servlet (Webサービス API提供可能)
【 GUI  】 Flash
【 期限 】 らき☆すた放送終了まで(納期を延長したければ、京兄へ100クールにしてくださいと要望送る汁)
【 Ver  】 servlet2.1以降 Java1.5以降 Flash MX以降
【 補足 】 出来れば、ニコニコ動画開発スタッフになって、拡張機能にして下さい。

さて、らき☆すた ネタはここまでにしておこうね(=ω=)

970 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 06:14:35 ]
実況スレにうp!うp!と書き込み続けるだけなら出来そう

971 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 22:02:22 ]
【 課題 】
以下の2つの行列の積を計算するプログラムを配列を使って書け。
A =
1 2 3
1 1 1
2 2 2

B =
1 2
2 4
5 6

Ci,j = [n]納k=1] Ai,k・Bk,j

【 形態 】1. Javaアプリケーション(main()で開始)/
【 GUI  】4. 制限なし
【 期限 】2007/05/14 PM01:00まで
【 Ver  】java version "1.5.0_11"
【 補足 】丸投げです。よろしくお願いします。

972 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 22:43:40 ]
>971
前に作ったヤツ。
ttp://www.wikiroom.com/java/index.php?SourcePost__#p36dc362

973 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 10:09:28 ]
>>972
ありがとうございます

974 名前:デフォルトの名無しさん [2007/05/13(日) 12:04:10 ]
>>935
>>947
>>948
誰かやってください
お願いします

975 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 12:15:21 ]
うぜえ
今やってたのにやる気うせた



976 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 12:18:48 ]
やってもいないのにそんなことを言うもんじゃないよ

977 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 13:08:00 ]
>>974
だいじょうぶ。期限は5月末までだ。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<383KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef