★★ Java の宿題ここで答えます Part 65 ★★at TECH
★★ Java の宿題ここで答えます Part 65 ★★ - 暇つぶし2ch307:デフォルトの名無しさん
08/06/30 11:12:30
>>306
2の図形選択と1の直線追加の手抜き差分。
直線のクラス LineFigure は直してないが、座標計算要修正。
class DrawApplication に以下を追加:
 private String figureMode;
 public void setFigureMode(String figureMode) {
  this.figureMode = figureMode;
 }
同クラス内メソッド void createFigure(int x, int y) を修正:
 //Figure f = oval ? new OvalFigure(x, y, 0, 0, currentColor): new RectangleFigure(x, y, 0, 0, currentColor);
 Figure f = null;
 if(figureMode.equals("Oval")) {
  f = new OvalFigure(x, y, 0, 0, currentColor);
 } else if(figureMode.equals("Rectangle")) {
  f = new RectangleFigure(x, y, 0, 0, currentColor);
 } else {
  f = new LineFigure(x, y, 0, 0, currentColor);
 }
class DrawMain の void main(String argv[]) を修正:
 //final JButton fc = new JButton("図形変更");
 final JComboBox fc = new JComboBox(new String[]{"Oval","Rectangle","Line"});
 fc.addActionListener(new ActionListener(){
  public void actionPerformed(ActionEvent e){
   app.setFigureMode((String)fc.getSelectedItem());
   }
  });
 fc.setSelectedItem("Oval");

308:307
08/06/30 11:17:40
ごめん、ソース部分に全角スペースでインデント入ってしまった。
コピペするとき消しといて。

309:デフォルトの名無しさん
08/06/30 12:43:37
>>308 ぜんぜん問題無い

310:デフォルトの名無しさん
08/06/30 14:32:49
>>275の問題の続きです

【課題】問題1のプログラムをもとに、 Music クラスに Comparable インタフェースを実装し、
それを利用してソートをするようにプログラムを変更しなさい。
ただし、rating の降順でソートすることは変わらないものとする。

ソートのアルゴリズムは問題1と同じでよい。

main メソッドのあるクラスのクラス名は ComparableMusicSortByRating とする。

【形態】1. Javaアプリケーション(main()で開始)
【期限】6月30日 23:59
【Ver】1.5.0.11
【補足】Comparableインターフェースを作成していちおうソートはできたのですが
問題1のソートアルゴリズムを全く使用していないものになってしまいました。
URLリンク(rg550.hp.infoseek.co.jp)
どうしたら先のソートアルゴリズムを利用できるかが分からない部分です。
よろしくお願いします

311:デフォルトの名無しさん
08/06/30 15:16:47
>>310
ArrayListをCollections.sort()にかけてやればよいのでは?

312:デフォルトの名無しさん
08/06/30 18:04:37
[1] 授業単元:オペレーティングシステム
[2] 問題文(含コード&リンク):
プログラム
step1: a = x + y;
step2: b = z + 1;
step3: c = a ? b;
step4: w = c + 1;
に関し、URLリンク(rg550.hp.infoseek.co.jp)
を完成させて、
step1とstep2を並列実行させるプログラムを作成せよ。
但し、x,y,zはプロンプトにしたがって入力するとする。
正しく動作したか?結果を考察せよ。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C言語
[4] 期限:7/3 23:00まで

313:デフォルトの名無しさん
08/06/30 18:07:03
>>312
落ち着いてスレタイを嫁

314:276
08/06/30 18:09:02
>>310
Music が Comparable#compareTo() を実装する利点は、sort() が Music クラスを知らなくて済むことなんだが…。
ジェネリックスの書き方が自信ないのでそのまま。

// Music オブジェクトのリストをソート
private static void sort(ArrayList<Music> list)
{
for(int i=1; i<list.size(); ++i)
for(int j=list.size()-1; j>=i; --j)
//if(list.get(j-1).getRating() < list.get(j).getRating())
if(list.get(j-1).compareTo(list.get(j)) > 0)
swap(list, j-1, j);
}

あ、
Collections.sort(list);

sort(list);
にするのを忘れないよーに。

315:312
08/06/30 18:10:00
誤爆った。
スレ汚しスマソ

316:デフォルトの名無しさん
08/06/30 20:35:30
>>314
たまに見るんだけどforの増加値の所を++iと描くのは何か意味があるのかな?
私はi++って描くんだが

なんとなくバブルソート置いておきます・・
private static void sort(ArrayList<Music> list) {
 for(int i=0; i<list.size()-1; i++)
  for(int j=i+1; j<list.size(); j++)
   if(list.get(i).compareTo(list.get(j)) > 0)
    swap(list, i, j);
}

317:デフォルトの名無しさん
08/06/30 21:07:26
>>316
>  for(int i=0; i<list.size()-1; i++)
上記例では++iでも結果は同じ。

++i : +1してからiを評価
i++ : iを評価後に+1

よって (if i++ > 10) と (if ++i > 10) とは結果が違う。

318:デフォルトの名無しさん
08/06/30 21:27:02
>>317
すまん・・それは知ってるんだけどforの増減値の所は
i++が普通だと思っててなんとなく気になったんだよ

