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

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2009/01/20(火) 00:05:26
>>950
どうでもいいなら、こんなか?
http://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/555.java
953デフォルトの名無しさん:2009/01/20(火) 01:33:24
javascriptの宿題について聞きたいんだけど
ここはスレちですかね??

ほかは過疎ってるみたいなので、できたら教えてほしいのだが・・・
たのみます!
954デフォルトの名無しさん:2009/01/20(火) 01:34:24
【 課題 】文字列置換えプログラムhttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/556.zip
【 形態 】Javaアプリケーション(main()で開始)
【 GUI  】 制限なし
【 期限 】1月22日
【 Ver  】1.6.0_07
【 補足 】他より規模が大きいプログラムですがどうぞよろしくお願いします。
      丸投げで申し訳ないです。
955デフォルトの名無しさん:2009/01/20(火) 01:35:11
>>953
>>1くらい読め
死ね
956デフォルトの名無しさん:2009/01/20(火) 01:37:58
>>955
しつれいしやした
957デフォルトの名無しさん:2009/01/20(火) 01:42:01
958デフォルトの名無しさん:2009/01/20(火) 10:53:33
【 課題 】画面をクリックするたびに、自己アピールを効果的に行う文字・図形・画像・そして音声が表示・再生されるものであること。
【 形態 】javaアプレット
【 GUI  】 制限なし
【 期限 】1月24日
【 Ver  】1.6.0_07
【 補足 】J自由課題でして、絵本のようにクリックで画像が変化するアプレットが作りたいのですが、
なかなかうまくいかなくて困っています。
http://chaichan.web.infoseek.co.jp/qa6500/qa6913.htm
ここにあったのを使ったみたのですが、
if (count & 1) {g.drawImage(img[1],0,0,this);}
の部分で[互換性の無い型 検出値int 期待値boolean]
と表示されてしまいます。
初心者でよくわからない事が多いですが、よろしくお願いしますm(_ _)m
959デフォルトの名無しさん:2009/01/20(火) 11:52:44
>>958
課題の日本語おかしくね?
クリックすると画像が変化するアプレットの作成が希望でいいの?

