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

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
分かりました。
これからは、質問スレで聞いてみようと思います。
本当にお手上げな学校の課題が出た場合は、
こちらのスレも利用するかもしれないので、
その際はヨロシクお願いします。

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






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

前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