319:デフォルトの名無しさん
08/06/30 22:43:21
package java_center_test;
public class six {
public static void main(String[] args)
{
//以下のswitch文をif文で書き換えてください。
/*
switch(n)
{
case 90;
case 80;
System.out.println("A");
break;
case 70;
System.out.println("B");
break;
case 60;
System.out.println("C");
break;
default;
System.out.println("D");
break;
*/
【 課題 】以下のswitch文をif文で書き換えてください。
【 形態 】1. Javaアプリケーション(main()で開始)
【 GUI  】 5. その他(意味がわかりません)
【 期限 】一週間後です。
【 Ver  】1.5.0
【 用語 】
【 補足 】動かないので /* と */ で囲ってあります.Eclipse というソフトを使っています。OS は MacOSX の 10.4 です。このサイトは先輩から教えてもらいました。初めての利用です。よろしくお願いします。

320:デフォルトの名無しさん
08/06/30 23:04:28
>>319
case の後ろは ; ではなく、 : が正しい。
switchを閉じる } が無い。

その先輩に直接聞いた方が、早かったのでは?

321:639
08/06/30 23:48:56
>>319

package java_center_test;
public class six {
public static void main(String[] args)
{

if(n == 90 || n == 80){
System.out.println("A");
}else if(n == 70){
System.out.println("B");
}else if (n == 60){
System.out.println("C");
}else{
System.out.println("D");
}

322:デフォルトの名無しさん
08/07/01 02:21:36
>>316
プログラミング言語C(K&R) が ++i って書いてあるからそれの影響じゃないかな?

323:322
08/07/01 02:40:50
今確認したらK&Rも i++ だった.スレ汚しスマソ.

324:デフォルトの名無しさん
08/07/01 02:47:31
【 課題 】1.線型リストの要素数を返すメソッド int listLength(ListNode head) を作成しなさい.
2.線形リストの要素を逆順に並べかえるメソッド ListNode listRev(ListNode head) を作成しなさい.
再帰的メソッドと,繰り返し制御を用いた非再帰的なものを作成しなさい.
非再帰的なメソッドの名前はlistRevとし,再帰的メソッドの名前はlistRev2として,
1つのプログラム中に両方の定義を書き,正しく実行できるかが示せればよい.
3. 線型リストの要素を大きさの順(辞書式順序)に並べ替えるメソッド ListNode listSort(ListNode head) を作成しなさい.
【 形態 】1. Javaアプリケーション
【 期限 】7/3 17:00
【 Ver  】1.5.0_15
【 補足 】条件は,next欄を書き換えることで要素の並び方を変更するのであり,単に逆順に表示するのではない.
すなわち,「ポインタを付けなおす」ことに相当するので, new演算子を使わずにリストのnext欄の値を書き換えることで並べかえること.
任意の長さ(要素数)の線形リストに対して動作すること.
すなわち,要素数が1つの線形リストや,要素数が0(空リストnull)のものに対しても正しく動作するか確認しなさい.
となっています.
また,グローバル変数は使えず,listSortではint compareTo(String anotherString)メソッドを使用するように言われています.

課題2の再帰的なメソッドlistRev2と,課題3がうまくいきません.
各メソッドの定義はURLリンク(www.ed.noda.tus.ac.jp)にあります.
よろしくお願い致します.

325:デフォルトの名無しさん
08/07/01 17:33:31
>>320 の方
アドバイスありがとうございます!
本当ですね。> ";" でなく ":" が正しい
問題用紙をじっくり見たら確かにでした。そして画面で見たら分からなかったです。
ちなみに先輩は規則正しい生活なので帰られてました。>夜11時

>>321 の方
ありがとうございます!
動くことも確認しました。ありがとうございました。

あと、期限なのですが、来週と思っていたら、明後日の朝でした。
何でも持ち込みして良いとのことなので、この掲示板のお力も借りられればと思っています。

326:デフォルトの名無しさん
08/07/01 19:40:24
>>316
実装の問題じゃね?
インクリメントを実装するときに、後置だとインクリメントする前の値を返す必要があるから、変数をバックアップした後に+1してバックアップをreturn。
でも前置なら+1した変数をそのままreturnすればいいので、後置にするよりローコストになる。
でも、正直intとかのネイティブならコンパイラの最適化対象になりそうなんで、コンパイルしてみるとどっちでも同じというオチ。

327:デフォルトの名無しさん
08/07/01 19:50:41
>>324
書いてみた。
URLリンク(rg550.hp.infoseek.co.jp)

328:319
08/07/01 20:17:07
丸投げで申し訳ないのですがよろしくお願いします。

問題
次のように画面に出力されるプログラムを作成せよ。
ただし作成するプログラムに反復構造を含めること。
-----------------------------------------------------------------
12345
1234
123
12
1
-----------------------------------------------------------------


329:319
08/07/01 20:18:10
問題
次のように画面に出力するプログラムを作成せよ。
ただし作成するプログラムに反復構造を含めること。
-----------------------------------------------------------------
12345
1234
123
12
1
12
123
1234
12345
-----------------------------------------------------------------


330:319
08/07/01 20:22:31
問題
2006年現在の日本の人口は127,700,000人です。
年率0.5%の割合で人口が減少した場合、2007年の人口は何人になるかを計算して、以下のように表示するプログラムを作成せよ。
-----------------------------------------------------------------
2007年の日本の人口はXXXXXXX人になる。
-----------------------------------------------------------------


331:319
08/07/01 20:23:35
問題
2006年現在の日本の人口は127,700,000人です。
年率0.5%の割合で人口が減少した場合、2030年の人口は何人になるかを計算して、以下のように表示するプログラムを作成せよ。
-----------------------------------------------------------------
2030年の日本の人口はXXXXXXX人になる。
-----------------------------------------------------------------


332:319
08/07/01 20:28:41
package java_center_test;

public class exam107 {

//次のプログラムを実行したときの出力を示せ。
//また各 ans を求めた計算過程を説明せよ。
//(説明例)x=3, y=2 のとき ans=x+y=3+2=5

public static void main(String[] args){
int x=3, y=3, ans=1;
ans = x-- * ++y;
System.out.println(ans);
ans += x++ * --y;
System.out.print(ans);

//初期状態:x=3,y=3,ans=1
//次の状態:x=2,y=4,ans=2*4=8 ???
//最後状態:y=3,y=3,(ansは12)←これに足し算するので ans=15 ???

//ゴメンなさい。コンソールでは 次,最後が 12,18 になっています。
//なぜでしょうか?

}
}

333:319
08/07/01 20:35:00
package java_center_test;

public class exam108 {

//以下のプログラムを実行したときの出力結果を示せ。
//さらにこのプログラムを for-loop 文で書き直せ。

public static void main(String[] args){
int num =0, i=1;
while((num=23*i)<100){
System.out.println(num);
i++;
}

//出力結果は得られて理解は出来たのですが、
// for-loop 文の書き直しがちっとも頭に浮かびません。

}
}

334:デフォルトの名無しさん
08/07/01 20:39:35
>>332
>>317


335:319
08/07/01 20:49:26
package java_center_test;public class exam114 {
//各学生の合計を計算し、配列 goukei に格納する。そして各学生の平均点を表示するプログラムを完成させなさい。なお、配列の要素数の情報は length を用いること。
//
//配列 ten
//
//    英語 数学  社会 理科    合計
//学生A  60  50  80  80  →
//学生B  70  80  70  90  →
//学生C  40  90  60  70  →

public static void main(String[] args){
int ten[][]={{60,50,80,80},
{70,80,70,90},
{40,90,60,70}};
int goukei[]=new int[ten.length];
//学生ごとの合計点数の集計
for(int i=0; i< 「Q.1」; i++){
「Q.2」=0; //配列 goukei の初期化
for(int j=0; j<「Q.3」; j++){
goukei[i]=goukei[i]+「Q.4」; } }
//平均点の表示
for (int i=0; i< goukei.length; i++){
System.out.println(goukei[i] /「Q.5」);}}}

336:デフォルトの名無しさん
08/07/01 21:03:05
319の未来が心配だ・・この調子だと毎回丸投げしそうで怖いぞ
>>328とか
1
12
123
1234
12345
を表示するプログラムは授業でやってるとかじゃないのか?

337:319
08/07/01 21:23:48
>>336
自分でも未来が心配です・・
>>328とか
おそらく
System.out.println("1");
System.out.println("12");
System.out.println("123");
System.out.println("1234";)
System.out.println("12345";)
を for 文で書くので、おそらく 12345 を数字でなくて、
文字列として書けば良いのだと思って今のところ String ary[] = 12345
みたいな感じで for 文 ループを回そうとしています。
授業で文字列の最後だけ消して行くような内容はやったかどうか分かりません。

338:319
08/07/01 21:28:03
今は
>>332
ではまっています。
以前に i++ と ++i の違いについての書き込みがあったので、
それを読みながら試行錯誤しています。

int x=3, y=3, ans=1;
ans = x-- * ++y;
System.out.println(ans);
ans += x++ * --y;
System.out.print(ans);

//初期状態:x=3,y=3,ans=1
//次の状態:x=2,y=4,ans=2*4=8 ???
//最後状態:y=3,y=3,(ansは12)←これに足し算するので ans=15 ???

339:デフォルトの名無しさん
08/07/01 21:36:55
>>338
とりあえず、この辺りからじゃね?

int x=3;
System.out.println( x--);
x=3;
System.out.println( --x);


340:319
08/07/01 21:49:09
自己解決したような気がします。
>>332
//日本語になっているのか怪しいけれどメモしておきます。
// int の次の行では x は ++ される前に ans に行くので、
// x は初期状態のままの 3 。そして y は ans に行く前に ++ されるので、
// y は初期状態から1つ足した値の 4 になる。
// 3*4 = 12 という答えが出てくる。
//最後のところは先ず x が int の次の行で -- されているので、
// x は 2 なのだけど、++ は ans に行く後なので、ここでは x は 2 のままで考えて、
// y は上のところと同様に y の前に -- があるから、こっちは -- されて 3 である。
// 3*2 = 6 となって、これが ans に入ってた 12 と足し算になるので合計 18 になる。
//一応、自己解決しました。

341:319
08/07/01 21:53:44
>>339
ありがとうございます。まさに、その辺りでした。> --x と x--
何の意味があるのかわからないのですが、そういうものだと丸暗記して次に進みます。
実は public static void main(String[] args) の意味も理解してません。
とはいえ授業の配布資料のメモにも「丸暗記」と書いてありますし、悩むだけの時間も与えられてないので・・

342:デフォルトの名無しさん
08/07/01 21:57:35
>>341
そこは暗記で良いよ。
public static void main(String[] args)からプログラムが始まるってことでいい。
次は>>330かな・・・

343:319
08/07/01 22:16:59
>>342
そう断言して頂けると安心して次に進めます。
「位置についてよーいドン」の訳語とでも丸暗記しておきます。
>>330ですか。>>333の書き換え問題で悩んでいるので、少し放置して330にチャレンジしてみたいと思います。
実は書き込んだ順と与えられた問題の順番が違っていて、手元の試験問題対策プリントだと、>>332,>>333,>>328,>>329,>>330,>>331,>>335 の順番に並んでいます。

344:デフォルトの名無しさん
08/07/01 22:36:54
これは>319が自分で解けるように誘導する流れなのか?

345:639
08/07/01 22:41:35
>>343
普通にその順番でやっていったほうがいいと思う。
>>330以降の問題も>>333の問題ができないとできない。(whileでもできんことはないけどめんどくさい)

forは
for(初期値;継続条件;増分){
処理内容
}

>>330の問題を直すと
int i,num=0;
for(i=1;(num=23*i)<100;i++){
System.out.println(num);
}


346:639
08/07/01 22:47:50
俺なんで名前>>639にしてたんだwww

>>328

int i,j;

for(i=0;i<5;i++){
for(j=1;j=5-i;j++){
System.out.print(j);
}
System.out.println();
}


347:319
08/07/01 22:51:43
>>344
ここは「丸投げ」のスレッドという認識を持ってしまっているのですが、それはあまりに皆様に失礼な気もしまして・・
>>328>>329について、もしかしたら>>18の三角形の問題が役立つかなと思って>>21の解答例を見たら知らない単語が並んでいて自分には役立たないことが分かりました。
別スレッドに「14: 【初心者】Java質問・相談スレッド116【歓迎】 (***)」というのがあるのも知っているのですが、いきなり質問を投げても経緯を説明しないことには回答者の方も大変かなと思いまして。
Java そのものより Exlipse というソフトウェアの使い方も掴みきれていないような状況ですが、英語とかの課題も平行してプログラミングを勉強しています。
今日は目が痛くなってきたので、そろそろ Java のテキストの読み込みの方に移ろうかなと考えているところです。

348:324
08/07/01 22:58:05
>>327
こんなに早く答えていただきありがとうございます。
大変助かりました。
参考にさせていただきます。

349:319
08/07/01 23:04:06
>>345
書き換え問題ありがとうございます。
確かに同じ結果が出ますね。スゴいです。
どうして for 文と while 文とがあるのでしょうか? while でも出来るけどめんどくさいというのは直感でわかるものなのでしょうか?

>>346
for 文の入れ子構造ですか!?
ちょっとガンバって当てはめてみたいと思います。
「型の不一致: int から boolean には変換できません」と言われてしまいました。
もはや何を言っているのかわからないので今日は画面を消したいと思います。
ありがとうございました。

350:デフォルトの名無しさん
08/07/02 06:26:09
>>319
>>1
基本的にテンプレ無視にはレスしない
長い課題でロダ使わずレス消費するのはマナーいくない

351:319
08/07/02 13:08:19
【 課題 】
package java_center_test;public class exam114 {
//各学生の合計を計算し、配列 goukei に格納する。そして各学生の平均点を表示するプログラムを完成させなさい。なお、配列の要素数の情報は length を用いること。
//配列 ten
//    英語 数学  社会 理科    合計
//学生A  60  50  80  80  →
//学生B  70  80  70  90  →
//学生C  40  90  60  70  →
public static void main(String[] args){
int ten[][]={{60,50,80,80},
     {70,80,70,90},
     {40,90,60,70}};
int goukei[]=new int[ten.length];
//学生ごとの合計点数の集計
for(int i=0; i< 「Q.1」; i++){
「Q.2」=0; //配列 goukei の初期化
for(int j=0; j<「Q.3」; j++){
goukei[i]=goukei[i]+「Q.4」; } }
//平均点の表示
for (int i=0; i< goukei.length; i++){
System.out.println(goukei[i] /「Q.5」);}}}

【 形態 】1. Javaアプリケーション(main()で開始)
【 GUI  】GUI の問題ではないと思います。使用しているのはコマンドプロンプトなので。
【 期限 】明日の午前8時頃でお願いしたいです。
【 Ver  】1.5.0
【 用語 】
【 補足 】>>328 解決、>>329 解決、>>330 解決、>>331 解決、>>332 解決 >>333 解決
      >>345>>346 ありがとうございました。
      本問題(>>335と同じ)は急にレベルが上がった気がします。
      >>350 確かにマナー良くなかったです。ご指摘ありがとうございました。

352:デフォルトの名無しさん
08/07/02 14:54:39
>>351
public class exam114 {
public static void main(String[] args) {
int ten[][] = {
{60,50,80,80},
{70,80,70,90},
{40,90,60,70},
};
int goukei[] = new int[ten.length];
for(int i=0; i<ten.length; i++) {
goukei[i] = 0;
for(int j=0; j<ten[i].length; j++) {
goukei[i] = goukei[i] + ten[i][j];
}
}
for(int i=0; i<goukei.length; i++) {
System.out.println(goukei[i]/ten[i].length);
}
}
}

353:デフォルトの名無しさん
08/07/02 16:48:22
【 課題 】
スレッドの作成に関する、何か,自前のスーパークラスを継承し,かつRunnable Interface を実装したアプリケーションを作成せよ。
【 形態 】1. Javaアプリケーション(main()で開始)
【 期限 】明日の 7/3 19:00まで
【 Ver  】1.6.0
【 補足 】
凝ったものが良いらしいです、ゲームではじゃんけんなど。
よろしくお願いします。

354:デフォルトの名無しさん
08/07/02 17:04:31
>>353
なんか落ちてるもの拾ってくれば?

URLリンク(www.google.co.jp)

355:デフォルトの名無しさん
08/07/02 23:53:05
【 課題 】カウントダウンタイマーを作る
【 形態 】1. Javaアプリケーション(mainLoop()で開始
【 期限 】7月3日 13:00まで
【 Ver  】1.6.0
【 補足 】下記のようにしたのですが秒数がカウントされません。
Date d = new Date();
int seconds = d.getSeconds();
int countdown=20;
int starttime=0;
int i=0;
if(i==0){
starttime=seconds;
i=1;
}
countdown=countdown-(seconds-starttime);
System.out.println(countdown);

356:デフォルトの名無しさん
08/07/03 00:30:37
>>292
この質問をした者ではないのですが、>>296の方がやっていただいたプログラムを
(ii)が完成した状態にしていだだけないでしょうか?


357:デフォルトの名無しさん
08/07/03 00:50:05
>>356
はて?
なにが出来ていないかな?

358:デフォルトの名無しさん
08/07/03 00:58:46
>>357
完成はしていると思いますが(iii)の機能が付いた状態ではなく
(i)と(ii)の機能が付いただけのものが見たかったもので・・・・・・

359:デフォルトの名無しさん
08/07/03 01:12:11
【 課題 】
URLリンク(rg550.hp.infoseek.co.jp)
上記のソースの簡易webブラウザに
"戻る" というボタンを付け,ホームページの閲覧履歴を遡れるように実装する。

【 形態 】Applet
【 GUI  】制限なし
【 期限 】本日 7/3 20:00まで
【 Ver  】1.6.0
【 用語 】数学用語、専門用語の意味、説明を書きます。 《あれば必須》
【 補足 】丸投げです。よろしくお願いします。

360:デフォルトの名無しさん
08/07/03 01:17:04
>>358
(iii)の関連部分を削ってみた。
URLリンク(rg550.hp.infoseek.co.jp)

ただ、(i)の出来上がりとしては、毎回、前の図を消去しないといけないと思う。

361:デフォルトの名無しさん
08/07/03 01:37:42
>>360
横からでしたありがとうございます
(i)は補足がありそれでできましたので大丈夫です

362:デフォルトの名無しさん
08/07/03 07:10:31
>>355
sleepを使えば、こう。
int countdown = 20;
while(0<=countdown){
System.out.println(countdown--);
try{
Thread.sleep(1000);
}catch(Exception ex){
ex.printStackTrace();
}
}

363:デフォルトの名無しさん
08/07/03 08:05:35
それきもい。

364:デフォルトの名無しさん
08/07/03 08:17:53
【課題】クラスA、B、C、Dがある。クラスAはBを継承し、クラスCはBを継承し、クラスDはクラスCを継承する。

【形態】1. Javaアプリケーション(main()で開始)
【期限】7月9日
【Ver】1.5.0
【補足】

365:デフォルトの名無しさん
08/07/03 08:25:14
【課題】クラスA、B、C、Dがある。クラスAはBを継承し、クラスCはBを継承し、クラスDはクラスCを継承する。
クラスBにはint型の変数bが定義されており、コンストラクタB(int B)も定義されているとする。クラスA、C、Dは
すべて親のクラスを継承し、自分のクラスの中に独立した変数の定義はないものとする。すべてのクラスとコンストラクタを定義せよ。
mainを含むクラスはTestInheritanceとしクラスDの変数yをコンストラクタD(13)で生成し、y.bを印字せよ。
【形態】1. Javaアプリケーション(main()で開始)
【Ver】1.5.0
class B {
int b;
B(int b){
this.b=b;
}
}
class A extends B {
A(int b){
}
}
class C extends B {
C(int b){
}
}
class D extends C {
D(int b){
}
}
class TestInheritance {
public static void main (String args[]){
D y = new D(13);
System.out.println("y.b = " + y.b);
}
}
ここまで書いてみたのですがうまくいきません。どこか違うのでしょうか?よろしくお願いします

366:355
08/07/03 08:26:35
>>362
ありがとうございます。
先ほど実行したのですが、
カウントダウンはできているのですがアプレット(MainLoop?)の中で実行できませんでした。
説明不足ですみません。
一回スレッドを使ってやろうとしたのですがうまくいかなかったので
Dateクラスを使って作ってみたのですがよくわかりません。
どなたか良い方法あればよろしくお願いします

367:デフォルトの名無しさん
08/07/03 08:39:01
>>366
>>355では「Javaアプリケーション」と書いてるけど・・・

いずれにせよ、init()に書き込めば、コンソールに表示されるのでは?

368:デフォルトの名無しさん
08/07/03 08:58:32
>>365
super(b)とか書けってことでは?

369:365
08/07/03 09:05:59
>>368
どのように書けばいいのでしょうか??

370:365
08/07/03 09:24:22
自己解決しました
どうもお騒がせしてすみませんありがとうございました

371:デフォルトの名無しさん
08/07/03 14:10:40
どなたか>>359をお願いします。

372:デフォルトの名無しさん
08/07/03 17:07:28
URLリンク(rg550.hp.infoseek.co.jp)
【 課題 】画像を読み込み、読み込んだ画像をグレースケール化した後名前をつけて保存する。
【 形態 】1. Javaアプリケーション(main()で開始
【 期限 】7月4日
【 Ver  】1.6.0 Eclipse仕様
【 補足 】
1.実行すると無限にでるウィンドウの処理を直したい。
displayPanel = new MousePaint();
をコメント文にすると無限にでなくなるのだが、その原因がわからない。

2.マウスリスナーのアクションを無くしてメニューからOpenでファイルを読み込み
ウィンドウにすぐ画像を表示させたい。

3.読み込んだ画像をグレースケール化したい。←初心者のためここが一番わからない^^;

373:デフォルトの名無しさん
08/07/03 17:32:47
>>372
1.→コンストラクタの中で無条件に同じコンストラクタを呼び出しているのだから、無限に呼び出されて当然。


374:372
08/07/03 17:41:38
>>373
どうすれば呼び出されないようにすればいいでしょうか?

375:デフォルトの名無しさん
08/07/03 18:22:08
【課題】
アルゴリズムの作成

(x,y,z,w)に代入されている数字が(1.2.4.8)→(1,2,8,4)→(1,4,2,8)→(1,4,8,2)→(1,8,2,4)→・・→(8,4,2,1)
と4!通りのパターンが順番に代入されていく様子をprintlnで表示するコードを作成すること

【形態】 Javaアプリケーション(main()で開始)
【Ver】 1.6.0
【補足】 代入アルゴリズム部分だけでも大丈夫です よろしくお願いします。

376:デフォルトの名無しさん
08/07/03 19:08:26
【課題】平面に5つの座標を考える。5つの座標(x,y)を二次元配列に入力し、すべての座標間の距離を計算せよ。
【形態】Javaアプリケーション(main()で開始)
【期限】7月4日
【ver】1.6.0
【補足】わからないのでおねがいします

377:デフォルトの名無しさん
08/07/03 19:18:38
>>374
1.displayPanel自体いらないので削除してみた。
2.主旨が分からなかったのでパス。
3.中に入っていたロジックをペーストして、ちょちょっと。

URLリンク(rg550.hp.infoseek.co.jp)

378:デフォルトの名無しさん
08/07/03 20:11:34
>>375
public static void main(String[] args) {
int[] alphabet = {1,2,4,8};
int[] lngTemp = new int[0];
hoge(alphabet,lngTemp);

}
public static void hoge(int[] candi,int[] patt){
if(candi.length==0){
for(int i=0;i<patt.length;i++)System.out.print(patt[i]);
System.out.println();
}else{
for(int i = 0;i<candi.length;i++){
int[] c = new int[candi.length-1];
int index = 0;
for(int j = 0;j<candi.length;j++){
if(j!=i)c[index++]=candi[j];
}
int[] p = new int[patt.length+1];
for(int j = 0;j<patt.length;j++){
p[j]=patt[j];
}
p[patt.length]=candi[i];
hoge(c,p);
}
}
}


379:デフォルトの名無しさん
08/07/03 20:13:12
>>376
二次元配列という注文が、理解しがたい。

380:デフォルトの名無しさん
08/07/03 21:10:05
>>376
とりあえずint[5][2]と判断
public static void main(String[] args) {
int[][] point = new int[5][2];
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 2; j++) {
point[i][j] = (int) (Math.random() * 10);
}
}
for (int i = 0; i < point.length; i++) {
System.out.println(i + 1 + ":("+point[i][0] + "," + point[i][1]+")");
}
System.out.println();
for (int i = 0; i < point.length - 1; i++) {
for (int j = i + 1; j < point.length; j++) {
System.out.print((i+1) + "-" + (j+1) + ":");
System.out.println(distance(point[i], point[j]));
}
}
}
static double distance(int[] point1, int[] point2) {
return Math.sqrt(Math.pow((point2[0] - point1[0]),2.0) + Math.pow((point2[1] - point1[1]),2.0));
}

381:355
08/07/03 21:13:51
>>367
お返事遅くなって申し訳ありません
違う方法ですが無事解決できました。ありがとうございました。

382:372
08/07/03 22:55:12
>>377
ありがとうございます。
これを参考に自分なりにアレンジして作ってみたいと思います。

383:デフォルトの名無しさん
08/07/04 10:54:17
htmlのフォームのボタンを押す動作などをJavaで実現したいのですが、
何かそういったことのためのクラス・メソッドは無いでしょうか?
HttpURLConnectionでUserAgent入れてソース落とすのはできるのですが、
そこから先のFormの処理がわかりません・・・。

よろしくお願いします。

384:デフォルトの名無しさん
08/07/04 11:02:20
フォームについて少し勉強するといいよ

385:デフォルトの名無しさん
08/07/04 12:46:16
>>383
全然言葉が足りないが、ダウンロードした HTML に含まれる form を Java で実行しようとしているのか?
宿題なら >>1 を参照してちょ。
んで、思っているのと違うかも知れんが、
URLリンク(java.sun.com)

386:255
08/07/04 22:35:57
座標A(X1,Y1)~座標B(X2,Y2)までの直線Eと
座標B(X3,Y3)~座標C(X4,Y4)までの直線Fが
交差しているかどうか判定したいです。

どういうコードになりますか?

387:デフォルトの名無しさん
08/07/04 23:06:25
>>386
>>1テンプレを

388:デフォルトの名無しさん
08/07/05 04:54:06
>>386
質問だけならこっち行けばいい

【初心者】Java質問・相談スレッド116【歓迎】
スレリンク(tech板)

389:デフォルトの名無しさん
08/07/05 23:09:27
【 課題 】配列を用いて点数57,78,91,61,42,77点の合計点と平均点、60点以上の人数と
      平均点以下の人数を求めるプログラムを作成せよ。
【 形態 】1. Javaアプリケーション
【 期限 】7/9
【 補足 】学校で配列の所を勉強した時に課題としてでました。丸投げですが宜しくお願いします。




390:デフォルトの名無しさん
08/07/05 23:30:39
>>389
public class Test{
public static void main(String[] args){
int[] score = {57,78,91,61,42,77};
int sum, avr, u60, lavr;

sum = 0;
for(int i = 0; i < score.length; i++){
sum += score[i];
}
avr = sum / score.length;

u60 = 0;
lavr = 0;
for(int i = 0; i < score.length; i++){
if(score[i] >= 60)
u60++;
if(score[i] <= avr)
lavr++;
}

System.out.println("合計点:" + sum);
System.out.println("平均点:" + avr);
System.out.println("60点以上:" + u60);
System.out.println("平均以下:" + lavr);
}
}


391:デフォルトの名無しさん
08/07/06 13:14:18
【 課題 】
四桁の数字をコンソール上でキーボードから入力し、それを出力せよ。
同時に、その数字が素数であるかどうかを判定し、その判定結果を出力せよ。
さらに、その数字より小さい自然数で最大の素数を求め、出力するようにせよ。
上記の内容を実行するプログラムをJAVAで作成せよ。
ただし、以下のポイントを考慮すること。
ポイント:素数でない場合は、判定結果と合わせて、その最大の約数(1とその数自身を除く)も出力する。

【 形態 】1. Javaアプリケーション(main()で開始)

【 期限 】7/8

【 補足 】丸投げです。よろしくお願いします。

392:389
08/07/06 14:37:34
>>390
すぐに回答して頂きありがとうございました。
ホント助かりましたm(__)m

393:デフォルトの名無しさん
08/07/06 15:21:59
>>391
public class ThePrime {
public static void main(String[] args) throws IOException {
System.out.println("4桁の整数を入力:");
Scanner sc = new Scanner(System.in);
int value = sc.nextInt();
if(isPrime(value)) {
System.out.println(value+"は素数");
} else {
System.out.println(value+"は素数ではない");
System.out.println("最大の約数:"+getMaxDivisor(value));
}
for(int lastPrime=value-1; lastPrime>=3; lastPrime--) {
if(isPrime(lastPrime)) {
System.out.println(value+"より小さい素数:"+lastPrime);
break;
}}}
private static boolean isPrime(int value) {
if((value%2) == 0) return false;
for(int i=3; i<value/2; i+=2) if((value%i) == 0) return false;
return true;
}
private static int getMaxDivisor(int value) {
if((value%2) == 0) return value / 2;
int divisor = value;
for(int i=3; i<value; i+=2) if((value%i) == 0) divisor = i;
return divisor;
}}
//エラー無視 & すまん、素数の求め方もあってるか分からんwwwww

394:デフォルトの名無しさん
08/07/06 15:37:44
エラトステネスのふるい涙目ww
まぁ4桁ぐらいなら余裕かw

395:デフォルトの名無しさん
08/07/06 15:59:55
【 課題 】GUI設計に基づき、簡易電卓を設計せよ。ただし以下の条件を満たすように。
      ①0から9のボタン入力式でテキストフィールドに出力する
      ②四則演算は+-×÷のボタン、小数計算は . のボタン、
      結果は=のボタンで行うようにする。
      ③数字のクリアはCで行うように。
【 形態 】1. Javaアプリケーション(main()で開始)
【 GUI  】2.Swing
【 期限 】7/9
【 補足 】このプログラムはNetBeansIDE6.1でGUI設計してからプログラム
      を書いていくという手順でやっています。
      あと0から9のボタンや+-×÷のボタンが押された時の
      ActionPerformedはそれぞれ個別にで定義するのではなく
      まとめて定義したいんですが、上手くいかないんです。
      そこら辺の定義の仕方も詳しくして頂けるとありがたいです。

396:デフォルトの名無しさん
08/07/06 16:37:58
>>395
NetBeans 使ってないので操作方法だったら分からんが、作りかけでもあるなら出したほうがいい。
>ActionPerformedはそれぞれ個別にで定義するのではなくまとめて定義したい
というのが ActionListener をボタン毎に別のインスタンスにするのでは無く
一つのインスタンスでっていうことなら、各ボタンの AddActionListener に
同じ ActionListener インスタンスを渡すだけだ。
でその ActionPerformed 内で ActionEvent#getSource なり getCommand なりで
どのボタンのイベントかを判別して処理分け。

397:デフォルトの名無しさん
08/07/06 17:09:54
>>396
返信ありがとうございます。

package dentaku;

import java.awt.event.*;
import javax.swing.*;

public class dentakuFrame extends javax.swing.JFrame {

public dentakuFrame() {
initComponents();
}

------------------------------------------------------------------------------------------
ここにボタンの位置などの設定がデフォルトで入っている。
------------------------------------------------------------------------------------------

public void appendResult(String c) {
result.setText(result.getText() + c);
}

public class NumberButton extends JButton implements ActionListener {

public NumberButton(String key) {
super(key); //JButtonクラスのコンストラクタを呼び出す
this.addActionListener(this); //このボタンにアクションイベントのリスナを設定
}



398:デフォルトの名無しさん
08/07/06 17:11:58
public void actionPerformed(ActionEvent evt) {
String keyNumber = this.getText(); //ボタンの名前を取り出す
appendResult(keyNumber); //ボタンの名前をテキストフィールドにつなげる
}
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new dentakuFrame().setVisible(true);
} }); }
private javax.swing.JButton Button0;
private javax.swing.JButton Button1;
private javax.swing.JButton Button2;
private javax.swing.JButton Button3;
private javax.swing.JButton Button4;
private javax.swing.JButton Button5;
private javax.swing.JButton Button6;
private javax.swing.JButton Button7;
private javax.swing.JButton Button8;
private javax.swing.JButton Button9;
private javax.swing.JButton divButton;
private javax.swing.JButton minusButton;
private javax.swing.JButton mulButton;
private javax.swing.JButton plusButton;
private javax.swing.JButton pointButton;
private javax.swing.JButton resetButton;
private javax.swing.JTextField result;
private javax.swing.JButton resultButton;
}
これが現在の状況です。Actionに反応して値を受け渡したり、
演算子に応じる設定がどうしたらよいのかがわかりません。
よろしくお願いします。