エラーの意味は count & 1 が int なのに対して
if の条件は boolean でなければいけないという意味。
Java では if の条件に int は使えない。
960デフォルトの名無しさん:2009/01/20(火) 11:53:57
日本語おかしいとか書いたが自分の日本語もおかしかったwすまん
961デフォルトの名無しさん:2009/01/20(火) 12:36:23
>959
はい、クリックすると次の画像に切り替わっていくアプレットです。
public class imageCanvas extends Canvas implements MouseListener {
int count = 1 ;
imageCanvas() {
addMouseListener(this);
}
public void paint(Graphics g){
if (count & 1) {g.drawImage(img[1],0,0,this);}
else {g.drawImage(img[2],0,0,this);}
}
これだとどこを直せばいいでしょうか?
intをbooleanに置き換えてみたのですが、
演算子&はboolean,intに適用できませんになってしまいます;
962947:2009/01/20(火) 15:20:00
>>952
お礼が遅くなってしまいましたがどうもありがとうございました!
963デフォルトの名無しさん:2009/01/20(火) 15:50:33
>>961
プログラムに関する部分的な質問ならここよりも質問スレ向き

count&1という式はcountの最下位ビットによって0か1という「整数値」が得られる
boolean値が出てくるわけではない
count&1が1(もしくは0)に等しい時にifの後のブロックを実行させたいのなら
その条件式としてきちんとcount&1が1(もしくは0)に等しい旨を示さないといけない
言われたことを適当に解釈してint countをboolean countにしても正しくなるわけがない
964デフォルトの名無しさん:2009/01/20(火) 17:22:39
if((count & 1) == 1)
>>958がやりたいのはこういうかな
countが奇数なら〜ってやりたいなら
if(count%2 == 1)
の方が分かりやすい気がするけど。
965デフォルトの名無しさん:2009/01/21(水) 00:03:30
>963
了解です。だいたい分かりました、ありがとうございます。
ほんとに知識の無い初心者なので、、すみません;
>964
ありです、それに近い感じだと思います。

要領を得ない質問ばかりで申し訳ないです、もう一回if文を復讐しなおしてやってみたんですが
this.addMouseListener(
new MouseAdapter() {
int count = 0;
public void mouseClicked(MouseEvent e) {
count++;
if(count==1) {g.drawImage(img[2],0 , 0, app);}
else if(count==2) { g.drawImage(img[3],0 , 0, app);}
else if(count==3) {g.drawImage(img[4],0 , 0, app);}
else if(count==4) {g.drawImage(img[5],0 , 0, app);}
これで画像が表示されると思うのですが、でてきません。
if((count & 1) == 1) では表示されるのですが・・
付けたし質問でごめんなさい、これで最後にします。
966デフォルトの名無しさん:2009/01/21(水) 00:58:44
>>965
情報を小出しにしてはいけない。ソースコード全体が示されなければなんともいえない。
画面上のコンポーネントのものと違うグラフィックコンテクストに描こうとしているのかもしれないし、
単にrepaintを忘れているだけかもしれない。
やりたいのはこんなこと?
/* <applet code="Ehon.class" width="640" height="400"><param name="images" value="first.jpg,second.jpg,last.jpg"></applet> */
import java.awt.*;
import java.awt.event.*;
public class Ehon extends java.applet.Applet {
private int count = 0;
private Image[] images;
public void init() {
String[] resources = getParameter("images").split(",");
images = new Image[resources.length];
for (int i = 0; i < resources.length; i++) images[i] = getImage(getCodeBase(), resources[i]);
addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
count++;
repaint();
}
});
}
public void paint(Graphics g) {
g.drawImage(images[count % images.length], 0, 0, this);
}
}
imagesという名前のparamタグにカンマ区切りで並べられた画像ファイル群をクリックのたびに切り替えていくアプレット。
画像ファイル群はこのアプレットを含むディレクトリに置く。
967デフォルトの名無しさん:2009/01/21(水) 01:34:43
>966
ありがとうございます!できました!
お騒がせしてすみませんでした、以後気をつけます。
968デフォルトの名無しさん:2009/01/21(水) 12:40:44
以前>>896でお世話になった者です。
前回の課題の続きなのですが、また行き詰まってしまいました;

【 課題 】<ゲームクリア画面の実装>
      ゲームのクリア条件を満たしたら、
      ゲームプレイ画面からゲームクリア画面へと移行するようにする。  
【 形態 】1. Javaアプリケーション(main()で開始)
【 GUI  】2. Swing
【 期限 】提出期限:2009.1.23 解答希望日:2009.1.22
【 Ver  】 1.4.2_09
【 補足 】ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/557.zip
      土台は以前>>897さんから頂いたこのプログラムです。
      クリア画面用の画像はsrcフォルダの中のimageフォルダに
      clear.gifという名前で入れています。
      ゲームクリア条件は敵の全滅です。(敵は上から踏むと消滅します)

度々すみません。どうかよろしくお願いします。
969デフォルトの名無しさん:2009/01/21(水) 16:05:33
【 課題 】javaサーブレットからメールを送信する。
【 形態 】javaアプリケーション及びサーブレット
【 GUI  】分かりません。
【 期限 】1月31日
【 Ver  】java 1.6.0_10 tomcat 5.5.27
【 用語 】javamail sunが提供しているアプリケーションからメールを送受信するためのプログラム
【 補足 】
他サイトとマルチスレッドになりますが失礼を承知で質問させていただきます。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=47883&forum=12

現在java mailを使ったプログラム・サーブレットを作成しているのですが、
サーブレットから値をアプリケーション(java mailの実行プログラム<サーブレットではありません>)に渡して
アプリケーションで実行しようと思っているのですがうまくいきません。
しかし、アプリケーション単体をコマンドプロンプトで動作を確認したところ作動しました。
javamailのjarファイル activation.jarとmail.jarはWEB-INFの配下libに配置しています。
また、クラスパッチは(以下のフォルダにもactivation.jarとmail.jarを配置しています)
C:\Program Files\Java\javamail-1.4.1\mail.jar;
C:\Program Files\Java\jaf-1.1.1\activation.jar;
問題のjavaファイルはコンパイルして
サーブレット(onmail)とアプリケーション(Mailsender1)をweb.xmlに登録してclassesに配備しています。
エラーは排出されません、ちゃんと終了します。
また、エラー構文としてUnsupportedEncodingException eをonmailのソースに書くと
MessagingExceptionがコンパイル時に設定されていないという表示が出てきます。

途中までのソースとweb.xmlの内容
ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/558.zip

なぜ作動しないのかとても気になっています。よろしくお願いします。
970デフォルトの名無しさん:2009/01/21(水) 16:21:01
>>969
質問スレへ逝け
971デフォルトの名無しさん:2009/01/21(水) 20:38:36
二次元配列の行ごとに要素値の最大値を表示する課題です

【 課題 】int[][]型の配列numについて、for文を使って各行ごとの最大値をint型の変数maxに格納して表示する
【 形態 】1. Javaアプリケーション(main()で開始)
【 GUI  】?
【 期限 】2009/1/30
【 Ver  】1.4.2_06
【 補足 】if文で値の代入を繰り返して最大値を出すのは分かるのですが、
for文が絡むとよくわからなくなってしまいます。
また、各行ごとに最大値を出す方法がよくわかりません。
下のように全行通しての最大値が出てしまいます(3行目は0になってほしいのに90になってしまう)

要素
10, 6, 3, 5, 1,
78, 11, 90, -4, 0,
0, -22, -3, -5, -1,

1行目の最大値 = 10
2行目の最大値 = 90
3行目の最大値 = 90


他の課題も各行ごとの処理にする問題なので行き詰まっています…どうかよろしくお願いします。
972デフォルトの名無しさん:2009/01/21(水) 21:26:43
>>971

> 下のように全行通しての最大値が出てしまいます(3行目は0になってほしいのに90になってしまう)
maxを初期化してないんじゃね?

これ、入力はどうすんの?

973デフォルトの名無しさん:2009/01/21(水) 21:33:26
>>970
スレ違い申し訳ありませんでした。
974デフォルトの名無しさん:2009/01/21(水) 23:36:07
>>971
numへの値の代入は自分の問題のやり方に適当に合わせて
3行目が90になるのは>>972の言うように各行ごとにmaxを初期化していないからと思われ
int[][] num = {
{ 10, 6, 3, 5, 1 },
{ 78, 11, 90, -4, 0 },
{ 0, -22, -3, -5, -1 }
};
for (int i = 0; i < num.length; i++) {
int max = Integer.MIN_VALUE;//もし各行に最低1個の値があるならnum[i][0]で初期化してもいい
for (int j = 0; j < num[i].length; j++) {//そのときは比較をj=1から始めてもよい
if (max < num[i][j]) max = num[i][j];
}
System.out.println(i + 1 + "行目の最大値 = " + max);
}
975デフォルトの名無しさん:2009/01/21(水) 23:42:38
もし要素のない行があったらその行の最大値は嘘の値になるね
int[][] num = {
{ 10, 6, 3, 5, 1 },
{ 78, 11, 90, -4, 0 },
{ 0, -22, -3, -5, -1 },
{}
};
for (int i = 0; i < num.length; i++) {
int max = Integer.MIN_VALUE;
for (int j = 0; j < num[i].length; j++) {
if (max < num[i][j]) max = num[i][j];
}
if (num[i].length > 0) System.out.println(i + 1 + "行目の最大値 = " + max);
else System.out.println(i + 1 + "行目に要素はありません");
}
976デフォルトの名無しさん:2009/01/21(水) 23:55:56
【 課題 】課題1 for文を使い18から100までの数字で丁度18で割り切れるものをすべて表示しなさい
      課題2 1から小さい順に7で割り切れかつ9で割り切れる数を10個求めて表示し、さらにその和を表示してください
【 形態 】Javaアプリケーション(main()で開始)
【 GUI  】制限なし
【 期限 】1月22日
【 Ver  】1.6.0_07
【 補足 】2問もすいません、急ですがどうかよろしくお願いします。
977デフォルトの名無しさん:2009/01/21(水) 23:59:34
>>975
俺ならInteger.MIN_VALUEなんて知らんって言う人間のためにこっちかな。
for (int i = 0; i < num.length; i++) {
if (num[i].length > 0) {
int max = num[i][0];
for (int j = 1; j < num[i].length; j++) {
if (max < num[i][j]) max = num[i][j];
}
System.out.println(i + 1 + "行目の最大値 = " + max);
} else System.out.println(i + 1 + "行目に要素はありません");
}
978デフォルトの名無しさん:2009/01/22(木) 00:06:59
>>976
public class R976 {
public static void main(String[] args) {
System.out.println("課題1");
for (int i = 18; i <= 100; i++) if (i % 18 == 0) System.out.println(i);
System.out.println("課題2");
int sum = 0;
for (int i = 1, n = 0; n < 10; i++) {
if (i % 7 == 0 && i % 9 == 0) {
System.out.println(i);
n++;
sum += i;
}
}
System.out.println("sum=" + sum);
}
}
979デフォルトの名無しさん:2009/01/22(木) 00:13:10
>>978
i+=18じゃね?
980デフォルトの名無しさん:2009/01/22(木) 00:18:00
>>979
まあ課題2も互いに素だからi+=63でもいいんだが
各数値のうち割り切れるものをifで選択していくというのが題意じゃないかと思って愚直に
981デフォルトの名無しさん:2009/01/22(木) 00:18:14
>>979
それは答えありきでやってるからこういう課題ではいいんじゃね?
982デフォルトの名無しさん:2009/01/22(木) 01:29:28
念のため>>979の意見を取り入れて
public class R976b {
public static void main(String[] args) {
System.out.println("課題1");
for (int i = 18; i <= 100; i += 18) System.out.println(i);
System.out.println("課題2");
for (int i = 63; i <= 63 * 10; i += 63) System.out.println(i);
System.out.println("和=" + ((10 * (10 + 1) / 2) * 63));
}
}
数学的知識をどこまで使っていいかは課題の意図を真には知りえないので推測するしかないわけだが
983デフォルトの名無しさん:2009/01/22(木) 02:16:55
素直に解いて来た学生を、講師が小ばかにしてヘンテコな解答を発表するパターンか?
984976:2009/01/22(木) 06:26:21
みなさんありがとうございます。本当の助かりました。
985971:2009/01/22(木) 10:37:57
>>972,974-5,977
仰る通り、各行ごとにmaxを初期化していませんでした
お陰様で完成しました、ありがとうございました
986デフォルトの名無しさん:2009/01/22(木) 11:08:19
よろしくお願いします!!!m(__)m

以下の図形を描くアプレットを1つ作成せよ
 直線(drawLine),四角形(drawRect),楕円(drawOval)
※これらのメソッドはいずれも4つの引数をとる
 ただし,これらの図形の元となるクラスを作成し,それを
継承してポリモルフィズムにより上記の図形を描き分ける
工夫をすること
※図形の描画位置・サイズ等は任意かつ固定で良い
987デフォルトの名無しさん:2009/01/22(木) 11:13:09
>>986
>>1くらいよめ
しね
988デフォルトの名無しさん:2009/01/22(木) 19:03:12
すみませんでも死にません

【 課題 】以下の図形を描くアプレットを1つ作成せよ
       直線(drawLine),四角形(drawRect),楕円(drawOval)
      ※これらのメソッドはいずれも4つの引数をとる
       ただし,これらの図形の元となるクラスを作成し,それを
      継承してポリモルフィズムにより上記の図形を描き分ける
      工夫をすること
      ※図形の描画位置・サイズ等は任意かつ固定で良い

【 形態 】1. Javaアプリケーション(main()で開始)/2. Applet/
      1か2かどちらかわかりません
【 GUI  】?
【 期限 】1/24までにお願いします。
【 Ver  】1.6.0_06
【 補足 】ポリモフィズムを満たしてアプレットで図形を描くって
      どうすればいいんでしょうか?どうかよろしくお願いします。
989デフォルトの名無しさん:2009/01/22(木) 20:51:24
【 課題 】int[][]型の配列numを、for文を使って各行の最小値を表示し、
その最小値の要素の要素番号を表示する
【 形態 】1. Javaアプリケーション(main()で開始)
【 GUI  】?
【 期限 】2009/1/30
【 Ver  】1.4.2_06
【 補足 】 各行の最小値をint型のminvalue、
その最小値の要素番号をint型のminindexに格納して表示する、というもので、
最小値を表示することはできたのですが、
その最小値の要素の要素番号を表示する方法が分かりません。
下のように表示させたいのですが…どうかお願いします。


配列num
1,10, 9, 7, 8
30, 10, 9, 4, 6
-1, -2, -9, -5, -6

0行目の最小値 = 1
0行目の最小値の要素番号 = 0
1行目の最小値 = 4
1行目の最小値の要素番号 = 3
2行目の最小値 = -9
2行目の最小値の要素番号 = 2
990デフォルトの名無しさん:2009/01/22(木) 20:52:49
991デフォルトの名無しさん:2009/01/22(木) 21:25:25
>>990
違うんじゃね?
992デフォルトの名無しさん:2009/01/22(木) 21:34:19
次ぎたてるよ
993デフォルトの名無しさん:2009/01/22(木) 21:36:54
立てたよ

★★ Java の宿題ここで答えます Part 67 ★★
http://pc11.2ch.net/test/read.cgi/tech/1232627790/
994デフォルトの名無しさん:2009/01/22(木) 21:44:08
>>991
いやいやいや
995デフォルトの名無しさん:2009/01/22(木) 21:54:04
>>989
出来たよ
次スレにうpろだへのリンク貼った

★★ Java の宿題ここで答えます Part 67 ★★
http://pc11.2ch.net/test/read.cgi/tech/1232627790/
996デフォルトの名無しさん:2009/01/22(木) 22:21:59
>>988
インタフェースで定義したけど、どうしてもクラスでないといやなら抽象クラスにでもしてくれ
//<applet code="Figure.class" width="200" height="200"></applet>
public class Figure extends java.applet.Applet {
private Drawable[] figures = {new FixedLine(), new FixedRectangle(), new FixedOval()};
public void paint(java.awt.Graphics g) {
for (Drawable f : figures) f.draw(g);
}
}
interface Drawable {
void draw(java.awt.Graphics g);
}
class FixedLine implements Drawable {
public void draw(java.awt.Graphics g) {
g.drawLine(20, 20, 70, 90);
}
}
class FixedRectangle implements Drawable {
public void draw(java.awt.Graphics g) {
g.drawRect(120, 20, 70, 50);
}
}
class FixedOval implements Drawable {
public void draw(java.awt.Graphics g) {
g.drawOval(30, 120, 150, 70);
}
}
997デフォルトの名無しさん:2009/01/23(金) 00:10:01
>>996
ありがとうございます!!!!
998デフォルトの名無しさん:2009/01/23(金) 01:26:45
t
999デフォルトの名無しさん:2009/01/23(金) 01:27:07
t
1000小倉優子 ◆YUKOH0W58Q :2009/01/23(金) 01:27:31
1000ならジュースでも飲むか
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。