元のスレッド 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 最新50


★★ Java の宿題ここで答えます Part 52 ★★
1 名前:小島露観(伯魔壬旭) []:2005/06/21(火) 21:25:53
【Java宿題スレッド基本ルール・五箇条の御誓文】

1. 投稿の前に自助努力しましょう。少なくとも回答をコンパイル・実行
 できる程度にはJava に習熟しておきましょう。

2. また、キーワード検索を行なうなどして、少なくとも問題文の意味を
 理解したうえで投稿しましょう。それが無理なら、問題文は自己省略せずに、
 直接全部貼り付けてください。最悪の場合、宿題&課題をそのまま丸投げ
 するのが一番好ましい提示法です。

3. 数学問題は「○×法でせよ」だけでなく、その解を出す為の数式や
 前提条件などを具体的かつ詳細に説明してください。

4. もし自分の提示課題への回答プログラムが返って来たら、
 動いた動かなかった位の報告をお願いします。

5. 宿題&課題とその回答プログラムに対する質問はOK ですが、
 一般的な質問は質問スレで行なってください。また、多言語の課題は
 原則としてスルーされますので、ご了承願います。

【回答プログラムの掲載場所】
Java質問スレWiki  http://www.wikiroom.com/java/
ソースポストネット http://sourcepost.sytes.net/

【前スレ】
★★ Java の宿題ここで答えます part51 ★★
http://pc8.2ch.net/test/read.cgi/tech/1112154540/l50

2 名前:イリュミナートX「軍帥」・伯魔壬旭 []:2005/06/21(火) 21:29:35
先月から、週刊誌に掲載されたり、日刊紙で報道されたりで
大変でした。
今スレでは、また頑張って出来るだけ回答したいと思います。
皆さんも課題提示とプログラム回答をお願いします。

3 名前:メリ []:2005/06/21(火) 22:09:17
作文課題:「学力低下について」
近年「学力低下」が懸念されていることに関して貴方自身の考えを600字以内で述べなさい。
よろしくお願いしますm(_ _)m

4 名前:デフォルトの名無しさん []:2005/06/21(火) 22:18:15
関連スレ

【初心者】Java質問・相談スレッド68【大歓迎】
http://pc8.2ch.net/test/read.cgi/tech/1119115837/
【初心者歓迎】Java質問・相談スレッド65 Update 2
http://pc8.2ch.net/test/read.cgi/tech/1118243553/

5 名前:デフォルトの名無しさん[sage]:2005/06/21(火) 22:50:12
//メニューバーの生成
JMenuBar mb = new JMenuBar();
this.setJMenuBar(mb);
//親メニューの生成と追加
JMenu menu = new JMenu("メニュー");
mb.add(menu);
//子メニューの生成と追加
JMenuItem reset, exit;
menu.add(reset = new JMenuItem("リセット"));
menu.addSeparator();
menu.add(exit = new JMenuItem("終了"));

こう書くとthis.setJMenuBar(mb);がシンボルを解決できません
と出るんですが、どうしてでしょうか?

6 名前:デフォルトの名無しさん[sage]:2005/06/21(火) 22:54:35
>>5
ちゃんとJFrameを継承してますか?
というか、それは宿題ですか?

7 名前:5[sage]:2005/06/21(火) 23:04:46
はい、宿題です。
JFrameは継承してます。見本と同じように作ったのですが・・・。

8 名前:5[sage]:2005/06/21(火) 23:05:34
と思ったらJPanelしか継承してませんでした・・・。

9 名前:デフォルトの名無しさん []:2005/06/21(火) 23:30:14
>>3
「学力低下について」

現在まで延々と受け継がれてきた「詰め込み教育」の弊害がついに
限界点に達したとの事でしょう。
自由な発想を奪い過度の知識を文字通り叩き込む教育の犠牲と
なっているのが現代の子供達です。歪んだ教育がなされている以上
学力低下は当然の結果です。

子供達には自由な学習時間を与えねばなりません。大人達の勝手な発想で
子供達を縛ってはなりません。それは、子供達に多大な苦痛を
与えるだけでなく、本来持っている独創性まで奪ってしまいます。

知識を無理矢理教え込む従来の授業を減らし、子供達の好奇心と独自性に
まかせた「自由学習」「総合学習」こそが必要です。
これによって子供達は学ぶ楽しさを知り、真の学力を獲得できます。
さらに、自分で考え自分で行動する事により独立心が芽生え人間的にも
成長するでしょう。日本の将来の為にもゆとりある教育を推進すべきなのです。


10 名前:デフォルトの名無しさん[sage]:2005/06/21(火) 23:53:20

質問者用テンプレ


【Java 歴】 経験年(月、日)数を書く(必須)。
【 種別 】 丸投げ/質問のどちらかを選ぶ(必須)。
【 課題 】 与えられた課題をそのまま書く(なるべく書く)。
【不明点 】 分からないところ、聞きたいことを書く。
【 用語 】 数学用語などのフォローを書く(あれば必須)。
【 期限 】 提出期限や解答希望日を書く。
【 備考 】 何かあれば。

11 名前:デフォルトの名無しさん []:2005/06/22(水) 00:57:36
【Java 歴】 1年
【 種別 】 丸投げです。
【 課題 】 下のURL参照
【 期限 】 6/25までに。。。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=584-585
どうかお力を貸してください・・・

12 名前:デフォルトの名無しさん[sage]:2005/06/22(水) 16:04:22
【Java 歴】3週間
【 種別 】 質問
【 課題 】 640×800のフレームを開き、複数枚(100枚以上とする)の画像を重ならないように表示させる
画像は縦長と横長の2種類、フレームの大きさは固定、つまりワクから画像がハミでるのでそこを何とかする
格画像のサイズは変えてもいいが比は変えてはいけない フォルダの中に縦長と横長がバラバラに入っている
【不明点 】 経験の深い皆さんならどうやりますか?
できるだけ具体的な方法を初心者のオレに教えてください (コードがあればなおありがたい)
【 備考 】 使うならなるべくスクロールバー以外がいいです
ちなみに画像の取り込み方はわかっているので、フレームにどう描画するかを教えてください

13 名前:前スレ830[sage]:2005/06/22(水) 16:10:08
前スレの
******************************************************
845 :デフォルトの名無しさん :2005/06/16(木) 05:48:33

>> 830
http://up.razor.jp/index.html
ファイルNo: 2997
受信pass: hw830

これ、ほんとに宿題?
宿題の割には実用的な気がする。
******************************************************
を再upしてくれませんでしょうか・・・見逃しました。

14 名前:デフォルトの名無しさん []:2005/06/22(水) 16:39:27
>>12
パズル系の問題ですか?

15 名前:デフォルトの名無しさん[sage]:2005/06/22(水) 17:29:45
>>13
最低な奴だ

16 名前:デフォルトの名無しさん[sage]:2005/06/22(水) 18:20:24
>12
見た目的に隙間が出来てもいいのなら、単純に各画像を同じサイズに内接するように拡大縮小して、それを並べればいいんジャマイカ?
100枚なら64x80、400枚なら32x40。

17 名前:12[sage]:2005/06/22(水) 20:42:33
>>16
・・・? 申し訳ないですがなんか言ってる意味が分かりかねます´・ω・`?
別に隙間はあってもいいです、”なるべく見易いように”とのことですので
多分ページに分けてボタンでも付けるのかな?しかし難易度が高いだろうなぁ・・・。orz

18 名前:デフォルトの名無しさん []:2005/06/22(水) 22:47:32
>>17
どうも問題の意味が分からないです。
説明をおねがいします

19 名前:デフォルトの名無しさん []:2005/06/22(水) 22:51:56
セーフモードってどうしたら直るんですか?教えてください

20 名前:デフォルトの名無しさん[sage]:2005/06/23(木) 01:12:06
演算をする場合
javac クラス名 数字 演算子 数字
で実行時に入力する場合、演算子はどうしたら入力できますか?
Integerで3つとも変換して計算させようとしてるんですが分かりません。

21 名前:デフォルトの名無しさん[sage]:2005/06/23(木) 01:13:08
↑javacじゃなくてjavaでした。


22 名前:デフォルトの名無しさん[sage]:2005/06/23(木) 01:28:15
>>21
>>javac クラス名 数字 演算子 数字
数字は、Integer.parseInt(String)で得られる。
基本的に、mainが取れる引数はStringだから、直接Integerで入力することは出来ない。
演算子は、四則演算なら分岐で場合分け汁。




23 名前:デフォルトの名無しさん[sage]:2005/06/23(木) 04:04:17
>21の言ってるのが正解

java HogeClass 1 + 1

public static void main(String args[]){
int i = Integer.parseInt(args[0]);
String s = args[1];
int j = Integer.parseInt(args[2]);

if("+".equal(s)){
System.out.println(i + j);
}else if("-"以下略
}

24 名前:デフォルトの名無しさん[sage]:2005/06/23(木) 04:04:42
ごめ>22だった orz
ノシ

25 名前:前スレ845[sage]:2005/06/23(木) 08:55:34
>>13
実は>>12と同じ人?と思って、前回からは多少書き換えてある。
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=25060
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=25061
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=25062
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=25063
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=25064
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=25065

っていうか、一週間もたってから言うな。

26 名前:前スレ845[sage]:2005/06/23(木) 09:43:28
>>13
で、同じ人なの?

27 名前:16[sage]:2005/06/23(木) 14:58:54
>17
100枚並べたいなら、640x800を均等に割って1枚あたり64x80でしょ?
そのサイズにみんなそろえちゃえばあとは並べるだけだろう? ということ。

64x80の比率に合う画像ばかりじゃないだろうから隙間ができるだろうけどな。

28 名前:デフォルトの名無しさん []:2005/06/23(木) 21:24:01
名前を入力したら学生番号が出力されるプログラムってありませんか?

29 名前:デフォルトの名無しさん[sage]:2005/06/23(木) 21:26:29
あるだろうな。

30 名前:デフォルトの名無しさん []:2005/06/23(木) 21:38:03
教えてください

31 名前:デフォルトの名無しさん[sage]:2005/06/23(木) 21:39:20
>>28
1人/日ってとこだな。\70000で請け負うぞ。

32 名前:デフォルトの名無しさん[sage]:2005/06/23(木) 21:59:02
91 名前:デフォルトの名無しさん[] 投稿日:2005/06/23(木) 21:19:37
名前を入力したら学生番号が出力されるプログラムってありませんか?

962 名前:デフォルトの名無しさん[] 投稿日:2005/06/23(木) 21:21:29
名前を入力したら学生番号が出力されるプログラムってありませんか?

33 名前:デフォルトの名無しさん[sage]:2005/06/23(木) 23:14:45
>22,23さんありがとう。
if("+".equal(s))
の部分でエラーが出てコンパイルできないんですがどうすれば・・・?
まだまだstring型とint型を上手く使えません。


34 名前:デフォルトの名無しさん[sage]:2005/06/23(木) 23:37:40
>>33
×equal
○equals
Eclipse使おう。

35 名前:デフォルトの名無しさん[sage]:2005/06/23(木) 23:37:52
>>33
if(s.equals("+"))
に変えてみてもダメ???

36 名前:33[sage]:2005/06/23(木) 23:54:21
equalsにしたらできました。
+,-,/は打てるのですが*にするとエラーが出ます。実行できません。
プログラム中での掛け算はできているのですが・・・。
どうしたらなおりますか?お願いします。

37 名前:デフォルトの名無しさん[sage]:2005/06/24(金) 00:04:19
>>36
掛ける(*)の記号はコンソール上では特別な意味を持ってしまうから
"*"のように入力しないといけません。
例)クラス名がDentakuの場合
java Dentaku 2 "*" 3
これはJavaのプログラムがいけないんじゃなくてコンソールの仕様ね。
"*"の代わりに\*でもいけるかも…。

38 名前:デフォルトの名無しさん[sage]:2005/06/24(金) 00:33:09
>>37
できました、ありがとうございます。
コンソールの仕様だなんて思いもしなかったです。


39 名前:デフォルトの名無しさん []:2005/06/24(金) 02:40:15
研究室をスーパークラスに、教員と生徒をサブクラスにして、
名前を入力したら、その人間の特徴(性別、趣味)などが出力されるプログラムが分かりません。
分かる方がいたら、教えてください。

40 名前:デフォルトの名無しさん[sage]:2005/06/24(金) 02:44:28
初歩すぎる問題も萎えるな

41 名前:デフォルトの名無しさん []:2005/06/24(金) 02:51:21
>>40
お願いしますよ。
なんか模範解答みたいのを見たら、4つくらいのファイルから構成されていました。

42 名前:デフォルトの名無しさん []:2005/06/24(金) 02:57:39
39です。
期限は今日の朝7時までです。
自分なりに精一杯頑張ってみたんですが、いかんせん基本を理解していないので厳しいです。
心優しい方がいたら、本当にお願いします。

43 名前:デフォルトの名無しさん[sage]:2005/06/24(金) 06:40:16
>>39
なんで教員 is a 研究室なんだろ。。
問題が悪いよ、それ。

44 名前:デフォルトの名無しさん []:2005/06/24(金) 07:50:23
研究室は、教科を教える為に存在し教科を教える場所です。
教員は、それに人格と講義を付け加えた存在だからです。
これをオブジェクト指向では、継承と言います。お願いします。

45 名前:デフォルトの名無しさん[sage]:2005/06/24(金) 09:18:30
その設計は間違ってるw

46 名前:デフォルトの名無しさん []:2005/06/24(金) 10:02:34
>>44
「せんせーおしっこー」「先生はおしっこじゃありません!!」とか
「小学生のころ」とつい「小学校のころ」と言うこととかを思い出した。


とりあえず、「教員」は「場所」か?違うだろ。
設計がおかしいといって提出しる。

47 名前:デフォルトの名無しさん[sage]:2005/06/24(金) 10:34:31
>>44
違うよwww
Personクラスを作ってそれを継承してProfessorクラスやStudentクラスを
作るなら分かるけどねぇ…。

48 名前:デフォルトの名無しさん[sage]:2005/06/24(金) 10:46:09
研究室に対し教員と生徒は集約で関連付けるのが普通だと思うが、どうよ

49 名前:デフォルトの名無しさん []:2005/06/24(金) 11:13:45
よし、じゃあそれで作ってみようか!

50 名前:デフォルトの名無しさん[sage]:2005/06/24(金) 11:25:58
┌───┐   ┌───┐
│研究室│◇─│  人 │
└───┘   └───┘
             △ △  ┌───┐
             │ └─ │ 生徒 │
           ┌───┐└───┘
           │ 教員 │
           └───┘


51 名前:デフォルトの名無しさん[sage]:2005/06/24(金) 14:27:59
abstract class Person
{
private String name;
private int year;
private String seikaku;

Person(String na, int yr, String se) { name = na; year = yr; seikaku = se; }
public String getName() { return name; }
public int getYear() { return year; }
public String getSeikaku() { return seikaku; }
public abstract void display();
}
class Teacher extends Person
{
private String yakushoku;

Teacher(String na, int yr, String se, String yaku) { super(na, yr, se); yakushoku = yaku; }
public String getYakushoku() { return yakushoku; }
public void display()
{ System.out.println(getName()+"は先生です。歳は"+getYear()+"、性格は"+getSeikaku()+"、役職は"+getYakushoku()+"です。"); }
}
class Student extends Person
{
private String gakusei_no;

Student(String na, int yr, String se, String no) { super(na, yr, se); gakusei_no = no; }
public String getGakusei_no() { return gakusei_no; }
public void display()
{ System.out.println(getName()+"は学生です。歳は"+getYear()+"、性格は"+getSeikaku()+"、学生番号は"+getGakusei_no()+"です。"); }
}

52 名前:デフォルトの名無しさん[sage]:2005/06/24(金) 14:31:29
class Laboratory
{
private Person p[];

Laboratory(int num) { p = new Person[num]; }
public boolean add(Person pp)
{
for(int i=0; i<p.length; i++)
if(p[i] == null) { p[i] = pp; return true; }
return false;
}
public Person find(String name)
{
for(int i=0; i<p.length; i++)
if(p[i] != null && name.equals(p[i].getName())) return p[i];
return null;
}}
public class Meibo
{
public static void main(String args[])
{
Laboratory lab = new Laboratory(100);
lab.add(new Teacher("赤羽", 60, "説明下手", "教授"));
lab.add(new Teacher("井上", 53, "やさしい", "助手"));
lab.add(new Student("上野", 22, "うるさい", "001"));
lab.add(new Student("遠藤", 20, "明るい", "016"));
lab.add(new Student("小野", 18, "おとなしい", "027"));

Person p = lab.find(args[0]);
if(p != null) p.display();
else System.out.println("指定された人は見つかりませんでした...");
}}

53 名前:デフォルトの名無しさん[sage]:2005/06/24(金) 14:40:41
ごめん、よく考えたらPersonをabstractにする意味ないや…。
Personのabstractを取ってdisplay()メソッドは
public void display()
{
System.out.println("名前は"+getName()+"、歳は"+getYear()+"、性格は"+getSeiaku()+"です。");
}
の方がいいよ。

54 名前:デフォルトの名無しさん[sage]:2005/06/24(金) 17:18:10
>>11
↑どうかおねがいします。。。

55 名前:デフォルトの名無しさん[sage]:2005/06/24(金) 18:42:04
>>54
Aが0なのに、Zで26になる謎が解けなくて・・・
ごめんね、かあちゃんバカでごめんね

56 名前:デフォルトの名無しさん[sage]:2005/06/24(金) 19:46:58
なんか>>44に見事につられたのかなぁと思ってきた。
結局プログラムまで書いてるし。

57 名前:デフォルトの名無しさん[sage]:2005/06/24(金) 20:38:33
Tomcatと併用してサーブレットを作ってます
htmlでチェックボックスを使用し、サーブレットのほうでそれを受け取りたいんですが、
htmlのほうに、<input type="cheackbox" name="aaa" value="1">
サーブレットのほうに、int aaa=Integer.parseInt(req.getParameter("aaa"));
と書きました。
でもこれだと、ボックスにチェックを入れると動くのですが、にチェックを入れないとエラーになってしまいます。
どうしたらいいのでしょうか?
ラジオボタンやリストは使わずにチェックボックスを利用したいのですが、無理でしょうか?


58 名前:デフォルトの名無しさん[sage]:2005/06/24(金) 20:56:46
>>57
パラーメーターの値が、半角数字かどうかチェックすればいいじゃない

59 名前:デフォルトの名無しさん[sage]:2005/06/24(金) 23:03:47
>>55
すいません 25でしたね。。。修正しましたm(_ _)m

60 名前:デフォルトの名無しさん []:2005/06/25(土) 00:14:13
おしっこは、体内に不要な物質を排泄するための機能です。
先生は、それに人格と講義を付け加えた存在だからです。
これをオブジェクト指向では、継承と言います。お願いします。


61 名前:デフォルトの名無しさん[sage]:2005/06/25(土) 02:45:49
質問です。これって初歩なのかもしれないんですけど
longで入る値よりも大きな数字をいれるためのクラスってありませんか?
どうか、知っている方、よろしくお願いします。

62 名前:デフォルトの名無しさん[sage]:2005/06/25(土) 02:57:42
BigDecimal
BigInteger

63 名前:デフォルトの名無しさん[sage]:2005/06/25(土) 18:51:37
>>62
サンクス。ありがとね。

64 名前:java初心者[sage]:2005/06/25(土) 22:31:37
3行3列の行列のかけ算をするメゾットを
public int[][] multiply(int[][] a, int[][] b)
で書きたいんですがどう書けばいいですか?
戻り値(?)の渡し方なども分かりません。


65 名前:デフォルトの名無しさん[sage]:2005/06/25(土) 22:41:24

【Java 歴】2ヶ月です。しかもDo-ja3.5の環境でやっています
【 種別 】 質問です。
【 課題 】 課題1
      以下の仕様をみたすアプリを作成せよ
      ◆リストボックスによって選択した動画像を表示する
      ◆動画像の再生/停止の制御が行える
      ◆使用方法をティッカーで表示する
      ◆動画像の説明をテキストで表示する
      ◆限られた者のみが動画像をみれるようにする
 
【不明点 】 動画像、ティッカー、ボタンの表示は出来ました。しかしながら
ボタンでの切り替えが出来なくて、二枚ともに表示されてしまいます。
変数は必要なのでしょうか?
【 用語 】 すいません、何しろはじめたばかりなのでよくわかりません。
【 期限 】 7月第一週です。
【 備考 】 大学のプリントで授業を学んでいるのですが、今まではキャンバス、
フレームクラスでした。パネルクラスにはいって、テキストボックス、ティッカー、
GIFの表示、リストボックス、を学んでこの課題です。
ちょっといまいち理解できていません。どうかよろしくお願いいたします。


66 名前:初心者 []:2005/06/26(日) 00:12:19
大学で以下の宿題を出されたのですがまったくわかりませんのでどなたか
教えてください
問題:10進表記の整数を入力し、その整数を2進表記に変換して画面に
表示するJAVAのプログラムを作成しなさい。
(ただし、for文やWhile文などの繰返しの制御を用いずに、必ず再帰的手続
きを用いること。)
[実行例]
整数を入力してください
10
1010

よろしくお願いします

67 名前:デフォルトの名無しさん[sage]:2005/06/26(日) 00:20:30
>>66
http://pc8.2ch.net/test/read.cgi/tech/1112154540/860n
近くに答えもある。

68 名前:デフォルトの名無しさん[sage]:2005/06/26(日) 00:59:25
>>66
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Q66 {
public static void main(String[] args) throws IOException {
System.out.println("整数を入力してください");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int number = Integer.parseInt(br.readLine());
System.out.println(toBinaryString(number));
}

public static String toBinaryString(int i) {
return i == 0 ? "0" : toBinaryString(new StringBuilder(32), i).toString();
}

private static StringBuilder toBinaryString(StringBuilder dst, int i) {
return i == 0 ? dst : toBinaryString(dst, i >>> 1).append(i & 1);
}
}

>>67
http://pc8.2ch.net/test/read.cgi/tech/1112154540/863
のだと0以下の場合駄目じゃない?

69 名前:初心者 []:2005/06/26(日) 01:06:36
>>67
まったく同じ問題が^^;
何はともあれ助かりました
ありがとうございました

70 名前:初心者 []:2005/06/26(日) 01:12:59
>>68
おお!?すいません、大変助かります。ありがとうございます

71 名前:デフォルトの名無しさん[sage]:2005/06/26(日) 01:14:00
>>64
public int[][] multiply( int[][] a, int[][] b ) {
// 答えの行列の確保
int ROWS = a.length;
int COLS = b[0].length;
int[][] answer = new int[ROWS][COLS];
// 計算
for( int i=0; i<ROWS; i++ ) {
for( int j=0; j<COLS; j++ ) {
for( int k=0; k<a[0].length; k++ ) {
answer[i][j] += a[i][k] * b[k][j];
}
}
}
return answer;
}

72 名前:デフォルトの名無しさん []:2005/06/26(日) 01:17:10
double型の2次元配列を用い、3元の連立一次方程式を解くプログラムを書きなさい。
例題として下記の連立方程式
2x+3y+Z=4
4x+y-3z=-2
-x+2y+2z=2
という問題なのですが全然わかりません^^;掃出し法(ガウスの消去法)を
用いるということで色々調べたのですが、どうしていいかがわかりません。
お願いしますm(__)m

73 名前:デフォルトの名無しさん []:2005/06/26(日) 18:28:46
大学の宿題です。
身長と体重をキーボードから入力し、BMIを求め身長、体重、BMI、
体型の値を画面に表示する。
ただしクラス Bmiを作成して、メンバー変数として身長・体重、メ
ソッドとしてBMI計算・体型判定を書き、それらを呼び出して処理さ
せること。

メソッドでBMIの計算をさせるという意味がよくわからず、作ることが出来ません。
丸投げになってしまいますが、よろしくお願いします。

74 名前:java初心者[sage]:2005/06/26(日) 20:29:47
>>71
ありがとうございます。
下のように組んでみました。
一応答えはあっていますが、使い方あってますか?
あと計算部分はどのように考えてるんでしょうか?お願いします。
public class Ex5{
public void run(){
int[][] a={{1,1,1},{1,1,1},{1,1,1}};
int[][] b={{1,1,1},{1,1,1},{1,1,1}};
int[][] c=this. multiply(a,b);
for(int p=0;p<3;p++)
System.out.println(c[p][0] + " "+c[p][1] +" "+c[p][2]);
}

public int[][] multiply( int [][] a, int [][] b ) {

int ROWS = a.length;
int COLS = b[0].length;
int[][] c = new int[ROWS][COLS];

for( int i=0; i<ROWS; i++ ) {
for( int j=0; j<COLS; j++ ) {
for( int k=0; k<a[0].length; k++ ) {
c[i][j] += a[i][k] * b[k][j];
}
}
}

return c;

}

75 名前:71[sage]:2005/06/26(日) 21:19:56
>>74
答えの正否を確認するんだったら配列a, bをもっと値がランダムな行列にした方がいいと思います。
int[][] a = { {3, 4, 5}, {0, 1, 2}, {2, 3, 1}, };
int[][] b = { {0, 1, 2}, {3, 4, 5}, {6, 7, 8}, };
とか。まーなんでもいいんですが。

計算部分を考えるヒントはこんな感じです。
for( int i=0; i<ROWS; i++ ) {
for( int j=0; j<COLS; j++ ) {
answer[i][j] = a[i][0] * b[0][j] + a[i][1] * b[1][j] + a[i][2] * b[2][j];
}
}
(0行0列) = (0行0列)*(0行0列) + (0行1列)*(1行0列) + (0行2列)*(2行0列)
だなーと考えて、右辺の足し算をもう1回ループで回してるイメージです。
紙に書いて考えてみるとわかりやすいと思います。

76 名前:デフォルトの名無しさん[sage]:2005/06/27(月) 00:03:11
Javaの課題で、ビリアードを作っています。
6月28日までが期限の課題です。
完全に丸投げなのですが、どうかよろしくお願いします。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/617.txt

課題@
 ビリアードのボード、内枠と外枠の間に色をつける(色の種類は任意)。
課題A
 手玉を打つ方向に矢印を出し、進行方向を明確にする。
課題B
 各自で改善できるところは、改善する。

77 名前:デフォルトの名無しさん[sage]:2005/06/27(月) 00:09:02
なんで休日明けの宿題を休日が終わろうとしているときに頼むんだろう?

78 名前:76[sage]:2005/06/27(月) 00:32:02
>>77
すみません。
この課題は、29日に提出しなければいけないのです。
他の課題はできたのですが、これらの課題はどうしてもできなくて、
自分では無理だと思い、お願いした次第です

79 名前:デフォルトの名無しさん[sage]:2005/06/27(月) 01:02:40
土日を費やせば、少なくとも色をつける位はできそうなもんだがな。

80 名前:デフォルトの名無しさん[sage]:2005/06/27(月) 01:07:44
ttp://www.torii.co.jp/release/2004/040405.html
こんな奴か?あまり縁が無いものだな

81 名前:デフォルトの名無しさん []:2005/06/27(月) 01:53:55
sff

82 名前:デフォルトの名無しさん []:2005/06/27(月) 04:10:58
Object x = new String("Sally");
System.out.println(x);
x = new String ("Jack");

(a)1行目のコードで変数xのタイプと、xによって参照されたオブジェクト
  のタイプは何?
変数x = char, object referenced by x = String
(b)2行目のコードをここで書く事は可能か?もし可能なら何がプリント
  されるか?
可能、Sally
(c)3行目のコードでは"Sally"によってアロケートされたスペースはどうなるのか?
   消されて、Jackが置換えされる。

すいません、この問題の答えあっているでしょうか?超下級問題かも
しれませんが、どなたかチェックお願いします。

83 名前:デフォルトの名無しさん []:2005/06/27(月) 05:45:25
int m = x.length-1;
int[] x = {10, 12, 15, 8, 6};
Vector y = new Vector();

m--;
}

  まずarray xの全ての要素をvector y に置いて、そしてarrayの
最後の要素をy[0],y[1],y[2]...に置くプログラムを書きたいのですが、
  お願いします。  
 




84 名前:デフォルトの名無しさん []:2005/06/27(月) 05:51:11
int[] x = {10, 12, 15, 18, 26};
;
array xの一つ一つの要素を左にシフトして、番号26がポジション
 4,5に、番号10は消され、次の様な新しいarrayを作るプログラム
 を書きたいです。{12, 15, 18, 26, 26}。arraycopyを使って書け
 るでしょうか?



85 名前:デフォルトの名無しさん []:2005/06/27(月) 07:33:50
>>84
arrayshiftっていうfunctionなかったっけ?javaに。

86 名前:M.B.[sage]:2005/06/27(月) 12:33:23
>>73
> ただしクラス Bmiを作成して、メンバー変数として身長・体重、
> メソッドとしてBMI計算・体型判定を書き、それらを呼び出して
> 処理させること。
……おいおい(-_-!)、やるんだったら
class HumanBody () {
で、メンバ変数が
double Tall;
double Weight;
で、
HumanBody( double Height, double Weight ) {
で、
public double getBMI() {
   return this.Tall * this.Tall / this.Weight;
}
だろ?



87 名前:デフォルトの名無しさん[sage]:2005/06/27(月) 14:45:24
>82
全部間違っています。デバッガで追いかけてみたら?

88 名前:デフォルトの名無しさん[sage]:2005/06/27(月) 14:46:32
>83
後半は意味不明。
前半は Vector y = new Vector(Arrays.asList(x));

89 名前:デフォルトの名無しさん[sage]:2005/06/27(月) 14:54:19
>>83
問題文を正確に書いてみ。
Vector を経由して配列を逆順にしたいということ、なのかな?

>>82,87
(b)はあってるでしょ。あとはめちゃくちゃ。
ていうか、(c)ってJavaの問題としてどうなの?って気もする。

90 名前:デフォルトの名無しさん[sage]:2005/06/27(月) 15:27:59
入力された文字列に対して、その文字列が半角英数の8文字以内である
という条件文を作りたいのですがどうやれば良いでしょうか?

String id = request.getParameter("id");
if (id.matches("[a-zA-Z0-9]{8}")){
out.println("正規なIDの文字");
} else {
out.println("IDに不正な文字が使われてる");
}

こんな風に書いてみましたが、これだと入力値が
きっちり8文字でないと正しい結果を返してくれませんでした。

91 名前:デフォルトの名無しさん[sage]:2005/06/27(月) 15:38:10
>>90

[a-zA-Z0-9]{1,8}
だろう。
また、[a-zA-Z0-9]のかわりに、\p{Alnum}とも書ける

SDKドキュメントのPatternクラスのページ参照


92 名前:デフォルトの名無しさん[sage]:2005/06/27(月) 15:38:52
>>90
> [a-zA-Z0-9]{8}
そりゃ{8}なら8文字にしかマッチしないな。1文字以上8文字以内なら{1,8}ね。

93 名前:デフォルトの名無しさん[sage]:2005/06/27(月) 15:40:58
>>91-92
JAVAとは関係ない質問だったかもしれませんが
返答ありがとうございました。
ログイン認証の部分が何とか出来そうです^^

94 名前:デフォルトの名無しさん[sage]:2005/06/27(月) 19:05:07
>>86
正しいことを教えようとするだったら、せめてコンパイルぐらいはしましょう。

95 名前:デフォルトの名無しさん[sage]:2005/06/28(火) 01:11:40
exlipseにTomcatとmysqlを使ってJSPのみで、Web上でログイン認証とDBレコードの
参照、操作をするプログラムを書いている所です。

DBから引っ張ってきた値を評価する時、期待する結果が出なくて困っています

String UID = (String)ses.getAttribute("id");
ResultSet res = state.executeQuery("select * from user_master where user_id=\"" + UID + "\"");

while(res.next()){
String SUSER = res.getString("s_user_flg");
if (SUSER == "1"){
out.println("<form name=frm1 action=addmin.jsp method=POST>");
out.println("<td><input type=submit name=btn1 value=管理用></td>");
out.println("</form>");
}
}

以上がところどころ省略したソースです。
入力値"id"を使用してselect文でDBからレコードを抜き出し、
レコード内のフィールド"s_user_flg"の値が"1"ならば「管理用」ボタンを表示させる
という事をやりたいです。

試しに"s_user_flg"に1が入力されているID、nullのIDとで動かしてみた所
上記には含めてませんがout.print(SUSER);の出力結果も問題無い(1なら1、nullならnullと表示された)のですが、
if文の条件式は全てfalseが返ってるようです。
ちなみにDBのs_user_flgフィールドのtypeはchar(1)です。

原因と解決策を教えて頂けるでしょうか?
よろしくお願いします。

96 名前:95[sage]:2005/06/28(火) 02:35:54
自己解決しました。

>if (SUSER == "1")

if (SUSER.equals("1"))

としたら期待通りの動きをしてくれるようになりました。
オブジェクトの比較と値の比較との違いがあるとは。
1時間返せ('A`)

97 名前:デフォルトの名無しさん []:2005/06/28(火) 07:16:23
import java.util.*;
class Fraction extends Number {
private int num;
private int denom;
public Fraction(int n, int d) {
num = n;
denom = d;
}
public String toString() { 2.// "Comment out" the toString method in class Fraction
return num + " / " + denom;
}
// Methods that are declared abstract in Number
public double doubleValue() { return (double) num / (double) denom; } // "Comment out" one of the method declarations for class Fraction
public float floatValue() { return (float) doubleValue(); }
public int intValue() { return num / denom; }
public long longValue() { return intValue(); }
public short shortValue() { return (short) intValue(); }
}
大学で出された問題です。
上のコードで、class Fractionのmethod declarationの1つどれか"comment out”
してtoString methodも同じように"comment out”する。それをした後ででるエラーについて説明しろ 
という問題なのですが。。。 エラーはclass Fractionのheaderの所に”class fraction should
be declared abstract,it does not define the floatValue() in java.lang.Number"
というエラーが出ます。ちなみに、methodはfloatValue()のラインをcommentしました。マル投げすいません、どなたか教えてください。

98 名前:97 []:2005/06/28(火) 07:57:18
public class FractionSubclassNumber {
public static void main(String[] args) {
ArrayList s = new ArrayList();
  Vector v = new Vector();
s.add("hello"); v.add("hello");
s.add(new Fraction(1, 2)); v.add(new Fraction(1, 2));
s.add(new Integer(5)); v.add(new Integer(5));
s.add(new Double(5.5)); v.add(new Double(5.5));
s.add("bye"); v.add("bye");
s.add(3, new Integer(999)); v.insertElementAt(new Integer(999), 5);

System.out.println("\nArrayList s:\n" + s + "\n\nVector v: \n" + v);

double sumS = 0;
double sumV = 0.0;
for (int i = 0; i < s.size(); i++) {
Object nextS = s.get(i);
Object nextV = v.elementAt(i);
if (nextS instanceof Number) {
//Number stupid = new Number(); // not valid - Number is abstract. the comment removed in front of the line:
Number temp = (Number)nextS; // cast operation sould be removed
sumS += temp.doubleValue();}
if (nextV instanceof Number) {
sumV += ( (Number) nextV).doubleValue();
}} }}
この宿題続きがあります。またエラーの説明なのですが。このプログラムは>>97の続きで、まず最初に
1.// Number stupid = new Number(); このラインの前のcommentをはずす
コメントをはずすと、”java.lang.Number は abstract です。インスタンスを生成することはできません”
すいません、この1問お願いします。

99 名前:デフォルトの名無しさん []:2005/06/28(火) 10:04:29
>97
java.lang.Numberはabstructクラス。
それを継承してるclass Fractionはabstruct宣言されている全てのメソッドの
実装を書かなきゃいけない。
書きたくないときは、class Fraction自体をabstruct
にする。

>98
エラーのまま。
abstructなクラスはインスタンス化できない。

てか、Javaの入門書に出てるだろ、これぐらい。

100 名前:97 []:2005/06/28(火) 10:34:24
>>99
 たんきゅ。


101 名前:デフォルトの名無しさん[sage]:2005/06/28(火) 10:45:15
今日、JAVA3日で覚えて言われたんだけど、できるかな?

102 名前:デフォルトの名無しさん[sage]:2005/06/28(火) 10:46:37
無理だろ

103 名前:デフォルトの名無しさん []:2005/06/28(火) 11:04:08
面接ん時、JAVA無理ですって言ったら、担当の人が「じゃあ、少し使える程度だって会社には伝えますから、3日で覚えて下さい」って
覚えなかったら不採用ぽい・・・

今、パソコンこわれちゃってるんだけど、お薦めの参考書とかある?

104 名前:デフォルトの名無しさん[sage]:2005/06/28(火) 11:09:08
>>103
無茶苦茶だな

Cか何かやったことあるなら「独習Java」
プログラム初めてなら「Java言語プログラミングレッスン」

105 名前:デフォルトの名無しさん[sage]:2005/06/28(火) 11:18:37
>>103
まあ、よくある経歴詐称だよな。
営業的にはねじ込んじゃえばあとは野となれ山となれなんで、3日で覚える必要はないとおもう。

他の言語も何もやったことがないのなら悲惨だが・・・。

106 名前:デフォルトの名無しさん []:2005/06/28(火) 14:35:33
英語の問題を宿題で出されちまいました。
どなたか、ヘルプを。

The class Fraction represents the set of integer fractions,
and has methods Fraction(num, denom), getNum(), getDenom(),
setNum(num), setDenom(denom), equals(x) with obvious meaning. Given
Fraction a = new Fraction(2,3);
Fraction b = a;
Fraction c = (Clone) a.clone();
final Fraction d = new Fraction(2,3);
Fraction e = new Fraction(a.getNum(), a.getDenom());

(a)(a==b)is it true or false?
(b)(a.equals(b)) is it true or false?
(c)(a==c) is it true or false?
(d)(b.equals(c)) is it true or false?
(e)(c.equals(e)) is it true or false?
(f)Is the assignment d = b; legal?
(g)Is the method invocation c.setNum(5) legal?
(h)Is the method invocation d.setNum(5) legal?

After the assignment a.setNum(4); is
(i)a.equals(b) true or false?
(j)a.equals(c) true or false?
(k)a == b true or false?


107 名前:デフォルトの名無しさん[sage]:2005/06/28(火) 14:57:28
そこはかとなく既視感があるわけだが。
http://pc8.2ch.net/test/read.cgi/tech/1118243553/400-

108 名前:デフォルトの名無しさん[sage]:2005/06/28(火) 15:20:25
Fractionクラスは、分数を表していて、
Fraction(num, denom), getNum(), getDenom(),
setNum(num), setDenom(denom), equals(x) というメソッドを持っています。

次のコードを与えると

Fraction a = new Fraction(2,3);
Fraction b = a;
Fraction c = (Clone) a.clone();
final Fraction d = new Fraction(2,3);
Fraction e = new Fraction(a.getNum(), a.getDenom());

(a)(a==b)は true か falseどちらになりますか?
(b)(a.equals(b))は true か falseどちらになりますか?
(c)(a==c) は true か falseどちらになりますか?
(d)(b.equals(c)) は true か falseどちらになりますか?
(e)(c.equals(e)) は true か falseどちらになりますか?
(f)この命令 d = b; は正当ですか?
(g)このメソッドの呼び出し c.setNum(5) は正当ですか?
(h)このメソッドの呼び出し d.setNum(5) は正当ですか?

その後、次の命令 a.setNum(4); を実行しました
(i)a.equals(b) は true か falseどちらになりますか?
(j)a.equals(c) は true か falseどちらになりますか?
(k)a == b は true か falseどちらになりますか?

109 名前:デフォルトの名無しさん []:2005/06/28(火) 19:16:34
>>106
(a)T(b)T(c)F(d)T(e)??(f)no(g)yes(h)no(i)T?(j)T(k)F
何個かわからん。こんな感じだろ。

110 名前:デフォルトの名無しさん []:2005/06/28(火) 19:23:48
アブストラクトAxx、インターフェイスIxx、AxxをextendsしてIxxをimplements
するコンクリートクラスCooが与えられました。以下の、命令文は正当か、エラーなら
syntax errorもしくはexception errorのどちらか???

(a) Axx x = new Axx();
(b) Axx y = new Coo();
(c) Ixx z = new Ixx();
(d) Ixx w = new Coo();
(e) Coo a = new Axx();
(f) Coo b = new Ixx();
(g) Coo c = (Coo)w;
(h) Coo d = y;
(i) Axx u = (Coo)w;

  答え、お願いします。

111 名前:デフォルトの名無しさん[sage]:2005/06/28(火) 19:51:16
>>110
(a)s(b)o(c)s(d)o(e)s(f)s(g)o(h)s(i)o

意味がわからなくても実際に作って動かしてみたらわかるだろ・・・。


112 名前:デフォルトの名無しさん[sage]:2005/06/28(火) 23:40:58
>96
いい勉強をしたな。
自分でその違いに気付いたのなら適性があるかも。

>103
浅煎り珈琲でぐぐれ。俺はそこで覚えた。
何か他の言語が出来るなら案外すぐに覚えられるぞ。

113 名前:デフォルトの名無しさん[sage]:2005/06/29(水) 04:07:35
1 進む距離や曲がる角度をランダムに選びながら、(100,100),(300,300)を頂点とする正方形から外れるまで亀が動き続けるプログラムを作成せよ。
2 2次関数f(x)=ax^2+bx+cの係数a,b,cを与えると、xy平面上に亀が放物線を描くプログラムを作成せよ。

徹夜でやってますができそうにありません 誰かおねがいします。

114 名前:113[sage]:2005/06/29(水) 04:10:11
//
// Turtle Graphics Library extension for teaching OO concepts
// by Hideki Tsuiki, Kyoto University
// as a modification of Tatsuya Hagino's Turtle Graphics Library
// Copyright (C) 2000, Hideki Tsuiki, Kyoto University

// Turtle Graphics Library for Information Processing I
// Copyright (C) 1998, Tatsuya Hagino, Keio University
//
// Permission to use, copy, modify, and distribute this software
// for educational purpose only is hereby granted, provided that
// the above copyright notice appear in all copies and that both
// the copyright notice and this permission notice appear in
// supporting documentation. This software is provided "as is"
// with no warranty.


import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.lang.Math;
import java.util.Vector;

115 名前:113[sage]:2005/06/29(水) 04:11:01
/** タートルのクラス。 */
public class Turtle{
/** もし、このフィールドの値が true なら、
* 亀を用いた描画を行う。false なら、亀を表示せず、高速な描画を行う。
* 初期値は true。*/
boolean withKame = true;

/** もし、false なら、個々のタートルの
* withKame の値に関わらず、全てのタートルに高速な描画を行う。
* 初期値は true。*/
public static boolean withKameAll = true;

public Color kameColor = Color.green;

// animation parameters
static double rotateStep = 5.0 *Math.PI/180.0 ;
static int moveStep = 5;
static int[] speedStep = {100000, 20, 5, 2};

// turtle animation speed constants
final static int speedNoKame = 0;
final static int speedFast = 1;
final static int speedNormal = 2;
final static int speedSlow = 3;

// set the menu
static void speedAll(int s) {
if (s < 0 || s >= speedStep.length) return;
rotateStep = speedStep[s] *Math.PI/180.0;
moveStep = speedStep[s];
withKameAll = (s > 0);
}

116 名前:113[sage]:2005/06/29(水) 04:12:22
TurtlePanel f; // set by TurtlePanel
double angle;// turtle current angle
double x, y;// turtle current position
double dx, dy;// dx = sin(angle), dy = -cos(angle)
boolean penDown;// pen status (up or down)
Color c = Color.black; // pen color
int kameType = 0;
// turtle animation rubber line
int rx, ry;
boolean rubber = false;
int moveWait = 20;
int rotateWait = 20;

/** (x, y) という座標に angle の角度で、Turtle を作成。 */
public Turtle(int x,int y, int ia)
{
this.x = ((double)x + 0.5);
this.y = ((double)y + 0.5);
setangle((double)ia *Math.PI/180.0);
penDown = true;
}

/** (200,200) という座標に 0 度の角度で、Turtle を作成。 */
public Turtle()
{
this(200,200, 0);
}

117 名前:113[sage]:2005/06/29(水) 04:13:30
// turtle
static final int kameFig[][] =
{ {-12,-6,-12,6,0,18,12,6,12,-6,0,-18,-12,-6},
{-18,-12,-12,-6},
{-6,-24,0,-18,6,-24},
{12,-6,18,-12},
{12,6,18,12},
{-6,24,0,18,6,24},
{-18,12,-12,6},
{-18,12,-18,-12,-6,-24,6,-24,18,-12,18,12,6,24,-6,24,-18,12},
{-15,-15,-18,-24,-9,-21},
{9,-21,18,-24,15,-15},
{15,15,18,24,9,21},
{-9,21,-18,24,-15,15},
{-3,24,0,30,3,24},
{-6,-24,-12,-36,-6,-48,6,-48,12,-36,6,-24}
};
static final int kameRFig[][] =
{ {-12,-6,-12,6,0,18,12,6,12,-6,0,-18,-12,-6},
{-18,-12,-12,-6},
{-6,-24,0,-18,6,-24},
{12,-6,18,-12},
{12,6,18,12},
{-6,24,0,18,6,24},
{-18,12,-12,6},
{-18,12,-18,-12,-6,-24,6,-24,18,-12,18,12,6,24,-6,24,-18,12},

118 名前:113[sage]:2005/06/29(水) 04:34:41
すみません 中途にアップしてからで申し訳ありませんが、テキストにしてアップします

ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/626.txt


119 名前:デフォルトの名無しさん []:2005/06/29(水) 13:54:52
>113
あれ・・・デジャブ・・・

120 名前:デフォルトの名無しさん[sage]:2005/06/29(水) 21:57:26
【Java 歴】5日
【 種別 】丸投げです・・・
【 課題 】http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/633.txt
【 期限 】7/4

java初心者がやる課題とは思えんorz
皆様よろしくお願い致します・・・

121 名前:74[sage]:2005/06/29(水) 22:13:02
>>75
遅くなったけど、ありがとうございます。それで考えてみます!!

122 名前:デフォルトの名無しさん[sage]:2005/06/30(木) 10:29:35
>>113

1問目
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=25197
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=25198

2問目
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=25199
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=25200

起動用
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=25201

Turtle, TurtleFrame, TurtlePanel が hw113.tgl パッケージにはいってる
前提で書いてあるから、その辺は自分で調節して。


123 名前:デフォルトの名無しさん[sage]:2005/06/30(木) 10:56:31
>>120
難しく考えすぎ。
回答すべきことは
「formula中の数式をトークンに切り分け、順次、 calcのeat_tokenメソッドを呼び出して計算を行う。」
だけなのだから、Javaについても逆ポーランドについても大した知識は必要ない。


// 入力された文字列に対して StringTokenizer を作る。
StringTokenizer st = new StringTokenizer(formula);
// token があるだけループさせて、eat_token に順次突っ込む。
while(st.hasMoreTokens()){
calc.eat_token(st.nextToken());
}

以上。
あと、StringTokenizer を import しておくのを忘れないように。
それから、IntStackには突っ込みどころもあるが略。

あと、蛇足だが出題者の(Java の)レベルがあれだな・・・。

124 名前:デフォルトの名無しさん []:2005/07/01(金) 10:08:59
間違えて前スレに貼っちゃったので一応こちらに。
ラジオボタンの判定について質問なのですが、
メインとは違うクラスでボタン、ラジオボタン等の設置をしていて、
メインクラスで

public void actionPerformed(ActionEvent e) {
 if(ボタンを押されたとき){
  if(ラジオボタンAが押されていれば){
   処理1;
  }
  else if(ラジオボタンBが押されていれば) {
   処理2;
  }
 else if(ボタンBを押したとき){
  if(ラジオボタンAが押されていれば){
   処理1;
  }
  else if(ラジオボタンBが押されていれば) {
   処理2;
  }
 }

のような判定を行いたいのですが、ラジオボタンの判定だけどうも上手くいきません。
どなたかご教授お願いします(´・ω・`)
ちなみに ボタンAが押されたとき はif(e.getSource() == window.A)で上手く処理できています。
window はボタン設置等をおこなっている違うバウンダリクラスです。

ちなみに、ボールを複数表示し、それぞれのボールを選択でき、
上下左右の4つのボタンで任意に動かせるプログラムを作るという課題です。
ボタン設置などと、判定処理などは違うクラスで実装しないといけません。


125 名前:ひろこ []:2005/07/01(金) 10:32:24
宿題でました。
1.問題を表示し、正解するまで質問を繰り返すKadai1.javaを作成せよ。
実行例)
アメリカの首都は?
1:ボストン 2:サンフランシスコ 3:ワシントン 4:シカゴ
 1
間違い!もう一度!
アメリカ合衆国の首都は?
1:ボストン 2:サンフランシスコ 3:ワシントン 4:シカゴ
  3
正解!
よろしくお願いします☆彡




126 名前:デフォルトの名無しさん[sage]:2005/07/01(金) 11:43:20
>>124
if (window.radioA.isSelected())
とかはできないの?


127 名前:デフォルトの名無しさん[sage]:2005/07/01(金) 11:52:28

質問者用テンプレ Ver 1.1(案)

【 PG 歴 】 プログラミングの経験年(月、日)数を書く(必須)。
【Java 歴】 Java プログラミングの経験年(月、日)数を書く(必須)。
【 種別 】 丸投げ/質問のどちらかを選ぶ(必須)。
【 課題 】 与えられた課題をそのまま書く(なるべく書く)。
【不明点 】 分からないところ、聞きたいことを書く。
【 用語 】 数学用語などのフォローを書く(あれば必須)。
【 期限 】 提出期限や解答希望日を書く。
【 備考 】 何かあれば。

128 名前:124 []:2005/07/01(金) 12:48:15
>>126
同じクラスのものを使用してないせいか
isSelectedは認識されませんでした。


129 名前:126[sage]:2005/07/01(金) 13:46:50
>>125
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=25216

>>128
まさか、そのままコピペしてないよな・・・
とにかく、ラジオボタンにチェックがあるかどうかはこれで調べる。

JRadioButton radio = 調べたいラジオボタン;
if (radio.isSelected()) {
  // チェックされてる
}

これ以上のアドバイスは、>124の内容からでは無理。
new JRadioButton() しているソースを見れば、何か分かるかも。
・・・って、もしかして awt で組んでるのか?

130 名前:124 []:2005/07/01(金) 14:05:58
class BallWindow extends JPanel { // バウンダリクラス
  BallController bc;
  JPanel buttonPanel;
  JRadioButton ball1;
  JRadioButton ball2;
  JButton b_up;
  ButtonGroup group;
  JRadioButton ball1 = new JRadioButton();
  ball1.setText("Ball1");
  ball1.setActionCommand( "a" );
  ball1.addActionListener(bc);

  これがwindowクラスの一部、ラジオボタン等をここで設置していて

131 名前:124 []:2005/07/01(金) 14:10:41
メインのクラスでそれを判定、処理させたいのです。
以下メイン一部抜粋

class BallController extends JPanel implements ActionListener
{ // コントローラクラス
  private static Vector balls_1; // ボールへの参照
  private static Vector balls_2;
  private static Vector balls_3;
  private static BallWindow window; // GUI用インスタンスへの参照
  private static BallPrint terminal; // CUI用インスタンスへの参照
  private static BallController bc; // 自身のインスタンスへの参照
  ・
  ・ 
 public void actionPerformed(ActionEvent e) {
   if(e.getSource() == window.b_up) // upボタンが押されたとき
   {
     if(window.group.getSelection().getActionCommand().equals("a") )
     {// Ball1が選択されていれば
        bc.scenario1();
          return;
     }
     else if(window.group.getSelection().getActionCommand().equals("b") )
        {// Ball2が選択されていれば
           以下略

132 名前:デフォルトの名無しさん[sage]:2005/07/01(金) 14:22:26
何カ所にマルチしてるんだよ。まずはどこかにまとめろ。

まさか、group.add(ボタン)をしていないってことはないだろうな?

133 名前:デフォルトの名無しさん []:2005/07/01(金) 17:26:57
【 PG 歴 】 c系:3年 ruby/perl:1年
【Java 歴】 0
【 種別 】 丸投げ
【 課題 】
jspで入力された文字をもらっい、出力してください
【不明点 】 入力もらえね
【 用語 】 数学用語などのフォローを書く(あれば必須)。
【 期限 】 あと30分
【 備考 】 わからなすwwwwwwww

134 名前:133 []:2005/07/01(金) 18:05:03
自己解決wwwwwwwwwwwwww

135 名前:124 []:2005/07/01(金) 19:53:04
>>132
さすがにそういう事はないです。
おそらくWindowクラスでのgroup変数がアクションリスナにうまく登録されていないか、
もしくはActionCommandが同様に登録がうまくいってないか また、メインクラスで
ActionCommandを新たに登録しないといけないのか、そこらに原因があると思ってはいるのですが
さっぱりわからなくて困ってます。
色々調べてみたものの同じようにラジオボタンを使用している例がひとつも見つからずで・・・。


136 名前:129[sage]:2005/07/01(金) 20:55:34
>>130-131 >>135
なるほど、そう書きたいわけか。
自分もソースを見て疑ったのは、>132氏と同じく add() のし忘れでした・・・

思い切って、ソースそのものを晒してみたら?
長くなると思うので、↓に。
ttp://sourcepost.sytes.net/
エラーが出てたら、それもスレに載せる(スタックトレースは上から5段程度まででよい)。

137 名前:デフォルトの名無しさん[sage]:2005/07/01(金) 22:05:18
>124,128,130-131,135
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=25218
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=25219
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=25220

138 名前:デフォルトの名無しさん []:2005/07/01(金) 23:55:30
JAVAで絵を描く宿題がでました。
船と海と太陽を書きたいのですが、うまくできません。
import java.awt.*;
class BasicColorRect extends Frame
{
public void paint( Graphics g )
{
g.setColor( Color.green );長方形
g.fillRect(100,400,300,100);

int [] xp = { 50, 100, 100 };三角形
int [] yp = {400, 500, 400 };
g.setColor( Color.green );
g.fillpolygon( xp, yp, xp.length );

g.setColor( Color.green );
g.fillRect(200,300,100,100);

g.setColor( Color.blue );海
g.fillRect( 0, 500, 600, 100);
}
publicstatic void main( String [] args )
{
BasicColorRect bc = new BasicColorRect();
bc.setSize( 600, 600 );
bc.setVisible( true );
}
}
左上のほうに赤い太陽をつけたいんです。

139 名前:124 []:2005/07/02(土) 00:31:28
>>137
せっかく教えてもらってるのに理解出来なくて組み立てれないorz

140 名前:デフォルトの名無しさん[sage]:2005/07/02(土) 00:52:18
>>138
100% 閉じるボタンをシカトしてそうなので頑張れない

141 名前:デフォルトの名無しさん[sage]:2005/07/02(土) 01:16:51
g.setColor(Color.red); // 太陽
g.fillOval(400, 100, 100, 100);

bc.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});

このふたつを追加すりゃいいよ。


142 名前:デフォルトの名無しさん []:2005/07/02(土) 01:25:52
>>140
閉じるボタンってなんなのでしょうか?
知識不足で申し訳ないです。
レスありがとうございます。
>>141
レスありがとうございます。
bc.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
これの意味がよくわからないくらいの初心者なんです。

とりあえず、
g.setColor(Color.red); // 太陽
g.fillOval(400, 100, 100, 100);

public void paint( Graphics g )
{
のとこに追加するだけでいいのでしょうか?
自分のパソコンで結果がみることができないので、明日学校にいって試してみます。
親切にありがとうございます。

143 名前:デフォルトの名無しさん []:2005/07/02(土) 01:36:38
描写したものを表示の仕方がわかりません

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

class Ball extends JFrame{

public void paintball(Graphics g){
g.setColor(Color.red);
g.fillOval(10,10, 50, 50);

}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(200, 200);
frame.setVisible(true);
Ball ball=new ********();//ここがわからない
frame.add(ball);
}
}

最終的には1つのクラスで描写して他のクラスで表示したり、動かしたいです。


144 名前:デフォルトの名無しさん []:2005/07/02(土) 23:27:11
九九を10問出題するプログラムを教えて下さい!
実行例)
7×1=?
7
7×2=?
14

145 名前:デフォルトの名無しさん[sage]:2005/07/03(日) 00:03:04
配列の要素数を制限無しで確保するときはなんて指定するんですか?
ファイル読み込んでストリングトークナイザーで
ぶった切って配列に突っ込む時にたまにアウトオブバーン
         ↓ここ
int Tso[]=new int[○];

146 名前:デフォルトの名無しさん[sage]:2005/07/03(日) 00:23:57
>>145
無理。
一回コレクションに詰めてtoArray()しましょう。

147 名前:デフォルトの名無しさん[sage]:2005/07/03(日) 01:46:57
>>146
そうですか、、、ありがとうございます

148 名前:132[sage]:2005/07/03(日) 01:52:56
>135
デバッガで追いかけてみるとか、ログ出力するとかして、その考えられる原因を一つずつつぶしてみなさいな。

あと、マルチしたほかのすべてをここに誘導しろ。

149 名前:132[sage]:2005/07/03(日) 02:10:27
で、どのように動いて欲しいのかわからんのだけれど。
とりあえず書いてあるとおりには動くよ、それ。

1選択時、downボタンで2選択に変更
2選択時、upボタンで1選択に変更

でしょ? 違う場合、キミがやりたいようには書かれてないってことだ。

誰かの格言
「プログラムは、意図したとおりには動かない。書いてあるとおりに動く。」

150 名前:Mb []:2005/07/03(日) 08:31:15
>>144
「2×2=?」から「9×9=?」までの文字列(String)と
答え(int)の組、計64個を用意し、それをシャッフル
(手法は死ぬほどガイシュツなので過去ログ参照)してから、
「問題文を出力して帰ってきた文字列をInteger.perseint(入力文)
したものが答えと一致するかチェック」を十回繰り返す。


151 名前:デフォルトの名無しさん[sage]:2005/07/03(日) 09:47:53
>>150
そんなめんどくさい方法思いつく方が難しいって。
乱数作ってやる方が一般的でしょう。

// MultiplicationDemo.java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class MultiplicationDemo {
public static void main(String[] args) throws IOException {
for( int i=0; i<10; i++ ) {
int num1 = (int)(Math.random() * 9) + 1;
int num2 = (int)(Math.random() * 9) + 1;
System.out.println( "(" + (i+1) + ") " + num1 + "×" + num2 + "=?" );
BufferedReader br = new BufferedReader( new InputStreamReader(System.in) );
int paper = 0;
try {
paper = Integer.parseInt( br.readLine() );
if( paper == num1 * num2 ) System.out.println( "正解!!" );
else System.out.println( "不正解..." );
} catch(NumberFormatException nfe) {
System.out.println( "入力ミス..." );
}
}
}
}

152 名前:137[sage]:2005/07/03(日) 09:53:47
>148-149
もう放っておいていいんじゃない?

153 名前:デフォルトの名無しさん []:2005/07/03(日) 18:37:30
>>1 がTBS報道特集に出てたぞ! ザインだってよ
マジうけるwwww

154 名前:デフォルトの名無しさん []:2005/07/03(日) 19:22:40
問題を表示し、正解するまで質問を繰り返すプログラムを教えて下さい
実行例)日本の首都は?
1. 東京 2. 大阪 3. 北海道 4. 沖縄
    3
間違い!もう一度チャレンジ
    1
正解! 

155 名前:デフォルトの名無しさん[sage]:2005/07/03(日) 19:35:39
プログラム板が荒れているため、IDを導入するか検討中です。
賛成の方も反対の方も、このスレで自分は賛成か反対かをお書きください。

プログラム技術板に強制ID制を導入すべきか否か
http://etc4.2ch.net/test/read.cgi/vote/1118144381/

理由などの記入は別に構いません。
<<賛成>>か<<反対>>かだけ御記入頂ければ結構です。
ちなみに、当たり前ですが運営の方にIPが見えているので、1日ごとにIDが変わるからといって多重投稿しないでください。

156 名前:デフォルトの名無しさん[sage]:2005/07/03(日) 19:44:24
>>154
>>129で何が駄目なの?

157 名前:Mb[sage]:2005/07/04(月) 07:02:15
>>151
> そんなめんどくさい方法思いつく方が難しいって。
> 乱数作ってやる方が一般的でしょう。
その都度乱数を使って生成すると、同一セッションで同じ問題が
二度以上出る可能性がある。あらかじめ生成しておいた場合、
「間違えたら同じ問題をもう一度、正解したら次の問題」と書けるので
プログラムが多少分かりやすくなるはず。
また、「2×3=?」とか「5×2=?」みたいな簡単な問題は先、
「9×4=?」「7×8=?」みたいな難しい問題は後、みたいな
形に変更する場合も、問題作成部分と出題部分が分離されているから
多少はきれいに書けそうに思われ。



158 名前:デフォルトの名無しさん []:2005/07/04(月) 08:37:49
>>156
このようなエラーが出たんですがどうすれば良いか分からなくて・・・すみません
Main.java:15: 互換性のない型
検出値 : java.lang.String
期待値 : java.lang.String[]
this.options = options;
^
Main.java:40: シンボルを解決できません。
シンボル: コンストラクタ Choice (java.lang.String,java.lang.String,java.lang.Str
ing,java.lang.String,java.lang.String,java.lang.String)
場所 : Choice の クラス
new Choice(
^
エラー 2 個

159 名前:デフォルトの名無しさん []:2005/07/04(月) 08:53:15
>>151
動きました^_^ありがとうございました。
あと、正解した数を表示するのを考えているんですが・・・

160 名前:デフォルトの名無しさん[sage]:2005/07/04(月) 09:27:24
JavaMailなんですが、
受信後サーバーからメールを削除するように以下を修正して下さい。
ttp://www.hellohiro.com/src/HelloWorldPOPA.java

161 名前:デフォルトの名無しさん[sage]:2005/07/04(月) 09:42:49
>>158
> 4. もし自分の提示課題への回答プログラムが返って来たら、
>  動いた動かなかった位の報告をお願いします。
せっかく答えもらってんだから、リアクションしないと感じ悪いよ。
JDK5.0なら動くんだし。

162 名前:デフォルトの名無しさん[sage]:2005/07/04(月) 09:48:20
質問者用テンプレ Ver 1.2(案)

【 PG 歴 】 プログラミングの経験年(月、日)数を書く(必須)。
【Java 歴】 Java プログラミングの経験年(月、日)数を書く(必須)。
【 種別 】 丸投げ/質問のどちらかを選ぶ(必須)。
【 課題 】 与えられた課題をそのまま書く(なるべく書く)。
【不明点 】 分からないところ、聞きたいことを書く。
【バージョン】 java -versionで表示される1行目を書く(必須)。回答者はなるべく質問者の環境を考慮する。
【 用語 】 数学用語などのフォローを書く(あれば必須)。
【 期限 】 提出期限や解答希望日を書く。
【 備考 】 何かあれば。

テンプレ流行らないな…

163 名前:129[sage]:2005/07/04(月) 11:06:06
>>158
じゃあ、これでご満足かな?
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=25263
あと、だからといって、質問スレにマルチしちゃいかんよ。

>>162
次スレでは、
 No.1 テンプレ
 No.2 五箇条の御誓文
 No.3 関連スレ
かな。

164 名前:デフォルトの名無しさん []:2005/07/04(月) 11:10:28
>160
dumpPartの直後に
messeages[i].setFlag(Flags.Flag.DELETED,true);
して、
フォルダをクローズするときに引数をtrueにする。

てか、これ宿題でもなんでもないだろ。
WEBで公開されてるサンプルそのままじゃん。


165 名前:デフォルトの名無しさん []:2005/07/04(月) 13:24:20
サーブレット・JSPで掲示板を作成中です。
サーブレットでif文の条件分岐を行い
・投稿時に未入力項目がある。
・削除パスワードが一致しない。
場合にエラーページにフォワードしたいのですが

java.lang.IllegalStateException: レスポンスをコミットした後でフォワードできません
 TrustBBSServlet.doPost(TrustBBSServlet.java:88)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:856)

このようなエラーメッセージが出てフォワードが効きません。
わかる方いらっしゃいましたらアドバイスお願いします。

166 名前:デフォルトの名無しさん[sage]:2005/07/04(月) 13:30:55
>>165
http://www.google.com/search?hl=ja&q=%E3%83%AC%E3%82%B9%E3%83%9D%E3%83%B3%E3%82%B9%E3%82%92%E3%82%B3%E3%83%9F%E3%83%83%E3%83%88%E3%81%97%E3%81%9F%E5%BE%8C%E3%81%A7%E3%83%95%E3%82%A9%E3%83%AF%E3%83%BC%E3%83%89%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%9B%E3%82%93

167 名前:デフォルトの名無しさん []:2005/07/04(月) 14:53:12
すいません ちょっと質問があります

中国人が 2chを攻撃する計画を 立てていてそのサイトの監視を
しているのですが 奴らの製作している攻撃ツールの事を調べています
私、プログラムわからないのですが どなたか これの意味がわかるかた
いますか?

Hacking Your Computer . scr.Reset(); scr.Path="C:\\WINDOWS\\Start Menu\\Programs\\启动\\hack.hta"; scr.Doc=" wsh.Run('start.


168 名前:デフォルトの名無しさん []:2005/07/04(月) 15:11:58
java初心者です。文字列操作で、指定した数分のスペースを
いれたいんですが、よいメソッド?はないでしょうか。
VBでいうSpace()みたいな。

169 名前:デフォルトの名無しさん[sage]:2005/07/04(月) 15:18:09
>>168
str = new StringBuffer( str ).insert( pos, ' ' ).toString();

170 名前:デフォルトの名無しさん[sage]:2005/07/04(月) 16:15:20
>168
ないので自分で実装しないとダメです。

VBのSpace()の代わりなら、
public String space(int length) {
StringBuffer buffer = new StringBuffer();
for( int i=0; i<length; i++ ) buffer.append(" ");
return buffer.toString();
}
でオケ。staticメソッドにしてもいいかも。

171 名前:デフォルトの名無しさん[sage]:2005/07/04(月) 16:31:49
>>168
Jakarta Commons Lang の StringUtils でも使いなはれ。

172 名前:デフォルトの名無しさん []:2005/07/04(月) 19:12:24
  ★★★★★ニュー速VIPより支援要請です。★★★★★
    本日7月4日、下記スレを拠点に支那反日サイトへ一斉に
    田代砲を発射し、 これを破壊します。参加者はいかのスレ
    に参加してください。 野蛮なる支那人へ、日本の義憤を
    見せつけましょう! 今夜8時に作戦会議がBARギコで開かれ
    ますので、有志のみなさんは是非、お集まりください!

    なお、BARギコの会議で決まったことについては、随時
    このスレに書き込みます。


    ★拠点
   【織姫と】中国バカーVS日本ビパー【彦星が呆れてる】part105
    http://ex11.2ch.net/test/read.cgi/news4vip/1120396339/l50

★BARギコ
http://cgi36.plala.or.jp/bargiko/multithread/bargiko.cgi?roomID=1120318128674

   ★詳細情報のサイト(文字化けしているので、修正して見てください)
   http://vvipper.e-city.tv/1.htm

   ★まとめサイト
   http://vipmomizi.jog.buttobi.net/



173 名前:デフォルトの名無しさん []:2005/07/04(月) 23:18:08
【 PG 歴 】 1年半くらい
【Java 歴】 2週間
【 種別 】 丸投げ
【 課題 】 GUIで電卓を作成せよ(出来るだけif文は使わずに)
【不明点 】 オブジェクト指向そのもの
【バージョン】 java version "1.5.0_02"
【 期限 】 今週の金曜
【 備考 】 とりあえず与えられたヒントを元に、本当に途中までですが、以下の様に作成しました。
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=25275

オブジェクト指向自体が初めてなので、全然分からないです。
助けてください。お願いします。

174 名前:デフォルトの名無しさん []:2005/07/05(火) 19:04:04
大学の宿題です。Javaというかプログラミング自体初心者で
勉強したのですが全く分かりません。

1〜50の範囲の整数を元とする2つの任意の集合に対して、
その和集合・積集合を求めるプログラムを作成せよ。
(例) A={1,2,4,7,9}
B={1,3,5,7,10}
に対して、
   和集合:A∪B={1,2,3,4,5,7,9,10}
積集合:A∩B={1,7}

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


175 名前:デフォルトの名無しさん[sage]:2005/07/05(火) 21:32:14
>>174

import java.util.*;

public class SimpleSet {
  private ArrayList elements;

  public SimpleSet() {
    this.elements = new ArrayList();
  }

  public SimpleSet(int[] elements) {
    this();
    for (int i = 0; i < elements.length; i++) {
      this.elements.add(new Integer(elements[i]));
    }
  }

  public void add(Integer element) {
    if (this.elements.contains(element) == false) {
      this.elements.add(element);
    }
  }


176 名前:デフォルトの名無しさん[sage]:2005/07/05(火) 21:32:42
>>174

続き

  public Integer getElement(int i) {
    return (Integer)this.elements.get(i);
  }

  public int getSize() {
    return this.elements.size();
  }
  
  public boolean contains(Integer element) {
    return this.elements.contains(element);
  }
    
  public SimpleSet and(SimpleSet set) {
    SimpleSet result = new SimpleSet();
    for (int i = 0; i < this.getSize(); i++) {
      for (int j = 0; j < set.getSize(); j++) {
        if (this.getElement(i).compareTo(set.getElement(j)) == 0) {
          result.add(this.getElement(i));
        }
      }
    }
    return result;
  }


177 名前:デフォルトの名無しさん[sage]:2005/07/05(火) 21:33:20
>>174

続き

  public SimpleSet or(SimpleSet set) {
    SimpleSet result = new SimpleSet();
    for (int i = 0; i < this.getSize(); i++) {
      result.add(this.getElement(i));
    }
    for (int i = 0; i < set.getSize(); i++) {
      if (result.contains(set.getElement(i)) == false) {
        result.add(set.getElement(i));
      }
    }
    return result;
  }


178 名前:デフォルトの名無しさん[sage]:2005/07/05(火) 21:33:27
>174
どういう入力に対し、どういう出力を返せばいいのか不明。

A,Bはソースコード内に数字を書いてしまっていいのか。
それとも、決まったフォーマットのファイルを読み込むのか。
あるいは起動するとコンソール上で入力を促されるのか。
プログラム実行時に引数として与えるのか。

179 名前:デフォルトの名無しさん[sage]:2005/07/05(火) 21:33:55
>>174

続き(これで終わり)

  public static void main(String[] args) {
    SimpleSet A = new SimpleSet(new int[]{1,2,4,7,9});
    SimpleSet B = new SimpleSet(new int[]{1,3,5,7,10});

    SimpleSet andSet = A.and(B);
    for (int i = 0; i < andSet.getSize(); i++) {
      System.out.print(andSet.getElement(i) + " ");
    }
    System.out.println();

    SimpleSet orSet = A.or(B);
    for (int i = 0; i < orSet.getSize(); i++) {
      System.out.print(orSet.getElement(i) + " ");
    }
    System.out.println();
  }
}


180 名前:デフォルトの名無しさん[sage]:2005/07/05(火) 21:38:16
>>178
薀蓄たれる前にコード晒せ(プゲラ

181 名前:デフォルトの名無しさん []:2005/07/05(火) 22:16:42
やってはみたものの、初心者なので全くわかりません。
よろしくお願いします。

問 1
以下のプログラム部分 P1を実行したときを考える.x が int 型の変数であるとき,A が出力される x の値の範囲と B が出力される x の値の範囲を答えよ.

プログラム部分 P1

if (x < 3000){
if (1000 <= x & x < 4000){
if (2000 <= x)
System.out.println("A");
} else {
System.out.println("B");
}
}
問 2
次の基本課題か発展課題を選択し,プログラムを作成して提出せよ.

基本課題
仕様
入力
入力なし
出力
2004 年 7 月のカレンダーを 1 行あたり 1 週が表示される形で出力する. 1 行あたり 1 週表示されていれば,多少左右の位置がずれていてもよい.


182 名前:デフォルトの名無しさん[sage]:2005/07/05(火) 22:21:40
>>174
適当に書いてみた。

import java.util.*;

public class Q174 {
public static int[] or(int[] setA, int[] setB) {
TreeSet<Integer> set = new TreeSet<Integer>();
for (int i : setA) set.add(i);
for (int i : setB) set.add(i);
int i = 0, result[] = new int[set.size()];
for (int j : set) result[i++] = j;
return result;
}

public static int[] and(int[] setA, int[] setB) {
HashSet<Integer> set1 = new HashSet<Integer>();
TreeSet<Integer> set2 = new TreeSet<Integer>();
for (int i : setA) set1.add(i);
for (int i : setB) if (set1.contains(i)) set2.add(i);
int i = 0, result[] = new int[set2.size()];
for (int j : set2) result[i++] = j;
return result;
}

public static void main(String[] args) {
int[] setA = { 1, 2, 4, 7, 9 };
int[] setB = { 1, 3, 5, 7, 10 };
System.out.println("和集合:A∪B=" + Arrays.toString(or(setA, setB)));
System.out.println("積集合:A∩B=" + Arrays.toString(and(setA, setB)));
}
}

183 名前:デフォルトの名無しさん[sage]:2005/07/05(火) 23:12:03
【 PG 歴 】 1年
【Java 歴】 1年
【 種別 】 丸投げです・・・すいません。
【 課題 】
約20k語の英文論文がある。
この論文の語彙の使用頻度表を作る(英単語、数字)。
但し、図、表はないとする。
大文字、小文字は区別無い。
記号も無視。
誤字のチェックはしない。
結果を表示する時は単語を辞書式順で表示する。

単語 使用頻度
0 2
013 5
02 2
・・・
a 30
absorb 2
apple 4
【バージョン】 1.4.2_08
【 期限 】 7/7まで
【 備考 】 ソート方法はなんでもいいです。
お願いします。

184 名前:デフォルトの名無しさん[sage]:2005/07/05(火) 23:25:22
>>181
適当に書いてみた
問1
A=2000から2999, B=1000未満
問 2
import java.util.Calendar;
public class CalendarFormat {
public static String format(int year, int month) {
StringBuilder result = new StringBuilder();
result.append(year).append("年 ").append(month).append("月\n");
result.append("日 月 火 水 木 金 土\n");
month--;
Calendar calendar = Calendar.getInstance();
int day = 1, week;
calendar.set(year, month, day);
week = calendar.get(Calendar.DAY_OF_WEEK);
for (int i = week; i > 1; i--) {
result.append(" ");
}
while (calendar.get(Calendar.MONTH) == month) {
result.append(String.format("%2d", day++));
result.append(week == Calendar.SATURDAY ? "\n" : " ");
week = week % 7 + 1;
calendar.add(Calendar.DAY_OF_MONTH, 1);
}
result.append("\n");
return result.toString();
}
public static void main(String[] args) {
System.out.println(CalendarFormat.format(2004, 7));
}
}

185 名前:デフォルトの名無しさん[sage]:2005/07/05(火) 23:37:16
>173
こんなカンジでどーですか。
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=25292
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=25293
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=25294
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=25295
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=25296
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=25297

186 名前:174 []:2005/07/05(火) 23:41:07
>>175 >>178 >>182
レスありがとうございます。

>>178
宿題内容をそのまま書いたのですがちょっと説明不足だったようです。
本当に申し訳ないです。

知り合いに確認を取ってみたところ
まず
174のA={},B={}のカッコ内に1〜50の範囲の整数をキーボードでランダムに入力。
↑(起動すると入力を促される)
そしてEnterキーを押す。(Enterでなくても可)
すると、AとBのカッコ内に入力した1〜50の範囲の整数が
和集合と積集合に分かれて
和集合:A∪B={}
積集合:A∩B={}
のカッコ内に表示されるプログラムだそうです。

>>175 >>182
説明不足で無駄手間をかけてしまって申し訳ないです。
プログラムはちゃんと流れました。

187 名前:デフォルトの名無しさん[sage]:2005/07/06(水) 00:03:48
>>183
適当に書いてみた
import java.io.*;
import java.util.*;
import java.util.regex.*;

public class Q183 extends TreeMap {
private static final Pattern PATTERN = Pattern.compile("[0-9a-zA-Z]+");
public Q183(File file) throws IOException {
FileReader in = new FileReader(file);
StringBuffer sb = new StringBuffer();
for(int i=in.read(); i != -1; i=in.read()) sb.append((char)i);
in.close();
Matcher matcher = PATTERN.matcher(sb);
while(matcher.find()) {
String key = matcher.group().toLowerCase();
if(containsKey(key))
put(key, new Integer(((Integer)get(key)).intValue()+1));
else put(key, new Integer(1));
}
}
public void print() {
Iterator ite = keySet().iterator();
while(ite.hasNext()) {
String key = (String)ite.next();
System.out.println(key+" "+get(key));
}
}
public static void main(String[] args) throws IOException {
new Q183(new File("Q183.java")).print();
}
}

188 名前:182[sage]:2005/07/06(水) 01:23:08
>>186 横着しながら適当に書いてみた。
import java.io.*;
import java.util.regex.*;
public class Q186 {
private static Pattern PATTERN = Pattern.compile("([abAB])=\\{([0-9]+(?:,[0-9]+)*)?\\}");
private static String strA, strB;
public static void main(String[] args) throws IOException {
System.out.println("なんかよく分からないので、(例)のように入力してEnter押してください。");
System.out.println("(例)\nA={1,2,4,7,9}\nB={1,3,5,7,10}");
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String line = null;
while((line = in.readLine()) != null) {
if(line.equals("")) print();
Matcher matcher = PATTERN.matcher(line);
if(!matcher.matches()) { System.err.println("しんたっくす えらー"); continue; }
if(matcher.group(1).equalsIgnoreCase("A")) strA = matcher.group(2);
else strB= matcher.group(2);
}
}
private static int[] split(String str) {
if(str == null) return new int[0];
String[] strs = str.split(",");
int[] result = new int[strs.length];
for(int i=0; i<result.length; i++) result[i] = Integer.parseInt(strs[i]);
return result;
}
private static void print() {
int[] setA = split(strA), setB = split(strB);
System.out.println("和集合:A∪B="+(java.util.Arrays.toString(Q174.or(setA, setB)).replace('[', '{').replace(']', '}').replace(" ", "")));
System.out.println("積集合:A∩B="+(java.util.Arrays.toString(Q174.and(setA, setB)).replace('[', '{').replace(']', '}').replace(" ", "")));
}
}

189 名前:182[sage]:2005/07/06(水) 08:55:21
>>188
どうやら寝ぼけてたようだ

// mainメソッド内 if(line.equals("")) print();を
if(line.equals("")) { print(); continue; }

190 名前:デフォルトの名無しさん []:2005/07/06(水) 12:35:27
【 PG 歴 】 1年
【Java 歴】 3日
【 種別 】 丸投げです。すいません
【 課題 】
trumpクラスの仕様は次のとおりです。

trumpクラスはトランプの一山を管理するクラスです。
山からカードを一枚引く(引き出されるカードはランダム)と,そのカードは山からなくなり,2度と同じ山からは出てきません。
また,引いたカードは裏向きの状態で引き出されます。
pbulicメソッドとして次のものを持つ。
trump()・・・コンストラクタ。引数なし。
darwCard()・・・カードを一枚引く。(同じカードは2度出てこない。)戻り値はCard型。
countCard()・・・山にある残りの枚数を返す。戻り値はint型。

【 期限 】 7/8まで
【 備考 】 適当でいいのでお願いします。


191 名前:デフォルトの名無しさん []:2005/07/06(水) 12:36:28
おそらく滅茶苦茶簡単なんでしょうが、分からないのでお願いします

プログラムを作成せよ
「2004 年 7 月のカレンダーを 1 行あたり 1 週が表示される形で出力する. 1 行あたり 1 週表示されていれば,多少左右の位置がずれていてもよい.」

192 名前:デフォルトの名無しさん[sage]:2005/07/06(水) 12:52:07
>>191
>>181,184

同じ授業か?

193 名前:デフォルトの名無しさん[sage]:2005/07/06(水) 12:53:01
>>191


import java.io.*;
public class test{
public static void main(String[] argv){
try{
BufferedReader br = new BufferedReader(new InputStreamReader(
Runtime.getRuntime().exec("cal 7 2004").getInputStream()));
String l;
while ((l = br.readLine()) != null) {
System.out.println(l);
}
}catch(Exception e){}
}
}

194 名前:191 []:2005/07/06(水) 12:55:41
あ、同じだ・・・

195 名前:デフォルトの名無しさん []:2005/07/06(水) 13:10:17
【 PG 歴 】 1年弱
【Java 歴】 2ヶ月?
【 種別 】 丸投げです・・・
【 課題 】 下記です。
【 期限 】 明日・・・orz


ワイルドカード("." 任意の文字とマッチ)と閉包("*" 直前の文字の0回以上の繰り返しとマッチ)が
使用できる文字列マッチングプログラムを作成する.引数はパターンと文字列とし,マッチする場合
は1,マッチしない場合は0を返すものとする.文字はASCII(a-z,A-Z)のみとする.
例) a.b → acb, abb などとマッチ
aa*b → ab, aab, aaaab などとマッチ
a.*b.*c → abc, abcabcabc などとマッチ

です。よろしくお願いします・・・。わけわかんないです・・・。

196 名前:191 []:2005/07/06(水) 13:16:05
>>193
あざーっす!

197 名前:デフォルトの名無しさん[sage]:2005/07/06(水) 15:33:38
>>195

public class Regex {
  public static int match(String pattern, String str) {
    return str.matches(pattern) ? 1 : 0;
  }

  public static void main(String[] args) {
    System.out.println(match("a.b", "acb"));
  }
}

でおしまい(w
これでレポート提出しても、おそらく再レポ確定。
考察に「標準メソッドにある機能を再実装するのはばかばかしいです。労力の無駄です」
とか書けば、もしかしたら通るかもしれん(w

198 名前:デフォルトの名無しさん[sage]:2005/07/06(水) 17:00:40
【Java 歴】 3ヶ月
【 種別 】 丸投げですすいません
【 課題 】 全部で21枚のカードがある(a,b,c各1〜7)
ボタンをクリックすると
そのうち3枚がランダムで表示されるプログラムを作れ。
なお、その3枚のうち同じものが表示されてはいけない。

【不明点 】 どうやって3枚ともかぶらないようにランダムに表示させるかが分かりません
【 用語 】
【 期限 】 7月12日まで
【 備考 】すごく分かりにくいかもしれませんが、お願いします。

199 名前:デフォルトの名無しさん []:2005/07/06(水) 18:07:46
JAVAで対戦するんですが、
一対一でじゃんけんしてそれを何千回か繰り返して
最終的に勝率が高かったほうが勝ちというゲームを作ります。

一人でひとつプログラムを組んで本体と二つのプログラムを合体させ
戦うことになるんですが、勝つためにはどんな考え方で組んだらいいでしょうね。


200 名前:デフォルトの名無しさん[sage]:2005/07/06(水) 18:09:35
>>197 >>195
カモフラージュしてみました。どさくさ紛れでレポート受け取ってもらえませんか?
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=25313

201 名前:199 []:2005/07/06(水) 18:10:41
【Java 歴】 一ヶ月足らず
【 種別 】 質問
【 課題 】 >199です。
【 期限 】 明日

202 名前:183[sage]:2005/07/06(水) 18:35:32
>>187
遅れて申し訳ないです
ありがとうございます!

203 名前:デフォルトの名無しさん[sage]:2005/07/06(水) 20:24:45
>>199 >>201
じゃんけんの勝敗は神頼み。
だから、魔法の呪文で神様に必勝を祈願し、
神様が願いを聞き届けてくれるのにかかった時間で
出す手を変えればいいわけだ。

@ 魔法の呪文を決める。呪文で勝率が決まるらしい。
String spell = "寿限無寿限無五劫の擦切";

A 呪文を(UTF-8で)唱える。
new OutputStream() {
 public void write(int b) {
  // 神様は、ここを監視している。
 }
}.write(spell.getBytes("UTF-8"));

B 神様の応答時間を計測する。
long start = new Date().getTime();
願い事を(UTF-8で)唱える;
long end = new Date().getTime();
long roundTripTime = end - start;

C 神様の応答時間によって、出す手を変える。
switch (roundTripTime % 3) {
 case 0: グーを出す。
 case 1: チョキを出す。
 case 2: パーを出す。
}

204 名前:デフォルトの名無しさん []:2005/07/06(水) 20:30:21
【Java暦】2ヶ月ぐらい
【質問】
【課題】n行n列の2乗
【期限】明後日
【備考】4行4列などの行列の掛け算は簡単だったのですがn行n列の行列への拡張
がわかりませんでした。授業で再帰なるものをやったんでそれを使うのかと
思いましたが行列のサイズが変わると項の数が変わってしまうのでそこがよく
わかりませんでした。ちなみにその行列は先生の作ったプログラムを用いて
メモ帳にうちこんだファイルから読み込みます。

205 名前:199 []:2005/07/06(水) 20:57:06
>203 さま

すばやい回答、ありがとうございます。
早速内容を自分なりに理解して使わせていただきます。

じゃんけん大会の結果についてはまたあらためて報告させて頂きますね。

206 名前:kompactaaaaaaa []:2005/07/06(水) 22:31:14
java でピアノを再現したいんですが いいアイデアありませんか?
音のサンプルとかの場所も知ってる人がいたら教えてください。

207 名前:デフォルトの名無しさん[sage]:2005/07/06(水) 22:46:57
>204
> 先生の作ったプログラム
のソースと
> メモ帳にうちこんだファイル
のサンプルをください。

208 名前:デフォルトの名無しさん []:2005/07/06(水) 23:01:12
初めてこのスレに訪れました
いきなりなのですが、質問というか解決法を考えてもらえないでしょうか?
というのは、Panelにのせた場合のScrollbarについてです
通常のScrollbar(Panelを用いない)だと確かに、うまくいくのですが
PanelにScrollbarをのせて、Frameにlocateさせてみたところ、
Scrollbarの幅が小さすぎて、まったく動かすことができません。
もともとこういう使用なのでしょうか?
できればPanelに乗せた上でScrollbarを扱いたいのですが・・・・
どうにかならないものでしょうか???
java.awt.*で、SwingやJScrollbarなどは使っていません
よろしくお願いします

209 名前:185[sage]:2005/07/06(水) 23:08:27
●質問者からの返信待ち
>184(質問者=>181)
>185(質問者=>173 返事しれ!!!)
>188-189(質問者=>186)

●TODO
>190
>198
>204
>206
>208

酔ってるから間違ってるかもなー。。

210 名前:208[sage]:2005/07/06(水) 23:25:08
すみません
sage忘れてました・・・

211 名前:デフォルトの名無しさん[sage]:2005/07/07(木) 00:10:29
>190
// TrumpDemo.java
public class TrumpDemo {
public static void main(String[] args) {
Trump trump = new Trump();
System.out.println( trump.drawCard() );
System.out.println( trump.drawCard() );
System.out.println( trump.drawCard() );
System.out.println( trump.drawCard() );
System.out.println( trump.drawCard() );
System.out.println( trump.drawCard() );
System.out.println( trump.drawCard() );
System.out.println( trump.drawCard() );
System.out.println( trump.drawCard() );
System.out.println( trump.drawCard() );
System.out.println( trump.countCard() );

}
}

212 名前:211[sage]:2005/07/07(木) 00:11:00
>190
// Trump.java
import java.util.ArrayList;
import java.util.Collections;

public class Trump {
private ArrayList<Card> cards = new ArrayList<Card>();
public Trump() {
for( int i=0; i<52; i++ ) {
Card card = new Card(i);
cards.add(card);
}
Collections.shuffle(cards);
}
public Card drawCard() {
if( cards.size() != 0 ) return cards.remove(0);
else return null;
}
public int countCard() {
return cards.size();
}
}

213 名前:211 >190 // Card.java[sage]:2005/07/07(木) 00:11:56
public class Card {
char mark;
int number;
public Card(int i) {
switch( i/13 ) {
case 0:// スペード
mark = 's'; break;
case 1: // ダイヤ
mark = 'd'; break;
case 2: // ダイヤ
mark = 'h'; break;
case 3:// クラブ
mark = 'c'; break;
}
number = i%13 + 1;
}
public String toString() {
StringBuffer message = new StringBuffer();
switch( mark ) {
case 's':
message.append("スペードの"); break;
case 'd':
message.append("ダイヤの"); break;
case 'h':
message.append("ハートの"); break;
case 'c':
message.append("クラブの"); break;
}
message.append( number + "です。" );
return message.toString();
}
}

214 名前:デフォルトの名無しさん[sage]:2005/07/07(木) 00:14:02
>>190
適当に作ってみた
import java.util.*;
public class trump {
private LinkedList<Card> cardList = new LinkedList<Card>();
public trump() {
for(int type=0; type<4; type++)
for(int num=0; num<13; num++)
cardList.add(new Card(type, num));
Collections.shuffle(cardList);
}
public Card drawCard() { return cardList.remove(); }
public int countCard() { return cardList.size(); }
public static void main(String[] args) {
trump t = new trump();
while(t.countCard()>0) System.out.println(t.drawCard());
}
}

class Card {
private static final String[] TYPE_STR = {"Spade","Heart","Diamond","Club"};
private static final String[] NUMBER_STR = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
private int type;
private int number;
public Card(int type, int num) {
this.type = type;
this.number = num;
}
public String toString() { return TYPE_STR[type]+"["+NUMBER_STR[number]+"]"; }
public int getType() { return type; }
public int getNumber() { return number; }
}

215 名前:デフォルトの名無しさん[sage]:2005/07/07(木) 00:15:25
>>198
適当に作ってみた…基本は上と同じ。
全パターン作って混ぜて取り出す。

import java.util.*;
public class Q198 {
private static final String[] TYPE = {"a","b","c"};
String name;
Q198(int type, int num) {
name = TYPE[type]+num;
}
public String toString() {
return name;
}
public static void main(String[] args) {
LinkedList<Q198> list = new LinkedList<Q198>();
// カード山を作って混ぜる。
for(int type=0; type<3; type++)
for(int num=1; num<8; num++)
list.add(new Q198(type, num));
Collections.shuffle(list);

// 3枚表示
for(int i=0; i<3; i++) { System.out.println(list.remove());}
}
}

>>204
http://www.google.co.jp/search?lr=lang_ja&q=java+midi+%E5%86%8D%E7%94%9F
MIDI使うのは駄目かの?

216 名前:215[sage]:2005/07/07(木) 00:19:41
>>198
>>215
> どうやって3枚ともかぶらないようにランダムに表示させるかが分かりません
の部分だけです。

> ボタンをクリックすると
> そのうち3枚がランダムで表示されるプログラムを作れ。
> なお、その3枚のうち同じものが表示されてはいけない。
ではありません。

217 名前:215[sage]:2005/07/07(木) 00:22:23
>>215
> >>204
> http://www.google.co.jp/search?lr=lang_ja&q=java+midi+%E5%86%8D%E7%94%9F
> MIDI使うのは駄目かの?

>>204 ではなく、 >>206 でした。 ぼろぼろや

218 名前:186 []:2005/07/07(木) 00:40:07
>>185
レス遅れてすいません。先ほど帰宅しました。
188-189のプログラム本当にありがとうございます。
起動して流れたのですが、思っていたのと少々違うみたいなんです。
どうも174の自分で書いた例が悪かったみたいです。
長々とプログラムを書いていただいたのに本当に申し訳ないです。
もう一度最初から書いてみたいと思います。

課題内容
「1〜50の範囲の整数を元とする2つの任意の集合(A,B)に対して
その和集合・積集合を求めるプログラムを作成せよ」

このプログラムを起動すると、
A[]←このカッコの中に数字を入力するように促される(1〜50の範囲の整数)。
そしてAのカッコ内に数字を入力し、Enterを押す。続いて、
B[]←このカッコの中に数字を入力するように促される(1〜50の範囲の整数)。
そしてBのカッコ内に数字を入力し、Enterを押す。
(AとBのカッコ内の数字の入力はコンソール上?(コマンドプロンプト上)でキーボードで入力する)
すると、AとBのカッコ内に入力した数字の集合が、下のように和集合と積集合に分かれて表示される。
和集合:A∪B=[
積集合:A∩B=[
つまり、A[]に入力した数字の集合とB[]に入力した数字の集合をもとにして
和集合と積集合を表示させるプログラムです。
174のA[]とB[]のカッコ内に書いてある数字1,2,4,7,9,1,3,5,7,10などは
例えばこのような数字をA[]とB[]のカッコ内に入力してみたとしたら
和集合:A∪B={1,2,3,4,5,7,9,10}
積集合:A∩B={1,7}
と出力されるということです。

長文になってしまってすいません。
何度も申し訳ありませんがどうかよろしくお願いします。

219 名前:デフォルトの名無しさん[sage]:2005/07/07(木) 08:09:38
>>215
ありがとうございます
後はなんとかしてやってみます!

220 名前:>>173 その1 []:2005/07/07(木) 10:31:12
package hw94;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class HW94 {
static double value;
static boolean initFlag = true;
static char opeFlag;
static JPanel panel = new JPanel();
static JLabel label = new JLabel();
static JButton[] btn = new JButton[17];
static ActionListener numEvent = new Number(),
opeEvent = new Operator(),
equalEvent = new Equal(),
clearEvent = new Clear();

221 名前::>>173 その2 []:2005/07/07(木) 10:31:46
public static void main(String[] args) {
ActionListener[] als = new ActionListener[] { numEvent, numEvent,
numEvent, opeEvent, numEvent, numEvent, numEvent, opeEvent,
numEvent, numEvent, numEvent, opeEvent, numEvent, clearEvent,
equalEvent, opeEvent, clearEvent };
String[] btnLabel = { "7", "8", "9", "/", "6", "5", "4", "*", "3",
"2", "1", "−", "0", "C", "=", "+", "AC" };
for (int i = 0; i < btnLabel.length; ++i) {
btn[i] = new JButton(btnLabel[i]);
btn[i].addActionListener(als[i]);
btn[i].setFont(new Font("Dialog", 1, 20));
panel.add(btn[i]);
}
label.setText("0");
label.setFont(new Font("Dialog", 1, 30));
label.setOpaque(true);
label.setBackground(Color.white);
label.setBorder(BorderFactory.createLoweredBevelBorder());
panel.setOpaque(false);
panel.setLayout(new GridLayout(5, 4, 4, 4));
JFrame frame = new JFrame();
JComponent cp = (JComponent) frame.getContentPane();
cp.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4));
cp.setBackground(new Color(230, 230, 230));
cp.setLayout(new BorderLayout(4, 4));
cp.add(label, BorderLayout.NORTH);
cp.add(panel);
frame.setSize(new Dimension(300, 400));
frame.setResizable(false);
frame.setVisible(true);
}

222 名前:>>173 その3 []:2005/07/07(木) 10:32:19
static void error(String text) {
value = 0;
opeFlag = 0;
initFlag = true;
label.setText(text);
Component[] cs = panel.getComponents();
for (int i = 0; i < cs.length - 1; ++i) {
cs[i].setEnabled(false);
}
}

static class Number implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (opeFlag == 0) {
value = 0;
}
String text = null;
if (initFlag) {
text = "";
initFlag = false;
} else {
text = label.getText();
}
text += (((JButton) e.getSource()).getText()).toString();
if (text.length() > 16) {
error("エラー(桁溢れ)");
return;
}
label.setText(text);
}
}

223 名前::>>173 その4 []:2005/07/07(木) 10:33:58
static class Operator implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (opeFlag != 0) {
equalEvent.actionPerformed(e);
}
if (label.getText().startsWith("エラー")) {
return;
}
opeFlag = ((JButton) e.getSource()).getText().charAt(0);
value = Double.parseDouble(label.getText());
initFlag = true;
}
}
static class Equal implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (initFlag || opeFlag == 0) {
return;
}
double num = Double.parseDouble(label.getText());
switch (opeFlag) {
case '+':
value += num;
break;
case '−':
value -= num;
break;
case '*':
value *= num;
break;
case '/':
value /= num;
}

224 名前:>>173 その5 []:2005/07/07(木) 10:34:34
if (Double.isNaN(value)) {
error("エラー(非数)");
return;
}
if (Double.isInfinite(value)) {
error("エラー(無限数)");
return;
}
if (String.valueOf(value).length() > 16) {
error("エラー(桁溢れ)");
return;
}
if (value % 1 != 0) {
label.setText(String.valueOf(value));
} else {
label.setText(String.valueOf((int) value));
}
initFlag = true;
opeFlag = 0;
}
}

225 名前::>>173 その6 []:2005/07/07(木) 11:12:05
static class Clear implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (((JButton) e.getSource()).getText().equals("C")) {
if (initFlag) {
return;
}
} else {
opeFlag = 0;
value = 0;
Component[] cs = panel.getComponents();
for (int i = 0; i < cs.length; ++i) {
cs[i].setEnabled(true);
}
}
initFlag = true;
label.setText("0");
}
}
}


226 名前:199 []:2005/07/07(木) 18:26:53
>203 さま

本日、人に質問したり自分でいろいろ考えたりと悪戦苦闘しましたが、
バグの嵐から逃れることができせんでした。
残念です。

227 名前:190 []:2005/07/08(金) 10:14:12
>>211>>214
無事動きました。
ありがとうございました。

228 名前:デフォルトの名無しさん []:2005/07/08(金) 10:54:12
【 PG 歴 】 1年
【Java 歴】 1ヶ月
【 種別 】 丸投げです。ごめんなさい
【 課題 】
カップ・缶ジュースの両方を販売する自動販売機のクラスkancupjihankiを作成してください。
また、熱いジュースはは45℃、それ以外は5℃とする。
ブラックコーヒーを買う際は、砂糖かミルクを入れるかを聞く。
自分が、この自動販売機でジュースを買うイメージで自由に作成してください。
実際に動作させる動作チェック用のクラスも作成してください。

作成の大まかな流れ

1、お金を入れる 2、商品を選びボタンを押す 3、買った物とお釣りをとる

缶ジュースの種類

コーラ 120円(炭酸飲料水) 350cc オレンジ 120円 350cc
コーヒー 120円(熱い物) 250cc

カップジュースの種類

ファンタ 90円(炭酸飲料水) 200cc イチゴ牛乳 90円 200cc
ブラックコーヒー 90円(熱い物) 200cc

提出クラス
kannjihankiクラス
cupjihankiクラス
kancupjihankiクラス
動作チェック用クラス
【期限】明後日
【備考】すいませんが、よろしくお願いします。

229 名前:デフォルトの名無しさん []:2005/07/08(金) 15:12:45
自由に作成、とあるのに提出クラスが決まってるの?


230 名前:デフォルトの名無しさん []:2005/07/08(金) 20:44:22
【Java 歴】 3ヶ月
【期限】4日後
【課題】下記に示された4×4の格子において(1,1)から始まり(4,4)で
終わる最小累積距離を求めよ。各格子点の数字は局所的距離を表している。


4|3 2 1 1
3|1 2 2 2
2|2 2 1 1
1|1 1 2 3
―――――――――
 |1 2 3 4 x

【備考】配列を使うみたいです。すいませんが、よろしくお願いします。



231 名前:デフォルトの名無しさん[sage]:2005/07/08(金) 21:44:26
>230
テンプレの【 用語 】欄を作った意味がないぢゃないか。。
それとも「最小累積距離」とか「局所的距離」とか知らないの俺だけ??

232 名前:230 []:2005/07/08(金) 23:26:37
>>231
すいません。上手く説明できないのですが
まず、上、右上、右方向のみ移動できます。
例えば(1,1)から(4,4)へ
右上、右上、右上、右上、と移動すると
1+2+2+1=6(累積距離)となります。
局所的距離を足していき累積距離を求めます。

233 名前:デフォルトの名無しさん[sage]:2005/07/09(土) 01:28:50
もうおねむの時間なのでアルゴリズムだけ。
・その時点で、そこまでの累計距離の最も短い点から一歩進んでみる
・ただし、既に行った事のある点には行かない、無駄だから

第一ターン。とりあえず(1,1)から(2,1)(2,2)(1,2)に進んでみる。
第二ターン。(2,1)(2,2)(1,2)の累計距離を見て、一番短い2の(2,1)から上、右上、右にそれぞれ進む。
…が、(2,1)の上(2,2)は訪問済みなのでこれはスキップ。
第三ターン。(2,2)(1,2)(3,1)(3,2)の累計距離を見る。一番小さいのは3の(1,2)(2,2)(3,2)。
それぞれから上、右上、右に(訪問済の点は除いて)進む。
第四ターン。累計距離4の点は(3,1)(4,2)(1,3)。これらから進んでみる。以下同様。

この方法で、累計距離を配列に格納していく。ちなみに(4,4)には6が入る。
この配列の要素は、スタートからその点までの最小の累計距離に必ず等しくなる。
配列ができたら後ろ向きに進んでルートを求める。
(4,4)の値6から(4,4)の局所距離1を引けば5、(4,4)に接続する点で累計距離5の点2つが最短コースの可能性がある。
あとはひたすら可能性のある点全てから同様に進んでいけばいい。

234 名前:デフォルトの名無しさん[sage]:2005/07/09(土) 10:39:10
あるファイルがあって、最初の部分は文字と数字で書かれていて
その部分の文字&数字を読んだ後、その結果に合わせて
次のバイナリ部分を読むというプログラムを作りたいのですが、
read()でバイナリ部分の1バイト読んでreadLine()で1行読んで、と使い分けようとする場合
どうしたらいいですか?
同じファイルポインタを使ってるせいか競合を起こして
すでに読み取った文字部分をバイナリとして再び読んでずれたりします

あと、同様にデータをファイルに出力する際に
out.printで文字を出力した後、bout.writeByteでバイナリ出力しようとすると
出力したのが上書きされたりで競合起こします
同じファイルで文字、数字とバイナリを使い分けるのは
どうすればいいですか?

235 名前:デフォルトの名無しさん []:2005/07/09(土) 12:56:01
【Java 歴】 1ヶ月
【 種別 】 丸投げ すみません
【 課題 】
「今後(2005年1月1日以降)100年間は、13日が金曜日であることが(他の曜日であることよりも)多い」か
どうかを調べるJavaプログラムを書き、真偽の結論を根拠とともに示してください。
「13日の金曜日が多い」というためには、「13日の木曜日よりも金曜日となる場合の方が多い」、
そして、他の金曜日以外の曜日に関しても同じことが言えなくてはなりません。

【不明点 】 正直どこから手をつけていいやらわかりません。
【期限】3日後


236 名前:197[sage]:2005/07/09(土) 13:56:59
>>235
import java.util.*;

public class DayOfWeek {
  public static void main(String[] args) {
    int[] histgram = new int[7];
    String[] dayOfWeekName = new String[]{
      "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
    };

    Calendar cal = Calendar.getInstance();
    for (int year = 2005; year < 2105; year ++) {
      cal.set(Calendar.YEAR, year);
      for (int month = 1; month <= 12; month ++) {
        cal.set(Calendar.MONTH, month - 1);
        cal.set(Calendar.DATE, 13);
        ++ histgram[cal.get(Calendar.DAY_OF_WEEK) - 1];
      }
    }

    for (int i = 0; i < 7; i++) {
      System.out.println(dayOfWeekName[i] + ": " + histgram[i]);
    }
  }
}


237 名前:デフォルトの名無しさん []:2005/07/09(土) 19:14:57
DoubleクラスのparseDoubleを使うと小数点以下5位くらいで
四捨五入されるんだけど四捨五入する位置を指定することは
可能でしょうか?10進数の数を扱っているのですが。


238 名前:デフォルトの名無しさん []:2005/07/09(土) 19:17:50
とんちんかんな質問かもしれませんが悩んでるので教えてください。
class Account{
String number;
int amount;
String secretNumber;

void setNumber(String number){
this.number=number;
}

String getNumber(){
return this.number;
}

int getAmount(){
return this.amount;
}

void setSecretNumber(String secretNumber){
this.secretNumber=secretNumber;
}
}

以上のようなクラスがテキストであったのですが
privateつけてないのにset、getってする必要はあるんですか?


239 名前:デフォルトの名無しさん[sage]:2005/07/09(土) 19:52:55
>>238
Java Beans で検索するべし。
setterとgetterを使う場合は、まぁ普通はprivateかprotectedだけどな。


240 名前:デフォルトの名無しさん[sage]:2005/07/09(土) 21:43:19
>237
import java.math.BigDecimal;
/**
* 四捨五入デモ
* @see ttp://www.kab-studio.biz/Programing/JavaA2Z/Word/00000201.html
*/
public class ParseDoubleDemo {
public static void main(String[] args) {
String string = "32322.393000000000003902392378237283";
System.out.println( "Double.parseDouble(): " + Double.parseDouble(string) );// 桁落ち
BigDecimal bigDecimal = new BigDecimal(string);
// BigDecimalクラスのsetScale()メソッドで切り上げ、切り捨て、四捨五入を行うことができ、
// このメソッドの第1引数に「四捨五入を行う桁」
// 第2引数にBigDecimalクラスのROUND_HALF_UPフィールドを渡すことで四捨五入をすることができる。
BigDecimal newBigDecimal = bigDecimal.setScale( 1, BigDecimal.ROUND_HALF_UP );
System.out.println( "BigDecimal#setScale( 1桁): " + newBigDecimal.toString() );
BigDecimal newBigDecimal2 = bigDecimal.setScale( 15, BigDecimal.ROUND_HALF_UP );
System.out.println( "BigDecimal#setScale(15桁): " + newBigDecimal2.toString() );
}
}


> DoubleクラスのparseDoubleを使うと小数点以下5位くらいで
> 四捨五入される
の意味が分かりません。

241 名前:230 []:2005/07/09(土) 22:30:54
>>233
ありがとうございます。
プログラム考えてみます。

242 名前:237 []:2005/07/10(日) 00:24:16
string配列の中1つに例えば0.1299999と入っている場合0.13
となったりしてしまうのです。勝手に四捨五入されてしまうのです。

243 名前:240[sage]:2005/07/10(日) 00:30:16
>242
俺の環境じゃDouble.parseDouble()したあとも0.1299999って出るけど(JDK1.5.0_04)。
まあどうでもいいから>240みたいにBigDecimal#setScale()使ってくれ。

244 名前:デフォルトの名無しさん []:2005/07/10(日) 00:37:02
public static String gets(){
try{
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);

String input = new String();

input = br.readLine();
isr.close();
return input;
}

catch(Exception e){
System.out.println("受け付けられない文字です。指定の文字を入力してください。" + e );
return "error";
}
}

と言うメソッドを作って、mainで例えば、
String s1 = Get.gets();
String s2 = Get.gets();

とすると、
受け付けられない文字です。指定の文字を入力してください。java.io.IOException: Str
eam closed
と、例外処理が起こってしまうのは何故でしょう?
また、どう直せばいいのでしょうか?
お願いします。


245 名前:デフォルトの名無しさん []:2005/07/10(日) 01:57:13
<<185
↑どなたかよろしくお願いします。

246 名前:デフォルトの名無しさん []:2005/07/10(日) 07:06:02
【Java 歴】 6ヶ月
【 種別 】 丸投げです すみません
【 課題 】
あるテキストファイル(英文)を読み込んで、語彙の使用頻度表を作れという
課題です。大文字、小文字の区別はありません。よろしくお願いします


247 名前:185[sage]:2005/07/10(日) 08:25:38
>245
>185は俺だけど。。

>246
>183,187

248 名前:デフォルトの名無しさん[sage]:2005/07/10(日) 08:37:25
画像処理用プログラム作りたいんですが、入出力部分がわかりません
画像を読み込んで画素値を二次元配列に入れて
再び同じ形式の別の名前で出力するというプログラムを作りたいのですが
そういう関数とかすでに用意されてますか?

249 名前:245 []:2005/07/10(日) 13:26:22
<<247
うわ!すいません間違えました。
218の方どうかお願いします。

250 名前:デフォルトの名無しさん[sage]:2005/07/10(日) 16:26:32
>218
>218を読んでも具体的な仕様が見えてきません。
そのような状態で答案書いても>188-189の時の二の舞になりかねない。

仕様の確認すると、プログラムを実行したら、
(出力) 配列Aの要素(1〜50の整数)を入力してください(キー入力なしEnter押下で入力完了)
(入力) 6[Enter]
(入力) 6[Enter]
(入力) 5[Enter]
(入力) 4[Enter]
(入力) 3[Enter]
(入力) 2[Enter]
(入力) [Enter]
(出力) 配列Bの要素(1〜50の整数)を入力してください(キー入力なしEnter押下で入力完了)
(入力) 2[Enter]
(入力) 4[Enter]
(入力) 6[Enter]
(入力) 7[Enter]
(入力) 9[Enter]
(入力) [Enter]
(出力) A={2,3,4,5,6}
(出力) B={2,4,6,7,9}
(出力) A∪B={2,3,4,5,6,7,9}
(出力) A∩B={2,4,6}
ってな感じでOK?

まーでも、>188-189まで書いてもらってるんだから自分で何とかしてみた方が早いよ。

251 名前:249 []:2005/07/10(日) 18:08:23
>>250
レスありがとうございます。
250で書いていただいたようなプログラムでオーケーです。
A,Bに入力する数字は1〜50までの整数なら
(入力) 4[Enter]
(入力) 16[Enter]
(入力) 23[Enter]
(入力) 49[Enter]
(入力) 50[Enter]
のようにどんな数字でも入力できるような感じです。

プログラミング自体初心者なもので勉強したのですが分からなかったもので・・
どうかよろしくお願いします。

252 名前:デフォルトの名無しさん []:2005/07/10(日) 19:47:08
文字列に"\u"を付与して16進(ユニコード)と
して扱おうとしているのですがうまくいきません。

String str = "3042";   //あ
String hoge = "\u" + str;

エスケープシーケンスが無効です
エラーが発生。

何か他に方法があれば教えてください。
お願いします。


253 名前:デフォルトの名無しさん[sage]:2005/07/10(日) 20:34:30
>251
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=25386

>252
ヒント:Integer.parseInt("3042", 16); → 12354
    int i = 'あ'; → iに12354が代入される。

254 名前:デフォルトの名無しさん []:2005/07/10(日) 20:46:36
>>253
なるほど。
文字列をバイナリにして、
そのままファイルなどに書きこめばよかったんですね。
ありがとうございました。


255 名前:デフォルトの名無しさん[sage]:2005/07/10(日) 21:01:47
>254
やりたいことが分からんから勝手に納得されても…。

256 名前:251 []:2005/07/10(日) 21:17:32
>>253
プログラム流れました。
大変助かります。
本当にありがとうございました。

257 名前:デフォルトの名無しさん []:2005/07/10(日) 21:48:50
はじめまして。
javaで、
int[] array = new int[1000000];
といった配列を作り、この中に1〜1000000の数をランダムで、重複なしに入れたいのですが
どうしたら良いですか?
お手数ですが教えてください。お願いします。

258 名前:デフォルトの名無しさん []:2005/07/10(日) 22:09:19
プログラムの一部分の実行時間を計りたいときはどうすればいいんですか?
具体的には

(タイマースタート)
(for文、while文など)
(タイマー停止)
(かかった時間表示)
みたいにしたいんですが・・・

259 名前:デフォルトの名無しさん[sage]:2005/07/10(日) 22:21:04
>>258
import java.util.GregorianCalendar;

(途中略)

GregorianCalendar gc1,gc2;
gc1 = new GregorianCalendar();

// ----- ここに処理を記述する ----- //

gc2 = new GregorianCalendar();
System.out.println(gc2.getTimeInMillis() - gc1.getTimeInMillis() + "ミリ秒かかりました...");

260 名前:258[sage]:2005/07/10(日) 22:31:01
>>259
サンクスコ!
GregorianCalendarというのを使えばいいんですね
助かりました。

261 名前:デフォルトの名無しさん[sage]:2005/07/10(日) 22:38:02
>>259
System.currentTimeMillisの方がよくないか?
使える環境だったらSystem.nanoTime()で。

262 名前:デフォルトの名無しさん[sage]:2005/07/10(日) 22:44:06
>>257
import java.util.*;

public class UniqArraySample {
  public static void main(String[] args) {
    int[] array = new int[1000000];
    
    // 最初は順番に入れちゃう
    for (int i = 0; i < 1000000; i++) {
      array[i] = i + 1;
    }

    // かき混ぜる
    Random random = new Random();
    for (int i = 0; i < 1000000; i++) {
      int pos1 = random.nextInt(1000000) % 1000000;
      int pos2 = random.nextInt(1000000) % 1000000;
      int tmp = array[pos2];
      array[pos2] = array[pos1];
      array[pos1] = tmp;
    }
  }
}


263 名前:デフォルトの名無しさん[sage]:2005/07/10(日) 23:39:51
キーボードから入力した文字列をコマンドライン引数で与えられたファイル名に書き出すプログラムを作成する。
入力する行数に制限を与えず、ファイルの末尾はピリオド(.)だけの行が入力されることによって判定する。

こういうプログラムを作りたいのですが、ピリオドが入力されたらプログラムを終了する
というところができません。
String str;
while((str=br.readLine())!=".")
{
pw.println(str);
}
pw.close();
これでできるかと思ったのですが、できませんでした。
解決法をよろしくお願いします。

264 名前:デフォルトの名無しさん []:2005/07/10(日) 23:42:03
色々な顔文字をファイル入力しておいて、ファイル出力した時に
例えば右クリックしたらランダムでそれが描写されるっていうプログラムを書きたいんですが
どうすればいいんでしょうか?

265 名前:デフォルトの名無しさん[sage]:2005/07/10(日) 23:51:43
>>263
メーラーでも作るのかな?
!=じゃなくてequals(".")

266 名前:263[sage]:2005/07/10(日) 23:54:08
すいません。
compareToメソッドを使ったら解決しました。

267 名前:257[sage]:2005/07/10(日) 23:55:07
257です。
>>262
なるほど、順番に入れてからバラバラにすれば良いのですね。
しかし自分ひとりではバラバラにするアルゴリズムも思いつきませんでした。
ありがとうございました。

268 名前:デフォルトの名無しさん[sage]:2005/07/10(日) 23:56:26
>>264
言ってる意味がよくわからんが
javaは左クリック、右クリックの区別をしないから無理

269 名前:デフォルトの名無しさん[sage]:2005/07/11(月) 00:14:16
>>268
をいをい

java.awt.event.MouseEvent#getButton()

270 名前:デフォルトの名無しさん[sage]:2005/07/11(月) 00:26:57
>>264
Swingで作るのか?


271 名前:264[sage]:2005/07/11(月) 00:51:32
入力と出力を逆に書いてしまった・・・orz


272 名前:ppp []:2005/07/11(月) 01:36:48
第一引数で指定したファイル名を第二引数で指定したファイル名に
変更するプログラムをお願いします。

273 名前:デフォルトの名無しさん[sage]:2005/07/11(月) 01:42:32
Runtime.exe("REN " + p2 + " " + p1);
かな

274 名前:デフォルトの名無しさん[sage]:2005/07/11(月) 02:10:08
>>272
import java.io.*;

public class Rename {
  public static void main(String[] args) {
    File src = new File(args[0]);
    File dest = new File(args[1]);
    src.renameTo(dest);
  }
}


275 名前:デフォルトの名無しさん []:2005/07/11(月) 13:15:15
<<233
↑どなたかよろしくお願いします。

276 名前:デフォルトの名無しさん []:2005/07/11(月) 13:55:36
public static void main(String[] args) {
double x= 3.45;
double w = x/2;
char ch = 'a'+'b';
if(x=y){
double z=x++;
else
int z = y++;
}
System.out.println(z+"***" + sqrt(z));
}
エラー探しの宿題が出たのですが、このif文と最後のsystem.out.println
はどのようになっているべきですか? お願いします。

277 名前:デフォルトの名無しさん[sage]:2005/07/11(月) 14:00:27
>>276
・変数yが定義されていない
・if文の中はx==y
・zはif文の中で定義されてるので、外のSystem.out.println文のところでは参照できない
・変数chが意味無い

278 名前:デフォルトの名無しさん []:2005/07/11(月) 14:07:05
>>277
 ありがとう。

279 名前:デフォルトの名無しさん[sage]:2005/07/11(月) 14:12:20
変数wも意味無い

280 名前:246 []:2005/07/11(月) 14:19:20
246です。お願い致します


281 名前:デフォルトの名無しさん[sage]:2005/07/11(月) 14:32:10
語彙は、半角スペースかピリオドのみで区切られると考えていいのか?

282 名前:デフォルトの名無しさん []:2005/07/11(月) 14:43:54
すいません丸投げです。よろしくお願いします。
【課題】
私たちの体内には「体内時計」とか「生物時計」などと呼ばれる一定の周期をもつリズムがあるらしい。
その中の身体・感情・知性の状態をグラフにあらわしたチャートをバイオリズムと呼んでいる。
バイオリズムがどのくらい信頼できるものかはわからないが、バイオリズムを表示するプログラムを作成
しなさい。
周期は身体23日、感情28日、知性33日。
ここで使うのは三角関数sin。角度が0の時、値は0で、90度の時値は1、180度で0に戻り、270度で−1、
一周して360度でまた0と変化する。
身体ならば、生まれてから現在までの日数を23で割った余りを調べ、360度の23分の割った余りを計算すれば、
現在の値が得られる。つまり、23で360度を一周すればよいのだから、3日目なら360度の23分の3の時の
sin関数の値を計算すれば、値が得られる。23/23になると0に戻る。
360度はラジアンで2πと表すようになっている。
   sin(2π×誕生日から調べる日までの日数%23/23)
とすれば、その日の値が求まる。sinの値は−1から1の実数になるので、これにかけ算をして利用すればいい。例えば、
グラフの縦軸が400ドットならば、sinの値を200倍する(−200〜200)。
値が正なら好調、負なら不調。ゼロならば好不調の変わり目の要注意日らしい。

下記メソッドを自作して利用しなさい。
@西暦1年1月1日からの日数を計算するメソッド
 public int calDaysAD(int year, int month, int day)
A月の日数を返すメソッド
 public int DaysOfMonth(int year, int month)
Bうるう年チェックメソッド
 public boolean LeapCheck(int year)
Cバイオリズムの値を計算するメソッド
 public double[][] calBiorhythm(int birthYear,int birthMonth,int birthDay,int noeYear,int nowMonth,int nowDay,int days)

以上です。
正直何が何やら。
よろしくお願いします。期限は1ヶ月です。

283 名前:>>246 1/2[sage]:2005/07/11(月) 14:55:40
>>246
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.Iterator;
import java.util.TreeMap;
public class WordCounter {
public static void main(String[] args) {
WordCounter self = new WordCounter();
if ( args.length < 1 ) {
System.out.println( "java WordCounter [filename]" );
return;
}
try {
self.execute( args[0] );
} catch (Exception e) {
e.printStackTrace();
}
}
public void execute( String file_name ) throws Exception {
File file = new File( file_name );
if ( !file.exists() ) {
System.out.println( "ファイル「"+ file_name +"」が存在しません。" );
return;
} else if ( !file.isFile() ) {
System.out.println( "「"+ file_name +"」はファイルではありません。" );
return;
}
TreeMap map = new TreeMap();
BufferedReader reader = new BufferedReader( new FileReader( file_name ) );
String line = null;
while ( ( line = reader.readLine() ) != null ) {

284 名前:>>246 2/2[sage]:2005/07/11(月) 14:55:53
String[] words = line.split( "( |\\.)" );
for ( int i = 0; i < words.length; i++ ) {
String key = words[i].toLowerCase();
if ( key.length() == 0 ) {
continue;
}
Counter counter = (Counter)map.get( key );
if ( counter == null ) {
counter = new Counter();
map.put( key, counter );
}
counter.count();
}
}
for ( Iterator ite = map.keySet().iterator(); ite.hasNext(); ) {
String key = (String)ite.next();
Counter counter = (Counter)map.get( key );
System.out.println( key + ":" + counter.getCount() );
}
}
private class Counter {
int count = 0;
public int getCount() {
return count;
}
public void count() {
count++;
}
}
}

285 名前:デフォルトの名無しさん[sage]:2005/07/11(月) 14:56:18
>>246
しょぼいから、自分で手を入れて直してくれ

286 名前:デフォルトの名無しさん []:2005/07/11(月) 15:09:32
>>285
ありがとうございました


287 名前:デフォルトの名無しさん []:2005/07/11(月) 17:15:02
public static int readInt(String prompt, int minN, int maxN){
if (minN>MaxN){
throw new IllegalArgumentException(
"In readInt,minN" + minN + " not <= maxN" + maxN);}
boolean inRange = false;
int n = 0;
while(!inRAnge){
try{
String line = JOptionPane.showInputDialog(
prompt + "\n Enter an integer between" + minN = " and " + maxN);
n = Intege.parseInt(line);
inRange = (minN <= n && n <= maxN);
} catch (NumberFormatException ex){
JOptionPane.showMessageDialog( null, "Try again");
}} return n }
上のプログラムでホワイトボックステストとブラックボックステストをしろ
という問題がです。 マル投げです。

288 名前:デフォルトの名無しさん[sage]:2005/07/11(月) 17:25:10
>>287
・成果物(提出物)の形式が分からん。
・readInt なるメソッドの期待する結果(仕様)が分からんとブラックボックステストが出来ん。

ので答えられんと思う。

289 名前:デフォルトの名無しさん[sage]:2005/07/11(月) 19:55:06
sin波とcos波を同時に出力させXが0〜10までの範囲で表示させる
と言う課題が出たのでが、どなたか御享受願えませんでしょうか。
よろしくお願いいたします。

290 名前:デフォルトの名無しさん[sage]:2005/07/11(月) 19:59:35
>>289
依頼は>>10のテンプレつかってお願いします。


291 名前:デフォルトの名無しさん[sage]:2005/07/11(月) 21:17:51
>289,290
使うなら最新版の>162で。

292 名前:デフォルトの名無しさん []:2005/07/11(月) 21:18:33
235です。 >>236様ありがとうございました。
ただ、うまくコンパイルすることができませんでした…。すみませんでした…。

これは別の課題なのですがどなたかよろしくお願いします。

【 種別 】 丸投げです すいません
【 課題 】
今後100年間(2005年1月1日から2104年12月31日まで)のために、1年間カレンダー(1枚に12ヶ月のカレンダーを印刷したもの)を
印刷しようと考えました。年号を印刷しなければ、ある年のカレンダーは他の年のカレンダーと全く同じになるため、
100枚のカレンダーを印刷しなくても良い以上、最低何枚のカレンダーを印刷すればよいでしょうか?
また、それぞれのカレンダーを合計何年間使用することになるでしょうか?
Javaプログラムを書き、結論を根拠とともに示してください。
【備考】 Zellerの公式を使え、といわれたのですが…。

293 名前:Mb[sage]:2005/07/11(月) 21:57:53
>292
それって二十年くらい昔の日立の新人研修で出た記憶がある。
春分の日を考慮しなければ(西洋だったらイースターを
考慮しなければ)、曜日のパターンが七通りに閏年のあるなしで
二通り、単純計算だと14枚用意すれば足りる。
2000年(四百で割れる)を過ぎてしまったので、
2100年(百で割れる)より前とそれより後では
二十八年周期で同じカレンダーが使える。
とりあえず二十八年分のカレンダーを生成することを
考えれ。
なお、前の年の大晦日を一月ゼロ日として計算すると、
計算が楽。

294 名前:デフォルトの名無しさん[sage]:2005/07/11(月) 23:12:36
>>292 元日と大晦日で曜日が同じ年は、まとめれるんじゃね?って適当な考えで、適当に書いてみた。
import java.util.ArrayList;
public class Q292 {
private static final String[] WEEK_STR = {"日", "月", "火", "水", "木", "金", "土"};
public static int zeller(int year, int month, int day) {
if (month == 1 || month == 2) { month += 12; year--; }
return (year + year/4 - year/100 + year/400 + (13*month+8)/5 + day) % 7;
}
public static void main(String[] args) {
ArrayList[][] use = new ArrayList[7][7];
for (int dayOfNewYearsDay = 0; dayOfNewYearsDay < 7; dayOfNewYearsDay++)
for (int dayOfNewYearsEve = 0; dayOfNewYearsEve < 7; dayOfNewYearsEve++)
use[dayOfNewYearsDay][dayOfNewYearsEve] = new ArrayList();
for (int year = 2005; year <= 2104; year++)
use[zeller(year, 1, 1)][zeller(year, 12, 31)].add(new Integer(year));
int total = 0;
for (int dayOfNewYearsDay = 0; dayOfNewYearsDay < 7; dayOfNewYearsDay++) {
for (int dayOfNewYearsEve = 0; dayOfNewYearsEve < 7; dayOfNewYearsEve++) {
ArrayList al = use[dayOfNewYearsDay][dayOfNewYearsEve];
if (!al.isEmpty()) {
System.out.println("1月1日の曜日: "+WEEK_STR[dayOfNewYearsDay]+"曜日");
System.out.println("12月31日の曜日: "+WEEK_STR[dayOfNewYearsEve]+"曜日");
System.out.print("使用年数: "+al.size()+"年 ( ");
for(int i=0; i<al.size(); i++) System.out.print(al.get(i)+" ");
System.out.println(")\n");
total++;
}
}
}
System.out.println("合計: "+total+"枚必要");
}
}

295 名前:デフォルトの名無しさん[sage]:2005/07/11(月) 23:55:15
【 種別 】 丸投げです・・・
【 課題 】
情報源から出力されるアルファベットとして
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f}
の16 文字を考え,符号語は{0, 1} の系列を考えるものとする.情報源からの出力系列を与えると,各文字の出力確率を計算する.
file 名は“prob. 拡張子” とすること.各文字の出力確率を与えると,符号語を生成する.符号化方法としては,
Fano 符号,Shannon-Fano 符号,Shannon-Fano-Elias 符号,Huffman符号のいずれを用いても良い.
file 名は“codeword *. 拡張子” とすること.なお“*” には符号化法を示すためf, sf, sfe, h のいずれかを用いること.
符号語と情報源からの出力系列を与えると,符号化された系列を出力する.
file 名は“encode. 拡張子” とすること.符号語と符号化された系列を与えると,力系列に復号する.
file 名は“decode. 拡張子” とすること.
プログラムの使い方の説明の例UNIX のcommand line 上での使用を考えた場合,
次のような一連の操作によって,符号語の生成および符号化/復号化が行うことができる.
> prob data.txt prob.tbl
> codeword prob.tbl code.tbl
> encode code.tbl data.txt encode.txt
> decode code.tbl encode.txt decode.txt
ただし,各ファイルは以下のようなものである.
(ここでは簡単のためアルファベットが{0, 1, 2, 3} の4 文字の場合の例を記述する)
data.txt 出力系列のファイルで,
1023112201010230.....
のような文字列が入っている.
prob.tbl 出力確率のファイルで,各出力文字の出現確率がアルファベットの順に{0.55,0.25,0.15,0.05}のように行毎に記述されている.
code.tbl 符号語のファイルで,各出力文字に対する符号語がアルファベットの順に{0,10,110,111}のように行毎に記述されている.
encode.txt 符号化された系列のファイルで,{10011011110101101100...}のような符号語の系列が入っている.
decode.txt 復号化された系列のファイルで,{102311220.....}のような文字列が入っている.
【期限】 7月15日23時59分
どうかよろしくお願いします。

296 名前:デフォルトの名無しさん[sage]:2005/07/12(火) 10:11:04
【 種別 】 丸投げです。よろしくお願いします
【 課題 】
放物線:y=-x*x-2*xのグラフがある。
この放物線とx軸とで囲まれた図形の面積を計算するプログラムを作れ。

(1)オイラーの台形公式を使え。
(2)区分を4等分、8等分、12等分、16等分、20等分、24等分、28等分、32等分、36等分した場合の
  面積を、tableにして出力せよ。
(3)自分で作る関数を必ず使え

<ヒント>
・区間は[0,2]である。
・36等分のときの面積は、1,33・・・である。
・正解は4/3であるが。

297 名前:296 []:2005/07/12(火) 10:19:09
すみません、書き忘れたのですが上のプログラムはJavaスクリプトで書くのだそうです。
お願いします。

298 名前:デフォルトの名無しさん[sage]:2005/07/12(火) 10:27:09
Javaじゃねーじゃねーか。失せろハゲ

299 名前:デフォルトの名無しさん[sage]:2005/07/12(火) 10:37:02
>>297
あのね。JavaとJavaスプリクトはまったく別のものって分かってるの?

300 名前:デフォルトの名無しさん []:2005/07/12(火) 11:18:21
ゲーム等をやって、その得点を表示するサーブレットの作り方を教えてくだされ

301 名前:デフォルトの名無しさん[sage]:2005/07/12(火) 11:20:32
ゲーム等のプログラムから、点数をhttpでServletに送るんだ。
Servletでは受け取った点数をHTMLに整形して出力するんだ。

302 名前:デフォルトの名無しさん[sage]:2005/07/12(火) 16:25:42
>>298-299
申し訳ないです。Javaスクリプトスレに行ってきます。

303 名前:デフォルトの名無しさん []:2005/07/12(火) 18:59:38
>>233
DP(ダイナミックプログラム)マッチングの
プログラム
きぼん!

304 名前:デフォルトの名無しさん[sage]:2005/07/12(火) 20:55:38
>295
すまんが問題を100回読んでも理解できんかった。
それから、
> prob data.txt prob.tbl
> codeword prob.tbl code.tbl
> encode code.tbl data.txt encode.txt
> decode code.tbl encode.txt decode.txt
って明らかにJavaの実行方法じゃないよね??

305 名前:デフォルトの名無しさん[sage]:2005/07/12(火) 21:13:46
>>304
Javaというか、使用する言語は何でも良い、という課題なんですが・・・

306 名前:デフォルトの名無しさん[sage]:2005/07/12(火) 23:13:20
【Java 歴】 1ヶ月。
【 種別 】 質問です
【 課題 】
JSP、サーブレット、JavaBeansでWebアプリケーションを開発しています。
環境はJビルダー2005です。

プロジェクトファイルをビルドすると最終的に
同じ名前のClassファイルがプロジェクト内に2個出来上がります。
フォルダは別々です。

このClassファイルが2個ある「理由」をぜひ教えてほしいです。
変な宿題ですんません
【 期限 】 明日です。

307 名前:ikaikaikajika []:2005/07/13(水) 00:45:12
JABAで GUIを用いて、メロディーをつくっていける プログラムを書きたいんですが、
できれば GUI 画面に 8小節分の5線譜をかいて その上にマウスで4分音符と
8分音符と4分休符、8分休符をおいていき、PLAYボタンを押すと 自動演奏するような
プログラムはできないでしょうか? わかる人がいれば教えてください。

308 名前:デフォルトの名無しさん []:2005/07/13(水) 01:19:24
  意味     ワカ      ラン     カラ       オシ     ERO♪
  ∧_∧   ∧_∧    ∧_∧   ∧_∧     ∧_∧    (⌒)(⌒)
 ( ・∀・)  ( ・∀・)   ( ・∀・)  (  ・∀)    (∀・  ) 彡│ || |
⊂ ⊂  )  ( U  つ  ⊂__へ つ  ( ○  つ   ⊂ ○ )   (∧_∧⊃
 < < <    ) ) )     (_)|   \\ \   / //    ( ・∀・)
 (_(_)  (__)_)    彡(__)   (_(__)  (_(_)     ∪


309 名前:デフォルトの名無しさん[sage]:2005/07/13(水) 09:42:40
>>307
できるかできないかでいいんなら、できる

310 名前:デフォルトの名無しさん[sage]:2005/07/13(水) 11:58:31
>>307
どう書けばイイかはイメージできるが、激しく面倒くさそうだ。
特に五線譜と、音符の描画、小節の判定、半音(シャープ・フラット)の処理とか。
音を出すために、音素をauフォーマットとかで用意しておくとしても、再生も面倒だな〜。


311 名前:デフォルトの名無しさん []:2005/07/13(水) 12:35:50
JABAで?スレ違いだろ

312 名前:>>230(1/5)[sage]:2005/07/13(水) 12:54:49
>>230
>>233見てやってみた

class GridPoint {
private int x;
private int y;

GridPoint(int x, int y){
this.x = x ;
this.y = y ;
}
public int getPointX(){
return this.x;
}
public int getPointY(){
return this.y;
}
}
class GridElement {
private int distance = Integer.MAX_VALUE;
private boolean linked = false;
private boolean visited = false;
private GridPoint previous = null;

GridElement (int distance){
this.distance = distance;
}
public void cutLink(){
this.linked = true;
}
public boolean isVisited(){
return visited;

313 名前:>>230(2/5)[sage]:2005/07/13(水) 12:55:24
}
public int getDistance(){
return distance;
}
public GridPoint getPrevious(){
return previous;
}
public boolean isLink(){
return linked;
}
public void updateDistance(int x, int y,int distance){
if (!visited){
this.distance += distance;
visited = true;
this.previous = new GridPoint(x,y);
}
}
}
public class Q230ShortestPath{
private void output(
GridElement[][] matrix,
GridPoint start,
GridPoint end) {
GridPoint next = null;
int x = end.getPointX();
int y = end.getPointY();
int end_x = start.getPointX();
int end_y = start.getPointY();
System.out.print("最小累積経路数:");
System.out.println(
matrix[end.getPointX()][end.getPointY()].getDistance());
System.out.print("最短経路:");

314 名前:>>230(3/5)[sage]:2005/07/13(水) 12:56:03
System.out.print("("+(x+1)+","+(y+1)+")");
while (x != end_x || y != end_y){
next = matrix[x][y].getPrevious();
x = next.getPointX();
y = next.getPointY();
System.out.print("("+(x+1)+","+(y+1)+")");
}
}
private GridElement[][] search(
GridElement[][] matrix,
GridPoint start,
GridPoint end) {
int distance = 0;
int min_distance;
int x = start.getPointX();
int y = start.getPointY();
int end_x = end.getPointX();
int end_y = end.getPointY();

matrix[x][y].updateDistance(x, y, 0);

while (!matrix[end_x][end_y].isVisited()) {
min_distance = Integer.MAX_VALUE;
distance = matrix[x][y].getDistance();
matrix[x][y].cutLink();
//距離の更新
if (x < end_x) {
matrix[x + 1][y].updateDistance(x, y, distance);
}
if (x < end_x && y < end_y) {
matrix[x + 1][y + 1].updateDistance(x, y, distance);
}

315 名前:>>230(4/5)[sage]:2005/07/13(水) 12:56:42
if (y < end_y) {
matrix[x][y + 1].updateDistance(x, y, distance);
}
//最小距離を探す
for (int i = start.getPointX(); i <= end_x; i++) {
for (int j = start.getPointY(); j <= end_y; j++) {
if (matrix[i][j].isVisited()
&& !matrix[i][j].isLink()
&& matrix[i][j].getDistance() < min_distance) {
min_distance = matrix[i][j].getDistance();
//次の座標
x = i;
y = j;
}
}
}
}
return matrix;
}

public static void main(String[] args){
int[][] grid = {
{1,1,2,3},
{2,2,1,1},
{1,2,2,2},
{3,2,1,1},
};
Q230ShortestPath sp = new Q230ShortestPath();
GridPoint start = new GridPoint(1-1,1-1);
GridPoint end = new GridPoint(4-1,4-1);
int max_x = grid.length;
int max_y = grid[max_x - 1].length ;

316 名前:>>230(5/5)[sage]:2005/07/13(水) 12:57:14
GridElement[][] matrix = new GridElement[max_x][max_y];
//条件がまだ怪しい
if (start.getPointX() < end.getPointX()
&& start.getPointY() < end.getPointY()
&& start.getPointX() >= 0
&& start.getPointY() >= 0
&& end.getPointX() < max_x
&& end.getPointY() < max_y) {
//初期化
for (int x = start.getPointX(); x < max_x; x++) {
for (int y = start.getPointY(); y < max_y; y++) {
matrix[x][y] = new GridElement(grid[x][y]);
}
}
sp.search(matrix, start, end);
sp.output(matrix, start, end);
}else{
System.out.println("指定された座標が正しくありません");
}
}
}

317 名前:デフォルトの名無しさん[sage]:2005/07/13(水) 19:15:37
235です
>>293 >>294様 ありがとうございました。
大変助かりました。

318 名前:デフォルトの名無しさん[sage]:2005/07/13(水) 23:31:52
JAVA歴:数日
種別:丸投げ
問題:複数の乱数を発生させて
    出てきた乱数を比較して同じ数字があるか判断するには
    どのようなかたちのコードがありますか?
備考:自分ではJAVAの本からよくわかっていないコードを引き剥がして組み合わせて
    以下のようにして乱数を出すところまでしかできません・・・。
public class nyanko
{
public static void main(String[] args) {
int kari[];
kari = new int[20];
for(int i=1;i<=kari.length;i++)
{
double ransuu1;
ransuu1 = Math.random();
System.out.println(i + "番目の数字は" + ransuu1);
}
}
}

319 名前:デフォルトの名無しさん []:2005/07/13(水) 23:38:32
>>228
期限はすぎてしまいましたが、今後の勉強の
参考にもしたいので、よろしくお願いします。
形だけでもいいので。

320 名前:デフォルトの名無しさん []:2005/07/14(木) 00:33:41
>>318
・乱数として欲しいのは整数か実数か
・同じ数字があるかないかの判断だけでよいのか
・発生させる乱数の個数は引数で渡すのかプログラム内に決め打ちなのか
などによって回答は変わると思う。

321 名前:320[sage]:2005/07/14(木) 01:03:30
>>318
とりあえず0〜100のintを20個生成して同じ数字があるかないかだけ判断するものはこんな感じか?
public class Main {
public static void main(String[] args) {
int numRandom = 20;
int randomNumbers[] = new int[numRandom];
for (int i=0 ; i < numRandom ; ++i) {
randomNumbers[i] = (int)(101*Math.random());
System.out.println(randomNumbers[i]);
}

boolean exists=false;
outerloop:
for (int i=0 ; i < numRandom-1 ; ++i) {
for (int j=i+1 ; j < numRandom ; ++j) {
if (randomNumbers[i]==randomNumbers[j]) {
exists=true;
break outerloop;
}
}
}
if (exists) {
System.out.println("同じ数字がある");
} else {
System.out.println("同じ数字はない");
}
}
}

322 名前:デフォルトの名無しさん[sage]:2005/07/14(木) 04:36:37
二重ループ回すくらいなら、生成時にチェックした方が速い。
大きさ100の配列でチェックリストを作ってガイシュツの数字かチェック。

323 名前:デフォルトの名無しさん[sage]:2005/07/14(木) 10:50:53
確かに

324 名前:318[sage]:2005/07/14(木) 12:30:01
>>320
どうもです。
何か本で見つからないような英字とかありますが
いろいろ試して参考にさせていただきます。

325 名前:デフォルトの名無しさん[sage]:2005/07/14(木) 15:33:50
おねがいします 誰かといてくださいませんかJAVAです


問題1
x=0°から 360°まで 10°きざみで y = sin(x) とを計算し、x と y の値を以下のように
ファイル(test.dat)へ保存せよ。

プログラムにより作成された test.dat の内容:


0 0.0
10 0.17364817766693033
20 0.3420201433256687
30 0.49999999999999994
40 0.6427876096865393
50 0.766044443118978
60 0.8660254037844386
... ...

326 名前:デフォルトの名無しさん []:2005/07/14(木) 16:13:37
すいません、英語の問題です。お願いします。
Indicate where in the hirachy you want to add data fields for the following
and the kind of data field you would add.
・Cost
・The battery identification
・Time before battery discharges
・Number of expansion slots
・Wireless Internet available

327 名前:デフォルトの名無しさん[sage]:2005/07/14(木) 16:55:09
hierarchy を提示しろよ。 (hierarchyの綴りがまちがっているぞ)
Javaの宿題なのか?


328 名前:デフォルトの名無しさん []:2005/07/14(木) 17:40:09
javaの宿題です。

329 名前:デフォルトの名無しさん[sage]:2005/07/14(木) 17:49:56
>>325
180度と360度できっちり0にならんがそれは自分で何とかしてくれ

import java.io.BufferedOutputStream;
import java.io.FileOutputStream;

public class sintest {
public static void main(String[] argv){
try {
BufferedOutputStream bo=new BufferedOutputStream(new FileOutputStream("test.dat"));
String s="";
for(int i=0;i<=360;i+=10){
s=String.valueOf(i)+" "+String.valueOf(Math.sin(Math.PI*(double)i/180.0))+"\n";
bo.write(s.getBytes());
}
bo.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

330 名前:デフォルトの名無しさん[sage]:2005/07/14(木) 18:15:22
>328
だから、クラス階層を示せってんだよ。
おそらく、PCやノートPCあたりなんだろうが。


331 名前:230 []:2005/07/14(木) 20:12:58
>>312
ありがとうございました。

332 名前:デフォルトの名無しさん []:2005/07/14(木) 20:39:19
JAVA歴:1ヶ月 種別:質問
問題:データベース(mysql)とswingをつかって、
swing上で操作しデータベースのデータの削除をしたいのですが、
ComboBoxで選択した、データベースのデータを削除したいのですが、
どうしたらよいでしょうか??コンパイルして実行してもエラーで
ません。根本的なやりかた自体間違っているのでしょうか?

private JPanel createPanel2(){
JPanel p2 = new JPanel(); p2.add(ComboBox);
try{Connection con = connect();
Statement stmt = con.createStatement();
String sql ="select name from shop";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){String name = rs.getString("name");
ComboBox.addItem(name);}con.close();} catch(Exception ex) {
System.out.println(ex);}return p2;}

public void actionPerformed(ActionEvent e){
try{Connection con = connect();
Statement stmt = con.createStatement();
String sql ="delete * from shop
where name ='" + ComboBox.getSelectedItem() + "'";
ResultSet rs = stmt.executeQuery(sql);
int id = rs.getInt("id");
String name = rs.getString("name");
DefaultListModel listModel2 = new DefaultListModel();
while(rs.next()){listModel2.addElement(rs.getString("name"));
}
JList list2 = new JList(listModel2);
JScrollPane scrollPane3 = new JScrollPane();
〜〜〜〜
con.close();

333 名前:デフォルトの名無しさん[sage]:2005/07/14(木) 21:34:45
>>282
「バイオリズムの値を計算するメソッド」の戻り値の詳細を教えてください。
具体的に何を返せばいいですか。

334 名前:デフォルトの名無しさん []:2005/07/14(木) 23:00:35
>330
fuck you

335 名前:デフォルトの名無しさん[sage]:2005/07/14(木) 23:30:11
【Java 歴】 1ヶ月強
【 種別 】 丸投げ
【 課題 】
1.乱数を発生させる。
2.それらを表示
3.それらを合計して「合計は〜」と表示する
4.それらを比較し、同じ数字を「〜〜〜これらが同じ数字です」と表示する
5.それらの中で「一番大きいのは〜〜〜です」と表示する
【備考】HelloWorldの表示から基本的な計算くらいまでしかできません

336 名前:335[sage]:2005/07/14(木) 23:38:49
×1.乱数を発生させる。
○1.乱数を発生させて配列に格納する。

337 名前:デフォルトの名無しさん []:2005/07/14(木) 23:40:21
>335
math.function=JOptionPane("Generate random Numbers");

You are very welcome!

338 名前:デフォルトの名無しさん []:2005/07/14(木) 23:44:12
【 種別 】 丸投げです。どなたかお願いします。
【 課題 】
デジタル時計を作りアラームの機能(ビープ音)をつけること
ラジオボタンかチェックボタンで○○時間後など
を指定し指定時間が経過するとアラームがなるように
する。その他、デジタル時計もシンプルな表示でも
いいがなるべく、かっこいい時計を作れ。

以上が出された課題です

【備考】アプレットではなくswingとawtを使うことだそうです。。。

339 名前:デフォルトの名無しさん[sage]:2005/07/15(金) 00:12:54
【Java 歴】 1月ほど
【 種別 】 丸投げ
【 課題 】 プロキシ経由でIPアドレス先に接続する
【不明点 】 普通のURL入力などはともかくここまでくるとお手上げです

340 名前:デフォルトの名無しさん[sage]:2005/07/15(金) 00:23:50
>339
宿題なのか?
とりあえず、プロキシサーバってのがどんなリクエストに対しどんなデータを返すかを調べてみろ。
案外簡単だぞ。

341 名前:デフォルトの名無しさん[sage]:2005/07/15(金) 01:04:48
>>339
1.5以降ならjava.net.Proxyを使えばいいんじゃない?

http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/net/Proxy.html
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/net/URL.html#openConnection(java.net.Proxy)
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/net/Socket.html#Socket(java.net.Proxy)

342 名前:デフォルトの名無しさん []:2005/07/15(金) 01:13:11
課題が出たのですが全然わかりません
助けて下さい泣

【Java 歴】 3ヶ月
【 種別 】 丸投げ
【 課題 】 BrackJackゲームを設計せよ
【 期限 】 7/19まで

・プレーヤーは親と子の2名
・カードの数字を合計して、大きい方が勝ち
・Playでゲーム開始、Exitでゲーム終了
・最初は2枚からスタート
・Hit(カードを貰う)とStand(カードを貰わない)でカードを集める
・親のカードは子がStandするまで見えない
・子の行動の直後に親も行動する
・親は自動的に進行する
・21を越えるまでカードを追加していくことができる
・カードの数字は、2〜10はそのまま点として数えるが、絵札は10点として計算する
・エース(A)は1点または11点のどちらに数える
・合計数値は21点が最高で、22点以上になってしまうとその時点で負け
・最初の2枚が(A)と(絵札)でBJになれば相手が3枚以上で 21点を作ったとしても勝ち
・所持金は両者とも100で、1ゲームにつき負けた方が勝ったほうに10点与える
・子がBJで勝った場合には15点が支払われる
・親がBJで勝っても10点没収されるだけで、追加徴収はない。
・どちらかの所持金が0点になればゲーム終了
・出力はGUIを使って実現する

いちおう一部途中まで?のプログラムがありますのでアップします
たぶん違うところが多いと思いますので、改変してください
ご指導お願いします
http://uppp.dip.jp/src/uppp5527.zip


343 名前:デフォルトの名無しさん[sage]:2005/07/15(金) 01:21:26
【Java 歴】 少しだけ本を読んで勉強した程度です
【 種別 】 丸投げ
【 課題 】 ArrayListを使ってランダムに数字を出力し大きな順番に並べる
【不明点 】 ArrayListを使おうとあれこれ調べますが取得メソッドだとかと出てきてわからなくなります
【 用語 】 って何ですか?
【 期限 】 今週末
【 備考 】 ないです

344 名前:デフォルトの名無しさん []:2005/07/15(金) 02:41:18
>342

public arraylist[] blackjack( String parent, String child){
yes!
baby:
}

345 名前:デフォルトの名無しさん []:2005/07/15(金) 03:08:13
【Java 歴】数週間
【 種別 】投げ
【 課題 】nkfコマンドを作る(文字コード変換ツール)、また、第一引数で読み取るパスを指定、第二で書き込み先
      第二がないときは第一に上書き
【 不明点 】プラットフォーム依存のエンコードを出力したい
【 期限 】今朝には・・・

346 名前:デフォルトの名無しさん []:2005/07/15(金) 07:33:46
public class HourlyEmployee {
private String name;
private double hoursWorked;
private double hourlyRate;
private int numDepends;
public HourlyEmployee(){
name = "no name";
hoursWorked = 0.0;
hourlyRate = 0.0;
numDepends = 0; }
public HourlyEmployee(String n, double w, double r, int d) {
name = n;
hoursWorked = w;
hourlyRate = r;
numDepends = d;}
public double calcWeeklyPay(){
return hoursWorked * hourlyRate;}
public double calcDeductions(){
if(numDepends <= 3){
return 0.1 * calcWeeklyPay();}
if(numDepends > 1) {
return .2 * calcWeeklyPay();}
if(numDepends == 1)
return 0.25 * calcWeeklyPay();
else
return 0.0;}


347 名前:デフォルトの名無しさん []:2005/07/15(金) 07:35:34
public double calcNetPay(){
return calcWeeklyPay() - calcDeductions();}
public void sethoursWorked(double w){
hoursWorked = w;}
public double gethoursworked(){
return hoursWorked;}
public void sethourlyRate(double r){
hourlyRate = r;}
public double gethourlyRate(){
return hourlyRate;}
public void setname(String n){
name = n;}
public String getname(){
return name;}
public void setnumdepends(int d){
numDepends = d;}
public int getdependents(){
return numDepends;}
public String toString(){
return "name is " + name + " Number of Dependets is " + numDepends;}
}
これのメインクラス(単純にStringを呼ぶ)を書きたいんですが、どなたか
書いてもらえませんか?

348 名前:デフォルトの名無しさん[sage]:2005/07/15(金) 08:15:01
        ,.,,..::;;:::;;;::,.、,
      ,:r'^       `ヽ
     /::          :::\
    ./::: ,,,-;;;;;;...,.....,...;;-;;;;...,.::::::i     ヽ人人人/
    i;;/'|i<_O_ヽ二( <O`゙iヽ;::::!    ノ  ジ  ゝ
    l;′ヽ二/⌒ミ、二ニノ ヽ::l    ヽ   |   (
   _,,l;    / ^` ^´ヾ、    :::l、   丿  ン   (_
  i │  / ,r――-、 i    i" )  ̄ヽ  ギ   (_
  ゝ .l   l i.j" ̄ ̄`jl l   l゙ ;/    )   |   (
   `''';   l |.l-='''''=‐/    ,r''''"   丿   ス   ゝ
    ヽ  ヽ,`'-―-" /  ,/l      ヽ   カ   (
     ヽ ゝ   ̄  /   .|        )   |   (
     ,r| ヽ、ヽ::,,;;::: ゙,/  l,,      丿   ン   (

349 名前:デフォルトの名無しさん[sage]:2005/07/15(金) 09:08:45
>>335
import java.util.*;

public class RandomNumber {
  public static void main(String[] args) {
    int[] randomNumbers = new int[10];
    ArrayList sameNumbers = new ArrayList();
    Random rand = new Random();
    for (int i = 0; i < 10; i ++) {
      randomNumbers[i] = rand.nextInt() % 10;
      System.out.print(randomNumbers[i] + " ");
    }
    System.out.println();
    int max = Integer.MIN_VALUE;
    for (int i = 0; i < 10; i ++) {
      if (max < randomNumbers[i]) { max = randomNumbers[i]; }
      for (int j = i + 1; j < 10; j ++) {
        if (randomNumbers[i] == randomNumbers[j] &&
          sameNumbers.contains(new Integer(randomNumbers[i])) == false) {
          sameNumbers.add(new Integer(randomNumbers[i]));
        }
      }
    }
    if (sameNumbers.size() != 0) {
      for (int i = 0; i < sameNumbers.size(); i++) {
        System.out.print(sameNumbers.get(i) + " ");
      }
      System.out.println(" が同じ数字です");
    }
    System.out.println("最大値は " + max + " です");
  }
}

350 名前:デフォルトの名無しさん[sage]:2005/07/15(金) 09:16:25
>>343
import java.util.*;

public class RandomNumber {
  public static void main(String[] args) {
    ArrayList randNums = new ArrayList();
    Random rand = new Random();
    for (int i = 0; i < 10; i ++) {
      randNums.add(new Integer(rand.nextInt() % 10));
    }
    Collections.sort(randNums);
    Iterator iter = randNums.iterator();
    while (iter.hasNext()) {
      System.out.println(iter.next());
    }
  }
}


351 名前:デフォルトの名無しさん[sage]:2005/07/15(金) 09:39:09
>>345
import java.io.*;

public class Nkf {
  public static void main(String[] args) {
    String outFileName;
    int c;
    if (args.length == 2) {
      outFileName = args[1];
    } else {
      outFileName = args[0] + Math.random();
    }
    try {
      InputStreamReader reader = new InputStreamReader(new FileInputStream(args[0]), "JISAutoDetect");
      FileWriter writer = new FileWriter(outFileName);
      while ((c = reader.read()) != -1) {
        writer.write(c);
      }
      reader.close();
      writer.close();
      if (args.length < 2) {
        (new File(args[0])).delete();
        (new File(outFileName)).renameTo(new File(args[0]));
      }
    } catch (IOException e) { e.printStackTrace(); }
  }
}


352 名前:デフォルトの名無しさん []:2005/07/15(金) 11:46:49
【Java 歴】 6週間
【 種類 】 丸投げ
【 期限 】 明日
【 課題 】 1.vector objectを作る.
      2.文章を読み込む(JOptionPaneを使う).
       3. 単語の間のスペースを除いて、単語と単語をくっつける。
      4.全ての文字を小文字にする  
      5.一つ一つの文字の数をLetterCount objectでカウントする
     6.LetterCount object をdataにアルファベット順に加える
     7. 文章を付加する。文字とstatisticsをexternalファイルの"letters.txt"に付加する・
   
     例)1. The fat cat sat on the mat.
      2. Thefatcatsatonthemat
      3. thefatcatsatonthemat
      6. The fat cat sat on the mat.
    letter   freq
       t   6
      a    4
       e     2
  こんな感じなんですが、よろしくお願いします。

353 名前:352 []:2005/07/15(金) 11:50:08
途中まで書きました。これは、小文字にするところまでしか出来て
いません。お願いします。

import javax.swing.JOptionPane;
import java.util.*;
public class TestLetterCount {
public static void main(String[] args) {
  Vector data = new Vector();
String ltrStr = JOptionPane.showInputDialog("Enter sentence");
  JOptionPane.showMessageDialog(null, ltrStr.toLowerCase());
}
}


354 名前:デフォルトの名無しさん[sage]:2005/07/15(金) 12:16:31
私たちの体内には「体内時計」とか「生物時計」などと呼ばれる一定の周期を持つ
リズムがあるらしい。その中の身体・感情・知性の状態をグラフにあらわしたチャートを
バイオリズムと読んでいる。バイオリズムがどのくらい信頼できるものかはわからないが、
ここまでのまとめ課題としてバイオリズムを表示するプログラムを作成しなさい。
周期は身体23日、感情28日、知性33日。ここで使うのは三角関数sin。
角度が0の時、値は0で、90度の時値は1、180度で0に戻り、270度でー1、一周して360度でまた0と変化する。
身体ならば、生まれてから現在までの日数を23で割った余りを調べ、
360度の23分の割った余りを計算すれば、現在の値が得られる。つまり、23で360度を
一周すればよいのだから、3日目なら360度の23分の3の時のsin関数の値を計算すれば、
値が得られる。23/23になると0に戻る。360度はラジアン2πと表すようになっている。
sin(2π*誕生日から調べる日までの日数%23/23)
とすれば、その日の値が求まる。sinの値は−1から1の実数になるので、これに掛け算をして利用すればいい。
例えば。グラフの縦軸が400ドットならば、sinの値を200倍する(−200〜200)。
値が正なら好調、負なら不調。ゼロならば好不調の変わり目の要注意日らしい。

下記メソッドを自作して利用しなさい。
@西暦1年1月1日からの日数を計算するメソッド
public int calDays(int year, int month, int day)

A月の日数を返すメソッド
public int DaysOfMonth(int year, int month)

B閏年チェックメソッド
public boolean LeapCheck(int year)

オプションC バイオリズムの値を計算するメソッド
public double[][] calBiorhythm(int birthYear, int birthMonth, int birthDay, int nowYear, int nowMonth, int nowDay, int days)

期限7月22日(金)
Java2 1.4.0

俺には無理だから誰かやってくれ

355 名前:デフォルトの名無しさん[sage]:2005/07/15(金) 12:30:33
>>354
>>282

356 名前:デフォルトの名無しさん[sage]:2005/07/15(金) 12:46:36
>>352
LetterCount っていうクラスの定義は与えられているんか?


357 名前:352 []:2005/07/15(金) 13:32:59
>>356
 はい。すいません、忘れてました。
  public class LetterCount {

private char letter;
private int count;

  /** Creates a new instance of LetterCount */
public LetterCount(char ltr, int cnt) {
letter = ltr;
count = cnt;
}
public void setLetter(char ltr){
letter = ltr;
}
public void setCount(int cnt){
count = cnt;
}
public char getLetter(){
return letter;
}
public int getCount(){
return count;
}
public String toString(){
return "Letter:" + letter +
"\nCount:" + count;
}
}



358 名前:デフォルトの名無しさん[sage]:2005/07/15(金) 14:31:42
>>352
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/729.txt

359 名前:デフォルトの名無しさん []:2005/07/15(金) 16:02:44
>>338
【 期限 】 明日までなんです
おっお願いします! 時刻の表示まではできたんですが。

360 名前:デフォルトの名無しさん[sage]:2005/07/15(金) 16:14:21
GUI物は面倒くさいだけなので、食いつき悪いよ。
時刻の表示が敵他のであれば、あとは指定時刻と比較して、
javax.sound.sampled にあるクラスを使って音出すとかすればOK。



361 名前:デフォルトの名無しさん[sage]:2005/07/15(金) 19:10:56
Look&Feelで、外観をWindowsにしたいのですが
どのように書けばイマイチよくわかりません。

ソースは以下です。

import javax.swing.*;

public class HelloWorldSwing {
public static void main(String[] args) {
JFrame frame = new JFrame("HelloWorldSwing");
final JLabel label = new JLabel("Hello World");
frame.getContentPane().add(label);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}

よろしくお願いします。

362 名前:デフォルトの名無しさん[sage]:2005/07/15(金) 19:15:48
>>359
適当に作ってみた
かっこよくは自分でなんとかしてくれ

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

public class DigitalClock extends JPanel {
int hour, minute, second;
int beepH, beepM, beepS;
boolean alarm = false;

JComponent canvas;
JRadioButton[] rb = new JRadioButton[4];

363 名前:デフォルトの名無しさん[sage]:2005/07/15(金) 19:17:05
public DigitalClock() {
super(new BorderLayout());

updateTime();
canvas = new JComponent() {
protected void paintComponent(Graphics g) {
super.paintComponent(g);

g.setColor(Color.red);
g.setFont(new Font("SansSerif", Font.BOLD, 20));
FontMetrics fm = g.getFontMetrics();
String time =
hour + " 時 " + minute + " 分 " + second + " 秒";
int strWidth = fm.stringWidth(time);
g.drawString(time, (getWidth() - strWidth) / 2, getHeight() / 2);
}
};
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
canvas.setPreferredSize(new Dimension(d.width / 3, d.height / 3));
add(canvas, BorderLayout.CENTER);

364 名前:デフォルトの名無しさん[sage]:2005/07/15(金) 19:17:51
rb[0] = new JRadioButton("off", true);
rb[1] = new JRadioButton("30分後");
rb[2] = new JRadioButton("1時間後");
rb[3] = new JRadioButton("2時間後");
rb[0].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
alarm = false;
}
});
rb[1].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
alarm = true;
updateBeepTime(0, 0, 10);
}
});
rb[2].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
alarm = true;
updateBeepTime(0, 0, 20);
}
});
rb[3].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
alarm = true;
updateBeepTime(0, 0, 30);
}
});

365 名前:デフォルトの名無しさん[sage]:2005/07/15(金) 19:18:14
ButtonGroup bg = new ButtonGroup();
JPanel panel = new JPanel();
for (int i = 0; i < rb.length; i++) {
bg.add(rb[i]);
panel.add(rb[i]);
}
add(panel, BorderLayout.SOUTH);

BorderFactory.createEmptyBorder(20, 20, 20, 20);

new Timer(100, new ActionListener() {
public void actionPerformed(ActionEvent e) {
updateTime();
canvas.repaint();

if (alarm && hour == beepH && minute == beepM && second == beepS) {
Toolkit.getDefaultToolkit().beep();
alarm = false;
rb[0].setSelected(true);
}
}
}).start();
}

366 名前:デフォルトの名無しさん[sage]:2005/07/15(金) 19:18:34
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}

private static void createAndShowGUI() {
JFrame frame = new JFrame("DigitalClock");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JPanel cp = new DigitalClock();
cp.setOpaque(true);
frame.setContentPane(cp);

frame.pack();
frame.setVisible(true);
}

367 名前:最後[sage]:2005/07/15(金) 19:40:05
private void updateTime() {
Calendar calendar = Calendar.getInstance();
hour = calendar.get(Calendar.HOUR_OF_DAY);
minute = calendar.get(Calendar.MINUTE);
second = calendar.get(Calendar.SECOND);
}

private void updateBeepTime(int bh, int bm, int bs) {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.HOUR_OF_DAY, bh);
calendar.add(Calendar.MINUTE, bm);
calendar.add(Calendar.SECOND, bs);
beepH = calendar.get(Calendar.HOUR_OF_DAY);
beepM = calendar.get(Calendar.MINUTE);
beepS = calendar.get(Calendar.SECOND);
}
}

368 名前:デフォルトの名無しさん[sage]:2005/07/15(金) 19:48:47
すまん、訂正。
updateBeepTime(0, 0, 10) → updateBeepTime(0, 30, 0)
updateBeepTime(0, 0, 20) → updateBeepTime(1, 0, 0)
updateBeepTime(0, 0, 30) → updateBeepTime(2, 0, 0)

369 名前:デフォルトの名無しさん[sage]:2005/07/15(金) 19:49:13
>>361
main()の最初に
try {
  UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
  // Do Nothing
}

と書いておけばOK。ただし J2SE1.4.2以降。


370 名前:デフォルトの名無しさん[sage]:2005/07/15(金) 19:52:46
>>354
>>333

371 名前:デフォルトの名無しさん[sage]:2005/07/15(金) 19:59:42
>346
// HourlyEmployeeDemo.java
public class HourlyEmployeeDemo {
public static void main(String[] args) {
HourlyEmployee employee1 = new HourlyEmployee();
HourlyEmployee employee2 = new HourlyEmployee("346", 20.0, 1.2, 3);
System.out.println( employee1 );
System.out.println( employee2 );
}
}

372 名前:デフォルトの名無しさん[sage]:2005/07/15(金) 20:10:58
>>370
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.io.*;

public class Biorhythm extends Frame{
static int birthYear, birthMonth, birthDay;
static int nowYear, nowMonth, nowDay;

public Biorhythm(){
this.setSize(400,300);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}

public void paint(Graphics g){
GregorianCalendar date =
new GregorianCalendar();
nowYear = date.get(Calendar.YEAR);
nowMonth = date.get(Calendar.MONTH)+1;
nowDay = date.get(Calendar.DATE);
calBiorhythm(birthYear, birthMonth, birthDay, nowYear, nowMonth, nowDay,
System.out.println("今日までの生存日数: "+ (calDaysAD(nowYear ,nowMonth, nowDay) - calDaysAD(birthYear,birthMonth,birthDay)));
}



373 名前:デフォルトの名無しさん[sage]:2005/07/15(金) 20:11:56

public int calDaysAD(int year, int month, int day){
int ni = (year-1)*365+(year-1)/4-(year-1)/100+(year-1)/400+day;
for(int i = 1; i < month; i++){
day = DaysofMonth(year,(month-i));
ni += day;
}
return ni;
}
public int DaysofMonth(int year, int month){
int[] days = {31,28,31,30,31,30,31,31,30,31,30,31};
if(month == 2)
if(LeapCheck(year))days[month-1] = 29;
return days[month-1];
}
public boolean LeapCheck(int year){
if((year % 4 ==0) && (year % 100 != 0) || (year % 400 == 0))
return true;
else
return false;
}
public static void main(String[] args){
birthYear = Integer.parseInt(args[0]);
birthMonth = Integer.parseInt(args[1]);
birthDay = Integer.parseInt(args[2]);
new Biorhythm().show();
}
}
後オプションCができね




374 名前:デフォルトの名無しさん[sage]:2005/07/15(金) 20:16:03
最後こういう感じのグラフが出るようにしたい
ttp://home.att.ne.jp/yellow/tryspace/

375 名前:352 []:2005/07/15(金) 20:44:48
>>358
 どうもありがとうございました。あなたは恩人です。
 謝謝!!

376 名前:デフォルトの名無しさん[sage]:2005/07/15(金) 20:50:49
>>372
これはちょっと難しいから別スレでも聞いてみたら?

377 名前:352 []:2005/07/15(金) 20:53:40
>>358
 すいません、もう1つだけ聞きたいんですが
 アウトプットを出すJOptionPane.showMessageDialog(null, ltrStr);は
 一番下に書けばいいのでしょうか?

378 名前:デフォルトの名無しさん []:2005/07/15(金) 21:02:44
>>362
ありがとうございます!!
あきらめて自分でやってたんですが、つまずいて
いて、早速コードを確認してみます!!

379 名前:デフォルトの名無しさん[sage]:2005/07/15(金) 21:10:05
>>369
ありがとうございます。無事WindowsのLook&Feelになりました。
コメントアウトされてるDoNothingですが、「何もしないという表記」ということですか?

380 名前:デフォルトの名無しさん[sage]:2005/07/15(金) 21:14:45
>>376
難しい?どこが?

381 名前:質問人 ◆I7GOHmYc7o []:2005/07/15(金) 21:16:59
【Java 歴】1年ぐらい
【 種別 】質問
【 課題 】ソケットによる文字の送受信
【 不明点 】受信が上手くいかず、その原因と解決方法をしりたい
【 期限 】土曜23:59まで
【詳しく】
ソケットによるサーバーとクライアント間通信で
文字を送っているのですが上手くいきません
そうやらデータを受ける方に問題があるようなのですが
どこ改善すれば上手くいくか知恵を貸してください!!

プログラムはサーバーがクライアントの接続を感知すると
文字を出力仕組みになっています
この文字をクライアントが上手くこの文字を受け取れないでいるのです


またサーバーは複数のクライアントからの要求にも大丈夫なように出来ています(マルチスレッド化)
このサーバー、2つのクラスで作っているのですが
一方を内部クラスに出来ないので1つのファイルに別々に作っています(*)
のでここら辺が原因かもしれません・・・コンパイルは及び実行は問題なし


以下にプログラムの概略を書きます

382 名前:質問人 ◆I7GOHmYc7o []:2005/07/15(金) 21:22:02
サーバー側
public class MultiThreadServer {
public static void main(String[] args) throws IOException {
ServerSocket serverS = null;
boolean end = true;

try {
serverS = new ServerSocket(1214);
} catch (IOException e) {
     略
}
while(end){
Socket s = serverS.accept();
new Thread(new MultiEchoThread(s)).start();/**こっから下のMultiEchoThreadへ行く**/
}
     略
}//MultiThreadServerの終わり

383 名前:質問人 ◆I7GOHmYc7o []:2005/07/15(金) 21:22:40
サーバー側(続き)
//クラスは別だが同じファイル内
class MultiEchoThread implements Runnable {
static int num=0;
static String NUM="0";
Socket socket = null;
BufferedReader in = null;
PrintWriter out = null;
     略
public MultiEchoThread(Socket s) {
socket = s;
     略
}
public void run() {
try{
OutputStream os = socket.getOutputStream();
out = new PrintWriter( new OutputStreamWriter(os, "Shift_JIS"));
in = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
NUM=Integer.toString(num);/**int→String***/
out.println(NUM);/**"0"を発射!!**/
/**ここから先に進めず
上の発射した文字があっちで受け取れずあっちからの発射がない***/
while ((NUM= in.readLine())!=null) {
   略
}//MultiEchoThreadの終わり

384 名前:質問人 ◆I7GOHmYc7o []:2005/07/15(金) 21:23:29
クライアント側
class LastClient extends JApplet{
MyJPanel myJPanel;
MyJPanelList myJPanelList;
String s;
static int num=0;
static String NUM="0";
static Socket echoS = null;
static BufferedReader in = null;
static PrintWriter out = null;
      略
LastClient(){
try {
echoS = new Socket("localhost", 1214);
in = new BufferedReader(
new InputStreamReader(echoS.getInputStream()));
OutputStream os = echoS.getOutputStream();
out = new PrintWriter( new OutputStreamWriter(os, "Shift_JIS"));
}
       略
}
public static void main(String args[]) throws IOException {
       略
try{
/***ここから先に進めず、
サーバーから発射された"0"を受け取るはずなのだが***/
NUM=in.readLine();
num=Integer.parseInt(NUM);
}catch(Exception en){}
       略
}

385 名前:質問人 ◆I7GOHmYc7o []:2005/07/15(金) 21:29:59
略の部分は一切、影響を与えない部分です

基本的にはソケット通信受信での問題を聞いているのですが
原因がサーバー内の2つのクラスの一方が内部クラスになっているのではないかと
サーバーの形容について述べています
原因がここになかったのならサーバーに関してはスルーしてもらって結構です

【サーバーの形容】
サーバーはこうなっている↓(なんか説明しづらいんで)
=====MultiThreadServer.javaはここから========
public class MultiThreadServer {
    略

class MultiEchoThread implements Runnable {
    略

======ここまで========

386 名前:質問人 ◆I7GOHmYc7o []:2005/07/15(金) 21:30:50
>>381-385
よろしくお願いします

387 名前:358[sage]:2005/07/15(金) 21:31:47
>>377
一番下でもOK。出したい場所に書けばいい。


388 名前:369[sage]:2005/07/15(金) 21:32:55
>>379
ここには何も書く必要はないのだけれど { } は間抜けなので、
コメント入れてあるだけ。


389 名前:デフォルトの名無しさん[sage]:2005/07/15(金) 21:42:42
>>388
なるほど、重ね重ねありがとうございました。

390 名前:デフォルトの名無しさん[sage]:2005/07/15(金) 21:53:33
>>381
out = new PrintWriter( new OutputStreamWriter(os, "Shift_JIS"), true);
もしくは、
out.println(NUM);
out.flush();

391 名前:質問人 ◆I7GOHmYc7o []:2005/07/15(金) 22:17:16
>>390
神さんありがとう!!

392 名前:>>295 ハフマン その1 []:2005/07/15(金) 23:21:33
import java.io.*;
import java.util.*;

public class HW95 {

public static void main(String[] args) {
try {
if (args[0].equals("prob")) {
createProbFile(args[1], args[2]);
} else if (args[0].equals("codeword")) {
createCodewordFile(args[1], args[2]);
} else if (args[0].equals("encode")) {
createEncodeFile(args[1], args[2], args[3]);
} else if (args[0].equals("decode")) {
createDecodeFile(args[1], args[2], args[3]);
} else {
throw new Exception("不正なコマンドが指定されました");
}
} catch (ArrayIndexOutOfBoundsException ex) {
System.out.println("引数の指定に誤りがあります");
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
}

393 名前::>>295 ハフマン その2 []:2005/07/15(金) 23:22:02
static void createProbFile(String dataFile, String probFile)
throws Exception {
BufferedReader dataR = new BufferedReader(new FileReader(dataFile));

Map charToRatio = new TreeMap();
int ch = 0;
int totalCount = 0;
while ((ch = dataR.read()) != -1) {
if (ch == '\n' || ch == '\r') {
continue;
}
Integer chKey = new Integer(ch);
if (charToRatio.containsKey(chKey)) {
int count = ((Integer) charToRatio.get(chKey)).intValue() + 1;
charToRatio.put(chKey, new Integer(count));
} else {
charToRatio.put(chKey, new Integer(1));
}
++totalCount;
}

List crList = new ArrayList(charToRatio.entrySet());
Collections.sort(crList, new Comparator() {
public int compare(Object o1, Object o2) {
Map.Entry e1 = (Map.Entry) o1;
Map.Entry e2 = (Map.Entry) o2;
return -(((Integer) e1.getValue()).compareTo(e2.getValue()));
}
});

394 名前:>>295 ハフマン その3 []:2005/07/15(金) 23:22:37
StringBuffer code = new StringBuffer("0"), text = new StringBuffer();
for (int i = 0; i < crList.size(); i++) {
Map.Entry entry = (Map.Entry) crList.get(i);
double ratio = (double) ((Integer) entry.getValue()).intValue()
/ totalCount;
String number = String.valueOf(ratio);
if (number.length() > 4) {
number = number.substring(0, 4);
}
String line = String.valueOf(
(char) ((Integer) entry.getKey()).intValue()) + ","
+ number + "\r\n";
text.append(line);
}

BufferedWriter w = new BufferedWriter(new FileWriter(probFile));
w.write(text.toString());
w.close();
}

395 名前:>>295 ハフマン その4 []:2005/07/15(金) 23:23:06
static void createCodewordFile(String probFile, String codewordFile)
throws Exception {
BufferedReader probR = new BufferedReader(new FileReader(probFile));

List charList = new ArrayList();
String line = null;
while ((line = probR.readLine()) != null) {
String[] token = line.split(",");
if (token.length != 2) {
throw new Exception("指定されたprobファイルが不正です");
}
charList.add(token[0]);
}

StringBuffer code = new StringBuffer("0"), text = new StringBuffer();
for (int i = 0; i < charList.size(); i++) {
String ch = (String) charList.get(i);
String codeline = ch + "," + code.toString() + "\r\n";
text.append(codeline);
code.replace(code.length() - 1, code.length(), "1");
if (i + 2 < charList.size()) {
code.append("0");
}
}

BufferedWriter w = new BufferedWriter(new FileWriter(codewordFile));
w.write(text.toString());
w.close();
}

396 名前:>>295 ハフマン その5 []:2005/07/15(金) 23:23:43
static void createEncodeFile(String codewordFile, String dataFile,
String encodeFile) throws Exception {
BufferedReader codewordR = new BufferedReader(new FileReader(codewordFile));

Map charToCode = new TreeMap();
String line = null;
while ((line = codewordR.readLine()) != null) {
String[] token = line.split(",");
if (token.length != 2) {
throw new Exception("指定されたcodewordファイルが不正です");
}
charToCode.put(token[0], token[1]);
}

BufferedReader dataR = new BufferedReader(new FileReader(dataFile));

StringBuffer text = new StringBuffer();
int ch = 0;
while ((ch = dataR.read()) != -1) {
if (ch == '\n' || ch == '\r') {
text.append((char) ch);
continue;
}
if (charToCode.containsKey(String.valueOf((char) ch))) {
text.append(charToCode.get(String.valueOf((char) ch)));
}
}

BufferedWriter w = new BufferedWriter(new FileWriter(encodeFile));
w.write(text.toString());
w.close();
}

397 名前:>>295 ハフマン その6 []:2005/07/15(金) 23:38:38
static void createDecodeFile(String codewordFile, String encodeFile,
String decodeFile) throws Exception {
BufferedReader codewordR = new BufferedReader(new FileReader(codewordFile));

Map codeToChar = new TreeMap();
String line = null;
while ((line = codewordR.readLine()) != null) {
String[] token = line.split(",");
if (token.length != 2) {
throw new Exception("指定されたencodeファイルが不正です");
}
codeToChar.put(token[1], token[0]);
}

BufferedReader encodeR = new BufferedReader(new FileReader(encodeFile));

StringBuffer text = new StringBuffer(), code = new StringBuffer();
int ch = 0;

398 名前::>>295 ハフマン その7 []:2005/07/15(金) 23:39:12
while ((ch = encodeR.read()) != -1) {
if (ch == '\n' || ch == '\r') {
text.append((char) ch);
continue;
}
if (ch != '0' && ch != '1') {
throw new Exception();
}
code.append((char) ch);
if (ch == '0' || code.length() >= codeToChar.size() - 1) {
String word = (String) codeToChar.get(code.toString());
text.append(word);
code.delete(0, code.length());
}
}

BufferedWriter w = new BufferedWriter(new FileWriter(decodeFile));
w.write(text.toString());
w.close();
}
}


399 名前:ザイン帝國軍帥・伯魔壬旭(小島露観)[sage]:2005/07/15(金) 23:42:32
>>295
プログラム引数は課題文の通りです。

> prob data.txt prob.tbl
> codeword prob.tbl code.tbl
> encode code.tbl data.txt encode.txt
> decode code.tbl encode.txt decode.txt


400 名前:デフォルトの名無しさん []:2005/07/15(金) 23:55:57
【 種別 】丸投げ
【 課題 】
ブラウザーに『進む』と『戻る』の機能を
付けたいのですがどうしたらよいかわかりません。
お願いします!

public class Browser extends JFrame implements ActionListener , ItemListener , HyperlinkListener {
public static void main(String args[]) {
Browser frame = new Browser();
}
JToolBar tb = new JToolBar();
private JTabbedPane tabPane = new JTabbedPane(JTabbedPane.TOP , JTabbedPane.SCROLL_TAB_LAYOUT);
JEditorPane html = new JEditorPane();
}
private void openFile(File file) {
long length = file.length();
if (length == 0L) return;
String text = "";
try {
InputStream stream = new FileInputStream(file);
BufferedReader reader = new BufferedReader(
new InputStreamReader(stream)
);


401 名前:デフォルトの名無しさん []:2005/07/15(金) 23:56:29
while(true) {
String temp = reader.readLine();
if (temp == null) break;
else text += temp;
}}
catch(Exception err) {
//IO 例外をここに記述する。
System.out.println(err);
}
addDocument(text , "text/html" , file.getName());}
public void addDocument(String text, String type, String title) {
JEditorPane html = new JEditorPane(type , text);
html.setEditable(false);
html.addHyperlinkListener(this);

JScrollPane pane = new JScrollPane(html);
tabPane.addTab(title, null , pane);
}
public void addDocument(URL url) {
JEditorPane html = new JEditorPane();
html.setContentType("text/html ");
html.setEditable(false);
html.addHyperlinkListener(this);
try {
html.setPage(url);}
catch(Exception err) {
System.out.println(err);}
JScrollPane pane = new JScrollPane(html);
tabPane.addTab(url.toString() , null , pane);
}


402 名前:デフォルトの名無しさん []:2005/07/15(金) 23:57:04
public void itemStateChanged(ItemEvent e) {
switch (e.getID()) {
case ItemEvent.ITEM_STATE_CHANGED:
if (e.getStateChange() == ItemEvent.DESELECTED) break;
try {
String addr = urlComboBox.getSelectedItem().toString();
URL url = new URL(addr);
addDocument(url);
}
catch(Exception err) { System.out.println(err); }
}}
public void hyperlinkUpdate(HyperlinkEvent e) {
HyperlinkEvent.EventType type = e.getEventType();
if (type == HyperlinkEvent.EventType.ACTIVATED) {
urlComboBox.setSelectedItem(e.getURL().toString());
}}


403 名前:デフォルトの名無しさん[sage]:2005/07/15(金) 23:59:36
つーかソースで流れすぎてやる気が萎えた('A`)

404 名前:デフォルトの名無しさん[sage]:2005/07/16(土) 08:02:23
>>403
検索してみたんですがこの機能を使ったサンプル見つからなくて、
このソースを利用して質問してみたんですが申し訳ありませんでした。

405 名前:デフォルトの名無しさん[sage]:2005/07/16(土) 08:35:42
>400-402
ソース貼るならせめてコンパイルぐらいは通してください。
・変な位置に閉じ括弧が書いてある箇所がある。
・actionPerformed(ActionEvent)が未実装。
・urlComboBoxが解決できない。

でもって、今回のケースは「丸投げ」じゃなくて「質問」ね。

406 名前:デフォルトの名無しさん[sage]:2005/07/16(土) 10:14:28
確かにせめてどれがどのソースか名前欄に記してくれないと
どれがどれかわからなくなるな・・

407 名前:407[sage]:2005/07/16(土) 12:28:41
【種別】質問
>>405
何度も沢山書き込むことになってすみません!改めて質問させてください
ブラウザーに『進む』と『戻る』の機能を
付けたいのですが、今現在リンク先を押すと次々と新しいタブで
開かれるのですが、そうではなく一つのタブの中で
リンクページを表示させ『進む』と『戻る』の機能を付けたいのですが、
もしよろしければ教えていただけませんか?お願いします。

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import java.util.*;
import javax.swing.*;
import javax.swing.event.*;
public class Browser extends JFrame
implements ActionListener,ItemListener,HyperlinkListener {
public static void main(String args[]) {
Browser frame = new Browser();
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
frame.setVisible(true);}
private DefaultComboBoxModel urlList = new DefaultComboBoxModel(
new String[] {"http://www.2ch.net/",
"http://www.forest.impress.co.jp/",});
private JToolBar tb = new JToolBar();
private JComboBox urlComboBox = new JComboBox();
private JMenuBar menuBar = new JMenuBar();

408 名前:407[sage]:2005/07/16(土) 12:29:17
private JMenu mn1 = new JMenu("ファイル(F)");
private JMenu mn2 = new JMenu("編集(E)");
private JMenuItem fileOpen = new JMenuItem("開く");
private JMenuItem fileClose = new JMenuItem("タブを閉じる");
private JMenuItem fileAllClose = new JMenuItem("すべてのタブを閉じる");
private JMenuItem fileExit = new JMenuItem("閉じる");
private JMenuItem editCut = new JMenuItem("切り抜き");
private JMenuItem editSelect = new JMenuItem("すべて選択");
private JTabbedPane tabPane
= new JTabbedPane(JTabbedPane.TOP , JTabbedPane.SCROLL_TAB_LAYOUT);
private JEditorPane html = new JEditorPane();
private JFileChooser openFileChooser = new JFileChooser();
private Vector editorPanes = new Vector();
private JPanel statusBar = new JPanel();
private JLabel statusLabel = new JLabel();
public Browser(){openFileChooser.setMultiSelectionEnabled(true);
tb.setFloatable(false);
menuBar.add(mn1);
menuBar.add(mn2);
mn1.add(fileOpen);
mn1.addSeparator();
mn1.add(fileClose);
mn1.add(fileAllClose);
mn1.addSeparator();
mn1.add(fileExit);
mn2.add(editCut);
mn2.add(editSelect);


409 名前:407[sage]:2005/07/16(土) 12:29:46
fileOpen.addActionListener(this);
fileAllClose.addActionListener(this);
fileClose.addActionListener(this);
fileExit.addActionListener(this);
editCut.addActionListener(this);
editSelect.addActionListener(this);
setJMenuBar(menuBar);
urlComboBox.setModel(urlList);
urlComboBox.setEditable(true);
urlComboBox.addItemListener(this);
getContentPane().add(tb, BorderLayout.NORTH);
JPanel panel1 = new JPanel();
panel1.add(urlComboBox);
panel1.setLayout(new FlowLayout(FlowLayout.LEFT));
tb.add(panel1);
getContentPane().add(tabPane, BorderLayout.CENTER);}
private void openFile(File file) {
long length = file.length();
if (length == 0L) return;
String text = "";
try {InputStream stream = new FileInputStream(file);
BufferedReader reader = new BufferedReader(
new InputStreamReader(stream));

410 名前:407[sage]:2005/07/16(土) 12:30:13
while(true) {String temp = reader.readLine();
if (temp == null) break;
else text += temp;}}
catch(Exception err) {System.out.println(err);
}addDocument(text , "text/html" , file.getName());}
public void addDocument(String text, String type, String title) {
JEditorPane html = new JEditorPane(type , text);
html.setEditable(false);
html.addHyperlinkListener(this);
JScrollPane pane = new JScrollPane(html);
tabPane.addTab(title, null , pane);}
public void addDocument(URL url) {
JEditorPane html = new JEditorPane();
html.setContentType("text/html ");
html.setEditable(false);
html.addHyperlinkListener(this);
try {html.setPage(url);}
catch(Exception err) {System.out.println(err);}
JScrollPane pane = new JScrollPane(html);
tabPane.addTab(url.toString() , null , pane);}
public void closeDocument(int index) {
editorPanes.remove(tabPane.getSelectedIndex());
tabPane.removeTabAt(index);}
public void closeAllDocument() {
editorPanes.clear();
tabPane.removeAll();}


411 名前:407[sage]:2005/07/16(土) 12:30:38
public void cut() {
if (editorPanes.size() == 0) return;
int index = tabPane.getSelectedIndex();
JEditorPane pane = (JEditorPane)editorPanes.elementAt(index);
pane.cut();}
public void selectAll() {
if (editorPanes.size() == 0) return;
int index = tabPane.getSelectedIndex();
JEditorPane pane = (JEditorPane)editorPanes.elementAt(index);
pane.selectAll();}
public void actionPerformed(ActionEvent e) {
Object src = e.getSource();
if (src == fileOpen) {
if (openFileChooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
File files[] = openFileChooser.getSelectedFiles();
for(int i = 0 ; i < files.length ; i++) {
openFile(files[i]);}}}
else if (src == fileClose) {
int index = tabPane.getSelectedIndex();
if (index >= 0) closeDocument(index);}
else if (src == fileAllClose) {
closeAllDocument();}


412 名前:407最後です []:2005/07/16(土) 12:41:28
else if (src == fileExit) { dispose(); }
else if (src == editCut) { cut(); }
else if (src == editSelect) { selectAll(); }}
public void itemStateChanged(ItemEvent e) {
switch (e.getID()) {
case ItemEvent.ITEM_STATE_CHANGED:
if (e.getStateChange() == ItemEvent.DESELECTED) break;
try {
String addr = urlComboBox.getSelectedItem().toString();
URL url = new URL(addr);
addDocument(url);}
catch(Exception err) { System.out.println(err); }}}
public void hyperlinkUpdate(HyperlinkEvent e) {
HyperlinkEvent.EventType type = e.getEventType();
if (type == HyperlinkEvent.EventType.ACTIVATED) {
urlComboBox.setSelectedItem(e.getURL().toString());}}}

413 名前:デフォルトの名無しさん []:2005/07/16(土) 14:50:36

五箇条の御誓文の2は、完全に間違ってる。
はっきり言って、「丸投げ」が一番好ましい提示法なのです。
ソースコードを読んで理解するのは、非常に骨が折れるのです。
1から書いた方が早いのです。
故に、>>407 の質問も「進む、戻るのボタン付きブラウザーを
作ってくれ」の方が回答率が高いのです。
ソースを読んで理解し、それを改変する形でプログラムを書くのは
最も面倒なのです。


414 名前:ザイン帝國軍帥・伯魔壬旭(小島露観) []:2005/07/16(土) 17:09:04
>>342
ここに、ブラックジャックゲームのプログラムを貼っておきました。

http://www.wikiroom.com/java/index.php?%A5%BD%A1%BC%A5%B9%C5%BD%C9%D5%A4%B1


415 名前:ザイン帝國軍帥・伯魔壬旭(小島露観) []:2005/07/16(土) 17:17:40
>>342
すいません。一部間違えがありました。動作上は全く問題ないのですが。

上から40行目辺りにある
playerScore = 30;
dealerScore = 30;

playerScore = 100;
dealerScore = 100;
にしてください。
持ち点が30で始まってしまいます。。。

416 名前:ザイン帝國軍帥・伯魔壬旭(小島露観) []:2005/07/16(土) 17:21:05
ちなみにまた団体名が変わりました。
先月までの「イリュミナートX」から「Z(ザイン)帝國」に改称しました。
尊称は引き続き「軍帥(ぐんすい)」です。
軍の総帥という意味です。よろしくお願いします。

417 名前:Mb[sage]:2005/07/16(土) 18:16:53
>>413
> 五箇条の御誓文の2は、完全に間違ってる。
> はっきり言って、「丸投げ」が一番好ましい提示法なのです。
> ソースコードを読んで理解するのは、非常に骨が折れるのです。
> 1から書いた方が早いのです。
 読んで理解するのに非常に骨が折れるようなソースに対しては、
「ここの部分のコーディングがこのように糞だから、
いっそこれこれの方針に基づいて一から書き直せ」と
助言してやるのが教育的配慮というもの。

418 名前:デフォルトの名無しさん []:2005/07/16(土) 20:12:38
どなたか助けてください・・・。
下のサイトのプログラムに、double型の値を扱う機能を追加せよと言われました。(今はintしか扱えない?)
ttp://www.ohmsha.co.jp/data/link/4-274-13308-7/index.htm

この課題がでた授業はjavaプログラミングを習うものではないので、いきなりプログラムを
作れと言われてもどうしてよいのかわかりません。どなたか教えていただけませんでしょうか。
お願いいたします。
ちなみに、コンパイルはソースコードを配置したディレクトリ内で
javac -encoding SJIS Chavac.java
javac -encoding SJIS Chava.java
らしいです。
サンプルプログラム(hello.chv)
void main(){ println(1); }
コンパイルは
java Chavac hello.chv
実行は
java Chava A です。
Chavaというプログラミング言語のコンパイラChavacの改造をしてほしいみたいです。
変更部分だけでいいので、どうかよろしくお願いします。

419 名前:デフォルトの名無しさん[sage]:2005/07/16(土) 20:22:01
正直人のソースコードは自分で1から組むより骨が折れる

420 名前:デフォルトの名無しさん[sage]:2005/07/17(日) 05:27:15
課題でお絵かきソフトを作ったのですが、図形を描画した際に図形が重なると
色が変色してしまいます。それと図形描画の際のマウスをドラッグした時の
ちらつきを試行錯誤して問題解消したのですが、課題を発表する際に質問を
されるんです。色の変化はいったい何が原因だったのかよくわかりませんでした。
ちらつき解消のためにダブルバッファをしたら色の変化が起こらなくなったような気がします。
いったい何が原因だったのか教えて下さい。質問スレか迷ってちょっとスレ違いっぽい
んですが、よかったらお願いします。


421 名前:デフォルトの名無しさん[sage]:2005/07/17(日) 05:51:26
>>420
うまく誘導して答えられる質問にだけ答えればいいよ。

422 名前:420[sage]:2005/07/17(日) 09:52:53
すいません自己解決しました!

423 名前:デフォルトの名無しさん[sage]:2005/07/17(日) 13:22:33
java質問スレから誘導されてきました。よろしくお願いします。

【Java 歴】 一ヶ月
【 種別 】 質問

【 課題 】 JTextPaneに入力された特定の文字の色を変えたい。(要はテキストエディタの様なモノを作りたい)

【不明点 】 上記を実現するにはどのコンポーネントやクラスを利用したらいいのでしょうか?

【 期限 】 なし

【 備考 】 2、3冊の初心者用のjavaの本を目を通したのですが物足りなくて、結局はJavadocを参考に
勉強していたのですが、上記の事を実現するために関わる項目がなかなか見つからなくて困ってます。








424 名前:デフォルトの名無しさん []:2005/07/17(日) 13:44:20
>>424
JTextPane と javax.swing.text パッケージのクラス群を使えば、
簡単に、様々な属性の文字からなるテキスト表示を実現する事ができます。

425 名前:デフォルトの名無しさん[sage]:2005/07/17(日) 13:54:42
思いっきり質問スレの守備範囲に思えるんだが、何だかなぁ…
まあ質問者に非は無いが。

426 名前:デフォルトの名無しさん[sage]:2005/07/17(日) 13:57:10
質問なら424で完結なんだけど、サンプルを書いてくれなら
このスレの範囲内になる。
しかし、423は質問の様なので、424でFA。

427 名前:デフォルトの名無しさん[sage]:2005/07/17(日) 14:37:54
>>415
ありがとうございました!

仕上がりのレベルが高いですね
間違いなくバレちゃいます^^;

428 名前:デフォルトの名無しさん[sage]:2005/07/17(日) 14:58:57
【Java 歴】 1ヶ月
【 種別 】 質問
【不明点 】
トランプ52枚の山をRandomを使って作りたいのですが
0が入ってしまいます。解決方法を教えて下さい

429 名前:デフォルトの名無しさん []:2005/07/17(日) 15:03:35
>>428
int cardNumber = (int) (Math.random() * 13) + 1



430 名前:デフォルトの名無しさん[sage]:2005/07/17(日) 19:32:12
>>429
thx!

431 名前:デフォルトの名無しさん[sage]:2005/07/17(日) 19:43:51
冗談みたいな案件だなw

432 名前:デフォルトの名無しさん []:2005/07/17(日) 22:17:48
>>418
恒例のコンパイラ作成か。
まだその講義やってるんだね。今の実戦じゃ何も役立たないのに。(地力はつくけど)
残念だけど、この課題はあまりに規模が大きすぎて回答不可能だ。

433 名前:Mb[sage]:2005/07/17(日) 22:39:31
>>419
> 正直人のソースコードは自分で1から組むより骨が折れる
正直漏れも業務だったら捨てて一から書き直す
その方が早いし質も高い
コーディングの基準も実行環境が変わったり
言語仕様が拡張されたりして年々変わってゆくので、
捨てられる場合でも後から見た奴の参考になるように、
とりあえず全体の構造が分かりやすく、何をやっているのかが
明快なコードを心がけている。

434 名前:デフォルトの名無しさん []:2005/07/17(日) 22:53:58
Mbタン。(;´Д`)ハァハァ


435 名前:デフォルトの名無しさん[sage]:2005/07/17(日) 23:55:13
【Java 歴】 3ヶ月
【 種別 】 丸投げ
【 課題 】 342と同じ物です

どなたか俺のソースコードを読んでくれる神はいませんでしょうか?
ソースはメールで送ります

436 名前:デフォルトの名無しさん[sage]:2005/07/18(月) 00:03:12
>435
何をしてほしいの?
作ってみたけど動かないから添削してほしいとか?

437 名前:デフォルトの名無しさん[sage]:2005/07/18(月) 00:07:48
>>436
はい、そうです
お願いできませでしょうか?


438 名前:デフォルトの名無しさん[sage]:2005/07/18(月) 01:07:27
それにしても今日暑かったな36度だってさ

439 名前:デフォルトの名無しさん []:2005/07/18(月) 01:08:01
読むも何も肝心の342のソースコードが消えてる。。。
読めない。。。
ブラックジャックなら、前レスで誰かが答えてたような。。。

440 名前:352,353 []:2005/07/18(月) 01:28:05
>358さん、
 すいません、書いてもらったプログラムを走らせたんですが、一つ一つの
文字数をカウントしないんですよね。なんとかなるでしょうか??

441 名前:435[simplichio@yahoo.co.jp]:2005/07/18(月) 01:34:08
あのソースはまだ未完でしたので・・・

一応実装、動作確認は済ませましたが
思い通りに動いてくれなかったので
どなたか出来る人に見て頂きたくて

メールしていただければこちらから添付し送信ます
こんなに面倒なことをしてくれる神のような人は
いないとは思いますが、助けて欲しいのでどなたかお願いします

汚いソースで恥ずかしいし、もしかしたら同級生の人が
見てるかもしれないので、直upするのは抵抗があるので
こんな面倒なことしてます。すいません。

442 名前:デフォルトの名無しさん[sage]:2005/07/18(月) 05:23:31
【Java 歴】 1ヶ月
【 種別 】 質問です。
【 課題 】

do {
c = inFile.nextChar();
} while (c == ' ' || c == '\t' || c == '\n');

字句解析プログラムで、これは空白をスキップする部分ですが
/* で始まり*/で終わる文字列をコメントとして読み飛ばすには
どのように書けばいいんでしょうか
馬鹿らしい質問ですが、お願いします。

【 期限 】 明日まで

443 名前:デフォルトの名無しさん[sage]:2005/07/18(月) 06:14:59
>>442
1文字ずつ読むのなら状態を覚えておいて

normal 通常 ('/'が出たらslash状態へ)
slash  /が出てきた ('*'が出たらcomment状態へ、それ以外ならnormal状態へ)
comment slashモードの時に*が出てきた ('*'が出たらstar状態へ)
star   commentモードの時に*が出てきた ('/'が出たらnormal状態へ、それ以外ならcomment状態へ)

というような感じでやってみてはどうか

444 名前:Mb[sage]:2005/07/18(月) 14:40:38
>>442
  /**
  * 空白とコメントをスキップする。
  */
  private int skipBlanc( int spos, Iterator iter ) {
    int pos = spos;
    boolean commentp = false;
    for (;;) {
      if (pos >= buffer.length()) {
        if (!iter.hasNext()) return -1;
        buffer = (String) iter.next();
        lineNumber += 1;
        pos = 0;
        continue;
      }
      if (!commentp) {
        if ((buffer.charAt(pos) == ' ' ) ||
          (buffer.charAt(pos) == '\t' )) {
          pos += 1;
          continue;
        }
        if (buffer.regionMatches(pos, "/*", 0, 2)) {
          commentp = true;
          pos += 2;
          continue;
        }
        if (buffer.regionMatches(pos, "//", 0, 2)) {
          pos = buffer.length();
          continue;
        }
      } else {

445 名前:Mb[sage]:2005/07/18(月) 14:43:50
        if (buffer.regionMatches(pos, "*/", 0, 2)) {
          commentp = false;
          pos += 2;
        } else {
          pos += 1;
        }
        continue;
      }
      break;
    }
    return pos;
  }

なにせ昔書いたものなので屑なコードでスマソ。
イテレータ iter は今ソースを取ってきてる List<String> から
取ってきたもの。勝手にbuffer の中身を書き換えて、
コメントの終了位置を返す。-1 だったらテキストの終わり。

446 名前:>>407 ブラウザ その1 []:2005/07/18(月) 14:54:04
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import java.util.List;
import java.net.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.ChangedCharSetException;
import javax.swing.text.html.*;

public class HW97 extends JFrame implements ActionListener, HyperlinkListener {

public static void main(String args[]) {
HW97 frame = new HW97();
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
frame.setVisible(true);
}

private JToolBar tb = new JToolBar();
private JButton nextBtn = new JButton("次のページ");
private JButton prevBtn = new JButton("前のページ");
private JButton moveBtn = new JButton("移動する");
private JComboBox urlCbox = new JComboBox(new DefaultComboBoxModel(
new String[] { "http://www.2ch.net/", "http://www.forest.impress.co.jp/"}
));

447 名前::>>407 ブラウザ その2 []:2005/07/18(月) 14:54:36
private JMenuBar menuBar = new JMenuBar();
private JMenu mn1 = new JMenu("ファイル(F)");
private JMenu mn2 = new JMenu("編集(E)");
private JMenuItem fileOpen = new JMenuItem("開く");
private JMenuItem fileClose = new JMenuItem("タブを閉じる");
private JMenuItem fileAllClose = new JMenuItem("すべてのタブを閉じる");
private JMenuItem fileExit = new JMenuItem("閉じる");
private JMenuItem editCut = new JMenuItem("切り抜き");
private JMenuItem editSelect = new JMenuItem("すべて選択");

private JEditorPane html = new JEditorPane();
private List pageList = new ArrayList();
private int pageIndex;

private JLabel statusBar = new JLabel();
private JFileChooser openFileChooser = new JFileChooser();

public HW97() {
fileOpen.addActionListener(this);
fileAllClose.addActionListener(this);
fileClose.addActionListener(this);
fileExit.addActionListener(this);
editCut.addActionListener(this);
editSelect.addActionListener(this);

448 名前:>>407 ブラウザ その3 []:2005/07/18(月) 14:55:16
menuBar.setBackground(new Color(240, 240, 255));
mn1.setOpaque(false);
mn2.setOpaque(false);
menuBar.add(mn1);
menuBar.add(mn2);
mn1.add(fileOpen);
mn1.addSeparator();
mn1.add(fileClose);
mn1.add(fileAllClose);
mn1.addSeparator();
mn1.add(fileExit);
mn2.add(editCut);
mn2.add(editSelect);

ActionListener al = new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getSource().equals(nextBtn)) {
if (pageIndex >= pageList.size()) {
return;
}
++pageIndex;
} else {
if (pageIndex <= 0) {
return;
}
--pageIndex;
}
String path = pageList.get(pageIndex).toString();
addDocument(path, false);

449 名前::>>407 ブラウザ その4 []:2005/07/18(月) 14:56:01
if (pageIndex > 0) {
prevBtn.setEnabled(true);
} else {
prevBtn.setEnabled(false);
}
if (pageIndex < pageList.size() - 1) {
nextBtn.setEnabled(true);
} else {
nextBtn.setEnabled(false);
}
}
};
prevBtn.addActionListener(al);
prevBtn.setEnabled(false);
nextBtn.addActionListener(al);
nextBtn.setEnabled(false);

moveBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (urlCbox.getSelectedItem() != null) {
addDocument(urlCbox.getSelectedItem().toString(), true);
}
}
});

450 名前:>>407 ブラウザ その5 []:2005/07/18(月) 14:56:58
urlCbox.setEditable(true);
JPanel panel1 = new JPanel(new BorderLayout());
panel1.setOpaque(false);
panel1.add(urlCbox);
panel1.add(moveBtn, BorderLayout.EAST);
tb.setFloatable(false);
tb.setBorder(BorderFactory.createEtchedBorder());
tb.setBackground(new Color(210, 210, 240));
tb.add(prevBtn);
tb.add(nextBtn);
tb.add(panel1);

html.setContentType("text/html");
html.setEditable(false);
html.addHyperlinkListener(this);
JScrollPane scroll = new JScrollPane(html);
scroll.setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createLineBorder(new Color(160, 160, 200), 4),
BorderFactory.createEtchedBorder()));
statusBar.setPreferredSize(new Dimension(0, 28));
statusBar.setBorder(BorderFactory.createLineBorder(Color.black));
statusBar.setOpaque(true);
statusBar.setBackground(new Color(230, 230, 250));
setJMenuBar(menuBar);
getContentPane().add(tb, BorderLayout.NORTH);
getContentPane().add(scroll, BorderLayout.CENTER);
getContentPane().add(statusBar, BorderLayout.SOUTH);
pageList.add(urlCbox.getSelectedItem().toString());
addDocument(urlCbox.getSelectedItem().toString(), false);
}

451 名前:>>407 ブラウザ その6 []:2005/07/18(月) 15:14:56
public void addDocument(String path, boolean isNew) {
try {
try {
URL url = new URL(path);
html.setPage(url);
} catch (MalformedURLException ex) {
File file = new File(path);
InputStream in = new FileInputStream(file);
HTMLDocument hdoc = new HTMLDocument();
html.read(in, hdoc);
html.setDocument(hdoc);
}
} catch (ChangedCharSetException ex) {
html.setText("キャラクターセット不適合により\n"
+ "このドキュメントの表示に失敗しました");
System.out.println(ex);
} catch (Exception ex) {
html.setText("読み込み中にエラーが発生しました");
System.out.println(ex);
}
setTitle(path);
urlCbox.setSelectedItem(path);

if (!isNew) {
return;
}

452 名前:>>407 ブラウザ その7 []:2005/07/18(月) 15:15:29
++pageIndex;
if (pageIndex >= pageList.size()) {
pageList.add(path);
} else {
pageList.set(pageIndex, path);
if (pageIndex < pageList.size() - 1) {
pageList.subList(pageIndex + 1, pageList.size()).clear();
}
}
prevBtn.setEnabled(true);
nextBtn.setEnabled(false);

addURLToComboBox(path);
}

public void addURLToComboBox(String url) {
for (int i = 0; i < urlCbox.getModel().getSize(); i++) {
if (urlCbox.getModel().getElementAt(i).equals(url)) {
return;
}
}
urlCbox.addItem(url);
}

public void closeDocument(int index) {
// no operation
}

453 名前::>>407 ブラウザ その8 []:2005/07/18(月) 15:16:02
public void closeAllDocument() {
// no operation
}

public void cut() {
html.cut();
}

public void selectAll() {
html.selectAll();
}

public void actionPerformed(ActionEvent e) {
Object src = e.getSource();
if (src == fileOpen) {
if (openFileChooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
String path = openFileChooser.getSelectedFile().getPath();
addDocument(path, true);
}
} else if (src == fileClose) {
closeDocument(0);
} else if (src == fileAllClose) {
closeAllDocument();
} else if (src == fileExit) {
dispose();
} else if (src == editCut) {
cut();
} else if (src == editSelect) {
selectAll();
}
}

454 名前:>>407 ブラウザ その9 []:2005/07/18(月) 15:16:33
public void hyperlinkUpdate(HyperlinkEvent e) {
HyperlinkEvent.EventType type = e.getEventType();
if (type.equals(HyperlinkEvent.EventType.ACTIVATED)) {
addDocument(e.getDescription(), true);
} else if (type.equals(HyperlinkEvent.EventType.ENTERED)){
statusBar.setText(e.getDescription());
} else {
statusBar.setText("");
}
}
}

455 名前:ザイン帝國軍帥・伯魔壬旭(小島露観) []:2005/07/18(月) 15:17:57
>>407
タブペインは無くしました。

456 名前:442[sage]:2005/07/18(月) 16:59:30
>>443-445
ありがとうございました
助かりました

457 名前:435 []:2005/07/18(月) 18:00:46
すいません自分が愚かでした
UPしますのでどなたかお願いします


http://vipquality.orz.hm/uploader/file/up3786.zip.html
DLKeyはjavaです

458 名前:>>440 LetterCount その1 []:2005/07/18(月) 18:18:05
import java.io.*;
import java.util.*;
import java.util.List;
import javax.swing.*;

public class HW98 {
public static void main(String[] args) {
String text = JOptionPane.showInputDialog(null,
"文字を入力してください", "文字の入力",
JOptionPane.INFORMATION_MESSAGE);
text = text.replaceAll(" +", "");

Map map = new TreeMap();
for (int i = 0; i < text.length(); i++) {
Character ch = new Character(text.charAt(i));
if (map.containsKey(ch)) {
int count = ((Integer) map.get(ch)).intValue();
map.put(ch, new Integer(count + 1));
} else {
map.put(ch, new Integer(1));
}
}

459 名前::>>440 LetterCount その2 []:2005/07/18(月) 18:18:36
List list = new Vector();
Iterator it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next();
char ch = ((Character) entry.getKey()).charValue();
int count = ((Integer) entry.getValue()).intValue();
LetterCount lc = new LetterCount(ch, count);
list.add(lc);
}

Collections.sort(list, new Comparator() {
public int compare(Object src, Object dst) {
LetterCount lc1 = (LetterCount) src;
LetterCount lc2 = (LetterCount) dst;
if (lc1.getCount() < lc2.getCount()) {
return +1;
} else if (lc1.getCount() > lc2.getCount()) {
return -1;
} else {
return 0;
}
}
});

460 名前:>>440 LetterCount その3 []:2005/07/18(月) 18:19:10
StringBuffer sb = new StringBuffer("letter freq\n");
for (int i = 0; i < list.size(); i++) {
LetterCount lc = (LetterCount) list.get(i);
sb.append(lc.getLetter() + " " + lc.getCount() + "\n");
}
try {
FileWriter fw = new FileWriter("letter.txt");
BufferedWriter bw = new BufferedWriter(fw);
fw.write(sb.toString());
fw.close();
JOptionPane.showMessageDialog(null,
"以下のテキストをletter.txtに書き込みました\n" + sb.toString());
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "ファイルエラーが発生しました");
}
}
}

461 名前::>>440 LetterCount その4 []:2005/07/18(月) 18:19:35
class LetterCount {
private char letter;
private int count;
public LetterCount(char ltr, int cnt) {
letter = ltr;
count = cnt;
}
public void setLetter(char ltr){
letter = ltr;
}
public void setCount(int cnt){
count = cnt;
}
public char getLetter(){
return letter;
}
public int getCount(){
return count;
}
public String toString(){
return "Letter:" + letter +
"\nCount:" + count;
}
}


462 名前:ザイン帝國軍帥・伯魔壬旭(小島露観) []:2005/07/18(月) 18:22:43
>>440
文字入力後は、

letter  freq
a     5
b     3
c     1

と、結果メッセージが表示され、このメッセージがletter.txtに
書き込まれます


463 名前:デフォルトの名無しさん[sage]:2005/07/18(月) 18:57:02
すみません、質問ですがjavaのVSMコマンドはwindowsでも実行できますか?

464 名前:デフォルトの名無しさん[sage]:2005/07/18(月) 19:19:19
>463
質問スレ行ってください。

465 名前:418 []:2005/07/18(月) 20:49:21
>>418の問題はやはり無理&めんどくさいのでしょうか・・・。
なんとか自力でやろうとしても何やってんのか全然わからないのですが・・・。

466 名前:デフォルトの名無しさん []:2005/07/18(月) 20:55:02
いや、ちょっとあまりにソースコードの規模が大きいですね。。。
読んで理解するのも一苦労です。。。
これは、一冊の参考書のサンプルソースですから、本があれば理解も早いですけど
流石にそこまでは・・・

467 名前:デフォルトの名無しさん[sage]:2005/07/18(月) 23:58:32
【Java 歴】 1か月
【 種別 】 丸投げです。
【 課題 】 ttp://www.wwwwwwwwww.net/1/soko/VIP00237.txt
       このソースがどういう処理を行っているのか口頭で質問されます。
       よく分からないのでコメントを付けて欲しいです。
       予想される質問としては
       「全体的なプログラムの流れ」「ここのメソッドは何をしているのか」
       「メモリやスタックについて」
【 期限 】 火曜中

468 名前:デフォルトの名無しさん[sage]:2005/07/19(火) 00:16:58
>467
>77

469 名前:デフォルトの名無しさん []:2005/07/19(火) 00:18:11
>>467
あるプログラムコードを、オリジナルマシン語コードに変換するコンパイラ
のプログラムという事は分かりますが、
そのマシン語の仕様と、Operators、Symbol、Type の定数インターフェス
も示してくれないと回答できかねます。。。


470 名前:デフォルトの名無しさん []:2005/07/19(火) 00:20:27
>>467
あるプログラムコードを、あるアセンブラコードに変換するコンパイラ
のソースという事は分かりますが、
そのアセンブラの仕様と、Operators、Symbol、Type の定数インターフェス
も示してくれないと回答できかねます。。。


471 名前:デフォルトの名無しさん[sage]:2005/07/19(火) 00:21:41
最近、字句解析とかコンパイラ作成とかの課題をよく見るけど、流行ってるのかなあ?

472 名前:デフォルトの名無しさん []:2005/07/19(火) 00:26:09
いや、コンパイラの作成は、大昔からある大学恒例の授業なんだよ。
しかし、もう現在の現場ではさほど役立たない。
基礎力を付けるにはいいのだけど

473 名前:デフォルトの名無しさん[sage]:2005/07/19(火) 00:29:49
>472
ふーん。でもJavaでやる意味あるのかなあ。

474 名前:デフォルトの名無しさん[sage]:2005/07/19(火) 00:44:35
javaは勉強にはいいんじゃないかな?

475 名前:デフォルトの名無しさん []:2005/07/19(火) 02:33:34
【Java 歴】 3週間
【 種別 】 丸投げです
【 備考 】 java1.4
【 課題 】
データベース(MYSQL)を操作するGUIを作れと言われたんですが、
下のようなSQL文を作りデータベースに登録しているのですが、
これをSWINGの画面上でデータを表示し(nameのデータを表示)、
自由にコンポーネントを使いデータを追加したり削除したり
できるようにしろと課題を出されました。
お願いします!!!!!!

create table Data(

idint auto_increment primary key,
name varchar(500),
address varchar(500)
);
insert into Data values(null,'??????','?????');

【 期限 】 水曜夜まで

476 名前:デフォルトの名無しさん[sage]:2005/07/19(火) 03:05:49
【Java 歴】 独学で1ヶ月(しかし当分やってなかったから忘れてます)
【 種別 】 丸投げ
【 課題 】
フォルダに入ってる100枚くらいの画像を固定フレームになんとかして表示し、
サムネイルクリックで拡大表示させるするプログラムを作成せよって奴です。
途中までのコードはこんな感じです ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/753.txt
そしてソレを実行するとこうなります ttp://nijibox.ohflip.com/futabafiles/001/src/sa26339.jpg
見ての通り、画像が下のほうでプッツリ切れてうまくいってません、スクロールバーでも付けるべきでしょうがうまく付きません
そこでこのコードを基本に、スクロールバー等の添付&拡大表示させるプログラムの追加をお願いします。
以前拾った拡大表示させるプログラムも一応載せておきます↓
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/754.txt
なにぶん初心者なのでこれらを1つのプログラムにできません。なにか説明不足な点があれば仰ってください。m(__)m
【 期限 】 できるだけ早急にお願いしますm(__)m


477 名前:デフォルトの名無しさん []:2005/07/19(火) 10:32:26
課題なんですがまったくわかりません・・・。
助けてください><

第1のコマンド引数(1文字とする)で与えられた文字が、第2のコマンド引数に何個含まれているかを求めるアプリケーション CountCharを作成しなさい。

例)以下のように、実行すると "baabaa"の中には、四つの a が含まれているので、4を表示する。
Q:\> java CountChar a baabaa
4
Q:\>

478 名前:デフォルトの名無しさん[sage]:2005/07/19(火) 10:42:57
>>477
/**
* 学校で与えられた課題.
* @version わかんない
*/
public final class CountChar {
 /**
  * コンストラクタは使っちゃだめ.
  * @since わかんない
  */
 private CountChar{}
 /**
  * 第一引数の文字数を表示する.
  * @param 第一引数に文字一つ、第二引数に適当な文字列
  * @since わかんない
  */
 public static void main(final String[] 2ちゃんねるで質問しました){
 char c = 2ちゃんねるで質問しました[0].charAt(0);
 String str = 2ちゃんねるで質問しました[1];

 int counter = 0;
 for(int i = 0; i < str.length(); i++){
  if(c == str.charAt(i)){
   counter++;
  }
 }
 System.out.println(counter);
 }
}
//これをそのままコピーして大学にそのまま提出しなさい。
//そうすればあなたは正直者として高く評価されるでしょう。


479 名前:デフォルトの名無しさん[sage]:2005/07/19(火) 10:46:04
>>475
難易度高いぞ。
INSERT, DELETE, UPDATEのほかに
SELECTも必要か?
SELECTはただSELECT * FROM DATA;
とするだけでよろしいか?

まず、MYSQLのドライバはインストールしたか?
JDBCってなんだかわかるか?
Swingってなんだかわかるか?


480 名前:デフォルトの名無しさん[sage]:2005/07/19(火) 10:47:16
>>473
JavaCCのスレッドがあったと思ったけど、スレ主によれば
JavaCCは従来のコンパイラコンパイラに比べ非常に高機能で優れものなんだそうだ。

481 名前:デフォルトの名無しさん []:2005/07/19(火) 10:51:34
>>477
提出しました
ありがとうございました

482 名前:デフォルトの名無しさん []:2005/07/19(火) 10:59:26
>>479
MYSQLからデータを取得してJlistに表示するところまでいきました。
でもここから死にました。追加や削除ができなくて。
難易度高いんですか?? やっやばい!でもお願いします!!


483 名前:デフォルトの名無しさん[sage]:2005/07/19(火) 11:05:58
>>476
いい感じのフォトアルバムだな。

Frame/JFrameクラスで使えるコンポーネント
を探してみな。

AWTやSwingってのが何なのか調べてみるといい。
本屋にもいいのが転がってる。

ちゃんと検索しろ。いいのが転がってたぞ
http://www.google.co.jp/search?num=100&hs=N6L&hl=ja&c2coff=1&client=firefox-a&rls=org.mozilla%3Aja-JP%3Aofficial&q=Java+%E3%82%B9%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%AB%E3%83%90%E3%83%BC&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja



484 名前:デフォルトの名無しさん[sage]:2005/07/19(火) 11:11:20
>>482
なんだ、できるんじゃないか。
つーことはJDBCも使いこなせるってことだな。
おまいのレベルでもどうにかなるかと思われ。

INSERTやDELETEができない?
意味がわからん。エラーが出たのか?
それともやりかたがわからないのか、どっちだ?

485 名前:デフォルトの名無しさん[sage]:2005/07/19(火) 11:12:03
>>481
ほんとにそのまま出したのか?
相手はホントに大学教員か?


486 名前:デフォルトの名無しさん []:2005/07/19(火) 11:16:46
>>485
相手は教員です。
しかし、プログラムをコンパイルできなかったので
やり直しなさいと返事が返ってきました・・・。

487 名前:デフォルトの名無しさん []:2005/07/19(火) 11:28:40
はじめまして。質問です。
JSPファイルで、JavaScriptの関数で得た戻り値(JavaScriptの変数値)を
Javaの変数( <% int appnum; %> )に代入したいのですがうまく
いきません。知っておられる方がいましたら教えて下さい。
よろしくお願いします。

488 名前:デフォルトの名無しさん[sage]:2005/07/19(火) 11:37:24
>>487
順番をよく考えろ。
1 jspがコンパイルされたあと実行されて出力される。
2 HTMLとしてブラウザに表示
3. ブラウザがJavaScriptを実行して値が決まる

489 名前:デフォルトの名無しさん []:2005/07/19(火) 11:54:16
>>484
連休中やってたんですが、自分がSWINGで間違っているのか?
MYSQLで間違っている(たぶん二つとも間違っているはず)
のかすら、表示までは少し考えればできたんですが、
解からなくなってしまいもうここは神さまに
助けてもらう以外ないと思い書き込みました!助けてください(泣)

490 名前:デフォルトの名無しさん []:2005/07/19(火) 12:12:44
閉じるボタンを作って、窓を閉じるアプリケーションってどうやって
つくればいいんでしょうか・・・
教えてください

491 名前:デフォルトの名無しさん []:2005/07/19(火) 12:34:15
 円(Circle)や正方形(Square)クラスを参考にして、三角形(Triangle)とひし形(Diamond)といった図形のクラスを、Figureクラスの子クラス(サブクラス)として、作りなさい。
また、それらを適当に描画するように、アプレットも作成すること。

492 名前:デフォルトの名無しさん []:2005/07/19(火) 12:58:25
mport java.awt.*;
public class Mado4 extends Panel{
public void paint(Graphics g){
g.drawString("Mado Mado", 50, 80);
}
public void init(){
Button b = new Button("EXIT");
add(b);
}
public void start(){
}
static public void main(String args[]){
Frame f =new Frame("Mado4's window");
Mado4 m =new Mado4();
m.init();
f.add(m, "Center");
f.setSize(200,150);
f.setVisible(true);
m.start();
}
}
に閉じる機能をつけるにはどうすればいいんでしょう?

493 名前:>>476 アルバム その1 []:2005/07/19(火) 13:10:38
import java.awt.*;
import java.io.*;
import java.util.*;
import java.util.List;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.Border;
import java.awt.image.*;
public class HW100 extends JFrame {
static final int TW = 120, TH = 120;
public static void main(String args[]) {
JFileChooser fc = new JFileChooser();
fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
if (fc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
new HW100(fc.getSelectedFile());
}
}

HW100(File imgDir) {
File[] filelist = readfile(imgDir.getPath()); //画像リスト読み込み
Toolkit tk = Toolkit.getDefaultToolkit();
ImageObserver obs = new ImageObserver() {
public synchronized boolean imageUpdate(Image img, int infoflags,
int x, int y, int width, int height) {
if (infoflags == ImageObserver.ALLBITS) {
this.notifyAll();
}
return true;
}
};
List iconList = new ArrayList();

494 名前:>>476 アルバム その2 []:2005/07/19(火) 13:11:12
for (int i = 0; i < filelist.length; i++) {
Image img = tk.createImage(filelist[i].getPath());
img.getWidth(obs);
synchronized (obs) {
try {
obs.wait();
} catch (InterruptedException e) {
// no operation
}
}
int w = img.getWidth(null);
int h = img.getHeight(null);
int nw = 0, nh = 0;
if (w >= h) {
nw = TW;
nh = (int) (((double) h / w) * TH);
} else {
nh = TH;
nw = (int) (((double) w / h) * TW);
}
ImageFilter filter = new ReplicateScaleFilter(nw, nh);
ImageProducer pdc = new FilteredImageSource(img.getSource(), filter);

ImageIcon ic = new ImageIcon(tk.createImage(pdc));
ic.setDescription(filelist[i].getPath());
iconList.add(ic);
System.out.println(filelist.length + "枚中" + i
+ "枚目の画像をロードしました");
}

495 名前::>>476 アルバム その3 []:2005/07/19(火) 13:11:47
final JList jlist = new JList(iconList.toArray());
jlist.setLayoutOrientation(JList.HORIZONTAL_WRAP);
jlist.setVisibleRowCount(0);
jlist.setFixedCellWidth(TW + 16);
jlist.setFixedCellHeight(TH + 16);

jlist.setCellRenderer(new DefaultListCellRenderer() {
JLabel label = new JLabel();
Border bd = BorderFactory.createEmptyBorder(16, 16, 16, 16);
Border selbd = BorderFactory.createCompoundBorder(
BorderFactory.createLineBorder(Color.blue, 4),
BorderFactory.createEmptyBorder(12, 12, 12, 12));
{
label.setHorizontalAlignment(JLabel.CENTER);
}
public Component getListCellRendererComponent(JList list,
Object value, int index, boolean isSelected,
boolean cellHasFocus)
{
label.setIcon((ImageIcon) value);
if (isSelected) {
label.setBorder(selbd);
} else {
label.setBorder(bd);
}
return label;
}
});

496 名前:>>476 アルバム その4 []:2005/07/19(火) 13:12:26
final JDialog imgWnd = new JDialog(this);
final JLabel imgLabel = new JLabel();
imgWnd.getContentPane().add(new JScrollPane(imgLabel));
imgWnd.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);

jlist.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() <= 1 || jlist.getSelectedValue() == null) {
return;
}
ImageIcon icon = (ImageIcon) jlist.getSelectedValue();
String imgfile = icon.getDescription();
Image image = Toolkit.getDefaultToolkit().createImage(imgfile);

imgLabel.setIcon(new ImageIcon(image));
imgWnd.pack();
imgWnd.validate();
imgWnd.setVisible(true);
}
});

getContentPane().add(new JScrollPane(jlist));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setExtendedState(JFrame.MAXIMIZED_BOTH);
setVisible(true);
}

497 名前::>>476 アルバム その5 []:2005/07/19(火) 13:12:56
File[] readfile(String dirname) {
ArrayList imgfileList = new ArrayList();
File[] imgfile;
File dir = new File(dirname);

imgfile = dir.listFiles();
for (int i = 0; i < imgfile.length; i++) {
String name = imgfile[i].getName();

if (name.toLowerCase().endsWith(".jpg")
|| name.toLowerCase().endsWith(".gif")
|| name.toLowerCase().endsWith(".jpeg")) {
imgfileList.add(imgfile[i]);
}
}

return (File[]) imgfileList.toArray(new File[0]);
}
}


498 名前:342 []:2005/07/19(火) 13:34:40
すいません、どなたか手助けしていただけませんでしょうか?


499 名前:342 []:2005/07/19(火) 13:38:35
名前ミスしました

500 名前:ザイン帝國軍帥・伯魔壬旭(小島露観) []:2005/07/19(火) 13:39:05
>>476
初めにファイルダイアログが出るので、それで画像ファイル群のフォルダを
選んでください。選ぶと、そのフォルダの画像を全部ロードします。
ロードには時間がかかります。画像のサムネイルを表示します。
サムネイルをダブルクリックうすろt拡大表示されます。


501 名前:457[sage]:2005/07/19(火) 13:40:56
342

502 名前:457[sage]:2005/07/19(火) 13:44:01
スレ汚しすみません(T-T)
342、435、457は同一人物です

503 名前:476[sage]:2005/07/19(火) 14:35:10
>>493-497
>>500
コンパイルしようとしたらこんなエラーが出てしまいます(´;ω;`)
なにぶん初心者なんでエラーの意味が分からんです お助けください。

C:\myjava>javac 2ch.java
2ch.java:9: クラス HW100 は public であり、ファイル HW100.java で宣言しなければ
なりません。
public class HW100 extends JFrame {
^
エラー 1 個

504 名前:デフォルトの名無しさん []:2005/07/19(火) 14:48:30
>>503
ImageViewer.java のファイル名を HW100.java に変えてください。
又は
ソースコード内の「HW100」を全部「ImageViewer」に変えてください。


505 名前:476 503[sage]:2005/07/19(火) 15:22:35
ええと・・・今度はこんな文字が出て停止します

C:\myjava>java HW100
104枚中0枚目の画像をロードしました
104枚中1枚目の画像をロードしました
[停止]

全部ロードしきれてません、なにか画像にでも問題があるのでしょうか?
ちなみに全部jpegで104枚程でサイズは2KB〜10KBです

506 名前:デフォルトの名無しさん []:2005/07/19(火) 15:55:29
フォルダ内の画像の数を減らしてみてください。
おそらくメモリ不足です。
フォルダ内の画像が何枚でも良いバージョンが必要なら、
言ってください

507 名前:476 503[sage]:2005/07/19(火) 16:00:44
(^^;)あ、じゃぁそのバージョンでお願いします ホント度々申し訳ありません

[追加です]
ためしに画像を3枚程にして実行してみたら実行はできました
しかし画像をダブルクリックしても拡大しません 煤i゜ω゜;)
あとフレームは800×640のサイズにして画像がうまく揃って並び、
拡大も800×640のフレームに収まるちょうど良いサイズに拡大するようにお願いしますですm(__m

508 名前:デフォルトの名無しさん []:2005/07/19(火) 16:29:44
>>507
拡大ってのは、つまりサムネイルを元の画像サイズで表示する事ですよね。
別ウィンドウに元画像が出るはずなのですが・・・
これが出ない訳はないのですが・・・
あと30枚くらいで試してみてください。
そちらのメモリ容量は幾らなのですか?

509 名前:デフォルトの名無しさん[sage]:2005/07/19(火) 16:36:31
あぁ、違います、拡大ってのは大きくするって意味です フレームいっぱいに

510 名前:デフォルトの名無しさん []:2005/07/19(火) 16:52:53
30枚くらいの画像は表示できますか?

511 名前:デフォルトの名無しさん[sage]:2005/07/19(火) 17:36:07
あ〜…スイマセン (--;) 講義が始まってしまいまして(今はケータイで書き込んてます)
確認できるのは7時か8時くらいになっちゃいます
本当スイマセンm(__;)m

512 名前:デフォルトの名無しさん[sage]:2005/07/19(火) 18:47:30
【Java 歴】 3ヶ月
【 種別 】 丸投げ
【 課題 】 342と同じ物です
どなたか俺のソースコードを読んでくれる神はいませんでしょうか?
再UPしましたのでどなたかお願いします(;_;)

http://uppp.dip.jp/src/uppp5999.zip

513 名前:476 503[sage]:2005/07/19(火) 19:37:44
確認イタシマシタ・・・・。
(゜д゜;)ウォォ!正直凄ぇ!自分の中の完成イメージとクリソツです!!

・・・あ、でも拡大がうまくいってなかった >>509のように動作するよう改良お願いします!
因みにちゃんと画像100枚読み込めました。

514 名前:476 503[sage]:2005/07/19(火) 19:48:38
ってありゃ?(´・ω・`)?
もう一度実行したら>>505のようなエラーでまた停止・・・
全てのアプリを終了してやり直しても停止・・・
そんなにメモリを喰うプログラムなんですかねぇ・・・。

515 名前:>>509 ブラウザ その1 []:2005/07/19(火) 20:21:21
import java.awt.*;
import java.awt.image.*;
import java.io.*;
import java.util.*;
import java.util.List;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.Border;
public class HW100 extends JFrame {
static final int THUMB_WIDTH = 140, THUMB_HEIGHT = 140,
IMAGE_WIDTH = 800, IMAGE_HEIGHT = 600;
public static void main(String args[]) {
JFileChooser fc = new JFileChooser();
fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
if (fc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
fc.setVisible(false);
new HW100(fc.getSelectedFile());
}
}
HW100(File imgDir) {
File[] files = readfile(imgDir.getPath());
List iconList = new ArrayList();
for (int i = 0; i < files.length; i++) {
Image img = getScaledImage(files[i].getPath(), THUMB_WIDTH, THUMB_HEIGHT);
ImageIcon ic = new ImageIcon(img, files[i].getPath());
iconList.add(ic);
System.out.println(files.length + "枚中" + i
+ "枚目の画像をロードしました");
}

516 名前::>>509 ブラウザ その2 []:2005/07/19(火) 20:22:07
final JList jlist = new JList(iconList.toArray());
jlist.setLayoutOrientation(JList.HORIZONTAL_WRAP);
jlist.setVisibleRowCount(0);
jlist.setFixedCellWidth(THUMB_WIDTH + 16);
jlist.setFixedCellHeight(THUMB_HEIGHT + 16);

jlist.setCellRenderer(new DefaultListCellRenderer() {
JLabel label = new JLabel();
Border bd = BorderFactory.createEmptyBorder(16, 16, 16, 16);
Border selbd = BorderFactory.createCompoundBorder(
BorderFactory.createLineBorder(Color.blue, 4),
BorderFactory.createEmptyBorder(12, 12, 12, 12));
{
label.setHorizontalAlignment(JLabel.CENTER);
}
public Component getListCellRendererComponent(JList list,
Object value, int index, boolean isSelected,
boolean cellHasFocus)
{
label.setIcon((ImageIcon) value);
if (isSelected) {
label.setBorder(selbd);
} else {
label.setBorder(bd);
}
return label;
}
});

517 名前:>>509 ブラウザ その3 []:2005/07/19(火) 20:22:50
final CardLayout cardL = new CardLayout();
final JPanel baseP = new JPanel(cardL);
baseP.setPreferredSize(new Dimension(800, 600));
JScrollPane thumbP = new JScrollPane(jlist);
final JLabel imageP = new JLabel();
imageP.setHorizontalAlignment(JLabel.CENTER);
baseP.add(thumbP, "thumb");
baseP.add(imageP, "image");
cardL.show(baseP, "thumb");

jlist.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() <= 1 || jlist.getSelectedValue() == null) {
return;
}
ImageIcon icon = (ImageIcon) jlist.getSelectedValue();
String filename = icon.getDescription();
Image img = getScaledImage(filename, IMAGE_WIDTH, IMAGE_HEIGHT);
ImageIcon ic = new ImageIcon(img);
imageP.setIcon(ic);
cardL.show(baseP, "image");
}
});
imageP.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
cardL.show(baseP, "thumb");
}
});

518 名前::>>509 ブラウザ その4 []:2005/07/19(火) 20:23:19
getContentPane().add(baseP);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setResizable(false);
setVisible(true);
}

File[] readfile(String dirname) {
ArrayList imgfileList = new ArrayList();
File[] imgfile;
File dir = new File(dirname);

imgfile = dir.listFiles();
for (int i = 0; i < imgfile.length; i++) {
String name = imgfile[i].getName();

if (name.toLowerCase().endsWith(".jpg")
|| name.toLowerCase().endsWith(".gif")
|| name.toLowerCase().endsWith(".jpeg")) {
imgfileList.add(imgfile[i]);
}
}

return (File[]) imgfileList.toArray(new File[0]);
}

519 名前:::>>509 ブラウザ その5 []:2005/07/19(火) 20:24:45
Image getScaledImage(String filename, int width, int height) {
ImageObserver obs = new ImageObserver() {
public synchronized boolean imageUpdate(Image img, int infoflags,
int x, int y, int w, int h) {
if (infoflags == ImageObserver.ALLBITS) {
this.notifyAll();
}
return true;
}
};
Image img = Toolkit.getDefaultToolkit().createImage(filename);
img.getWidth(obs);
synchronized (obs) {
try {
obs.wait();
} catch (InterruptedException e) { }
}
int w = img.getWidth(null);
int h = img.getHeight(null);
int nw = 0, nh = 0;
if (w >= h) {
nw = width;
nh = (int) (((double) h / w) * height);
} else {
nh = height;
nw = (int) (((double) w / h) * width);
}
return img.getScaledInstance(nw, nh, Image.SCALE_FAST);
}
}

520 名前:デフォルトの名無しさん []:2005/07/19(火) 20:32:16
ワタクシの環境では一応動くのですが・・・
画像のロードに ToolKit を使ってる関係かもしれません。
元のコードが、ToolKit を使ってたので、そのまま ToolKit にしました。
一からなら素直に ImageIO クラスを使ったのですが・・・

521 名前:476 503[sage]:2005/07/19(火) 20:34:22
>>515-519
うはぁ!完璧っス!エラーも出ないっス!

orz 心から感謝致します ありがとうございました

522 名前:デフォルトの名無しさん[sage]:2005/07/19(火) 20:39:37
今日は回転早いなー。チャット状態じゃん。

以下俺様用メモ

TODO
>435=>457=>512(!=>342) // 神待ち
>475 // 状況が読み取れません。。
>477
>490

質問が曖昧です。。
>491

523 名前:デフォルトの名無しさん[sage]:2005/07/19(火) 20:45:32
>>522
まとめGJです!

524 名前:デフォルトの名無しさん[sage]:2005/07/19(火) 20:48:37
>477
今度からテンプレ(>162)使ってくれい。

// CountChar.java
public class CountChar {
public static void main(String[] args) {
char c = args[0].charAt(0);
String s = args[1];
int count = 0;
for( int i=0; i<s.length(); i++ ) {
if( c == s.charAt(i) ) count++;
}
System.out.println( count );
}
}

入力エラーなどは全く考慮してません。

525 名前:デフォルトの名無しさん[sage]:2005/07/19(火) 20:52:24
>490
今度からテンプレ(>162)使ってくれい。

// CloseFrame.java
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class CloseFrame extends JFrame implements ActionListener {
private JButton closeButton;
public static void main(String[] args) {
CloseFrame self = new CloseFrame();
self.setSize( 200, 200 );
self.setVisible(true);
}

public CloseFrame() {
closeButton = new JButton("閉じる");
closeButton.addActionListener(this);
getContentPane().add(closeButton);
}

public void actionPerformed(ActionEvent ae) {
if( ae.getSource() == closeButton ) {
System.exit(0);
}
}
}

526 名前:475[sage]:2005/07/19(火) 22:03:31
>>522
すみません!!一から作っていただきたいんですが(泣)

527 名前:デフォルトの名無しさん []:2005/07/19(火) 22:10:52
>458->461
thank you so much.

528 名前:512[sage]:2005/07/20(水) 00:16:14
誰かHELP!

529 名前:ザイン帝國軍帥・伯魔壬旭(小島露観) []:2005/07/20(水) 00:28:33
>>475
ここに、データベースの回答プログラムを貼っておきました。

http://www.wikiroom.com/java/index.php?%A5%BD%A1%BC%A5%B9%C5%BD%C9%D5%A4%B1

MySQLのドライバをクラスパスに含めてください。
このプログラムでは、接続するMySQLのユーザー名は「root」、パスワードは「root」、
データベース名は「test」です。
data テーブルは、test データベースに作成してください。

読込ボタンで、全行を表示します。行データは、JTable に表示されます。
挿入ボタンで、入力されたデータの行を挿入します。
削除ボタンで、現在選択されてる行を削除します。
JTable のセルをダブルクリックすると、列を編集できます。(ID列は編集不可)
編集を決定すると、その列データが更新されます。


530 名前:デフォルトの名無しさん[nohohon_honobono_honwaka@yahoo.co.jp]:2005/07/20(水) 00:33:11
どなたかデザインパターンわかる方、1から作っていただきたいのですが。アドバイス、参考ソースでもかまいません。メールお願いします。

531 名前:デフォルトの名無しさん []:2005/07/20(水) 00:38:55
何を作れというのか・・・

532 名前:デフォルトの名無しさん[nohohon_honobono_honwaka@yahoo.co.jp]:2005/07/20(水) 00:42:55
>>531メールいただけたら光栄です。すいません。

533 名前:369[sage]:2005/07/20(水) 01:19:56
>>532
テンプレ準拠でここで問題晒せ。
話はそれからだ。


534 名前:デフォルトの名無しさん[nohohon_honobono_honwaka@yahoo.co.jp]:2005/07/20(水) 01:45:12
【Java 歴】 2ヶ月
【 種別 】 丸投げですすいません
【 課題 】 ブラックジャック
【不明点 】 すべて
【 用語 】 JAVA
【 期限 】 できるだけ早めに
【 備考 】独学で勉強中です。Cしかやったことないので全くわかりません。

535 名前:デフォルトの名無しさん []:2005/07/20(水) 01:58:12
String変数に2005/12/10、2005/7/3などの日付の値が入っています。
2005/7/3などの値は2005-07-03みたく形をYYYY-MM-DDと変換したいのですが
どうしたらいいのでしょうか?
当然、日付として不正なものはエラーとさせたいのですが。

536 名前:デフォルトの名無しさん[sage]:2005/07/20(水) 03:52:29
>>535
import java.text.*;
public class Q535 {
public static void main(String[] args) {
SimpleDateFormat parser = new SimpleDateFormat("yyyy/M/d");
parser.setLenient(false); // 厳密な解析を行う
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String date1 = "2005/12/10";
String date2 = "2005/7/3";
String date3 = "2005/2/31"; // 不正な日付
try {
System.out.println(formatter.format(parser.parse(date1)));
System.out.println(formatter.format(parser.parse(date2)));
System.out.println(formatter.format(parser.parse(date3))); // ここでParseException
} catch (ParseException e) {
e.printStackTrace();
}
}
}

537 名前:デフォルトの名無しさん[sage]:2005/07/20(水) 04:11:56
>>534
情報小出しにするな。
話にならん。


538 名前:デフォルトの名無しさん[sage]:2005/07/20(水) 05:41:14
>>529
ありがとうございます。動作確認もしました!! 
出来がすごいです、コードもしっかり拝見させていただきます(泣)


539 名前:デフォルトの名無しさん []:2005/07/20(水) 08:15:06
>>536
ありがとうございます。たすかりました。

540 名前:ザイン帝國軍帥・伯魔壬旭(小島露観) []:2005/07/20(水) 10:25:57
>>534
ここに回答プログラムを貼っておきました。

http://www.wikiroom.com/java/index.php?%A5%BD%A1%BC%A5%B9%C5%BD%C9%D5%A4%B1


541 名前:課題 []:2005/07/20(水) 11:39:46
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=25554
バイオリズムを計算する表を完成させる。
課題2…ボックスを3つ追加し、判定日を入力できるようにする。
実行結果は、誕生日1985/4/2と判定日2005/7/7を入力してokを押すと、
経過日数+7401が表示される。
課題3…課題2の段階ではphysical(赤)のバイオリズムしか表示されないので、
emotional(緑)とintellectual(青)が表示されるようにせよ。
各プロットは、四角の点のままでよい。
問題は簡単らしいです。

542 名前:課題 []:2005/07/20(水) 12:30:22
import java.io.*;
public class ReadExample {
public static boolean readWord(BufferedReader reader, StringTree tree) throws IOException{
int c;
StringTree currentTree = tree;
do{ c = reader.read();
if(c < 0)
return false;
}while(!StringTree.isLetter((char)c));
do{ currentTree = StringTree.append(currentTree, (char)c);
c = reader.read();
}while(c >= 0 && StringTree.isLetter((char)c));
return true; }
public static void main(String[] args) throws IOException {
String fileName = "words.txt";
BufferedReader reader
= new BufferedReader(new FileReader(fileName));
StringTree tree = new StringTree(' ');
while (readWord(reader, tree)) ;
reader.close();
String input = javax.swing.JOptionPane.showInputDialog("Word:");
String result;
if (tree.find(input))
result = "found";
else
result = "not found";

javax.swing.JOptionPane.showMessageDialog(null, result);
System.exit(0); }
}


543 名前:??U^?e`?Q []:2005/07/20(水) 12:35:36
>>542のつづきです
public class StringTree {
private char letter;
private StringTree[] children;
public StringTree(char c) { letter = c;
children = new StringTree[26]; }
public static int getIndex(char c) {
return toCapital(c) - 'A'; }
public static char toCapital(char c) { if (c >= 'a')
return (char)(c - 'a' + 'A');
else  return c; }
public static boolean isLetter(char c) {
return 'A' <= c && c <= 'Z' || 'a' <= c && c <= 'z'; }
public boolean find(String word){
int a = word.length();
int[] b = new int[a];
int[] c = new int[a];
for(int i = 0;i < a;i++){
b[i] = word.charAt(i) - 'A';
if(0 < b[i] && b[i] < 25){ c[i] =b[i]; }
else c[i] = b[i] - 'a' + 'A'; }
StringTree tree = this;
for(int i = 0;i < a;i++){ if(tree.children[c[i]] == null){ return false; }
tree = tree.children[c[i]]; } return true; }
public static StringTree append(StringTree a , char c){
StringTree child = a.children [getIndex(c)];
if(child == null) { a.children[getIndex(c)] = new StringTree(c);
child = a.children [getIndex(c)]; } return child; } }

すみません課題が後一歩のところで詰まってるので教えてください。今上の二つのクラスで英単語の辞書データーを読み込んで、
その後に単語をうち込むとあるかないか答えてくれるようにはなってます。しかし課題は無かった場合は辞書的に一番近い単語を表示させたいという事なんで
findメソッドあたりの変更が必要なのかなと思うんですが詰まってます。皆さん教えてくださいお願いします。

544 名前:>>541 バイオリズム その1 []:2005/07/20(水) 14:10:03
import java.util.*;
import java.awt.*;
import java.awt.image.*;
import java.awt.event.*;
import javax.swing.*;

public class HW102 extends JApplet {
static final int rithm23[]={ 0, 26, 51, 73, 88, 97, 99, 94, 81, 63,
39, 13,-13,-39,-63,-81,-94,-99,-97,-88,-73,-51,-26};
static final int rithm28[]={ 0, 22, 43, 62, 78, 90, 97,100, 97, 90,
78, 62, 43, 22, 0,-22,-43,-62,-78,-90,
-97,-100,-97,-90,-78,-62,-43,-22};
static final int rithm33[]={ 0, 18, 37, 54, 69, 81, 90, 97, 99, 98,
94, 86, 75, 61, 45, 28, 9, -9,-28,-45,
-61,-75,-86,-94,-98,-99,-97,-90,-81,-69,-54,-37,-18};

BufferedImage img = new BufferedImage(400, 380, BufferedImage.TYPE_INT_ARGB);
Graphics2D g = img.createGraphics();

public void init() {
final JLabel graph = new JLabel(new ImageIcon(img));
graph.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4));
graph.setHorizontalTextPosition(JLabel.CENTER);
graph.setHorizontalAlignment(JLabel.CENTER);
graph.setFont(new Font("Dialog", 1, 20));

545 名前:>>541 バイオリズム その2 []:2005/07/20(水) 14:10:41
JPanel box = new JPanel();
box.setLayout(new BoxLayout(box, BoxLayout.Y_AXIS));
box.setOpaque(true);
box.setBackground(new Color(220, 220, 250));
box.setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createEtchedBorder(),
BorderFactory.createEmptyBorder(16, 16, 16, 16)));

final JTextField[] tfd = new JTextField[6];
String[] name = { "(birth year) y", "(birth month) m", "(birth day) d",
"(now year) yy", "(now month) mm", "(now day) dd" };
for (int i = 0; i < tfd.length; i++) {
tfd[i] = new JTextField(4);
tfd[i].setFont(new Font("Dialog", 0, 15));
JLabel lab = new JLabel(name[i]);
lab.setPreferredSize(new Dimension(100, 20));
JPanel pal = new JPanel();
pal.setOpaque(false);
pal.add(lab);
pal.add(tfd[i]);
box.add(pal);
box.add(Box.createGlue());
}

546 名前::>>541 バイオリズム その3 []:2005/07/20(水) 14:11:14
JButton button = new JButton("OK");
button.setAlignmentX(0.5F);
box.add(button);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
int y = Integer.parseInt(tfd[0].getText());
int m = Integer.parseInt(tfd[1].getText());
int d = Integer.parseInt(tfd[2].getText());
int yy = Integer.parseInt(tfd[3].getText());
int mm = Integer.parseInt(tfd[4].getText());
int dd = Integer.parseInt(tfd[5].getText());
int total = calcDay(y, m, d, yy, mm, dd);

drawGraph(50, 150, total, yy, mm, dd);
drawLine(50, 150, total);
} catch (Exception ex) {
drawGraph(50, 150, 0, 0, 0, 0);
graph.setText("入力数値が不正です");
graph.repaint();
return;
}
graph.setText("");
graph.repaint();
}
});

547 名前:>>541 バイオリズム その4 []:2005/07/20(水) 14:11:57
getContentPane().setBackground(new Color(240, 240, 250));
getContentPane().add(box, BorderLayout.WEST);
getContentPane().add(graph);
((JComponent) getContentPane()).setBorder(BorderFactory.createEmptyBorder(8, 8, 8, 8));

drawGraph(50, 150, 0, 0, 0, 0);
}

int calcDay(int y, int m, int d, int yy, int mm, int dd) throws Exception {
GregorianCalendar src = new GregorianCalendar(y, m - 1, d);
GregorianCalendar dst = new GregorianCalendar(yy, mm - 1, dd);
if (src.getTime().compareTo(dst.getTime()) > 0) {
throw new Exception();
}

int total = 0;
while (!src.equals(dst)) {
src.add(Calendar.DATE, 1);
++total;
}
return total;
}

548 名前::>>541 バイオリズム その5 []:2005/07/20(水) 14:12:35
void drawGraph(int x0, int y0, int total, int yy, int mm, int dd) {
g.setColor(Color.white);
g.fillRect(0, 0, img.getWidth(), img.getHeight());
g.setColor(Color.black);

g.drawLine(x0, y0, x0 + 300, y0);
g.drawLine(x0, y0 + 100, x0 + 5, y0 + 100);
g.drawString("+100", x0 - 30, y0 - 95);
g.drawLine(x0, y0 - 100, x0 + 5, y0 - 100);
g.drawString("-100", x0 - 30, y0 + 105);
g.drawString(" 0", x0 - 30, y0 + 5);

g.drawLine(x0, y0 - 120, x0, y0 + 120);
g.drawString(yy + "/" + mm + "/" + dd, x0 + 2, y0 + 20);
g.drawString("(+" + total + ")", x0 + 2, y0 + 40);
for (int i = 1; i <= 30; i++) {
if (i % 10 == 0) {
g.drawLine(x0 + i * 10, y0 - 120, x0 + i * 10, y0 + 120);
g.drawString("+" + i, x0 + i * 10 + 2, y0 + 20);
g.drawString("(+" + (total+i) + ")", x0 + i * 10 + 2, y0 + 40);
}
else {
g.drawLine(x0 + i * 10, y0 - 2, x0 + i * 10, y0);
}
}

549 名前:まんちょ []:2005/07/20(水) 14:20:37
テキストファイルに書かれている文字を1行づつEnterキーを押しながら
読み込んでいきたいのですが、JAVAで可能ですか?可能な場合は
やり方などどんなことでもいいので是非教えて下さい。お願いします。

550 名前:>>541 バイオリズム その6 []:2005/07/20(水) 14:30:32
g.setColor(Color.black);
g.drawString("BIORHYTHM", x0 + 110, y0 + 140);
g.setColor(Color.red);
g.drawString("Physical Cycle", x0 + 20, y0 + 160);
g.setColor(Color.green);
g.drawString("Emotional Cycle", x0 + 20, y0 + 180);
g.setColor(Color.blue);
g.drawString("Intellectual Cycle", x0 + 20,y0 + 200);
}

void drawLine(int x0, int y0, int total) {
int xnow, ynow;

g.setColor(Color.black);
g.drawString("Total Days: " + total, x0 + 20,y0 + 220);

g.setColor(Color.red);
xnow = x0;
ynow = y0 - rithm23[total % 23];
g.fillRect(xnow, ynow, 5, 5);
for (int i = 1; i <= 30; i++) {
xnow = x0 + i * 10;
ynow = y0 - rithm23[(total + i) % 23];
g.fillRect(xnow, ynow, 5, 5);
}

551 名前::>>541 バイオリズム その7 []:2005/07/20(水) 14:31:04
g.setColor(Color.green);
xnow = x0;
ynow = y0 - rithm28[total % 28];
g.fillRect(xnow, ynow, 5, 5);
for (int i = 1; i <= 30; i++) {
xnow = x0 + i * 10;
ynow = y0-rithm28[(total + i) % 28];
g.fillRect(xnow, ynow, 5, 5);
}

g.setColor(Color.blue);
xnow = x0;
ynow = y0 - rithm33[total % 33];
g.fillRect(xnow, ynow, 5, 5);
for (int i = 1; i <= 30; i++) {
xnow = x0 + i * 10;
ynow = y0-rithm33[(total + i) % 33];
g.fillRect(xnow, ynow, 5, 5);
}
}
}


552 名前:ザイン帝國軍帥・伯魔壬旭(小島露観) []:2005/07/20(水) 14:31:47
>>541
アプレットサイズは「640×400」にしてください


553 名前:デフォルトの名無しさん[nohohon_honobono_honwaka@yahoo.co.jp]:2005/07/20(水) 14:54:28
ザイン帝國軍帥さん、ありがとうございます。デザインパターンでイクリプスを使ってブラックジャックをつくれるのですか?もしもできるのならば今後の勉強のために参考にしたいのですが。

554 名前:デフォルトの名無しさん []:2005/07/20(水) 15:30:18
553ですが、自分でやってみます。たびたびすいません。

555 名前:デフォルトの名無しさん[sage]:2005/07/20(水) 16:56:06
職人降臨待ちまとめ

>>512
>>491

556 名前:デフォルトの名無しさん []:2005/07/20(水) 17:17:38
>>542->>543
もだろ


557 名前:デフォルトの名無しさん[sage]:2005/07/20(水) 17:20:39
見落としたぜ

558 名前:490 []:2005/07/20(水) 18:37:21
>>525
助かりました!ほんとに感謝してますm(_)m

559 名前:デフォルトの名無しさん[sage]:2005/07/20(水) 19:06:50
>556
そういう時は >>542-543 と書くといい。
動作の違いはhtmlもしくは2chビューアのポップアップの仕方を参照。

560 名前:>>543 辞書 その1 []:2005/07/20(水) 22:01:49
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import javax.swing.*;

public class HW99 {
static Set dic = new TreeSet();

public static void main(String[] args) {
try {
String fileName = "words.txt";
BufferedReader reader = new BufferedReader(new FileReader(fileName));
String line = null;
while ((line = reader.readLine()) != null) {
if (line.length() == 0) {
continue;
}
dic.add(line.toLowerCase());
}
reader.close();
} catch (Exception e) {
System.out.println("辞書フィアル words.txt のロードに失敗しました");
System.exit(0);
}

561 名前::>>543 辞書 その2 []:2005/07/20(水) 22:04:34
JPanel panel = new JPanel(new BorderLayout());
panel.setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createEtchedBorder(),
BorderFactory.createEmptyBorder(4, 4, 4, 4)));
final JTextField tfd = new JTextField(20);
tfd.setFont(new Font("Dialog", 0, 15));
tfd.setBorder(BorderFactory.createLineBorder(Color.black));
JButton btn = new JButton("検索する");
panel.add(tfd);
panel.add(btn, BorderLayout.EAST);

final JTextArea tarea = new JTextArea(8,1);
tarea.setFont(new Font("Dialog", 0, 15));
tarea.setEditable(false);
tarea.setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createLineBorder(Color.lightGray, 8),
BorderFactory.createLoweredBevelBorder()));

btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (tfd.getText() == null || tfd.getText().length() == 0) {
return;
}
String text = find(tfd.getText());
tarea.setText(text);
}
});

562 名前:>>543 辞書 その3 []:2005/07/20(水) 22:05:05
JFrame frame = new JFrame();
frame.getContentPane().add(tarea);
frame.getContentPane().add(panel, BorderLayout.NORTH);
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}

static String find(String input) {
if (dic.contains(input.toLowerCase())) {
return "単語" + input + "は辞書に存在します";
}

class EditDist implements Comparable {
String word;
int cost;
EditDist(String word, int cost) {
this.word = word;
this.cost = cost;
}
public int compareTo(Object o) {
return new Integer(cost).compareTo(new Integer(((EditDist) o).cost));
}
}

Set edSet = new TreeSet();
Iterator it = dic.iterator();

563 名前::>>543 辞書 その4 []:2005/07/20(水) 22:05:35
while (it.hasNext()) {
String word = (String) it.next();
int cost = getEditDistance(input, word);
if (cost != -1) {
edSet.add(new EditDist(word, cost));
}
}
if (edSet.isEmpty()) {
return "単語" + input + "は辞書に存在しません\n"
+ "それに近い単語も存在しません";
}

StringBuffer sb = new StringBuffer(
"単語" + input + "は辞書に存在しません\n"
+ "それに最も近い単語群を表示します\n\n");
it = edSet.iterator();
int count = 0;
while (it.hasNext() && count < 5) {
EditDist ec = (EditDist) it.next();
sb.append((count + 1) + "位:" + ec.word
+ ":編集距離:" + ec.cost + "\n");
++count;
}

return sb.toString();
}

564 名前:デフォルトの名無しさん []:2005/07/20(水) 22:06:07
>>549
import java.io.*;
import java.util.*;
class sample1{
ArrayList data;
public static void main(String arge[]){
if(arge[0].length()>0){
sample1 sm = new sample1();
sm.reader(arge[0]);
if(sm.data != null){
for(int i = 0;i<sm.data.size();){
try{
if(System.in.read() != 13) continue;
System.out.print((String)sm.data.get(i++));
}catch(IOException e){}

}}}}
void reader(String filename){
try{
BufferedReader r = new BufferedReader(new FileReader(filename));
data = new ArrayList();
String s ;
while((s = r.readLine())!=null){
data.add(s);
}
r.close();
}catch(IOException e){
System.out.println("Error:" + e);
}}}


565 名前:::>>543 辞書 その5 []:2005/07/20(水) 22:06:07
static int getEditDistance(String src, String dest) {
int[][] map = new int[src.length()][dest.length()];
char[] srcC = src.toCharArray();
char[] destC = dest.toCharArray();
int max = (src.length() >= dest.length()) ? src.length() : dest.length();

for (int x = 0; x < map.length; x++) {
for (int y = 0; y < map[x].length; y++) {
if (x == 0 && y == 0) {
map[x][y] = (srcC[x] == destC[y]) ? 0 : 1;
continue;
}
int cost = Integer.MAX_VALUE;
if (x - 1 >= 0 && y - 1 >= 0) {
cost = map[x - 1][y - 1];
}
if (x - 1 >= 0) {
cost = (map[x - 1][y] < cost) ? map[x - 1][y] : cost;
}
if (y - 1 >= 0) {
cost = (map[x][y - 1] < cost) ? map[x][y - 1] : cost;
}
map[x][y] = (srcC[x] == destC[y]) ? cost + 0 : cost + 1;
}
}

if (map[src.length() - 1][dest.length() - 1] >= max) {
return -1;
}
return map[src.length() - 1][dest.length() - 1];
}
}

566 名前:ザイン帝國軍帥・伯魔壬旭(小島露観) []:2005/07/20(水) 22:12:31
>>543
課題の規模から考えると、単語の照合はコレクションクラスで行い、
最も近い単語を求めるのは、二次元配列を用いたマップ法による
編集距離の解法でするのが、一番適してると思われます。

words.txt には、

pen
desk
button

みたいに、単語を改行して記入してください。
それぞれの単語が辞書に登録されます。


567 名前:デフォルトの名無しさん[sage]:2005/07/20(水) 22:26:46
>560-565
イチャモンつけるようで申し訳ないが、
課題は一から書くんじゃなくて>542-543のソースを「修正」することじゃないか?

あと「辞書ファイル」って言ってるぐらいだから
words.txtの単語は辞書順に並んでると想定していいんでないかい?

568 名前:543 []:2005/07/20(水) 23:06:56
皆さんありがとうございます。一から書いていただいてもぜんぜん結構です。
一応自分でかなり努力したんでそれを使ってもらえたらうれしかったですが…
ちゃんと見直してちゃんと理解して提出したいと思います。

569 名前:デフォルトの名無しさん []:2005/07/21(木) 00:32:59
分からないので質問です。
まず、次のプログラムはどのようにプリントされるでしょうか。

public class ToStringTest {
public static void main(String argv[]) {
A a = new A();
System.out.println(a);
}
}

class A {
}


また、次のプログラムはどのようにプリントされるでしょうか。
public class ToStringTest {
public static void main(String argv[]) {
A a = new A();
System.out.println(a);
}
}

class A {
public String toString() {
return "Hey, I'm class A";
}
}


変更したのはクラスAのプログラムです。 System.out.printlnのプログラムはまったく変更していないのに、 System.out.printlnの動作が変わりました。これはなぜでしょうか?

System.out.println にオブジェクトを渡すと、そのオブジェクトのtoStringメソッドを呼び出して、文字列に直してプリントします。 toStringはObjectクラスで定義されているので、どのオブジェクトでも使えます。

570 名前:デフォルトの名無しさん[sage]:2005/07/21(木) 02:06:58
>>569
前半は自分で実行してみろ。AのスーパークラスであるObjectのtoString()が呼ばれている。

後半はSystem.out.println(Object)が行っている処理は何も変わっていない。
オーバーライドされてAのtoString()が返す値が変わったから出力が変わっただけだろ。

何がわからないのかがわからないのだが・・・・

571 名前:ザイン帝國軍帥・伯魔壬旭(小島露観)[sage]:2005/07/21(木) 08:20:16
>>567-568
言い訳するようですが、StringTree による文字列木(というのか知りませんが)
の構築は、「最も近い単語を見つける」機能のケースには適当でないと
思いました。

自分も、LZ法系の圧縮プログラム作成時にこの文字列木を使いました。
現在のポインタ以降の文字列が、今までの文字列列内のどこかの部分と
一致するかを調べるケースです。

こういう単語の照合では有効ですが、最近似単語を求めるケースで
文字列木を使うのは適当でないと思ったので(自分はそのアルゴリズムを
知らない)、仕方なく全面的に変えてしまう事にしました。


572 名前:デフォルトの名無しさん[sage]:2005/07/21(木) 11:24:27
【Java 歴】 3ヶ月
【 種別 】 丸投げです、すいません。
【 課題 】 3枚の手札でミニポーカーゲームを作る。カードは全部で18枚とする。
カードはイメージファイルで表示させる(赤・青・黄の背景色に1〜6まで)
表示された各手札の下にチェックボックスを設定し、ボタンを押した時チェックを入れたカードが入れ替わるようにする
ボタンを押した後同じ数字が2枚そろえば1点、3枚そろえば3点、すべてが同じ色のカードなら2点というふうな点数を表示させる。
【不明点 】 情けなくもすべてが不明('A`)いちおうカードだけは作りました。r,b,yそれぞれ数字.jpgというファイル名にしてます
なにをどう組み合わせればいいのか皆目検討がつきません・・・。
【 用語 】
【 期限 】 ついに明日提出期限orz
【 備考 】 助けて神様

573 名前:デフォルトの名無しさん[sage]:2005/07/21(木) 12:53:50
>569
試験前の時点でこれが理解できないなら単位は絶対来ないと保証してやる、安心しろ。

574 名前:デフォルトの名無しさん[sage]:2005/07/21(木) 13:12:32
>>569
今の時点でこれが理解できないならどう考えてもおまえはプログラムには向いてないことを保証してやる、安心しろ。



煽りじゃないよ。

575 名前:まんちょ []:2005/07/21(木) 14:00:11
>>564
回答ありがとうございました。しかし、うまく動きませんでした。
実行すると、例外処理が起こったとのことです。

576 名前:デフォルトの名無しさん []:2005/07/21(木) 14:01:22
下記の図に、1〜10までの数値を一個ずつ入れ、条件を満たすプログラムを作成しなければなりません。(;;)
○ ○ ○ ○
 ○ ○ ○
  ○ ○
   ○
条件1.下の段の○にはすぐ上にある2つの○の差(絶対値)とする。
(大きな値-小さな値)
条件2.おなじ数値は2度使えない。
どのようなステートメントを使えばいいか全然わかりませんでした。(>▲<)
お願いします。m(__)m


577 名前:デフォルトの名無しさん []:2005/07/21(木) 15:23:08
ピタゴラスの定理を書けといわれました。
どなたかよろしくお願いできますか?

578 名前:回答者 []:2005/07/21(木) 15:35:55
ピタゴラスの定理

579 名前:ザイン帝國軍帥・伯魔壬旭(小島露観) []:2005/07/21(木) 15:44:50
>>572
ここに、ミニポーカのプログラムを貼っておきました。

http://www.wikiroom.com/java/index.php?%A5%BD%A1%BC%A5%B9%C5%BD%C9%D5%A4%B1

カレントディレクトリに、18枚のカードファイルを含めてください。
(r1.jpg、r2.jpg・・・)
カードファイルが見つからない場合は、デフォルトの絵柄が使われます。


580 名前:デフォルトの名無しさん[sage]:2005/07/21(木) 19:06:07
>>579
迅速な仕事どうもありがとうございます!
ちょっと僕にしてはうまくできすぎてるのであやしまれそうですが^^;

581 名前:デフォルトの名無しさん []:2005/07/21(木) 19:49:19
黄色にすべきところを緑色にしていたので、579のプログラムを修正しました。


582 名前:デフォルトの名無しさん []:2005/07/21(木) 21:19:03
>>576
その問題、純粋にパズルとしてやってみたけど、絶対に解けない気が・・・
1〜10の数字で本当に当てはまるのか?
パズルマニアの人教えてくれ〜。

583 名前:デフォルトの名無しさん []:2005/07/21(木) 21:52:30
パズルマニアじゃなくプログラマだが
6 1 10 8
5 9 2
4 7
3

6 10 1 8
4 9 7
5 2
3

8 3 10 9
5 7 1
2 6
4

8 10 3 9
2 7 6
5 1
4

584 名前:>>576 10個の○ その1 []:2005/07/22(金) 03:03:53
import java.util.*;

public class HW104 {
static int[] nodeNumbers = { 0, 1, 3, 6 };

public static void main(String[] args) {
List ans = new ArrayList();
for (int i = 1; i <= 10; i++) {
Node node = new Node();
node.number[0] = i;
node.usedNums.add(new Integer(i));
ans.add(node);
}
int max = ans.size();
for (int i = 0; i < max; i++) {
level((Node) ans.remove(0), ans, 1, 0, new ArrayList());
}
max = ans.size();
for (int i = 0; i < max; i++) {
level((Node) ans.remove(0), ans, 2, 0, new ArrayList());
}
max = ans.size();
for (int i = 0; i < max; i++) {
level((Node) ans.remove(0), ans, 3, 0, new ArrayList());
}

585 名前:>>576 10個の○ その2 []:2005/07/22(金) 03:05:00
System.out.println("見つかった答え:" + ans.size() + "個\n");
for (int i = 0; i < ans.size(); i++) {
Node node = (Node) ans.get(i);
System.out.println(node.number[6] + " " + node.number[7] + " "
+ node.number[8] + " " + node.number[9]);
System.out.println("" + node.number[3] + " " + node.number[4] + " "
+ node.number[5]);
System.out.println("" + node.number[1] + " " + node.number[2]);
System.out.println("" + node.number[0]);
System.out.println();
}
}
static void level(Node node, List ans, int max, int lev, List pmNums) {
loop: for (int a = 1; a <= 10; a++) {
if (node.usedNums.contains(new Integer(a))) {
continue;
}
if (pmNums.contains(new Integer(a))) {
continue;
}
List nums = new ArrayList(pmNums);
nums.add(new Integer(a));
if (lev >= max) {
int nodeNum = nodeNumbers[lev - 1];
for (int i = 0; i < max; i++) {
int val1 = ((Integer) nums.get(i)).intValue();
int val2 = ((Integer) nums.get(i + 1)).intValue();
if (node.number[nodeNum + i] != Math.abs(val1 - val2)) {
continue loop;
}
}

586 名前:>>576 10個の○ その3 []:2005/07/22(金) 03:06:27
nodeNum = nodeNumbers[lev];
Node obj = (Node) node.clone();
for (int i = 0; i <= max; i++) {
int num = ((Integer) nums.get(i)).intValue();
obj.number[nodeNum + i] = num;
obj.usedNums.add(new Integer(num));
}
ans.add(obj);
} else {
level(node, ans, max, lev + 1, nums);
}
}
}
}

class Node implements Cloneable {
int[] number = new int[10];
Set usedNums = new TreeSet();

public Object clone() {
Node node = new Node();
System.arraycopy(number, 0, node.number, 0, number.length);
node.usedNums = new TreeSet(usedNums);
return node;
}
}


587 名前:ザイン帝國軍帥・伯魔壬旭(小島露観) []:2005/07/22(金) 03:07:58
>>576
総当りの単純で非効率的なアルゴリズムですが・・・


588 名前:デフォルトの名無しさん []:2005/07/22(金) 08:06:30
今まで使ったことのあるクラスで例外を発生させるクラスを述べよって宿題なんだけど、どうやって調べればいいの?

589 名前:デフォルトの名無しさん[sage]:2005/07/22(金) 09:32:57
>>588
http://java.sun.com/j2se/1.4/ja/docs/ja/api/index.html

590 名前:デフォルトの名無しさん []:2005/07/22(金) 09:47:17
おーい、質問・相談スレが1000逝ったのに次スレたてられてないよ。
うちのホストからはたてられなかったので誰か立ててください。

スレタイは
【初心者】Java質問・相談スレッド69【大歓迎】


以下テンプレ↓



591 名前:デフォルトの名無しさん []:2005/07/22(金) 09:48:19
過去ログ、関連スレッド、よくある質問とその回答、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/

これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。

以下のエラーが表示されて、途方にくれているあなたは、下のページへ。
「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path@`classpath

前スレッド
【初心者】Java質問・相談スレッド68【大歓迎】
http://pc8.2ch.net/test/read.cgi/tech/1119115837/


/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */

また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。

JavaScriptの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc5.2ch.net/hp/

次スレは>>980あたりでお願い.....

592 名前:関連スレ []:2005/07/22(金) 09:49:28
// 姉妹スレ(丸投げはこちらで)
★★ Java の宿題ここで答えます Part 52 ★★
http://pc8.2ch.net/test/read.cgi/tech/1119356753/

// 関連スレ
【Java/C/PHP/D/他】統合開発環境Eclipse M17
http://pc8.2ch.net/test/read.cgi/tech/1114847888/
NetBeans / Sun One Studio
http://pc8.2ch.net/test/read.cgi/tech/1056116495/

JSF(JavaServer Faces)【.NET死亡?!!!】
http://pc8.2ch.net/test/read.cgi/tech/1059208396/
【Java】Apache Jakarta Commons
http://pc8.2ch.net/test/read.cgi/tech/1094954163/
Java低速GUI Swing 3
http://pc8.2ch.net/test/read.cgi/tech/1121700954/
Java 高速GUI SWT 2
http://pc8.2ch.net/test/read.cgi/tech/1068349883/
★お前らJavaはJNIで組もうぜ★
http://pc8.2ch.net/test/read.cgi/tech/1033795664/

【Java】次世代Java・J2SE1.6の動向【Mustang】
http://pc8.2ch.net/test/read.cgi/tech/1081698555/
Java系スクリプト言語Groovy
http://pc8.2ch.net/test/read.cgi/tech/1080052050/

J2EEを語ろう
http://pc8.2ch.net/test/read.cgi/tech/1054997727/
EJBは終わってる
http://pc8.2ch.net/test/read.cgi/tech/1036481443/

593 名前:デフォルトの名無しさん[sage]:2005/07/22(金) 09:49:47
>>590
立てちゃった。

【初心者】Java質問・相談スレッド69【大歓迎】
http://pc8.2ch.net/test/read.cgi/tech/1121993032/l50

594 名前:デフォルトの名無しさん[sage]:2005/07/22(金) 09:51:54
>>592 はそっちで張っておいてくれるとありがたい。
夏休み期間中は宿題スレを1に入れてもいいかもね。
どんだけ宿題丸投げな奴が相談スレに来るかだけど。

595 名前:590 []:2005/07/22(金) 10:46:36
>>593
乙です。

>>592 は改めて質問スレに貼っておきました。
名前欄「テンプレ1」「テンプレ2」とかにすればよかったですね。失礼しました。

596 名前:デフォルトの名無しさん[sage]:2005/07/22(金) 10:54:00
また、あのソースコードコピペ野朗が現れたのか。。。

597 名前:デフォルトの名無しさん []:2005/07/22(金) 11:00:54
576
フローチャートわかりますか?

598 名前:?543 []:2005/07/22(金) 13:12:09
>>543 ですが、動くのは確認できましたがいくつか問題が。。。一つは我々には読み込むべきtextが指定されているのですが、
どうもひと単語一行という訳ではなくスペース一つあけてひたすらランダムに羅列されており、どうもこのプログラムだと一行ごとか、いくつかの単語ごとに区切れてる気がします。
あと始めに以下のような分がありここにある単語は省かなければなりません。申し訳ありませんがこの辺の事をどうかえたらよいかアドバイスいただけませんか??


599 名前:543 []:2005/07/22(金) 13:13:17
すみません。。。以下のような事を書き忘れました。

# [RESTRICTED USE ONLY]
# THIS FILE IS FOR THE EXAMPLE DATA FOR THE REPORT PROGRAM OF
# ALGORITHM AND DATA STRUCTURE, DEPT. OF INFO. SCI., TOKYO INST. OF TECH.
# [SOURCE]
# THIS DATA IS CREATED BY PERMUTING RANDOMLY WORDS IN THE WORD LIST AT
# http://www.eigozai.com/WORD/WORDDOWN.htm
# [REMARKS]
# ABOUT 1500 WORDS. ONLY LOWER CASE LETTERS (MAYBE!!).
# SOME WORDS MAY APPEAR MORE THAN ONCE.

600 名前:デフォルトの名無しさん []:2005/07/22(金) 14:01:28
>>598
どうも、意味が分からないのですが・・・
できれば、words.txt のフォーマットと、仕様を書いてください・・・

601 名前:デフォルトの名無しさん []:2005/07/22(金) 15:48:35
【Java 歴】1週間
【 種別 】マル投げ
【 期限 】日曜0:00
【内容】 In a new computer-assisted board game moves are determined by selecting a
random number. However, players can influence their moves by taking a risk.
The plater selects a number n from 1 to 10. The computer then generates
a random integer r from 1 to 10. The plater's move is then(r-n+1)*n. A cautious
player selects 1 and always moves forward. The ambitious plater selects higher numbers
and may move more forward or may move backward. Write a program to determine one move in
the game. Display the computer's integer selection and the move.

すいません、英語なんですがよろしくお願いします。

602 名前:デフォルトの名無しさん[sage]:2005/07/22(金) 16:46:14
辞書引けよ

603 名前:デフォルトの名無しさん []:2005/07/22(金) 17:22:52
>>601
とても単純。ユーザーに1から10の整数をインプットさせる。 それで
与えられてる公式をtoString()にぶち込めばよろしい。

604 名前:デフォルトの名無しさん []:2005/07/22(金) 17:44:18
【Java 歴】 3ヶ月
【 課題 】 キーボードから一行で入力した数字を一桁ずつ表示する
【 期限 】 日曜

一行で一桁ずつ記憶させる方法が全くわかりません。
よろしくお願いします。

605 名前:デフォルトの名無しさん []:2005/07/22(金) 19:05:44
584
エラーでましたがなんとか大丈夫でした。どうもありがとうございました。

606 名前:デフォルトの名無しさん[sage]:2005/07/22(金) 20:18:22
>604
こんなんでいいのか?
public class Main {
public static void main(String[] args) {
BufferedReader reader = new BufferedReader(new InputStreamReader( System.in));
String inputLine=null;
try {
inputLine = reader.readLine() ;
}
catch (IOException ioe){
ioe.printStackTrace();
}
for (int i=0 ; i<inputLine.length() ;++i){
System.out.println(inputLine.charAt(i));
}
}
}


607 名前:デフォルトの名無しさん[sage]:2005/07/22(金) 22:19:12
【種別】○投げ同然です、まことに申し訳ありません
【課題】ttp://gameboyz.ddo.jp/file/up0059.zip(passはjava)
【期限】7月一杯

文字列クラスと日付クラスの二つを課題として提示されました
自力でここまでやってきましたが、期限が迫っているにもかかわらず
文字列クラスの後半で行き詰るという醜態を晒して困窮しております

書庫ファイルに、課題内容と現時点までに自分が製作したものを格納してあります
恥を忍んでお願いします

608 名前:デフォルトの名無しさん []:2005/07/22(金) 22:47:47
【種別】正直、丸投げです
【課題】http://www.geocities.jp/abasyaman/aaa.html
【期限】できるだけ早くお願いします

わからない所は全てです。さっぱりわかりません。



609 名前:デフォルトの名無しさん[sage]:2005/07/23(土) 02:19:06
大学の前期が終わる時期だな。まさに駆け込み寺。

610 名前:デフォルトの名無しさん []:2005/07/23(土) 07:21:49
>>607
もうファイルがないです。。。


611 名前:>>601 ボードG その1 []:2005/07/23(土) 13:33:07
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javax.swing.*;
public class HW105 {
static final byte[][] map = {
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 0, 0, 0, 0, 0, 0, 0, 0, 1 },
{ 1, 0, 1, 1, 1, 1, 1, 1, 0, 1 },
{ 1, 0, 1, 0, 0, 0, 0, 1, 0, 1 },
{ 1, 0, 1, 0, 0, 3, 0, 1, 0, 1 },
{ 1, 0, 1, 1, 1, 1, 0, 1, 0, 1 },
{ 1, 0, 0, 0, 0, 0, 0, 1, 0, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 0, 1 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 },
{ 2, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
};
static final int NONE = 0, CELL = 1, START = 2, GOAL = 3;
static class Piece {
Point pt = new Point();
List prevPtList = new ArrayList();
}
static Piece player = new Piece();
static Piece enemy = new Piece();
static EventDispatcher dpt = new EventDispatcher();
volatile static int slotNum = 1;
volatile static boolean slotStopFlag;

612 名前::>>601 ボードG その2 []:2005/07/23(土) 13:34:13
static int buttonNum;
static boolean waitFlag;
static final String CHARA = "●";
static JLabel[][] cell = new JLabel[10][10];
static JButton[] numBtn = new JButton[10];
static JButton nextBtn = new JButton("Next");
static JLabel slot = new JLabel();
static JLabel msg = new JLabel();
public static void main(String[] args) {
createFrame();
start();
System.exit(0);
}
static void start() {
setComponentStatus(false, true);
msg.setText("ゲームを開始します。Nextボタンを押してください");
waitFlag = true;
while (waitFlag) {
// no operation
}
initialize();
while (true) {
setComponentStatus(true, false);
msg.setText("番号ボタンを押してください");
startSlot(10);
synchronized (HW105.class) {
try {
HW105.class.wait();
} catch (Exception ex) {
// no operation

613 名前:::>>601 ボードG その3 []:2005/07/23(土) 13:34:51
}
}
int move = (slotNum - buttonNum + 1) * buttonNum;
if (move >= 0) {
msg.setText("プレイヤーが" + move + "マス進みました");
} else {
msg.setText("プレイヤーが" + Math.abs(move) + "マス戻りました");
}
movePiece(move, player);
if (map[player.pt.y][player.pt.x] == GOAL) {
msg.setText("プレイヤーの勝利です。");
break;
}
setComponentStatus(false, false);
msg.setText("敵がスロットを決めます");
startSlot(15);
int time = (int) (Math.random() * 2000);
try {
Thread.sleep(time);
} catch (Exception ex) {
// no operation
}
slotStopFlag = true;
synchronized (HW105.class) {
try {
HW105.class.wait();
} catch (Exception ex) {
// no operation
}
}

614 名前:>>601 ボードG その4 []:2005/07/23(土) 13:35:29
msg.setText("敵が" + slotNum + "マス進みました");
movePiece(slotNum, enemy);
if (map[enemy.pt.y][enemy.pt.x] == GOAL) {
msg.setText("プレイヤーの敗北です");
break;
}
}
setComponentStatus(false, true);
waitFlag = true;
while (waitFlag) {
// no operation
}
}
static void initialize() {
for (int y = 0; y < cell.length; y++) {
for (int x = 0; x < cell[y].length; x++) {
cell[y][x].setText("");
}
}
player.pt.setLocation(0, 9);
player.prevPtList.clear();
enemy.pt.setLocation(0, 9);
enemy.prevPtList.clear();
cell[player.pt.y][player.pt.x].setForeground(Color.magenta);
cell[player.pt.y][player.pt.x].setText(CHARA);
}
static Color inspeceCell(Point point) {
if (player.pt.equals(point) && enemy.pt.equals(point)) {
return Color.magenta;
} else if (player.pt.equals(point)) {

615 名前::>>601 ボードG その5 []:2005/07/23(土) 13:36:04
return Color.blue;
} else if (enemy.pt.equals(point)) {
return Color.red;
} else {
return Color.black;
}
}
static void drawCell(Color color, Point point) {
if (color.equals(Color.black)) {
cell[point.y][point.x].setText("");
return;
}
cell[point.y][point.x].setText(CHARA);
cell[point.y][point.x].setForeground(color);
}
static void setComponentStatus(boolean num, boolean next) {
for (int i = 0; i < numBtn.length; i++) {
numBtn[i].setEnabled(num);
}
nextBtn.setEnabled(next);
}
static void movePiece(int move, final Piece piece) {
while (move != 0) {
final Point prevPt = new Point(piece.pt.x, piece.pt.y);
boolean flag = false;
if (move >= 0) {
flag = moveOneCell(true, piece);
--move;
} else {
flag = moveOneCell(false, piece);

616 名前:::>>601 ボードG その6 []:2005/07/23(土) 13:54:48
++move;
}
if (!flag) {
break;
}
final Point crtPt = new Point(piece.pt.x, piece.pt.y);
final Color prevCol = inspeceCell(prevPt);
final Color crtCol = inspeceCell(crtPt);
dpt.addEvent(new Runnable() {
public void run() {
drawCell(prevCol, prevPt);
drawCell(crtCol, crtPt);
}
});
dpt.addWaitEvent(100);
}
dpt.runEventsAndWait();
}
static boolean moveOneCell(boolean front, Piece piece) {
if (front) {
Point[] around = { new Point(0, -1), new Point(-1, 0),
new Point(0, 1), new Point(1, 0) };
for (int i = 0; i < around.length; i++) {
int x = piece.pt.x + around[i].x;
int y = piece.pt.y + around[i].y;
if (x < 0 || x >= 10 || y < 0 || y >= 10) {
continue;
}
if (piece.prevPtList.contains(new Point(x, y))) {
continue;

617 名前:>>601 ボードG その7 []:2005/07/23(土) 13:55:21
}
if (map[y][x] == NONE) {
continue;
}
piece.prevPtList.add(new Point(piece.pt.x, piece.pt.y));
piece.pt.setLocation(x, y);
return true;
}
} else {
if (!piece.prevPtList.isEmpty()) {
Point prevPt = (Point) piece.prevPtList.remove(
piece.prevPtList.size() - 1);
piece.pt.x = prevPt.x;
piece.pt.y = prevPt.y;
return true;
}
}
return false;
}
static void startSlot(final int maxNum) {
new Thread() {
public void run() {
List list = new ArrayList();
for (int i = 1; i <= maxNum; i++) {
list.add(new Integer(i));
}
Collections.shuffle(list);
int idx = 0;
slot.setForeground(Color.black);
slotStopFlag = false;

618 名前::>>601 ボードG その8 []:2005/07/23(土) 13:55:58
int waitTime = 40;
while (waitTime < 1000) {
if (++idx == list.size()) {
idx = 0;
}
slotNum = ((Integer) list.get(idx)).intValue();
slot.setText("" + slotNum);
if (slotStopFlag) {
waitTime += 250;
}
try {
Thread.sleep(waitTime);
} catch (Exception ex) {
// no operation
}
}
slot.setForeground(Color.red);
synchronized (HW105.class) {
HW105.class.notifyAll();
}
}
}.start();
}
static void createFrame() {
JPanel board = new JPanel(new GridLayout(10, 10));
board.setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createEtchedBorder(),
BorderFactory.createEmptyBorder(32, 32, 32, 32)));
board.setBackground(new Color(245, 245, 255));
for (int y = 0; y < map.length; y++) {

619 名前:::>>601 ボードG その9 []:2005/07/23(土) 13:56:35
for (int x = 0; x < map.length; x++) {
cell[y][x] = new JLabel();
cell[y][x].setHorizontalAlignment(JLabel.CENTER);
cell[y][x].setPreferredSize(new Dimension(32, 32));
cell[y][x].setFont(new Font("Dialog", 1, 20));
if (map[y][x] != NONE) {
cell[y][x].setOpaque(true);
cell[y][x].setBorder(BorderFactory.createLineBorder(Color.black));
}
switch (map[y][x]) {
case CELL:
cell[y][x].setBackground(new Color(220, 220, 250));
break;
case START:
cell[y][x].setBackground(new Color(220, 250, 220));
break;
case GOAL:
cell[y][x].setBackground(new Color(250, 220, 220));
}
board.add(cell[y][x]);
}
}
JPanel ctrl = new JPanel();
ctrl.setLayout(new BoxLayout(ctrl, BoxLayout.X_AXIS));
ctrl.setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createEtchedBorder(),
BorderFactory.createEmptyBorder(8, 8, 8, 8)));
ctrl.setBackground(new Color(200, 200, 220));
slot.setPreferredSize(new Dimension(48, 48));
slot.setMaximumSize(new Dimension(48, 48));

620 名前:>>601 ボードG その10 []:2005/07/23(土) 13:57:28
slot.setBorder(BorderFactory.createLoweredBevelBorder());
slot.setOpaque(true);
slot.setBackground(Color.white);
slot.setHorizontalAlignment(JLabel.CENTER);
slot.setFont(new Font("Dialog", 1, 20));
ctrl.add(slot);
ctrl.add(Box.createHorizontalStrut(8));
for (int i = 0; i < numBtn.length; i++) {
numBtn[i] = new JButton("" + (i + 1));
numBtn[i].setActionCommand("" + (i + 1));
numBtn[i].setMargin(new Insets(4, 8, 4, 8));
numBtn[i].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
buttonNum = Integer.parseInt(e.getActionCommand());
slotStopFlag = true;
}
});
ctrl.add(numBtn[i]);
}
nextBtn.setMargin(new Insets(4, 8, 4, 8));
nextBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
waitFlag = false;
}
});
ctrl.add(Box.createHorizontalStrut(8));
ctrl.add(nextBtn);
msg.setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createEtchedBorder(),
BorderFactory.createEmptyBorder(8, 8, 8, 8)));

621 名前::>>601 ボードG その11 []:2005/07/23(土) 14:07:13
msg.setOpaque(true);
msg.setBackground(new Color(230, 230, 255));
msg.setPreferredSize(new Dimension(0, 28));
msg.setFont(new Font("Dialog", 0, 15));
msg.setHorizontalAlignment(JLabel.CENTER);
JFrame frame = new JFrame();
frame.getContentPane().add(msg, BorderLayout.NORTH);
frame.getContentPane().add(board);
frame.getContentPane().add(ctrl, BorderLayout.SOUTH);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setResizable(false);
frame.setVisible(true);
}
}
class EventDispatcher {
private List eventList = Collections.synchronizedList(new ArrayList());
void addEvent(final Runnable event) {
eventList.add(new Runnable() {
public void run() {
event.run();
if (!eventList.isEmpty()) {
EventQueue.invokeLater((Runnable) eventList.remove(0));
}
}
});
}
void addWaitEvent(final int time) {
eventList.add(new Runnable() {
public void run() {

622 名前:::>>601 ボードG その12 []:2005/07/23(土) 14:07:44
try {
Thread.sleep(time);
} catch (InterruptedException e1) {
// no operation
}
if (!eventList.isEmpty()) {
EventQueue.invokeLater((Runnable) eventList.remove(0));
}
}
});
}
synchronized void runEventsAndWait() {
eventList.add(new Runnable() {
public void run() {
synchronized (EventDispatcher.this) {
EventDispatcher.this.notifyAll();
eventList.clear();
}
}
});
EventQueue.invokeLater((Runnable) eventList.remove(0));
try {
wait();
} catch (InterruptedException e) {
// no operation
}
}
}


623 名前:ザイン帝國軍帥・伯魔壬旭(小島露観) []:2005/07/23(土) 14:09:36
>>601
全部コピペしてコンパイルしてください。



624 名前:デフォルトの名無しさん[sage]:2005/07/23(土) 14:40:47

氏ね

625 名前:デフォルトの名無しさん[sage]:2005/07/23(土) 14:46:16
相変わらずのクソコードだなw

626 名前:デフォルトの名無しさん []:2005/07/23(土) 15:55:33
>>606
助かりました。
ありがとうございました。

627 名前:デフォルトの名無しさん[sage]:2005/07/23(土) 17:23:52
お願いだから大量のコードを貼るのはやめて下さい。
多くなるならうぷろだ使うのが(ry

628 名前:607[sage]:2005/07/23(土) 19:29:25
再upしました。詳細は>>607をご覧下さい。

ttp://zetubou.mine.nu/itoshiki/nozomu/zetubou0204.zip

629 名前:デフォルトの名無しさん []:2005/07/23(土) 20:03:30
すみませんが、もう少しプログラムの仕様を詳しく書いてください。
あと、エクセルのファイルは怖くて開けません。。。


630 名前:607[sage]:2005/07/23(土) 21:09:36
ttp://beast.main.jp/up/src/up0298.zip

説明不足で申し訳ありません。
エクセルファイルと同じ内容のテキストファイルを追加いたしました。

631 名前:Mb []:2005/07/23(土) 21:43:39
>>627
> お願いだから大量のコードを貼るのはやめて下さい。
> 多くなるならうぷろだ使うのが(ry
厭でも見られると思うからコードに緊張感が出る。
うpされたコードはひとつひとつじっくり読んで、
できれば「俺ならこう書く」というコードをうpしる。
それでこそ漢。

632 名前:デフォルトの名無しさん[sage]:2005/07/23(土) 22:27:25
>631
答える側の人間は
答えさえ出していれば何をしてもイイってことにはならないでしょ。

スレが読みにくくなるって言ってる人が多いんだし
うぷろだも提供されてるわけだから、長々とこのスレにソース貼るのはやっぱマズいよ。

正直なところ、
「俺ならこう書く」という意見を出すような人間は、
うぷろだに載せたソースであってもちゃんとコメントすると思われ。

633 名前:627[sage]:2005/07/23(土) 22:53:14
あれが緊張感のあるソースですかorz
このスレは書いたソースの発表会をする場所ではないです。
発表会がしたいならどこかよそでやって下さい。

634 名前:デフォルトの名無しさん []:2005/07/23(土) 23:14:28
blowfishを使って暗号化をしようと思っているのですが、
NoSuchAlgorithmExceptionが出てしまいます。
1.4以降のJ2SEには標準装備されていると聞いたのですが、何か設定が必要なんでしょうか?


635 名前:Mb []:2005/07/23(土) 23:23:56
>>632
> 答える側の人間は
> 答えさえ出していれば何をしてもイイってことにはならないでしょ。
とりあえず答えてもらう側の人間は、
答えさえ出してもらえば何だっていいという側面はあると思われ。
>>633
> あれが緊張感のあるソースですかorz
それを言うなら藻前がうpしる(w
「うpしてる」と言うならコテハンで証明しる。
屑コードでも、答えてもらった人間にとっては、
晒したくれたもんが神。

636 名前:632[sage]:2005/07/23(土) 23:29:22
>635
・質問者と解答者のマンツーマンのやりとり

・コテハン使った書き込み
も、匿名掲示板という形式では相応しいやり方とは思えない。

637 名前:デフォルトの名無しさん[sage]:2005/07/23(土) 23:34:54
ともかく、問題の根源は小島露観な訳だが‥
まあ、7〜8レスまでのコピペは大目に見るが、
10レス以上にもなると、やや問題がある。

638 名前:デフォルトの名無しさん[sage]:2005/07/23(土) 23:39:06
>634
>464

639 名前:デフォルトの名無しさん[sage]:2005/07/24(日) 01:23:23
>>607
文字列クラス、未完成メソッドのみ。
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=25647

日付クラスも要るのかな?だれかやってあげて。

640 名前:Mb []:2005/07/24(日) 06:06:02
>>636
> ・コテハン使った書き込み
> も、匿名掲示板という形式では相応しいやり方とは思えない。
意味がようわからん。
コテハンを使っても匿名は匿名だと思うのだが。
それとも「小島露観」つー実名っぽいハンドルが問題なのか?
>>637
> まあ、7〜8レスまでのコピペは大目に見るが、
2ちゃんで「コピペ」というと、他人の文章をギッてくることを
言うのが普通なので、自分で書いたコードを貼るのは(2ちゃんでいう)
コピペの内には入らんように思うが。
> 10レス以上にもなると、やや問題がある。
それはread.cgi の行数制限がきつすぎるところに問題があるのか?
それとも「もっと短く書け」ということなのか?

641 名前:627[sage]:2005/07/24(日) 12:13:11
これ以上レスをするとスレの妨げになるのでこれを最後にします。

・質問者はどのような形であれ答えてもらえれば構わない。(=うぷろだ使わない理由にはならない)
・大量のソースを貼るとスレが見にくくなり回答者が質問を見落としやすくなる。(=うぷろだ使うべき理由1)
・大量のソースが貼られる事を好ましく思わない人が複数いる。(=うぷろだ使うべき理由2)
・このスレはソースの発表会をする場所ではない。(>>631に対する否定)

これだけ理由が揃っていて何故ソース直貼りにこだわるのかわかりません。

匿名掲示板でわざわざコテを使うほど自己顕示欲強くないので私はコテを使う事はしませんが、
他人にコテを強要する様な>>635の発言は匿名掲示板にはふさわしくないと考えます。
特定の発言に複数発言にわたる長文レスが書き込まれたら、どう思います?
ソースという性質上多少は大目に見るにしても12レスはやりすぎです。

思うに、批判的意見は(私含め)主に回答者から出ているのではないかと思いますが。


642 名前:デフォルトの名無しさん[sage]:2005/07/24(日) 13:33:24
ソース貼り用のウプロダが用意されるとお互いに幸せかも?
インデントの悩みも消えてなくなるし、行数制限も気にしなくて済む。
それに、回答が蓄積されるとデータベースとしての効果が期待できる。

643 名前:デフォルトの名無しさん []:2005/07/24(日) 13:43:30
>>608
ここの課題どなたかよろしくお願いします。
難しすぎて、近くにこの問題を解ける人がいないので困っています。
わかりにくい所があればなんでも答えますので、
面倒かもしれませんがよろしくお願いします。

644 名前:デフォルトの名無しさん []:2005/07/24(日) 13:54:23
>>643
GUIはSwingがいい
携帯からだからXMLは見れないがアルゴリズムは多分そう難しくないぞ。

645 名前:デフォルトの名無しさん[sage]:2005/07/24(日) 15:04:01
>608
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=25661
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=25662
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=25663

まあ動くって言う程度ですが、もう厭きたので載せます。
載せてから気づいたけど「正解率」は出してないなー。計算してくださいスマソ。

> 余裕がある人は,知識分野やキーワードで絞りこんで問題を出題できるようにしてください。
はできてません。

646 名前:607[sage]:2005/07/24(日) 21:46:19
>>639
有難う御座います。完成した分のメソッドまで頂きました。
ただ、31番と32番はこちらの環境では動作させることが出来ませんでした。
あと、28番については完全にこちらの説明不足でありました。大変申し訳ありません。
aAa[スペース]bbB▽CCc[スペース]ddD亜eee○FFF という文章があった場合
Aaa[スペース]Bbb▽Ccc[スペース]Ddd亜Eee○Fff このように単語ごとに先頭の文字を大文字にするということです。

日付クラスも必要不可欠です。何方か何卒お願いします。

647 名前:ザイン帝國軍帥・伯魔壬旭(小島露観) []:2005/07/24(日) 22:25:48
>>608
ここに、回答プログラムを貼っておきました。
カレントディレクトリに fe.xml を含めてください。

http://www.wikiroom.com/java/index.php?%A5%BD%A1%BC%A5%B9%C5%BD%C9%D5%A4%B1


648 名前:デフォルトの名無しさん[sage]:2005/07/25(月) 00:50:36
javaとCの違いは?といったらオブジェクト指向のことになりよね!?
javaとCとの違いをプログラムを用いて示すならどんなプログラムを作れば
いいんでしょうか?オーバーライドとオーバーロードはCのどのような
問題点を解決できるんでしょうか?お願いします。

649 名前:639[sage]:2005/07/25(月) 02:33:55
>>646
31番, 32番:
試しに、
 strRet += (char)(strWide.charAt(intRoop) - ('A' - 'A'));
を、
 int intDiff = 0xFEE0;// 'A' - 'A'
 strRet += (char)(strWide.charAt(intRoop) - intDiff);
に換えてみて。
あと、動かない状況をもう少し詳しく。
コンパイル失敗なのか、例外発生なのか、結果だけおかしいのか。
参考までに、java -version の実行結果も。


650 名前:639[sage]:2005/07/25(月) 02:34:31
>>646
28番:
おっ、よく見たら「単語の先頭を大文字」だったか。
めんどくさいので、正規表現を使わせてもらった。
ソース冒頭にある string 〜 char 以外の使用が禁じられているなら別途相談。
java -version の結果が 1.5.0 代でない場合も別途相談。

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public String toProper(String strArrange)
{
String strRegex = "([^\\p{Alpha}]*)(\\p{Alpha})(\\p{Alpha}*)";
Matcher matcher = Pattern.compile(strRegex).matcher(strArrange);
StringBuffer buffer = new StringBuffer();

while (matcher.find()) {
String strTop = matcher.group(2).toUpperCase();
String strLatter = matcher.group(3).toLowerCase();
matcher.appendReplacement(buffer, "$1" + strTop + strLatter);
}
matcher.appendTail(buffer);

return buffer.toString();
}

651 名前:デフォルトの名無しさん []:2005/07/25(月) 03:50:14
ここは天国ですか?

652 名前:デフォルトの名無しさん []:2005/07/25(月) 08:28:06

宿題、課題は7月中に済ませてしまおう!
将来プログラマを目指さない人は、ここで丸投げしてしまおう!
出来たコードを適当にちょこちょこ直せば、バレる事もなく
時間が空くよ。
空いた時間を、遊びなり他の勉強なりに使うがいい!


653 名前:デフォルトの名無しさん []:2005/07/25(月) 08:29:56

最近はよっぽど規模が大きいか面倒でない限り、回答率が高いぞ!
今の内だー!

654 名前:ColorChooserの製作でつまずいています[sage]:2005/07/25(月) 14:16:57
見てくれるかたいませんか? テキストコピーしました。
HTMLファイルで背景色を指定する場合には,
<body bgcolor="#ffffff">



のように,赤,緑,青の値を16進でそれぞれ2桁ずつ,合計6桁で指定します.この色の指定をサポートするツールを作りましょう.
具体的には次のようなツールを考えます.


スライダー(もしくはスクロールバー)を3本用意し,赤,緑,青に対応させます.
スライダー(もしくはスクロールバー)を動かすと,赤,緑,青の値を0から255まで変化させることができます.
赤,緑,青の値を変化させると, それに応じて,表示される色と16進で表示される赤,緑,青の値が変化します.
以下,このプログラムを作るのに必要になることを説明します.

Swingでは,色はAWTの Colorクラスのオブジェクトを利用して表します.

Colorオブジェクトは,赤,緑,青の3原色の強さを 0から255の整数で指定して作ります.例えば,赤を表すColorオブジェクトは,

Color red = new Color(255,0,0);



で作ります.コンストラクタの引数は,赤,緑,青の順です.
また,いくつかの代表的な色については,すでに定数としてColorオブジェクトが用意されています.の先頭の方の
Field Summaryというところにリストアップされている色です.これらの色は,Colorクラスのクラス変数に代入され
ているので,クラス名とクラス変数名を指定して,次のようにして使うことができます.

Color c = Color.pink;



655 名前:654[sage]:2005/07/25(月) 14:19:05
いろいろな色を表示するPanelを次のように作ってみました.
class ColorPanel extends JPanel {
public ColorPanel() {
this(Color.white);
}
public ColorPanel(Color c) {
setColor(c);
setPreferredSize(new Dimension(200,150));
}
public void setColor(Color c) {
setBackground(c);
}
public Color getColor() {
return getBackground();
}
}



656 名前:654[sage]:2005/07/25(月) 14:22:09
ColorPanelは, JPanelを継承して作ってあります.指定された色を背景色にしています.
ColorPanelを次のように使ってみました.

class TestColor {
public static void main(String argv[]) {
Color initColor = Color.pink;
JFrame f = new JFrame("TestColor");
ColorPanel c = new ColorPanel(initColor);
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
f.getContentPane().add(c,BorderLayout.CENTER);
f.pack();
f.show();
}
}



これを実行すると,ピンクが表示されます.
16進の表示は,JTextFieldを使いました.


657 名前:654[sage]:2005/07/25(月) 14:25:49
↓問題文一部
残るはスライダー(またはスクロールバー)ですが, JSlider という部品を使います.
スクロールバー(JScrollBar)もありますので,こちらを使ってもかまいません.

スライダーを動かすと, ChangeListenerのstateChanged メソッドが呼び出されます.
これは,swingであたらしく追加されたイベントなので, import javax.swing.event.*; をプログラムの最初に書く必要があります.

例によって, ChangeListenerインターフェイスをimplementsしたクラスを作り,
そのオブジェクトをJSliberに登録します.そうすると,スライダーを動かした時に,
stateChangedが呼び出されるので,そのメソッドの中で,現在のスライダーの位置に応じて,
ColorPanelの色,および16進の表示を変更するようにします.現在の値,値のセットを行うには,
それぞれ,getValue(), setValue()メソッドを利用します.

Scrollbarは,作るときに,最大値,最小値を指定できるので,赤,緑,青の値の範囲に合わせて,
0から255に指定しておくと簡単です.

JSlider sl=new JSlider(JSlider.HORIZONTAL,0,255,0);
sl.setPaintTicks(true);
sl.setMajorTickSpacing(50);
sl.setMinorTickSpacing(10);
sl.setLabelTable(sl.createStandardLabels(50));
sl.setPaintLabels(true);



とすれば10毎にしるし(tick)や50毎に数値ラベルを付けることができます.


分かりにくい貼り付け方ですみませんが、出来る方いればよろしくお願いしますm(_ _)m

658 名前:デフォルトの名無しさん []:2005/07/25(月) 14:38:40
、変数num1に記憶されている値に1を足した値を、変数num1に改めて
記憶する、という命令です。つまり、Javaのソースコードの中で表れる"="は、普通の意
味の、「右辺と左辺が等しい」という意味ではなく、「右辺の値を左辺に代入する」とい
う意味です。
-------------------------------------------------------------------------------------------------------------------------

お願いします

659 名前:デフォルトの名無しさん []:2005/07/25(月) 14:46:58
num2=num1;
どういう命令ですか?

660 名前:デフォルトの名無しさん []:2005/07/25(月) 15:22:34
ボタンを押して、それによってリモートコンピューターのイベントを起こすには
どうすればいいですか?

661 名前:釣られてみるテスト[sage]:2005/07/25(月) 16:13:43
>659
変数num2の内容を、変数num1の内容で置き換える。
変数num1の内容は変化しない。
実行前にnum1に数字の1が、num2には数字の2が入っていたとすると、実行後にはnum1は1、num2も1になる。

>658
うん、それは分かった。で、何を聞きたいの?

>660
ボタンを押したらネットワークを通じて何らかのメッセージをリモートコンピュータに送るようなクライアントプログラムを用意する。
同時に、リモートコンピュータ側にもメッセージを受け取ったら何らかの処理を行なうようなサーバプログラムを用意し、動作させておく。

662 名前:デフォルトの名無しさん []:2005/07/25(月) 16:28:40
>661
ありがとうございます!!!!!!!!

for(int i=0;i<5;i++){
System.out.println((i+1)+"番目の人の点数は"+
test[i]+"です");
}

もお願いします。すいません、お願いします!

663 名前:デフォルトの名無しさん []:2005/07/25(月) 17:05:23
iアプリのプログラムの課題はここでO.K?

664 名前:607[sage]:2005/07/25(月) 19:22:00
>>649-650
当初は結果が反映されなかったのですが、ご指導にあった部分を変更したところ

myString.java:512: シンボルを解決できません。
シンボル: 変数 strWide
場所 : myString の クラス
strRet += (char)(strWide.charAt(intRoop) - intDiff);

とコンパイルエラーが表示されてしまいました。
また、冒頭に明記されている型以外の型を使用することは出来ません。

当方、Verは1.5.0シリーズではなく、1.4.2です。

665 名前:デフォルトの名無しさん []:2005/07/25(月) 21:04:51
int num[][]; ---(1)
num=new int[5][5]; ---(2)

(1)(2)は何を行う命令かをおしえてください。


for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
System.out.print(num[i][j]+"");
}
System.out.println("");

何を行う命令か教えてください。お願いします。


666 名前:639[sage]:2005/07/25(月) 21:55:38
>>664
わざわざ書かなかったけど、32 番のほうは、
 strRet += (char)(strNarrow.charAt(intRoop) + intDiff);
になる。
で、改28番。
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=25672

667 名前:Mb []:2005/07/25(月) 21:57:46
>>648
> javaとCの違いは?といったらオブジェクト指向のことになりよね!?
そうとも言えん。Java でも関数型に近いコーディングはできる。
C は「やろうと思えばなんでもできる」という自己責任言語。
Java は「ヤバそうなことをやろうとするとコンパイラが通さない」
というお砂場言語。
> javaとCとの違いをプログラムを用いて示すならどんな
> プログラムを作ればいいんでしょうか?
とりあえず「キャスト」と「ジェネリック」について調べてみそ。
> オーバーライドとオーバーロードはCのどのような
> 問題点を解決できるんでしょうか?
質問する前に「オーバーライド」と「オーバーロード」について
理解しる。

668 名前:デフォルトの名無しさん[sage]:2005/07/25(月) 21:59:41
>>665
どんだけマルチしてんだよ

669 名前:デフォルトの名無しさん []:2005/07/25(月) 22:27:59
7月中は回答率が高いよ!

670 名前:kompactaaaaaaa []:2005/07/25(月) 23:41:04
java で 画面に五線譜を書いて その上に♪(音符)を置いて
再生ボタンを押すと 音楽を楽譜どうりに再生するプログラムがかきたいんですが、
だれか できる人がいたら やってくれませんか?お願いします。


671 名前:デフォルトの名無しさん []:2005/07/25(月) 23:58:05
>>670
前から、しょっちゅうネタの課題ばかり出しやがって。
分かってるんだよ。いつもの奴だろ。
誰かが苦労してプログラム書いても、いつもシカトして遊んでるだろが。
いい加減にしろ。バカが。

672 名前:デフォルトの名無しさん []:2005/07/26(火) 00:03:47
670のクサレ厨房が二度と悪ふざけ出来なくなるプログラムを書きたいんですが、
だれか できる人がいたら やってくれませんか?お願いします。


673 名前:デフォルトの名無しさん []:2005/07/26(火) 00:08:27
>>670
お前はいい加減にしろよ。何度、ネタの課題を出して
人を振り回せば気が済むんだ? もう我慢の限度を超えてるんだよ。
真面目にやってる人間の気持ちを踏み躙って、何が楽しいんだ?
そんなネクラな楽しみしかないのか? 正に人間のクズだな。
お前のおかげで、どれだけの人間がやる気を無くしたと思ってるんだ。
お前の罪がどれだけ大きいかよく考えてみるといい。

674 名前:661[sage]:2005/07/26(火) 00:32:49
>662
この時期にそれが理解できない奴に、単位は死んでも来ない。
つーわけで答えるだけ無駄。

>670
そんなオープンソースソフトウェアを以前見かけたことがある。
言語がJavaだったかどうかは自信ないが。

675 名前:デフォルトの名無しさん[sage]:2005/07/26(火) 01:47:07
【Java 歴】 3ヶ月
【 種別 】 丸投げぎみな質問です。
【 課題 】 画像をグレイスケールに変換したあとにラプラシアンフィルターを使って表示させなさい。
    |0  1  0|
  L=|1 −4  1|
    |0  1  0|
【不明点 】 ラプラシアンの使い方
【 期限 】 7月29日
【 備考 】 ラプラシアンのところだけ表示されず、不明なので抜粋しました。

public void laplace(){
 int width, height;
 int pixels[];
 int op[][]={{-1,-1,-1,},{-1,8,-1,},{-1,-1,-1,}};
 int[][] pixels2=new int[height][width];

 for(int y=0; y<height; y++){
  for(int x=0; x<width; x++){
   int value=0;
   for(int i=-1; i<=1; i++){
    for(int j=-1; j<=1; j++){
     int y2=y+i;
     int x2=x+j;
     if(y2>=0 && y2<height && x2>=0 && x2<width){
      value=value+(pixels2[y2][x2] & 0xFF)*op[i+1][j+1];
   }}}
   if(value<0){value=0;} else if(value>255){value=255;}
   pixels2[y][x]=0xFF000000 | (value<<16) | (value<<8) | value;
}}}

よろしくお願いします。

676 名前:デフォルトの名無しさん []:2005/07/26(火) 02:27:10
もう何が何だか
わけがワカラン

677 名前:675[sage]:2005/07/26(火) 08:51:42
この問題のどの辺がわからないんでしょうか?

678 名前:デフォルトの名無しさん []:2005/07/26(火) 09:07:00
pixels2 のデータをイメージにしても表示されないのですか?

679 名前:675[sage]:2005/07/26(火) 13:44:08
>>678
真っ黒に表示されただけでした。

680 名前:デフォルトの名無しさん[sage]:2005/07/26(火) 14:08:00
>>679 (>675)
int width, height; の代入忘れに一票。

681 名前:675[sage]:2005/07/26(火) 14:17:02
>>680
int width, height;は元々フィールドにあって
代入してなくてもグレイスケールは表示されました。
なので、代入忘れじゃないっぽいです。

682 名前:680[sage]:2005/07/26(火) 15:55:18
>>681
まあ、そういわずにやってみる。

@下準備として、メソッドの最後にデバッグ文を追加する。
 System.out.println(pixels2.length);
これで、pixels2 の、y 方向のサイズが出力される。0 になってるはず。

Aローカル変数に、インスタンス変数(フィールド)を代入する。
 int width = this.width, height = this.height;
y 方向のサイズが予期した値に変わるはず。

B実は、そもそもインスタンス変数のコピー自体不要なので、
 @のデバッグ文共々Aを削除する。

C「スコープ(別のスコープで同じ変数名を使うとどうなるか)」や、
 キーワード「this」についてもう少しお勉強!

この分だと、pixels2 もフィールドにあったりするんだろうな・・・

683 名前:675[sage]:2005/07/26(火) 16:32:03
>>682
ありがとうございます。やってみます!

ばっちりpixels2もフィールドにあります…

684 名前:デフォルトの名無しさん[sage]:2005/07/26(火) 16:55:40
>>654-657
適当なので参考程度にとどめてくれ。
http://www.uploda.org/file/uporg156133.zip.html
受信パス:654-657

685 名前:648[sage]:2005/07/26(火) 19:07:42
>>667
ありがとうございます。
もっと考えて見ます。

686 名前:657 []:2005/07/27(水) 00:27:14
>>684
ありがとうございます。参考にさせてもらいます!
プログラムを分けて書いたとこ辺り難しそうでしたが、実行した結果は
このようなものであっているのでとても参考になりそうです。

わざわざアップロードまでしていただいてありがとうございましたm(_ _)m



687 名前:657[sage]:2005/07/27(水) 00:27:52
>>684
ありがとうございます。参考にさせてもらいます!
プログラムを分けて書いたとこ辺り難しそうでしたが、実行した結果は
このようなものであっているのでとても参考になりそうです。

わざわざアップロードまでしていただいてありがとうございましたm(_ _)m



688 名前:654[sage]:2005/07/27(水) 00:28:29
>>684
ありがとうございます。参考にさせてもらいます!
プログラムを分けて書いたとこ辺り難しそうでしたが、実行した結果は
このようなものであっているのでとても参考になりそうです。

わざわざアップロードまでしていただいてありがとうございましたm(_ _)m


689 名前:654[sage]:2005/07/27(水) 00:29:02
>>684
ありがとうございます。参考にさせてもらいます!
プログラムを分けて書いたとこ辺り難しそうでしたが、実行した結果は
このようなものであっているのでとても参考になりそうです。

わざわざアップロードまでしていただいてありがとうございましたm(_ _)m


690 名前:654[sage]:2005/07/27(水) 00:30:04
>>684
ありがとうございます。参考にさせてもらいます!
プログラムを分けて書いたとこ辺り難しそうでしたが、実行した結果は
このようなものであっているのでとても参考になりそうです。

わざわざアップロードまでしていただいてありがとうございましたm(_ _)m


691 名前:657[sage]:2005/07/27(水) 01:50:12
すみません。

書き込みするとエラーがでて何回も書き込みボタン押したもので・・・

692 名前:デフォルトの名無しさん[sage]:2005/07/27(水) 02:24:35
public class En2{
public int x;
public int y;

public void swap(int s){
int x=s*y;
y=s*x;
this.x=x;

}
public void swap2(int s){
int x=s*y;
System.out.println(this.x);
y=s*this.x;
this.x=x;
}
public static void main(String[] args){
En2 pt =new En2();
pt.x=3;
pt.y=4;
pt.swap(2);
//System.out.println(pt.x + " " + pt.y);
pt.swap2(3);
//System.out.println(pt.x + " " + pt.y);
}
}
これを実行するとthis.xのプリントは8になります。
自分の考えでいくと上のxの値になって48な気がするんですけど。
sawpでそのように考えてswap2だとその考えが通りません。
どう考えればいいのでしょうか?お願いします。

693 名前:692[sage]:2005/07/27(水) 02:31:46
↑訂正
this.xっていうのはここの時点でのxの値って考えて、
swapでthis.xをxの値8にしてあるからswap2でもthis.x=x;と置きなおすまでは
this.xは8のままという考えでいいのでしょうか?
混乱してしまってすみません。

694 名前:デフォルトの名無しさん[sage]:2005/07/27(水) 03:34:47
>692
落ち着け。まずは日本語の文法からだ。

695 名前:デフォルトの名無しさん[sage]:2005/07/27(水) 03:37:10
結論から言うと、どちらもメンバのx,yをs倍して入れ替える処理になる。
swap2で出力されるのは、入れ替わりもs倍もされていないx。

int xと宣言した場合、「x」といったらthis.xではなく変数xを指す。
二つは別物で、xの方はブロックを抜けたとき(メソッド終了時)破棄される。
int xという宣言が無い場合、「x」とはthis.xを指す。
つーか混乱する位ならメンバと同名の変数なんぞ使うな。

あと、メソッドの作り方が気持ち悪い。
swapというメソッド名ならば、入れ替える操作だけにしておいた方がいい。
俺なら両方の変数をn倍するメソッドを別に作る。

696 名前:607[sage]:2005/07/27(水) 07:54:06
>>666
28番の方、有難う御座います。たびたびお手数をおかけして申し訳ありません。
ただ、31番と32番は、コンパイルエラーがなくなっても実行結果において期待する結果が反映されないようです。

697 名前:639[sage]:2005/07/27(水) 08:14:17
>>696
どんな引数でどんな結果になるかが分からないと、なんともいえない。
ちなみに、xls ファイルどおり、
 31 全角を半角に変換 → toWide(strStr)
 32 半角を全角に変換 → toNarrow(strStr)
で作ったけど、その辺を勘違いしてない?

698 名前:デフォルトの名無しさん []:2005/07/27(水) 14:01:07
【Java 歴】 2ヶ月
【 種別 】 丸投げです.すいません。
【 課題 】 ドライバークラス
【 用語 】 JAVA
【 期限 】 7/28/2005
 
/* 与えられたプログラムに次のメソッドを加えて、テストプログラムを書けという課題が出ました。
  一応メソッドは付け加えたのですが、テストプログラムを書く事ができません。お願いします。
*/
* Check with http://java.sun.com/j2se/1.4.2/docs/api/ for more details.
* public void removeFirst();
* throws a NoSuchElementException if the list is empty
* public void removeLast();
* throws a NoSuchElementException if the list is empty
* public void clear();
* removes all the elements from the list
* public int indexOf(Object obj);
* public int lastIndexOf(Object obj);
* public Object remove(int index);
* returns the Object previously at the specified position
* throws an IndexOutOfBoundsException-if the index is out of range
* public set(int index, Object obj);
* returns the Object previously at the specified position
* throws an IndexOutOfBoundsException-if the index is out of range
* public Object[] toArray();
* returns an array containning all the elemens in this list
* in the correct order
* public Object clone();
*/

699 名前:デフォルトの名無しさん []:2005/07/27(水) 14:02:40
import java.util.Iterator;

public class LinkedList2 {
// Data Fields

Node head; // reference to the first node of the list
Node tail; // reference to the last node of the list
int length; // number of entries
Object[] data;

private class Node {
// Data Fields
Object data; // entry
Node next; // link to next node

// Constructors

private Node(Object element) {
data = element;
next = null;
}

private Node(Object element, Node nextNode) {
data = element;
next = nextNode;
}
} // Node


700 名前:698コードその2 []:2005/07/27(水) 14:04:16
private class MyIterator implements Iterator {
private Node nextItem; // reference to next node
private Node priorItem; // reference to prior node
private boolean canRemoveItem = false;

public MyIterator() {
nextItem = head;
priorItem = null;
}

public boolean hasNext() {
return (nextItem != null);
}

public Object next() {
Object element;

if(!hasNext())
throw new java.util.NoSuchElementException("The list is empty");
else {
element = nextItem.data;
priorItem = nextItem;
nextItem = nextItem.next;
canRemoveItem = true; // ok to call remove()
return element;
}
}


701 名前:698コードその3 []:2005/07/27(水) 14:05:49
public void remove() {
if (canRemoveItem = false) // need to call next() first
throw new IllegalStateException();
else {
// code
length--;
canRemoveItem = false; // cannot call remove() twice in a row
}
}

} // MyIterator

// Constructors

/** Creates a new instance of LinkedList2 */
public LinkedList2() {
head = null;
length = 0;
}


702 名前:698コードその4 []:2005/07/27(水) 14:06:52
public void add(int index, Object entry) {
if ( index < 0 || index > size())
throw new IndexOutOfBoundsException();
else if (index == 0)
addFirst(entry);
else if (index == size())
addLast(entry);
else {
Node pos = head; // pos = this[0]
for( int k = 1; k <= index-1; k++)
pos = pos.next;
// loop invariant: pos = this[k]

// place new node between
// pos = this[index-1] and pos.next = this[index]
Node newNode = new Node(entry, pos.next); // newNode -> this[index]
pos.next = newNode; // pos = this[index-1] -> newNode
}
length++;
}
public void addFirst(Object element) {
if (length == 0) // empty list
head = new Node(element);
else
head = new Node(element, head);
length++;
}


703 名前:607[sage]:2005/07/27(水) 20:51:47
>>697
申し訳ありません。全く関係の無いところでマヌケな失敗をしでかしていたようです。
31番と32番、指定どおりに動きました。たいへんご迷惑をおかけしました。

704 名前:デフォルトの名無しさん []:2005/07/27(水) 21:18:05
【 種別 】 丸投げです。
【 課題 】 http://homepage1.nifty.com/kodayan/java/ja03f.htm←こういうカレンダーをutil使わないで作るっていうやつです。
僕ではさっぱりなのでお願いします

705 名前:デフォルトの名無しさん[sage]:2005/07/27(水) 21:55:22
>>704
util使えないと無理じゃね?

706 名前:デフォルトの名無しさん[sage]:2005/07/28(木) 00:45:14
サーブレットでのFormオブジェクトの取得について質問です。

@サーブレットでrequest.getParameterNamesを使ってフォームのオブジェクト名を取得
Aその値とrequest.getParameterで取得した値をHashMapに格納
BBeanUtilsのBeanUtils.populateでBeanに名前を意識せずに格納

ってな感じでプログラムを作ってます。
オブジェクト名とかサーブレットで意識しなくてよくて便利〜って思ってたらチェックボックスを
一度オンにするとリロードしても外れなくなりました。
チェックボックスってチェックされないとrequest.getParameterNamesで取れないんですね。
何とか回避する方法ないでしょうか?

707 名前:698です。 []:2005/07/28(木) 05:06:30
【Java 歴】 2ヶ月
【 種別 】 丸投げです.すいません。
【 課題 】 ドライバークラス
【 用語 】 JAVA
【 期限 】 7/28/2005
  すいません、2度目です。昨日全て投稿できなかったので、ウェブにのせました。
  2回もすいません。いまだにmail classが途中までしかかけてません。
   与えられたプログラムにメソッドを加えて、テストプログラムを書けという課題が出ました。
  メソッドは付け加えたのですが、テストプログラムを書く事ができません。
  お願いします。

    http://www.geocities.jp/sprint_phila/java_code/list.rtf
    http://www.geocities.jp/sprint_phila/java_code/testList.rtf


708 名前:デフォルトの名無しさん[sage]:2005/07/28(木) 06:47:34
>704-705
徹夜明けで脳がうまく動かん。
java.util.Date使わずに現在時刻取得する方法ってなんかあったっけ?

現在日時の取得が不要ならば余裕。単純にツェラーの公式で曜日算出。

709 名前:デフォルトの名無しさん[sage]:2005/07/28(木) 10:49:25
>>707
人をテスターに使うとはいい度胸だ。と思いつつテストしてみたヒマな俺。
ttp://www.uploda.org/file/uporg157517.zip.html

残念ながら、試験通過率は 16/32 です。
↓だめなケース
3. 12. 13. 14. 15. 17. 18. 19. 22. 23. 24. 25. 29. 30. 31. 32.

710 名前:704です []:2005/07/28(木) 12:24:23
【Java 歴】 2ヶ月
【 種別 】 丸投げです
【 課題 】 BorderLayoutのnorthにFlowLayoutをいれて、
テキストに年と月を入れてボタンを押すとカレンダーがでるってやつです。
勘違いしてました。
http://takkyssquare.s4.xrea.com/yoshinoya/obj/obj25_1.JPG←なんかこんな感じです

711 名前:デフォルトの名無しさん []:2005/07/28(木) 13:26:40
java.util をつかってはダメなのですか?

712 名前:デフォルトの名無しさん[sage]:2005/07/28(木) 13:35:45
>>704,710
とりあえず落ち着いて、「課題そのもの」をうぷすることをお勧めする。

713 名前:デフォルトの名無しさん[age]:2005/07/28(木) 18:22:07
【Java 歴】 暦だけで言うなら数ヶ月、でもちっとも理解出来てない状態
【 種別 】 質問です
【 課題 】 if( ){ } else if( ){ } else{ }を使って
80点以上なら進級、80点未満で欠席率が30未満なら再試、80点未満で欠席率が30以上なら留年
というようなプログラムを作りたいのです。

(前の方は略)
int hyouka;
if(tensu>=80){
hyouka="進級";
}
else if(kesseki<30){
hyouka="再試";
}
else{
hyouka="留年";
}
System.out.println( "点数:"+tensu+"\t欠席率:"+kesseki+"\t評価:"+hyouka+);

【不明点 】 こうすると、最後の行に、「')'がありません」と出ます
似た問題がいっぱいあって、やってみると何故か全部に同じエラーが出ます
あと、これの場合は同じく最後の行に「式の開始が不正です」とも出ます
正しいプログラムを教えてもらえると嬉しいです
【 期限 】 今日中

714 名前:デフォルトの名無しさん []:2005/07/28(木) 19:02:18
さあ、皆の者作るがいい!

715 名前:デフォルトの名無しさん[sage]:2005/07/28(木) 20:05:01
>>713
System.out.println( "点数:"+tensu+"\t欠席率:"+kesseki+"\t評価:"+hyouka);
最後の + は必要ない。



716 名前:713[age]:2005/07/28(木) 20:35:49
>>715
有難うございます!

しかし今度は、hyoukaの3つに「互換性のない型」と出てきました
一応書いてみます

検出値 : java.lang.String
期待値 : int
hyouka="進級";
^

あれから、1つも解けなくてヤバイ状態です(つД`)

717 名前:デフォルトの名無しさん[sage]:2005/07/28(木) 20:41:13
>716
> 検出値 : java.lang.String
> 期待値 : int
このエラーメッセージを読んで>713
> int hyouka;
を修正しる。

718 名前:713 []:2005/07/28(木) 21:21:27
>>717
String hyouka;
に変えてみたら、javacが出来ました!有難うございます!

しかしjavaをやろうとしたら、今度は
>Exception in thread "main" java.lang.NoClassDefFoundError:
と…。色々やってみましたが、分らないので諦めるしかなさそうです


分らない問題が山積みで、連続で申し訳ないのですが、もう1つだけ質問させてください

【 PG 歴 】 【Java 歴】 ド級初心者
【 種別 】 丸投げです
【 課題 】 {3,1,5,4,0,5,-1}というような整数の配列を宣言、初期化し、それらの数値を繰り返し構文(while)を使って印刷。
フローチャートも書くこと。
【不明点 】 全てが意味不明な状態です
【バージョン】 java version "1.5.0_02"
【 期限 】 今日中ですが、明日の明るいうちなら…

719 名前:デフォルトの名無しさん[sage]:2005/07/28(木) 21:43:46
>718
Javaのプログラムを動かした経験がない、とか言わないよな?
Hello, worldでも何でもいいけど、一度は動かした事があるんだよな?
ファイル名とクラス名が一致してないといけないとか、その程度は分かってるよな?

public class ArrayTest {
  public static void main(String[] args){
    int[] array = {3,1,5,4,0,5,-1};
    //宣言、初期化

    int i = 0;
    //繰り返し回数のカウント用変数

      while(i<array.length)
      {
        System.out.println(array[i]);
        i = i + 1;
      }
  }
}
全角スペースで整形してるので、全角スペース全部消してからコンパイル。

720 名前:デフォルトの名無しさん[sage]:2005/07/28(木) 21:48:09
フローチャート。各文は決まった形状の枠で囲む必要がある。
()で括ってあるのは丸で、[]は四角で、<>は菱形で囲むべし。

(Start)

[ array←{3,1,5,4,0,5,-1} ]

[i←0]

< i<array.lengthか? > ←──────┐
↓No        ↓Yes            │
(End)       [array[i]を表示] .     │
            ↓              │
           [i←i+1]           │
└─────────┘

721 名前:713 []:2005/07/28(木) 23:50:29
>>719
本当に有難うございます!
arrayとかは習ってないので、案の定チンプンカンプンです
でも助かりました
これを機会に、もっと勉強してきます


ちなみに、どこのサイトを見ても難しくて理解できないのですが、それが普通なんでしょうか

722 名前:デフォルトの名無しさん[sage]:2005/07/28(木) 23:53:51
俺はプログラムなんて100%習ってないが、普通に使ってます。

723 名前:デフォルトの名無しさん []:2005/07/29(金) 00:06:57
問題



・int型の配列a[]は、任意の長さで、互いに異なる正の整数が大→小の順に並んでい るとする。このときa[i-1]とa[i]の間を「第i区間」と呼ぶ。例えばa[]が「12 9 6 4 3」という並びのとき、12と9の間は第1区間、6と4の間は第3区間である。
・コマンドラインから正の整数(Nとする)を一つ入力して、Nがa[]のどの区間に属するか(どの区間にも属さない場合はエラー)を表示する下記のプログラムを完成させよ。
public static void main(String[] args){
int N= ; /* コマンドライン引数を整数に変換 */
int a[]= ; /* 初期値を与える */
if( ){
System.out.println("区間外エラー");
} else {
int i;
for(i ; ; ){
if(a[ ] ){ /* ↓Nが属する区間の表示 */
System.out.println( );
break;
}
}
}
}

・a[]の初期値は、上記の条件を満たすように各自で適当に与えること。また、Nがa[]のいずれかの要素(=区間の切れ目)に等しい場合は、小さい方(左側)の区間に属するものとする。







お願いします。


724 名前:707 []:2005/07/29(金) 02:16:40
>>709
遅くなりましたが、ありがとうございました。

725 名前:707 []:2005/07/29(金) 02:19:53
>>709さん。
 アップしてもらった、ファイル消されてしまってて見れないんですが、
 すいません、もう一度アップしてもらえませんでしょうか?

726 名前:709[sage]:2005/07/29(金) 05:10:43
>>725
ttp://www.uploda.org/file/uporg158296.zip.html
先頭に package 宣言がついてるので、いらなきゃ削って。

ところで、
ttp://sourcepost.sytes.net/
が昨日から見れない・・・

727 名前:デフォルトの名無しさん[sage]:2005/07/29(金) 06:51:45
>>723
依頼はテンプレ準拠でお願いします。


728 名前:デフォルトの名無しさん []:2005/07/29(金) 07:16:35
さあ、早く回答するがいい

729 名前:719[sage]:2005/07/29(金) 08:10:33
>721
arrayは単なる変数名、名前なんで、それ自体に意味は無い。
別に
int[] chinko = { 3, 1, …};
(中略)
while(i<chinko.length) {
System.out.println(chinko[i]);
(後略)
とかでも問題ない。

プログラミングの勉強のうち、本当に入口の部分は人に聞いて覚えた方が間違いなく早いと思う。
ちゃんと講義に出て、先生なり友達なりに聞くべきだったと思うね。
とっかかりさえ掴んでしまえば後は自力でいくらでも勉強できるけど。

プログラミングは結局書いて覚えるしかない。
サンプルを眺めるだけじゃなく、実際自力で打ち込んで実行させないと。

730 名前:デフォルトの名無しさん []:2005/07/29(金) 10:08:08
そうだ、さあ学ぶがよい!

731 名前:713 []:2005/07/29(金) 11:28:30
>>729
ご丁寧に有難うございます!
arrayじゃなくても良いんですか、でも省略してはだめなんですよね?

732 名前:デフォルトの名無しさん[sage]:2005/07/29(金) 11:49:21
>>723
public static void main(String[] args)
{
int N = Integer.parseInt(args[0]); /* コマンドライン引数を整数に変換 */
int a[] = { 20, 15, 10, 5, 1 }; /* 初期値を与える */
if (N >= a[0] || a[a.length-1] > N)
{
System.out.println("区間外エラー");
}else
{
int i;
for (i = 1; i < a.length-1; i++)
{
if (a[i-1] > N && N >= a[i])
{ /* ↓Nが属する区間の表示 */
System.out.println("Nは第"+i+"区間に属している");
break;
}
}
}
}

733 名前:デフォルトの名無しさん []:2005/07/29(金) 11:52:25
頼む。このスレは常時ageてくれ。。。

734 名前:707 []:2005/07/29(金) 12:03:06
>>709-san
thank you so much.

735 名前:713 []:2005/07/29(金) 15:10:19
【不明点】エラーの原因
Exception in thread "main" java.lang.NoClassDefFoundError: xxx (wrong name:xxx)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)


>>719さんに教えてもらったものも、javacは出来ましたがjavaを実行しようとするとこんなエラーが出ます
前にやった.javaを同じフォルダに持ってきてやってみましたが、ちゃんと出来ました
(set pathとset classpathは同じフォルダのバッチファイルに入ってます)
しつこくてすいませんが、エラーの原因がわかる方教えてください

736 名前:デフォルトの名無しさん[sage]:2005/07/29(金) 15:26:08
Exception in thread "main" java.lang.NoClassDefFoundError: xxx (wrong name:xxx)
ここは本当に「wrong name:xxx」って出てるのか?


737 名前:713 []:2005/07/29(金) 15:39:27
>>736
xxxのところはorz3みたいな普通のファイル名です
それ以外は同じです

738 名前:デフォルトの名無しさん []:2005/07/29(金) 16:57:11
早く誰か教えるがいい!

739 名前:デフォルトの名無しさん []:2005/07/29(金) 17:22:00
なにを

740 名前:デフォルトの名無しさん []:2005/07/29(金) 17:27:48
どなたかバケットソートのソース教えてください

741 名前:デフォルトの名無しさん[sage]:2005/07/29(金) 17:33:47
母さん、>>719の4行目を料理してくれんかのぉ…。
これを食べれば長生きできる気がするんじゃよ。

742 名前:デフォルトの名無しさん[sage]:2005/07/29(金) 17:55:27
バケットソートってどんなのだ?

743 名前:デフォルトの名無しさん[sage]:2005/07/29(金) 18:07:16
>>742
http://www.ics.kagoshima-u.ac.jp/~fuchida/edu/algorithm/sort-algorithm/bucket-sort.html


744 名前:デフォルトの名無しさん[sage]:2005/07/29(金) 22:36:44
>731
名前の無い変数には、後から値を代入したり値を読み出したりすることが出来ない。
「どの」変数に値を代入するかとか、「どの」変数を読む込むかを指定する手段がないからな。
名前が無い人を呼ぶことが出来ないのと同じ理屈だ。
省略できない、というか、省略できたとしてもその後その変数を使う手段が無くなるので意味が無い。

状況によっては無名の変数(のようなもの)を使う場合もあるが、それはずっと先のお話。

>741
publicがどうとかmainがどうとか説明するのが面倒だったので「一致させろ」と思わず言ってしまった。
別に問題は発生しないし、無駄に長い説明をしても混乱するだけだろうと思った。
今は反省していない。

745 名前:741[sage]:2005/07/29(金) 23:38:29
>>744
すまん、漏れはただ713に対して「719の4行目を読んでファイル名修正すれば幸せになるんじゃね?」
と言いたかっただけなんだ。
今は反省している。

746 名前:デフォルトの名無しさん []:2005/07/30(土) 17:23:25
【Java 歴】 4ヶ月
【 種別 】 丸投げ
【 課題 】

信号機の機能を持つ Signalクラスを作成してください。
Signalクラスはフィールドに String型で名前がstrの
信号の状態を持ち,"赤" "青" "黄"のいずれかを持つ。
メソッドには
setRed()
setBlue()
setYellow()
show()
を持つ
それぞれ,赤色,青色,黄色に変更と現在の信号の色を表示する。


747 名前:デフォルトの名無しさん[sage]:2005/07/30(土) 18:02:13
>>746
public class Signal {
    private String state;
    public void setRed() { this.state = "赤"; }
    public void setBlue() { this.state = "青"; }
    public void setYellow() { this.state = "黄"; }
    public void show() { System.out.println(this.state); }
}

748 名前:デフォルトの名無しさん []:2005/07/30(土) 18:06:10
たわけ

749 名前:デフォルトの名無しさん[sage]:2005/07/30(土) 21:07:51
stateじゃなくてstrだろ。4万点減点。
それ以前にこのクラスの設計がマイナス53万点。

750 名前:デフォルトの名無しさん[sage]:2005/07/31(日) 00:15:04
すいません。javaのBeanって比較できないですか?
更新前と更新後を比較して違ってれば更新または登録ってしようようとすると
100個のGet、Setがあれば全部取り出して
比較するしかないんですか?
クローンまでは調べてわかったんですけど・・・。
変更されたかどうかとか知りたいこと多いと思うんですけど。
一般的なJavaな人はどうしてるんでしょう?

751 名前:デフォルトの名無しさん[sage]:2005/07/31(日) 00:33:24
>750
equals()とかで出来ないか?
(実装されてる事が前提だが)

752 名前:707 []:2005/07/31(日) 03:46:06
【Java 歴】 3週間
【 種別】 丸投げ
【 課題】 パン焼き機を操作するプログラムを書いてください。 
      詳細は以下のとおりです。
       http://www.geocities.jp/sprint_phila/java_code/breadMachine.rtf


753 名前:デフォルトの名無しさん[sage]:2005/07/31(日) 06:22:36
>>752
1.2.3. での入力例を具体的に。
4. の readBoolean() とは java.io.DataInput#readBoolean() のことか?

754 名前:752 []:2005/07/31(日) 06:41:27
すいません、上のリンクの具体的な入力例を加えました。
よろしくお願いします。

755 名前:752 []:2005/07/31(日) 06:46:38
一応、途中まで書いたのですが、とまってしまいました。

http://www.geocities.jp/sprint_phila/java_code/breadMachine1.rtf
http://www.geocities.jp/sprint_phila/java_code/breadMachine1App.rtf

756 名前:デフォルトの名無しさん[sage]:2005/07/31(日) 09:37:46
>752
>もし、焼き方がマニュアルならパンのドウをloaf shapingの後で動かすように指示する
パンのドウってなに?

rtf開くのマンドクセ('A`)

757 名前:デフォルトの名無しさん []:2005/07/31(日) 10:02:15
ドウはパンの元になるコネコネしたものだとおもうんですが。。

ユザーにパンのドウを動かす指示のメッセージを出すだけなのであまり
気にしなくていいと思います。
rtfすいません。

758 名前:デフォルトの名無しさん[sage]:2005/07/31(日) 11:26:28
>752
動くだけ。こんなコードは書いたらイカンよという例。
http://www.wikiroom.com/java/index.php?%A5%BD%A1%BC%A5%B9%C5%BD%A4%EA%C9%D5%A4%B1

759 名前:デフォルトの名無しさん []:2005/07/31(日) 13:52:18
コンパイルしないよ=

760 名前:デフォルトの名無しさん[sage]:2005/07/31(日) 15:25:21
>759
JDK5.0使え。

761 名前:デフォルトの名無しさん[sage]:2005/07/31(日) 19:46:13
>>751
遅レスですんません。
「実装されている」っていうのがよくわかりません。
equalsはふつうにdatabean.equals(databen2);
とかやったらクローンしたばっかでも
falseが返ってきたからだめかなぁと思ってたんですが・・・。
Javaな人からすれば基本的なことなのかもしれませんが
このJava歴1月にはちょっと難しくて・・


762 名前:デフォルトの名無しさん[sage]:2005/07/31(日) 19:53:28
Vector a;
a = new Vector();
a.addElement("abc");
a.addElement("bcd");
a.addElement("cde");
for (int i = 0; i < a.size(); i++) {
char c = a.elementAt(i).charAt(0);
System.out.println(c);
}

ただ配列に文字列を入れてプリントするプログラムですが、このプログラムをコンパイルするとエラーが出ます。
キャストを使って直したいのですが教えてくださいお願いします。

763 名前:デフォルトの名無しさん[sage]:2005/07/31(日) 20:05:32
>762
char c = a.elementAt(i).charAt(0);

char c = ((String)a.elementAt(i)).charAt(0);
に。

764 名前:デフォルトの名無しさん []:2005/08/01(月) 01:05:37
テストのスコア数とそのスコアをユーザーに聞いてそれをアウトプットする
プログラムを書いたのですが、下のexamScore classにあるgetCategory() methodにある
if文達を呼んでそれぞれのスコアのレンジに合わせた、アウトプットを出した
いのですが、上手い事いきません。
どなたかよろしければ、見ていただけますか?

http://www.geocities.jp/sprint_phila/java_code/examScores.rtf
http://www.geocities.jp/sprint_phila/java_code/examScoresApp.rtf

765 名前:デフォルトの名無しさん []:2005/08/01(月) 01:17:24
javaプログラム作ってください
■英単語をカウントするプログラム■
引数に○○.txtを指定(テキストにはスペース区切りで英単語が書いてある)
もしテキストに「I I you you you she she he」と書いてあったら
Sortして

you 3
I 2
she 2
he 1

と表示したいのですが、2つのクラスを用いて作ってください!!お願いします


I
I
you
you
you
she
she
he
と、スペースごとに改行はできたのですが・・・そこからどう、進めていいのかわかりません

766 名前:デフォルトの名無しさん []:2005/08/01(月) 02:29:49
結果表をSortするプログラム。

下記の表で2の項目を選択すると、
1 | 2
--------
A | 24
B | 36
C | 8

 ↓

1 | 2
--------
B | 36
A | 24
C | 8

に並び変わるプログラム。
javascriptでもいいです。

ご存知の方お願いします。

767 名前:デフォルトの名無しさん[sage]:2005/08/01(月) 12:23:57
>>765 Q52_765.java
使い方: java Q52_765 file.txt

import java.io.*;
import java.util.*;

public class Q52_765 {
public static void main(String[] args) {
String fileName = args[0];
Map map = new HashMap();
try {
WordReader wr = new WordReader(new FileReader(fileName));
String word;
while ((word = wr.nextWord()) != null) {
int count = map.containsKey(word) ? ((Integer)map.get(word)).intValue() : 0;
map.put(word, new Integer(count + 1));
}
wr.close();

Iterator it = map.keySet().iterator();
while (it.hasNext()) {
String key = (String) it.next();
System.out.println(key + " " + map.get(key));
}
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}

768 名前:767[sage]:2005/08/01(月) 12:24:39
class WordReader extends FilterReader {
public WordReader(Reader in) {
super(in);
}

public String nextWord() throws IOException {
StringBuffer sb = new StringBuffer();
int ch;
while ((ch = read()) >= 0) {
if (Character.isWhitespace((char) ch)) {
if (sb.length() > 0) break;
} else {
sb.append((char) ch);
}
}
String s = sb.toString();
return s.equals("") ? null : s;
}
}

769 名前:デフォルトの名無しさん []:2005/08/01(月) 15:12:07
javaでループを終わらしたい時につかうCで言うend ifみたいな表現方法
はないですか??

770 名前:デフォルトの名無しさん[sage]:2005/08/01(月) 15:18:28
Cで言うend ifってなんですか?
Cでは一度も見た記憶がないのですが

771 名前:デフォルトの名無しさん[sage]:2005/08/01(月) 15:19:19
#endif のこと?


772 名前:デフォルトの名無しさん []:2005/08/01(月) 15:24:18
さあ、早く答えるがいい!

773 名前:デフォルトの名無しさん[sage]:2005/08/01(月) 15:46:36
}

774 名前:デフォルトの名無しさん[sage]:2005/08/01(月) 15:52:09
うむ、的確な回答だ。

775 名前:デフォルトの名無しさん []:2005/08/02(火) 02:24:31
今までに習った知識で何でもいいから、自分でプログラムを作るとかいう無茶な課題が出ました。
ここまでの知識で何かオススメのプログラムがあったら、教えてください。

1、 クラスとオブジェクト
2、 プリミティブと参照
3、 メソッドとインスタンス
4、 java API
5、 継承とポリモーフィズム
6、 インターフェースと抽象クラス
7、 コンストラクタとガーベージコレクション
8、 数値の扱いとスタティック変数、メソッド
9、 例外処理
10、GUIの基礎
11、Swing
まで学びました。何かいいアドバイスをお願いします。

776 名前:デフォルトの名無しさん[sage]:2005/08/02(火) 03:15:35
>>775
電卓なんかどうだ??

777 名前:775 []:2005/08/02(火) 04:02:19
>>776
アドバイスありがとうございます。
ソース分かります?

778 名前:775 []:2005/08/02(火) 04:22:56
あと、すいません。
できたら、結構複雑なのがいいです
10分くらいでそのプログラムについて、解説とかしなければいけないので

779 名前:デフォルトの名無しさん []:2005/08/02(火) 06:35:54
エッチゲームを作ろう!

780 名前:デフォルトの名無しさん[sage]:2005/08/02(火) 09:07:39
>>755
ここまでやって何のアイデアも浮かばないんじゃおわっとる。
授業中の例題とか改造すればどうにでもなるだろ。

>>799
意外とお勧めだったりして(w
GUI、ファイル入出力、簡易スクリプト実行エンジンとか、いい発表ネタになりそうだ。


781 名前:デフォルトの名無しさん[sage]:2005/08/02(火) 09:49:42
電卓は結構複雑だぞ

782 名前:デフォルトの名無しさん []:2005/08/02(火) 10:03:12
さあ、早く作るがいい!

783 名前:デフォルトの名無しさん []:2005/08/02(火) 13:10:03
一文字の文字をインプットして、それ相応のアウトを出したいんですが、
反応しません。何故でしょうか? コードは以下の通りです。
import javax.swing.JOptionPane;

public class numSchoolApp {

public static void main(String[] args) {
int totalPaper =0;
int paperOrder=10;
int totalRibbon=0;
int totalLabel;
int labelOrder=10;
String inventory = JOptionPane.showInputDialog("Enter a letter to select an operation");
//int nB = Integer.parseInt(number);

if((inventory=="B")||(inventory=="C"))
System.out.println(totalPaper =+ paperOrder);

else if((inventory=="E")||(inventory=="F")||(inventory=="D"))
System.out.println(totalRibbon++);

else if((inventory=="A")||(inventory=="X"))
System.out.println(totalLabel =+ labelOrder);

else if(inventory=="M")
System.out.println(" Do nothing");

}
}


784 名前:デフォルトの名無しさん []:2005/08/02(火) 14:27:19
下のコードの中でどれがエラーになりますか?
また何故、いつエラーになりますか?

int [] x = new int[10];
int [] y = new int[10];
i = 1;
x(i) = 7.5;


785 名前:デフォルトの名無しさん[sage]:2005/08/02(火) 15:11:45
>>784
そういう時は実際に動かしてみ。

786 名前:デフォルトの名無しさん []:2005/08/02(火) 15:20:04
【Java 歴】 3週間
【 種別】 メソッド
【 課題】 以下の動きをするメソッドを書いてください。メソッドはarray argumentを
      持っていて、arrayと同じタイプの"result"をreturnする(int [])。
      そして、メソッドはarrayの要素を"result"に逆並びに
      コピーする。お願いします。


787 名前:784 []:2005/08/02(火) 15:23:44
>>785
 動かし方があっているのか分からないのですが、
 こんな感じであってるでしょうか?

    int [] x = new int[10]; // OK 
    int [] y = new int[10]; // OK
    i = 1; // エラー. iのタイプが定義されてない。
        // コンパイル中にエラー発見される。
    x(i) = 7.5; //エラー"x"が定義されてない。
          //コンパイル中に発見される。

788 名前:デフォルトの名無しさん[sage]:2005/08/02(火) 15:39:17
>>787
それでOK。

ただし、x(i) については、コンパイラがそれを x という名前のメソッドと
解釈するために「定義されてない」という趣旨のコンパイルエラーになるが
題意的には、一行目で宣言している配列 x の添え字指定を [] と間違えて
() としているために動かない、と答えさせたいのかもしれない。

789 名前:デフォルトの名無しさん []:2005/08/02(火) 17:33:18
>>788
 ありがとうございます。

790 名前:デフォルトの名無しさん[sage]:2005/08/02(火) 17:45:36
>>786
メソッドがarray argumentを持つ?
引数に取るではなくて?
もしくはクラスが持つ?

791 名前:デフォルトの名無しさん []:2005/08/02(火) 18:20:58
そうだ悩むがよい!

792 名前:デフォルトの名無しさん[sage]:2005/08/02(火) 21:35:25
>>783
inventory=="B" とかを、全部 inventory.equals("B") とかに変更。
ヒント: ==は同じオブジェクトかどうかを比較、.equals()は同じ内容の文字列かどうかを比較。

793 名前:デフォルトの名無しさん[sage]:2005/08/02(火) 21:40:33
>>786 array argumentは配列の引数だよな。動作確認任せた【何】
public static int[] copyReverse(int[] a) {
int[] result = new int[a.length];
for (int i = 0; i < result.length; i++) {
result[i] = a[a.length - 1 - i];
}
return result;
}

794 名前:デフォルトの名無しさん[sage]:2005/08/02(火) 21:46:06
>775
>780も言ってるが、知識としてはJavaでできる事の半分くらいは理解している事になる。
面接で「Javaなら使えます」と言っても支障ないレベル。
APIドキュメントの調べ方も分かってるのなら、大抵の事はできる。
スレッド関係を知らないのならアクションゲームとかは無理だけど。

あと、そんなに無茶な課題じゃないぞ。自由課題を出す教官は多い。
結局、自分で設計して書かないと力がつかないからな。
おまいさんの半分以下の知識で自由課題を出される奴がいる事を考えたら、じゅうぶん恵まれている。

795 名前:デフォルトの名無しさん []:2005/08/02(火) 21:49:11
>>793
ありがとね。

796 名前:デフォルトの名無しさん []:2005/08/02(火) 22:24:17
(℃゜)ゞ

797 名前:775 []:2005/08/03(水) 04:06:30
>>794
そうですよね。
でも、自分の力では無理です。
自分はjavaを今後は使う必要が無いので、今回の課題だけクリアすればいいんですけど、それは厳しいです
電卓のソースお願いします。

798 名前:775 []:2005/08/03(水) 04:14:25
課題の期限が金曜までです。
このままじゃ留年しちゃいます。
本当にお願いします

799 名前:デフォルトの名無しさん []:2005/08/03(水) 04:18:57
【Java 歴】 8週間
【種別】 マル投げ
【期日】 8月4日
【課題】 ArrayList(またはLinkedList)使って、
      StackIntインターフェースを実装しているStackプログラムを
      書いてください。詳細は以下の通りです。
      1.ユーザーによって入れられる接尾辞表現を読んで、それを
       評価するプログラムを開発してください。
      2.結果はディスプレイして下さい。
      3.JOptionPaneを使い、接尾辞表現を読んで出力をディスプレイ
       して下さい。
      4.StringTokenizerを使って、表現を解析して下さい。
      5.被演算子は、整数だけでなければなりません。
      6.演算のセットは {+, -, *, /, %}。
      7.表現が無効ならば(例.3 4 + +5)、exceptionを投げて、
       エラーメッセージをディスプレイして下さい。
  すいません、よろしくお願いします。

800 名前:デフォルトの名無しさん []:2005/08/03(水) 04:31:52
おお、課題が来ておる
さあ、はやく回答するがよい!

801 名前:デフォルトの名無しさん []:2005/08/03(水) 04:35:45
>>798
留年など恐れてはならぬ!
自らの思うままに進むが良い!

802 名前:775 []:2005/08/03(水) 05:03:20
>>801
そんな冷たいこと言わないで下さい
マジで助けて

803 名前:>>797 その1 []:2005/08/03(水) 09:13:01
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class HW94 {
static double value;
static boolean initFlag = true;
static char opeFlag;
static JPanel panel = new JPanel();
static JLabel label = new JLabel();
static JButton[] btn = new JButton[17];
static ActionListener numEvent = new Number(),
opeEvent = new Operator(),
equalEvent = new Equal(),
clearEvent = new Clear();

804 名前:>>797 その2 []:2005/08/03(水) 09:14:10
public static void main(String[] args) {
ActionListener[] als = new ActionListener[] { numEvent, numEvent,
numEvent, opeEvent, numEvent, numEvent, numEvent, opeEvent,
numEvent, numEvent, numEvent, opeEvent, numEvent, clearEvent,
equalEvent, opeEvent, clearEvent };
String[] btnLabel = { "7", "8", "9", "/", "6", "5", "4", "*", "3",
"2", "1", "−", "0", "C", "=", "+", "AC" };
for (int i = 0; i < btnLabel.length; ++i) {
btn[i] = new JButton(btnLabel[i]);
btn[i].addActionListener(als[i]);
btn[i].setFont(new Font("Dialog", 1, 20));
panel.add(btn[i]);
}
label.setText("0");
label.setFont(new Font("Dialog", 1, 30));
label.setOpaque(true);
label.setBackground(Color.white);
label.setBorder(BorderFactory.createLoweredBevelBorder());
panel.setOpaque(false);
panel.setLayout(new GridLayout(5, 4, 8, 8));
JFrame frame = new JFrame();
JComponent cp = (JComponent) frame.getContentPane();
cp.setBorder(BorderFactory.createEmptyBorder(8, 8, 8, 8));
cp.setBackground(new Color(230, 230, 230));
cp.setLayout(new BorderLayout(8, 8));
cp.add(label, BorderLayout.NORTH);
cp.add(panel);
frame.setSize(new Dimension(300, 400));
frame.setResizable(false);
frame.setVisible(true);
}

805 名前::>>797 その3 []:2005/08/03(水) 09:15:16
static void error(String text) {
value = 0;
opeFlag = 0;
initFlag = true;
label.setText(text);
Component[] cs = panel.getComponents();
for (int i = 0; i < cs.length - 1; ++i) {
cs[i].setEnabled(false);
}
}

static class Number implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (opeFlag == 0) {
value = 0;
}
String text = null;
if (initFlag) {
text = "";
initFlag = false;
} else {
text = label.getText();
}
text += (((JButton) e.getSource()).getText()).toString();
if (text.length() > 16) {
error("エラー(桁溢れ)");
return;
}
label.setText(text);
}
}

806 名前:>>797 その4 []:2005/08/03(水) 09:16:07
static class Operator implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (opeFlag != 0) {
equalEvent.actionPerformed(e);
}
if (label.getText().startsWith("エラー")) {
return;
}
opeFlag = ((JButton) e.getSource()).getText().charAt(0);
value = Double.parseDouble(label.getText());
initFlag = true;
}
}
static class Equal implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (initFlag || opeFlag == 0) {
return;
}
double num = Double.parseDouble(label.getText());
switch (opeFlag) {
case '+':
value += num;
break;
case '−':
value -= num;
break;
case '*':
value *= num;
break;
case '/':
value /= num;
}

807 名前::>>797 その5 []:2005/08/03(水) 09:16:57
if (Double.isNaN(value)) {
error("エラー(非数)");
return;
}
if (Double.isInfinite(value)) {
error("エラー(無限数)");
return;
}
if (String.valueOf(value).length() > 16) {
error("エラー(桁溢れ)");
return;
}
if (value % 1 != 0) {
label.setText(String.valueOf(value));
} else {
label.setText(String.valueOf((int) value));
}
initFlag = true;
opeFlag = 0;
}
}

808 名前:デフォルトの名無しさん[sage]:2005/08/03(水) 09:30:04
だからUPロダ使えっつーの

809 名前:::>>797 その6 []:2005/08/03(水) 09:32:06
static class Clear implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (((JButton) e.getSource()).getText().equals("C")) {
if (initFlag) {
return;
}
} else {
opeFlag = 0;
value = 0;
Component[] cs = panel.getComponents();
for (int i = 0; i < cs.length; ++i) {
cs[i].setEnabled(true);
}
}
initFlag = true;
label.setText("0");
}
}
}


810 名前:デフォルトの名無しさん []:2005/08/03(水) 10:23:45
そうだ、もっとソースコードを貼るがよい!
このスレを埋め尽くすのだ!

811 名前:デフォルトの名無しさん []:2005/08/03(水) 10:26:44
【Java 歴】 3ヶ月
【 種別 】 丸投げ。
【 課題 】
信号機の機能を持つ Signalクラスを作成してください。
Signalクラスはフィールドに String型で名前がstrの
信号の状態を持ち,"赤" "青" "黄"のいずれかを持つ。
メソッドには
setRed()
setBlue()
setYellow()
show()
を持つ
それぞれ,赤色,青色,黄色に変更と現在の信号の色を表示する。

お願いします

812 名前:デフォルトの名無しさん[sage]:2005/08/03(水) 10:29:04
>>811
また同じ質問か

813 名前:デフォルトの名無しさん[sage]:2005/08/03(水) 10:49:10
>>811
>>746-747

ただ、"赤"・"青"・"黄"は定数で持った方がいいだろうな。

814 名前:デフォルトの名無しさん []:2005/08/03(水) 12:21:16
信号機課題を作るのだ!
さすれば、交通事故も減るだろう!

815 名前:デフォルトの名無しさん []:2005/08/03(水) 12:34:34
すいません、よかったら
>>799もよろしくお願いします。

816 名前:デフォルトの名無しさん []:2005/08/03(水) 12:39:04
そうだ、799も答えるのだ。
Javaプログラマよ。立ち上がれ!

817 名前:775 []:2005/08/03(水) 16:56:34
>>803
マジありがとうございます。

818 名前:>>799 その1 []:2005/08/03(水) 18:32:37
import java.util.*;
import javax.swing.*;
public class HW107 implements StackInt {
static final int ADD = 0, SUB = 1, MUL = 2, DIV = 3, MOD = 4, HEAD = 5, TAIL = 6;
static final int EQU = 0, HIG = 1, LOW = 2;
static final char[][] map = {
// + - * / % h t
/* + */ { EQU, EQU, LOW, LOW, LOW, HIG, HIG },
/* - */ { EQU, EQU, LOW, LOW, LOW, HIG, HIG },
/* * */ { HIG, HIG, EQU, EQU, EQU, HIG, HIG },
/* / */ { HIG, HIG, EQU, EQU, EQU, HIG, HIG },
/* % */ { HIG, HIG, EQU, EQU, EQU, HIG, HIG },
/* h */ { LOW, LOW, LOW, LOW, LOW, EQU, LOW },
/* t */ { LOW, LOW, LOW, LOW, LOW, HIG, EQU },
};
public static void main(String[] args) {
while (true) {
String line = JOptionPane.showInputDialog(null, "", "式の入力",
JOptionPane.QUESTION_MESSAGE);
if (line == null || line.trim().length() == 0) {
break;
}
try {
int result = calculate(line);
JOptionPane.showMessageDialog(null, "解答は " + result + " です",
"エラー", JOptionPane.INFORMATION_MESSAGE);
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, ex.getMessage(), "エラー",
JOptionPane.WARNING_MESSAGE);
}
}
}

819 名前::>>799 その2 []:2005/08/03(水) 18:33:11
static int calculate(String line) throws Exception {
StringTokenizer st = new StringTokenizer(line, "+-*/%", true);
LinkedList numList = new LinkedList();
LinkedList opeList = new LinkedList();
opeList.addLast(new Integer(HEAD));
int sign = 0;
boolean endFlag = false;

while (!endFlag) {
if (!st.hasMoreTokens()) {
endFlag = true;
sign = TAIL;
} else {
String token = st.nextToken().trim();
if (token.matches("\\d+")) {
numList.addLast(new Integer(Integer.parseInt(token)));
continue;
} else if (token.equals("+")) {
sign = ADD;
} else if (token.equals("-")) {
sign = SUB;
} else if (token.equals("*")) {
sign = MUL;
} else if (token.equals("/")) {
sign = DIV;
} else if (token.equals("%")) {
sign = MOD;
} else {
throw new Exception("不正な文字が含まれてます");
}
}

820 名前:>>799 その3 []:2005/08/03(水) 18:34:11
while (true) {
int ope = ((Integer) opeList.getLast()).intValue();
int result = map[sign][ope];
if (result == HIG) {
break;
}
if (numList.size() < 2) {
throw new Exception("式の記述が不正です");
}
opeList.removeLast();
int num2 = ((Integer) numList.removeLast()).intValue();
int num1 = ((Integer) numList.removeLast()).intValue();
switch (ope) {
case ADD:
numList.addLast(new Integer(num1 + num2)); break;
case SUB:
numList.addLast(new Integer(num1 - num2)); break;
case MUL:
numList.addLast(new Integer(num1 * num2)); break;
case DIV:
numList.addLast(new Integer(num1 / num2)); break;
case MOD:
numList.addLast(new Integer(num1 % num2));
}
}
opeList.addLast(new Integer(sign));
}

821 名前::>>799 その4 []:2005/08/03(水) 18:34:46
if (numList.size() != 1 || opeList.size() != 2) {
throw new Exception("式の記述が不正です");
}
return ((Integer) numList.getLast()).intValue();
}
}

interface StackInt {
// empty
}


822 名前:デフォルトの名無しさん[sage]:2005/08/03(水) 18:35:53
長々とソース貼り付けんな馬鹿

823 名前:デフォルトの名無しさん[sage]:2005/08/03(水) 18:38:59
いつもの小島露観だろ。
ソースコードがうざいんだよ。氏ね。バカ。

824 名前:ザイン帝國軍帥・伯魔壬旭(小島露観) []:2005/08/03(水) 18:49:50
>>799
StackInt インターフェースが何なのかよく分からないので、
単純にダイアログに入力された式の解答を表示するプログラムに
しました。


825 名前:デフォルトの名無しさん[sage]:2005/08/03(水) 18:53:11
てめー、この状況で平然とカキコしてんじゃねー
うざいって言ってんだよ。返答しろ。

826 名前:ザイン帝國軍帥・伯魔壬旭(小島露観) []:2005/08/03(水) 19:06:02

私がナポレオン・ボナパルトだ!

827 名前:Mb []:2005/08/03(水) 19:30:00
厨房大杉でアクセスしにくくて埒が明かん。
これだから夏休みは……

828 名前:799 []:2005/08/03(水) 20:59:54
>>799
 ありがとうございます。

829 名前:デフォルトの名無しさん[sage]:2005/08/03(水) 21:29:37
【Java 歴】 3ヶ月
【 種別 】 質問
【 課題 】 AppletとJButtonを利用して、ボタンを押したらランダムな大きさの●を描画しなさい。
【不明点 】 アプレットにボタンを貼り付けたいのですが上手く行きません。
なぜかpaint()メソッドを入れるとボタンが表示されなくなってしまいます。
JPanelを用意してそこにボタンを貼り付けたのですが、それでもpaint()を書くとボタンが消えてしまいます。
どうすればアプレットの描画パネルとボタンのあるパネルを共存させられるのでしょうか?
【 期限 】 8/8までです。

よろしくお願いします。


830 名前:デフォルトの名無しさん []:2005/08/03(水) 21:52:52
描画パネルとボタンが共存できないとは、何とも深刻なテーマだ!
日本人と在日コリアンの共存問題にもつながるな!
差別意識をなくせ! さすれば異なるもの同士共存できるであろう!

831 名前:デフォルトの名無しさん[sage]:2005/08/03(水) 21:54:47
>829
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JPanel;

public class AppletDemo extends Applet implements ActionListener {
private JButton button;
private JPanel panel;

public AppletDemo() {
panel = new JPanel();
button = new JButton("push");
button.addActionListener(this);
panel.add(button);
add(panel);
}

public void actionPerformed(ActionEvent ae) {
Graphics g = getGraphics();
g.fillOval( (int)(Math.random()*100), (int)(Math.random()*100), (int)(Math.random()*100), (int)(Math.random()*100) );
}

}

>830
邪魔。

832 名前:829[sage]:2005/08/03(水) 23:01:42
>>831
ありがとうございます。
自分でごちゃごちゃやってたのに対しすっきりと書かれていて勉強になります。
ここから勉強のために更にいろいろと改変してみます。
本当にありがとうございました。

833 名前:799 []:2005/08/04(木) 02:37:51
小島露観sama
アルゴリズム書いてください。

834 名前:デフォルトの名無しさん []:2005/08/04(木) 07:27:51
さあ、はやく書くがよい!

835 名前:ザイン帝國軍帥・伯魔壬旭(小島露観) []:2005/08/04(木) 08:51:38
1、map[現在の記号][前の記号]で、演算子の優先順位が得られる
  二次元配列を用意する。
  スタックリスト numList、opeList を用意する。
2、StringTokenizer でトークンを切り出す
3、トークンが数字なら、numList の末尾に加える。
  記号なら、その記号と opeList の末尾の記号によって
  map から優先順位を得る。
4、優先順位が HIGH なら、何もせずに opeList の末尾にその記号を加える。
  LOW、EQU なら、opeList の末尾の記号を取り出して、
  numList の末尾から二つの数字を取り出して計算する。
  計算結果の数字を numList の末尾に加える。
  これを繰り返す。
5、opeList の末尾に現在の記号を加える。
〜ループ〜


836 名前:デフォルトの名無しさん []:2005/08/04(木) 11:47:28
【Java 歴】 4週間
【 種別 】 マル投げ(Array)
【 期限 】 8月4日 午前0時
【 課題 】 地域での集合住宅での調査の結果は一般的な検査に有効です。各々の記録は4桁整数のID番号、
       各家庭の年収、家族の数を含みます。調査結果を3つの配列に読ん込んで、
       以下の分析を実行するプログラムを書いてください。
       1.調査に含められる地域の家庭の数を数えて、データをディスプレイする3段のテーブルを
        プリントして下さい。(調査を受ける家庭は最高で25です。)
       2.世帯収入の平均を計算して、平均を上回る各家庭のID番号と
        収入をディスプレイしてください
       3.貧困レベルの収入以下の家庭のパーセンテージを測定してください。
        貧困レベルの収入を求める公式は p=$6500+$7500*(m-2). 
        mは各家庭の家族の数です。この公式は、貧困レベルが家族の数(m)に依存し、
        mが増えるにつれて貧困レベルの収入が増加することを示します。

        すいません、よろしくお願いします。


837 名前:709 []:2005/08/04(木) 12:16:18
小島露観様
 有難うございました。
 ちょっと気になる事が、あなたはいったい何者ですか?

838 名前:デフォルトの名無しさん []:2005/08/04(木) 12:42:31
おお、課題が来ておる!
はやく回答するがよい!

839 名前:デフォルトの名無しさん[sage]:2005/08/04(木) 12:43:36
>>838
無駄にスレを浪費しないでくれ

840 名前:デフォルトの名無しさん []:2005/08/04(木) 12:53:04
何を言うか!
現在のスレは、アクセス規制で、2チャンネルビューア所持者以外は
見れないのだ!
故に、朕は一般閲覧者も見れる様に、上げておるのだ!
10スレ以下に下がったら、回答者がいなくなるではないか!

841 名前:デフォルトの名無しさん[sage]:2005/08/04(木) 12:55:51
>>840
お前が心配する事ではない
消えろ馬鹿

842 名前:デフォルトの名無しさん[sage]:2005/08/04(木) 14:45:52
夏だねぇ…

843 名前:デフォルトの名無しさん[sage]:2005/08/04(木) 15:19:48
>>836 Q836.java 元データがあるなら晒して。やってみたい。
アプロダってどこにあるの??
public class Q836 {
static final int[] ids = {1000, 1001, 1002, 1003};
static final int[] incomes = {1000000, 2000000, 3000000, 4000000};
static final int[] members = {3, 5, 4, 4};
static final int size = Math.min(Math.min(ids.length, incomes.length), members.length);
public static void main(String[] args) { q1(); q2(); q3(); }
static void q1() {
System.out.println("A1: 家庭の数は " + size + " 件です");
System.out.println("ID\tIncome\tMember");
for (int i = 0; i < size; i++) { System.out.println(ids[i]+"\t"+incomes[i]+"\t"+members[i]); }
}
static void q2() {
int avgIncome = 0;
for (int i = 0; i < size; i++) { avgIncome += incomes[i]; }
avgIncome /= size;
System.out.println("A2: 平均世帯収入は " + avgIncome + " 円です");
System.out.println("ID\tIncome\tMember");
for (int i = 0; i < size; i++) {
if (incomes[i] >= avgIncome) { System.out.println(ids[i]+"\t"+incomes[i]+"\t"+members[i]); }
}
}
static void q3() {
System.out.println("A3: 貧困世帯調査");
System.out.println("ID\tIncome\tMember");
for (int i = 0; i < size; i++) {
if (incomes[i] < (6500 + 7500 * (members[i] - 2))) { System.out.println(ids[i]+"\t"+incomes[i]+"\t"+members[i]); }
}
}
}


844 名前:デフォルトの名無しさん []:2005/08/04(木) 18:19:44
初心者です。大学の宿題で、調べたのですが、どうしてもわからなかったので、わかる方、よろしくお願いします。

以下のソースはコマンドラインからの入力の合計になっていますが、これを除算とした場合、どうすればいいのでしょうか?
for文の変更だとは思うのですが…。あと、int r =1; と修正でしょうか。
↓コマンドライン入力
c:\ java ArrayCount 100 50 10 2 …任意の数を入力
(1)100/50= 20
(2)20/10 = 2
(3)2/2 = 1  …除算の結果をまた除算というようにしたいのですが。

public class ArrayCount {
public int result(int[] x){
int r = 0;
for(int i = 0; i < x.length;){
r += x[i++];
}
return r;
}
public static void main(String args[]){
ArrayCount ac = new ArrayCount();
int[] x = new int[args.length];
for(int i = 0; i < args.length; i++){
x[i] = Integer.parseInt(args[i]) ;
}
System.out.println(ac.result(x));
}
}


845 名前:デフォルトの名無しさん []:2005/08/04(木) 18:31:17
さあ、はやく回答するのだ!

846 名前:デフォルトの名無しさん[sage]:2005/08/04(木) 18:36:03
>>844
public int result(int[] x){
int r = x[0];
for(int i = 1; i < x.length;){
r /= x[i++];
}
return r;
}

847 名前:デフォルトの名無しさん []:2005/08/04(木) 18:43:09
ほんとうに助かりました。
ありがとうございました!!

848 名前:デフォルトの名無しさん []:2005/08/04(木) 20:09:06
このスレの回答率は高いですか?

回答が無い上に、ただ学校側に課題を丸投げしたのがバレるという
リスクは避けたいのです。
まあ、学校側にバレる危険性はさほど高くないのですが、回答が来ずに
ただリスクを負うのだけは避けたいです。

849 名前:デフォルトの名無しさん[sage]:2005/08/04(木) 20:42:49
じゃやめとけ。

850 名前:デフォルトの名無しさん[sage]:2005/08/04(木) 21:24:13
お前には聞いてない。どうぜプログラミングもできないだろ。
能力もないくせにいっぱしの口をきくな。

851 名前:デフォルトの名無しさん[sage]:2005/08/05(金) 00:48:37
>848
とりあえず、このスレのログを全部読んで解答率を計算してみるところから始めようか。
回答者は単なるボランティアであって、テメェのリスクどうたらに興味なんぞない。

852 名前:709 []:2005/08/05(金) 03:11:45
>>848
 市ね

853 名前:デフォルトの名無しさん[sage]:2005/08/05(金) 03:47:42
>>848
回答率はともかく、Javaの教育・研修に関わっている人間でこのスレの存在を知らない奴はいないよ。
まぁ、いないというのは言いすぎかもしれないが、大学や専門なら出題者にはほぼバレると思って間違いない。
丸投げ回答検出ツールも出回ってるしね。
なにしろ日本で一番有名な掲示板の宿題スレ


854 名前:デフォルトの名無しさん[sage]:2005/08/05(金) 08:14:03
企業研修の講師やってますが、ちゃんとチェックしてますよ


855 名前:デフォルトの名無しさん []:2005/08/05(金) 08:22:52
>>丸投げ回答検出ツール

妄想乙。やっぱり、ここの人達は、無知なオコチャマだな。
つーか、上のレス者は、レベル低すぎ。
本当の回答者常連の人たち来てください

856 名前:デフォルトの名無しさん[sage]:2005/08/05(金) 09:43:38
>>855
問題がまだ投げられてないのにまともな回答者が出てくるわけないだろう。

857 名前:デフォルトの名無しさん[sage]:2005/08/05(金) 10:45:03
ちょっと暇ができたので覗いてみたが、解答待ちの課題ないのか。

>>848
早く課題晒せよ。
ちなみに漏れは丸投げ回答検出ツール なるものは知らないが、
まともな講師ならこのスレ位はチェックしてると思う。

・・・・まともな講師ばかりじゃないのが現状だけどな。

858 名前:デフォルトの名無しさん[sage]:2005/08/05(金) 11:59:19
回答者常連と言うと、あのムカツク男が第一に思い浮かぶので
激しく鬱・・・orz

859 名前:デフォルトの名無しさん[sage]:2005/08/05(金) 13:39:38
オブジェクト指向のメリットってなんですか?
クラスとメソッドの違いを答えよ。
という宿題が出ましたが意味が分からないです。


860 名前:デフォルトの名無しさん[sage]:2005/08/05(金) 13:40:38
出題側が年寄りだと、2chなんて下賎な場所に近づこうだなんて思いもしない予感。
ム板住人でなかったら宿題スレの存在に思い当たりもしないだろうし。
教官が若かったりするとチェックしてる割合が上がるのかねぇ。
TAやってた知り合いは「うちの授業の課題キタ━━━━(゚∀゚)━━━━ッ!!」とか言って笑ってた。
別にメリットもないし、教官に上申はしなかったらしいが。

861 名前:デフォルトの名無しさん[sage]:2005/08/05(金) 13:54:23
>>860
TAとはなんですか?
ターミナルアダプダーしか思いつかないです

862 名前:デフォルトの名無しさん []:2005/08/05(金) 14:40:13
Teacher's Assistant

863 名前:デフォルトの名無しさん[sage]:2005/08/05(金) 14:44:40
院生とかか

864 名前:デフォルトの名無しさん[sage]:2005/08/05(金) 15:16:29
>859
例えば自動車を考えよう。
自動車のエンジンはガソリンエンジンだったりディーゼルだったりハイブリッドだったりする。
メーカーもバラバラだし、当然パーツや機構は全く統一されていないため、機械としての共通点は殆どない。
だけどどれも「自動車」という同じカテゴリでくくられる。
ガソリンを消費して、ドアと椅子とタイヤがついてて…というという基本構成が同じなら、詳細が違っても「自動車」という同一のカテゴリでくくれるわけ。
「自動車」はとても便利なので、その仕組みが一般化され、多くの人が使うようになった。

また、トヨタの車しか運転した事のない人がニッサンの車を運転できるのは何故か?
踏むとスピードが上がるペダル、回すと方向転換ができるハンドル、のように、人が操作する部分(インターフェイス)が共通だから。
==============================
プログラミングをする際にも、自動車のように便利なものはパーツとして再利用可能なように切り出しておきたい。
この切り出された共用可能なパーツの事を「クラス」と言う。
ペダルを踏む、ハンドルを回す、のような操作は、このクラスに付属する関数という形で表現される。この関数を「メソッド」と呼ぶ。

利点。
空飛ぶ車を発明した時、操作系統を今の車と同じ(車のインターフェイスを使う)にしておくと、今の車のユーザーは迷わずにそれを操作する事ができる。
同様に、別々のクラスに対し同名で同じふるまいをするメソッドを用意しておくと、色々なクラスを同じように扱える。
また、ハンドルとペダルさえ共通なら、メーカーがこっそりエンジンをパワーアップさせてもユーザーは全く困らない。
つまり、プログラムを改良する際にはインターフェイスだけを気にすればいいので、プログラムの改良が容易になる。

ここまでの比喩で概念を掴んだ上で適当に用語辞典でも当たれ。
ttp://e-words.jp/w/E382AAE38396E382B8E382A7E382AFE38388E68C87E59091.html

865 名前:デフォルトの名無しさん[sage]:2005/08/05(金) 15:30:19
>>859
> クラスとメソッドの違いを答えよ。

クラスとメソッドの関係は「違い」を論じられるようなものではないと思うけど。

866 名前:デフォルトの名無しさん []:2005/08/05(金) 15:48:59
まあね、クラスはメソッドの集合なんだしね。。

867 名前:775 []:2005/08/05(金) 17:30:23
すいません、前に電卓のプログラムをもらった者なんです。
本日、あのプログラムを発表したところ、他に2、3個機能を付け加えてくれと言われてしまいました。
申し訳ないのですが、またお願いします

868 名前:デフォルトの名無しさん[sage]:2005/08/05(金) 17:56:24
自分でやれ

869 名前:デフォルトの名無しさん []:2005/08/05(金) 18:31:17
前の電卓プログラムとやらが、どんなのかは分からないが
2、3個を機能を付け加えろとは、よっぽどアレなやつ
だったのかな?

870 名前:775 []:2005/08/05(金) 18:46:36
前のプログラムは優しい方が803-809に載せてくれました。
どなたかお願いします

871 名前:デフォルトの名無しさん []:2005/08/05(金) 18:48:10
せめて、どんな機能を付けたいのかくらい希望してくれ。。。。

872 名前:デフォルトの名無しさん[sage]:2005/08/05(金) 18:57:12
>>865
すいません。宿題を写し間違えました。
クラスとメソッドの関係を述べよでした。

873 名前:775 []:2005/08/05(金) 19:22:03
別になんでもいいです。
ルートとべき乗とかできますか?

874 名前:デフォルトの名無しさん []:2005/08/05(金) 21:23:34
さあ、はやく作るが良い!

875 名前:デフォルトの名無しさん[sage]:2005/08/05(金) 23:34:09
867の教官はこのスレで丸投げした事に気付いていて、
機能追加という課題を与えてみてこれも丸投げする様なら
落とそうと考えているなどと妄想してみる。

Math使えば関数電卓くらいまでの機能追加は難しくないから
自分でやってみたら?

876 名前:デフォルトの名無しさん[sage]:2005/08/05(金) 23:37:59
あの小島露観のソースじゃ、手直しするのも大変だろう

877 名前:デフォルトの名無しさん []:2005/08/07(日) 08:56:56
【Java 歴】 4週間
【 種別 】 マル投げ(Array)
【 期限 】 8月6日 午前0時
【 課題 】 授業で与えられたtrue-falseの試験の結果はコード化されて、プログラムへ入力されました。
各学生から与えられるデータは、学生ID番号と10個のtrue-or-falseの答えが含まれます。
初めに、10個の正解(データとしてFTFFTFFTFTを使います)を読み込むプログラムを書いてください。
次に各学生のデータを読み込んで、その正解数を計算して1つの配列に保存してください。
そして、ID番号をその学生のデータの要素に対応する別の配列に保存してください。
最高点"best"を見つけてください。それから、各々の学生のID番号、
得点と成績を示す3つのコラムからなるテーブルをプリントして下さい。
成績のつけ方は、以下の通りです。得点がbestもしくはbest-1ならば"A" ,
best-2かbest-3なら"B"。それ以外は"F"を与えてください。


878 名前:デフォルトの名無しさん []:2005/08/07(日) 09:00:39
途中までのコードアップします。でも、このプログラムはは生徒一人一人の
成績を出しませんし、最高点も出しません。

http://www.geocities.jp/sprint_phila/testPro5.rtf
http://www.geocities.jp/sprint_phila/pro5.rtf
すいませんよろしくお願いします。

879 名前:デフォルトの名無しさん[sage]:2005/08/07(日) 09:02:43
>877
もう期限過ぎてんじゃん。

880 名前:デフォルトの名無しさん []:2005/08/07(日) 10:50:21
さあ、はやく作るがよい!

881 名前:デフォルトの名無しさん []:2005/08/07(日) 13:14:06
【Java 歴】 3週間
【 種別 】 マル投げ
【 期限 】 8月8日 午前0時
【 課題 】 LANで接続されたPC2台間で通信を行い、何種類かの画像を表示、ボタンを押して画像を切り替え、
さらに、別のボタンでPC1に表示されている画像をPC2で表示させる。PC2でも同様のことをする。
グラフィカルなものを作成してください。

882 名前:デフォルトの名無しさん []:2005/08/07(日) 17:29:29
>>879
 すいません、期限は8月9日です。まちがえました。

883 名前:775 []:2005/08/07(日) 21:36:01
何度もすいません。
どなたか電卓にルートとべき乗の計算機能を加えたものをお願いします
自分で頑張ってみたんですが、無理でした
できたら、今日中にお願いします。人生がおわってしまいます

884 名前:デフォルトの名無しさん[sage]:2005/08/07(日) 21:44:16
それがあなたの実力なんだから受け入れなさい

885 名前:デフォルトの名無しさん[sage]:2005/08/07(日) 21:47:17
教師 「電卓作れるほどなら機能追加くらいできて当然。
     できないのであれば誰かにやってもらったと判断して単位やらん」

886 名前:デフォルトの名無しさん[sage]:2005/08/07(日) 21:51:15
>>883
人生が終わった様子をkwsk!

887 名前:775 []:2005/08/07(日) 22:03:35
>>885
今がまさにその状況です。
助けてください

888 名前:デフォルトの名無しさん []:2005/08/07(日) 22:04:35
なんだと! 人生が終わってしまうだと!!
それは大変だ!
さあ、誰か早く775に救いの手を差し伸べるのだ!
急ぐがよい!

889 名前:デフォルトの名無しさん[sage]:2005/08/07(日) 22:07:27
早く終わればいいのに・・・・・・

890 名前:デフォルトの名無しさん[sage]:2005/08/07(日) 22:09:52
>>888
おまえがやれ

891 名前:デフォルトの名無しさん[sage]:2005/08/07(日) 22:22:23
人生が終わった様子をレポしてください。

892 名前:775 []:2005/08/07(日) 22:27:11
冷たいこと言わないでください
マジで時間ないっす。お願いします

893 名前:デフォルトの名無しさん[sage]:2005/08/07(日) 22:32:37
マジレスすると、その状況はもう自力で頑張らない限り問題解決には至らんぞ。
いまここで、誰かが代わりにコードを書いてもお前はその説明ができんだろ?

894 名前:デフォルトの名無しさん[sage]:2005/08/07(日) 22:59:11
この状況で小島が機能追加したコード載せたら萎えるな。

895 名前:775 []:2005/08/07(日) 23:00:28
>>893
とりあえず出せばなんとかなります。
前期のこの授業が終わったら、もう二度とJavaに触れることはないと思うんで、助けてください

896 名前:ザイン帝國軍帥・伯魔壬旭(小島露観) []:2005/08/07(日) 23:10:49
>>775
機能追加バージョンのソースです。

http://www.wikiroom.com/java/index.php?%A5%BD%A1%BC%A5%B9%C5%BD%C9%D5%A4%B1


897 名前:デフォルトの名無しさん[sage]:2005/08/07(日) 23:14:10
小島よ。お前はいったい・・・

898 名前:デフォルトの名無しさん[sage]:2005/08/07(日) 23:22:47
>>895
目の前でそんな事言ったらぶんなぐってたところだ

899 名前:デフォルトの名無しさん[sage]:2005/08/07(日) 23:28:23
10時間後以降にボタンを押すと、「2ちゃんで作ってもらいました」って
ネタバレするプログラムとか渡せば面白いのに。

900 名前:デフォルトの名無しさん[sage]:2005/08/07(日) 23:29:33
この空気の読めなさといい、小島露観は典型的なプログラムヲタだな。
先月からまた涌いて出て来たけど、夏休みと被るからやっぱり学生か?
職業マだったら、周囲から煙たがられてそう。

901 名前:775 []:2005/08/07(日) 23:32:37
>>896
どうもありがとうございます。
けど、リンク先が見れないんですが・・・

902 名前:デフォルトの名無しさん[sage]:2005/08/07(日) 23:33:17
>900
> 先月からまた涌いて出て来たけど、
ずっといるんじゃないの?
平日の昼間とかにもレスってるから、少なくともまともな社会人じゃないとは思うけど。

903 名前:デフォルトの名無しさん[sage]:2005/08/07(日) 23:33:58
>901
バカ!そんなこと書くな!!
また小島がここに連レスするだろーが!!

904 名前:デフォルトの名無しさん []:2005/08/07(日) 23:37:17
>>900
>>先月からまた涌いて出て来たけど

香具師はウジ虫かw

905 名前:775 []:2005/08/07(日) 23:39:28
>>896
トップから見れました。
どうもありがとうございます。これから、実行してみます

906 名前:デフォルトの名無しさん []:2005/08/08(月) 01:07:52
ジェネリックを多用すると、やっぱりメモリコストは
高くつきますかね?

907 名前:デフォルトの名無しさん[sage]:2005/08/08(月) 01:10:56
>>906
Javaに関して言えばコンパイラがgenericを使わない形にコンパイルするから変わらない

908 名前:デフォルトの名無しさん []:2005/08/08(月) 08:19:18
>

909 名前:ザイン帝國軍帥・伯魔壬旭(小島露観) []:2005/08/08(月) 08:25:16
>>881
回答プログラムです。

http://www.wikiroom.com/java/index.php?%A5%BD%A1%BC%A5%B9%C5%BD%C9%D5%A4%B1

メニューバーの「ファイル」→「フォルダ選択」をクリックすると、
ファイルダイアログが出ます。それでフォルダを選択します。
そのフォルダ内の画像ファイルが表示されます。矢印ボタンを押すと
次の画像に切り替わります。
URLとポート番号を指定して送信ボタンを押すと、現在の画像が
そのホストマシンに送信されます。
起動時のコマンドラインの第一引数で、そのプログラムがバインド
するポート番号が指定できます。デフォルトは1024です。


910 名前:デフォルトの名無しさん[sage]:2005/08/08(月) 08:32:46
すみません、どなたかTurtle.javaとTurtleFrame.javaとTurtlePanel.javaを
持っていませんでしょうか?

911 名前:881[sage]:2005/08/08(月) 13:24:40
>>909
ありがとうございます。
すごいっす!


912 名前:デフォルトの名無しさん []:2005/08/08(月) 15:26:59
877です。
よかったらよろしくお願いします。

913 名前:デフォルトの名無しさん[sage]:2005/08/08(月) 17:06:41
>>877
修正してみた。
http://www.wikiroom.com/java/index.php?%A5%BD%A1%BC%A5%B9%C5%BD%C9%D5%A4%B1#content_1_0

914 名前:デフォルトの名無しさん[sage]:2005/08/08(月) 23:02:38
【 種別 】 マル投げ(Array)
【 期限 】 8月10日
【 課題 】1〜1,000,000 の間の自然数約500 個の値を格納するハッシュ表を作りたい.オープンアドレス指
定法を用いてハッシュ表を構成し,ハッシュ関数の違いによって実行時間がどのように変わるのか,
性能を比較せよ.それぞれの値は乱数で発生させた自然数とし,ハッシュ表への挿入と探索のみを考え,削除は考
えなくてよい.

915 名前:デフォルトの名無しさん []:2005/08/08(月) 23:08:51
このスレは、必ず上げてください

916 名前:デフォルトの名無しさん []:2005/08/09(火) 00:30:44
※「全部読む」が表示されないのでリンクを張ってください
【 種別 】 マル投げ
【 期限 】 早めでお願いします
【 課題 】コンソールに1と押しエンターを押すと第一引数を第二引数にコピー、2と押すと第一引数を第二引数に移動,3を押すとexit。第二引数が既にある場合は上書き確認を行いたい。
インターフェースを使って実装したいです。
お願いします。。

917 名前:デフォルトの名無しさん[sage]:2005/08/09(火) 01:55:13
>>914
http://www.wikiroom.com/java/index.php?%A5%BD%A1%BC%A5%B9%C5%BD%C9%D5%A4%B1
ハッシュ表 Q914.java

オープンアドレス指定法でググったら 4 件しかヒットしなくてびびったw 造語か?

918 名前:デフォルトの名無しさん []:2005/08/09(火) 11:46:16
【 種別 】 マル投げ(Queue Interface)
【 期限 】 8月10日 12:00am
【 課題 】1.[kW] PP309-315で記述されている、ArrayQueueクラスを実装してください
2.クライアントprogam。
・JOptionPaneを使ってフレーズを読み取って下さい。
・一般的なString methodeを使って、フレーズをトークンに分類(解析)して下さい
 (String Tokenizerは使用不可です)。
       ・ArrayQueueオブジェクトにトークンを入力してください。
       ・キューをプリントしてください。
       ・project4のStringTokenizer対象を取り替えるために、
        クライアントプログラムを使用してください
  [kW] PP309-315
http://www.geocities.jp/drum2295/java_codes/project5.txt
project4
http://www.geocities.jp/drum2295/java_codes/project4.txt
http://www.geocities.jp/drum2295/java_codes/project4App.txt
  すいません、よろしくお願いします。

919 名前:デフォルトの名無しさん []:2005/08/09(火) 11:50:53
すいません、最後の文章は
"project4で使ったStringTokenizer objectを取り替えるために
クライアントプログラムを使ってください”と言う事です。
よろしくお願いします。

920 名前:デフォルトの名無しさん[sage]:2005/08/09(火) 12:28:01
>918-919
意味が分からないので教えてください。
・[kW] PP309-315って何?
・ArrayQueueが微妙にコンパイルエラーになってるけど、これは>918が途中まで実装したという解釈でイイ?
・課題はproject4(postfixEvaluatorAppとpostfixEvaluator)でやってることをStringTokenizerを使わずに実装することなのか?

921 名前:デフォルトの名無しさん []:2005/08/09(火) 12:41:27
だから、ageてください。。。

922 名前:デフォルトの名無しさん[sage]:2005/08/09(火) 12:42:29
いやだ

923 名前:デフォルトの名無しさん[sage]:2005/08/09(火) 13:09:13
>>921
何をこだわってるのか知らんが、質問者がageればそれでいいじゃん。

924 名前:デフォルトの名無しさん []:2005/08/09(火) 13:16:56
<<920
返信遅くなりました.
[kW]pp309-315と言うのは教科書のページ番号で、リンクの一番上に
張ってあるプログラムがそのページにのっているプログラムで、この課題は
そのプログラムを実装するというものです。
project4でやっている事をStringTokenizerを使わずに,リンクの一番上の
ArrayQueueを実装するということです。
わかりづらい、文章すいませんでした。よろしくお願いします。

925 名前:918 []:2005/08/09(火) 13:36:01
すいません、何度も。
一番上のリンク分かりやすい様にアップデートしました。
環状配列(circular Array)を使って、キューインターフェイスを実装して下さい。


926 名前:920[sage]:2005/08/09(火) 13:38:10
>918
なんか俺が見たときとArrayQueueのソースが変わってるんだけど…。
Queueってjava.util.Queueじゃないよね?
JDK5.0で追加されたものがもう教科書に載っているとは思えないので…。

927 名前:918 []:2005/08/09(火) 13:40:12
はい、JDK5.0ではありません。

928 名前:920[sage]:2005/08/09(火) 13:40:24
かぶった…。
もしかしてQueueも作れって言ってる?

929 名前:918 []:2005/08/09(火) 13:53:32
Queueは作れとは課題には書いてないのですが、
"環状配列を使って、キューインターフェイスを実装する"
これは、Queueを作れと言う事なのでしょうか?


930 名前:920[sage]:2005/08/09(火) 14:01:38
> public class ArrayQueue implements Queue {
って書いてあるのにQueueがなかったらコンパイルできないよ。
インターフェース分かってないでしょ?きっと。

931 名前:920 []:2005/08/09(火) 14:06:42
そうですね implements Queue。と言う事はQueueを書くという
事ですね。お願いできるでしょうか?

932 名前:920[sage]:2005/08/09(火) 14:21:15
あのね…。
インターフェースってのは実装するクラスありきで書くものじゃないんです。
インターフェースを実装するクラスはインターフェースを見てどういうメソッドを実装すればいいのかが分かるんです。
ArrayQueueから推測して、

public interface Queue {
public abstract Object insert(Object obj);
public abstract Object peek();
public abstract Object remove();
public abstract boolean isEmpty();
}

とかって書くこともできるっちゃーできるけど、それだとなんでArrayQueueがQueueを実装してるのかが分かりません。
たぶん教科書の309ページより前にQueueに関する説明があると思うんだけどなあ。

ついで。
http://www.geocities.jp/drum2295/java_codes/project5.txt
のArrayQueue#isEmpty()について。
・メソッド名isEmptlyに余計なl(エル)が入ってます。
・戻り値のbooleanの先頭「b」が全角になってます。

933 名前:デフォルトの名無しさん[sage]:2005/08/09(火) 15:02:06
> "環状配列を使って、キューインターフェイスを実装する"
これは Queue というインターフェイスが既にあって
ArrayQueue で Queue を実装する、という意味だから
>>932の指摘どおり既にどこかに Queue はあるはず。

934 名前:デフォルトの名無しさん[sage]:2005/08/09(火) 16:28:18
なんかテンプレの必須の部分が抜けてたりして
質問者によって勝手にカスタマイズされているようなので、もう一度載せておこう。

PG歴、Java歴、種別、バージョン、用語は必須にしてあるので省略したらダメです。
「こうした方がいい」という意見があればよろしく。

質問者用テンプレ Ver 1.2

【 PG 歴 】 プログラミングの経験年(月、日)数を書く(必須)。
【Java 歴】 Java プログラミングの経験年(月、日)数を書く(必須)。
【 種別 】 丸投げ/質問のどちらかを選ぶ(必須)。
【 課題 】 与えられた課題をそのまま書く(なるべく書く)。
【不明点 】 分からないところ、聞きたいことを書く。
【バージョン】 java -versionで表示される1行目を書く(必須)。回答者はなるべく質問者の環境を考慮する。
【 用語 】 数学用語などのフォローを書く(あれば必須)。
【 期限 】 提出期限や解答希望日を書く。
【 備考 】 何かあれば。

935 名前:デフォルトの名無しさん []:2005/08/09(火) 16:47:08
>>934
自分としては、これでいいと思います。
あまり項目が多いと、やはり面倒でカスタマイズされる傾向が
ありますので・・・

【 課題 】与えられた課題文をそのまま書きます(必須)
【 用語 】数学用語、専門用語の意味、説明を書きます(あれば必須)
【 期限 】提出期限や解答希望日を書きます
【 補足 】課題について自分なりに補足する事、何か思う事があれば書きます。
       丸投げでない場合は、途中までのソースとその経過報告、
       質問点、疑問点を書きます。Javaバージョンの指定もここです。


936 名前:デフォルトの名無しさん[sage]:2005/08/09(火) 17:21:20
>>934
どうでもいい事にこだわる奴だな
935くらいで十分だ

937 名前:デフォルトの名無しさん[sage]:2005/08/09(火) 17:33:51
【 課題 】乱数で発生させた5つの数字が全て異なっている場合はYを、そうでなければNを表示させなさい
ただし、発生させる乱数は0〜9までの範囲とする。
【 期限 】今日までですOTL
【 補足 】乱数の発生のさせ方はわかったのですが、条件文のところで悩んでいます。
       幼稚な質問で申し訳ないのですが、知恵をかしていただけたら幸いです。

938 名前:デフォルトの名無しさん[sage]:2005/08/09(火) 17:40:14
>>937
1つ確認するが、その0〜9の乱数ってのはintじゃなくてdoubleか?

939 名前:デフォルトの名無しさん[sage]:2005/08/09(火) 17:42:57
今日までってのは23:59:59までって事?

940 名前:デフォルトの名無しさん []:2005/08/09(火) 17:50:17
さあ、はやく答えるがよい!

941 名前:937[sage]:2005/08/09(火) 17:51:51
>>937
書き忘れすみません。int型です。
一応、
double rnd;
int rnd2;

rnd = Math.random();
rnd2 = (int)Math.floor(rnd * 9);

こんな感じで書けるのかなぁとは思ったのですが・・・。

>>938
日付が変わるまでに教授にメールを送れたらセーフです。

942 名前:デフォルトの名無しさん []:2005/08/09(火) 17:53:36
レス指定一つずつ間違えてました。申し訳ない。
>>937 →>>938
>>938 →>>939


943 名前:デフォルトの名無しさん []:2005/08/09(火) 17:54:33
>>937
import java.util.*;

public class Numbers {
public static void main(String[] args) {
Set set = new TreeSet();
for (int i = 0; i < 5; i++) {
int num = (int) (Math.random() * 10);
System.out.println((i + 1) + "回目の発生数:" + num);
set.add(new Integer(num));
}
if (set.size() == 5) {
System.out.println("Y");
} else {
System.out.println("N");
}
}
}

944 名前:デフォルトの名無しさん[sage]:2005/08/09(火) 17:54:56
>937
// RandomCheckDemo.java
public class RandomCheckDemo {
public static void main(String[] args) {
int[] is = new int[5];
// 乱数生成
for( int i=0; i<is.length; i++ ) {
is[i] = (int)(Math.random()*9);
System.out.println( is[i] );
}
// 数字が全て異なっている場合はtrue
boolean isAllDifferent = true;
loop: for( int i=0; i<is.length-1; i++ ) {
for( int j=i+1; j<is.length; j++ ) {
//System.out.println( "i:" + i + " j:" + j );
if( is[i] == is[j] ) {
isAllDifferent = false;
break loop;
}
}
}
if( isAllDifferent ) System.out.println( "Y" );
else System.out.println( "N" );
}
}

945 名前:944[sage]:2005/08/09(火) 17:58:03
   ||
 Λ||Λ
( / ⌒ヽ
 | |   |
 ∪ 亅|
  | | |
  ∪∪
   :
   :

 ‐ニ三ニ‐

遅かったか。。
is[i] = (int)(Math.random()*10);
だな。

946 名前:デフォルトの名無しさん[sage]:2005/08/09(火) 18:00:10
>>943
そんな卑劣なアルゴリズムじゃ駄目だと思うよ。。。

947 名前:デフォルトの名無しさん[sage]:2005/08/09(火) 18:01:08
>>943>>944
ありがとうございました!
0〜9の場合は10をかけなければいけないんですね・・・。

948 名前:デフォルトの名無しさん[sage]:2005/08/09(火) 18:06:43
>>946
何がどう卑劣なんだ?

949 名前:デフォルトの名無しさん[sage]:2005/08/09(火) 18:11:50
TreeSet をデータ重複の判定に使うなんてオカシイ。
パフォーマンス的にも沿わない。

950 名前:デフォルトの名無しさん[sage]:2005/08/09(火) 18:30:19
別におかしくないだろ
Setは重複させない入れ物だし
パフォーマンスも悪くないだろ
まあTreeSetだとソートされちゃうから出現順保つならLinkedHashSetか

951 名前:デフォルトの名無しさん[sage]:2005/08/09(火) 21:23:11
ArrayListでよくね?

952 名前:920 []:2005/08/10(水) 00:06:13
すいません、レス遅くなりました。
P309の前にも確かに色々説明が書いてありました。教科書を丸写ししたので、
もしよかったら、見てください。上が英語の教科書の丸写しです、下がそれをそのまま
翻訳ツールにカット&ペーストしたものです。これがとりえず、全てのはずです。
なんか翻訳ツールでの日本語もこの質問自体もごちゃごちゃしちゃいましたので
もし無理だったらあきらめます。

http://www.geocities.jp/drum2295/java_codes/kW309_.rtf
http://www.geocities.jp/drum2295/java_codes/kW309_japanese.rtf


953 名前:デフォルトの名無しさん[sage]:2005/08/10(水) 01:20:54
>>937
Integer[] data = new Integer[]{1, 4, 3, 2, 2};
System.out.println(new HashSet<Integer>(Arrays.asList(data)).size() == data.length ? "Y" : "N");

954 名前:デフォルトの名無しさん[sage]:2005/08/10(水) 01:51:45
Integer[] data = new Integer[5];
for (int i = 0; i < data.length; i++) System.out.println(data[i] = (int)(Math.random() * 10));
System.out.println(new HashSet<Integer>(Arrays.asList(data)).size() == data.length ? "Y" : "N");


955 名前:デフォルトの名無しさん []:2005/08/10(水) 02:43:28
【Java 歴】 4週間。
【 期日 】 8月11日 午前0時
【 課題 】 インターネット上でコンピューターを売る会社のための価格設定システムを作成します。
       2種類のコンピュータ、ノートブックとデスクトップがあります。各コンピュータの
       オプションはプロセッサー(0.8、1、1.2または1.5ギガバイト)CDドライブ(CD-ROM、CD-RWまたはDVD))
       を備えています。
       ラップトップは、14-15インチのスクリーンを備えています。
       デスクトップは15-,17-,19インチのモニター備えています。
       オプションはモデム、networkカードとzip driveです。
       このプログラムにはcomputer class(abstract class)とnotebook class,
       desktop class(sub-class)が含まれます。 
       各subclassにはコンピューター価格を計算するメソッドが含まれます。
       (価格はそのコンピューターの基本価格+オプション価格)
       プログラムにはメモリ価格を計算するメソッド、ハードドライブを計算する
       メソッド等が含まれるべきです。また、輸送価格を計算するメソッドも
       含まれるべきです。
       よろしくお願いします。

956 名前:デフォルトの名無しさん[sage]:2005/08/10(水) 02:58:24
>>955
( ´_ゝ`)フーン

957 名前:デフォルトの名無しさん []:2005/08/10(水) 07:57:47
>>955
これは、Webアプリとして開発するのですか?

958 名前:デフォルトの名無しさん[sage]:2005/08/10(水) 09:52:47
【 課題 】 与えられた課題をそのまま書く(なるべく書く)。
【 期限 】 提出期限や解答希望日を書く。
【バージョン】 java -versionで表示される1行目を書く(必須)。回答者はなるべく質問者の環境を考慮する。

↑最低限でもこれだけは必須だろう。
書かないヤツには回答しない旨を次スレのテンプレにお願いしたい。

959 名前:デフォルトの名無しさん []:2005/08/10(水) 10:56:57
そろそろ立てますが、「回答しない」との厳しい文言は
避けようと思います。
確かに、バージョンはテンプレ項目に入れるべきですね。
ただ必須でなく、書かなかったら全バージョンOKの
デフォルトとするのが良いと思います。

>>955は、このスレにこれから回答します。

960 名前:955 []:2005/08/10(水) 12:15:52
すいません、バージョンはnetBeans3.6です。
よろしく、お願いします。

961 名前:デフォルトの名無しさん[sage]:2005/08/10(水) 12:31:28
やっぱバージョンはオプショナルでいいのかも。

962 名前:デフォルトの名無しさん[sage]:2005/08/10(水) 12:45:37
>>960
NetBeans3.6って・・・・・


963 名前:デフォルトの名無しさん[sage]:2005/08/10(水) 13:09:06
>>962
ネタにry

964 名前:918 []:2005/08/10(水) 14:03:21
一応、自分でそれなりに書いてみたのですが、まだまだエラーが出て、その
エラーがなんで出ているのかも理解できてないでいます。すいません、一度
見てもらってもよろしいでしょうか??? お願いします。期限過ぎてるけど、
減点もらって出す事にしました。

【 種別 】 エラーに関しての質問
【 期限 】 8月10日 12:00am
【バージョン】 java2 SDK 1.4.2
【 課題 】1.[kW] PP309-315で記述されている、ArrayQueueクラスを実装してください
2.クライアントprogam。
・JOptionPaneを使ってフレーズを読み取って下さい。
・一般的なString methodeを使って、フレーズをトークンに分類(解析)して下さい
 (String Tokenizerは使用不可です)。
        ・ArrayQueueオブジェクトにトークンを入力してください。
        ・キューをプリントしてください。
        ・project4のStringTokenizer対象を取り替えるために、
        クライアントプログラムを使用してください

     http://www.geocities.jp/drum2295/java_codes/project5.txt
     http://www.geocities.jp/drum2295/java_codes/project5App.txt

965 名前:デフォルトの名無しさん []:2005/08/11(木) 00:30:41
@ 以下のように入力を促し、実行可能なコマンドを選択させる。

処理を選んでください。
1. 移動する(フォルダやファイルをMoveする)
2. コピーする(フォルダやファイルをCopyする)
3. exit
1〜3を選んでください○(←1〜3を入力してもらう)
A 1,2 を選択した場合、src と dest と順に入力を求める。

src > ___ ← パスを入力してもらう
dest > ___ ← パスを入力してもらう
   実行が完了したら、@に戻る。
B 3 を選択した場合、処理を終了させる。

要件
■1〜3 以外を入力された場合、再入力を求める
■src に該当するパスがない場合、src がない旨のメッセージを出力して、@ に戻る
■dest に該当するパスが存在する場合、上書き確認を行う…[Y/N]> ___ ← Y/N を入力してもらう


お願いいたします。

966 名前:デフォルトの名無しさん []:2005/08/11(木) 01:51:11
>>955
す、すいません。急にやる事が出来てしまい、今日は手が付けられませんでした。。

967 名前:デフォルトの名無しさん[sage]:2005/08/11(木) 01:51:40
宿題ってなによ?
最近じゃ高校とかでJavaやってるの?
進んでるなぁ。

968 名前:デフォルトの名無しさん[sage]:2005/08/11(木) 01:53:41
これだから低学歴は。

969 名前:デフォルトの名無しさん []:2005/08/11(木) 01:56:18
よーし、答えちゃおうかな。
どれに答えればいい?

970 名前:デフォルトの名無しさん[sage]:2005/08/11(木) 01:59:46
【 PG 歴 】 PASCALを3年ぐらい。CUIばかりです。
【Java 歴】 1ヶ月。
【 種別 】 ほぼ丸投げ(泣)
【 課題 】 JAVAを使ったGUIプログラムの作成(百ます計算)
【不明点 】
Eclipse3.1とVisual Editorを使っているのですが、GUIプログラミングの手法がまったくわからないです。
一応、Swingが一番やりやすいかなと思って、Swingを使ってやろうとしています。
百ますの入力部分にJTableを使うべきか、TextFieldを使うべきかなど数週間しらべているのですが、
なかなかいい手法が思いつきません。
後、FrameやPanelなどの組み合わせ方や、レイアウトの種類についてもよくわかりません。
(ボーダーレイアウトなど、なんであるのかよく分からないですし)

【バージョン】 java version "1.5.0_04"
【 用語 】 数学用語などのフォローを書く(あれば必須)。
【 期限 】 8月15日
【 備考 】 何かヒントみたいなものでもいいので教えてください;;お願いします;;

971 名前:デフォルトの名無しさん[sage]:2005/08/11(木) 02:02:24
>>970
awtにしなさいよ

972 名前:955 []:2005/08/11(木) 02:50:58
>>966
 12日まで大丈夫なので、時間がある時にお願いします。

973 名前:デフォルトの名無しさん[sage]:2005/08/11(木) 03:48:38
>>970
何を作ればいいのかわからん。
縦軸と横軸の数値を入力して「計算」ボタンを押せば結果が全てでてくるみたいな感じ?

974 名前:デフォルトの名無しさん[sage]:2005/08/11(木) 06:34:32
百ます計算
ttp://drill100.com/archives/cat_e_100.html

ここでDLできるソフトそのものって感じか?

975 名前:デフォルトの名無しさん[sage]:2005/08/11(木) 13:33:15
>>965

多分これで動くと思う

http://www.wikiroom.com/java/index.php?%A5%BD%A1%BC%A5%B9%C5%BD%C9%D5%A4%B1#content_1_0

次からはテンプレをつかってくれ

976 名前:デフォルトの名無しさん[sage]:2005/08/11(木) 13:55:51
>>973
974の方が上げられたような感じのもので、別にタイマーとかの機能は必要ないです。
後は973さんのおっしゃるとおり、数値入力して計算結果出力みたいな感じです。
971さんのいうとおり、AWTのほうが少し簡単みたいですので、AWTで少しやってみます!

977 名前:デフォルトの名無しさん []:2005/08/11(木) 20:08:48
>>955
どうも課題の意味が分かりません。
値段も分かりませんし。。。
WebアプリなのかGUIを使うのかも不明ですし。。。
残念ながら。。。

978 名前:デフォルトの名無しさん []:2005/08/11(木) 20:16:26
>>955
すいません。やはり課題が漠然すぎて分かりません。
値段を計算すると言われても。。。


979 名前:デフォルトの名無しさん []:2005/08/11(木) 20:18:08
>>955
やはりアメリカの学校の課題なんでしょうか?
授業背景が分からないと、どう作るべきなのか
出力と入力が分からないと見当がつきません。


980 名前:デフォルトの名無しさん[sage]:2005/08/12(金) 00:01:37

>>955はクラス構成だけ考えてあげればいいんじゃないの?
UIなんか好きなように作ればいいんだし。

981 名前:デフォルトの名無しさん []:2005/08/12(金) 08:32:31
【 PG歴 】 Cを2ヶ月。Javaは3週間です。
【 種別 】 ほぼ丸投げ
【ヴァージョン】J2SE 1.42
【 期限 】8月13日午後12時
【 課題 】1.10進法から2進法にコンバートする再帰的(recursive)メソッド
       を書く。実際に、ユーザーからのインプットされた10進法の値を
       二進法の値でアウトプットするテストプログラムを書く。
       
      2.2進法から10進法にコンバートする再帰的(recursive)メソッド
       を書く。実際に、ユーザーからのインプットされた10進法の値を
       二進法の値でアウトプットするテストプログラムを書く。

    10進法から2進法に換えるアルゴリズム的な物はあります。これを
    使って、プログラムを書いてもらいたいです。
    よろしく、お願いします。
    Public static String 二進法(int n){
 String s;
      if (n%2 == 0)
  s=”0”;
else
s=“1”;
if(n<2) {
return s;
return 二進法(n/2) +s;
     }}



982 名前:デフォルトの名無しさん []:2005/08/12(金) 08:34:26
すいません、2番目の問題は”実際に、ユーザーからのインプットされた2進法の値を
10進法の値でアウトプットするテストプログラムを書く”です。失礼
いたしました!    

983 名前:デフォルトの名無しさん[sage]:2005/08/12(金) 13:38:56
>>970
こんなんでいいのか?一応動くと思う。
ttp://www.uploda.org/file/uporg168360.zip.html
受信PASS:970



984 名前:デフォルトの名無しさん []:2005/08/12(金) 14:45:05
>>981も何とぞお願いします。。。m(_ _)m


985 名前:デフォルトの名無しさん[sage]:2005/08/12(金) 15:01:50
>>981
アルゴリズムができているのに何故出来ないのか理解不能

http://www.uploda.org/file/uporg168398.txt.html

pass:藻前のレス番

986 名前:デフォルトの名無しさん[sage]:2005/08/12(金) 15:19:35
>>981
すまぬ、こっちを使ってくれ
ttp://www.uploda.org/file/uporg168406.txt.html

987 名前:981 []:2005/08/12(金) 15:34:26
>>986
 有難うございました!!多謝!

988 名前:981 []:2005/08/12(金) 15:41:46
これユーザーにbinaryなりdecimalをインプットさせる事できますか?

989 名前:デフォルトの名無しさん []:2005/08/12(金) 16:52:41
>>981
そんくらい自分でやれや

990 名前:970[sage]:2005/08/13(土) 00:34:34
>>983
ありがとうございます
思っていた以上にすごいです!
動作もバッチリでした^^

991 名前:955 []:2005/08/13(土) 04:00:03
>>978
下のを元に、コンピューターの種類、スペックの選択(プロセッサー(0.8、1、1.2または1.5ギガバイト)
 CDドライブ(CD-ROM、CD-RWまたはDVD)14-15インチのスクリーン(ノートブック)
 15-,17-,19インチのモニター(デスクトップ)、モデム、networkカード、zip drive)
 をインプットして、値段をアウトプットしたいんですけど、お願いします。
 各パーツの値段は特に決まってませんので、適当で結構です。
 よろしくお願いします。
http://www.geocities.jp/sprint_phila/Computer.txt
http://www.geocities.jp/sprint_phila/DeskTop.txt
http://www.geocities.jp/sprint_phila/LapTop.txt
http://www.geocities.jp/sprint_phila/TestComputer.txt

992 名前:デフォルトの名無しさん[sage]:2005/08/13(土) 06:43:34
★★ Java の宿題ここで答えます Part 53 ★★
http://pc8.2ch.net/test/read.cgi/tech/1123639475/

何で次スレが張られてないんだと

993 名前:983[sage]:2005/08/13(土) 07:51:28
>>987
必ずソース読んで自分で理解してから提出しろよ。どうなっても知らんぞ。

994 名前:983[sage]:2005/08/13(土) 15:03:16
間違った。>>993>>990へのレス。今気付いたよorz

995 名前:990[sage]:2005/08/14(日) 00:48:07
>>994
モチロンそのつもりです。
できれば提出前にがんばって自分なりに作り直してみます!

474 KB
全部 最新50
DAT2HTML 0.33dp Converted.
inserted by FC2 system