399:デフォルトの名無しさん
08/07/06 17:23:16
補足
0から9のボタンはButton0からButton9に
小数点はpointButtonに
四則演算はplusButton,minusButton,mulButton,divButtonに
クリアはresetButton、=はresultButtonに
数値表示テキストはresultに設定しています。

400:デフォルトの名無しさん
08/07/06 17:25:15
>>397-399
>>1
省略しないで全部ろだ2等にアップ

401:デフォルトの名無しさん
08/07/06 17:47:59
ろだ2の336.javaにupしました。お願いします。

402:デフォルトの名無しさん
08/07/06 18:15:34
NumberButton使ってないね・・

403:デフォルトの名無しさん
08/07/06 19:17:59
NumberButtonと言うことは、数字以外のActionPerformedはまとめなくて良いのだろうか、
それとも、すべてのActionPerformedを一つにしたいのだろうか。

そもそも、ActionPerformedをまとめると言うのは出された課題ではないようだけど・・・

404:デフォルトの名無しさん
08/07/06 19:36:10
>>401
URLリンク(rg550.hp.infoseek.co.jp)
全部一個のリスナ(dentakuFrame)にしてみた。
initComponents も弄ると危なそうなので弄らない方向で。
ときどき例外出ることがあるのはご愛嬌(!)

