[表示 : 全て 最新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/

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);
}
}






[ 続きを読む ] / [ 携帯版 ]

前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