405:デフォルトの名無しさん
08/07/06 21:22:14
>>404
回答ありがとうございます。複雑なプログラムを提示してしま
って申し訳ないです。実際に動かしてみてまた何かあったら
質問します。本当にありがとうございました。

406:デフォルトの名無しさん
08/07/06 23:07:46
たびたびで恐縮なんですが、>>404 のプログラム中で
actionPerformedの定義の部分が理解できないんですが、
解説して頂けないでしょうか。プログラムの意味を
理解しようとしたんですけど初めてみるメソッドなどが多く
て困っています。
特にpushとpop、Stack、peek()、getPriorityなどの意味と
このプログラムにおける使用の仕方などを詳しく解説して
頂けるとありがたいです。
あとBigDecimalで何を行っているかなどもできればお願いします。

407:404
08/07/07 01:15:27
>>406
StackはスタックというLIFO構造で、pushで入れたモノがpopで取り出せる。
peekは取り出さすことなく最後に入れたモノを得る。
Operator#getPropertyは、掛け算割り算を足し算引き算より優先して実行するために入れてある。
1+2*3と入力しようとしたとき、1+2*と入力した場合、最後の*を押した時に1+2を実行「しない」。
1+2+と入力した場合は最後の+を押した時に1+2を「実行し」3を表示する。
BigDecimalは大きな/小さな数値を表現する場合に限界や誤差などを「あまり」気にせずに使うためのクラス。
Javaのドキュメントと「Java BigDecimal」で検索などしてみて。
ちなみにときどき例外が…というのはこのBigDecimalのdivideらしぃ^^;

408:404
08/07/07 01:21:21
よく見たらStack#pushをStack#addにしちゃってるとこばかりだな。
一応Stack#addはpushと同じだから動いてるみたいだが。

409:404
08/07/07 04:05:47
>>406
divideの例外回避とかStack#add→pushとか変数名変えたりとか動作中のスタックイメージコメントなども入れてみた。
URLリンク(rg550.hp.infoseek.co.jp)

410:デフォルトの名無しさん
08/07/07 06:24:06
なんか某アスキーの逆ポーランドの解説を思い出した。

411:デフォルトの名無しさん
08/07/07 23:17:27
>409
例外回避から詳しい説明まで感謝の限りです。実際に動かしてみて
動作も正常に行われました。説明を読んでpopやpush、getPriority
などの使い方、プログラムの動作もよくわかりました。今度使って
みようと思います。

最後に0で割った時のエラーメッセージを出力しようと
try-catch構文でArithmeticExceptionは回避させたんですけど、
java.util.EmptyStackExceptionのほうが割り算のoperatorに
try-catchで組み込んでもうまくいかないのですが、どうすれば
よいのでしょうか。たびたび質問ですみませんがお願いします。

412:409
08/07/08 00:09:02
>>411
まず、状況を説明するならその元となるモノ(409が変更した結果のソース)をアプしたり
どう「うまくいかない」のか、想像していたことと実際起きたことを明記しないと分からん。
というわけで想像だが、
values.push(a.divide(b,5,BigDecimal.ROUND_HALF_EVEN));
を丸ごと try{ }catch(ArithmeticException e) に入れてしまうと、
values への push がされず、以降の計算を進めるための values が
足りなくなってしまうだろな。
0割が発生した場合は式全体を消して初期状態に戻してしまうのが普通かもしれない。
divideOperator#operateではなく、式全体を計算してるactionPerformedで処理する。
URLリンク(rg550.hp.infoseek.co.jp)

413:409
08/07/08 00:17:22
>409が変更した結果のソース
→ 411が変更した~
スマン。
謝りついでも恐縮だが、長々サシ状態にしてしまってご免>スレ利用者各位

414:デフォルトの名無しさん
08/07/08 00:40:39
>>412
upの件はすみません。
でも無事解決しました。設定する場所が違っていたんで
すね。今回の質問で得るものが多かったです。これを活かして
精進しようと思います。>>409 さん、本当にありがとうございました。

415:デフォルトの名無しさん
08/07/08 15:59:10
【 課題 】java3Dを用いてx,y,zの三次元のパラメータを持つ20個程度のデータを三次元上にプロットし
      プロットされたデータをマウスクリックするとプロットの色が変化するようにしなさい  
【 形態 】2. Applet/
【 GUI  】4. 制限なし/
【 期限 】7月15日
【 補足 】java3Dを今回初めて触ってみてまだサンプルプログラムを使って箱が回転できる程度です
      座標やマウスリスナーの座標指定の仕方について現在調べていこうと考えています
      アドバイス宜しくお願い致します

416:デフォルトの名無しさん
08/07/08 21:58:39
【 課題 】ABC0703_111_Billiards.javaのpaint methodの繰り返し部分を
      for文を用いて書き換えよ。
      ただし、繰り返しは300回行われるようにせよ。
【 形態 】1. Javaアプリケーション(main()で開始
【 GUI  】不明
【 Ver  】java version "1.6.0"
【 期限 】8月まで
【 補足 】URLリンク(rg550.hp.infoseek.co.jp)
      ↑がABC0703_111_Billiards.javaの中身です。
      丸投げで申し訳ありませんが、よろしくお願いします。

417:デフォルトの名無しさん
08/07/08 23:02:53
>>416
すでにfor文になってるじゃん・・・?

paintメソッドの(1)~(4)にある
for(int n=0; n<100; n++)を
for(int n=0; n<300; n++)
にすればいいだけかと。

418:デフォルトの名無しさん
08/07/08 23:32:29
【 課題 】drawOval(50,50,300,300)の円と、その円が内接する正方形つまり
      drawRect(50,50,300,300)を描き、チェックボックスによりその円と
      正方形を切り替えて表示できるようにせよ。
【 形態 】2. Applet
【 GUI  】2. Swing
【 期限 】7/10
【 補足 】丸投げですが、よろしくお願いします。

419:デフォルトの名無しさん
08/07/08 23:40:30
>>415
ネット上で拾ったサンプルを切り貼りしてみた。
当方も本日初めてjava3Dを触ったので、参考までにて。

URLリンク(rg550.hp.infoseek.co.jp)

420:デフォルトの名無しさん
08/07/09 02:04:23
>>417
その(1)~(4)が同じっぽいから、つまり二重ループにしろってことじゃ?
繰り返し300回ってのがどっちのことか分からないが。

421:デフォルトの名無しさん
08/07/09 02:08:25
>>418
URLリンク(rg550.hp.infoseek.co.jp)

422:デフォルトの名無しさん
08/07/09 12:17:11
>>420
300回、線を引いてみることにした。
URLリンク(rg550.hp.infoseek.co.jp)

423:デフォルトの名無しさん
08/07/09 13:35:26
>>419
書き忘れていた細かい部分まで実装されていて
大変参考になりました。ありがとうございます。
余裕が出来たのでこれから自分なりに色々いじってみたいと
思います。本当にありがとうございました。

424:デフォルトの名無しさん
08/07/09 14:07:01
[1] 授業単元:オペレーティングシステム
[2] 問題文(含コード&リンク):
pipe3.cを完成させて、親子プロセス間で交互にメッセージを交換するプログラムを作成せよ。
pipe3.cはこちらになります↓
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C言語
[4] 期限:7/9 23:59まで

どうかよろしくお願いします。

425:424
08/07/09 14:07:55
誤爆しました。申し訳ありません。

426:416
08/07/10 07:37:03
質問に答えてくださった皆さん、ありがとうございました
教授の言った限りでは>>422で良かったようです

427:418
08/07/10 11:47:16
>>421
すぐに教えて頂きありがとうございました。
無事間に合わせることができました。

428:デフォルトの名無しさん
08/07/10 16:44:26
現在、swingを利用したGUIプログラムを作成しています。
catchブロックで例外を捕らえた場合は、
そのエラー内容を表示しろとのことなのですが、
これはJOptionPane.showMessageDialogで表示したほうがよいのか、
System.out.printlnで表示したほうがよいのか、
一体どちらなのでしょうか。
System.out.printlnだと、開発環境から起動しなかった場合に、
内容を確認できないと思っています。

429:デフォルトの名無しさん
08/07/10 17:03:49
ただの質問は質問スレへ

430:デフォルトの名無しさん
08/07/13 15:40:59
【 課題 】URLリンク(issoft17.is.noda.tus.ac.jp)
線形リストにおいて、指定されたn番目をリストから省くメソッドの作成(再帰的)ただし、n番目が要素数を上回っていた場合はリストをそのまま返す。
課題ページは上記URLです。
【 形態 】1. Javaアプリケーション
【 Ver  】1.5.0_15
【 期限 】7月14日17:00
【 補足 】リストの処理においてword欄を書き換えたり、メソッドの外でグローバル変数を使用するのはNGです。
現段階で非再帰的に処理を行うメソッドは作成済みですが、再帰的な処理の方が全くアルゴリズムが思い浮かばず
丸投げ状態です。締切まで時間がありませんが、もし可能な方がいましたら宜しくお願い致します。
参考URL:URLリンク(www.ed.noda.tus.ac.jp)

431:デフォルトの名無しさん
08/07/13 16:44:47
【 課題 】 URLリンク(rg550.hp.infoseek.co.jp)
【 形態 】 Javaアプリケーション(main()で開始)
【 期限 】 2008/07/20 23:00
【 Ver  】 1.4.2_12
【 補足 】 課題の丸投げです。
       .javaファイルを1ファイルで作成して欲しいです。
       できるだけ初心者にも理解し易く、単純な形で記述して頂けると助かります。
       problem080720@yahoo.co.jpまでソースファイルをお送り下さい。
       宜しくお願いします。

432:デフォルトの名無しさん
08/07/13 17:05:01
【課題提示用テンプレ】
【 課題 】「Java言語」を用いて、フラクタルを取り入れた自由作品を作りなさい
【 形態 】2. Applet
【 期限 】7月16日(水)
【 補足 】丸投げですが、何卒よろしくお願いいたします。

433:デフォルトの名無しさん
08/07/13 17:29:33
>>430
自分でもよく分かってないけど・・・間違ってたらすまん
public static ListNode delete(ListNode head, int n) {
if(head != null) {
if(--n==0) {
head = head.next;
} else {
head.next = delete(head.next, n);
}
}
return head;
}

434:430
08/07/13 17:39:45
>>431
今書いて頂いたメソッドを組み込んで動作確認をしたところ、課題通りに正しい結果が返されました。
おかげで無事に提出期間に間に合いそうです。
迅速な回答本当に有難うございました。

435:430
08/07/13 17:41:40
レス番間違え。正しくは
>>433様宛てでした。度々失礼致しました。

436:デフォルトの名無しさん
08/07/13 17:47:44
【 課題 】3つの正の整数a、b、c ( c ≧ b ≧ a )が直角三角形になるa、b、c
の組合せを20個出力するプログラムを作れ(while 文を使うこと)
【 形態 】1. Javaアプリケーション(main()で開始)
【 期限 】7/14まで
【 Ver  】1.6.0
【 補足 】丸投げです。お願いします。

437:デフォルトの名無しさん
08/07/13 17:49:29
【 課題 】年月日を入力したい。
      存在しない年月日を入力したらエラーメッセージを出力し再入力促

       閏年の判定を行うこと。
           1. 西暦年が4で割り切れる年は閏年
           2. ただし、西暦年が100で割り切れる年は平年
           3. ただし、西暦年が400で割り切れる年は閏年
       存在する年月日であればそれを表示せよ
【 形態 】1. Javaアプリケーション(main()で開始
【 期限 】7月14日まで
【 Ver  】1.6.0
【 補足 】学校の宿題です。お願いします。

438:デフォルトの名無しさん
08/07/13 17:58:01
【 課題 】3行3列の行列Aと行列Bの各要素をキーボードから入力し、AB(行列
の掛け算)の結果を出力するプログラムを書け。行列A、Bは2次元配列で表すこと。
【 形態 】1. Javaアプリケーション(main()で開始)
【 期限 】7/14
【 Ver  】1.6.0
【 補足 】明日までなのでよろしくお願いします。

439:デフォルトの名無しさん
08/07/13 17:58:50
【 課題 】0~2の乱数(整数)を作り、キーボードから0~2を入力して、両者が
同じ数字なら「当たり!」、違う数字なら「はずれ!」と以下のように出力せよ。
【 形態 】1. Javaアプリケーション(main()で開始)
【 期限 】7月14日 《必須》
【 Ver  】1.6.0
【 補足 】丸投げです。わからないのでよろしくお願いします。

440:デフォルトの名無しさん
08/07/13 18:26:19
【課題】欧文を入力すると、そこで使われている全単語の使用回数(出現頻度)を数え、
一覧表示するプログラムを作成しなさい。 HashMap を使うこと。
欧文は、単語と単語の間が空白で区切られているものとする。
Scanner クラスのメソッド next() を使うと、 1単語ずつ読み込むことができる。
main メソッドのあるクラスのクラス名は WordCounter とする。


System.out.println("欧文を入力してください(終了: Ctrl-d)");
Scanner scanner = new Scanner(System.in);

while(scanner.hasNext()) {
String word = scanner.next();

....

}

【形態】1. Javaアプリケーション(main()で開始)
【期限】7月14日 20;00
【Ver】1.5.0.11
【補足】丸投げです。宜しくお願いします

441:デフォルトの名無しさん
08/07/13 18:30:00
なんか急に増えたな・・

>>431
1. Stack を固定長配列を使って定義しなさい。
とりあえずこれはこんな感じだと。メールは面倒だわ・・
URLリンク(rg550.hp.infoseek.co.jp)

>>432
そのへんはググればいくらでもソース見つかると思うからそうした方が・・

442:432
08/07/13 18:48:26
>>441
講師「はぁ?何お前?ググってコピペする気?言っとッけど俺マジパネェよ?ググって提出した課題全部分かっちゃうよ?」
生徒「・・・・・・」

いや、無理ならスルーしてくれても構わないんだ
アドバイスありがとう

443:デフォルトの名無しさん
08/07/13 20:28:08
>>442
人に頼んだり、まして、ネットでもらった回答がバレない理由なんて無いんじゃね?

444:デフォルトの名無しさん
08/07/13 20:36:22
>>443
うん、それを言われちゃあ返す言葉もない

445:デフォルトの名無しさん
08/07/13 21:33:52
>>440
Scanner って ctrl-d で終わるんだっけ? そんな風には動かないんだが。
ま、いいかw
import java.util.*;
public class WordCounter {
public static void main(String[] args) {
System.out.println("欧文を入力してください(終了: Ctrl-d)");
Scanner scanner = new Scanner(System.in);
HashMap<String,Integer> wordMap = new HashMap<String,Integer>();
while(scanner.hasNext()) {
String word = scanner.next();
if(wordMap.containsKey(word)) {
wordMap.put(word, wordMap.get(word).intValue() + 1);
} else {
wordMap.put(word, 1);
}
}
System.out.println("---- 単語数: "+wordMap.size());
for(Map.Entry<String,Integer> entry : wordMap.entrySet()) {
System.out.println(entry.getKey()+": "+entry.getValue());
}
}
}

446:デフォルトの名無しさん
08/07/13 21:36:44
>>439
>以下のように出力せよ。
って何

447:デフォルトの名無しさん
08/07/13 22:00:32
>>436
式知らないので参考URLとともにむりやりwhile。
// URLリンク(atsugi5761455.fc2web.com)
public class ピタゴラスの三角形 {
public static void main(String[] args) {
int n = 1;
int i = 1;
int n2 = n * n;
int k = 1;
while(i <= 20) {
int m = n + k;
int m2 = m * m;
int a = m2 + n2;
int b = m2 - n2;
int c = 2 * m * n;
System.out.println(i+": a="+a+",b="+b+",c="+c);
i ++;
k += 2;
}
}
}

448:447
08/07/13 22:04:27
ああ、
> c ≧ b ≧ a
を満たしてないし。数値入れ替えるだけじゃだめ?w

449:デフォルトの名無しさん
08/07/13 22:22:30
>>441
回答ありがとうございます。
しかし、それだと問題1しか解けていないと思うのですが・・・
問題は1~5まであります。
どうか宜しくお願いします。

450:デフォルトの名無しさん
08/07/13 22:29:26
>>437
import java.util.*;
public class Uruu {
static final int[] daysOfMonth = new int[]{31,29,31,30,31,30,31,31,30,31,30,31};
public static void main(String[] args) {
while(true) {
System.out.println("yyyy mm dd");
Scanner in = new Scanner(System.in);
int y = Integer.parseInt(in.next());
int m = Integer.parseInt(in.next());
int d = Integer.parseInt(in.next());
if(y < 1583 || m < 1 || m > 12 || d < 1 || d > daysOfMonth[m-1]) {
System.out.println("err.");
continue;
} else if(m == 2 && !isUruu(y) && d > 28) {
System.out.println("URUU-day err.");
continue;
}
System.out.println("y="+y+",m="+m+",d="+d);
break;
}
}
static boolean isUruu(int y) {
if((y % 400) == 0) return true;
if((y % 100) == 0) return false;
return ((y % 4) == 0);
}
}
自分で書いといてヒドイ書き方だと思う…

451:446
08/07/13 22:44:54
>>439
とりあえず
import java.util.*;
public class RndNum {
public static void main(String[] args) {
Random random = new Random();
int num = random.nextInt(3);
System.out.println(num);
System.out.println("input 0-2");
Scanner scanner= new Scanner(System.in);
int input = scanner.nextInt();
if(input == num) {
System.out.println("当たり!");
} else {
System.out.println("はずれ!");
}
}
}

452:デフォルトの名無しさん
08/07/13 23:29:47
>>438
URLリンク(rg550.hp.infoseek.co.jp)

453:デフォルトの名無しさん
08/07/13 23:34:28
>>441
週末向けに宿題だされたけど結局やらずに駆け込みってことかねぇ。
暇つぶしには適当にばらけてくれたほうがいいんだが。

454:デフォルトの名無しさん
08/07/14 01:18:18
>>431
3 の Cell を使うと
>スタックは大きさを持ち、格納できる要素数はその大きさまでとする。
ちゅうのをどう表現するか決めかねるんだが。

3.
>>441 のを修正して
URLリンク(rg550.hp.infoseek.co.jp)
4.
大きさチェックなし
URLリンク(rg550.hp.infoseek.co.jp)

メールでレス貰おうなんざ面倒くさ杉

455:デフォルトの名無しさん
08/07/14 07:29:10
メールの場合ノーチェックになるからな
ここにレスするかうpろだだとこのスレの他の人のチェックはいるから
変なプログラムはめちゃ叩かれるw

456:デフォルトの名無しさん
08/07/14 12:53:50
【 課題 】じゃんけんゲームを作成せよ。完成版は、反復構造により続けてゲームができるようにし、0で終了させて最後に勝ち負けの集計(勝率も計算させる)が表示できるようにせよ。
なお、プログラムは
 あなたの手の入力の処理
 コンピュータの手の生成
 勝ち負けの判定
 勝率の計算
の4つの処理を行うメソッドを定義し、これを利用して作成すること。
【 形態 】1. Javaアプリケーション(main()で開始
【 期限 】7月31日まで
【 補足 】単位かかってます。

457:デフォルトの名無しさん
08/07/14 14:14:14
>>456
こういうの見ると、
"必ず勝つ(or負ける)ようにしとけば判定とか率とか表示1行で済んで楽だ"
と思うんだが、そするとやっぱり単位とやらが貰えないのだろうか。
閑話休題。
>完成版は、
とあるが、未完成版はあるのか? もしくは未完成版でもいいのか?
>0 で終了させて
というのは、手の入力には何か規則があるのか?

458:デフォルトの名無しさん
08/07/14 14:22:55
【 課題 】コマンドライン引数から西暦を受け取り、うるう年であるかを判定するプログラム
report3.javaを作成しなさい。うるう年の条件は次のとおりである。
 ・4で割り切れる年はうるう年である
 ・100で割り切れる年はうるう年ではない
 ・400で割り切れる年はうるう年である

【 形態 】1. Javaアプリケーション(main()で開始)
【 期限 】7/15
【 補足 】どうしても結果が被ってしまいます。お願いします。
public class report3 {
public static void main(String[] args) {

int x = Integer.parseInt(args[0]);

if(0 == x%4 || 0 == x%400) {
if(0 != x%100) {
System.out.println(x + "年はうるう年です");
}
}
if(0 == x%100) {
System.out.println(x + "年はうるう年ではありません");
}
else {
System.out.println(x + "年はうるう年ではありません");
}

}
}

459:デフォルトの名無しさん
08/07/14 14:42:40
>>458
>>450 を参考にせんか?

460:デフォルトの名無しさん
08/07/14 14:52:51
>>458
public class report3 {
public static void main(String[] args) {
int x = Integer.parseInt(args[0]);
if((0 == x%4 && 0 != x%100) || 0 == x%400) {
System.out.println(x + "年はうるう年です");
} else {
System.out.println(x + "年はうるう年ではありません");
}
}
}
動かしてないからそのつもりで。
しかし = の前に 0 があるのって私には違和感あるなぁ。

461:デフォルトの名無しさん
08/07/14 15:14:32
【 課題 】キーボードから5回整数の入力を受け取り、
それらの合計値と平均値を計算して表示するプログラムを作成しなさい。

462:デフォルトの名無しさん
08/07/14 15:17:34
>>460
ありがとうございます
カッコで区切るんですね

爆発しそうな脳みそがやっと縮みました

463:デフォルトの名無しさん
08/07/14 16:04:16
>>458
x にどんな値をいれたらどの順にどの行が実行されるのかを一つ一つ追ってみるといい。
ちなみに、途中でプログラムを強制終了させるなら System.exit() というのがあってだな…。

464:デフォルトの名無しさん
08/07/14 16:07:29
【課題提示用テンプレ】
【 課題 】
整数nを入力して、1からnまでの整数を、それぞれ素因数分解した結果を返すプログラムを作る。
条件として、2つのスレッドを用いる。Thread の起動方法は、thread.start() を用いよ。
2つのスレッドは、共通のAtomicInteger のカウンタから、getAndIncrement()として得た整数に対して、素因数分解を行う。
得られた整数がnを超えたらスレッドを終了する。
素因数分解の結果は、ConcurrentHashMap<Integer>, List<Integer>>に格納する。
キーのInteger が素因数分解の対象の整数であり、値のList<Integer>が素因数分解した結果の整数群である。
全ての素因数分解が終了したのち、メインスレッドで、整数1からnまでの全ての結果を「12: 2 2 3」のように表示させよ。
【 形態 】Javaアプリケーション(main()で開始)Eclipseを用いています。
【 期限 】7/14 18:00まで
【 Ver  】3.2.2




465:デフォルトの名無しさん
08/07/14 16:09:38
【課題提示用テンプレ】
【 課題 】
整数 n を入力し、1からnまでの素数を List<Integer> にまとめて返却するメソッドを作成せよ。
また、このメソッドを利用し、整数1000に対して、求めた素数を1行にひとつずつ画面に表示するプログラムを作成し、動作確認せよ。
表示した素数は桁合わせされていること。
【 形態 】Javaアプリケーション(main()で開始)Eclipseを用いています。
【 期限 】7/14 18:00まで
【 Ver  】3.2.2


466:デフォルトの名無しさん
08/07/14 16:10:28
【 課題 】
1京(10000000000000000)、2京、3京、4京のそれぞれより大きい最初の素数を計算せよ。これを計算する上では、スレッドを利用すること。FixedThreadPool を用いて、スレッド数2にして、上記の4つのタスクを並行実行して、結果を求めよ
【 形態 】Javaアプリケーション(main()で開始)Eclipseを用いています。
【 期限 】7/14 18:00まで
【 Ver  】3.2.2

467:464-466
08/07/14 16:11:04
課題丸投げですが、よろしくお願いします。

468:デフォルトの名無しさん
08/07/14 17:04:36
>>464
URLリンク(rg550.hp.infoseek.co.jp)

469:464
08/07/14 17:14:36
>>468
ありがとうございます!

470:デフォルトの名無しさん
08/07/14 17:20:16
>>465
URLリンク(rg550.hp.infoseek.co.jp)

471:デフォルトの名無しさん
08/07/14 17:21:55
>>464 - >>466
時間無さ杉w

472:464
08/07/14 17:26:01
スマソwww急に演習課題とか始まって\(^o^)/オワタ

473:デフォルトの名無しさん
08/07/14 17:30:53
>>472
リアルタイムかい。
で、オワタ?466はもういいのか?

474:464
08/07/14 17:33:40
すみません。人生的な意味で終わってるってことですw
466もお願いします!

475:デフォルトの名無しさん
08/07/14 18:02:51
>>466
まにあわなかったか?
URLリンク(rg550.hp.infoseek.co.jp)
でかすぎてテストしきれてないぞ


476:466
08/07/14 18:09:45
>>475
ありがとうございます!
みんなできていないようなので、レポートという形になりそうです。
さらに問題が追加されましたww
近々またお世話になるかもしれません。
お忙しい中、本当にありがとうございます。

477:デフォルトの名無しさん
08/07/14 18:16:51
>>475
でかすぎですねwwww
プログラムテストできませんw

478:464
08/07/14 18:40:06
追加された問題たちです。

【 課題 】
初期化時に文字列引数を持つ Enum 型 Fruit を作成し、
APPLE, ORANGE, GRAPE, CHERRY, PEACH のそれぞれの要素を、
日本語名を引数にして初期化せよ。
そして、この Enum 型から全ての要素を取出し、英語名でアルファベット順にソートして、
「英語名: 日本語名」の形で、アルファベット順に表示せよ。
【 形態 】Javaアプリケーション(main()で開始)Eclipseを用いています。
【 期限 】7/14 24:00まで
【 Ver  】3.2.2


479:デフォルトの名無しさん
08/07/14 18:45:16
Javaにもenumってあったのか

480:475
08/07/14 18:46:10
まぁなにしろ間に合うかどうか優先で全然速さを考えてないからなw
素因数分解をBigDecimal対応にするだけで面倒くさかった。
時間できたらなんとかの篩でもなんでもやってくれぃ。

481:デフォルトの名無しさん
08/07/14 18:47:22
【 課題 】
キャプチャーしてzipでうpしました。
お手数おかけします。
URLリンク(rg550.hp.infoseek.co.jp)
【 形態 】Javaアプリケーション(main()で開始)Eclipseを用いています。
【 期限 】7/14 24:00まで
【 Ver  】3.2.2


482:デフォルトの名無しさん
08/07/14 18:49:25
>>480
ありがとうございます。
なんとかやってみます!
先生が理不尽で、困ります(><)

483:デフォルトの名無しさん
08/07/14 18:51:20
>>481
ワシそゆのダメ、素で読めんw

484:デフォルトの名無しさん
08/07/14 18:55:43
>>483
すみません。
そうですよね~。さすがにこれはわけがわからないです。
なにをどうすればいいのかさっぱりです。

485:デフォルトの名無しさん
08/07/14 19:05:49
>>479
1.5から追加になった。

486:デフォルトの名無しさん
08/07/14 19:11:48
>>481
こんな感じだろうか
int k=0;
while(true) {
if(Math.PIの小数点第8位までの値 == (1/無限小数の式)の小数点第8位までの値) break;
}
k+1回がループ数

487:478&481
08/07/14 19:26:23
すみません!
友達がやってくれました!
みなさんありがとうございました!

488:デフォルトの名無しさん
08/07/14 19:31:51
>>487
じゃあ結局467は何もやってないのかw
>>478
とりあえずやってみたのでうp
import java.util.*;
public class K478 {
public static void main(String[] args) {
Fluit[] fluits = Fluit.values();
Arrays.sort(fluits, new Comparator<Fluit>() {
public int compare(Fluit o1, Fluit o2) {
return o1.toString().compareTo(o2.toString());
}
});
for(Fluit fluit : fluits) {
System.out.println(fluit.toString()+": "+fluit.getJapanese());
}
}
static enum Fluit {
APPLE("リンゴ"),
ORANGE("オレンジ"),
GRAPE("ブドウ"),
CHERRY("サクランボ"),
PEACH("モモ");
private String japanese;
Fluit(String japanese) {
this.japanese = japanese;
}
public String getJapanese() { return japanese; }
}
}

489:デフォルトの名無しさん
08/07/14 22:31:12
/*
手持ちのお金の枚数と買い物の合計金額から,お釣りの枚数が最も少なくなる支払い方を計算するプログラム.
*/
import java.io.*;
public class MinimalChanges {
public static void main(String[] args) {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try {
System.out.println("手持ちのお金の枚数を入力してください.");
System.out.print("一万円札:");
String line = reader.readLine();
int man = Integer.parseInt(line);
System.out.print("五千円札:");
line = reader.readLine();
int gosen = Integer.parseInt(line);
System.out.print("千円札:");
line = reader.readLine();
int sen = Integer.parseInt(line);
System.out.print("五百円玉:");
line = reader.readLine();
int gohyaku = Integer.parseInt(line);
System.out.print("百円玉:");
line = reader.readLine();
int hyaku = Integer.parseInt(line);
System.out.print("五十円玉:");
line = reader.readLine();
int goju = Integer.parseInt(line);
System.out.print("十円玉:");
line = reader.readLine();
int ju = Integer.parseInt(line);


490:デフォルトの名無しさん
08/07/14 22:32:40
続き
System.out.print("五円玉:");
line = reader.readLine();
int go = Integer.parseInt(line);
System.out.print("一円玉:");
line = reader.readLine();
int ichi = Integer.parseInt(line);
System.out.print("");
System.out.println("買い物の合計金額を入力して下さい.");
line = reader.readLine();
int sum = Integer.parseInt(line);
int p = sum % 10;
System.out.println("");
int pay1 = one(p, ichi);
p = p - pay1;
int pay5 = five(p, go);
if (p <= (pay5 * 5)) {
sum = sum / 10;
} else {
sum = (sum / 10) + 1;
}
p = sum % 10;
int pay10 = one(p, ju);
p = p - pay10;
int pay50 = five(p, goju);
if (p <= (pay50 * 5)) {
sum = sum / 10;
} else {
sum = (sum / 10) + 1;
}
p = sum % 10;


491:デフォルトの名無しさん
08/07/14 22:34:07
int pay100 = one(p, hyaku);
p = p - pay100;
int pay500 = five(p, gohyaku);
if (p <= (pay500 * 5)) {
sum = sum / 10;
} else {
sum = (sum / 10) + 1;
}
p = sum % 10;
int pay1000 = one(p, sen);
p = p - pay1000;
int pay5000 = five(p, gosen);
if (p <= (pay5000 * 5)) {
sum = sum / 10;
} else {
sum = (sum / 10) + 1;
}
p = sum % 10;
int pay10000;
if (man >= p) {
pay10000 = p;
System.out.println("一万円札" + pay10000 + "枚");
System.out.println("五千円札:" + pay5000 + "枚");
System.out.println("千円札:" + pay1000 + "枚");
System.out.println("五百円玉:" + pay500 + "枚");
System.out.println("百円玉:" + pay100 + "枚");
System.out.println("五十円玉:" + pay50 + "枚");
System.out.println("十円玉:" + pay10 + "枚");
System.out.println("五円玉:" + pay5 + "枚");
System.out.println("一円玉:" + pay1 + "枚");


492:デフォルトの名無しさん
08/07/14 22:34:55
System.out.println("で支払ってください.");
System.out.println("");
} else {
System.out.println("お金が足りません.");
}
} catch (IOException e) {
System.out.println(e);
} catch (NumberFormatException e) {
System.out.println(e);
}
}
public static int one(int p, int ichi) {
if (p > 5) {
if ((p - 5) <= ichi) {
return p - 5;
} else {
return 0;
}
} else if (p <= ichi) {
return p;
} else {
return 0;
}
}


493:デフォルトの名無しさん
08/07/14 22:37:12
public static int five(int p, int go) {
if (p != 0) {
if ((p <= 5) && (go != 0)) {
return 1;
} else {
return 0;
}
} else {
return 0;
}
}
}
これで終わりなのですが、手持ちのお金と,買い物の金額を入力すると,
お釣りの枚数が最も少なくなる支払い方を教えてくれるプログラムです.
例えば1000円札1枚,100円玉2枚,10円玉4枚持っていて,買い物の合計が625円の時,
プログラムを実行させると1000円札1枚,100円玉1枚,10円玉3枚で支払うように指示します.
ただしこのプログラムでは,1000円札,100円玉,10円玉,1円玉に関しては4枚以内,
5000円札,500円玉,50円玉,5円玉に関しては1枚以内しか持っていないという前提になっているため,
例えば1円玉のみ100枚持っているときに,100円の買い物をしようとしても「お金が足りません」と出力されてしまいます.
この、問題をどんな形でも良いので解消してください。

494:デフォルトの名無しさん
08/07/14 22:47:55
>>493
>>1くらい読め

495:デフォルトの名無しさん
08/07/14 23:05:01
【 課題 】手持ちのお金と,買い物の金額を入力すると,お釣りの枚数が最も少なくなる支払い方を教えてくれるプログラムです.
例えば1000円札1枚,100円玉2枚,10円玉4枚持っていて,買い物の合計が625円の時,
プログラムを実行させると1000円札1枚,100円玉1枚,10円玉3枚で支払うように指示します.
ただしこのプログラムでは,1000円札,100円玉,10円玉,1円玉に関しては4枚以内,
5000円札,500円玉,50円玉,5円玉に関しては1枚以内しか持っていないという前提になっているため,
例えば1円玉のみ100枚持っているときに,100円の買い物をしようとしても「お金が足りません」と出力されてしまいます.
この問題を直しなさい。

【 形態 】Javaアプリケーション(main()で開始)
【 GUI  】制限なし
【 期限 】明日のAM6時
【 Ver  】1.6.0_07
【 補足 】スレ汚してしまってすいません。
      URLリンク(rg550.hp.infoseek.co.jp)

496:デフォルトの名無しさん
08/07/15 00:57:36

【 課題 】キーボードから5回整数の入力を受け取り、
それらの合計値と平均値を計算して表示するプログラムを作成しなさい。
for文またはwhile文による繰り返しを使うこと。
平均値も整数とし、小数点以下が表示されなくてもよい。
キーボードから入力した文字列が制すうちに変換されないときの例外処理はしなくてよい。
【 形態 】Javaアプリケーション(main()で開始)Eclipseを用いています。
【 期限 】7/16 18:00まで
【 Ver  】3.2.2


よろしくお願いします。

497:デフォルトの名無しさん
08/07/15 01:59:57
>>496
public static void main(String args[])
{
Scanner kbd=new Scanner(System.in);
int sum=0;
for(int i=0;i<5;i++){
sum+=kbd.nextInt();
}
System.out.println("合計値:"+sum);
System.out.println("平均値:"+sum/5);
}

498:デフォルトの名無しさん
08/07/15 11:28:23
本日の課題プログラムを参考にして、じゃんけんゲームを完成させよ。完成版は、反復構造により続けてゲームができるようにし、0で終了させて最後に勝ち負けの集計(勝率も計算させる)が表示できるようにせよ。
なお、プログラムは
 あなたの手の入力の処理
 コンピュータの手の生成
 勝ち負けの判定
 勝率の計算
の4つの処理を行うメソッドを定義し、これを利用して作成すること。
実行例:
あなたの手を入力して下さい。(1:グー, 2:チョキ, 3:パー, 0:終了)?
1
あなたの手はグーです。
コンピュータの手はチョキです。
あなたの勝ちです。
あなたの手を入力して下さい。(1:グー, 2:チョキ, 3:パー, 0:終了)?
2
あなたの手はチョキです。
コンピュータの手はグーです。
コンピュータの勝ちです。
あなたの手を入力して下さい。(1:グー, 2:チョキ, 3:パー, 0:終了)?
2
あなたの手はチョキです。
コンピュータの手はグーです。
コンピュータの勝ちです。
あなたの手を入力して下さい。(1:グー, 2:チョキ, 3:パー, 0:終了)?
0
終了
あなたは3試合中、1勝2敗0分け(勝率:3割3分3厘)です。


499:デフォルトの名無しさん
08/07/15 11:59:42
>>498
>>1くらいよめ

500:デフォルトの名無しさん
08/07/15 13:26:40
>>498
>>456

501:デフォルトの名無しさん
08/07/15 13:32:39
>>498
んで、「本日の課題プログラム」とやらはどこにある?

502:デフォルトの名無しさん
08/07/15 15:02:26
>>497さんありがとうございます。

【 課題 】キーボードから2個の小数点の入力を受け取り、
それらを底辺と高さとする三角形の面積を計算して表示する
プログラムを作成しなさい。
・三角形をオブジェクトとして考え、三角形オブジェクトを作成するTriangleクラスを宣言して使うこと。
・Triangleクラスのメンバには、底辺と高さの値をあらわすインスタンス変数、面積を計算するためのインスタンスメソッドを含むこと。
・キーボードから入力された文字列が数値に変換できないときの例外処理はしなくてよい。
【 形態 】Javaアプリケーション(main()で開始)Eclipseを用いています。
【 期限 】7/17 18:00まで
【 Ver  】3.2.2

追加でよろしくお願いします。

503:デフォルトの名無しさん
08/07/15 15:19:58
テンプレを勘違いのまま使ってるな。
【Ver】は Eclipse のバージョンじゃなくて Java のバージョンだぞ。

504:デフォルトの名無しさん
08/07/15 15:31:10
>>502
import java.util.Scanner;
public class Triangle {
private double 底辺, 高さ;
public Triangle(double 底辺, double 高さ) { this.底辺 = 底辺; this.高さ = 高さ; }
public double 面積() { return 底辺 * 高さ / 2; }
public static void main(String[] args) {
System.out.println("三角形の底辺と高さを入力(スペース区切り):");
Scanner scanner = new Scanner(System.in);
double 底辺 = scanner.nextDouble();
double 高さ = scanner.nextDouble();
Triangle 三角形 = new Triangle(底辺, 高さ);
System.out.println("面積="+三角形.面積());
}
}

505:デフォルトの名無しさん
08/07/15 15:32:14
>>502
小数点とは、『.』のことだぞ?

506:431
08/07/16 01:21:23
>>454
回答ありがとうございます。
>3 の Cell を使うと
>>スタックは大きさを持ち、格納できる要素数はその大きさまでとする。
>ちゅうのをどう表現するか決めかねるんだが。
問題文は原文のままですのでなんとも言えないのですが・・・
TestStack.classファイルが今日配布されましたので、もし修正して頂けるなら参考にして下さい。
問題1~2、3~4でどういうソースを書けば良いのか参考になると思います。
以下にzipファイルのURLと説明を書きます。

URLリンク(rg550.hp.infoseek.co.jp)
TestProgram11_1フォルダ内のTestStack.classファイルは、Stack.classと共にsrc/Problem11/Answer3に格納して実行してみて下さい。
TestProgram11_2フォルダ内のTestStack.classファイルは、Stack.class、Cell.classと共にsrc/Problem11/Answer4に格納して実行してみて下さい。
パッケージの宣言(?)をそれぞれProblem11.Answer3、Problem11.Answer4にすれば良いようです。
そもそもProblem11.Answer1、Problem11.Answer2でTestStack.classファイルを作成して配布していれば良いと思うのですが、
こういう部分に問題文の作りの甘さが表れていると思います…

507:431
08/07/16 01:21:57

問題1に関しては>>441で回答して頂いたファイルの一部分を
void push (Object anObject) {
// スタックの最後の位置を増やす
top++;
// スタックに要素追加
stack[top] = anObject;
}
に直したら正常動作しました。ありがとうございます。

問題2はまだ回答して頂いておらず、上にアップロードしたTestProgram11_1フォルダ内のTestStack.classを実行した際に動作するようなソースを書いて頂けないでしょうか。

問題4の
>import java.io.ByteArrayOutputStream;
>import java.io.PrintStream;
の記述がよくわかりません。コンパイルでもエラーが出ました。
現在コンパイルしてエラーを表示できる環境にないので、今はエラーの詳細を貼ることは出来ませんが…
後ほど貼ります。
問題3、問題4に関しても上記のファイルのTestProgram11_2フォルダ内のTestStack.classの動作に添うようにソースを書いて頂けないでしょうか。

色々文句をつけてしまいすみません。
自力では解けませんのでなんとか宜しくお願いします。

508:468
08/07/16 01:27:36
>>464
すまぬ~、さっき知ったんだが、
>AtomicInteger
って java.util.concurrent.atomic.AtomicInteger なんだな。手前勝手に作っちまった。
クラス宣言消して import 追加して生成してるとこでパラメータに 1 を指定する、のが
正解ってことで。

509:デフォルトの名無しさん
08/07/16 02:13:12
【 課題 】コンパイルせよ。エラーが出たら原因を考えて修正せよ。
【 形態 】1. Javaアプリケーション(main()で開始)
【 GUI  】1. AWTのみ(だと思います)
【 期限 】今週金曜日
【 Ver  】
java version "1.6.0_05"
Java(TM) SE Runtime Environment (build 1.6.0_05-b13)
Java HotSpot(TM) Client VM (build 10.0-b19, mixed mode, sharing)

プログラムをコンパイルすると
Ex5c.java:28: 警告:[unchecked] raw 型 java.util.ArrayList のメンバとしての add(E
) への無検査呼び出しです。
list.add(new AnalogClock());
というエラーが出るのですが、直し方がよくわかりません

AnalogClock aClock;
aClock = new AnalogClock();
ArrayList list = new ArrayList();
ググったら↑を書き換える必要があるらしいのですが、どう書き変えたらいいのかわかりません。
お願いします。

510:デフォルトの名無しさん
08/07/16 02:22:19
>>509
警告だから、別に直さなくても良いけど、

ArrayList<AnalogClock> list = new ArrayList<AnalogClock>();

とか書けば消えるんじゃね?


511:454
08/07/16 03:27:27
>>506>>507
なんだか変な話になってきそうだが、問題2/問題4の
>Stack が要求を満たしていることをテストするプログラムTestStack を定義しなさい。
というのは、その配布された TestStack.class のソースを再現しろということなのか?
そもそも、1と3で作成した Stack は指示されたインターフェースを満たすようにつくって
いるのだから、UnitTest ならともかくそのレベルのテストは同じものになるはずだが。
ちなみに
URLリンク(rg550.hp.infoseek.co.jp)
は4つのテスト全てで
>テスト結果 = true
と表示されたが、これでいいのか?

512:デフォルトの名無しさん
08/07/16 04:11:37
>>506
jad という逆コンパイルツールを探してきて TestStack.class と同じ
フォルダに展開して、
 jad -8 TestStack.class
とやると TestStack.jad というファイルが出来るから、
TestStack.java に変名してそれぞれの Stack と一緒に出したらどうだい。
それ見てたら作者がタコに思えてきて弄る気力無くなった…。

513:デフォルトの名無しさん
08/07/16 14:51:55
>>510
ありがとうございます!やっとコンパイル通りました!

514:デフォルトの名無しさん
08/07/16 15:10:42
>>513
いや、別に、警告は出てても実行は出来るよ。

515:デフォルトの名無しさん
08/07/16 15:57:41
>>514
元に戻してやってみたら通りましたorz
ファイル名を入力し間違えてたみたいですorzorz

516:デフォルトの名無しさん
08/07/17 00:36:03
いま暇だ。
残ってる宿題リストくれ

517:デフォルトの名無しさん
08/07/17 00:56:43
「1~1000までの足し算を行うプログラムを書け。」
簡単かもしれませんがお願いします。

518:デフォルトの名無しさん
08/07/17 01:27:37
>>516
期限が切れてるのばかり・・・

>>495の金種計算と
>>466も現実的な時間で算出できる方法かな


519:デフォルトの名無しさん
08/07/17 01:36:47
>>517
n=1000; として、
for(i=1,sum=0; i<=n; i++) sum+=i; または n*(n+1)/2;


520:デフォルトの名無しさん
08/07/17 01:51:31
>>466
なにこのベンチマークw

521:デフォルトの名無しさん
08/07/17 02:47:45
>>431 は一応まだ期限内なんだが。
問題1,3はともかく、問題2,4の出題者の意図がイマイチ分からん。
そのもののクラスファイルを >>506 で出題者から提供されたが、
んじゃ問題2,4では何を作るのかと。
>>512 ではjadで終わりってことにしたな。

522:デフォルトの名無しさん
08/07/17 10:10:12
>>466 を実装するには、まずBigDecimalのsqrtを実装しないといけないよね。チェックの回数を減らさないと。

523:デフォルトの名無しさん
08/07/17 11:57:56
【 課題 】
class Data{
String name;
String start_time;
String end_time;
String place;
String id;
//以下ゲッタ、セッタ;
}
で定義されているデータ型とこのデータ型のオブジェクトdata1[n]がある.
このとき、以下の条件に従って、Data data2[n]に値を挿入する関数arrange()を作成せよ.
(1)n=0の時、data2[n] = data1[n]
(2-2)n=kの時、data1[0]~data1[k-1]までに「name,start_time,end_timeすべてが一致するもの」があれば、data2[k].id=data2[k].id+","+data1[k-α].id *αはそれまでの一致した数
(2-2)n=kの時、data1[0]~data1[k-1]までに「name,start_time,end_timeすべてが一致するもの」がなければdata2[k]=data1[k-α]

【 形態 】1. Javaアプリケーション(main()で開始)
【 GUI  】なし
【 期限 】7月18日24時
【 Ver  】
$ java -version
java version "1.6.0_05"
Java(TM) SE Runtime Environment (build 1.6.0_05-b13)
Java HotSpot(TM) Client VM (build 10.0-b19, mixed mode, sharing)
【 用語 】
【 補足 】data1のデータは定義されていません。自分で何か文字列入れて動作確認せよとのことです.

524:431
08/07/17 18:19:45
>>511
度々ありがとうございます。

自宅で実行環境を整えたのですが、
Exception in thread "main" java.lang.NoClassDefFoundError
とエラーが出てしまい、動作を確認出来ない状況です。
学校で実行した時は3が実行できて、4はエラーが出て実行できない状況だったのですが・・・
作って頂いた4のファイルも、きちんとした環境でコンパイルして実行すれば動作するのでしょうか?
Ver.1.4.2_12でコンパイルして実行したらエラーが表示されたのですが・・・
4でのエラー文は明日貼りますので、もう暫くお待ち下さい。

3を実行したとき、スタックにa、b、cを積んでいって取り出すような実行結果が表示されたと思うのですが、
教師からはTestStack.classを配布したので実行してみろという指示を出されただけで特に説明はありませんでした。
恐らくTestStack.classが実行できた場合は教師が指定したスタックの条件は満たせているぞ、という意味なのだと思います。

525:431
08/07/17 18:27:35
問題2と4に関しては、作成したスタックが教師の条件に沿っていることを確認するものが作れれば良いと思います。

スタックに要素を積んでいって、満杯になったらこれ以上積めないということを表示し、
スタックの要素だけを表示するメソッドを実行して、次に要素をスタックから取り出して表示するメソッドを実行することで、
スタックの要素を表示するメソッドと、要素をスタックから取り出して表示するメソッドが正しく動作することを確認することが出来るのでそのような動作をするようにし、
スタックが空の時に要素を取り出して表示するメソッドを実行したらスタックが空で取り出せないことを表示する、
といったことが出来れば良いと思います。

問題4は「>スタックは大きさを持ち、格納できる要素数はその大きさまでとする。」という部分が問題になっているのでしょうか。
実行できていないので「>テスト結果 = true」についてよくわからないのですが、
Cellを利用して作ると無限に要素を積めるスタックを作れるとしたら、問題文の「>スタックは大きさを持ち、格納できる要素数はその大きさまでとする。」は無視して良いと思います。
問題4では
スタックに要素を積んでいって、スタックの大きさに制限がないためにいくつか積んでも満杯にならないことを確認し、
スタックの要素だけを表示するメソッドを実行して、次に要素をスタックから取り出して表示するメソッドを実行することで、
スタックの要素を表示するメソッドと、要素をスタックから取り出して表示するメソッドが正しく動作することを確認することが出来るのでそのような動作をするようにし、
スタックが空の時に要素を取り出して表示するメソッドを実行したらスタックが空で取り出せないことを表示する、
といったことが出来れば良いと思います。

そして、どちらも問題文で指定されている
>ただし、show メソッドにより、
>スタックが空の場合には
>スタックは空です!
>と表示し、
>“a”,”b”,”c”の順序にスタックにつまれている場合にはスタックの内容を
>c <-- b <-- a
>と表示するようにする。
という部分は守る必要があると思います。

526:431
08/07/17 18:28:14
私は「import~」など、少し複雑になったソースでさえ理解することが出来ませんので、
もし良かったら、上のようなプログラムで、より単純なソースで作って頂けると助かります…
問題2に関しては単純にpush(Object anObject),pop(),top()を実行するプログラムを書けば良いので自分でなんとかなりますが、
問題4に関しては問題3で作成して頂いたソースのコンパイルすら通っておらず、そのソースの構造がどうなっているのか理解することが出来ていないのでメソッドをどう実行したら良いのか分かりません。
問題4も単純に要素を何個か積んで、表示して、取りだしていって、要素が無くなったら要素がないことを表示するようなソースを、メソッドを繰り返し使うことで実現するようなプログラム(?)を書いて頂けると助かります。

恐ろしく素人なので、回答して頂いている方達が疑問に思っている点について私が理解出来ておらず、
回答になっていない気もします…

>>521
恐らく私が今書いたようなことだと思います。
配布されたTestStack.class自体を再現する必要はないと思いますが、
それを再現出来れば動作の確認自体が出来ると思うので、それを再現してもいいのかもしれません。

527:431
08/07/17 18:44:42
そして、前回の課題に合わせて追課題が出てしまいました・・・

【 課題 】 URLリンク(rg550.hp.infoseek.co.jp)
【 形態 】 Javaアプリケーション(main()で開始)
【 期限 】 2008/07/22 06:00
【 Ver  】 1.4.2_12
【 補足 】 課題の丸投げです。>>431で作成すべきソースを利用して作る課題です。

       私は動作確認できていませんが、
       もしかしたら
       URLリンク(rg550.hp.infoseek.co.jp)の一部分を
        void push (Object anObject) {
         // スタックの最後の位置を増やす
         top++;
         // スタックに要素追加
         stack[top] = anObject;
        }
       に書き換えたものと、
       URLリンク(rg550.hp.infoseek.co.jp)
       を利用して解けるかもしれません。
       
       >>431の課題も作成して頂いている途中なので作成をお願いするのが申し訳ないのですが、
       そんなことに構っていられないほど色々な課題や勉強が増えてきておりまして、
       図々しいことは承知の上で回答お願いします。
       できるだけ初心者にも理解し易く、単純な形で記述して頂けると助かります。
       コンストラクタ、メソッド、インスタンス、オーバーロード、合成、継承、オーバーライド、ポリモルフィズム、
       アップキャスト・ダウンキャスト、equalsのオーバーライド、インターフェース、
       程度しか教わっていないようなレベルです。
       宜しくお願いします。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch