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

このエントリーをはてなブックマークに追加
1ザイン帝國軍帥・伯魔壬旭(小島露観)

【Java宿題スレッド基本ルール・五箇条の御誓文】
1:問題文は自己省略せずに、直接全部貼り付けてください。
2:課題の「丸投げ」が最も好ましい提示法です。なるべく丸投げしてください。
3:数学問題は「○×法でせよ」だけでなく、その数式、前提条件も説明してください。
4:課題&宿題関連の質問はOKですが、それ以外の一般的な質問は禁止です。
5:もし回答プログラムがアップされたら、その返答と動作報告をお願いします。

【課題提示用テンプレ】
【 課題 】与えられた課題文をそのまま書きます 《必須》
【 用語 】数学用語、専門用語の意味、説明を書きます 《あれば必須》
【 期限 】提出期限、又は解答希望日を書きます
【 Ver  】希望するJavaバージョンがあれば書きます(1.5 とか 1.4以前とか)
【 補足 】課題について自分なりに補足する事、何か思う事があれば書きます。
       丸投げでない場合は、途中までのソースとその経過報告、
       質問点、疑問点を書きます(なるべく丸投げにしてください)

【回答プログラムの掲載場所】
Java質問スレWiki  http://www.wikiroom.com/java/
ソースポストネット http://sourcepost.sytes.net/
2デフォルトの名無しさん:2005/08/10(水) 11:06:05
前スレ
★★ Java の宿題ここで答えます Part 52 ★★
http://pc8.2ch.net/test/read.cgi/tech/1119356753/l50
3デフォルトの名無しさん:2005/08/11(木) 06:13:55
即死回避
4デフォルトの名無しさん:2005/08/11(木) 08:56:05
age
5デフォルトの名無しさん:2005/08/12(金) 08:24:40
age
6デフォルトの名無しさん:2005/08/12(金) 14:46:37
age
7fushianasan:2005/08/12(金) 14:47:35
Test
8デフォルトの名無しさん:2005/08/13(土) 04:33:26
【 PG歴 】 3週間
【 種別 】 丸投げ
【 Ver  】 1.4  
【 期限 】 8月13日午朝0時
【 課題 】 上から読んでも下から読んでも 同じ音になる
       文,"回文"(Palindrome)を測定する再帰的(recursive)メソッド
       が含まれたプログラムを書く。よろしくお願いします。
9デフォルトの名無しさん :2005/08/13(土) 06:30:02
>>8
再帰にする必要ってあんの?
10デフォルトの名無しさん:2005/08/13(土) 08:21:10
>>8
public static boolean isPalindrome(String s) {
switch (s.length()) {
case 0:
return false;
case 1:
return true;
case 2:
return s.charAt(0) == s.charAt(1);
default:
if (s.charAt(0) == s.charAt(s.length() - 1)) {
return isPalindrome(s.substring(1, s.length() - 1));
} else {
return false;
}
}
}
11デフォルトの名無しさん:2005/08/13(土) 22:37:21
再帰にしなきゃいけないんですよね
12デフォルトの名無しさん:2005/08/13(土) 22:51:22
これは>>10再帰と呼べるでしょうか?
13デフォルトの名無しさん:2005/08/13(土) 23:06:53
テストドライバもお願いできるでしょうか?
14デフォルトの名無しさん:2005/08/14(日) 02:03:20
【 課題 】
ユーザーへ配送されたメールを標準入力で受け取り、~/data へ
本文と添付ファイルを保存するJAVAプログラム SaveMail を作成せよ。
JAVAプログラムへの標準入力は ~/.qmail より行うものとする。

【 期限 】8/22

【 Ver  】1.4

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

メールサーバーは qmail です。
メール受信時に ~/.qmail から以下の様にプログラムを起動することで
標準入力でメールが渡せることまで分かりました。

# ~/.qmail
| /usr/java/j2sdk1.4.2_09/bin/java SaveMail
158:2005/08/14(日) 03:29:40
>>10
返信ありがとうございました。
すいません、質問させて下さい。このプログラムをユーザーからinputされた単語を回文かどうかを判断して、true/falseをアウトプットしたいのですが、
booleanメソッドをメインでどのようにして、呼んだらいいのかわかりません。下のコードで何かご指摘あったらよろしくお願いします。

import javax.swing.*;
public class isPalindrome {
/** Creates a new instance of isPandrome */
public static boolean isPalindrome(String s) {
switch (s.length()) {
case 0:
return false;
case 1:
return true;
case 2:
return s.charAt(0) == s.charAt(1);
default:
if (s.charAt(0) == s.charAt(s.length() - 1)) {
return isPalindrome(s.substring(1, s.length() - 1));
} else {
return false;
}}}
public static void main(String[] s){
isPalindrome p1 = new isPalindrome();
String line = JOptionPane.showInputDialog("Input a Pandrome line");
System.out.println(line);
p1.isPalindrome(line);
System.out.println(isPalindrome());
}
16デフォルトの名無しさん:2005/08/14(日) 11:33:45
>15
>10ではないが。
// isPalindrome.java
import javax.swing.JOptionPane;
public class isPalindrome {
public static boolean isPalindrome(String s) {
switch (s.length()) {
case 0:
return false;
case 1:
return true;
case 2:
return s.charAt(0) == s.charAt(1);
default:
if (s.charAt(0) == s.charAt(s.length() - 1)) {
return isPalindrome(s.substring(1, s.length() - 1));
} else {
return false;
}
}
}
public static void main(String[] s) {
String line = JOptionPane.showInputDialog("Input a Pandrome line");
System.out.println(line);
System.out.println( isPalindrome(line) );
}
}

メソッドisPalindrome()が何を引数にとって、何を返却するのかを理解しる。
1715:2005/08/14(日) 12:48:37
有難うございました・。
18デフォルトの名無しさん:2005/08/14(日) 13:01:02
すいません。二進法と十進法をコンバートするプログラムなんですが、
これのメインも書いてもらえるでしょうか?
import javax.swing.*;
public class binaryDecimal
{public static String decimalToBinary(int n){
String s;
if (n%2 == 0)
s="0";
else
s="1";
if(n<2)
return s;
return decimalToBinary(n/2) + s;
}
public static int binaryToDecimal(String s){
if(s.length()==0) return 0;
else if(s.charAt(s.length()-1) == '1')
return binaryToDecimal(s.substring(0,s.length()-1))*2 +1;
else
return binaryToDecimal(s.substring(0,s.length()-1))*2;
}
public static void main(String[] s){
String binary = JOptionPane.showInputDialog("Input binary or decimal notation");
int n = Integer.parseInt(binary);
System.out.println(n]);
if(s.length != 2)
return;
if(s[0].equals("10to2"))
System.out.println(decimalToBinary(Integer.parseInt(s[1])));
else if(s[0].equals("2to10"))
System.out.println(binaryToDecimal(s[1]));
}}
19デフォルトの名無しさん:2005/08/14(日) 16:58:13
【 課題 】
1.TreeNode(構文木)クラスに以下のメソッドを加えて、テストする。
public boolean contains(Object item) // もしターゲットを見つけたらtrueを返す
public Object find (Object target) // もしターゲットを見つけたらそのノードへのリファレンスをリターン、見つけなかったらnullをリターン
public object delete(Object target) // ターゲットをツリーから消してリターンする、もしくはnullをリターン
public boolean remove(Object target)// ターゲットをツリーから消してtrueをリターンします、もしくはfalseをリターンします。
public String preOrder() // 構文木を先行順にする。
public String postOrder()// 構文木を後行順にする。
2.javadocコメントをTreeNodeクラスに加えてください
 
【 期限 】8/15 午後12時
【 Ver  】1.4
【 補足 】マル投げです.すみませんが、よろしくお願いします。
      http://www.geocities.jp/inndvision1980/BinaryTree.txt
      http://www.geocities.jp/inndvision1980/BinaryTreeTest.txt
20デフォルトの名無しさん:2005/08/14(日) 18:25:12
>18
mainメソッドは>18にあるじゃん。
おかしいのは、
コマンドライン引数を2つ(1つめは10進から2進にするのか2進から10進にするのかのフラグ、2つめはコンバートする数字)取っているのに、
JOptionPane.showInputDialogで10進から2進にするのか2進から10進にするのかをもう一度聞いてるところ。

どういう仕様にしたいか不明なので、詳しく教えてください。
21デフォルトの名無しさん:2005/08/14(日) 18:34:58
>19
http://www.geocities.jp/inndvision1980/BinaryTreeTest.txt
が変です。
BinaryTree、HeapPriorityQueue、PriorityQueue、TreeNodeに分けてみましたが
HeapPriorityQueueが不完全です。
2219:2005/08/14(日) 22:10:11
>>21
 すいません、いま先生のウェブサイト見てたら、課題のプログラムがそっくり
そのまま変わってました。今アップデイトしたので、よかったら見てください。
お願いします。
23デフォルトの名無しさん:2005/08/15(月) 00:24:34
【課題】DB にテーブルを作成し、以下の要求を満たす処理を実現すること。 なお、DB は MS Access とする。
  テーブル)
   CREATE TABLE member {

id NUMBER(4) not null primary,
name VARCHAR(128) not null,
birthday DATE not null,
sex NUMBER(1) not null,
job VARCHAR(128)
   };

sex 男:1, 女:2

・class Person を定義し、上記の変数を格納できること。 ・各変数は private 宣言し、set/get メソッドで操作すること。 ・年齢を算出するメソッドを追加すること。
(課題)
@ Person 情報を作成し、それを登録するプログラムを作成しなさい。
A CSV で定義した Person 情報をファイルから読み込み、それを DB に
一括登録しなさい。1つでも登録に失敗したら、途中までの登録を
全てキャンセルすること。
B 登録した全ての利用者を取得し、性別&年齢順に並べ、以下の情報を
出力しなさい。
24デフォルトの名無しさん:2005/08/15(月) 13:23:41
【 課題 】
二次元配列を宣言し、プリントする。
ただし、Hairetsu[0][A]のような形で宣言する。
(char型で配列を宣言する。)
【 期限 】本日22時
【 補足 】よろしくお願いします。
25デフォルトの名無しさん:2005/08/15(月) 14:03:45
>>24
こんなんでいいのか?

public class Kadai
{
public static void main(String[] args)
{
int a = 10;//例えば10
int b = 10;
char[][] hairetsu = new char[a][b];

//配列に何か入れたかったらこの位置に入れる
hairetsu[0][0] = 'A';

for(int i = 0; i < hairetsu.length; i++)
for(int j = 0; j < hairetsu[i].length; j++)
System.out.println(hairetsu[i][j]);
}
}
26955:2005/08/15(月) 15:26:10
 前スレ955のものです。期日を延ばしてもらって自分で挑戦したもののかなりいき詰まってます。
 結構やばいです。手直しお願いできないでしょうか?
 
 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

【Java 歴】 4週間。
【 期日 】 8月16日 午前0時
【 ver  】 1.42
【 課題 】 コンピューターを売る会社のための価格設定システムを作成します。
      2種類のコンピュータ、ノートブックとデスクトップがあります。各コンピュータの
      オプションはプロセッサー(0.8($100)、1($130)、1.2($150),1.5Gb($200))CDドライブ(CD-ROM($40)、CD-RW($80)またはDVD($100)))
     を備えています。ラップトップは、14($40)と15インチ($70)のスクリーンを備えています。
      デスクトップは15($50)-,17($80)-,19インチ($100)のモニター備えています。オプションはモデム($60)、
      networkカード($60)とzip drive($40)です。 このプログラムにはcomputer class(abstract class)
      とnotebook class, desktop class(sub-class)が含まれます。 
      各subclassにはコンピューター価格を計算するメソッドが含まれます。
     (価格はそのコンピューターの基本価格+オプション価格)
     プログラムにはメモリ価格を計算するメソッド、ハードドライブを計算する
     メソッド等が含まれます。
     よろしくお願いします。
27デフォルトの名無しさん:2005/08/15(月) 19:25:44
>26
http://www.wikiroom.com/java/index.php?%A5%BD%A1%BC%A5%B9%C5%BD%A4%EA%C9%D5%A4%B1#qd6e5574
>26が作成した途中のコードは参考にしてません。
テストもほとんどしてません。
それでも良ければどうぞ。
28955:2005/08/15(月) 20:46:46
コンパイルしません、もしかして、ヴァージョンが違いますか??
2927:2005/08/15(月) 20:54:36
>28
一応EclipseでJDKの設定を1.4にしたつもりなんだけど。。
どこでエラーになったか書いて。
30955:2005/08/15(月) 21:07:09
すいません、走りました。 
親でもないのに迷惑かけてすいません。
本当に有難うございました。
まじで、感謝です。
3119:2005/08/16(火) 02:17:01
誰かまじで助けてください。

【 課題 】
1.TreeNode(構文木)クラスに以下のメソッドを加えて、テストする。
public boolean contains(Object item) // もしターゲットを見つけたらtrueを返す
public Object find (Object target) // もしターゲットを見つけたらそのノードへのリファレンスをリターン、見つけなかったらnullをリターン
public object delete(Object target) // ターゲットをツリーから消してリターンする、もしくはnullをリターン
public boolean remove(Object target)// ターゲットをツリーから消してtrueをリターンします、もしくはfalseをリターンします。
public String preOrder() // 構文木を先行順にする。
public String postOrder()// 構文木を後行順にする。
2.javadocコメントをTreeNodeクラスに加えてください

【 期限 】8/15 午後12時
【 Ver  】1.4
【 補足 】マル投げです.すみませんが、よろしくお願いします。
      http://www.geocities.jp/inndvision1980/BinaryTree.txt
      http://www.geocities.jp/inndvision1980/BinaryTreeTest.txt
32デフォルトの名無しさん:2005/08/16(火) 09:34:07
23ですが、お願いします
33デフォルトの名無しさん:2005/08/16(火) 09:40:58
最近、雑用が多くて・・・
今日中に何とか回答します〜
34デフォルトの名無しさん:2005/08/16(火) 13:00:34
35デフォルトの名無しさん:2005/08/16(火) 17:01:08
36デフォルトの名無しさん:2005/08/17(水) 23:09:49
お願いするときは何回も書き込むけど、
いざコードが示されたら音沙汰なしだね。

人間なんてこんなもんなのね。。
37デフォルトの名無しさん:2005/08/17(水) 23:13:06
>>36
いやなら来るな
38デフォルトの名無しさん:2005/08/17(水) 23:18:13
これまでの回答者の多くが「なしのつぶて」されてるのに、何を今更。。。
私達は、感謝される為にソースコードを書いてるのではない
39デフォルトの名無しさん:2005/08/18(木) 00:22:47
>38
感謝は求めてない。
動作報告をして欲しい。
40デフォルトの名無しさん:2005/08/18(木) 16:09:53
>>39
禿堂
41デフォルトの名無しさん:2005/08/22(月) 17:14:08
保守age
42デフォルトの名無しさん:2005/08/25(木) 20:13:31
さすがに夏休みだけあって、全く課題が来ないね・・・
43デフォルトの名無しさん:2005/08/25(木) 20:51:59
>>42
逆に夏休みにやり残した課題を消化するためあわてて課題を出してくると思った漏れ
44デフォルトの名無しさん:2005/08/26(金) 09:31:26
>>43
駆け込みが殺到するのはもうちょっと先だな。
学生とか9末まで夏休みの人も多いだろうし。
45デフォルトの名無しさん:2005/08/30(火) 00:58:49
【 PG歴 】 2週間
【 種別 】 丸投げ
【 Ver  】 1.4
【 期限 】 8月30日午後6時
【 課題 】 ウインドウのサイズを越えたものを表示するための
       スクロールバー(ウインドウ自体の)の設置。
       意味がわからなかったらすいません。
46デフォルトの名無しさん:2005/08/30(火) 09:57:32
>>45
問題を「そ の ま ま」書けと何度(ry
47デフォルトの名無しさん:2005/08/30(火) 19:10:42
age
48方向音痴:2005/09/02(金) 14:46:14
【 課題 】
Aさんは色々な返済プランを比較検討しようと考え、頭金を変えたり毎年の返済額を変えたらどうなるかを調べることにした。
頭金を「なし・600万円・1000万円・1300万円」の4ぱたーん、
毎年の返済額を「80万円・100万円・120万円・150万円」の4パタンとし、これらの組み合わせに対する返済プラン
頭金=なし&返済額= 80万円の場合の返済回数(年数)・支払総額
頭金=なし&返済額=100万円の場合の返済回数(年数)・支払総額
頭金=なし&返済額=120万円の場合の返済回数(年数)・支払総額
頭金=なし&返済額=150万円の場合の返済回数(年数)・支払総額
頭金=600万円&返済額= 80万円の場合の返済回数(年数)・支払総額
頭金=600万円&返済額=100万円の場合の返済回数(年数)・支払総額
………
頭金=1300万円&返済額=150万円の場合の返済回数(年数)・支払総額
というような画面出力するプログラムを作りなさい。
価格、年利、頭金・返済額パターンはプログラムに直接書き込んでかまわないが、あとで変更しやすいように作ること
↓続きます。
49方向音痴:2005/09/02(金) 14:47:10
続きです。
<画面出力例>
価格=\30000000
年利 =2.5%
(頭金,返済)→返済回数/支払総額
(\0、\800000)→113/¥89829049
(\0、\1000000)→57/¥56143523
(\0、\1200000)→40/¥47668817
(\0、\1500000)→29/¥42107761
(頭金,返済)→返済回数/支払総額
(\6000000、\800000)→57/¥50914814
(\6000000、\1000000)→38/¥43109054
(\6000000、\1200000)→29/¥39686205
(\6000000、\1500000)→21/¥37035039
(頭金,返済)→返済回数/支払総額
(\10000000、\800000)→40/¥41779204
(\10000000、\1000000)→29/¥38071832
(\10000000、\1200000)→22/¥36195987
(\10000000、\1500000)→17/¥34635263
(頭金,返済)→返済回数/支払総額
(\13000000、\800000)→31/¥37549876
(\13000000、\1000000)→23/¥35413935
(\13000000、\1200000)→18/¥34250569
(\13000000、\1500000)→14/¥33242120
【 期限 】9月5日 正午
【 Ver  】1.42
【 補足 】
(\10000000、\1000000)→29/¥38071832は
頭金を1000万円用意し、ローンを毎年100万円ずつ返済した場合の返済回数(年数)は29年であり、頭金と借入金と利息を加えた支払い総額は38071832円という意味です。。

丸投げですいません。
よろしくお願いします。
50デフォルトの名無しさん:2005/09/03(土) 09:26:50
>48-49
// PayBackDemo.java
import java.math.BigDecimal;
/**
* 返済プラン計算プログラム
* 価格と年利はコマンドライン引数として与える。
*/
public class PayBackDemo {
/**
* 頭金のパターン
*/
public static final BigDecimal[] DOWN_PAYMENT_PATTERN = { new BigDecimal("0"), new BigDecimal("6000000"), new BigDecimal("10000000"), new BigDecimal("13000000"), };
/**
* 毎年の返済額のパターン
*/
public static final BigDecimal[] AMOUNT_REPAID_PATTERN = { new BigDecimal("800000"), new BigDecimal("1000000"), new BigDecimal("1200000"), new BigDecimal("1500000"), };
/**
* mainメソッド
* @param args コマンドライン引数(価格、年利)
*/
public static void main(String[] args) {
BigDecimal price = new BigDecimal(args[0]);
BigDecimal apy = new BigDecimal(args[1]);
new PayBackDemo().process(price, apy);
}
/**
* 計算ロジック
* @param price 価格
* @param apy 年利
*/
public void process(BigDecimal price, BigDecimal apy) {
for( int i=0; i<DOWN_PAYMENT_PATTERN.length; i++ ) {
5150:2005/09/03(土) 09:28:17
>48-49
つづき
System.out.println( "(頭金,返済)→返済回数/支払総額" );
for( int j=0; j<AMOUNT_REPAID_PATTERN.length; j++ ) {
BigDecimal downPayment = DOWN_PAYMENT_PATTERN[i];
BigDecimal amountRepaid = AMOUNT_REPAID_PATTERN[j];
BigDecimal total = downPayment;
BigDecimal left = price.subtract(downPayment);
int count = 0;
while( left.longValue() > 0 ) {
left = new BigDecimal(apy.divide(new BigDecimal("100")).add(new BigDecimal("1")).multiply( left ).longValue());
left = left.subtract(amountRepaid);
total = total.add(amountRepaid);
count++;
}
total = total.add( left );
System.out.println( "(\\" + downPayment + "、\\" + amountRepaid + ")→" + count + "/\\" + total );
}
}
}
}

頭金\13000000、返済額\1000000の時だけ結果が数円違うけど。。
どこかミスってるかも。
52デフォルトの名無しさん:2005/09/03(土) 13:14:20
【 課題 】
ファイルEx.txtの入出力に関する問題
1.Ex.txtに文字列を書き込むメソッドを作成し、
呼ばれるごとに【処理時刻:テスト】を追記する。
※ Ex.txtはどこに作成してもよい。
※ 処理時刻の表示形式は問わないが、時分秒が書き込まれていること。

2.Ex.txtの内容を読み込むメソッドを作成し、最後の行に書かれている文字列を表示する。

3.1で書き込む文字列を【処理時刻:処理n回目】と変更する。
nは2で作ったメソッドを利用し前回の値を参照し、書き込む時にn=前回+1となるようにする。
※Ex.txtの内容が途中で編集されることを考慮するため、n=行数のような判別方法は不可。

Ex.txtの中身例
【2005/mm/dd/01/01:処理1回目】
【2005/mm/dd/02/10:処理2回目】
割り込み文字列
割り込み文字列
【2005/mm/dd/13/01:処理3回目】

【 期限 】9/6
【 Ver  】1.4
【 補足 】特に2,3をお願いします。
53方向音痴:2005/09/03(土) 14:55:07
48-49の回答
>50-51のデフォルトの名無しさん 、ありがうございます。
>頭金\13000000、返済額\1000000の時だけ結果が数円違うけど。。
とのことですが、
(\13000000、\1000000)→23/¥35413943
でした。ご指摘ありがとうございます。そして、コンパイルしてみた所、

シンボルを解決できません。
シンボル: メソッド divide (java.math.BigDecimal)
場所 : java.math.BigDecimal の クラス
left = new BigDecimal(apy.divide(new BigDecimal("100")).add(new BigDecimal("1")).multiply( left ).longValue());

とエラー表示されます。
私自身、javaの知識が無いためどうしていいかわかりません。よろしければ教えてください。
お願いします。
5450:2005/09/03(土) 16:13:18
>53
すいません。1.5のメソッド使ってました。
left = new BigDecimal(apy.divide(new BigDecimal("100")).add(new BigDecimal("1")).multiply( left ).longValue());

left = new BigDecimal(apy.divide(new BigDecimal("100"), 3, BigDecimal.ROUND_UNNECESSARY).add(new BigDecimal("1")).multiply( left ).longValue());
に変えてください。
55方向音痴:2005/09/03(土) 16:25:52
50さん
>54
ありがとうございます。
おかげで無事にコンパイルできました。
本当にありがとうございました。
56デフォルトの名無しさん:2005/09/03(土) 17:45:09
>52
http://www.wikiroom.com/java/index.php?%A5%BD%A1%BC%A5%B9%C5%BD%A4%EA%C9%D5%A4%B12#j1f1a1f6
正規表現得意じゃないのでゴリゴリ書いてます。
もっといい方法があると思うけど。。

動作報告よろしく。
57デフォルトの名無しさん:2005/09/03(土) 19:25:43
【 課題 】コマンドラインに入力された引数を整数に変換した値を引数として,オブジェクト
      abcのchkLogonメソッドを呼び出す

【 期限 】明日まで

よろしくお願いします。

58デフォルトの名無しさん:2005/09/03(土) 22:00:34
int x=Integer.parseInt(arg[0]);
abc.chkLogon(x);
59デフォルトの名無しさん:2005/09/03(土) 23:59:57
Javaのプログラムから別のプログラムを起動して、出力されたデータをJavaで読み取り、
読み取ったデータはすぐにグラフにして表示する。

Java(ソルバー起動) → ソルバー(計算、出力) → Java(表示)

ソルバーの出力は1秒間で10000個出力し、それを数分繰り返す。
Javaではソルバーが出力するデータのうち、すべてをグラフ化するのではなく、100個ごとといった様に間隔を置いて表示する。

こんな感じのJavaのGUIを作ってるんですが、Javaからソルバーを起動するとき、
どうやったらソルバーから100個ごとにデータを受け取るということをコントロールできるのか、
お願いしマスダ
60デフォルトの名無しさん:2005/09/04(日) 00:42:27
1.Runtime.exec(String command) 使ってソルバー起動
2.上記1の戻り値であるProcessオブジェクト取得
3.新しくスレッド2つ起動する
1つ目はそのProcessオブジェクトからgetOutputStream()で標準出力取得するスレッド
2つ目はそのProcessオブジェクトからgetErrorStream()でエラー出力取得するスレッド
4.3の標準出力取得するスレッドで「100個ごと」受け取ったと判断した時点で希望する処理をやらせる

(JDK5ならProcessBuilderでもいい 何が違うのかよう分からんけど)
61デフォルトの名無しさん:2005/09/04(日) 01:04:35
ありがとうございます!
さっそくためしてレポします!!!
62デフォルトの名無しさん:2005/09/04(日) 01:58:14
Int型の変数のMin MAx NUll値はそれぞれ
-2147483646 2147483647 -2147483647
らしいのですが
ArrayList型の変数にもそれぞれMax Min Nullがありましたら教えてください。
テストで使いたいのです。
63デフォルトの名無しさん:2005/09/04(日) 02:54:03
【 課題 】ソースファイルと同一フォルダに置いてある画像"SUNSET24.jpg"を読み込み、ピクセル単位でRGBの値を変えられるようにして
       新しいjpegファイルとして書き出しなさい。
【 種別 】丸投げ
【 期限 】9月5日
【 Ver  】1.4
【 補足 】ピクセル単位でRGBの値を変えるっていうのは元画像のRGBの値のRを3倍にしたり とからしいです。(教師に質問した)

読み込みと書き込みにFileInput(Output)Storeamを、RGB処理にPixelGrabberなどを使って
自分なりにやってみたものの新しいファイルとして書き出すところでお手上げになりました。
丸投げですがお願いします。
64デフォルトの名無しさん:2005/09/04(日) 03:50:02
>>63
Image img=元画像;
int[] pixels=new int[x*y];
PixelGrabber pg = new PixelGrabber(img, x, y, w, h, pixels, 0, w);
pg.grabPixels();

//色変える作業・・・

Image conv_img = createImage(new MemoryImageSource(w, h, pixels, 0, w));

JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
BufferedImage img = createPieChart(data, total, dataName, height, width);//
encoder.encode(img);
6552:2005/09/04(日) 11:14:02
>56
ありがとうございます。動作確認しました。
細かい部分ですが、
【2005/09/04 11:03:33:処理1回目】
【2005/09/04 11:04:46:処理1回目】
↑このように処理回数を手で編集してしまった場合、次の書き込みが

【2005/09/04 11:03:33:処理1回目】
【2005/09/04 11:04:46:処理1回目】
【2005/09/04 11:05:05:処理3回目】
↑このようになってしまいます。

たぶん、割り込み文字は上記のようななを想定していないですし、
ここまでつくってもらったので、あとは自分で直してみます。

早い対応、どうもありがとうございました。
66デフォルトの名無しさん:2005/09/04(日) 19:26:15
>>60

> 1つ目はそのProcessオブジェクトからgetOutputStream()で標準出力取得するスレッド
>2つ目はそのProcessオブジェクトからgetErrorStream()でエラー出力取得するスレッド
この部分なんですけど、ProcessオブジェクトからgetOutputStream()で出力を取得するってやつ、
ソルバーから全部出力された後でその出力ストリームを取得して100個ごとに図にするってことだと思うんですが、
ソルバーの計算が終わった後で作図って言うのじゃなくて、ソルバーが1個出力されるたびに作図、出力、作図、を繰り返したいんです。
通常ソルバーの出力の方が速くて作図が間に合わないだろうという予測のもと、ある程度出力に間隔を置いて作図するわけなのですが・・・
67デフォルトの名無しさん:2005/09/04(日) 19:30:48
>>66
ソルバーの出力を
標準出力に渡さないとダメだよ
68デフォルトの名無しさん:2005/09/04(日) 20:09:43
>>67
ソルバーの出力を標準出力に渡すって言うことは、簡単に表現するなら
printf("%ld\n", data);
のようなコードをソルバーのソースに入れておくっていうことですか?
69デフォルトの名無しさん:2005/09/04(日) 20:10:21
ちなみに、今簡単なコードでやってみたんですが、なんかちゃんとソルバーの出力をリアルタイムで受け取ってるっぽいです。
/* java */
package test;
import java.io.*;
public class RuntimeExecTest {
/** 最初に呼び出されるメソッド */
public static void main( String args[] ) {
try {
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec(args);

// 呼び出したプログラムの出力を標準出力に送る
BufferedReader br = new BufferedReader(
new InputStreamReader(
process.getInputStream() ) );
String line;
for(int i = 0; (line = br.readLine()) != null; i++ ){
if(0 == (i % 1000)){
System.out.println( line );
}
}
}
catch( IndexOutOfBoundsException e ) {
System.err.println( "Usage:java ExecTest command [args...]" );
System.exit(-1);
}
catch( Exception e ){
System.err.println( "Error:" + e.toString() );
System.exit(-1);
}
}
}
70デフォルトの名無しさん:2005/09/04(日) 20:11:01
/* C */
#include <stdio.h>
int main(void)
{
long int sum = 0;
long int i,j=0;

while(j != 100000){
for(i = 0; i < 100000; i++){
//sum = sum + i;
//printf("%d\n",i);
}
j++;
printf("%d\n",j);
}
return 0;
}
71デフォルトの名無しさん:2005/09/04(日) 20:17:19
>>>67
>ソルバーの出力を標準出力に渡すって言うことは、簡単に表現するなら
>printf("%ld\n", data);
>のようなコードをソルバーのソースに入れておくっていうことですか?

そういうことですよ
ちなみにいまさらな話なのですが私はソルバーってよくわかりません使ったこともないし・・・
なので、ソルバーの出力をうまくgetInputStream()に渡せるのかというのが気になっておりました

>>69
出来たのならそれでいいのでは?
あとは100ごとの処理を書けばいいのではないでしょうかね
72デフォルトの名無しさん:2005/09/04(日) 20:20:53
そうですか、とりあえずこの方法でやってみます。
お世話様でした。
ソルバーとは "solver"のことで、計算をするプログラムのことです。直訳的には"解く人"ですね。
73デフォルトの名無しさん:2005/09/04(日) 22:09:34
【 課題 】コマンドラインに入力されたID,パスワードが正しい場合ログオン可能とする。
      ログオン可能なIDはあらかじめ配列に用意しておく。パスワードは「12345」とする
      コマンドラインにはint型で表現できる2つの数値がID,パスワードの順で
      入力されるものとする

【 期限 】明日まで
【 補足 】丸投げ

よろしくお願いします
74デフォルトの名無しさん:2005/09/09(金) 00:26:16
public class Login {
public static void main(String[] args) {
int[] id = {11, 22};
String password = "12345";

if (args.length < 2) {
System.out.println("IDとパスワードを入れろ");
System.exit(0);
}
for (int i = 0; i < id.length; i++) {
if (args[0].equals(String.valueOf(id[i]))) {
if (args[1].equals(password)) {
System.out.println("ログイン成功");
System.exit(0);
}
}
}
System.out.println("ログイン失敗");
}
}
75名無しさん@そうだ選挙に行こう:2005/09/11(日) 07:17:55
>>74
もっとJAAS風におねがいします・・・それじゃ小学生並なので・・・
76名無しさん@そうだ選挙に行こう:2005/09/11(日) 08:43:16
>75
>73の質問からはそういう風にしてほしいという意図が全く読み取れないのだが。
77名無しさん@そうだ選挙に行こう:2005/09/11(日) 09:34:50
JAAS風なんて要求されるレベルがなんで丸投げなんだ。
78デフォルトの名無しさん:2005/09/12(月) 16:32:51
class IntRandom {
 private int start,end;
  IntRandom(int n,int m){
   @;
   A;
  }
  public int getIntRandom(){
   B
  }
}

問題:
nからmまでの整数乱数を発生させるIntRandomクラスを作成した。
オブジェクト生成時にnとmを渡し、メソッドgetIntRandom()により
乱数を得る使用となっている。@ABに適切なコードを入れよ。

Bはreturn (int)Math.random();だと思いましたが違うらしいです。
お願いします。
79デフォルトの名無しさん:2005/09/12(月) 17:20:19
【問題】今日は月曜日だが、100日後は何曜日かを求めるにはどうすればよいか考え、
コマンドラインから今日の曜日と整数Nを渡し、標準出力にN日後の曜日を出力するプログラム
を作成しなさい。

【期限】今日6時まで
【補足】丸投げですがお願いします。

80デフォルトの名無しさん:2005/09/12(月) 17:48:06
どなたか79の問題お願いします・・
81デフォルトの名無しさん:2005/09/12(月) 17:55:31
>>78
コンストラクタの引数はgetIntRandomで出力する値の範囲か?
(1) this.start = n;
(2) this.end = m;
(3) return (int)(n + Math.random() * (m - n+1));
82デフォルトの名無しさん:2005/09/12(月) 18:01:25
>>81
はい、そです
83デフォルトの名無しさん:2005/09/12(月) 18:14:01
>>81
おれがやろうと思ったのに、おれがやろうと思ったのに、
おれがやろうと思ったのに、おれがやろうと思ったのに、
おれがやろうと思ったのに、おれがやろうと思ったのに、


出来なかったです(3)が、勉強しなおします。orz
84デフォルトの名無しさん:2005/09/12(月) 18:22:31
>(3) return (int)(n + Math.random() * (m - n+1));
return (int)(start + Math.random() * (end - start+1));
85名無しさん@Linuxザウルス:2005/09/13(火) 07:59:48
【 課題 】
JScrollpaneの水平スクロールバーと垂直スクロールバーの太さを、
テキストボックスからの入力で制御できるようなサンプルGUIを
作成してください。

【 期限 】
9月16日
【 補足 】
丸投げです。
水平スクロールバーの高さと、垂直スクロールバーの幅を
制御したいです。
   
86デフォルトの名無しさん:2005/09/13(火) 13:02:34
>>79
public class P53Q79 {
private String[] yobiary=new String[]{"Mon","Tue","Wed","Thr","Fri","Sat","Sun"};
public P53Q79(String[] argv){
if(argv.length<2)usage();
calc(argv[0],Integer.parseInt(argv[1]));
}
private void usage(){
System.out.println("java P53Q79 Mon|Tue|Wed|Thr|Fri|Sat|Sun N");
System.exit(0);
}
private void calc(String yobi,int n){
int now=yobiadr(yobi);
if(now<0)usage();
int amari=n%7;
int fur=(now+amari)>=7?(now+amari-7):(now+amari);
System.out.println(n+"日後は"+yobiary[fur]+"だ");
}
private int yobiadr(String yobi){
for(int i=0;i<yobiary.length;i++){
if(yobi.equals(yobiary[i]))return i;
}
return -1;
}
public static void main(String[] argv){
new P53Q79(argv);
}
}
87デフォルトの名無しさん:2005/09/13(火) 14:08:40
【 課題 】
前提条件
下記Classは全て studyA パッケージとして作成する事。
入力が発生する場合、いかなる場合でも予期しない例外(スタックトレースなど)が出ない事。

A1 コマンドで "Hello Java" と表示しなさい。
A2 コマンドライン引数で入力された文字列を表示しなさい。
   呼び出し例: > java A2 あいうえお
          > あいうえお
A3 コマンドライン引数で入力された文字列が
   3文字以下なら”すこし”
   4文字以上なら”たくさん” を表示しなさい。
A4 コマンドライン引数で入力された文字列が
   3文字以下なら、その文字列を20個文字列連結して表示
   4文字以上なら”たくさん” を表示しなさい。
   文字列連結の際はStringBufferクラスを使用しなさい
   for文を使用しなさい
   ※javaのインデックス・配列は0(ゼロ)からです。
A5 コマンドライン引数の第1引数(数字)と第2引数(数字)の和を表示しなさい。
   (数値その他のチェックも行う事 / 計算は整数で行う事。浮動小数点は使用禁止)
A6 現在の年月を以下の書式で表示しなさい      
    例: 「2003年 8月 15日(金) 12時 5分 56秒」  
A7 コマンドライン引数に入力された年と月から、        
   その月が何日まであるかを表示しなさい。
   (日付その他のチェックも行う事)
【 期限 】提出期限2005/9/16(金)
【 補足 】よろしくお願いします。
88デフォルトの名無しさん:2005/09/13(火) 15:47:59
【 課題 】
int型の配列 hairetu[]n={1,2,5,4} が存在する
配列内の値を用いて足し算をする場合、全部で何通りの式が得られるか?
得られる式とその数、答えを全て表示せよ。
ただし、「1+2と2+1」「1+2+5と1+5+2と5+2+1」等は1種類の式として扱う

【 期限 】
今日の23時まで
ギリギリですいませんOTL
89デフォルトの名無しさん:2005/09/13(火) 15:49:13
ageてしまった
申し訳ない・・・
90デフォルトの名無しさん:2005/09/13(火) 19:19:43
1+2 1+5 1+4
   2+5 2+4
      5+4
1+2+5 1+2+4 1+5+4
         2+5+4
1+2+5+4
91デフォルトの名無しさん:2005/09/13(火) 20:29:58
やさしいMaja
9288:2005/09/13(火) 20:59:38
皆さんなんとか知恵を貸していただけないでしょうかOTL
93デフォルトの名無しさん:2005/09/13(火) 21:07:54
>>92
中学と高校をやり直してこい。
これは中学とか高校で『確率』のときに習ったはずだ。
コンビネーション(nCm)、 パームテーション(nPm)を習ったはずだ。

基本情報処理試験のテスト出題範囲でもある。
94デフォルトの名無しさん:2005/09/13(火) 21:38:06
>>93
4C4+4C3+4C2=11
になるのは分かるのですが、プログラムでどう書いていいのやら・・・
95デフォルトの名無しさん:2005/09/13(火) 21:51:38
>>94
計算。
96デフォルトの名無しさん:2005/09/13(火) 22:07:49
> int型の配列 hairetu[]n={1,2,5,4} が存在する

存在するんだ・・・
97デフォルトの名無しさん:2005/09/13(火) 22:14:18
>>90の思考プロセスをそのまま書けばできるような気がするけどな
98デフォルトの名無しさん:2005/09/13(火) 22:14:46
>>88
import java.util.*;
public class ShikiGenerator
{
  ArrayList list = new ArrayList();
  void generate(int a[], String str, int n)
  {
    for(int i = n; i <= a.length - 1; ++i)
    {
      String s = str + "+" + a[i];
      list.add(s);
      generate(a, s, i+1);
    }
  }
  void printList()
  {
    for(int i = 0; i < list.size(); ++i)
      System.out.println((i+1) + " : " + (String)list.get(i));
  }
  public static void main(String[] args)
  {
    int a[] = {1,2,5,4};
    ShikiGenerator sg = new ShikiGenerator();
    sg.generate(a, ""+a[0], 1);
    sg.printList();
  }
}
99デフォルトの名無しさん:2005/09/13(火) 22:15:54
しまった、これじゃ1が動かない
100デフォルトの名無しさん:2005/09/13(火) 22:19:44
美しくない〜。
import java.util.*;
public class ShikiGenerator
{
  ArrayList list = new ArrayList();
  void generate(int a[], String str, int n)
  {
    for(int i = n; i <= a.length - 1; ++i)
    {
      String s = str + "+" + a[i];
      list.add(s);
      generate(a, s, i+1);
    }
  }
  void printList()
  {
    for(int i = 0; i < list.size(); ++i)
      System.out.println((i+1) + " : " + (String)list.get(i));
  }
  public static void main(String[] args)
  {
    int a[] = {1,2,5,4};
    ShikiGenerator sg = new ShikiGenerator();
    for(int i = 0; i < a.length; ++i)
      sg.generate(a, ""+a[i], i+1);
    sg.printList();
  }
}
10188:2005/09/13(火) 22:22:28
無事>>100で動きました
ありがとうございました

もう少しちゃんと勉強しよう・・・OTL
102100:2005/09/13(火) 22:37:08
多少きれいになった。
import java.util.*;
public class ShikiGenerator
{
  ArrayList list = new ArrayList();
  int a[] = null;

  ShikiGenerator(int a[]){ this.a = a;}

  void generate(String str, int n)
  {
    for(int i = n; i <= a.length - 1; ++i)
    {
      String s = str + "+" + a[i];
      if(n > 0 ) list.add(s.substring(1));
      generate(s, i+1);
    }
  }

  void printList()
  {
    for(int i = 0; i < list.size(); ++i)
      System.out.println((i+1) + " : " + list.get(i));
  }
  public static void main(String[] args)
  {
    int a[] = {1,2,5,4};
    ShikiGenerator sg = new ShikiGenerator(a);
    sg.generate("", 0);
    sg.printList();
  }
}
103100:2005/09/13(火) 22:40:49
うぎゃ、なんだ

i <= a.length -1 てよ。
i < a.length でいいじゃん。
104デフォルトの名無しさん:2005/09/13(火) 23:46:32
質問です。
#で三角形を描きたいです。
どうすればいいですか?


     #
    # #
   #   #
  #     #
 #######

完成図はこんなかんじです。
105デフォルトの名無しさん:2005/09/13(火) 23:53:43
class Shukudai {
    public static void main(String[] args) {
        System.out.println("    #");
        System.out.println("   # #");
        System.out.println("  #   #");
        System.out.println(" #     #");
        System.out.println("#######");
    }
}
106デフォルトの名無しさん:2005/09/14(水) 00:38:14
>>105
一番下がずれる・・・
107デフォルトの名無しさん:2005/09/14(水) 00:40:50
空白を一つずつ減らしたり増やしたりするやり方がわかればなんとか・・・
108デフォルトの名無しさん:2005/09/14(水) 00:47:17
【 課題 】正誤式の問題作成。 100問 問題を作成しランダムで出題
       正、誤で回答をし、回答結果を集計して表示
       
【 種別 】丸投げ
【 期限 】9月15日
【 Ver  】1.5
 まったくわかりません・・ よろしくお願いします。
109デフォルトの名無しさん:2005/09/14(水) 00:48:26
>>104
宿題に書かれてる条件ってそれだけか?
省略せずに全部書けよ
110デフォルトの名無しさん:2005/09/14(水) 01:03:10
>>108
君もそれ問題全部書いてるか?
アバウトなのが多すぎるぞ
111デフォルトの名無しさん:2005/09/14(水) 01:34:54
>>109
口頭で言われたんですが、これだけなんです。
「単元で言うと」とか全くなし。

でもやっぱり条件式とかはつけないとだめかなーと思っています。
112108:2005/09/14(水) 01:37:50
はい全部かいてます。紙で配布されたわけでなく
口頭で「コレコレこうしたものを作ってきなさい。」 と言われました。
他に言われた事は「問題は各自好きな分野で作成すること」くらいです。
113デフォルトの名無しさん:2005/09/14(水) 02:43:40
【 課題 】簡単にいうと、CDショップがCDを売ったか記録をするプログラムの作成です。
今、助けが必要なのは、顧客情報をArrayで管理する際に、CDクラスを作ったのですが、メインからどうアクセスすればいいかわかりません。
ちなみにArrayに入る情報は、CDタイトル、アーティスト、値段、ジャンルです。
【 種別 】問題途中までのプログラムをアップしています。
http://www.uploda.org/file/uporg192367.zip.html
【 期限 】9月16日
【 補足 】当方海外の大学生のため、問題は英語になっています。
114デフォルトの名無しさん:2005/09/14(水) 11:39:24
>>106
どっちにずれるの?
俺のところでは>>104の通りに表示されるが
115デフォルトの名無しさん:2005/09/14(水) 12:34:19
>>104
遅いのはStringBuffer使ったりループに直したりすれば何とかなると思うがやってないからわからん
public class Shukudai {
    static String printTriangleSub(String left, int height) {
        if (left.length() == height) {
            System.out.println(left + "#");
            return " ";
        }

        String inner = printTriangleSub(left + " ", height);
        System.out.println(left + "#" + inner + "#");
        return inner + "  ";
    }

    static void printTriangle(int height) {
        printTriangleSub(" ", height);
        for (int i = 0; i < height - 1; i++) {
            System.out.print("##");
        }
        System.out.println("#");
    }

    public static void main(String[] args) {
        printTriangle(4);
    }
}
116デフォルトの名無しさん:2005/09/14(水) 13:06:00
117デフォルトの名無しさん:2005/09/14(水) 13:58:31
このスレは常時上げてください。
118デフォルトの名無しさん:2005/09/14(水) 19:21:36
>108
一番難しいのは100問の問題を作成することなのだが。。
119デフォルトの名無しさん:2005/09/14(水) 19:27:26
>113
TerminalIOパッケージの中身をクレ.
120113:2005/09/14(水) 20:12:19
121デフォルトの名無しさん:2005/09/14(水) 21:19:23
>>115
ありがとうございます。
がんがって説明できるように解読します・・・
122デフォルトの名無しさん:2005/09/14(水) 21:43:42
>>114
底辺が一個足りない感じになるんですよ。
ちなみに>>115でも同じようになって・・・
for (int i = 0; i < height - 1; i++) {
の-1を抜くとピッタリなんです。
どうしてだろう・・・
123デフォルトの名無しさん:2005/09/14(水) 22:27:40
>>104の図
     #
    # #
   #   #
  #     #
 #######

お前がやりたいのはこっちか?
     #
    # #
   #   #
  #     #
 #########

だったら-1を抜くとピッタリだ
124デフォルトの名無しさん:2005/09/14(水) 23:21:33
>>123
上のほうだけど・・・
失礼だったかもしれませんが、
作っていただいたプログラムにいちゃもんつけてるわけじゃないんです。

秀丸にコピペしてコマンドプロンプトで出すと


    #
   # #
  #   #
 #     #
######


↑こうなってる。

-1抜いたら二個増えるはずなのに、ピッタリなんですよ。
なんでだろ・・・・
125113:2005/09/14(水) 23:39:59
プログラムを修正しました。課題は以下の通りです。お願いします。

【 課題 】ユーザーのキーボード入力によりCDのタイトル、アーティスト、
値段、ジャンルを配列に最大10個記録して、後にすべての表示をするプログラムの作成。
これらの操作はすべてコマンドライン操作で、キーボードの入力"A"でCDの情報を入力できるようにし、
"D"で今まで入力されたすべてのCDを出力

【 助けてもらいたいこと 】配列の使い方がわかりません。
とりあえず、一人目の入出力はできている状態なのですが、arrayを使っていないので二人目以降の管理ができていません。

【 種別 】問題、途中までのプログラムをアップしています。 (前回とは中身が違います)
http://www.uploda.org/file/uporg192986.zip.html

【 期限 】9月16日
126デフォルトの名無しさん:2005/09/15(木) 12:37:15
127デフォルトの名無しさん:2005/09/15(木) 17:02:48
>>115
間違っちゃいないけど、線を引くイメージで組み直してみた。
public class Triangle {
static void printLine(int line, int height) {
for (int i = 0; i < height + line; i++) {
if (i == height - line) {
System.out.print("#");
} else {
System.out.print(" ");
}
}
System.out.println("#");
}

static void printTriangle(int height) {
for (int i = 0; i < height; i++) {
printLine(i, height);
}
for (int i = 0; i < height; i++) {
System.out.print("##");
}
System.out.println("#");
}

public static void main(String[] args) {
printTriangle(4);
}
}
128デフォルトの名無しさん:2005/09/15(木) 17:08:51
>>118
九九じゃなくて、10×10を問題にすればいいのでは?
129デフォルトの名無しさん:2005/09/15(木) 17:24:25
>>113
配列じゃなきゃダメか?
Listの方が実用性 (つっても宿題だけど) としてはより良い選択だと思うが。
130129:2005/09/15(木) 17:43:23
>>113
とりあえず配列で適当にやるならこんな感じ
ttp://www.uploda.org/file/uporg193385.zip.html
131デフォルトの名無しさん:2005/09/15(木) 22:11:46
宿題:可変可能な配列、new ArrayList(82);級に早い奴
132113:2005/09/15(木) 23:02:09
>>129=>>130

配列ってしていなもんで。
うpしてもらったコードなんですが、メニュー"A"にいくと

"Exception in thread "main" java.lang.NullPointerException
at Assignment_2.main(Assignment_2 .java:40)"

ってでて強制終了されます。自分なりに弄ってはいるんですが、
解決方法はありますか?
133113:2005/09/15(木) 23:32:58
...main(Assignment_2 .java:40)"は
...main(Assignment_2 .java:50)"の間違えです。

コンパイルの際にはエラーはでません。
134凶笑面:2005/09/16(金) 02:14:12
今日の夜9時からフジTVで民俗学ミステリ凶笑面だ。
みんな、見ようぜ。 原作は新潮文庫から出てるよ。
俺はドラゴン桜を見るからビデオに撮るけどな。
135129:2005/09/16(金) 09:36:12
>>113
スマネ
素でぬるぽ出しちまった・・・ 心より恥じる orz

'A' の処理で、まだnewしてないCDを使おうとしてるのでぬるぽです
こんなこっぱずかしいミスをしないように、という教訓ということにしてくれ orz

'A'のこれを
CD cd = cds[index];
こんな風にすればOK
CD cd = new CD();
cds[index] = cd;
136デフォルトの名無しさん:2005/09/16(金) 13:05:31
TerminalIO ってこのスレで時折見かけるが
どっか同じ学校に行ってるんだろうな ナンマンダブ ナンマンダブ
137113:2005/09/17(土) 23:59:54
提出期限延ばしてもらいました。月曜の朝までです。ヤヴァイな。

>>135, >>129
Dの処理でも同じようにエラーが出たので、Aと同じように

CD cd = new CD();
cds[index] = cd;

にしたんですけど、出力が全て0とnullになります。


丸投げで回答してもらったほうがいいですかね?
138デフォルトの名無しさん:2005/09/18(日) 00:06:31
知るか、ボケ
139デフォルトの名無しさん:2005/09/18(日) 00:12:52
もう一回問題と
出来たところまでの回答をあげてくれ
140デフォルトの名無しさん:2005/09/18(日) 08:12:18
>113
今日の夜みるからもう一度今までできたところをうpして、
それに対してどこが解らないかを書き込んどいてくれ
141デフォルトの名無しさん:2005/09/18(日) 09:51:06
>113
>129ではないが、時間ができたのでやってみた。
http://www.wikiroom.com/java/index.php?%A5%BD%A1%BC%A5%B9%C5%BD%A4%EA%C9%D5%A4%B12#f008bd5b
問題文が英語なので、ちゃんと問題文の通りにできてるかどうかは知らん。
Assignment_2 .javaとCD.javaの両方を弄ってます。
動作報告よろしく。
142デフォルトの名無しさん:2005/09/18(日) 13:55:15
くだ質では知っているひとがいないようなので、移動してきました。

すいません。javaでの環境をつくらなくてはいけないのですが、
『java web start』というアイコンはこれは何ですか?
143デフォルトの名無しさん:2005/09/18(日) 13:59:05
>>142
説明読めよ
144デフォルトの名無しさん:2005/09/18(日) 14:49:02
>>142
とりあえず起動してみろ。
知らないなら気にするな。中にいくつかデモプログラムが入っているので
デモと勘違いする香具師が多いが、実際には
ダウンロードしたJavaWebStartに対応するアプリケーションを溜めて
リストアップしておくためのアプリケーションだ。
わからないならJavaAppletに取って代わる新しい技術だということを
頭に入れておけばいい。
145デフォルトの名無しさん:2005/09/18(日) 17:06:45
【 課題 】
していされた画像ファイルの画像変換を行うクラスを作成。

<機能条件>
前提とする画像のファイル形式はBMP、JPG、GIF、PNGとする
変換元ファイルの画像形式は自動で判別する事。
変換先のファイル形式は引数などで指定すること。(指定の無い場合はデフォルトでJPGとする)
画像のサイズ(縦横)変更を可能とする事。(ただし、縦横比は維持させる)
変換先のファイル形式がJPGの場合、ファイルサイズの上限を設定できること。
上限を設定された場合、変換されたJPGファイルは上限値を超えない最大のサイズでの圧縮レベルで変換する事。
さらに、縦横のサイズ変更との併用を可能とする。


【 期限 】
9月20日の正午までにメールまたは各種メディアにて提出。
(ソースコードおよびコンパイルしたもの、さらに動作確認用のメイン関数の書かれたもの)
146140:2005/09/18(日) 22:53:25
>141
問題すらみれてないので何とも言えないが
同じCDを買うときもtitleやらなにやら入力し直すのかい?
間違えてaddしたの消す機能を必要無し?
147113:2005/09/18(日) 23:36:24
>>139, >>140, >>141, >>142, >>146

>>129, >>141さんを初め、助けてくれようとしてくれた皆さんありがとうございました。
かなりの亀レスになってしまいましたが、プログラムの動作確認致しました。
本当にありがとうございます。
148113:2005/09/18(日) 23:38:06
>>146
まだ、初級プログラムなので、そこまで想定して作る必要はないそうです。
実用的には大問題ですけどね。
149114:2005/09/19(月) 00:41:06
今、jspを利用して、顧客、メーカー、サプライヤーの枠組みで生産管理システムを
3台のパソコンで仮想的な受注と発注を行いたいのですが、他のパソコンから
データベースに接続する方法が分かりません。一応フォーム、データベースは
もうできているので、後は他のパソコンから接続してデータを反映する事で
問題は解決できると思います。
たぶんサーバ名を"localhost"にしているためだと思うのですが何に変更すれば
いいか、調べてはみたのですが、全く分かりません。分かる方、どうかお教えお願いします。


150デフォルトの名無しさん:2005/09/19(月) 00:43:56
>>149
質問の仕方から勉強してきてくれ
151デフォルトの名無しさん:2005/09/19(月) 01:23:55
>>145
ImageIOで検索してみ。
適したAPIがあるから。簡単だからすぐできるぞ。
Advansed Image IOなんてもの使わなくてもいいから。
AffinTransformとかも必要かもしれないが、
このケースの場合不要だな。
152デフォルトの名無しさん:2005/09/19(月) 01:29:33
>>149
他のPCとそのマシンとの関係はどうなっておるかな?
間にファイアウォールがあるかどうか?
IPアドレスは動的か、静的か? グローバルIPか?それともプライベートIPか?
グローバルIPアドレスの使用は学校から許可が下りているか?
DNSの設定は?
ポートhttpは解放できるか?
ApacheなどのWebサーバをインストールしているか?
Javaアプリケーションサーバは何を使うのか?
Tomcat? Jetty? それとも、JBoss?
サーバ、クライアントPCに使われているOSは何か? Windowsか? Linuxか? *BSDか? Solarisか?
データベースはRDBMSにするのか、ただのデータの集まりで構わないのか?
RDBMSにする場合、お前にRDBMSをインストールし、設定し使いこなすスキルがあるのかどうか?
データベースサーバはどこに置くか?
データベースサーバを外部に置く場合、そのポートは開放させてもいいのかどうか?

まずこれらを確認せよ。
153114:2005/09/19(月) 02:05:50
レスありがとうございますw
>>151
ImageIOについて、これから良く調べてみますw
>>152
初心者ですいませんm(._ _*)m
今分かるところ、OSはwindows。
ApacheなどのWebサーバはインストール済み。
JavaアプリケーションサーバはTomcat。
PCは研究室内のものを3台使用し、全てWebサーバはインストール済み。
同Tomcatを使用。同OS。
データベースはただの集まりで動くのかはまだわかりません。
後は今確認できないので、確認後報告致しますwすいませんw
154114:2005/09/19(月) 02:07:57
>>151
スマソ。。
間違いです。
155デフォルトの名無しさん:2005/09/19(月) 07:37:50
>149
> データベースに接続する方法が分かりません。一応フォーム、データベースは
> もうできているので、後は他のパソコンから接続してデータを反映する事で
> 問題は解決できると思います。

これを読む限りでは同一PC内でAPL<->DBは接続できているように書いてあるけど
質問内容からすると出来ていない気がするなぁ
同一PC内で接続確認済->Javaの問題では無いだろうしね
156デフォルトの名無しさん:2005/09/19(月) 13:37:18
>145
http://www.wikiroom.com/java/index.php?%A5%BD%A1%BC%A5%B9%C5%BD%A4%EA%C9%D5%A4%B12#u63f7829
画像処理なんて初めてやったので、かなりアヤシイ。
wikiにも書いたけど、jpgに変換するロジックは相当強引なので、処理が遅いです。

神を待った方がいいかも。
157デフォルトの名無しさん:2005/09/19(月) 17:29:45
>>156
随分と複雑なものをかいたものだのう
わざわざこんなことするなんて
double[] mtrx = { rate, 0, 0, rate };
return new AffineTransformOp( new AffineTransform(mtrx), AffineTransformOp.TYPE_NEAREST_NEIGHBOR);

おれはこうしている
public static void generate(final File input, final File output,
final double magnification) {
  BufferedImage bufferedImage = null;
  try {
   bufferedImage = ImageIO.read(input);
   Graphics2D graphics2d = bufferedImage.createGraphics();
   AffineTransform scale = AffineTransform.getScaleInstance(magnification,
    magnification);
   graphics2d.drawImage(bufferedImage, scale, null);
   BufferedImage resultImage = bufferedImage.getSubimage(0, 0,
     (int) (bufferedImage.getWidth() * magnification),
     (int) (bufferedImage.getHeight() * magnification));
   ImageIO.write(resultImage, "jpeg", output);
  } catch (IOException e) {
   e.printStackTrace();
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
158114:2005/09/20(火) 01:36:28
調べた情報です。
[使用OS、ソフトなど]
OS: Windows XP Server (SP3)
JDK: Java 2 SDK Standard Edition v1.4.1_01 (インストール済み)
JSPコンテナ: Tomcat4.1.18 (インストール済み)
Webサーバ: Apache1.3.27  (インストール済み)
データベース: MySQL3.23.54 (インストール済み)
ブラウザ: Internet Explorer 6.0

[学内PCのネットワーク環境など]
ipアドレスはパソコンによって違う。 サブネットマスク、デフォルトゲートウェイは全て同じ。優先DNSサーバ、代替DNSサーバも同じ。
ローカルエリア接続。LANにプロキシサーバーを使用。ポート:8080。 ローカルアドレスにはプロキシサーバーを使用しないのチェックボックスに
チェックあり。
159114:2005/09/20(火) 01:37:50
・・・・つづき
[注文フォームのソースコードの一部]
//データベース設定
String sv = "localhost"; //サーバ名
String db = "projecta"; //データベース名
String user = ""; //ユーザ名
String pass = ""; //パスワード
String encode = "Shift_JIS"; //文字コード
//データベースに接続する
Class.forName("org.gjt.mm.mysql.Driver");
String url = "jdbc:mysql://" + sv + "/" + db
+ "?user=" + user
+ "&password=" + pass
+ "&useUnicode=true&characterEncoding=" + encode;

Connection conn = DriverManager.getConnection(url);

この受注入力画面を次のURLをブラウザで表示
http://localhost:8080/examples/jsp/jutyunyuryoku.jsp

こんな感じです。
160ザイン帝國軍帥・伯魔壬旭(小島露観):2005/09/20(火) 18:48:38
>>159
ここに、二つのクラスを貼っておきました。
http://www.wikiroom.com/java/index.php?%A5%BD%A1%BC%A5%B9%C5%BD%C9%D5%A4%B1

【使用法】
まずコンパイルしたら、hw111パッケージ(=フォルダ)のあるフォルダをカレントフォルダにして
rmic -classpath . hw111.HW111Impl でスタブクラスファイルを作成してください。
hw111パッケージのクラスファイルを、サーバーマシンとクライアントマシンの双方に置いてください。

※サーバー側のプログラム
>>159 の Connectionインスタンス conn を、引数にして、
HW111Impl server = new HW111Impl(conn);
としてください。これでデータベースサーバーの窓口が開かれます。
プログラムを終了する時は、server.close(); としてください。

※クライアント側のプログラム
サーバーマシンのローカルIPアドレスを引数にして、(ここでは「195.160.333.3」とする)
HW111 client = HW111Impl.getDatabaseInterface("195.160.333.3");
とすると、サーバーマシンのデータベースを操作できるオブジェクトが取得できます。

データベースの読み込み(Select文)をする時はList readDatabase(String sql) メソッドを使ってください。
引数sqlには、普通にselect文を記述してください("select * from datatable" など)。
返値の Listオブジェクトには、行を示すMapオブジェクトが取得された行の数だけ入ってます。
各Mapは一つの行を示します。map.get("列の名前")で、その列の値が取得できます。
TINYINT、SMALLINT、INTEGER、BIGINTの値は、Integerオブジェクトで入ってます。
CHAR、VARCHARの値は、Stringオブジェクトで入ってます。
DATEはDate、TIMEはTime、TIMESTAMPはTimestampオブジェクトで入ってます。

データベースへの書き込み(Insert、Update、Delete文)をする時は、引数sqlにその命令文を記述して
writeDatabase(String sql) メソッドを使ってください。
161デフォルトの名無しさん:2005/09/20(火) 20:35:42
>159
[注文フォームのソースコードの一部]
//データベース設定
String sv = "localhost"; //サーバ名
String db = "projecta"; //データベース名
String user = ""; //ユーザ名
String pass = ""; //パスワード
String encode = "Shift_JIS"; //文字コード
//データベースに接続する
Class.forName("org.gjt.mm.mysql.Driver");
String url = "jdbc:mysql://" + sv + "/" + db

↑でマシンが違うことで変わるところは1箇所しかないと思うのだが
同一マシンでも接続できていない?DNSが解決できない?IPアドレスを毎回自動で取得している?
162デフォルトの名無しさん:2005/09/20(火) 22:20:02
【期限】明日9/21 9:00
【課題】以下のDBアクセスプログラムをそれぞれDBopen, DBquery, DBcloseの
3つのメソッドに分けて記述しなさい。
public DBaccess {
Connection con; Statement stmt; ResultSet res;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
System.out.println("JDBCドライバOK");
con = DriverManager.getConnection("jdbc:oracle:thin:@sesvr101:1521:HOGE", "user", "pass");
System.out.println("DB接続OK");
stmt = con.createStatement();
System.out.println("StatementインタフェースOK");
res = stmt.executeQuery("SELECT * FROM 社員");
System.out.println("SQL文発行OK");
}
res.close();
stmt.close();
con.close();
System.out.println("正常終了");
}
catch (ClassNotFoundException e) {
e.printStackTrace();
}
catch (SQLException e) {
e.printStackTrace();
}
}
お願いします m(_ _)m
163114:2005/09/21(水) 00:37:52
>161
↑でマシンが違うことで変わるところは1箇所しかないと思うのだが
同一マシンでも接続できていない?

同一マシンでは接続できます。他のマシンからは接続できません。
他マシンを「localhost」から、このマシンのIPアドレスに変えればいいわけですよね??
IPアドレスは自動で取得していません。IPアドレスは分かります。
164114:2005/09/21(水) 00:57:54
>>160
ここに、二つのクラスを貼っておきました。
http://www.wikiroom.com/java/index.php?%A5%BD%A1%BC%A5%B9%C5%BD%C9%D5%A4%B1

すみません。なぜか見れません。私のブラウザに問題があるからでしょうか?
165デフォルトの名無しさん:2005/09/21(水) 04:27:20
【 課題 】NTPサーバから時刻を取得する処理
【 用語 】数学用語、専門用語の意味、説明を書きます 《あれば必須》
【 期限 】1週間くらい
【 Ver  】1.4.2以前
【 補足 】PG暦TOTALで2年くらい
       だが・・・最近まともにプログラムらしきモノに触り始めました
166デフォルトの名無しさん:2005/09/21(水) 14:53:11
このプログラムはテキストファイルをJFilechooserを使い選択し、
さらにBufferReaderで1行づつ読み込むプログラムの1部です。
このプログラムはwhile文によって文字が存在するか、しないかを確認し
存在する場合に1行づつ文字列の読み込みを繰り返しているのですが、
ここでlineの中味は1行ずつ読み込む度に変更されています。
読み込んだ文字列を後で処理したいと思っているのでlineが変更される
前に文字配列の中にa[0]は1行目、a[1]は2行目のように順番に格納できませんか?
お願いします。

  int returnVal = fc.showOpenDialog(Fileso.this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
    File file = fc.getSelectedFile();//選択したファイルを取得
String line = new String();
    try {//ファイルの読み込み
BufferedReader br = new BufferedReader (new FileReader(file));
line = br.readLine();
area.setText(line + '\n');
while(line != null){
line = br.readLine();

if (line == null) break;
area.append(line + '\n');
}

br.close();
167デフォルトの名無しさん:2005/09/21(水) 20:58:26
>163
でどうだった?
あとはport等ネットワークの問題だろうから
各種設定、導通テスト(こんな言葉であってるか?)等
やってみた結果も併せて書いてくれれば解るかも
(既にJAVAの域を越えてる気がするけど・・)

168デフォルトの名無しさん:2005/09/22(木) 03:08:29
public DBaccess {
Connection con; Statement stmt; ResultSet res;

public void DBopen() throws ClassNotFoundException,SQLException{
Class.forName("oracle.jdbc.driver.OracleDriver");
System.out.println("JDBCドライバOK");
con = DriverManager.getConnection("jdbc:oracle:thin:@sesvr101:1521:HOGE", "user", "pass");
System.out.println("DB接続OK");
stmt = con.createStatement();
System.out.println("StatementインタフェースOK");
}

public ResultSet DBquery()throws SQLException{
stmt = con.createStatement();
System.out.println("StatementインタフェースOK");
res = stmt.executeQuery("SELECT * FROM 社員");
System.out.println("SQL文発行OK");
res.close();
stmt.close();
return res;
}

}
public void DBclose() throws SQLException{
res.close();
stmt.close();
con.close();
System.out.println("正常終了");
}
}
といいかげんに答えてみるテスト。
169デフォルトの名無しさん:2005/09/22(木) 03:38:12
クラス宣言は?
170デフォルトの名無しさん:2005/09/22(木) 17:53:54
>>167
ムリでした
171デフォルトの名無しさん:2005/09/23(金) 19:55:27
今、次のようなクラスが定義されているとする。
package exercise;
public class Point{
  private int x,y;
  int getX(){ return x; }
  public int getY(){ return y;}
  public Point(int x0,int y0){
    x = x0;
    y = y0;
  }
}
【 課題1 】下のmoveXメソッドの定義はアクセス制限に違反しているか否か理由もつけて答えよ。
package exercise;
class Point3D extends Point{
  private int z;
  int getZ(){ return z;}
  void moveX(int dx){ x += dx;}
  Point3D(int x0,int y0){
    super(x0,y0);
  }
}
172171:2005/09/23(金) 19:56:05
【 課題2 】下のクラス定義のなかでアクセス制限に違反しているメソッドの定義を答えよ。理由は?
package question;
import exercise.Point;
public class ColorPoint extends Point{
  private String color;
  public String getColor(){ return color; }
  public int xpos(){ return getX(); }
  public int ypos(){ return getY(); }
  public ColorPoint(int x0,int y0,String c){
    super(x0,y0);
    color = c;
  }
}
【 期限 】 9月25日まで
よろしくお願いします。
173デフォルトの名無しさん:2005/09/23(金) 21:29:02
>171
Ans. 違反している。
変数xがPoint内でprivateの可視性で定義されているから、
クラスが異なるPoint3Dからは見えない。
>172
Ans. xpos()
メソッドgetX()がPoint内でデフォルトの可視性で定義されているから、
パッケージが異なるColorPointからは見えない。

コンパイルすれば分かるものを。。
174sage:2005/09/26(月) 14:39:57
【 課題 】画像の読み込み及び標本化、量子化のプログラム
【 期限 】9月28日くらいまで
【 Ver  】できれば1.4でお願いします
まったくわからないのでよろしくお願いします
175デフォルトの名無しさん:2005/09/26(月) 15:59:01
量子化、標本化の用語を説明してくだされ
176デフォルトの名無しさん:2005/09/26(月) 18:05:17
コンピュータ上で扱う画像って普通は標本化されて、RGBそれぞれ量子化されてないか?
177174:2005/09/26(月) 18:30:36
すみません、いい方がおかしかったもしれません。なんらかの画像を読み込んでその解像度を8bitにしたりといった、変換をしたいのですが・・・
178デフォルトの名無しさん:2005/09/26(月) 18:40:03
量子化レベルの変更をしたいのね
それは色?それとも表示領域?
179174:2005/09/26(月) 20:24:15
すみませんが両方ともができるものでお願いします
180デフォルトの名無しさん:2005/09/27(火) 15:23:57
1:課題
public class Hanoi
{
public static void main(String args[])throws IOException
{
BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
int disks=Integer.parseInt(input.readLine());
solveHanoi('A','B','C',disks);
System.out.println("/n/nEXECUTION TERMINATED");
}

public static void solveHanoi(char s, char t, char d, int n)
{
if(n!=0)
{
solveHanoi(s,d,t,n-1);
System.out.println("Move Disk" + n + " From Peg" + s + " to Peg " + d);
solveHanoi(t,s,d,n-1);
}
}
}
2:課題
↑のリカージョンが使われているハノイのタワー解決法のプログラムを、
ITERATIONを使ってより短くしなさい。
3:期限
10時間以内。。もしくはいつでもオッケー☆
4:ヴァージョン
特に無し
5:意見
。。。多分、PARAMETERが減ると思うのですが。。。
今自分でも解決しようとしてます。 他の場所にレスしてすみませんでした。
181デフォルトの名無しさん:2005/09/27(火) 22:58:06
【 課題 】外部データファイルから読み込んだ数値の個数と平均値を表示する。
【 期日 】本日(9/27) 23:59まで。
【 補足 】java歴一週間です。丸投げですがよろしくお願いします。
182Mb:2005/09/27(火) 23:15:03
>>181
import java.io.*;
public class mean {
  public static void main( String [] args) {
    int n = 0;
    double sum = 0.0;
    if (args.length == 0) System.exit(0);
    File file = new File(args[0]);
    try {
      BufferedReader bufRdr = new BufferedReader(new FileReader(file));
      String line;
      while ((line = bufRdr.readLine()) != null) {
        n += 1;
        sum += Double.parseDouble(line);
      }
      bufRdr.close();
    } catch (Exception e) {
      System.err.println(e.toString());
    }
    System.out.println("個数:" + n);
    System.out.println("平均値:" + (sum / n));
  }
}
183デフォルトの名無しさん:2005/09/27(火) 23:20:51
>>162
いま、そういうやり方なんだ
184デフォルトの名無しさん:2005/09/27(火) 23:32:01
祝 ウィルコムJAVA搭載
そこで宿題
MP3再生プレーヤーを作りなさい。
185デフォルトの名無しさん:2005/09/27(火) 23:44:40
え?マジで?
186デフォルトの名無しさん:2005/09/27(火) 23:50:00
test version

<html>
<HEAD><TITLE>>1-MP3</TITLE></HEAD>
<body>
<a href=">>1.mp3">ここをクリックすると再生します。</a>
</body>
187デフォルトの名無しさん:2005/09/27(火) 23:53:21
つーかウィルコムのJavaって勝ってサイトで配布できるの?
188181:2005/09/28(水) 00:10:21
>>182
どうやらちゃんとできました。どうもありがとうございます。
189デフォルトの名無しさん:2005/09/28(水) 05:32:00
180に付けたしなんですが、
ハノイのタワーは三台あって、A,B,Cにわかれています。
タワーAには下の方から大きい数字の順番に置物があって、
その置物をすべてタワーCに移動させたいんです。 ただ少し問題をややこしく
するのは、移動をしている最中に一つ以上の置物を一度に運べないことと、
タワーAからタワーBとタワーCに置物が移動している際に小さい数字の
置物は、決してその数字より大きい数字の置物の下には置けないという事です。
後から付けたししてすみませんでした。
でも、みなさんハノイのタワーは過去に習われたのではないであろうかと
思いましたので、あえて詳しい解説はつけなかったのですが。。。
190デフォルトの名無しさん:2005/09/28(水) 10:51:21
数字文字列をInteger型に変換する為のコードで

Integer i = Integer.decode("02");
これはエラーにならないのに、

Integer i = Integer.decode("09");
はNumberFormatException例外が発生するのは何故でしょうか?

当方JAVA初心者です。
191デフォルトの名無しさん:2005/09/28(水) 12:37:39
>>190
ヒント:09 って何進数表記だ?
192デフォルトの名無しさん:2005/09/28(水) 12:41:36
10進数  ・・かな?
193デフォルトの名無しさん:2005/09/28(水) 13:06:42
194190:2005/09/28(水) 13:11:17
>>191
お返事ありがとうございます
つまりDecodeは2進数、8進数、16進数を数値に変換するメソッド
ってことなんですかね?

因みに>>192違います^^;
195デフォルトの名無しさん:2005/09/28(水) 16:37:37
0x[0-9A-F][0-9A-F]*
0[0-7]*
[1-9][0-9]*
196デフォルトの名無しさん:2005/09/29(木) 01:38:53
結局16進数って事でおk?
197デフォルトの名無しさん:2005/09/29(木) 01:56:02
8進数だよ解らんのか
198デフォルトの名無しさん:2005/09/29(木) 02:15:46
わからん。もっと勉強する
199デフォルトの名無しさん:2005/09/29(木) 03:49:22
【 課題 】JAVAで年と月を入力したら、その月を表示するカレンダーを作る
【 用語 】JAVA、コマンドプロンプト上
【 期限 】9月29日 13:00分提出
【 Ver  】JAVA1,5
【 補足 】ツェラーの公式というのを使うらしいのですが、どうにもならずorz
      丸投げになります、がよろしくお願いします
200200:2005/09/29(木) 08:09:14
>>199
http://www.wikiroom.com/java/index.php?ソース貼付け
http://www.wikiroom.com/java/index.php?%A5%BD%A1%BC%A5%B9%C5%BD%C9%D5%A4%B1 (同じ)
入力値エラーチェックは一切無しだ。どうなっても知らん。
201Mb:2005/09/29(木) 08:36:03
public class Zellar {
  public static void main( String[] args ) {
    if (args.length != 2) System.exit(0);
    int year = Integer.parseInt(args[0]);
    int month = Integer.parseInt(args[1]);
    boolean is_閏 =
        (((year % 4) == 0 ) && !((year % 100) == 0)) ||
         ((year % 400) == 0);
    int days;
    if ((month == 2)) {
      days = is_閏 ? 29 : 28;
    } else {
       if ((month == 4) || (month == 6) ||
         (month == 9) || (month == 11)) {
         days = 30;
       } else {
         days = 31;
       }
    }
    System.out.println(year + " 年 " + month + "月");
    for (int day = 1;day <= days;day += 1) {
      int 星期 =
          ( year + (year / 4) - (year / 100) + (year / 400) +
           ((13 * month + 8) / 5) + day ) % 7;
      if (星期 == 0) {
        System.out.println(day + "日(星期天)");
      } else {
        System.out.println(day + "日(星期" + 星期 + ")");
      }
    }
  }
}
202199:2005/09/29(木) 10:20:32
ありがとうございましたorz
これでどうにかなりそうです
203デフォルトの名無しさん:2005/09/29(木) 13:24:16
>>198
"09"を8進数として処理しようとするけど、8進数の数字じゃないので例外が出る
ちなみにC/C++/Javaで"0"は8進数の"0"であって10進数の"0"ではない
204デフォルトの名無しさん:2005/09/29(木) 13:45:16
【 課題 】javaを使って画像処理技術の視覚化しなさい
 
【 用語 】なし
【 期限 】2005/9/30 午前10時
【 Ver  】指定なし
【 補足 】http://www.image.esys.tsukuba.ac.jp/javaimage/
      にあるようなものをつくりたいです.
      ここまで高度でなくてもいいので任意に画像を標本化して
      2値画像などにできるようにしたいです.
      丸投げになりますがおねがいします
205デフォルトの名無しさん:2005/09/29(木) 13:54:38
【 課題 】Javaを使って画像処理技術の視覚化をする(例:濃度変換,フィルタ処理等)
【 用語 】Java コマンドプロンプト上
【 期限 】9/30 15:00
【 Ver  】指定なし
【 補足 】アプレットのようなものを作ればいいと思ってるのですが・・・

206短いからここにはるよ:2005/09/29(木) 15:02:14
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.*;
import java.io.*;

import javax.imageio.ImageIO;
import javax.swing.*;

public class ImageFilterPane extends JPanel implements ActionListener {
public static void main(String[] args) throws IOException { //args[0] : FileName
//読み込む (ImageIO 使ってるので 1.4以降 でないと動きまへん)
FileInputStream in = new FileInputStream(args[0]);
BufferedImage img = ImageIO.read(in);
in.close();

//フレーム表示
JFrame f = new JFrame();
f.getContentPane().setLayout(new BorderLayout());
f.getContentPane().add(new ImageFilterPane(img), BorderLayout.CENTER);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.pack();
f.setVisible(true);
}
207短いからここにはるよ:2005/09/29(木) 15:02:23
private JComboBox choice;
private BufferedImage src;
private JLabel dest;

public ImageFilterPane(BufferedImage src) {
this.src = src;

choice = new JComboBox();
choice.addItem(new CurveFilter());
choice.addItem(new BWFilter());
choice.addItem(new XFilter()); //その他、新たに作って足せばよろしい
choice.addActionListener(this);

JPanel filters = new JPanel(new FlowLayout());
filters.add(choice);

dest = new JLabel(new ImageIcon(src));

setLayout(new BorderLayout());
add(new JLabel(new ImageIcon(src)), BorderLayout.NORTH);
add(filters, BorderLayout.CENTER);
add(dest, BorderLayout.SOUTH);
}

public void actionPerformed(ActionEvent ev) { //JComboBox の選択動作で呼ばれる
RGBImageFilter filter = (RGBImageFilter)choice.getSelectedItem();
Image img = createImage(new FilteredImageSource(src.getSource(), filter));
dest.setIcon(new ImageIcon(img));
}
208短いからここにはるよ:2005/09/29(木) 15:02:51
private class CurveFilter extends RGBImageFilter {
public String toString() {
return "コントラスト明瞭化"; //JComboBox が表示する
}

public int filterRGB(int x, int y, int rgb) {
//彩度のみをいじるため、RGB -> HSB 変換
int r = (rgb >> 16) & 0xff;
int g = (rgb >> 8) & 0xff;
int b = rgb & 0xff;
float[] hsb = Color.RGBtoHSB(r, g, b, null);
float s = hsb[1];

//3次式なトーンカーブを通す
if (s < 0.5) {
s = (float)Math.pow(s*2, 3)/2;
} else {
s = 1-(float)Math.pow((1-s)*2, 3)/2;
}

//RGB に戻す
return 0xff000000 | Color.HSBtoRGB(hsb[0], s, hsb[2]);
}
}
209短いからここにはるよ:2005/09/29(木) 15:03:31
private class BWFilter extends RGBImageFilter {
public String toString() {
return "2値化"; //JComboBox が表示する
}

public int filterRGB(int x, int y, int rgb) {
//rgb -> gray
int r = (rgb >> 16) & 0xff;
int g = (rgb >> 8) & 0xff;
int b = rgb & 0xff;
int gray = (int)( 0.298912 * r + 0.586611 * g + 0.114478 * b );
//閾値は 50% グレー
return (gray < 0x80 ? 0xff000000 : 0xffffffff);
}
}
210短いからここにはるよ:2005/09/29(木) 15:05:03
private class XFilter extends RGBImageFilter {
public String toString() { return "ぼかし"; }

public int filterRGB(int x, int y, int rgb) {
int c = 0, r = 0, g = 0, b = 0;
//他店を src から拾ってきて 5x5 の正方配列の平均
for (int dx=Math.max(0, x-4); dx<=Math.min(src.getWidth()-1, x+4); dx++) {
for (int dy=Math.max(0, y-4); dy<=Math.min(src.getHeight()-1, y+4); dy++) {
rgb = src.getRGB(dx, dy);
r += (rgb >> 16) & 0xff;
g += (rgb >> 8) & 0xff;
b += rgb & 0xff;
c++;
}
}
r /= c;
g /= c;
b /= c;
return 0xff000000 | (r << 16) | (g << 8) | b;
}
}

//その他 filterRGB メソッドを書けばいろいろできる
}

1.4 (つまりImageIO)が使ってまずいとすれば、
ぼかしをするには別の方法が必要だけどどないやろ? Ver 指定無しだから大丈夫かな?
211デフォルトの名無しさん:2005/09/29(木) 15:15:00
5x5 じゃないね
あといろいろ誤字とかあるけど動くは動くから気にしないでね
もっと一般的なフィルタアルゴリズムがあったら誰か適当に足してちょ
212デフォルトの名無しさん:2005/09/29(木) 15:34:20
>>211
ひとまずコンパイルはできましたがエラーがでて実行できません
実行の仕方を詳しくお願いします
あとVer1.4でした
213デフォルトの名無しさん:2005/09/29(木) 15:48:42
何てエラーが出たかコピペしてよ ○○Exception つー断片でもいいから

実行は
> java ImageFilterPane hoge.jpg
とか。カレントディレクトリに hoge.jpg があればいけるはず。
D:\hoge.jpg とかのフルパスでもいいよ
214デフォルトの名無しさん:2005/09/29(木) 16:02:46
>>211
実行できました
ありがとうございます
お手数おかけしました
215デフォルトの名無しさん:2005/09/29(木) 16:15:24
>>213
2つ目の2値化の部分なんですが、今の状態で2階調のような気がしますが
それをもう少し32階調16階調などにするためにはどこをどういう風にいじればいいのでしょうか?
216デフォルトの名無しさん:2005/09/29(木) 17:15:32
private class GrayFilter extends RGBImageFilter {
private int step;
public GrayFilter(int step) { this.step = step; }
public String toString() { return step + "階調グレースケール"; }
public int filterRGB(int x, int y, int rgb) {
//rgb -> gray
int r = (rgb >> 16) & 0xff;
int g = (rgb >> 8) & 0xff;
int b = rgb & 0xff;
int gray = (int)( 0.298912 * r + 0.586611 * g + 0.114478 * b );
//階調化
int w = 256/(step - 1);
gray = Math.min(0xff, ((gray + w/2)/w)*w);
return 0xff000000 | (gray * 0x010101); //rgb 値それぞれに設定
}
}

choice.addItem(new GrayFilter(32)); とかして足す。
BWFilter の代わりに new GrayFilter(2) にしてもいい。

あと、CurveFilter はコントラストじゃなくて彩度の明瞭化だねこれ。
コントラストは
s = hsb[2];
... | Color.HSBtoRGB(hsb[0], hsb[1], s);
とかしてくらはい。
217デフォルトの名無しさん:2005/09/29(木) 17:42:47
これ見てるとJavaって便利になったよな
218デフォルトの名無しさん:2005/09/29(木) 18:16:55
コマンドライン引数
応用問題1
コマンドラインから数字と演算子を入力し計算結果を出力するプログラム
を作成せよ
(+とーのみにする)ただし、引数が不足している場合はエラーメッセージ
を出力して処理を終了させる

実行例 java cale 10+2

これのソースわかる人いる?
219デフォルトの名無しさん:2005/09/29(木) 22:46:39
【問題】
次にテキストファイルの指示に従って問題を答えなさい。
http://ce.fake.ne.jp/whats.txt

改行多くて書けなかった
220デフォルトの名無しさん:2005/09/29(木) 22:58:31
221デフォルトの名無しさん:2005/09/29(木) 23:13:43
>>219
それ本当に宿題か?
222デフォルトの名無しさん:2005/09/29(木) 23:21:09
>>219
音楽再生が再突入した場合に対応できないAudioPresenterクラスの設計が拙い

よって該当ソースを修正する必要はない
223デフォルトの名無しさん:2005/09/30(金) 12:26:37
>>204
サンプルがあるならjodeとかJadclipseで逆コンパイルしてみたら。
224デフォルトの名無しさん:2005/09/30(金) 12:57:38
【課題提示用テンプレ】
【 課題 】javaをつかってAD変換の様子が分かるようにしなさい.
【 用語 】
【 期限 】2005年10月2日
【 Ver  】バージョン1.4
【 補足 】ttp://laputa.cs.shinshu-u.ac.jp/~yizawa/InfSys1/basic/chap1/index.htm
      ここにあるディジタル処理というアプレットのようなものができれば
      いいと思うのですが.丸投げですいませんが分かる方お願いします.
      このjavaはアプレットですが,コマンドプロンプトで動作させること
      ができればコマンドプロンプトでおねがいします.
225デフォルトの名無しさん:2005/09/30(金) 14:58:06
>>203
亀ですまんけど、嘘教えるなよー。

少なくとも Java において 0 は常に 10 進数だよ。
226デフォルトの名無しさん:2005/09/30(金) 15:05:18
>225
>203は言葉足らずなだけじゃないか?
数字の最初に 0 がある場合は8進数をあらわしてるわけで、
この場合は普通の数字としての 0 じゃない。
つまり、10進数の 0 じゃなくって、
8進数をあらわす 0 ってことがいいたかっただけジャマイカ?
227227:2005/09/30(金) 15:20:23
import java.io.*;
import java.net.*;
interface Constant {
int port=49152;
String msg="Naoshi has received your message.";
}
class Greeting implements Constant {
public static void main(String arg[])
throws UnknownHostException,SocketException,IOException{
Inet6Address toaddr = Inet6Address.getByName(arg[0]);
Server s=new Server();
s.start();
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
String line;
DatagramPacket pack;
DatagramSocket dgram = new DatagramSocket();
while((line=br.readLine())!=null){
byte data[]=line.getBytes();
pack = new DatagramPacket
(data, data.length, toaddr, port);
dgram.send(pack);
}
dgram.close();
s.halt();
}
}


228227:2005/09/30(金) 15:22:07
【 課題 】IPv6でも動作するように改良しなさい
【 用語 】
【 期限 】2005年10月2日
【 補足 】InetAddressのところに6を入れた状態で掲載しましたが、
      それでもIPv6では動作しませんでした
229デフォルトの名無しさん:2005/10/02(日) 05:20:15
【課題】時計作成
    ・GUIで作成(Windows上で動作するように作成すればウィジットは問わない)
    ・デジタル/アナログは問わない。
    ・表示誤差は極力無くなるようにすること。
【用語】 なし
【期限】10/3のAM7:00まで
【Ver 】JDK1.4.2
【補足】丸投げです。自分では無理でしたorz
     どうか宜しくお願いします。
230デフォルトの名無しさん:2005/10/02(日) 07:41:08
>>229 Q229.java
import java.awt.*; import java.awt.event.*; import java.util.Date; import javax.swing.*;
public class Q229 {
public static void main(String[] args) {
final JFrame frame = new JFrame("ClockPanel");
JClockPanel panel = new JClockPanel();
Timer timer = new Timer(1000, new ActionListener() {
public void actionPerformed(ActionEvent e) {
frame.repaint();
}
});
Container cp = frame.getContentPane();
cp.setLayout(new BorderLayout());
cp.add(panel, "Center");
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
frame.setSize(200, 100);
frame.setVisible(true);
timer.start();
}
}
class JClockPanel extends JPanel {
protected void paintComponent(Graphics g) {
Date date = new Date();
int x = 0;
int y = g.getFontMetrics().getHeight();
g.drawString(date.toString(), x, y);
}
}
231デフォルトの名無しさん:2005/10/02(日) 09:15:14
>230
5.0だと確かに動くけど、1.4だとrepaint()してなくない?
// Clock.java
import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Clock extends JFrame implements Runnable {
JLabel label;
public Clock() {
label = new JLabel( "00:00:00" );
getContentPane().add( label );
}
public static void main(String[] args) {
Clock self = new Clock();
new Thread( self ).start();
self.setTitle( "Clock" );
self.setSize( 100, 50 );
self.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
self.setVisible(true);
}
public void run() {
SimpleDateFormat formatter = new SimpleDateFormat( "HH:mm:ss" );
while( true ) {
try {
label.setText( formatter.format( new GregorianCalendar().getTime() ) );
Thread.sleep(1000);
} catch( InterruptedException ie ) {
}
}
}
}
232デフォルトの名無しさん:2005/10/02(日) 11:18:09
【 課題 】
「英語の文を解析し、その文に含まれる単語の長さと平均を求めるプログラムを作成せよ。」
1、概要
  @適当な文字列変数に英語の文を代入する。
  例:String sentence = new Stirng("This is a pen.”)
  Aプログラムを実行すると、その文における各単語の長さと平均を表示する。
2、プログラムの条件
  英語の文章は、「.」 「!」 「?」で終わっているものとする。また、単語の区切りは
  1文字分の空白に限定してよい。
3、プログラムの動作例
  次の1文を入力する:Do you love me? その出力結果は次のとおり。

  単語数 :4
  平均語長:2.75
  語長   単語数
   1     0
   2     2
   3     1
   4     1   
   5     0

【 期限 】10月3日午前0時
【 Ver  】1.5
【 補足 】英文はキーボード入力です。
       丸投げですがよろしくお願いします。
233デフォルトの名無しさん:2005/10/02(日) 14:37:33
>>232
public class Q232 {
private static final String sentence = "Do you love me?";

public static void main(String[] args) {
if (!sentence.matches(".*[\\.\\?!]")) {
System.err.println("英語の文章は、「.」 「!」 「?」で終わっているものとする");
System.exit(0);
}
String[] list = sentence.split("[\\.\\?!]")[0].split(" ");
int max = 0, totalLength = 0;
for (String str : list)
if (str.length() > max) max = str.length();
int[] wordLengthList = new int[max];
for (String str : list) {
totalLength += str.length();
wordLengthList[str.length() - 1]++;
}
System.out.printf("単語数: %d\n平均語長: %.2f\n語長\t単語数\n", list.length, (double) totalLength / list.length);
for (int i = 0; i < wordLengthList.length; i++)
System.out.printf("%d\t%d\n", i + 1, wordLengthList[i]);
}
}

実行結果
単語数: 4
平均語長: 2.75
語長単語数
10
22
31
41
234233:2005/10/02(日) 14:39:21
>>233
実行結果のTABが消えとるw

単語数: 4
平均語長: 2.75
語長    単語数
1       0
2       2
3       1
4       1
235デフォルトの名無しさん:2005/10/02(日) 14:39:43
>>233
英文はキーボード入力なんじゃないの?
236デフォルトの名無しさん:2005/10/02(日) 14:54:35
>>235
1、概要
  (1)適当な文字列変数に英語の文を代入する。
  例:String sentence = new Stirng("This is a pen.”)
  (2)プログラムを実行すると、その文における各単語の長さと平均を表示する。
とあるんだけど…

とりあえずコンソールからの入力の場合

import java.io.*;
public class Q232 {
public static void main(String[] args) throws IOException {
String sentence = new BufferedReader(new InputStreamReader(System.in)).readLine();
if (!sentence.matches(".*[\\.\\?!]")) {
// 以下略

これは動作確認してませんが
237229:2005/10/02(日) 17:48:49
>>231さんので動きました。
230さん231さん考えてくれてた方
本気で有難う御座いました。
本気で助かりました。
238232:2005/10/02(日) 18:03:36
>>233さん
レスありがとうございます。
233,236の両方とも無事動きました。
ちょっと課題が分かりにくかったようですいません。
本当にありがとうございました。助かりました。

239デフォルトの名無しさん:2005/10/05(水) 02:08:38
【 課題 】JSPで掲示板を作るときにデータベースの処理を担う部分
【 用語 】なし
【 期限 】10月7日まで
【 Ver  】指定なし
【 補足 】サンプルプログラムですが、なにも改造しないままエラーが4つもでるという悲惨な状況です。
      問題点というかなぜエラーがでるのかがわかりません。
      コンパイルできるようにしたいです。
240239:2005/10/05(水) 02:10:08
以下は BBSModel.java の内容です。

package jspbean;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Vector;
import java.util.Hashtable;

public class BBSModel {

private int mCurrentArticleIndex;
private Article mCurrentArticle;
private Vector mArticles;

DBSimpleInterface mDB;

public BBSModel() {
mDB = new DBSimpleInterface();
}

private void dbConnect() {
mDB.connect(
"org.gjt.mm.mysql.Driver",
"jdbc:mysql://localhost:3306/bbs?useUnicode=true&characterEncoding=Shift_JIS",
"root",
""
);
}
241239:2005/10/05(水) 02:11:00
public boolean nextArticle() {
if (setCurrentArticle(mCurrentArticleIndex)) {
mCurrentArticleIndex++;
return true;
}
return false;
}

public boolean setCurrentArticle(int index) {
if (mArticles == null || mArticles.size() <= index) {
return false;
}
Hashtable article = (Hashtable)mArticles.get(index);
int id = ((Integer)article.get("id")).intValue();
String title = (String)article.get("title");
String name = (String)article.get("name");
String mail = (String)article.get("mail");
String date = new SimpleDateFormat().format((Date)article.get("date"));
String body = (String)article.get("body");
mCurrentArticle = new Article(id, title, name, mail, date, body);
mCurrentArticleIndex = index;
return true;
}
}

よろしくお願いします。
242デフォルトの名無しさん:2005/10/05(水) 02:33:20
>>239
Interfaceでないなら、xxxxInterfaceなんて付けるな
もし、ほんとにInterfaceならnewできないぞ

DBSimpleInterface mDB;

public BBSModel() {
mDB = new DBSimpleInterface();
}
243デフォルトの名無しさん:2005/10/07(金) 10:00:05
【 課題 】クラスがStudent(public) インスタンス変数がname
      インスタンスメソッドがprintName

      クラスがSeminar
      ゼミのメンバーを2人作る(名前を入れる・初期化する)
      プリントアウトする

【 期限 】今日の午後2時まで

【 補足 】丸投げでお願いします あとゼミの宿題です
       これが詳しく書ける限界ですみません
244243:2005/10/07(金) 10:01:10
あと急すぎて本当にごめんなさい
245デフォルトの名無しさん:2005/10/07(金) 11:00:13
>>243
適当だがこーいうことか?

// Student.java

public class Student
{
private String name ;
public Student( String name ) {
this.name = name ;
}

public void printName() {
System.out.println(name) ;
}
}

// Seminar.java

public Seminar
{
public static void main( String[] args ) {
Student member1 = new Student("名前1") ;
Student member2 = new Student("名前2") ;
member1.printName() ;
member2.printName() ;
}
}
246243:2005/10/07(金) 12:45:35
>>245
そうです、ありがとうございます!
あとコンパイルしようとしたらclass interfaceがありませんと言われたのですが・・・・・・
247デフォルトの名無しさん:2005/10/08(土) 20:13:05
>>246
public Seminar{
という行の public と Seminar の間に
「 class 」を入れる。
248デフォルトの名無しさん:2005/10/09(日) 22:53:34
>>247
ありがとうございます
249243:2005/10/09(日) 22:54:14
>>248はわたしです
250デフォルトの名無しさん:2005/10/09(日) 23:13:06
>>250はわたしです
251デフォルトの名無しさん:2005/10/09(日) 23:33:59
>>252はたわしです
252たわし:2005/10/09(日) 23:39:53

  ..,,,,.,.,,
 ミ・д・ミ
  "''''''"
253デフォルトの名無しさん:2005/10/11(火) 02:30:08
【 課題 】タブを2つ付くって、その中にそれぞれボタングループとチェックボックスを作る。

【 期限 】朝まで。

【 補足 】基本的にまだGUIとかSwingとかを理解できてません。
      API見ながらやれと言われたのですが、APIを読んでも理解できるほどjavaの理解度がまだありません。
      かなり初歩的なところでつまづいています。
      持ってる本には参考にできる記述が無いので困ってます。
      とりあえず見本みたいなのが欲しいです。お願いします。

254デフォルトの名無しさん:2005/10/11(火) 04:09:55
【 課題 】ある配列Aに格納されている要素をx1,x2,・・・xnとした時、その平均aと分散s
      は以下の式で計算できる。
      
      a=1/n*Σ[i=1,n]xi

      s=√1/n*Σ[i=1,n](xi-a)^2

      この時以下の問いに答えよ。
      
      1.int型の配列を受け取りその平均をdouble型で返すメソッドaverageを作成せよ
      2.int型の配列を受け取りその分散をdouble型で返すメソッドvarianceを作成せよ
      3.上記二つのメソッドの動作を確認するmainメソッドを作成し実行せよ。 

【 期限 】朝

【 補足 】どうにもメソッドの関係がわからなくて、配列を作って
      どう利用すればいいのかとかがさっぱりです。
      配列を受け取る時のpublic static double average()の()の中とか全くわからないので・・・
      参考例をどうかお願いします。
255デフォルトの名無しさん:2005/10/11(火) 05:51:01
>>253
朝は時間ないんで適当だ、すまん。
import javax.swing.*;
public class Sample extends JTabbedPane{
private static final String[][] sampleStrings={
{"これらは","タブペイン","ボタングループ","チェックボックスの","サンプルです"},
{"この課題は","2ちゃんねる","プログラム板の","Javaの宿題個々で答えますスレに","丸投げされました"}};
public static void main(String[] args){
JFrame frame=new JFrame( "課題");
Sample sample=new Sample();
sample.addTab("タブ1",sample.getTabPanel(sampleStrings[0]));
sample.addTab("タブ2",sample.getTabPanel(sampleStrings[1]));
frame.getContentPane().add(sample);
frame.pack();
frame.setVisible(true);
}
private JPanel getTabPanel(String[] checkBoxText){
JPanel panel =new JPanel();
panel.setLayout(new BoxLayout(panel,BoxLayout.Y_AXIS));
ButtonGroup group =new ButtonGroup();
for(int roop=0;roop<checkBoxText.length;roop++){
JCheckBox checkBox=new JCheckBox(checkBoxText[roop]);
group.add(checkBox);
panel.add(checkBox);
}
return panel;
}
}
256253:2005/10/11(火) 05:59:59
>>255
時間ないところ本当にありがとうございます(つД`)
参考にさせていただきます!
ありがとうございました!!
257デフォルトの名無しさん:2005/10/11(火) 11:11:50
>>254
public class Main{
public static void main(String[] args){
int[] input={0,1,2,3,4,5,6,7,8,9};
System.out.println("Ave = "+average(intput));
System.out.println("Var = "+variance(intput));
}
public static double average(int[] array){
double sum=0.0;
int n=array.size();
for(int i=0;i<n;i++)sum+=array[i];
return(sum/n);
}
public static double variance(int[] array){
double ave=average(array);
int n=array.size();
double sum=0.0;
for(int i=0;i<n;i++)sum+=(array[i]-ave)*(array[i]-ave);
return(sum/n);
}
}
258デフォルトの名無しさん:2005/10/11(火) 15:27:50
【 課題 】 xmlファイルを読み込み、特定のタグで囲まれた要素のみを画面に表示せよ。
例)test.xmlを読み込んでtitleとnameタグの要素を表示。
<title>あい</title>
<neme>うえお</name>
標準出力)あい
うえお
のような感じに表示させる。
【 用語 】
【 期限 】10/12
【 Ver  】1.5以降
【 補足 】ゼミの課題です、よろしくお願いします
259デフォルトの名無しさん:2005/10/11(火) 16:04:57
【 課題 】以下の出力結果になるよう、プログラムを組め。ただし、入力する数値は整数で、3480は$34.80、70は$0.70と表示されるようにせよ。

Purchase Price: $ 34.80
Amount Tendered: $ 40.00

Your change is: $ 5.20

5 one-dollar bill(s)
0 quarter(s)
2 dime(s)
0 nickel(s)
0 penn(y/ies)

Thank you for your business. Come back soon.


【 用語 】one-dollar bill〜Pennyはアメリカで使われている通貨です。quarterは¢25、dimeは¢10、nickelは¢5、pennyは¢1です。
【 期限 】10/12
【 Ver  】1.5以降 コンパイラはBorland JBuilder 2005 Foundation ver11.0を使用。
【 補足 】Integerを使えと言われました。プログラムの内容としては、Amount Tendered - Purchase Price = Your change を出して、
      そのchange(お釣り)を、下のそれぞれの小銭に分担するというプログラムです。
      この場合は、$5.20のお釣りなので、5枚one-dollor billがあり、2枚dime(¢10)があるという事です。
      なので、$3.36の場合は3枚one-dollor bill、1枚quarter、2枚dime、1枚pennyという風に出力されます。
      これらの出力には、$5.20の場合、520と認識させて520/100で5枚のone-dollor bill、520%100で20なので、
      20/10で2枚のdimeという事になります。

よろしくお願いします。
260259:2005/10/11(火) 16:54:49
一応、自分で打ってみたのですが、Integerの使い方、
「$5.20のお釣りなので、5枚one-dollor billがあり、2枚dime(¢10)」といった分担が出来ません。
書いたソースを貼り付けておきます。

package dollars;

//Development Exercises 24.

import javax.swing.*;
import java.util.*;
import java.text.*;

public class changedollors {
public static void main(String[] args) {

double yourMoney, yourBought, yourChange;
double dollar, dollar2, dollar3, dollar4, dollar5, dollar6, dollar7, dollar8, dollar9;

String strmoney;
String strbought;
String strchange;


strmoney = JOptionPane.showInputDialog (null, "Enter your purchase Price" );
strbought = JOptionPane.showInputDialog (null, "Enter your Amount Tendered" );

yourMoney = Double.parseDouble(strmoney);
yourBought = Double.parseDouble(strbought);
261259:2005/10/11(火) 16:55:25
yourChange = yourBought - yourMoney;
dollar = yourChange / 100;
dollar2 = yourChange % 100;
dollar3 = dollar2 / 25;
dollar4 = dollar2 % 25;
dollar5 = dollar3 / 10;
dollar6 = dollar3 % 10;
dollar7 = dollar5 / 5;
dollar8 = dollar5 % 5;
dollar9 = dollar5 / 1;

System.out.println("*********************************************");
System.out.println("Purchase Price: $" +(yourMoney));
System.out.println("Amount Tendered: $" +(yourBought));
System.out.println(" ");
System.out.println("Your change is: $" +(yourChange));
System.out.println(" ");
System.out.println(" " +(dollar)+ "one-dollar bill(s)");
System.out.println(" " +(dollar3)+ "quarter(s)");
System.out.println(" " +(dollar5)+ "dime(s)");
System.out.println(" " +(dollar7)+ "nickel(s)");
System.out.println(" " +(dollar9)+ "penn(y/ies)");
System.out.println(" ");
System.out.println("Thank you for your business. Come back soon.");
System.out.println("*********************************************");
}
}
262259:2005/10/11(火) 16:56:06
出力結果。

*********************************************

Purchase Price: $3480.0

Amount Tendered: $4000.0



Your change is: $520.0



5.2one-dollar bill(s)

0.8quarter(s)

0.08dime(s)

0.016nickel(s)

0.08penn(y/ies)



Thank you for your business. Come back soon.

*********************************************
263デフォルトの名無しさん:2005/10/11(火) 18:25:38
そこまでできてるならこれだけ貼れば分かるかな? doller なんちゃらは全部要らない。
Integer の使いどころがないな・・・ int じゃなくて?

int yourMoney, yourBought;
//セント単位で入力

System.out.println("Purchase Price: $" +(yourMoney/100.0)); //とか

int[] units = {
100, 25, 10, 5, 1
};
String[] names = {
"one-dollar bill(s)", "quarter(s)", "dime(s)", "nickel(s)", "penn(y/ies)"
};

int rest = yourChange; //全部ペニーだとして・・・

int i = 0; //両替対象の紙幣〜硬貨の index
while (rest > 0) {
int (rest >= units[i]) { //両替対象以上の枚数があれば換算可能
int count = rest/units[i];//両替対象の枚数
rest = rest%units[i]; //両替しきれなかったペニーの枚数にする
System.out.println(count + "枚" + names[i]);
}
}

0枚の場合も表示したければ、for を使って if も while も使わない感じ・・
264259:2005/10/12(水) 00:38:37
>>263
ご指導ありがとうございます。
ただ、まだunitsや、for、if、while文は習っていないので、
それらを使わずに「520と認識させて520/100で5枚のone-dollor bill、520%100で20なので〜」
という風に出力しろとの事です。
265デフォルトの名無しさん:2005/10/12(水) 02:40:57
>>259
263 を配列とループを使わずに展開しただけこれなら問題ないのか?
int units0=100;
int units1=25;
int units2=10;
int units3=5;
int units4=1;
String names0="one-dollar bill(s)";
String names1="quarter(s)";
String names2="dime(s)";
String names3="nickel(s)";
String names4="penn(y/ies)";
int rest = yourChange;
count = rest/units0;
rest = rest%units0;
System.out.println(count + "枚" + names0);
count = rest/units1;
rest = rest%units1;
System.out.println(count + "枚" + names1);
....
同様にunits2 -> units4 , names2 -> names4 まで展開。

習っていないので使ってはいけません。って文部省教育の弊害だな。
ゼミなんだから、「自分はさらに調べた。こちらの方法のほうがより効率的に書け美しい」とか発展してもよさそうだが・・・。
266デフォルトの名無しさん:2005/10/12(水) 03:18:03
>>258
import javax.xml.parsers.*;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import java.io.*;
class Main{
public static void main(String args[])throws Exception{
SAXParserFactory.newInstance().newSAXParser().parse(new File("test.xml"),new MyParser());
}
}
class MyParser extends DefaultHandler {
private final static String[] target={"title","name"};
private boolean print;
MyParser(){super();}
public void startDocument() {}
public void startElement(String uri,String localName,String qName,Attributes attributes){
print=false;
for(int i=0;i<target.length;i++){
if(qName.compareToIgnoreCase(target[i]) == 0){
print=true;
break;
}
}
}
public void characters(char[] ch,int offset,int length) {if(print)System.out.println(new String(ch, offset, length));}
public void endElement(String uri,String localName,String qName){print=false;}
public void endDocument() {}
}
267259:2005/10/12(水) 05:29:09
>>265
申し訳ないのですが、ソース解答の丸投げをしてはいただけないでしょうか。
補足してもらったソースと自分で書いたソースを合わせたら、何度書き直してもエラーを吐いてきます。
268259:2005/10/12(水) 06:38:13
一応、265さんのソースを元にして自分で書き直してみたソースを貼っておきます。

package dollars;

import javax.swing.*;
import java.util.*;
import java.text.*;

public class changedollars {
public static void main(String[] args) {
changedollars changedollars = new changedollars();

int yourMoney, yourBought, yourChange;
int onebill, onebill2, qua, qua2, dime, dime2, nic, nic2, penn;

String strmoney, strbought, strchange;

strmoney = JOptionPane.showInputDialog(null, "Enter the your purchase Price");
strbought = JOptionPane.showInputDialog(null, "Enter the your Amount Tendered");

yourMoney = Integer.parseInt(strmoney);
yourBought = Integer.parseInt(strbought);

yourChange = yourBought - yourMoney;
269259:2005/10/12(水) 06:39:17
onebill = yourChange / 100;
onebill2 = yourChange % 100;
qua = onebill2 / 25;
qua2 = onebill2 % 25;
dime = qua2 / 10;
dime2 = qua2 % 10;
nic = dime2 / 5;
nic2 = dime2 % 5;
penn = nic2 / 1;

System.out.println("***********************************************");
System.out.println("Purchase Price: $" +(yourMoney));
System.out.println("Amount Tendered $" +(yourBought));
System.out.println(" ");
System.out.println("Your change is: $" +(yourChange));
System.out.println(" ");
System.out.println(" " +(onebill)+ " one-dollar bill(s)");
System.out.println(" " +(qua)+ " quarter(s)");
System.out.println(" " +(dime)+ " dime(s)");
System.out.println(" " +(nic)+ " nickel(s)");
System.out.println(" " +(penn)+ " penn(y/ies)");
System.out.println(" ");
System.out.println("Thank you for your business. Come back soon.");
System.out.println("***********************************************");

}
}
270259:2005/10/12(水) 06:43:27
出力結果。

***********************************************
Purchase Price: $3480
Amount Tendered $4000

Your change is: $520

5 one-dollar bill(s)
0 quarter(s)
2 dime(s)
0 nickel(s)
0 penn(y/ies)

Thank you for your business. Come back soon.
***********************************************

※Your change is: $520 から下は課題の出力結果と合っているのですが、
Purchase Price: $3480、Amount Tendered $4000、Your change is: $520を、
それぞれ、Purchase Price: $34.80、Amount Tendered $40.00、Your change is: $5.20
と表示されるようにしたいのですが、どのようにすれば出来るのでしょうか?
色々やってみたのですが、int yourMoney, yourBought, yourChange;を
double yourMoney, yourBought, yourChange; にすると、
onebill = yourChange / 100;
onebill2 = yourChange % 100;
のところがエラーを吐きます。
271デフォルトの名無しさん:2005/10/12(水) 10:17:45
変数は int のままでいい。
出力するときに
System.out.println("Purchase Price: $" +(yourMoney/100.0));
とすればいい。計算中に double が現れると、結果も double になる。
(double の結果を int 変数に入れようとするからコンパイルエラーになっている)

ただこれだと x.x0 のようにはならず x.x と 0 がはぶかれるので、どうしても 0つけたければ、
(yourMoney/100) + "." + ((yourMoney%100)/10) + (yourMoney%10)
みたいなことをせにゃならん。つまり一桁づつ作るわけ。
(ほんとはもっと流儀に沿ったやり方があるが「習ってない」だろうから避けておこう)
272デフォルトの名無しさん:2005/10/12(水) 10:18:24
×  x.x と 0 が
○  x.x となり 0 が
273259:2005/10/12(水) 12:15:21
>>271
ありがとうございました。
完璧に仕上がりました。
274デフォルトの名無しさん:2005/10/12(水) 12:28:39
あ、小数点以下は (yourMoney%100) でもいいのかな。
できたようだからまぁいいか。
275デフォルトの名無しさん:2005/10/12(水) 16:03:46
はじめまして。JAVA(Swing)で15パズル(スライドパズル)を作る課題が出ました。
どなたか教えてください。
276デフォルトの名無しさん:2005/10/12(水) 16:07:21
>>275
【課題提示用テンプレ】
【 課題 】与えられた課題文をそのまま書きます 《必須》
【 用語 】数学用語、専門用語の意味、説明を書きます 《あれば必須》
【 期限 】提出期限、又は解答希望日を書きます
【 Ver  】希望するJavaバージョンがあれば書きます(1.5 とか 1.4以前とか)
【 補足 】課題について自分なりに補足する事、何か思う事があれば書きます。
       丸投げでない場合は、途中までのソースとその経過報告、
       質問点、疑問点を書きます(なるべく丸投げにしてください)
277275:2005/10/12(水) 16:20:53
【 課題 】15Puzzle。
4×4の升目状の絵合わせパズル。
正方形に近い画像データを4×4の16個のピースに分割し、
右下のピースを取り除いた残りのピースをランダムに升目に配置する。
ピースが割り当てられていない場所の上下左右のピースをクリックすると、
そのピースが空白の場所へ移動し、ピースの場所は空白になる。
ピースを並べ直して、元の画像が再現できればパズルが完成する。
【 期限 】10月18日
【 補足 】JAVA Swing Application

よろしくお願いします。
278デフォルトの名無しさん:2005/10/12(水) 17:05:41
>>277
画像形式はビットマップ?
279277:2005/10/12(水) 17:24:09
>>278
特に指定はありませんでした。
280デフォルトの名無しさん:2005/10/12(水) 18:41:48
278 は作ってんの?
俺できたけど、277 が質問スレで言ってた状況にしては奇抜な発想のになっちゃった・・・
いいのかなこんなんで
その辺に関して親切なのを 278 が作ってるなら、よろしく
281278:2005/10/12(水) 20:39:08
スマン、聞いてみただけだ
282デフォルトの名無しさん:2005/10/12(水) 22:43:07
じゃ、まず貼っちゃおう
import java.awt.Component;
import java.awt.GridLayout;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.util.*;

import javax.imageio.ImageIO;
import javax.swing.*;
import javax.swing.border.*;

public class P15 extends JPanel implements ActionListener {

public static void main(String[] args) throws Exception {
JFileChooser chooser = new JFileChooser();
if (chooser.showOpenDialog(JOptionPane.getRootFrame()) == JFileChooser.APPROVE_OPTION) {
BufferedImage img = ImageIO.read(chooser.getSelectedFile());
JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), new P15(img), "", JOptionPane.PLAIN_MESSAGE);
}
System.exit(0);
}
283デフォルトの名無しさん:2005/10/12(水) 22:43:45
private JButton[] buttons;
private JLabel empty;

public P15(BufferedImage img) {
setLayout(new GridLayout(4, 4)); //4x4で配置する
int w = img.getWidth()/4, h = img.getHeight()/4; //1ピースの縦横サイズ
Border border = new EmptyBorder(0, 0, 0, 0); //邪魔なエッジを外すための Border

buttons = new JButton[15]; //画像部分(右下は要らないので 4x4 - 1個)
for (int i=0; i<buttons.length; i++) { //左上から水平方向に作り、かつ配置する
int x = (i%4)*w, y = (i/4)*h; //部分画像を表示するボタンを作成(x, yは画像の座標値)
buttons[i] = new JButton(new ImageIcon(img.getSubimage(x, y, w, h)));
buttons[i].addActionListener(this);
buttons[i].setBorder(border);
add(buttons[i]);
}
empty = new JLabel(new ImageIcon(new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB))); //空白部分
empty.setBorder(border);
add(empty); //右下に空白を足す

//ランダムな入れ替え作業。※偶数回の入れ替えで無いとクリアできない
Random random = new Random();
int count = 0;
while (count < 100) {
int index1 = random.nextInt(15), index2 = random.nextInt(15);
if (index1 != index2) {
swap(index1, index2);
count++;
}
}
}
284デフォルトの名無しさん:2005/10/12(水) 22:43:59
public void actionPerformed(ActionEvent ev) {
//押されたボタンと空白部分の x, y を調べる
List components = Arrays.asList(getComponents()); //indexOf を使うと楽なので List を作る
int buttonIndex = components.indexOf(ev.getSource()); //ev 発生元=押されたボタン
int emptyIndex = components.indexOf(empty);
int ex = emptyIndex%4, ey = emptyIndex/4; //4x4マトリクスの座標値に変換
int bx = buttonIndex%4, by = buttonIndex/4;

if (Math.abs(ex - bx) + Math.abs(ey - by) == 1) { //縦横差分の絶対値が、片方1で片方0なら入れ替える
swap(buttonIndex, emptyIndex);
for (int i=0; i<buttons.length; i++) { //初回生成時の順にボタンが配置されてるかどうか調べる
if (buttons[i] != getComponent(i)) return; //1つでも異なればメソッド終了してしまう
}
JOptionPane.showMessageDialog(this, "クリア", "", JOptionPane.PLAIN_MESSAGE); //メッセージ表示
}
}

private void swap(int index1, int index2) {
Component[] components = getComponents(); //配列を作る
Component tmp = components[index1]; //入れ替え作業
components[index1] = components[index2];
components[index2] = tmp;
removeAll(); //一旦全部外す
for (int i=0; i<components.length; i++) { //入れ替え後の順番で再配置
add(components[i]);
}
revalidate(); //再配置の終了を宣言(=再描画の要求)
}
}
285デフォルトの名無しさん:2005/10/12(水) 22:50:24
ふつーはきっと「JComponent と MouseListener を使おう」
という発想だろうと思うのね
ふつーのゲームならそうだし、AWT のみならそれしかないし

でもせっかく Swing と指定されてるし、
それだとボタンでも枠消せるからこんな感じで・・・多分このやり方の方がソースも短い
時間はあるみたいだから仕組み眺めといてね >>277
286277:2005/10/13(木) 02:12:33
>>280
解答ありがとうございます!ただ今バイトからあがりました。
こんなに早く、しかも丁寧に答えていただいて、本当に助かりました。
これからまたじっくり眺めて自分でも書いてみて仕組み等勉強したいと思います。
質問スレを読んでくださったのなら状況はご存知の通りですが、
しっかり勉強して、教授を見返してやろうと思います。
本当にありがとうございました。
287デフォルトの名無しさん:2005/10/13(木) 18:54:02
なにこのネ申スレ
288デフォルトの名無しさん:2005/10/14(金) 01:17:39
class tall {
public static void main(String[] args) {
double iam = 167.2;
double youre;
System.out.println("I am "+iam+" cm tall.");
//I am really 165cm.But,health center said 167.
System.out.print("In inch,");
iam = iam * 2.54;
youre = iam % 1;
iam = iam - youre;
if (youre > 0.5){
iam = iam +1;
}
System.out.println("I am "+iam+" inch tall.");
System.out.print("But if I am "+iam+" inch tall,");
iam = iam * 0.393700787;
youre = iam % 1;
iam = iam - youre;
if (youre > 0.5){
iam = iam +1;
}
System.out.println("I am "+iam+" cm tall.");
youre = 167.2 - iam;
System.out.println("Then, I have become "+youre+"cm smaller.");
}
}
289デフォルトの名無しさん:2005/10/14(金) 01:18:26
上のプログラムで、0.2cmと表示されるところが、
0.1999…と表示されてしまいます。どこが可笑しいのでしょうか。
290デフォルトの名無しさん:2005/10/14(金) 01:28:13
計算機は普通浮動小数を正確な値では扱えない。
小数の値を
0.5,
0.25
0.125
...
という 0.5 の累乗の値を組み合た和で表している。
例:
0.2 = 0*1.0 + 0*0.5 + 0*0.25 + 1*0.125 + 1*0.0625 + 0*0.3125 ...

そのため、
0.2 を表そうとして、 0.19999999... のようになる。

適当にぐぐった
ttp://www.stellar.ac/~komai/unix/c/float/
291デフォルトの名無しさん:2005/10/14(金) 01:49:14
>>290 ありがとうございました。ちなみに、ソース自体は組み直して大丈夫です。
292デフォルトの名無しさん:2005/10/14(金) 02:35:13
import java.math.BigDecimal;

class tall {
public static void main(String[] args) {
BigDecimal iam = new BigDecimal("167.2");
BigDecimal youre;
System.out.println("I am " + iam + " cm tall.");
//I am really 165cm.But,health center said 167.
System.out.print("In inch,");
iam = iam.multiply(new BigDecimal("2.54"));

youre = iam.subtract(iam.setScale(0, BigDecimal.ROUND_DOWN));
iam = iam.subtract(youre);
if (youre.compareTo(new BigDecimal("0.5")) > 0) {
iam = iam.add(new BigDecimal(1));
}
System.out.println("I am " + iam + " inch tall.");
System.out.print("But if I am " + iam + " inch tall,");
iam = iam.multiply(new BigDecimal("0.393700787"));

youre = iam.subtract(iam.setScale(0, BigDecimal.ROUND_DOWN));
iam = iam.subtract(youre);
if (youre.compareTo(new BigDecimal("0.5")) > 0) {
iam = iam.add(new BigDecimal(1));
}
System.out.println("I am " + iam + " cm tall.");
youre = new BigDecimal("167.2").subtract(iam);
System.out.println("Then, I have become " + youre + "cm smaller.");
}
}
有理数で話をするかぎりは BigDecimal 使えばいい。
293デフォルトの名無しさん:2005/10/14(金) 02:35:38
>>291
何かして欲しいなら、>>1 に従って答えないと分からないよ。
294デフォルトの名無しさん:2005/10/14(金) 02:38:48
>>292すみません。
>293 いや、0.2が0.199となるのは何故か、という質問でした。
ソース自体は解決しました。
295デフォルトの名無しさん:2005/10/17(月) 05:01:25
グラフィックをやってるのですが、
四角の中に文字列を表示させたいのですが、ちょうど真ん中に来るようにするにはどうすればいいでしょうか?
四角の中ちょうどいっぱいの大きさに表示させるのではなく、四角よりもだいぶん小さな文字をちょうど中央に書くには。
お願いします。
296デフォルトの名無しさん:2005/10/17(月) 05:29:24
何を使って絵を描くのかちゃんと明示しないと答えられないよ。
297295:2005/10/17(月) 05:45:42
グラフィッククラスのdrawRect();で四角を書いて中にdrawString();で字を書くって感じです。
298デフォルトの名無しさん:2005/10/17(月) 07:21:24
299デフォルトの名無しさん:2005/10/17(月) 13:25:26
int rx, ry, rw, rh; //矩形座標・サイズ (drawRect の引数)
String txt; //テキスト (drawString の引数)

FontMetrics fm = g.getFontMetrics();
int tw = fm.stringWidth(txt);
int th = fm.getHeight();
int ascent = fm.getAscent();

//座標系原点から矩形左上までのベクタ
Point vr = new Point(rx, ry);
//矩形左上から矩形中心までのベクタ
Point vc = new Point(rw/2, rh/2);
//座標系原点から矩形中心までのベクタ Vo = Vr + Vc
Point vo = new Point(vr.x + vc.x, vr.y + vc.y);

//テキスト左上からテキスト中央までのベクタ
Point vt = new Point(tw/2, th/2);
//テキスト左上からテキストベースライン左端までのベクタ
Point va = new Point(0, ascent);
//テキスト中央からテキストベースライン左端までのベクタ Vx = -Vt + Va
Point vx = new Point(-vt.x + va.x, -vt.y + va.y);

//座標系原点から、テキストを描画すべき位置までのベクタ Vz = Vo + Vx
Point vz = new Point(vo.x + vx.x, vo.y + vx.y);

//描画
g.drawRect(rx, ry, rw, rh);
g.drawString(txt, vz.x, vz.y);

冗長に書くとこうなる。どう改変するかは今のソースがどーなってるか次第
300デフォルトの名無しさん:2005/10/17(月) 16:08:24
【 課題 】 SSDA法をもちいてステレオマッチングを行い,左のカメラの画像の全ての点について,
右のカメラで撮った画像のどの点に対応するかを求め,対応する点の組を出力せよ。
       また得られた対応する点をもとに左のカメラの画像の各点の3次元位置を,三角測量の
原理により計算するプログラムを作成せよ。得られた3次元空間中の点の集合の様子を
描画するプログラムを作成せよ.
【 用語 】SSDA法についての説明です。以下の数式になります。
      S(i,j)=Σ[u=1,m]Σ[v=1,l]|f(u,v)-t(u,v)|
      S(i,j):画素位置(i,j)における残差
      f(u,v):基準画像のテンプレート位置
      t(u,v):探索画像のテンプレート位置
      l×m:テンプレートサイズ
【 期限 】10月21日 PM13:00まで
【 補足 】まる投げですがよろしくおねがいします。
301デフォルトの名無しさん:2005/10/17(月) 18:51:27
その程度の用語説明だと、関連する研究やってる人でもないと書けないっす
基準画像、探査画像、テンプレートがそれぞれ何を指しどんな関係なのか、
今ひとつ分からず
302デフォルトの名無しさん:2005/10/17(月) 21:14:34
>>301
説明不足ですみません。
基準画像は左画像,探索画像は右画像,テンプレートはl×m画素の小領域のことです。
(i,j)はテンプレートの中心座標です。
左画像の点(x,y)を中心とするl×m画素の小領域をテンプレートとみなして
右画像上で一番一致度の高い位置を求めて,その位置でのテンプレートの
中心の点(x,y)を対応点とするということだそうです。
左画像のテンプレートと右画像のテンプレートの画素ごとの階調値の差分の
総和が最も小さくなる位置を対応点とするそうです。
どなたかよろしくお願いします。
303デフォルトの名無しさん:2005/10/17(月) 22:29:46
UNIコードを用いた場合,\uXXXX(X=16進数)と書けば,ある16進数の数値が持つ文字を表現できる。
数を用いて文字を表現する方法である。
さて,この逆である,文字からUNIコードを得るにはどうしたらよいか?
例えば,'峯' という文字のUNIコードは幾らになるのだろうか,
文字からUNIコードを得る方法を考えよ。


スレ違いかもしれませんがJavaの講義で出された課題なのでここが正しいかと思いました
Javaの初歩的な知識で可能だとかなんとか言っていたので。
しかしさっぱりわかりません
よろしくお願いします
304デフォルトの名無しさん:2005/10/17(月) 23:18:50
>>303
int code = (int)'峯';
System.out.println(Integer.toString(code, 16));
305デフォルトの名無しさん:2005/10/17(月) 23:34:03
>>304
ありがとうございました
306デフォルトの名無しさん:2005/10/17(月) 23:38:36
とりあえず対応点検出は作れたことになんのかな・・・?
private static int[] setGray(BufferedImage img) {
int[] array = img.getRGB(0, 0, img.getWidth(), img.getHeight(), null, 0, img.getWidth());
for (int i=0; i<array.length; i++) {
int rgb = array[i];
int r = (rgb >> 16) & 0xff;
int g = (rgb >> 8 ) & 0xff;
int b = (rgb ) & 0xff;
array[i] = (int)( 0.298912f * r + 0.586611f * g + 0.114478f * b );
}
return array;
}

private int[] leftPixels, rightPixels;
private int l, m, leftWidth, leftHeight, rightWidth, rightHeight;
private Point[] points;

public Q300(BufferedImage left, BufferedImage right, int l, int m) {
this.leftWidth = left.getWidth();
this.leftHeight = left.getHeight();
this.rightWidth = right.getWidth();
this.rightHeight = right.getHeight();
this.leftPixels = setGray(left);
this.rightPixels = setGray(right);
this.l = l;
this.m = m;
}
307デフォルトの名無しさん:2005/10/17(月) 23:38:45
public void ssda() {
points = new Point[leftWidth*leftHeight];
int index = 0;
for (int j=0; j<leftHeight; j++) {
System.out.println(j);
for (int i=0; i<leftWidth; i++) {
points[index] = calc(i, j);
index++;
}
}

//不要になったものは消す
leftPixels = null;
rightPixels = null;
}

public Point getPoint(int i, int j) {
return points[j*leftWidth + i];
}
308デフォルトの名無しさん:2005/10/17(月) 23:39:15
private Point calc(int i, int j) {
int min = Integer.MAX_VALUE;
Point p = null;
for (int y=0; y<rightHeight; y++) {
for (int x=0; x<rightWidth; x++) {
int s = compare(i, j, x, y, min);
if (s < min) {
min = s;
p = new Point(x, y);
}
}
}
return p;
}

private int compare(int i, int j, int x, int y, int min) {
int sx = Math.max(Math.max(-l/2, -i), -x);
int sy = Math.max(Math.max(-l/2, -j), -y);
int ex = Math.min(Math.min(l/2, leftWidth - i - 1), rightWidth - x - 1);
int ey = Math.min(Math.min(m/2, leftHeight - j - 1), rightHeight - y - 1);
int s = 0;
int loff = (sy + j)*leftWidth, roff = (sy + y)*rightWidth;
for (int ty=sy; ty<=ey; ty++) {
for (int tx=sx; tx<=ex; tx++) {
s += Math.abs(leftPixels[loff + tx + i] - rightPixels[roff + tx + x]);
if (min <= s) return Integer.MAX_VALUE;
}
loff += leftWidth; roff += rightWidth;
}
return s;
}
309デフォルトの名無しさん:2005/10/17(月) 23:40:45
public static void main(String[] args) throws IOException {
BufferedImage left = ImageIO.read(どっかから読んで);
BufferedImage right = ImageIO.read(どっかから読んで);

Q300 q300 = new Q300(left, right, L, M); //L, M なんとかして決めて
q300.ssda();

JPanel pane = new JPanel(new GridLayout(2, 2));
pane.add(new JLabel("左画像", new ImageIcon(left), JLabel.LEFT));
pane.add(new JLabel("右画像", new ImageIcon(right), JLabel.LEFT));
pane.add(new JLabel("抽出", new ImageIcon(createImage(q300, left, right)), JLabel.LEFT));
JFrame f = new JFrame();
f.getContentPane().setLayout(new BorderLayout());
f.getContentPane().add(pane, BorderLayout.CENTER);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.pack();
f.setVisible(true);
}

private static BufferedImage createImage(Q300 q300, BufferedImage left, BufferedImage right) {
BufferedImage img = new BufferedImage(right.getWidth(), right.getHeight(), BufferedImage.TYPE_INT_RGB);
for (int j=0; j<left.getHeight(); j++) {
for (int i=0; i<left.getWidth(); i++) {
Point p = q300.getPoint(i, j);
int c = left.getRGB(i, j);
img.setRGB(p.x, p.y, c);
}
}
return img;
}
310デフォルトの名無しさん:2005/10/17(月) 23:46:13
以上、全部

import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;

import javax.imageio.ImageIO;
import javax.swing.*;

public class Q300 {

}
で包んで。

どういう画像が対象になってるか分からないけど、
ImageIO.read(new URL("http://〜 ..."));で
ttp://www.ne.jp/asahi/okuyuki/stereo/0stp.htm この辺からとればいいんじゃない?

でも LxM は相当とらないと、あるいはのっぺりした画像だと、
マッチングに失敗しまくるっぽいね。しかもでかい画像だと時間かかるよなぁ。

三角測量ってのはカメラの位置や被写体との距離が関係するのかな?
も少し数式やらなにやら必要じゃないのかな・・・

3次元はどこまでやればいいのか。3面図でいいのか、それともマウスでぐりぐり?うぎゃー

とりあえず誰かにバトンタッチ。高速化の余地もあろうて。
311デフォルトの名無しさん:2005/10/18(火) 05:50:41
普通、グラフィックはこうやって書きますが、
public void paint(Graphics g) {
g.drawOval(50,50,100,75);
g.drawRect(100,100,100,75);
}
これを一気に描けるようメソッド化したい場合はどうすればいんでしょうか?
例えば始点と終点の引数を入れればdrawLineを組み合わせて矢印を描けるメソッドとか。
その場合public void paint(int x1,int y1,int x2,int y2) と始点終点を引数に入れたら
Graphics gはどこに書くんでしょうか?
312デフォルトの名無しさん:2005/10/18(火) 11:35:04
* 文字列が半角のアルファベット小文字のみで構成されているかのチェック。
*
* @param letterString 調べる文字列
* @return letterStringがa〜zのみで構成されている場合、trueを返す。<br>
* letterStringにa〜z以外の文字が含まれている場合、falseを返す。
*/
public static boolean isSmallLetterString(String letterString) {
// TODO: ここに処理を実装する。
return false;
}
313デフォルトの名無しさん:2005/10/18(火) 11:39:33
>>311
スレ違い。
http://pc8.2ch.net/test/read.cgi/tech/1129019555/l50

ちなみに、結局は自分で書くしかない。g も与えるしかない。
public void paint(Graphics g) {
 paint(g, x1, y1, x2, y2);
}

矢印程度だったら Shape を使うというやり方もある。
GeneralPath path = new GeneralPath(); //Shape の一つ。Rectangle も Shape。
path.moveTo(0, 0); path.lineTo(0, 10);
path.moveTo(0, 0); path.lineTo(-5, 5);
path.moveTo(0, 0); path.lineTo(5, 5);

//以上、インスタンス変数などで持っておく。

public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D)g;
//古いバージョンとの互換性のため、実体は Graphics2D だが Graphics な変数を会して渡される。
//ので、キャストして 2D な変数に入れ直す

g2.draw(path); //これだけで書ける。

ただし、頂点位置を変えたり回転したりとややこしい。
少し試してから、自分の要望をもう少し具体的に沿えて、改めて質問スレできくべし。
314デフォルトの名無しさん:2005/10/18(火) 13:05:57
>>306-310
返信ありがとうごさいます。
本当に助かります。
手元の画像を読み込みたいのですが,エラーがでてうまくいきません。
手元の画像を読み込む方法もお願いできないでしょうか?
またまた説明不足ですみません。
以下の数式で3次元座標が求まるそうです。
X=d*xL/xL-xR,Y=d*yL/xL-xR,Z=d*f/xL-xR
xLとxRは対応する点の組です。
dはカメラ間距離で60mm,fは焦点距離で5.5mmの設定になっています。
3次元はxyz座標を用いて立体的に表示させることはできないでしょうか?
どなたかどうか宜しくお願いします。
315デフォルトの名無しさん:2005/10/18(火) 16:05:52
123,456,789
こんな10進数文字列からカンマを取ってlong型で返したいんだけど、どうしたらできますか?
316デフォルトの名無しさん:2005/10/18(火) 16:16:18
【課題提示用テンプレ】
【 課題 】DNA 配列を入力し、それをRDNAに変換し、またTRNAに変換し、たんぱく質結合を出力する。
【 用語 】DNA配列はC,G,T,Aのいずれかで構成される。RDNAはDNA配列を逆に並び替えた配列。
TRNAはAをU、TをA、GをC、CをGに変更する。
たんぱく質結合はTRNAを三個づつに区切りその組み合わせに対応するたんぱく質の結合。
【 期限 】今日中
【 補足 】最後のTRNAを3個づつに区切り、対応するたんぱく質結合を出力するのができません。
317デフォルトの名無しさん:2005/10/18(火) 16:17:59
>>315

String str = "123,456,789";
long l = Long.parseLong(str.replaceAll(",", ""));
318316:2005/10/18(火) 16:31:29
出力例です。
DNA :TATACGAGCGC
RDNA:CGCGAGCATAT
TRNA:GCGCUCGUAU
たんぱく質:AlaLeuVal
319デフォルトの名無しさん:2005/10/18(火) 16:32:59
>>317
サンクスコです。
こんなに簡単だったのか orz
320デフォルトの名無しさん:2005/10/18(火) 16:51:46
>>318
生物弱いんで、
TRNAとたんぱく質の対応表くれたら書けるが?
321デフォルトの名無しさん:2005/10/18(火) 17:03:45
public static double sum(double[] numbers) throws NullPointerException {

exception NullPointerException numbersがnull

numbersに格納されている全要素の中で最も大きい値を返すには、どのように書いたら良いですか?
322デフォルトの名無しさん:2005/10/18(火) 17:11:31
>>321
こんなんでいいか?
public static double max(double[] numbers){
double max=numbers[0];
for(int i=1;i<numbers.length;i++){
max=Math.max(a[i],max);
}
return(max);
}
323デフォルトの名無しさん:2005/10/18(火) 17:15:14
>>322 ありがとうございました。いけました。
324デフォルトの名無しさん:2005/10/18(火) 17:36:55
すいません、もう一ついいでしょうか?
>>321の様な文の全要素の合計を出したい場合はどうすればよいのですか?
325デフォルトの名無しさん:2005/10/18(火) 17:39:22
>>323
こんなんでいいか?
public static double sum(double[] numbers){
double sum=0.0;
for(int i=0;i<numbers.length;i++){
sum+=a[i];
}
return(sum);
}
326デフォルトの名無しさん:2005/10/18(火) 17:40:47
センキューです〜
327316:2005/10/18(火) 17:56:41
>>320
TRNA対応表
DNA RNA
A U
T A
G C
C G

たんぱく質結合  RNAに含まれる配列
Ala GCU GCC GCA GCG
Arg CGU CGC CGA CGG AGA AGG
Asn AAU AAC
Asp GAU GAC
Cys UGU UGC
Gln CAA CAG
Glu GAA GAG
Gly GGU GGC GGA GGG
His CAU CAC
Ile AUU AUC AUA
Leu UUA UUG CUU CUC CUA CUG
Lys AAA AAG
Met AUG
Phe UUU UUC
Pro CCU CCC CCA CCG
Ser UCU UCC UCA UCG AGU AGC
Thr ACU ACC ACA ACG
Trp UGG
Tyr UAU UAC
Val GUU GUC GUA GUG
… UAA UAG UGA

328デフォルトの名無しさん:2005/10/18(火) 18:10:05
>>328
俺はコード書いた本人じゃないけど、このコードだと
桁あふれとか精度は考慮してないから、使い方には注意したほうが良いと思われ。
329デフォルトの名無しさん:2005/10/18(火) 18:31:20
ある文字列が2進数で表されているならtrue、
表されていないならfalseを返すのってどうやったらできますかね?
330デフォルトの名無しさん:2005/10/18(火) 18:42:12
>>316
//1/2
import java.io.*;
import java.util.*;

class Main{
public static void main(String[] args)throws IOException{
Scanner s=new Scanner(System.in);

System.out.print("DNA:");
String dna=s.nextLine();
String rdna=DNAToRDNA(dna);
System.out.println("RDNA:"+rdna);
String tdna=RDNAToTDNA(rdna);
System.out.println("TDNA:"+tdna);
String protein=TDNAToProtein(tdna);
System.out.println("protein:"+protein);
}
public static String DNAToRDNA(String dna){
return(((new StringBuffer(dna)).reverse()).toString());
}
331デフォルトの名無しさん:2005/10/18(火) 18:45:33
>>316
//2/2
public static String RDNAToTDNA(String rdna){
String tdna=rdna;
tdna=tdna.replaceAll("A","U");
tdna=tdna.replaceAll("T","A");
tdna=tdna.replaceAll("G","X");
tdna=tdna.replaceAll("C","G");
tdna=tdna.replaceAll("X","C");
return(tdna);
}
public static String TDNAToProtein(String tdna){
Hashtable ht=new Hashtable();
ht.put("GCU","Ala");ht.put("GCC","Ala");ht.put("GCA","Ala");ht.put("GCG","Ala");ht.put("CGU","Arg");ht.put("CGC","Arg");ht.put("CGA","Arg");ht.put("CGG","Arg");
ht.put("AGA","Arg");ht.put("AGG","Arg");ht.put("AAC","Asn");ht.put("AAU","Asn");ht.put("GAU","Asp");ht.put("GAC","Asp");ht.put("UGU","Cys");ht.put("UGC","Cys");
ht.put("CAG","Gln");ht.put("CAA","Gln");ht.put("GAG","Glu");ht.put("GAA","Glu");ht.put("GGU","Gly");ht.put("GGC","Gly");ht.put("GGA","Gly");ht.put("GGG","Gly");
ht.put("CAC","His");ht.put("CAU","His");ht.put("AUU","Ile");ht.put("AUC","Ile");ht.put("AUA","Ile");ht.put("UUA","Leu");ht.put("UUG","Leu");ht.put("CUU","Leu");
ht.put("CUC","Leu");ht.put("CUA","Leu");ht.put("CUG","Leu");ht.put("AAG","Lys");ht.put("AAA","Lys");ht.put("AUG","Met");ht.put("UUC","Phe");ht.put("UUU","Phe");
ht.put("CCU","Pro");ht.put("CCC","Pro");ht.put("CCA","Pro");ht.put("CCG","Pro");ht.put("UCU","Ser");ht.put("UCC","Ser");ht.put("UCA","Ser");ht.put("UCG","Ser");
ht.put("AGU","Ser");ht.put("AGC","Ser");ht.put("ACU","Thr");ht.put("ACC","Thr");ht.put("ACA","Thr");ht.put("ACG","Thr");ht.put("UGG","Trp");ht.put("UAC","Tyr");
ht.put("UAU","Tyr");ht.put("GUU","Val");ht.put("GUC","Val");ht.put("GUA","Val");ht.put("GUG","Val");ht.put("UAA","xxx");ht.put("UAG","xxx");ht.put("UGA","xxx");
String protein="";
for(int i=0;i+3<=tdna.length();i+=3){
protein+=ht.get(tdna.substring(i,i+3));
}
return(protein);
}
}
332デフォルトの名無しさん:2005/10/18(火) 18:47:31
>>328
は誰に突っ込みいれているの?
333316:2005/10/18(火) 19:18:03
>>330
Scannerでエラーが出るんですけど…。
334デフォルトの名無しさん:2005/10/18(火) 19:22:56
Java1.5 が楽だから
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
String dna=in.readLine();
この辺使って
335デフォルトの名無しさん:2005/10/18(火) 19:30:44
>>329
str.matches("[01]+")
336デフォルトの名無しさん:2005/10/18(火) 22:30:23
>>335
もちょっと詳しく…
337デフォルトの名無しさん:2005/10/18(火) 23:34:04
【 課題 】ツェラーの定理を使ったカレンダーを作る。年、月を入力して1-12月までウインドウで出力
【 用語 】数学用語、専門用語の意味、説明を書きます 《あれば必須》
【 期限 】10月20日
【 Ver  】希望なし
【 補足 】丸投げですがよろしくお願いします。
338デフォルトの名無しさん:2005/10/18(火) 23:51:53
ツェラーの定理の説明はなしかよ。
339デフォルトの名無しさん:2005/10/19(水) 00:36:12
【 課題 】(問題1)TestInputというクラスを作成し、その中のmainメソッドにおいて、キーボードからの
       入力を受け付け、それをそのまま画面に表示するプログラムを作成せよ。
       
       (問題2)問題1で作成したプログラムに、入力した文字列を空白文字で分割して別々の
        行に表示するプログラムを追加せよ。
       (*)ヒント:StringTokenizerというJavaのユーティリティークラスを使えばよい。使い方は
       ttp://java.sun.com/j2se/1.4/ja/docs/ja/api/java/util/StringTokenizer.htmlを読むこと

【 用語 】
【 期限 】10月20日(木)中に解答が欲しいです。金曜日の授業で提出です。
【 Ver  】希望なし
【 補足 】丸投げですみませんがよろしくお願いします。
340デフォルトの名無しさん:2005/10/19(水) 00:55:09
>>339
import java.io.*;
import java.util.*;

class Main{
public static void main(String[] args)throws IOException{
Scanner s=new Scanner(System.in);
String line=s.nextLine();
System.out.println(line);
StringTokenizer st=new StringTokenizer(line);
while(st.hasMoreTokens()){
System.out.println(st.nextToken());
}
}
}
341デフォルトの名無しさん:2005/10/19(水) 01:00:23
>>339
問題1

import java.io.*;

public class TestInput {
public static void main(String args[]) {
try {
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
String inputString = br.readLine();
} catch( IOException e ) {
// 適当にドゾー
}
System.out.println(inputString);
}
}

問題2
java.util.StringTokenizerをインポートして
問題1の最後を
StringTokenizer st = new StringTokenizer(inputString);
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
に変えるだけ。
342デフォルトの名無しさん:2005/10/19(水) 01:57:39
>>337
ツェラーの定理がよく分からなかったので、Calendar クラス使ってみました。
Java 1.5 です。
1/2

import java.util.*;
import java.io.*;

class Main{
private final static int[] monthLength=new int[]{31,28,31,30,31,30,31,31,30,31,30,31};
private final static String[] monthName=new String[]{"January","February","March","April","May","June","July","August","September","October","November","December",};
public static void main(String[] args)throws IOException{
Scanner s=new Scanner(System.in);
Calendar c=Calendar.getInstance();
writeCalendar(s.nextInt(),c);
}
public static boolean isLeapYear(int year){
if(year % 400 == 0)return(true);
if(year % 100 == 0)return(false);
return(year % 4 == 0);
}
343デフォルトの名無しさん:2005/10/19(水) 01:58:17
>>337
2/2
public static void writeCalendarMonth(int year,int month,Calendar c){
int length=monthLength[month];
if(month == 1 && isLeapYear(year))length++;
System.out.println();
System.out.println(monthName[month] + " " + year);
System.out.println();
System.out.println("Su Mo Tu We Th Fr Sa");
c.set(year,month,1);
for(int i=1;i<c.get(Calendar.DAY_OF_WEEK);i++){
System.out.print(" ");
}
for(int day=1;day<=length;day++){
System.out.printf("%2d ",day);
c.set(year,month,day);
if(day < length && c.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY)System.out.println();
}
System.out.println();
}
public static void writeCalendar(int year,Calendar c){
for(int month=0;month<12;month++)writeCalendarMonth(year,month,c);
}
}
344デフォルトの名無しさん:2005/10/19(水) 02:00:35
>>337
ツェラーの公式くらいちゃんと書こうぜ
年、月、日から曜日を出力
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);
}
345デフォルトの名無しさん:2005/10/19(水) 02:03:50
>>329
>>336

>>335が要求仕様を全部満たしている件について
346デフォルトの名無しさん:2005/10/19(水) 03:32:11
>>329
import java.math.*;
import java.io.*;

class Main{
public static void main(String args[]){
System.out.println("101010:"+isBinary("101010"));
System.out.println("123456:"+isBinary("123456"));
}
static boolean isBinary(String str){
try{
new BigInteger(str,2);
return(true);
}
catch(Exception e){
return(false);
}
}
}
347デフォルトの名無しさん:2005/10/19(水) 08:46:22
>>346
引数にマイナスが設定された時の動作に問題がありますって出ます。
348デフォルトの名無しさん:2005/10/19(水) 09:25:27
>>347
どうなってほしいの?
もうちょっと詳しく
349デフォルトの名無しさん:2005/10/19(水) 10:30:45
すみません>>335さんのでいけました。
これが仮に10進数や16進数だった場合、[]の中をどのように書けばよいのですか?
350デフォルトの名無しさん:2005/10/19(水) 11:24:42
【 課題 】RPN Calculator
Reverce Polish Notation(RPN)形式の電卓を実現するプログラム
     ・入力用キーパットと表示出力スクリーンがあり、キーパットは16個のキーがある
     ・キーパットには、数字キー10個、演算子キー4個、クリアキー、エンタキーがある
     ・数字キーは数値出力に使われる
     ・入力された数値と演算出力はスクリーンに表示される
     ・演算方式は後置記法に従い、数値、エンター、数値、演算子の順で入力される
     ・クリアキーで、内部状態が初期状態に戻される 
【 期限 】10月21日
【 Ver  】希望なし
【 補足 】本当に丸投げですが、よろしくお願いします。
351デフォルトの名無しさん:2005/10/19(水) 12:28:39
10進数かどうか調べる時は>>346をstr,10でいけたなぁ…
Javaムズカシス
352デフォルトの名無しさん:2005/10/19(水) 20:06:55
>>349
10進 str.matches("-?\\p{Digit}+")
16進 str.matches("\\p{XDigit}+")
353デフォルトの名無しさん:2005/10/19(水) 20:10:54
>>335 と同じ表記なら
10進 str.matches("-?[0-9]+")
16進 str.matches("[0-9a-fA-F]+")
354デフォルトの名無しさん:2005/10/19(水) 22:11:21
>str.matches("[01]+")
>str.matches("[0-9a-fA-F]+")

その正規表現で思ったんだが、
お前らのやり方だと
abc12xyz
も、trueになる?(←結果的にこれを望むならいいのだけど、)
試してないから勘で言っているんだけど・・・
何を心配しているかと言うと、
^[0-9]$ じゃなくていいのかと言う事
Javaでは^$イラネ-よ というのならゴメンナサイです
355デフォルトの名無しさん:2005/10/19(水) 22:46:10
356デフォルトの名無しさん:2005/10/19(水) 22:51:24
なるほど、了解です
357デフォルトの名無しさん:2005/10/20(木) 01:43:25
【 課題 】下記のように10段のピラミッドの出力を行うプログラムをfor文を使ってさくせい
358デフォルトの名無しさん:2005/10/20(木) 02:01:10
下記無しで age っぱなし?
359デフォルトの名無しさん:2005/10/20(木) 02:03:56
【 課題 】(問題1)下記のように10段のピラミッドの出力を行うプログラムをfor文を使って作成しなさい。
      (ヒント)二重ループを利用すること
      *
      **
      ***
      ****
      *****
      ******
      *******
      ********
      *********
      **********
      (問題2)更に10段の逆ピラミッドの出力を行うプログラムをfor文を使って作成しなさい。
【 期限 】10月21日
【 Ver  】特に無し
【 補足 】丸投げですみませんがよろしくお願いします。
360デフォルトの名無しさん:2005/10/20(木) 02:18:33
>>359
class Main{
public static void main(String[] args){
//問題1
for(int i=1;i<=10;i++){
for(int j=1;j<=i;j++){
System.out.print("*");
}
System.out.println();
}

System.out.println();
System.out.println("--------------------");
System.out.println();

//問題2
for(int i=10;i>=1;i--){
for(int j=1;j<=i;j++){
System.out.print("*");
}
System.out.println();
}
}
}
361デフォルトの名無しさん:2005/10/20(木) 02:51:04
【 課題 】
 ・標準入力から10個の数値を受け取り、大きさの順に並び替えて出力するプログラムを作成しなさい。
 ・標準入力から1つの整数値(nとします)を受け取り、n!を計算するプログラムを作成しなさい
【 PG歴 】2週間
【 期限 】10/20 12:00まで
【 Ver  】 Macのターミナル&テキストエディットでやってます(…
【 補足 】丸投げです…本当に宜しくお願いします!
362デフォルトの名無しさん:2005/10/20(木) 03:20:37
>>360
ありがとうございました。
363デフォルトの名無しさん:2005/10/20(木) 03:25:28
>>361
//・標準入力から10個の数値を受け取り、大きさの順に並び替えて出力するプログラムを作成しなさい。
//大きい順は大→小でいいのかな?
import java.io.*;
import java.util.*;

class Main{
public static void main(String[] args)throws IOException{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
int[] input=new int[10];
for(int i=0;i<10;i++){
input[i]=Integer.parseInt(in.readLine());
}
Arrays.sort(input);
for(int i=9;i>=0;i--){
System.out.println(input[i]);
}
}
}
364デフォルトの名無しさん:2005/10/20(木) 03:26:21
>>361
//・標準入力から1つの整数値(nとします)を受け取り、n!を計算するプログラムを作成しなさい
import java.io.*;
import java.math.*;

class Main{
public static void main(String[] args)throws IOException{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
BigInteger n=new BigInteger(in.readLine());
System.out.println(fact(n));
}
private static BigInteger fact(BigInteger n){
if(n.compareTo(BigInteger.ZERO) < 0)return(BigInteger.ZERO.subtract(BigInteger.ONE));
return(fact(BigInteger.ONE,n));
}
private static BigInteger fact(BigInteger mul,BigInteger n){
if(n.compareTo(BigInteger.ZERO) == 0)return(mul);
return(fact(mul.multiply(n),n.subtract(BigInteger.ONE)));
}
}
365361:2005/10/20(木) 08:40:25
>>363
本当に有難うございました!
これから頑張っていきたいデス。(=゚ω゚)むん!
366デフォルトの名無しさん:2005/10/20(木) 09:16:05
【 課題 】
 ・制御文を利用して九九表を作成しなさい
【 PG歴 】4週間
【 期限 】10/20 13:00まで
【 Ver  】ターミナル&テキストエディット
【 補足 】丸投げ。
361と同じ講義かもwただ、そんな難しい書き方見た事が無い…(;;
扱ってるのは360みたいな感じなんですが。お願いしまつ。
367デフォルトの名無しさん:2005/10/20(木) 09:35:01
文字列srcの中の以下の5つの置換えをしたいんだけど、どうしたらいいですか?

& ⇒ &amp;
< ⇒ &lt;
> ⇒ &gt;
" ⇒ &quot;
' ⇒ &#39;

replaceAll使うの?
368デフォルトの名無しさん:2005/10/20(木) 09:36:53
タグ入れていなかった

<pre>

& ⇒ &amp;
< ⇒ &lt;
> ⇒ &gt;
" ⇒ &quot;
' ⇒ &#39;

</pre>
369デフォルトの名無しさん:2005/10/20(木) 09:38:10
だめか…

こんな感じ
&amp; → &amp;amp;
370デフォルトの名無しさん:2005/10/20(木) 12:09:24
>>366

public class test{
public static void main(String[] argv){
for(int i=1;i<=9;i++){
for(int j=1;j<=9;j++){
System.out.print(i+"x"+j+"="+(i*j)+" ");
}
System.out.println("");
}
}
}
371デフォルトの名無しさん:2005/10/20(木) 12:11:38
372デフォルトの名無しさん:2005/10/20(木) 13:38:01
public static int[] sort(int[] array)
throws java.lang.NullPointerException

配列に対してクイックソートを実行する。

処理詳細
1.arrayがnullの場合、NullPointerExceptionをthrowする。
2.quicksortを呼び出す。
第1引数にソートする配列(array)、
第2引数に配列の先頭の要素位置(0)、
第3引数に配列の終端の要素位置(array.length - 1)を渡すこと。
3.ソートされた配列を返す。
373デフォルトの名無しさん:2005/10/20(木) 14:53:20
374デフォルトの名無しさん:2005/10/20(木) 16:19:03
1Vecterクラスの配列を用意 2Vecterクラスの配列に九九を段数毎に格納3九九の全段表示を出力 4九九の段数表示を出力 5八、九段は七個までの出力とする 丸投げです お願いします
375デフォルトの名無しさん:2005/10/20(木) 19:07:56
a
376デフォルトの名無しさん:2005/10/20(木) 22:01:56
sourcepost復活してる。
377376:2005/10/20(木) 22:35:52
出すつもりなかったのだが、せっかくなので
>350の仕様を完全に無視した逆ポーランド記法用の電卓のソースを貼ってみます。
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=26031
から
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=26037
まで。
ダウンロードするとUTF-8になるっぽいので
> javac -encoding UTF-8 *.java
> java RPNCalculator
でコンパイル/実行。
378339:2005/10/21(金) 01:59:44
>>340-341
ありがとうございます。しかし実行したらエラーが・・・。
ちょっと粘ってみます。
379デフォルトの名無しさん:2005/10/21(金) 14:14:14
>>374
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=26042
Vectorの配列とは、また、中途半端な・・・
380デフォルトの名無しさん:2005/10/23(日) 18:24:53
【課題】Write a Java program that accepts the unit weight of a bag of coffee in pountds and
the number of bags sold and displays the total price of the sales, computed as

Total Price = bagWeight * numberofBags * pricePerLb;
Total Price With Tax = TotalPrice + TotalPrice * taxRate;

pricePerLb is $5.99 and taxrate is 7.25 (These should be finals)

Displays the result in the following manner:

Number of bags sold: 32
Weight per bag : 5lb
Price per pound : $5.99
Sales Tax: 7.25%

Total Price : $1027.88

<<続きます>>
381デフォルトの名無しさん:2005/10/23(日) 18:25:37
<<続きです>>

You program must be implemented using the concepts of classes and methods.
This means that you must have at least the following:

1. Two classes(main class that houses the main methods); and coffeeBag class that houses all of the other methods(calculation)
2. The coffeeBag class must have at least the following methods.
a) Default constructor method
b) Alternate constructor method that takes in as arguments the weight and the number of bags.
c) Necessary setters and getters (at least 4)
i) To set the weight of a bag
ii) To get the weight of a bag
iii) To set the number of bags sold
iv) To get the number of bags sold
d) A method that calculates and returns the total price
e) A method that calculates and return the total price with taxes
f) A method that print the necessary data

You should test your program by creating at least two objects. One object should use the defauld constructor
and the other should use the alternate constructor. This means you need to have 2 sets of output: one for each object.
382380:2005/10/23(日) 18:27:00
【 用語 】
【 期限 】10/24
【 Ver  】1.5以降 コンパイラはBorland JBuilder 2005 Foundation ver11.0を使用。
【 補足 】二つのクラスを使って、交互に処理をするというプログラムです。
      サンプルプログラムと自分で途中まで書いたプログラムを載せておきます。
383380:2005/10/23(日) 18:48:25
長かったので、まとめました。

ttp://www.geocities.jp/java_homework2006/
384デフォルトの名無しさん:2005/10/23(日) 19:01:03
また英語かよー
385380:2005/10/23(日) 19:03:01
>>384
すいません…。
アメリカの大学に通っています。
386デフォルトの名無しさん:2005/10/23(日) 19:04:31
ちっ。
387質問です。:2005/10/23(日) 19:16:58
JPEGを読み込んでRGBの値を得るプログラムを教えてください。
388デフォルトの名無しさん:2005/10/23(日) 19:30:48
ルールを読まない人には教えません
389デフォルトの名無しさん:2005/10/23(日) 19:44:33
ちっ。
390380:2005/10/23(日) 20:52:11
一応、

Number of bags sold: 32
Weight per Bag: 5Lb
Price per pound: $5.99
Sales Tax: 7.25%

Total Price: 0.0

までは出力されるようになったのですが、
課題2のdとeである、TotalPriceとTotalPrice with Taxの計算が出来ません。
どこをいじっても0.0のままです。
今までのソースはttp://www.geocities.jp/java_homework2006/の方にアップしています
391デフォルトの名無しさん:2005/10/23(日) 20:59:15
TotalPrice = numberofBags * bagWeight * pricePerLb;
TotalPriceWithTax = TotalPrice * (1 + taxRate);
392380:2005/10/23(日) 21:10:33
>>391
Total Price = bagWeight * numberofBags * pricePerLb;
Total Price With Tax = TotalPrice + TotalPrice * taxRate;

でやれと指定されています。
Alternate Constructorの方に書いてはみるんですが、エラーを吐き、
エラーを吐かなくても、

bagWeight = 0;
numberofBags = 0;

としてるんで、どっち道0になってしまいます。
なので、Defaultの方で、my_coffeebag.setnumberofBags(32);、my_coffeebag.setbagWeight(5);
とセットしてやって、Alternateの方へ持って行き、それをさらにDefaultにゲットで持ってきています。
課題2は、同じNumber of bags sold: 32 〜 Total Price: $1027.88を普通に書いて出力だったのですが、
課題4は違うクラスも絡めて出力という主旨らしいです。
393デフォルトの名無しさん:2005/10/24(月) 01:18:45
>>390
>391は、「代入をしてない」という指摘だと思われ
課題に則して考えると、こうかな?
1.e)のメソッドを実装する
2.Total Price 出力の直前でe)のメソッドを呼び出し、代入する
  ⇒とりあえず、出力されるはず
 double TotalPriceWithTax;
 public void print(){
   ・・・・・・
   TotalPriceWithTax = e)のメソッド();
   System.out.println("Total Price: "+TotalPriceWithTax);
 }
3.TotalPriceWithTax はprint()でしか使わないので、
 インスタンス変数からローカル変数に移行する。
 public void print(){
   double TotalPriceWithTax;
   ・・・・・・
   TotalPriceWithTax = e)のメソッド();
   System.out.println("Total Price: "+TotalPriceWithTax);
 }
4.ワンクッションかませる必要も無いので、変数を削除する。
 public void print(){
   ・・・・・・
   System.out.println("Total Price: " + e)のメソッド());
 }
394393:2005/10/24(月) 01:22:41
というわけで、見本(出力方法が違うけど)
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=26061
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=26062

ところで、default constructor と alternate constructor の意味取り違えすぎ。
default constructor はJava用語で、引数無しのコンストラクタのこと。
だから、この問題で言うと、
 public coffeebag()
のこと。
問題の2.b)に、(default のものに対して) alternateな引数ありのコンストラクタを
作れ、とあるので、この問題で言う alternate constructor とは、
 public coffeebag(long bw, long nb)
のこと。

ついでに、
×違うクラスも絡めて出力という主旨
○最低限、違うコンストラクタで生成した違うオブジェクトを出力という主旨
395380:2005/10/24(月) 03:39:40
>>393
ご教授ありがとうございました。
default constructor と alternate constructor の詳しい説明もありがとうございました。
見本を元に組み直してみたのですが、mainの方のalternate constructorがうまく動作しません。
おそらく、上手く動作すれば
****************************************************
Number of bags sold: 32
Weight per Bag: 5Lb
Price per pound: $5.99
Sales Tax: 7.25%

Total Price: $1027.88
****************************************************
****************************************************
Number of bags sold: 160
Weight per Bag: 1Lb
Price per pound: $5.99
Sales Tax: 7.25%

Total Price: $1027.88
****************************************************
と出力されるはずなのですが、上手く動作しないので
****************************************************
Number of bags sold: 32
Weight per Bag: 5Lb
Price per pound: $5.99
Sales Tax: 7.25%

Total Price: $1027.88
****************************************************
が二つ出力されてしまいます。
396380:2005/10/24(月) 03:45:03
書き直したソースと出力結果は、
また ttp://www.geocities.jp/java_homework2006/ に上げています。
397デフォルトの名無しさん:2005/10/24(月) 05:50:33
【 課題 】
整数型(を要素とするQueueクラスのコンストラク
タ,Queueオブジェクトに要素を追加するメソッド
enqueue,要素を取り去るメソッドdequeueのJavaプ
ログラムを書き,実行せよ.
(イメージ例) <2, 1, 8>.enqueue(4)=<2, 1, 8, 4>
     <2, 1, 6>.dequeue()=<2, 1>

【 期限 】本日 15:00
【 Ver  】
【 補足 】よろしくお願いします。
398393:2005/10/24(月) 06:04:56
main の最後の行が違ってそう。

my_coffeebag.print();
 ↓
coffeeBag.print();

あと、変数名は、

coffeebag my_coffeebag;
coffeebag coffeebag;
 ↓
coffeebag coffeebag1;
coffeebag coffeebag2;

くらいが無難かな。
399380:2005/10/24(月) 06:34:08
>>398
おはようございます。
一応ですが、完成しました。ttp://www.geocities.jp/java_homework2006/
これでやっと眠ることが出来ます。。。
本当にありがとうございました。
400393:2005/10/24(月) 06:55:41
401Help me:2005/10/24(月) 13:58:32
【 課題 】
jpeg画像の読み込みを行い2値化するプログラムの作成方法教えて下さい(RGBの値を得るプログラムもよけれべお願いします。)
【 期限 】
今週中
【 補足 】よろしくお願いします。
402Help me:2005/10/24(月) 14:03:19
↑ 2値化とはある数字以下を0以上を1にする方法です。
間違ってたらごめんなさい
403デフォルトの名無しさん:2005/10/24(月) 14:16:06
【課題】標準入力から10個の数を受け取り、平均、分散、標準偏差を計算するプログラムを作成しなさい。
    (共通性の高い計算部分はメソッド化して作成すること)
【期限】今週木曜12時まで。
【補足】n!の計算プログラムと、nPrとnCrの計算プログラムを参考にすること

丸投げですが、宜しくお願いします。
僕も>>370みたいな感じの文字の羅列希望です…。
(何でそんなに皆判るのか…尊敬…)
404デフォルトの名無しさん:2005/10/24(月) 16:04:21
>>403
それは、>254と>257を読んだ上での○投げか?
405デフォルトの名無しさん:2005/10/24(月) 16:31:01
>>401-402
>205-216が参考になりそうな予感
406デフォルトの名無しさん:2005/10/24(月) 16:50:47
JavaScriptはスレちがい?
407デフォルトの名無しさん:2005/10/24(月) 16:51:37
>>406
スレ違いだな
408デフォルトの名無しさん:2005/10/24(月) 16:53:20
そうか、ありがとう
この板にないし
どこだろう?
409デフォルトの名無しさん:2005/10/24(月) 16:54:49
>>408
Web制作板
410397:2005/10/24(月) 17:21:08
>>400
ありがとうございました。

ただ、Queueメソッドで何をしているのかが分からないです。
forのところでエラーになります。。。
どなたか教えてください。
411login:Penguin:2005/10/24(月) 19:04:49
以下のsleepをかける処理で1ミリ秒しか掛けていないのに何故か表示が20ミリ秒
になって出てきます。
何故だか全く解りません・・・
お助けください。

public static void main(String[] args) {
long start = System.currentTimeMillis();
try {
Thread.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
long stop = System.currentTimeMillis();
System.out.println("実行にかかった時間は " + (stop - start) + " ミリ秒です。");
}
412デフォルトの名無しさん:2005/10/24(月) 21:08:48
【 課題 】
report.txtには英字、空白、「!?'」からなる約5000字の文章があります。
この文章中の文字の出現数を数えるプログラムを作成しなさい。
特殊文字や空白も数えること。        
【 期限 】10/27 23:59:59
よろしくお願いします
413デフォルトの名無しさん:2005/10/25(火) 01:55:29
【 課題 】1-12月までのカレンダーを4*3列で並べて、
日、土を色付けてウィンドウで表示しなさい。
【 期限 】26日18時まで
【 Ver  】特になし
【 補足 】 丸投げですがお願いします。
できれば1月から↓向きにに次の月が表示されるようにしろと言われてます。
414デフォルトの名無しさん:2005/10/25(火) 11:50:33
【 課題 】
      Cドライブ内にあるAフォルダー内にあるb.jpegのjpeg画像のRGB値を得る
      プログラムの作成方法教えて下さい
【 期限 】今週中
【 Ver  】特になし
【 補足 】プログラム始めたばかりなのでこの処理のとこだけ書かれても
      理解できないと思うので最初から最後まで書いていただくとありがたいのですが。
415デフォルトの名無しさん:2005/10/25(火) 23:41:38
>412
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=26100
急いで作ったのでバグあるかも。。
416デフォルトの名無しさん:2005/10/26(水) 01:58:23
>>415
コンパイルしました。
文字というのは「t」「s」の出現回数を調べるということです。
>>412は課題をそのままコピペしたんですが、大変申し訳ないです。。
417デフォルトの名無しさん:2005/10/26(水) 02:44:21
416の訂正
× 「t」「s」の出現回数
  ↓
○ 「t」や「s」などの出現回数

です。
頻出数の多い順に
t  e  a
24  23  20

のように表示してくれると嬉しいです。
418デフォルトの名無しさん:2005/10/26(水) 03:26:30
>>417
かなり横着してますが

import java.io.*;
public class CharCounter {
public static void main(String[] args) throws IOException {
Entry[] chars = new Entry[65536];
for(int i=0; i<65536; i++) chars[i] = new Entry(i);
FileReader fr = new FileReader("report.txt");
while(fr.ready()) { chars[fr.read()].increment(); }
java.util.Arrays.sort(chars);
for(int i=0; i<65536; i++) if (chars[i].num != 0) System.out.println(chars[i]);
}
static class Entry implements Comparable<Entry> {
int character, num;
Entry(int c) { this.character = c; }
void increment() { num++; }
public String toString() {
switch(character) {
case '\r': return "\\r\t"+num;
case '\n': return "\\n\t"+num;
case '\t': return "\\t\t"+num;
default:
if (character < 0x20) return String.format("\\u%04x\t%d", character, num);
return (char)character+"\t"+num;
}
}
public int compareTo(Entry o) { return o.num - num; }
}
}
419デフォルトの名無しさん:2005/10/26(水) 11:28:37
>>418
正しく動作しました。ありがとうございます!!

ですが殆ど意味が理解できない・・勉強しないと・・
どこの部分でカウントしてるのかも分かってないですw
このプログラムが書けるレベルの本があれば教えてください。。すれ違い?
420AK:2005/10/26(水) 11:38:27
【 課題 】以下の条件を満たすTurtleプログラムを完成せよ。
【 期限 】10月28日(金)
【 補足 】質問等が英語です。
まだプログラムを始めて1ヶ月ほどですので、全く自力では宿題がこなせません。
      丸投げですが、どうぞよろしくお願いします。
http://www.uploda.org/file/uporg223561.txt.html
http://www.uploda.org/file/uporg223563.txt.html
http://www.uploda.org/file/uporg223565.txt.html
421デフォルトの名無しさん:2005/10/26(水) 14:26:03
【課題】標準入力から10個の数を受け取り、平均、分散、標準偏差を計算するプログラムを作成しなさい。
    (共通性の高い計算部分はメソッド化して作成すること)
【期限】今週木曜12時まで。
【補足】参考→ttp://geocities.yahoo.co.jp/gl/java_syukudai/

丸投げですが、宜しくお願いします。
>>403と同じです。>>257読んで、ちょっと違うのかな…と思ったので。宜しくです。
422デフォルトの名無しさん:2005/10/26(水) 19:03:42
英語の問題は自分で訳してから載せろ、とルールに入れた方がいいな。
423デフォルトの名無しさん:2005/10/26(水) 19:41:25
>>421 <1/3>
import java.io.*;
class Calc{
private final int MAX=10;
private double[] val = new double[MAX];

public static void main(String[] args){
new Calc();
}

public Calc(){
inputValues();
calculate();
}
424デフォルトの名無しさん:2005/10/26(水) 19:48:21
>>421 (2/3)
public void inputValues(){
BufferedReader reader =new BufferedReader(new InputStreamReader(System.in));
int c=0;
double n=0;
do{
System.out.println();
System.out.print((c+1)+"番目の数値を入力:");
try{
n = Double.parseDouble(reader.readLine());
}catch(NumberFormatException e){
System.out.println("<無効な文字列です>");
continue;
}catch(IOException e){}
val[c]=n;
c++;
}while(c<MAX);
}

public void calculate(){
System.out.println("\n--------計算結果-------");
System.out.println("平均:"+average());
System.out.println("分散:"+variance());
System.out.println("標準偏差:"+diviation());
}
425デフォルトの名無しさん:2005/10/26(水) 19:50:35
>>421 (3/3)
public double sum(){
double n=0;
for(int i=0;i<MAX;i++)n+= val[i];
return n;
}

public double average(){
return sum()/MAX;
}

public double variance(){
double avr = average();
double n=0;
for(int i=0;i<MAX;i++)n+= (val[i]-avr) * (val[i]-avr);
return n;
}

public double diviation(){
return Math.sqrt(variance());
}
}
//end of list
426デフォルトの名無しさん:2005/10/26(水) 21:57:53
>413
期限すぎてすまぬが。しかもソース読みにくい。
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=26118
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=26119
> できれば1月から↓向きにに次の月が表示されるようにしろと言われてます。
すっかり忘れてました。
427413:2005/10/27(木) 03:49:48
>>426
期限については、自分で読んで内容を理解する時間を含めてなので
27日の15時までだったりします。

ありがとうございました。
428デフォルトの名無しさん:2005/10/27(木) 16:23:28
【 課題 】
      jpeg画像とbmp画像を読み込みRGBの値をR[i][j],G[i][j],B[i][j]に保存させ
      1つの画像を9分割にし色を検出するプログラム 
      色の数は赤、青、緑、黄(赤+緑)、シアン(緑+青)、紫(赤+青)
      白、黒(赤+青+緑)の8色です。ほかの色はそれぞれ近い色にしなさい
      
【 期限 】日曜日夕方5時ごろ
【 Ver  】1.42
【 補足 】部分部分でもいいのでのせていただくとありがたいです。

      実行結果の例です。
      ファイルの種類は? 1 jpeg 2 bmp
  1
ファイル名
      a.jpeg

__________________
| | | |
| 赤 | 青 | 緑 |
L_____|_____|_____|
| | | |
| 黄 | 茶 | シアン
      L ____|_____|_____|
| | | |
| 白 | 黒 | 赤 |
L_____|_____|_____| 

429デフォルトの名無しさん:2005/10/27(木) 16:25:29
文字がずれちゃったので
赤 青 緑
黄 茶 シアン
白 黒 赤
こんな感じでお願いします
430デフォルトの名無しさん:2005/10/27(木) 17:32:10
【 課題 】y= -x^3 + 20x^2 + 800x - 3000のグラフをできるだけ見やすく表示するプログラムを作成せよ。
【 期限 】10月29日
【 補足 】よろしくお願いします。
431デフォルトの名無しさん:2005/10/27(木) 19:09:34
またsourcepostつながらない。
調子悪いなあ。
432デフォルトの名無しさん:2005/10/27(木) 19:44:35
>>300
>>302
>>314
何度やっても抽出された画像が黒くなりうまくいきません。
期限はすぎているのですが,仕上げなければなりません。
自力ではまったくわからないので,すみませんがどうかお願いします。
433デフォルトの名無しさん:2005/10/27(木) 20:20:05
【課題】○×ゲームをAWTアプレットで作成しなさい
また、対CPU対戦もできるようにしなさい

【期限】11/9

【補足】全て書くと500行ぐらいになるそうなので、アクションの部分だけでもけっこうです
どなたかお願いします
434デフォルトの名無しさん:2005/10/27(木) 22:15:11
JPEG の宿題にだけは答えるまいと心に誓った。
>>401
>>414
>>428
435デフォルトの名無しさん:2005/10/27(木) 23:09:42
>430
http://www.wikiroom.com/java/index.php?SourcePost#x4c9a27b
wikiって重いから嫌いなんだよなー。
これ投稿するのにも無駄に時間かかったし。
sourcepostも調子悪いし、簡単にソースをアップできる場所ないかなあ。
436デフォルトの名無しさん:2005/10/28(金) 12:02:14
【課題】
実行結果
「ベクトル a=(-xx.xx, x.xx, xx.x, -xx.xx, xx.x, -x.x, xx.xxx, xx.xx)
ベクトル b=(xx.x, -x.xxx, xx.x, xx.xxx, x.xx, -xxx.x, xx.x, -xx.xxx)

内積 a・b=xxxx.xxxx」となるようなプログラムを作成しなさい。

条件1、データを与える部分のベクトルの次元が変わっても動作するようにプログラムを書くこと.
すなわちベクトルの次元を具体的数値で与えずに プログラムを記述せよ,ということである.

条件2、二つのベクトルの成分はどちらも(一般に小数点をもつ, つまり整数ではない)実数データとして各自が適当な桁数で,
配列データの初期化を使って与えよ. 小数点以下が.0ばかりではダメ.なお与えるベクトルは5次元以上であること.

条件3、内積を求める積和の部分には複合代入演算子を使うこと.

条件4、各自で与えたデータとそれによる計算結果を下の結果のように出力せよ.成分の表示はfor文を使って出力すること.

【期限】10/31

【補足】長文すいません。お願いします。
437デフォルトの名無しさん:2005/10/28(金) 16:23:31
内積ってこうだっけ

public class Q436 {
public static void main(String[] args) {
double[] a = { //条件1, 2
1.1, 2.1, 3.1, 4.1, 5.1
};
double[] b = {
0.5, 0.5, 0.5, 0.5, 0.5
};

double result = 0.0;
for (int i=0; i<a.length; i++) {
result += a[i] * b[i]; //条件3
}

printVector(a, "a");
printVector(b, "b");
System.out.println("a・b = " + result);
}

private static void printVector(double[] v, String name) {
System.out.print("ベクトル " + name + " = ");
for (int i=0; i<v.length; i++) { //条件4
if (i != 0) {
System.out.print(", ");
}
System.out.print(v[i]);
}
System.out.println("");
}
}
438デフォルトの名無しさん:2005/10/28(金) 18:11:33

【 課題 】下
【 期限 】11月1日
【 Ver  】指定無し
【 補足 】http://www.fox-er.com/up3/src/fox1570.txt
よろしくおねがいします
439デフォルトの名無しさん:2005/10/28(金) 21:34:36
【課題】
英語の試験を行った。その参加者は不定とし、参加者の平均点を求めるプログラムを作製せよ。
平均点は以下のように求める。
total+=mark_i //得点の加算
number++; //受験者のカウント
: //以上を、参加者の数だけ繰り返す
: //繰り返し終わったら以下の平均値を求める

【Ver】
1.5

【期限】
11月3日

【捕捉】
どなたかよろしくお願いします。
440デフォルトの名無しさん:2005/10/28(金) 22:00:23
>439
// ScoreAverageDemo.java
// スコアはコマンドライン引数で与えるものとする。
// 実行例:java ScoreAverageDemo 20 30 40
public class ScoreAverageDemo {
public static void main(String[] args) {
int total = 0;
int number = 0;
for( int i=0; i<args.length; i++ ) {
try {
int score = Integer.parseInt( args[i] );
total += score;
number++;
} catch( NumberFormatException nfe ) {
System.out.println( " 整数に変換できません:" + args[i] );
}
}
double average = Math.round( total*100.0/number ) / 100.0;
System.out.println( number + "人の平均点:" + average + "点" );
}
}
441デフォルトの名無しさん:2005/10/29(土) 00:16:48
【 課題 】キーボードから入力した二つの値で、計算(足し算、引き算、割り算、掛け算)を行うプログラム

【 期限 】来週の月曜日
【 Ver  】指定はありません
【 補足 】
  データ型の指定はありません。
  値1を入力→値2を入力→演算子を入力→結果 の流れでお願いします。
  演算子の切り替えが分からず、挫折しました。
     

      お手数ですが、どうぞよろしくお願い致します。
442デフォルトの名無しさん:2005/10/29(土) 01:50:39
>>435
どうもありがとうございます。
443デフォルトの名無しさん:2005/10/29(土) 01:52:48
444デフォルトの名無しさん:2005/10/29(土) 02:07:02
>>435
すいません、33行目に「java.lang.DoubleのvalueOf(java.lang.String)は(int)に適用できません。」
というエラーメッセージが出ます。どうすればいいのでしょうか?
445デフォルトの名無しさん:2005/10/29(土) 02:16:32
>444
Double.valueOf(double)は1.5のメソッドなんだって。
JDK最新版入れて。嫌なら括弧内をStringにしてしまえばいい。
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/Double.html#valueOf(double)
446デフォルトの名無しさん:2005/10/29(土) 02:38:32
>>445
x = -Double.valueOf(slider.getValue() ).doubleValue(); の部分をどう変えればいいのでしょうか?
Double.parseDoubleにするんでしょうか?括弧内をStringにしてもだめでした。
447445:2005/10/29(土) 03:44:03
>446
> 括弧内をStringにしてもだめでした。
ビビって1.4で試してしまったじゃないかー。ダメじゃないし。動く。
x = -Double.valueOf(""+slider.getValue()).doubleValue();
448445:2005/10/29(土) 03:50:32
つかそんな難しいことしなくても、
x = -(double)slider.getValue();
でいいな。寝よ。
449デフォルトの名無しさん:2005/10/29(土) 11:41:41
450デフォルトの名無しさん:2005/10/29(土) 12:51:12
>>448
できました。
ありがとうございます。
451デフォルトの名無しさん:2005/10/29(土) 14:36:13
>>443
ありがとうございます!!
452デフォルトの名無しさん:2005/10/29(土) 16:08:50


もうすぐ『JavaOne』 

http://jp.sun.com/company/events/javaone/2005/
453デフォルトの名無しさん:2005/10/29(土) 18:56:16
プログラムを作るんじゃないんですが、
@「リスト」をポインタを用いて実装したとき,どのような操作が高速に実行できるか.
A「連結リスト」では,あとに続くデータの検索は容易であるが,前に並ぶデータの検索はむつかしい.これを改善するにはどのような構造にすればよいか.
データ構造に関するこの二つの問題の答えがわからないので教えてください。
454デフォルトの名無しさん:2005/10/29(土) 21:32:16
>433
http://www.wikiroom.com/java/index.php?SourcePost#s4a44366
Swing使わずにやってみたら慣れなくてエライ大変でした。
動作報告よろしく。
455デフォルトの名無しさん:2005/10/29(土) 22:53:25
【 課題 】1対1でメッセージの送受信ができるプログラムをつくる
【 期限 】11/1
Javaについては今まで学んでなかったのですが、
独学で勉強してきてその上で作って来いということです。
取り合えずjavaの入門書のようなものは読みましたが、
正直どのようにして実装したらいいのか全然わかりません。
何か参考になるほうなHPなど教えていただけませんか。


456デフォルトの名無しさん:2005/10/29(土) 23:03:48
>>455
1ばっかりだな
457デフォルトの名無しさん:2005/10/29(土) 23:06:25
>455
たぶん検索した方が早い。
458デフォルトの名無しさん:2005/10/30(日) 03:03:59
>>453
@順次操作
A双方向リストにする。もしくはインデックスを別に持つ
459436:2005/10/30(日) 11:21:17
>>437
かなり遅レスですがありがとうございます!
ちゃんと理屈を勉強してみますね。
460デフォルトの名無しさん:2005/10/30(日) 13:21:39
【 課題 】before.txtに書かれた5コの数値をソートしファイルafter.txtに出力せよ
【 期限 】11月2日
【 補足 】
====before.txt====
90
20
50
30
100

ファイルの読み込みがよく解りません バイナリファイルはFileInputStreamとInputStreamReaderを使うとあるのですが普通のテキストファイルの場合どのように読み込むのでしょうか?
461デフォルトの名無しさん:2005/10/30(日) 14:53:00
>460
// SortDemo.java
import java.io.*;
import java.util.*;
public class SortDemo {
private static final File FILE_INPUT = new File( "before.txt" );
private static final File FILE_OUTPUT = new File( "after.txt" );
private static TreeSet<Integer> numbers = new TreeSet<Integer>();
public static void main(String[] args) {
BufferedWriter bw = null;
try {
BufferedReader br = new BufferedReader( new FileReader(FILE_INPUT) );
String line;
while( (line=br.readLine()) != null ) numbers.add( Integer.parseInt( line ) );
System.out.println( FILE_INPUT.getName() + "を読み込みました。" );
bw = new BufferedWriter( new FileWriter(FILE_OUTPUT) );
Iterator<Integer> iterator = numbers.iterator();
while( iterator.hasNext() ) bw.write( iterator.next() + "\n" );
System.out.println( FILE_OUTPUT.getName() + "に書き込みました。" );
} catch( FileNotFoundException fnfe ) {
fnfe.printStackTrace();
} catch( IOException ioe ) {
ioe.printStackTrace();
} catch( NumberFormatException nfe ) {
nfe.printStackTrace();
} finally {
try {
if( bw != null ) bw.close();
} catch( IOException ioe ) {}
}
}
}
462460:2005/10/30(日) 15:33:10
>>461 早速やって頂きありがとうございます。 大変解りやすくて恐縮です。
Eclipseへ貼り付けてみたところ 
「型 TreeSet は総称ではありません。引数 <Integer> でパラメーター化できません。」 と、
「構文エラー。パラメーター化された型はソース・レベルが 5.0 の場合にのみ使用可能です。」となってしまいました。
申し訳ないのですが、どのようにしたら解決できますでしょうか?
宜しくお願いします。
463461:2005/10/30(日) 15:48:30
>462
JDK5.0の機能使いまくりです。
5.0が入ってなかったら入れてください。
eclipseだと5.0用に設定しないと駄目だったと思うので
とりあえずコンソールからコンパイル/実行してください。
464460:2005/10/30(日) 20:42:48
JDK5.0とはSDK1.5の事なんですね。 インストしました。
java -version と打つと
java version "1.5.0_05"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_05-b05)
Java HotSpot(TM) Client VM (build 1.5.0_05-b5, mixed mode, sharing)
と出るようになりました。 これでちゃんとパスは通ってるみたいなのですが
コマンドラインでjavac SortDemo.java とコンパイルすると
SortDemo.java:8: <identifier>がありません
private static TreeSet<Integer> numbers = new TreeSet<Integer>();
^
となってしまいました・・・ちゃんとインストールされてないのでしょうか?
465461:2005/10/30(日) 20:58:20
>464
コンパイラが5.0になってないとダメです。
javac -versionで確認してください。
たぶん1.5になってません。
pathを見直してください。
466デフォルトの名無しさん:2005/10/30(日) 23:39:58
【課題提示用テンプレ】
【 Ver  】希望するJavaバージョンがあれば書きます(1.5 とか 1.4以前とか)

は、やっぱり必須にしたほうがいいんじゃないか?
バージョン違いで動かないケース大杉。
467デフォルトの名無しさん:2005/10/30(日) 23:46:48

>466
そうなってくれると答える側としても非常にありがたい。
468デフォルトの名無しさん:2005/10/31(月) 12:08:50
MSのVMでも動くコードを書けば問題なし。
469デフォルトの名無しさん:2005/10/31(月) 12:22:11
>>468
面倒…バージョン書かないほうが悪いと思うが
470460:2005/10/31(月) 12:42:26
pathの前の方にJDK5.0のパスを追加するとうまくいきました。 古い本を読んでたみたいで・・・jdk1.4.2を使ってやっていました。 JDK5.0の新機能について学んで出直してきますw
471 ◆LuQPgjJ9V2 :2005/10/31(月) 15:08:22
>>461 手法に問題あり。TreeSetを利用しているのでファイルに同じ数字が2度以上
ある場合は正しい結果が得られない。

import java.io.*;
import java.util.Arrays;
public class SortDemo {
private static final File FILE_INPUT = new File(".\\before.txt");
private static final File FILE_OUTPUT = new File(".\\after.txt");
public static void main(String[] args) {
int[] numbers = new int[5];//入力数は5と仮定
try {
BufferedReader br = new BufferedReader(new FileReader(FILE_INPUT));
String line;
for (int i = 0; i < numbers.length; i++) {
line = br.readLine();
numbers[i] = Integer.parseInt(line);
}
System.out.println(FILE_INPUT.getName() + "を読み込みました。");
sort(numbers);
BufferedWriter bw = new BufferedWriter(new FileWriter(FILE_OUTPUT));
for (int i = 0; i < numbers.length; i++)
bw.write(numbers[i] + "\n");
System.out.println(FILE_OUTPUT.getName() + "に書き込みました。");
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
static void sort(int[] numbers) {
Arrays.sort(numbers);
}
}
472466:2005/10/31(月) 17:29:07
>>467>>469
いや、まあ、そうなんだが、言いたかったのはそこじゃなくて、
ここにも 《必須》 マークあったほうがいいんじゃね?ってことよ。

素人さんは、どうせ事の重大性を知らないんだから、
バージョンの希望があるはずもなく、それで誰も書かないんだと思うわけよ。
だったら、最初っから 《必須》 にしといたほうがいいんじゃないかと。

↓こんな感じ
【 Ver  】希望するJavaバージョンを書きます(java -version で調べます) 《必須》
473デフォルトの名無しさん:2005/10/31(月) 19:21:54
>>454
すいません返事遅れました
今Javaが打てないので、明日確認してみます!
わざわざAWTで打ってもらってありがとうございました!
474454:2005/10/31(月) 20:17:08
>473
動かしたらまたコメントください。
475デフォルトの名無しさん:2005/10/31(月) 21:20:20
>>434
何で?
476デフォルトの名無しさん:2005/10/31(月) 21:26:15
【 課題 】キーボードで入力された国語、数学、英語の点数を配列に格納し出力しなさい。
【 期限 】11月3日
【 補足 】
477デフォルトの名無しさん:2005/10/31(月) 21:30:09
Stirng[] points=new String[3];
BufferredInputStream is=new BuffererdInputStream(new InputStreamReader(System.in));
System.out.println("国語?");
points[0]=is.readLine();
System.out.println("数学?");;
points[1]=is.readLine();
System.out.println("英語?");;
points[2]=is.readLine();
System.out.println("国語"+points[0]);
System.out.println("算数"+points[1]);
System.out.println("英語"+points[2]);
478461:2005/10/31(月) 21:41:07
>471
確かにそうだなあ。
でも入力数を決めうちするのもどうかと思うので、こんなカンジで。
// SortDemo.java
import java.io.*;
import java.util.*;
public class SortDemo {
private static final File FILE_INPUT = new File(".\\before.txt");
private static final File FILE_OUTPUT = new File(".\\after.txt");
public static void main(String[] args) {
ArrayList<Integer> numbers = new ArrayList<Integer>();
BufferedWriter bw = null;
try {
BufferedReader br = new BufferedReader(new FileReader(FILE_INPUT));
String line;
while( (line=br.readLine()) != null ) numbers.add( Integer.parseInt(line) );
System.out.println(FILE_INPUT.getName() + "を読み込みました。");
Integer[] numberIntegers = numbers.toArray( new Integer[0] );
Arrays.sort(numberIntegers);
bw = new BufferedWriter(new FileWriter(FILE_OUTPUT));
for( int number : numberIntegers ) bw.write( number + "\n" );
System.out.println(FILE_OUTPUT.getName() + "に書き込みました。");
bw.close();
} catch( IOException e ) {
e.printStackTrace();
} finally {
try {
if( bw != null ) bw.close();
} catch( IOException ioe ) {}
}
}
}
479デフォルトの名無しさん:2005/10/31(月) 21:41:46
>477
ありがとうございます。
キーボードから入力された文字って配列に格納できますか?
初歩的な質問ですいません。
480461:2005/10/31(月) 21:52:50
>478のtry節最後のclose()は不要でした。スイマセン。


ここに書いてもあんまり意味ないかもしれないけどテンプレ。

【課題提示用テンプレ】
【 課題 】与えられた課題文をそのまま書きます 《必須》
【 Ver  】希望するJavaバージョンを書きます(java -version で調べます) 《必須》
【 用語 】数学用語、専門用語の意味、説明を書きます 《あれば必須》
【 期限 】提出期限、又は解答希望日を書きます
【 補足 】課題について自分なりに補足する事、何か思う事があれば書きます。
       丸投げでない場合は、途中までのソースとその経過報告、
       質問点、疑問点を書きます(なるべく丸投げにしてください)
481デフォルトの名無しさん:2005/10/31(月) 23:25:36
if文で延々やろうとしたらfor文でやれと言われました
バージョンなお願いします。
【 期限 】11/4 15時
【 Ver  】指定なし
【 課題 】以下のファイル(*)を参照にして、
次の仕様のC言語プログラムを作成しなさい。
なお、次の一行を使用すること。
printf("最小値= %d\n,ten[0]")

1.データをキーボードから入力する
2.入力したデータを配列fiveに格納する
 (1〜2を5回繰り返して5個のデータを格納する)
3.すべてのデータ(5個)を画面表示する
4.最小値を画面表示する 例「最小値: 12」

↓*入力した3個のデータを『No. ○○』と表示するプログラム

/* sample1.c */
#include<stdio.h>
main()
int five[3],i;

for(i=0,i=3;i++){
printf("No.%d:"i+1);
scanf("%d",&five[i]);
}
printf("点数表示\n");
for(i=0:i<3,i++){
printf("No:%d:%d\n"i+1,ten[i]);
}
}
482デフォルトの名無しさん:2005/11/01(火) 00:10:28
>>481
スレタイをよく見ろ

import java.util.Scanner;
public class Q481 {
public static void main(String[] args) {
int five[] = new int[5];
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < 5; i++) {
System.out.printf("No.%d:", i + 1);
five[i] = scanner.nextInt();
}
System.out.println("数値表示");
int min = Integer.MAX_VALUE;
for (int i = 0; i < 5; i++) {
System.out.printf("No:%d:%d\n", i + 1, five[i]);
if (five[i] < min) min = five[i];
}
System.out.printf("最小値= %d\n", min);
}
}
483デフォルトの名無しさん:2005/11/01(火) 11:14:35
久々に見たな
C宿題スレでは不思議と見ない たまたま俺が見てないだけかな?
484デフォルトの名無しさん:2005/11/01(火) 16:55:49
【 Ver  】指定なし
【 期限 】11/5
【 課題 】数値が記述されているテキストファイルを読み込み
合計値を求めて表示するプログラムを作成しなさい
但し、結果が指数表記にならないこと、BigIntegerは
      使わないこと。
【 補足 】テキストに入力されている数値は整数で、最大桁数は100桁
485デフォルトの名無しさん:2005/11/01(火) 17:06:50
その数値が記述されているテキストは空白区切りなのかカンマ区切りなのか
486484:2005/11/01(火) 17:10:47
>>485
空白区切りです。

後、追加補足で BigDecimal も使えません。
487デフォルトの名無しさん:2005/11/01(火) 17:28:56
【 課題 】
標準入力(キーボード)から整数値nを入力すると、
その数値n までの九九の表を表示するプログラムを作成せよ。
つまり、入力された数値n が 3 なら、3 X 3 までの表。
for文またはwhile文を使い、ループは多重ループを使うようにせよ。
各行の数字が縦に揃うように注意せよ。
【 期限 】11/7
【 Ver  】指定なし
【 補足 】
丸投げです。
よろしくお願いします。
488デフォルトの名無しさん:2005/11/01(火) 18:48:23
>>487
public class Q487 {
public static void main(String[] args) {
java.util.Scanner scanner = new java.util.Scanner(System.in);
int num = scanner.nextInt();
int length = String.valueOf(num).length();
String format = String.format("%%%dd*%%%dd=%%%dd ", length, length, length * 2);
for (int i = 1; i <= num; i++) {
for (int j = 1; j <= num; j++) {
System.out.printf(format, j, i, i * j);
}
System.out.println();
}
}
}
489488:2005/11/01(火) 18:55:17
ちょっとだけ修正

public class Q487 {
public static void main(String[] args) {
java.util.Scanner scanner = new java.util.Scanner(System.in);
int num = scanner.nextInt();
String format = String.format("%%%1$dd*%%%1$dd=%%%2$dd ", String.valueOf(num).length(), String.valueOf(num*num).length());
for (int i = 1; i <= num; i++) {
for (int j = 1; j <= num; j++) {
System.out.printf(format, j, i, i * j);
}
System.out.println();
}
}
}
490デフォルトの名無しさん:2005/11/01(火) 19:09:38
public class Q484 {

public static void main(String[] args) {
try {
BufferedReader reader = new BufferedReader(new FileReader(args[0]));
String line = reader.readLine();
reader.close();

Q484 q484 = new Q484();

String[] values = line.split(" ");
for (int i=0; i<values.length; i++) {
q484.add(values[i]);
}

System.out.println(q484.getResult());
} catch (IOException ex) {
ex.printStackTrace();
}
}

private int[] digits;

public Q484() {
digits = new int[100];
}
491デフォルトの名無しさん:2005/11/01(火) 19:09:49
public void add(String valueStr) { //文字で表現された数値を加算
int index = digits.length - 1; //最下桁から計算
for (int i=0; i<valueStr.length(); i++) {
int value = valueStr.charAt(valueStr.length() - i - 1) - '0'; //最下桁の文字を0〜9の数値に変換
add(index, value);
index--;
}
}

private void add(int index, int value) {
digits[index] += value;
if (digits[index] >= 10) {
digits[index] -= 10;
add(index - 1, 1); //繰り上げを再帰で行う
}
}

public String getResult() {
StringBuffer buffer = new StringBuffer(); //最上位桁から順に送り込む

boolean foundNotZero = false;
for (int i=0; i<digits.length; i++) {
if (foundNotZero || (digits[i] != 0) || (i == digits.length - 1)) {
//0以外の物が既に現れているか、今まさに現れたか、現れなかったにせよ最下桁に至ったか、
//そのいずれかの条件が揃った時文字列バッファに追加する
buffer.append(digits[i]);
foundNotZero = true;
}
}
return buffer.toString();
}
}
492デフォルトの名無しさん:2005/11/01(火) 19:11:19
以上。

実行は
 java Q484 ファイル名

クラス名は適当に変えるべし
493デフォルトの名無しさん:2005/11/01(火) 19:41:44
【 課題 】コラッツの予想の数列をプログラムで実行せよ
【 用語 】コラッツ予想=任意の正の整数nに対して,それが 奇数なら3倍して1をたす,
偶数なら2で割る. その結果に対して,同じことを繰り返す.結果が1になったら終了
【 期限 】11/3
【 ver  】 1.4
いろいろググってみましたが見つかりませんでした・・・。
お願いします。
494デフォルトの名無しさん:2005/11/01(火) 20:22:33
public class Q493 {

public static void main(String[] args) {
int n = Integer.parseInt(args[0]);
while (n != 1) {
System.out.print(n);
if (n%2 == 1) {
n = n * 3 + 1;
} else {
n /= 2;
}
System.out.print(" ");
}
System.out.print(n);
}

}
495デフォルトの名無しさん:2005/11/01(火) 20:22:56
【 課題 】Stringを使い、文字列中に特定の文字が幾つ出てくるか数えるプログラムを作成せよ。
【 補足 】今回は「あめんぼあかいなあいうえお」の中に、「あ」が幾つ含まれているか数えたいのです。
【 期限 】11/2朝
496デフォルトの名無しさん:2005/11/01(火) 20:27:50
>>493
import java.math.BigInteger;
import java.util.Scanner;
public class Q493 {
private static final BigInteger ONE = BigInteger.valueOf(1);
private static final BigInteger TWO = BigInteger.valueOf(2);
private static final BigInteger THREE = BigInteger.valueOf(3);
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
BigInteger bigInteger = scanner.nextBigInteger();
if (bigInteger.signum() != 1) throw new RuntimeException("1以上の整数を入力してください: "+bigInteger);
while(!bigInteger.equals(ONE)) {
System.out.println(bigInteger);
bigInteger = bigInteger.testBit(0) ? bigInteger.multiply(THREE).add(ONE) : bigInteger.divide(TWO);
}
System.out.println(bigInteger);
}
}
497デフォルトの名無しさん:2005/11/01(火) 20:33:09

>496
1.4じゃScannerはダメ。

// Q493.java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
public class Q493 {
private static final BigInteger ONE = BigInteger.valueOf(1);
private static final BigInteger TWO = BigInteger.valueOf(2);
private static final BigInteger THREE = BigInteger.valueOf(3);
public static void main(String[] args) {
try {
System.out.print( "1以上の整数を入力してください > " );
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BigInteger bigInteger = new BigInteger(br.readLine());
if( bigInteger.signum() != 1 ) throw new RuntimeException("1以上の整数を入力してください: " + bigInteger);
while( !bigInteger.equals(ONE) ) {
System.out.println(bigInteger);
bigInteger = bigInteger.testBit(0) ? bigInteger.multiply(THREE).add(ONE) : bigInteger.divide(TWO);
}
System.out.println(bigInteger);
} catch( IOException ioe ) {
ioe.printStackTrace();
}
}
}
498デフォルトの名無しさん:2005/11/01(火) 20:33:22
>>495
public class Q495 {
public static void main(String[] args) {
String str = "あめんぼあかいなあいうえお";
int num = 0;
for (int i=0; i<str.length(); i++) {
if (str.charAt(i) == 'あ') num++;
}
System.out.println(num);
}
}
499496:2005/11/01(火) 20:34:53
>>493
バージョン見てませんでした…すみません。

>>497
指摘ありがとう。
500495:2005/11/01(火) 20:49:42
>>498
有難うございます!

こういうのをわかりやすく解説しているサイトや本はないでしょうか
501デフォルトの名無しさん:2005/11/01(火) 20:56:29
>>474
○×ゲームを依頼した者です。
今動かそうとしてみましたが、どうもエラーが起きてコンパイルできないみたいです
502デフォルトの名無しさん:2005/11/01(火) 20:58:26
>>501
エラーメッセージくらい書こうよ…
503454:2005/11/01(火) 21:05:24

どうせまたJDK5.0がらみだと思います。
JDKの最新版入れて動かしてください。

ルールの
> 5:もし回答プログラムがアップされたら、その返答と動作報告をお願いします。
は「動かなかったらエラーメッセージの詳細な内容も載せろ」というのを追記した方がいいな。
504487:2005/11/01(火) 21:09:53
ありがとうございました。
助かりました。
505デフォルトの名無しさん:2005/11/01(火) 22:30:46
【 課題 】7.と8.の課題5をよろしくお願いします。http://page.freett.com/kb100000/e2.txt
【 補足 】まだJAVAはじめたばかりで、何かコツなどがあったらお願いします。
あとレポートの書き方は自由らしいのですが、他の課題などはどのような考察を書いたらいいかよければ教えてください。
【 期限 】今日中

506デフォルトの名無しさん:2005/11/01(火) 22:56:14
あれだな、普通に業務やってるけど
名前とかインデントとか大事だなw
Sample5とかいうクラス名見ただけでモチベーションが。。。
507デフォルトの名無しさん:2005/11/01(火) 23:11:50
いや、まだいい
sample5のほうが萎え
508デフォルトの名無しさん:2005/11/01(火) 23:12:13
>>506
そこをなんとか
でも俺の行ってる大学ってやっぱダメなんですかね。
正直食っていければなんでもいいんですけど、将来情報システム系の職に
就けるのか疑問です・・。
509デフォルトの名無しさん:2005/11/01(火) 23:12:29
GetXXX()
は見たくねェ
510デフォルトの名無しさん:2005/11/02(水) 00:30:42
>>505
課題とかじゃなくてこれそのまま答えだと思うぞ。
classごとそのままペーストしてコンパイルして
sample5よべば4と3が表示されるが考察すれということなのか???
511デフォルトの名無しさん:2005/11/02(水) 00:46:54
>>510
ありがとうございます。
そのままってことは、あとに繋げればいいんですかね・・。
http://page.freett.com/kb100000/e2.txt
まださっぱりなんで、今回はわかるとこだけ考察してみます・・
ちなみに第2回はアプレット、第3回はGUI、第4回はスレッド、第5回Java 3Dと
どんどん進むそうですが、俺は馬鹿で鬱で軽いパニックなんで、がんばんないとな。
512デフォルトの名無しさん:2005/11/02(水) 00:49:27
間違えた、こっちです
http://page.freett.com/kb100000/g.txt
513デフォルトの名無しさん:2005/11/02(水) 00:58:37
【 課題 】Appletでのマルチスレッドを利用した複数画像によるアニメーションを作成せよ。
【 期限 】今日中
【 Ver  】1.4.2
【 補足 】一応自分でやったのですが、エラーが出ます。ネットワーク上の画像を読み込むときは
どうたらとか言われた気がするのですがよくわかりません。どなたかよろしくお願いします。
514513:2005/11/02(水) 01:08:54
課題内容の補足です。作成するAppletは、ネットワーク上の複数画像ファイルを読み込んでアニメーションを実行させるものです。
515511:2005/11/02(水) 01:34:38
javaって難しいですよね。
http://page.freett.com/yszkjnt/java/inp_main.html
のように簡単に書いてくれると理解しやすいんだけど。。
お金もないし、バイトしなくちゃいけないし、少し難しいまで
上のようなサイトのように簡単に分解して書いてあるようなおすすめの
本があったら、是非教えてくださいまし・・。わかりにくいのやってると
追い詰められて絶死状態になります。あと、今大学3年なんですが、
こういうのを勉強していて、どのようなところに就職できるのでしょうか?
より分かりやすくて簡単で、給料が良くてスペースが広い、みたいな。
学校は席のスペースも狭いし、わかりにくいことをバンバンやるのが嫌なんです・・
今は株やっているんで、いつかは株優先で暮らすのが理想なんですけどね・・
スレ違いすみません。スーパーダメ人間の愚痴でした。
516デフォルトの名無しさん:2005/11/02(水) 01:59:41
この書き方が読みにくくして難しいだけ
とにかくエクリプスにこぴぺした後
コントロール+シフト+F
で読みやすくなるから・・・
517○×:2005/11/02(水) 02:39:28
>>502
すいません。

TicTacToe.java:18〜31: 'class'または'interface'がありません
TicTacToe.java:157: 'class'または'interface'がありません
TicTacToe.java:161:<identifier> がありません
TicTacToe.java:165:'('または'['がありません
TicTacToe.java:167:<identifier> がありません
TicTacToe.java:223: 'class'または'interface'がありません
TicTacToe.java:228:\64は不正な文字です
TicTacToe.java:273:<identifier> がありません

518至急、頼んます。:2005/11/02(水) 07:19:52
jspでログイン画面とログイン成功画面を作成しています。
ログイン画面に「ログイン回数」と「ログイン成功回数」を表示させるには、どうすればよいでしょうか?
</form>より前の、ボタンやパスワードなどをログイン画面に表記するところまでは分かっているのですが、回数を表示させるところが分かりません。
519484:2005/11/02(水) 09:35:48
>>490
>>491
問題なく動作しました。
本当にありがとうございました。
520454:2005/11/02(水) 22:03:03

>517
5つのファイルに分かれているということを分かりやすく伝わるようにしたつもりでしたが
無理でしたか。。

TicTacToe.javaは273行もありません。
521デフォルトの名無しさん:2005/11/02(水) 22:03:50
>>518
とりあえずテンプレ使ってくれ。
522○×:2005/11/02(水) 23:09:55
>>520
あ、クラス5つもあったんですね。気づきませんでした。すいません

それぞれ5つに分けて、TicTacToe.javaをコンパイルしましたが、またエラーがおきてしまいました

Player.java:6:<identifier>がありません
Player.java:10:'('または'['がありません
Player.java:12:<identifier>がありません
TicTacToe.java:14シンボルを解決できません
Cpu.java:7:\64は不正な文字です
Cpu.java:52:<identifier>がありません
TicTacToe.java:77シンボルを解決できません
システムリソースが不足しています
詳細は次のスタックトレースで確認してください
java.lang.OutOfMemoryErorr

523454:2005/11/02(水) 23:23:16

>522
>503

×Cpu
○CPU

×Erorr
○Error

コピペぐらいちゃんとできるようになってください。
524○×:2005/11/03(木) 00:27:39
>>523
すいません、コマンドプロンプトで打ってるのでコピペできなくて・・・

確認してみます
525sage:2005/11/03(木) 08:36:58
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\java>


コマンドプロンプトのこぴぺ…
526デフォルトの名無しさん:2005/11/03(木) 08:38:30
あげてしまいましたorz
527デフォルトの名無しさん:2005/11/03(木) 13:53:39
http://page.freett.com/kb100000/a.doc
期限:月曜日まで。
よろしくお願いします。
528デフォルトの名無しさん:2005/11/03(木) 17:24:27
>527
// FontTest.java
import java.applet.*;
import java.awt.*;
public class FontTest extends Applet {
public void paint(Graphics g) {
String title = getParameter("title");
String date = getParameter("date");
Font boldFont = new Font("Serif", Font.BOLD, 16);
g.setFont(boldFont);
FontMetrics fmBold = getFontMetrics(boldFont);
int titleX = getWidth() / 2 - fmBold.stringWidth(title) / 2;
int titleY = fmBold.getHeight();
g.drawString(title, titleX, titleY);
Font italicFont = new Font("SansSerif", Font.ITALIC, 12);
g.setFont(italicFont);
FontMetrics fmItalic = getFontMetrics(italicFont);
int dateX = getWidth() - fmItalic.stringWidth(date);
int dateY = getHeight() - fmItalic.getHeight();
g.drawString(date, dateX, dateY);
}
}

// HTMLファイル(FontTest.classと同じディレクトリに配置する)
<html>
<body>
<applet code="FontTest.class" width=300 height=300>
<param name="title" value="Hello Java World!!">
<param name="date" value="2005/11/03">
</applet>
</body>
</html>
529デフォルトの名無しさん:2005/11/03(木) 19:42:19
【課題1】
次の仕様を満たす相性占いプログラムを作成し、自分と、出席番号が次の人(以下、相手)の相性を判定せよ。
(Uranai.javaとUranaiApp.javaを提出)

* クラスUranai

フィールド
* 名前(ひらがなが並んだ文字列)
* 名前の各文字をそれぞれ1〜5に置き換えた数字の列(1〜5の数字が並んだ文字列)
あ,か,さ,... → 1
い,き,し,... → 2
う,く,す,... → 3
(以下同様)

メソッド
* 表示 ... "私の名前は〜です"と表示する。

* 判定 ... 自分と相手の相性を判定して表示する。
1. 引数で、Uranaiクラスのインスタンス(相手)を一つ受け取る。
2. 自分の数字列と相手の数字列を連結して長い数字列を作る。
3. 手順2で作った数字列を引数として、次の計算メソッドを呼び出し、相性の計算を行う。計算メソッドの結果を適当な変数に入れておく。
4. 変数に入れておいた計算結果を、"私と〜の相性は〜%です"と表示する。
530デフォルトの名無しさん:2005/11/03(木) 19:49:51
【課題1の続き】

* 計算 ... 二人分の長い数字列から相性を計算して返す。
1. 引数で、二人分の長い数字列(文字列一つ)を受け取る。
2. 数字列の長さが3以上である間、以下の処理を繰り返す。(whileループ)
  (a). 新しい数字列用の文字列変数を用意し、空文字列""を代入する。
  (b). 現在の数字列の各数字に対して、前から順に以下の処理を繰り返す。(forループでi=0,1,2,...と回す)
    i. 現在見ている数字(i番目)と、その次の数字(i+1番目)をそれぞれ整数に変換する。
    j. 二つの整数の和を求める。和が10以上の場合は10の位を捨てる。
    k. 新しい数字列に、その和を連結する。
  (c). 動作確認のため、出来上がった新しい数字列を表示する。
3. 最終的に出来上がった2桁の数字列を、整数に変換して返す。

クラスUranaiApp

* メソッド
main ... 二人の相性を占う。具体的には、
1. コマンドライン引数から二人分の名前と数字列を読み込み、Uranaiクラスのインスタンスを二つ生成する。
2. 一人目に対して、表示メソッドを呼び出す。
3. 一人目に対して、二人目を引数として、判定メソッドを呼び出す。
4. 二人目に対して、表示メソッドを呼び出す。
5. 二人目に対して、一人目を引数として、判定メソッドを呼び出す。(3の逆)
531デフォルトの名無しさん:2005/11/03(木) 19:57:28
【課題2】

Uranaiクラスに以下の仕様を満たすstaticな判定メソッドを追加せよ。
mainメソッドにその動作をテストするコードも追加すること。
(追加した部分のソースを提出)

* 名前はhanteiとする。
* 引数としてUranaiクラスのインスタンスを二つ受け取る。
* 一人目の数字列と二人目の数字列を連結して長い数字列を作る。
* 二人分の長い数字列を引数として、計算メソッドを呼び出し、相性の計算を行う。
* 計算結果を「〜と〜の相性は〜です」と表示する。
【課題3】

また、以下の各メソッドはstaticメソッドとするのが相応しい。その理由を考察せよ。

* Uranaiクラスの計算メソッド
* (一般的に)mainメソッド

【期限】
明日の明朝まで

長くなってしまいましたが、どうかよろしくお願いします
532529:2005/11/03(木) 20:04:55
すみません、期限は明後日の明朝でした。訂正します
533デフォルトの名無しさん:2005/11/03(木) 21:15:02
頭痛が痛い。
534デフォルトの名無しさん:2005/11/03(木) 21:31:20
>>528
ありがとうございました。
535デフォルトの名無しさん:2005/11/03(木) 21:31:48

>529-532
課題1と2
http://www.wikiroom.com/java/index.php?SourcePost#gc14adf5
> 1. コマンドライン引数から二人分の名前と数字列を読み込み、Uranaiクラスのインスタンスを二つ生成する。
という部分で悩みましたが、ひらがなの名前だけ与えれば十分なので名前のみを与えることにしました。
数字列はプログラムで作らせてます。
java UranaiApp たかさきゆうすけ くつきふたば
みたいな感じで実行してください。

課題3
・Uranaiクラスの計算メソッド:
 xx.calculateSynastry(yy)のようにインスタンスメソッドにしても
 (どうせxxの値によらず)yyの値にのみ影響されるから意味がない。
 インスタンスごとじゃなくてクラスにひとつあれば十分。
・mainメソッド
 mainメソッドのあるクラスは誰もインスタンス化してくれないから。

課題3はアヤシイなあ。
誰かフォロー頼んます。
536デフォルトの名無しさん:2005/11/04(金) 10:52:39
>>529
俺がうまれて初めてトライした自作プログラムだ 懐かしい




N88-BASIC だが
537デフォルトの名無しさん:2005/11/04(金) 18:37:09
【 課題 】ファイル操作、イベント処理、GUIを用いてアプレットを使用せずにじゃんけんするプログラムを作成せよ。
【 期限 】11月8日に提出
【 補足 】丸投げですがおねがいします
538デフォルトの名無しさん:2005/11/04(金) 21:02:30
>537
問題はホントにこれだけ?
何のファイルを操作するのかよく分からないんだけど。。
539デフォルトの名無しさん:2005/11/04(金) 23:55:02
537です。勝敗結果をファイル操作とのことでtexで保存するんですがわかりません
540デフォルトの名無しさん:2005/11/04(金) 23:55:54
すみません。間違えましたtxtで保存です。
541デフォルトの名無しさん:2005/11/05(土) 01:23:00
>>540
txtに保存するならなぜ最初からそう書かないんだ?
条件は勝手に省略せずに全部書け。
542527:2005/11/05(土) 02:45:35
JAVAの勉強が全然わかんないんですが、
初心者にもわかりやすくかかれてるWebページありませんか?
http://www.ioctv.zaq.ne.jp/kreuz/java/java/method.html
ここの「まず、同じオブジェクトの場合。」の下のソースに最低限の
mainとかつけて動作して出力するプログラムとか教えて欲しいです。

g.setFont(boldFont);
FontMetrics fmBold = getFontMetrics(boldFont);
int titleX = getWidth() / 2 - fmBold.stringWidth(title) / 2;
int titleY = fmBold.getHeight();

の引数とか、○.○(引数)とか、getWidth()/2とか、どことどうつながってるのか、
値はいくつなのかとかわかりません。クラス、オブジェクト、メソッド、コンストラクタ
なにもわかりません。馬鹿でも分かりやすく1文1文の説明の多いページ、どのような流れで
処理されているのか、とかわかりやすく書かれているWebページがあったら是非教えてください。
543デフォルトの名無しさん:2005/11/05(土) 12:27:06
>537
作ってみたが課題と違う仕様だと恥ずかしいので、課題をそのまま書いたレスください。
544ambig:2005/11/05(土) 13:06:18
こんにちは。JAVAプログラミングのプロジェクトなのですが
次のようなプログラムを作ってください!

最初に「Please insert the # of IQ scores」と表示させ、
その後一つのintの値をコマンドラインから入力し、
次に「Please insert -入力した数値- scores」と受け取った数を表示させて、
その数だけのIQスコアをさらにコマンドラインから入力して、
そのIQスコアの値で100以上が幾つ、100以下が幾つと表示させるプログラムです。

メインとともに二つのメソッド、
readdataとaboveandbelowというメソッドが必要です。
readdataメソッドはIQスコアをゲットして、配列を使って受け取り、
aboveandbelowを使って100以下か以上かを調べるようです。

皆さんの助けを必要としています。
よろしくお願いいたします!
545デフォルトの名無しさん:2005/11/05(土) 17:11:07
問題(穴埋め)

java.lang.Mathの乱数発生メソッドを使用して任意の長さのパスワードを生成するプログラムを作りなさい。
注;コマンドラインから引数を一つ取り、その引数を数値に変換して結果を出力します。
以下のABCに入るコードを記述しなさい

さっぱりわかりません。誰かおせーて
public class Pass{

public static void main(String[] args){
if(args.length != 1){
System.out.println("数字を入力して下さい");
return;
}
System.out.println(createPassword( A ));
}

public static String createPassword(int num){
StringBuffer password = new StringBuffer("");
String validChar = "abcdefghijklmnopqrstuvwxyz"+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ"+ "0123456789";

for(int i = 0; i < num; i++){
int index = B ;
password. C (validChar.charAt(index));
}
return password.toString();
}
546デフォルトの名無しさん:2005/11/05(土) 17:58:53
>>545
// Pass.java
public class Pass{
public static void main(String[] args){
if(args.length != 1){
System.out.println("数字を入力して下さい");
return;
}
System.out.println(createPassword( Integer.parseInt(args[0]) ));
}
public static String createPassword(int num){
StringBuffer password = new StringBuffer("");
String validChar = "abcdefghijklmnopqrstuvwxyz"+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ"+ "0123456789";
for(int i = 0; i < num; i++){
int index = (int)(Math.random() * validChar.length()) ;
password.append(validChar.charAt(index));
}
return password.toString();
}
}
547545:2005/11/05(土) 19:01:38
>>546
動きました!!明日提出の課題だったんで本当助かりました!ありがとうございます。
特にAの穴に該当するコードが意味不だったんでこの回答を参考にもう一度参考書とにらめっこしてみます!
548デフォルトの名無しさん:2005/11/05(土) 20:33:31
【 課題 】オブジェクト入出力で読み込んだデータを使って絵を描け。
【 期限 】11/08 16時
【 補足 】
http://sobchan.no-ip.com/cgi-bin/irc/src/unko0234.txt
このファイルから読み込んだデータを使って絵を描くという課題です。

http://sobchan.no-ip.com/cgi-bin/irc/src/unko0235.txt
要はこのunko0235.txtを基にして, int[] data = { }; の部分を上のunko0234.txtから
オブジェクト入力で読み込んで描くプログラムを作るということです。
549537:2005/11/05(土) 21:23:17
すみませんレス遅れました。
イベント処理がマウス操作。GUIが画面表示です。ファイル操作は勝敗結果をTETで保存です。ボタンの数の制限は無いです。
GUIを使用してアプレットを使わずに画面をマウスでクリックするとじゃんけんを開始して勝敗結果をTXTで保存する。とのことです。
550543:2005/11/05(土) 22:35:32
>549
http://www.wikiroom.com/java/index.php?SourcePost#eeb332f9
画像はwiki該当ページ一番下のrspImage.zipの中にあります。
JDK5.0の機能使ってるのでそれ以前のバージョンだと動きません。
パッケージ切ってるので注意して。
ウィンドウポジションを記憶するというオマケ付きです。
551529:2005/11/06(日) 11:30:10
遅くなりました、申し訳ありません。

>>535
無事に動きました。
後で気付いたんですが、本来ならば名前をプログラムで解析するのは上級の課題だったようでした。
お手数をかけたようで申し訳なく思っています。
それでは、本当にありがとうございました。
552537:2005/11/06(日) 12:14:02
>>550
報告遅れました。本当にお手数おかけしてすみませんでした。
ありがとうございました。
553デフォルトの名無しさん:2005/11/06(日) 13:44:18

>548
// Enterprize.java
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
public class Enterprize extends Frame {
private int LPX, LPY;
public Enterprize() {
setSize(1024, 768);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public void LineTo(Graphics g, int x, int y) {
g.drawLine(LPX, LPY, x, y);
LPX = x; LPY = y;
}
public void MoveTo(int x, int y) { LPX = x; LPY = y; }
public void paint(Graphics g) {
int px, py;
ArrayList dataList = new ArrayList();
try {
BufferedReader br = new BufferedReader( new FileReader( new File("input.txt") ) );
String line;
while( (line=br.readLine())!=null ) {
StringTokenizer tokenizer = new StringTokenizer( line, "," );
while( tokenizer.hasMoreTokens() ) dataList.add( new Integer(tokenizer.nextToken().trim()) );
}
554553:2005/11/06(日) 13:45:09

>548
// つづき
Integer[] data = (Integer[])dataList.toArray( new Integer[0] );
g.setColor(Color.black);
g.fillRect(0, 0, getSize().width - 1, getSize().height - 1);
g.setColor(Color.white);
double a = 0.2;
for (int k = 0; k < (data.length/3); k++) {
px = (int)(a * data[3 * k].intValue() ) ;
py = -(int)(a * data[3 * k + 1].intValue() ) + 800;
if (data[3 * k + 2].intValue() == 2) MoveTo(px, py);
else LineTo(g, px, py);
}
} catch( IOException ioe ) {
ioe.printStackTrace();
}
}
public static void main(String[] args) {
Frame w = new Enterprize();
w.show();
}
}

入力ファイルのファイル名はinput.txtで。
555548:2005/11/06(日) 14:36:34
>>553-554
無事に動きました。とても助かりました。ありがとうございます。
556デフォルトの名無しさん:2005/11/06(日) 15:57:57
助けてください。お願いします。
■ファイル操作
■ネットワーク通信
■マルチスレッド
■GUIとイベント処理
 この4つの中から2つ以上を選び可搬性の高いプログラムを作成せよ
 なんでもいいのでおねがいします
557デフォルトの名無しさん:2005/11/06(日) 16:46:11
>>566
追記
Javaアプレットの使用は認められていない課題なので、使用しないということでお願いします。
提出期限は、11月9日(水)までなのでおねがいします。
558543:2005/11/06(日) 18:47:51
>556-557
自分の作ったヤツで申し訳ないが。
http://www.wikiroom.com/java/index.php?SourcePost#eeb332f9
なら「ファイル操作」と「GUIとイベント処理」をやってるのでコレ使ってくれ。
可搬性を実現させるためにJava Web Start使うことにした。以下はそのやり方。
1. wikiにあがってるソースをコンパイル(但しHandConstants.javaは後述のファイルに差し替え)する。
パッケージ切ってるのでeclipse使うと便利。
2. RockPaperScissors.mfをつくる。
---ここから
Manifest-Version: 1.0
Main-Class: main.RockPaperScissors

---ここまで(最後の改行が必要なはず)
3. jarをつくる。3つのgifファイルもjarの中に入れる(画像はカレントに入れることを想定してます)。
jar cvfm RockPaperScissors.jar RockPaperScissors.mf *
4. 証明書を作る。名前はテキトーに変えてくれ。
keytool -genkey -alias 543 -keystore 543.dat
5. つくったjarに署名する。パスワードは4で入れたヤツ入れておけばok。
jarsigner -keystore 543.dat -storepass password RockPaperScissors.jar 543
6. RockPaperScissors.jnlpをつくる。
---ここから
<jnlp
spec="1.0+"
codebase="http://localhost:8080/RockPaperScissors"
href="RockPaperScissors.jnlp">
<information>
<title>rock-paper-scissors</title>
<vendor>543</vendor>
<offline-allowed/>
</information>
<resources>
<j2se version="1.5+"/>
559543:2005/11/06(日) 18:48:49
>556-557(つづき)
<jar href="RockPaperScissors.jar"/>
</resources>
<application-desc main-class="main.RockPaperScissors"/>
<security>
<all-permissions/>
</security>
</jnlp>
---ここまで
7. jnlpとjarをサーバにアップする。
8. ブラウザからjnlpにアクセスする。
9. (゚д゚)ウマー ..... なはず。

※wikiにあがってるHandConstantだとJava Web Startにしたとき画像読めなくなるのでこっちつかってくれ。
// HandConstants.java (jnlp対応版)
import java.net.URL;
import javax.swing.ImageIcon;
public final class HandConstants {
public static final Hand HAND_ROCK = new Hand(0, "グー", getIcon("gu.gif") );
public static final Hand HAND_SCISSOR = new Hand(1, "チョキ", getIcon("cyoki.gif") );
public static final Hand HAND_PAPER = new Hand(2, "パー", getIcon("pa.gif"));
public static final Hand[] HANDS = new Hand[] { HAND_ROCK, HAND_SCISSOR, HAND_PAPER, };
private static ImageIcon getIcon( String fileName ) {
URL url = new HandConstants().getClass().getClassLoader().getResource(fileName);
if( url == null ) return new ImageIcon(fileName);
else return new ImageIcon( url );
}
}

書き漏らしてることあるかもしれないんで
もし動かしたのなら動作報告よろしく。
560デフォルトの名無しさん:2005/11/06(日) 19:35:07
>>558

動作は確認していませんが、他に簡単なプログラムがあれば教えてください。
■ファイル操作
■ネットワーク通信
■マルチスレッド
■GUIとイベント処理
自分には難しいのですが、なければコレを使わせてもらいます。ありがとうございました。
561デフォルトの名無しさん:2005/11/06(日) 19:51:08
【 課題 】ttp://www.geocities.jp/java_homework2006/index.html
【 用語 】
【 期限 】11/7
【 Ver  】1.5以降 コンパイラはBorland JBuilder 2005 Foundation ver11.0を使用。
【 補足 】前回、同様default constructor, alternate constructor を使うプログラムなのですが、
      if, elseが混ざり、switch statement(スイッチ構文?)を使用するみたいです。
      今回は途中経過を書けないくらい難しいです…orz
562561:2005/11/06(日) 20:12:00
一応、サンプルプログラムを晒しておきます。

package name is wagecomputer

MainClass: ttp://www.geocities.jp/java_homework2006/MainClass.txt
WageComputer: ttp://www.geocities.jp/java_homework2006/WageComputer.txt
563561:2005/11/06(日) 23:01:44
色々見ながら、組んでみたのですが、

http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=26214
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=26215

一番最初のアカウントナンバーの入力画面で、4桁の数字の数字を入力しても、
次のサービスプランの入力画面に進みます。また、数字以外を入力するとコンパイラのエラーではなく、
output画面で、四桁の数値を入力ください。と表示させるにはどうすれば良いのでしょうか?
サービスプランの所なのですが、R,r、P,pと入力するとプランが表示された後に、それぞれのプランの使用分数入力画面へ進むように
作らないといけないはずなのですが、レギュラープラン、プレミアムプランどちらを選択しても、二つ(レギュラー、プレミアムそれぞれ)の入力画面が出ます。
どのようにすればサービスプランごとに、Regular → Regularの使用分数入力画面(出力)→ 使用した合計金額、
Plemium → Plemiumの使用分数入力(午前6時→午後6時、午後6時→午前6時)そして出力→ 使用した合計金額(AMPM、PMAMそれぞれオーバーしていたらそれも計算して含める)、
といった感じで出力出来るのでしょうか?
564デフォルトの名無しさん:2005/11/07(月) 01:15:52
【 課題 〜〜〜〜行列とベクトルの積の計算:c=A*b〜〜〜〜
実行結果が
「行列 A =
      [  xx.x  xx.x  xx.x  xx.x  xx.x ]
      [  xx.x  xx.x  xx.x  xx.x  xx.x ]
      [  xx.x  xx.x  xx.x  xx.x  xx.x ]
      [  xx.x  xx.x  xx.x  xx.x  xx.x ]

ベクトル b (の転置) =
      [  xx.x  xx.x  xx.x  xx.x  xx.x ]

--- 計算結果 ---
ベクトル c (の転置) =
      [  xx.x  xx.x  xx.x  xx.x ]」

(「」の中)となるようにプログラムせよ。

条件1,データを与える部分の行列やベクトルの次元が変わっても動作するようにプログラムを書くこと.
すなわち次元を具体的数値で与えずに プログラムを記述せよ,ということである.(マジックナンバーにしない)

条件2,行列 A とベクトル b の成分はどちらも(一般に小数点をもつ, つまり整数ではない)実数データとして各自が適当な桁数で,
配列データの初期化を使って与えよ. 小数点以下が.0ばかりではダメ.
なお与える行列のサイズは 3 <m < nを満たす適当な整数(↑の例では4x5)であること.

条件3、ベクトル c の成分を求める積和の部分には部分和用の変数を1つだけ導入し複合代入演算子を使って最後まで積和を完全に求め終わってから,
最後に配列要素に格納すること. 積和を求め終わるまでは指定の配列要素に格納する必要がないのだから,
ループ中に何度も配列要素を呼び出すよりその方が効率がいいのである.また部分和用の変数は必ず初期化する必要がある.

条件4、各自で与えたデータとそれによる計算結果を下の結果のように出力せよ.
成分の表示は行列もベクトルもfor文を使って出力すること.
【 期限 】11/08 18時
【 補足 】夜分、長文、寡聞、本当にすいません。お願いします。
565デフォルトの名無しさん:2005/11/07(月) 01:47:32
566デフォルトの名無しさん:2005/11/07(月) 05:59:26

週末のうちに書いておけば答えも得られやすいのにね。

>565
たぶんそのページじゃ答えになってない。
567デフォルトの名無しさん:2005/11/07(月) 10:10:04
ASP.NETとJSPどっちを授業で選択したいですか?
568デフォルトの名無しさん:2005/11/07(月) 10:33:53
【 課題 】ポーカーの手札の評価。
      ランダムに与えられた7つのトランプカードがあります。その中から5つのカードを取り出すときその5つのカードが7つのカードの中の最高の役となるよう検索するプログラムを書きなさい。
     ローカルサーチを使う。グリーディアルゴリズムであればなおよし。
【 期限 】18時間後
【 Ver  】1.5
【 補足 】それぞれのステップで現在地のノードがよりよいノードに置き換えられるようにする。
サンプルコード:
public static int makeChange(int [] coins, int change)
{
int minCoins = chang;
for (int i = 0; i<coins.length: i++)
if (coins[i] == change)
return 1;
for (int j=1; i<=change/2;j++)
{
int this Coins = makeChange(coins, j)+makeChange(coins, change -j);
if (thisCoins < minCoins)
minCoins = thisCoins;
}
return minCoins;
}
1週間ずっと考えているのですが、ポーカーでは数字とマークがあるのでコーディングの仕方が分かりません。
どなたかお願いします!
569デフォルトの名無しさん:2005/11/07(月) 12:15:22
日本語の部分だけ読んだ。つまりホールデムポーカーだな
570デフォルトの名無しさん:2005/11/07(月) 12:33:47
テキサスホールデムポーカーのハンドの評価ですね。
ifだけを使ってなら分からなくも無いが、
ループを使ってツリー状に考えるというのが良く分からない。
571561:2005/11/07(月) 15:17:58
色々やりましたが、限界です…orz
エラー吐きまくりで、getter,setterなど考えてる暇がありませんでした。

http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=26232
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=26233
572デフォルトの名無しさん:2005/11/07(月) 19:30:59

>571
あなたの場合は途中まで作ったソースコード載せるより、
問題文の日本語訳を載せた方が
回答が得られる可能性がぐっと高くなる。

正直な話、誰も問題読んでないと思うよ。
573561:2005/11/07(月) 23:34:16
>>572
申し訳ありません。日本語訳を作りました。

ttp://www.geocities.jp/java_homework2006/index_j.html

574デフォルトの名無しさん:2005/11/08(火) 05:50:16
GUI系は面倒くさいから回答率低いよ。
575561:2005/11/08(火) 11:16:58
576デフォルトの名無しさん:2005/11/08(火) 17:06:06
問題 コマンドラインから引数として日付を取得しプログラムの起動時間と比較するプログラムを作成せよ。
*参考 java.text.DateFormatクラス
尚、引数として与える日付は、YYYY/MM/DD形式で入力すること。

import java.util.Date;
import java.text.DateFormat;

public class DateCompare{

public static void main(String[] args) throws Exception{

if(args.length != 1){
System.out.println("Usage: DateCompare <date>");
return;
}

Date argDate = DateFormat.getDateInstance().parse(args[0]);
Date now = [A] ;

if( [B] ){
System.out.println(argDate + "は過去です。");
}else if( [C] ){
System.out.println(argDate + "は未来です。");
}else{
System.out.println(argDate + "は現在です。");
}

}
}

今週木曜日(10日)までの学校の課題です。どうしてもわかりません
どなたかご教示ください
577デフォルトの名無しさん:2005/11/08(火) 18:42:30
>>576
[A] http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/Date.html#Date()
[B] http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/Date.html#before(java.util.Date)
[C] http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/Date.html#after(java.util.Date)

// 起動時間と日付での比較だと現在です。になることって殆ど無いんじゃないか?
578デフォルトの名無しさん:2005/11/08(火) 22:26:37
【 課題 】http://page.freett.com/kb100000/2.doc
【 期限 】今日中
【 補足 】丸投げですがよろしくお願いします。課題4と課題5です。
579576:2005/11/08(火) 23:36:51
>>577
やっぱりそうですよね?俺も殆どって言うか絶対「現在です」にはならないと思うんですけど・・・。
っていうことはコンパイル出来てれば問題ないっすかね?
580デフォルトの名無しさん:2005/11/09(水) 01:59:02
>>578
マルチ乙
向こうに答え書いた。
581578:2005/11/09(水) 02:19:34
解決しました。
>>580
ありがとう。
582デフォルトの名無しさん:2005/11/09(水) 16:27:30
【【 課題 】ServerSocketクラスを用いて、コマンドラインで指定されたポートへの
      接続を待機するエコーサービスプログラムを作成せよ。50000番台の
      ポート番号を指定してプログラムを起動し、クライアントとして
      オペレーティングシステム付属のTelnetアプリケーションを用いて、
      接続してみよ。Telnetアプリケーションを終了するには、Ctrlキーを
      保持しながら「]」(閉じ大括弧)を押下せよ。さらに、現れたプロン
  プトに「quit」と入力し、最後にentarキーを押下せよ。

【 課題 】Socketクラスを用いて、第一引数で指定されたホストの第三引数で指定
      されたポートへ、第二引数の文字列を送信するエコークライアントプロ
      グラムを作成せよ。

【 課題 】エコークライアントプログラムとファイル入力/ファイル出力を組み合わ
      せ、入力ファイルの内容をサーバプログラムへ送信し、サーバからの応答
      を別ファイルに出力するクライアントプログラムを作成せよ。
【 期限 】11/16
【 補足 】丸投げなんでよろしくお願いします
583デフォルトの名無しさん:2005/11/09(水) 17:57:17
これにif文をつけてaの値が1以外の時に異なる出力結果を得られるプログラムをたしなさい。
import java.applet.*;
import java.awt.*;
import java.awt.image.*;
public class nk2 extends Applet {
Image img;
int a=1;
public void init(){
byte r [] = { 0,(byte)255,(byte)255,0,(byte)255};
byte g [] = { 0,(byte)255,0,0,(byte)255};
byte b [] = { 0,(byte)255,0,(byte)255,0};
IndexColorModel cm = new IndexColorModel(3,5,r,g,b);
int[] pix =
{3,3,3,
3,1,3,
3,3,3,};
MemoryImageSource mimg = new MemoryImageSource (3,3,cm,pix,0,3);
img = createImage(mimg);
}
public void paint(Graphics g){
g.drawImage(img,40,40,40,40,this);
}

}
584デフォルトの名無しさん:2005/11/09(水) 21:45:58
【課題】「login.jsp」を作成。ログイン画面でIDとPasswordを表示させる。
    IDは「aaa」、passwordは「bbb」を有効なものに設定。
    ログインする際には、「Submit」ボタンを押す。「Clear」ボタンも作成。
    そのログイン画面ではログインの回数とログイン成功の回数を、画面が開かれる毎に表示させる。
    最初はログインの回数は「1」、成功回数は「0」。
    IDまたはPasswordが誤りの場合、ログインの回数は「2」に増えるが、ログインは成功しないため、ログインの成功回数は「0」のまま。
    ログインが成功した場合には、「aaaのログイン回数は1回です。」と表示させる画面を作成する。
    この後のログイン画面ではログインの回数は「3」になり、成功回数は「1」となる。
【期限】明後日の朝
【補足】login.jspの他にもう1つjspが必要。
<%@ page import="java.io.*" %>
<%! public static final String COOKIE_JAR = "cookie_jar.txt"; %>
を使う。

<% int attempts = 0, successes = 0;
BufferedReader reader = null;
PrintWriter writer = null;
try {
reader = new BufferedReader(new FileReader(COOKIE_JAR));
String line = reader.readLine();
if (line != null)
attempts = Integer.parseInt(line);
line = reader.readLine();
if (line != null)
successes = Integer.parseInt(line);
} catch (IOException ioe) {
} finally {
if (reader != null)
reader.close();
}
を参考にする。
585デフォルトの名無しさん:2005/11/10(木) 07:07:28
【 課題 】Javaでゲームを作成する。
戦艦ゲームで対戦できるものといわれました
【 期限 】11月末
【 Ver  】
【 補足 】丸投げです、自分でなんとかしようと思いましたが、全然知識不足でした
586デフォルトの名無しさん:2005/11/10(木) 18:54:03
>>585
「戦艦ゲーム」って具体的にどうすんのよ
どういう操作をする、だとか説明不足
587585:2005/11/10(木) 21:01:45
ttp://www.vector.co.jp/soft/other/java/se175309.html
こんな感じのものができればいいと思います。
ほんとはネットで対戦できる形にしろといわれたのですが、わかりませんでした。
よろしくお願いします
588デフォルトの名無しさん:2005/11/10(木) 21:09:28

>585
本当に「戦艦ゲームで対戦できるものを作ってこい」と言われただけなの?
>こんな感じ
じゃあプログラムは作れません。
589585:2005/11/10(木) 22:02:52
自分でもう少し努力して形にしてみます、ありがとうございました。
590デフォルトの名無しさん:2005/11/11(金) 00:35:10
System.out.println("これは戦艦ゲームです");

これでいいんじゃねーの
4行くらいで書けるな、すごい!
591デフォルトの名無しさん:2005/11/11(金) 09:30:39
たぶん戦艦ゲームってのは>>585の聞き間違いで、海戦ゲームの事じゃないか?

昔からあるゲームなので、いちいちルール説明しなかったと言う可能性もあるな。
結構色々なローカルルールがあるので微妙だが、ここのがわかりやすそうだ。
http://www.geocities.co.jp/Playtown-Queen/2293/kaisen.html

答える側も察してやれよと言いたい所だが、最近の若いもんは海戦ゲーム知らんのかな?
592デフォルトの名無しさん:2005/11/11(金) 12:38:31
>>591
ぶっちゃけ初めて聞いた。
ところで、このゲームは面白いのか?
イマイチぴんとこないんだが(´・ω・`)
593デフォルトの名無しさん:2005/11/11(金) 12:52:55
>>592
面白いっつーか、Pongとかみたいにむかーしからあるから
サンプルとして使いやすいんでない?
リアルタイム処理いらないし。
594デフォルトの名無しさん:2005/11/11(金) 14:25:40
>>591
漏れも初めて聞いたよ・・・初心者だけどw
作ってみるお!
二次元配列でサクっとできそうだ
これ人間vsCOMでやるんだよな
COMももちろん行動するんだろうなぁ・・そこだけが怪しいw
とりあえずCOMは動かないってことで作る!!
595デフォルトの名無しさん:2005/11/11(金) 15:40:14
【 課題 】
実行結果が
「行列 A(4x5) =
      [  xx.x  xx.x  xx.x  xx.x  xx.x ]
      [  xx.x  xx.x  xx.x  xx.x  xx.x ]
      [  xx.x  xx.x  xx.x  xx.x  xx.x ]
      [  xx.x  xx.x  xx.x  xx.x  xx.x ]
行列 B(5x6) =
      [  xx.x  xx.x  xx.x  xx.x  xx.x  xx.x ]
      [  xx.x  xx.x  xx.x  xx.x  xx.x  xx.x ]
      [  xx.x  xx.x  xx.x  xx.x  xx.x  xx.x ]
      [  xx.x  xx.x  xx.x  xx.x  xx.x  xx.x ]
      [  xx.x  xx.x  xx.x  xx.x  xx.x  xx.x ]
--- 計算結果 ---
行列 C(4x6) =
      [  xx.x  xx.x  xx.x  xx.x  xx.x  xx.x ]
      [  xx.x  xx.x  xx.x  xx.x  xx.x  xx.x ]
      [  xx.x  xx.x  xx.x  xx.x  xx.x  xx.x ]
      [  xx.x  xx.x  xx.x  xx.x  xx.x  xx.x ]」
「」の中となるようプログラムを作成せよ。
条件1.行列の積を計算する部分と,行列の成分を出力する部分はそれぞれ,行列(2次元配列)を引数にもつ,
別の独立したメソッド(型は void. これ以外の書き方はダメ)として作ること.
したがって積のメソッドと出力のメソッドの計2つを作ることになる.
条件2.行列 C の成分を求める積和の部分には部分和用の変数を1つだけ導入し複合代入演算子を使って最後まで積和を完全に求め終わってから,
最後に配列要素に格納すること.積和を求め終わるまでは指定の配列要素に格納する必要がないのだから,
ループ中に何度も配列要素を呼び出すよりその方が効率がいいのである.また部分和用の変数は必ず初期化する必要がある.
条件3.出力はprintf で書式指定して,小数点以下を3桁とすること。

【 期限 】11月13日

【 補足 】よろしくお願いします。
596デフォルトの名無しさん:2005/11/11(金) 17:33:04
>>591
本筋から関係ないが補足
もともとの名前は 「BattleShip」 なので、実は「戦艦ゲーム」が正しいっぽい。
597デフォルトの名無しさん:2005/11/11(金) 18:08:57
>595
ttp://www.wikiroom.com/java/index.php?SourcePost_#k4b4bf03
System.out.printf()使ってるので当然1.5で動かしてください。
598デフォルトの名無しさん:2005/11/12(土) 05:02:40
【 課題 】ニューラルネットワークを使ったファイル変換ソフト
【 用語 】ニューラルネットワーク
       ttp://ja.wikipedia.org/wiki/%E8%87%AA%E5%B7%B1%E7%B5%84%E7%B9%94%E5%8C%96%E5%86%99%E5%83%8F
       wikipediaより
【 期限 】11月20までには簡単なデモができる状態にしたいです。
      (ファイル変換は後回しでも良いのでまずニューラルネットワークの部分をお願いします。)
【 Ver  】1.5
【 補足 】すいません丸投げです。以下簡単な要求定義です。
       あるファイル(.txtとか)をバイナリ状態に置き換える。
       置き換えた状態からいくつかの部分をピックアップしてノードとする。
       ノードはそれぞれ相互に結合している。
       制御信号(1or0)をどこか1つのノードに与えてやると相互結合しているので各ノードが変化し
       最終的にファイルが違う状態になる。
       簡単に元の状態に戻したりできる。
      
       「参考」 相互結合 ttp://mars.elcom.nitech.ac.jp/java-cai/neuro/hop1.html のtopの図右側ような状態。

正直どこから手を付けて良いか迷っています。
バイナリ状態に置き換えるとしましたが、ファイルの拡張子の部分だけをいじるのでもいいです。
現在開発環境としてはEclipse 3.1でおこなっています。
どうかよろしくお願いします。
599デフォルトの名無しさん:2005/11/12(土) 10:49:35
Java質問・相談スレッドからこちらへの書き込みをするよう促されましたのでこちらに書かせていただきます。

九九の表を作るにあたって問題なのですが、1〜3のみの数字しか使えないという制限があります。
3までの数字でどうやって1から順に9までの数字を作るのかがわかりません。
プログラム的にはちゃんと動いてます(ループ文でループ回数を9にするとちゃんと回る)
数学の問題に近いですがループなどの事の説明もありますのでこちらで質問させていただきました。
よろしくお願いします。
600デフォルトの名無しさん:2005/11/12(土) 11:23:52
>599
> 1〜3のみの数字しか使えないという制限があります。
プログラムの中に4から9までの数字を用いてはいけないという意味ですか?
601デフォルトの名無しさん:2005/11/12(土) 11:30:42
>>600
for(int i=1;i<=9;i++)
for(int s=1;s<=9;s++)
{
九九の処理;
}
}

のように9を使ってループさせてはいけないという事です。プログラム内で0〜3までの数字以外を使う事は平気です(足して1+3で4を出して使うなど)。
602デフォルトの名無しさん:2005/11/12(土) 11:35:18
m = 3 * 3;
for(int i=1;i<=m;i++)
for(int s=1;s<=m;s++)
{
九九の処理;
}
}
603デフォルトの名無しさん:2005/11/12(土) 11:41:44
>>602
回答ありがとうございます。
う〜ん・・・確かに問題的には合ってますけど、先生の意図した方法とは違うかもしれません。法の抜け穴的な感じですね。
できれば、ループの制御で4以上使わない方法を教えてください。
教えてもらう身なのに、条件を増やしたりすみません。
604603:2005/11/12(土) 12:27:32
自己解決しました。
ご迷惑おかけしました〜。
605デフォルトの名無しさん:2005/11/12(土) 12:42:46

>599
「自己解決しました」と書いて解決策を書かない人間の気が知れない。
// MatrixDemo.java
public class MatrixDemo {
public static void main(String[] args) {
int[][][][] allBoxes = new int[3][3][3][3];
for( int x=0; x<3; x++ ) {
for( int y=0; y<3; y++ ) {
int[][] box = new int[3][3];
for( int i=0; i<3; i++ ) {
for( int j=0; j<3; j++ ) box[i][j] = (3*x+y+1) * (3*i+j+1);
}
allBoxes[x][y] = box;
}
}
for( int x=0; x<3; x++ ) {
for( int y=0; y<3; y++ ) {
int[][] box2 = allBoxes[x][y];
for( int i=0; i<3; i++ ) {
for( int j=0; j<3; j++ ) System.out.print( "\t" + box2[i][j] );
}
System.out.println();
}
}
}
}
606京子:2005/11/12(土) 12:46:31
占いのHP作ろうかと思ってるんですけどチェックボックスのチェックされたの数によって、
ジャンプするページを変えるには、
どのようなプログラムを組めば良いのでしょうか?

例えば、
チェックが0〜5個だと、Aページへジャンプ。
チェックが、6〜10個だと、Bページへジャンプとか、
そういう感じです.
誰かお願いします
607603:2005/11/12(土) 12:59:04
>>605
すみません。回答がなかなか出て来なくてイライラしていたのと提出時間が近づいていた焦りで簡潔な文になってしまいました。
自分がやった方法は
for(int i=0;i<=2;i++)
for(int s=1;s<=3;s++)
{
i*3+sを色々と処理;
}
とやりました。これを二つ作り一般的な九九の表を作りました。
>>605さんがやっているやり方に近いと思います。
教えて貰っているという事を忘れて態度が悪くなってしまいすみませんでした。以後気をつけます。
608デフォルトの名無しさん:2005/11/12(土) 13:08:46
おまいらあまいな
配列もかけ算不要だよ
シンプルな4重ループでできるよ

ヒント
0 + 1
0 + 2
0 + 3
3 + 1
3 + 2
3 + 3
6 + 1
6 + 2
6 + 3
609603:2005/11/12(土) 13:19:39
>>608
素晴らしい!
そして、本当にプログラムと数学の面白さを感じます。
自分が届かなかった未知の場所から手を引っ張ってもらって登った気分です。
610デフォルトの名無しさん:2005/11/12(土) 16:53:51
【 課題 】
int i=1,j=1;
while(i <= 3){
j=1;
while(j <= i){
System.out.print(i+" ");
j++;
}
i++;

↑これを実行すると
1
2 2
3 3 3
となりますが、
1
1 2
1 2 3
と表示させるように変えて下さい
【 期限 】月曜日
611デフォルトの名無しさん:2005/11/12(土) 16:55:02
すいません、念の為ageておきます
612デフォルトの名無しさん:2005/11/12(土) 17:26:55
System.out.print(j);
にしてください
あとこれだけだと、改行の部分が欠けてますよ
613デフォルトの名無しさん:2005/11/12(土) 19:14:43
>>610
>System.out.print(i+" ");
iをjに変更
614デフォルトの名無しさん:2005/11/12(土) 22:30:39
>>612-613
出来ました!有難うございます
どうしてそうなるのかは解りませんが…
(これのフローチャートを書こうとしたのですが、出来ませんでした)
とにかく有難う御座いました
615デフォルトの名無しさん:2005/11/12(土) 22:42:56
どうしてそうなるか解らないなら
プログラマなんてやめたほうがいいんじゃないか?と
心底おもったよ
616デフォルトの名無しさん:2005/11/12(土) 23:02:53
>615
「プログラマになりたい」なんて>610は言ってないじゃん。
617デフォルトの名無しさん:2005/11/12(土) 23:51:21
じゃあ、なぜJavaなんか勉強してるの?
618デフォルトの名無しさん:2005/11/13(日) 00:05:06
javaSDKの最新版頂戴
619デフォルトの名無しさん:2005/11/13(日) 00:50:26
>617
講義であるんでしょ。
620デフォルトの名無しさん:2005/11/13(日) 01:21:05
[課題]0から9までの整数乱数を100個発生させ、その出現分布を棒グラフと値で出力するプログ
ラムを作成しなさい。
ただし、0から9それぞれの個数を数えるための変数に必ず配列を用いてください。
(出 現個数カウント用の変数を10個用意してはいけません

例)
9 8 7 9 4 2 7 2 6 0 7 9 8 9 8 0 9 9 0 5 4 9 0 5 2 2 5
3 5 2 3 9 1 7 7 6 9 7 9 0 6 3 6 7 8 7 8 8 5 8 2 1 3 9
5 8 5 8 2 0 6 8 5 2 2 9 6 1 3 8 5 4 8 9 5 0 3 1 4 3 8
3 3 2 8 2 6 9 2 6 6 1 9 4 4 8 5 1 1 9

0 ******* 7
1 ******* 7
2 ************ 12
3 ********* 9
4 ****** 6
5 *********** 11
6 ********* 9
7 ******** 8
8 *************** 15
9 **************** 16

[期限]水曜日
621デフォルトの名無しさん:2005/11/13(日) 01:21:32
[補足]
import java.io.*;
class Kadai1111_3{
public static void main(String arg[]){

int x;
int data[]=new int[100];

for(int i=0;i<100;i++){
x=(int)(Math.random()*10);
data[i]=x;
System.out.print(data[i]);
}

}
}
ここまでできました。
622デフォルトの名無しさん:2005/11/13(日) 01:33:22
>>620
class Kadai1111_3 {
public static void main(String arg[]) {
int data[] = new int[10];
for (int i = 1; i <= 100; i++) {
int x = (int) (Math.random() * 10);
data[x]++;
System.out.print(x);
System.out.print(i % 25 == 0 ? "\r\n" : " ");
}
System.out.println();
for(int i=0; i<10; i++) {
System.out.print(i + " ");
for (int j=0; j<data[i]; j++)
System.out.print("*");
System.out.println(" " + data[i]);
}
}
}
623デフォルトの名無しさん:2005/11/13(日) 01:38:33
>>622
感謝です(・人・)
なるほど理解しました。
624デフォルトの名無しさん:2005/11/13(日) 02:19:19

【 課題 】cardという要素数21個の配列、0から20までの数字用意、
      乱数を使いシャッフル。シャッフルできたらcard全体表示。
      表示結果に重複がないかを判定。 お願いします。

【 期限 】13日、23時まで。。
【 Ver  】1.5
【 補足 】すみません。丸投げです。。表示結果はこんな感じで・・
      >java ShuffleCard
      05 19 01 12・・・・・13

      こんな感じで入れ替えてほしいです。
      box = card[rand1];
      card[rand1] = card[rand2];
      card[rand2] = box;
      よろしくお願い致します。

625デフォルトの名無しさん:2005/11/13(日) 02:40:22
【余命四ヶ月】ひとつの命を救わないか?
http://life7.2ch.net/test/read.cgi/kankon/1131798281/l50

心臓病で余命四ヶ月の少年を救うには6000万円の手術を受けるしかない…。
626デフォルトの名無しさん:2005/11/13(日) 03:43:14
>>624
public class ShuffleCard {
public static void main(String[] args) {
// 初期化
int[] card = new int[21];
for (int i = 0; i < card.length; i++) card[i] = i;
// シャッフル
for (int i = 0; i < 1000; i++) {
int rand1 = (int) (Math.random() * card.length);
int rand2 = (int) (Math.random() * card.length);
int box = card[rand1];
card[rand1] = card[rand2];
card[rand2] = box;
}
// 表示
for (int i = 0; i < card.length; i++)
System.out.printf("%02d ", card[i]);
System.out.println();
}
}

重複判定はしてません。
シャッフルの部分
// シャッフル
for (int i = 0; i < card.length; i++) {
int rand1 = (int) (Math.random() * card.length);
int box = card[rand1];
card[rand1] = card[i];
card[i] = box;
}
のほうが良いと思うんですが
627デフォルトの名無しさん:2005/11/13(日) 07:47:49
10進数の100を16ビットの2進数で表現したときに、
その値の中に含まれる0の個数を、メモリに格納するプログラムを作成せよ。
ただし、プログラムの終わり部分は、以下のようになっており、0の個数は、
ANSの領域に格納されたものとする。
CNS DC 100
ANS DS 1
END
という問題を誰か解いてください。お願いします。


628デフォルトの名無しさん:2005/11/13(日) 08:16:12
>>627
スレタイ
629デフォルトの名無しさん:2005/11/13(日) 14:11:53
【 課題 】128×128のTGA形式の画像データがある。
             これを読込み、その内容を全てコンソール画面に出力せよ。
             尚、ランレングス圧縮はされていないものとするが、対応した場合加点とする。

【 期限 】11月21日 18時 
【 Ver  】 1.5 
【 補足 】丸投げですorz 
             内容を全て出力ってのはtgaのフォーマットの表示と
             RGBAデータを16進数表示で表示しろってことらしいです。
             ランレングスとかtgaってなんですか状態です。             
630デフォルトの名無しさん:2005/11/13(日) 18:41:24
http://page.freett.com/kb100000/2.txt
http://page.freett.com/kb100000/3.txt
これってどんなことをかけばいいんでしょうか?
調べたことをテキトーにかけばいいんですかね?
だいたいどのようなことをかけばよいか教えていただけませんか?
[期限]火曜
631デフォルトの名無しさん:2005/11/14(月) 01:15:31
>>626
ありがとうございます。
勉強になりました。
632デフォルトの名無しさん:2005/11/14(月) 03:09:28
じゃんけんゲームを作成せよ。
お願いします。
633デフォルトの名無しさん:2005/11/14(月) 03:14:17
以下の配列を並べ替えるプログラムを作成せよ。
int[] date = {98,45,13,26,24,17,36};
こういうの地味に苦手・・・。
どなたかお願いします・・・。
634デフォルトの名無しさん:2005/11/14(月) 03:22:45
>>633
java.util.Arrays.sort(date);
635デフォルトの名無しさん:2005/11/14(月) 07:52:55
【課題提示用テンプレ】
【 課題 】キーボードから入力された英文を単語に分解するプログラムを作成せよ。
      たとえば、   This is a pen
      と入力されたら This,is,a,pen の4単語に分解する。 
【 用語 】数学用語、専門用語の意味、説明を書きます 《あれば必須》
【 期限 】今日提出
【 Ver  】希望するJavaバージョンがあれば書きます(1.5 とか 1.4以前とか)
【 補足 】何かヒントのようなものをいただけたら幸いです(;_;)
よろしくお願いします。


636デフォルトの名無しさん:2005/11/14(月) 08:27:00
つjava.lang.String.split()
637デフォルトの名無しさん:2005/11/14(月) 11:16:43
ttp://www.geocities.jp/java_homework2006/main_class.txt
ttp://www.geocities.jp/java_homework2006/cellphone.txt

【 課題 】ttp://www.geocities.jp/java_homework2006/main_class.txt
      ttp://www.geocities.jp/java_homework2006/cellphone.txt

      (1) これらのソースをtoStringメソッドを使って出力(print)するオブジェクトに書き換えなさい。
(2) equalメソッドを使って、(最低)二つのオブジェクトを比較しなさい。

【 用語 】
【 期限 】11/16
【 Ver  】1.5
【 補足 】出力結果が二つ表示されるように作れ との事です。

よろしくお願いします。
638デフォルトの名無しさん:2005/11/14(月) 13:28:39
【 課題 】 「入力値の検証」・・・文字列と想定して引数で与えられた値があります。
       次に、入力された値が「###−####」または、「###」であるか検証します。
       (#は0〜9までの数字とします。)
      表示結果
      >java CodeCheck 999−9999
      True
      >java CodeCheck 999
      True
      >java CodeCheck 99
      False
      >
【 期限 】15日 正午
【 Ver  】1.5
【 補足 】丸投げで申し訳ないです。
      booleanを使う。郵便番号の問題だと思います。
      なにとぞよろしくお願いいたします。
639デフォルトの名無しさん:2005/11/14(月) 15:11:47
>>633
コンパイルは成功するんですが出力されません。
だれかこの謎を解いてください…。
640デフォルトの名無しさん:2005/11/14(月) 15:13:48
与えられた数値の数だけ「*」を出力するプログラムを作成せよ。
数値は引数で一つ与える。

どなたかこれお願いします…。
641デフォルトの名無しさん:2005/11/14(月) 15:22:28
【 課題 】以下の2つのクラスを作成し、実行せよ。

// 文字列動的配列クラス:StrArray.java
// 最下行に要素を追加
public void add(String data){}
// 指定インデックスの要素を上書き(指定インデックスが無い場合エラー)
public void set(int index, String data){}
// 指定インデックスの要素を取得(指定インデックスが無い場合エラー)
public String get(int index){}
// 全ての要素をクリア
public void clear(){}

//実行サンプルクラス: Exec.java
// 以下の処理をクラスStrArrayを使用して実行すること。

"aaa" を追加
"bbb" を追加
"ccc" を追加
3個の要素を取得して表示
すべてクリア
"ee001"〜"ee100" の100個追加
50番目の要素を取得して表示

【 期限 】11/14
【 ver  】 1.4
【 補足 】StrArray.javaに何を記入すればいいのかがわかりません。
java.util.Vectorをimportすれば、StrArray.javaは必要無いと思うのですが、
あえて、StrArray.javaを利用(継承?)させようとするとき、どうすればいいのでしょうか。
よろしくお願いします。
642637:2005/11/14(月) 15:23:32
出力である、System.output.println〜 が沢山あるので、
toStringの出力方法だと全部をまとめられないのですが、どのように一つにまとめて出力するのでしょうか?
643デフォルトの名無しさん:2005/11/14(月) 15:28:40
つjava.lang.StringBuffer
644デフォルトの名無しさん:2005/11/14(月) 18:47:19
int[] data = {10,11,12,50,4,3,2,1};
このデータを使って最大値、最小値、合計、平均を求めるプログラムを
つくりなさい。
どなたかおねがいします…。
645デフォルトの名無しさん:2005/11/14(月) 19:34:33
以下の数値を並べ替えるプログラムをつくりなさい。
int[] data = {43,23,1,42,2,56,73};

これ、どなたかお願いできますか?
646デフォルトの名無しさん:2005/11/14(月) 20:17:51
>>638
public class Main {
public static void main(String[] args) {
System.out.println(codeCheck(args[0]));
}

public static boolean codeCheck(String str) {
return str.matches("\\d{3}(?:-\\d{4})?");
}
}

入力無いとArrayIndexOutOfBoundsException
引数あるかどうかのチェックは自分で入れてね
647646:2005/11/14(月) 20:22:02
>>640
public class Q640 {
public static void main(String[] args) {
int num = Integer.valueOf(args[0]);
for(int i=0; i<num; i++) System.out.println("*");
}
}

>>638
クラス名適当に作ってたときのでした。
CodeCheckに直してください。
648デフォルトの名無しさん:2005/11/14(月) 20:26:43
>>644
public class Q644 {
public static void main(String[] args) {
int[] data = {10,11,12,50,4,3,2,1};
int max = Integer.MIN_VALUE;
int min = Integer.MAX_VALUE;
int total = 0;
for(int i : data) {
total += i;
if (max < i) max = i;
if (min > i) min = i;
}
System.out.println("最大値: "+max);
System.out.println("最小値: "+min);
System.out.println("合計: "+total);
System.out.println("平均: "+(float) total / data.length);
}
}
649デフォルトの名無しさん:2005/11/14(月) 20:29:01
>>645
import java.util.Arrays;
class Q645 {
public static void main(String[] args) {
int[] data = {43,23,1,42,2,56,73};
Arrays.sort(data);
System.out.println(Arrays.toString(data));
}
}
650デフォルトの名無しさん:2005/11/14(月) 21:48:09
http://page.freett.com/kb100000/TextEditor.java
このメモ帳にコピーと貼り付けの機能を付加せよ。
明日まで。よろしくです。
651デフォルトの名無しさん:2005/11/14(月) 22:44:57
652デフォルトの名無しさん:2005/11/14(月) 22:54:53
>>651
ありがとうございます。
でもなんか文字化けしていました;
653デフォルトの名無しさん:2005/11/14(月) 22:56:34
>>652
UTF8です
654デフォルトの名無しさん:2005/11/14(月) 23:22:16
>>653
下のようなエラーがでてしまうのですが・・

TextEditor.java:45: シンボルを見つけられません。
シンボル: クラス PopupMenuListener
場所 : TextEditor の クラス
popup.add(paste); ta.setComponentPopupMenu(popup);
popup.addPopupMenuListener(new PopupMenuListener() {

^
注: TextEditor.java は推奨されない API を使用またはオーバーライドしています。
注: 詳細については、-Xlint:deprecation オプションを指定して再コンパイルしてくだ
さい。
エラー 1 個
655651:2005/11/14(月) 23:33:27
>>654
Java2SE5.0 使ってますから…
前提条件でJavaのバージョンを書いていない君がわるい…
ということで後はがんばってください。
656デフォルトの名無しさん:2005/11/14(月) 23:37:21
>>655
わかりました。
657デフォルトの名無しさん:2005/11/14(月) 23:56:27
>>656
public static void main(String[] args) {
new TextEditor("TextEditor").setVisible(true);
}
658デフォルトの名無しさん:2005/11/15(火) 00:23:16
>>657
ありがとうございます。
注意のほうが消えました。
できればどなたか、jdk1.5.0_05用でコピー、貼り付けなどの
機能を付加してください。よろしくお願いします。。。
659657:2005/11/15(火) 00:53:41
660デフォルトの名無しさん:2005/11/15(火) 00:58:15
【 課題 】次のようなJavaアプレットを作成してください.

・画面上に5x5程度のマス目を表示する.
・乱数を使って,マス目のいくつかに地雷を埋めておく.この地雷は表示されない.
・マス目がクリックされたら,次の処理を行う.
・そこに地雷があればゲームオーバーです.何かメッセージを表示してください.
・地雷がなければ,クリックされたマスの周囲のマス(8個)に隠れている地雷の数を数えて,
そのマスの上に表示する.プレイヤーはそれをヒントに地雷の場所を推測することになる.
・地雷以外の場所を全てクリックできたら「成功」です.何かメッセージを表示してください.
・アプレットの回りに簡単な遊び方を記述すること(HTMLで).


【 期限 】来週の火曜日(22日)夕刻。


【 補足 】丸投げで申し訳ないですがよろしくお願いします。
      それと解答してくださる方々に質問があります。
      どのような勉強をすればある程度難しめのプログラミングでも
      できるようになれるのですか?
661デフォルトの名無しさん:2005/11/15(火) 00:59:39
>>659
はい、
public static void main(String[] args) {
new TextEditor("TextEditor").show();
}
を657さんのにしたら、注意が消えました。
で651さんの文字化けした文字を直して実行してもやはり文字化けしてしまいます
エラーもえりますし。。
662デフォルトの名無しさん:2005/11/15(火) 01:15:06
>>661
文字コードの変更の仕方わかる?
663637:2005/11/15(火) 09:31:00
どうにか、toStringで出力する事には成功しました。
その、toStringで出力した文と、ソースの上の方でif文で出力した文を
equalメソッドを使って、比較をしたいのですが、どのように書けば
これらの文を比較する事が出来るのでしょうか?

ソースです。
メイン:http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=26280
計算部:http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=26279
664デフォルトの名無しさん:2005/11/15(火) 10:13:16
>638
の問題で文字列操作で判定するとどうなるんですか??

>646さんが書いてるのは正規表現での判定ですよね??
だれか教えてください。。
665デフォルトの名無しさん:2005/11/15(火) 11:18:39
>>664
回答例その一「正規表現も文字列操作ですが何か?」
回答例その二
class CodeCheck{
 public static void main(String[] args){
  System.out.println(check(arg[0]));
 }
 private boolean check(String value){
  if(value.length() == 3){
   try{
    Integer.valueOf(value);
   }catch(NumberFormatException nfe){
    return false;
   }
   return true;
  }else if(value.length() == 8){
   try{
    Integer.valueOf(value.substring(0, 3));
    Integer.valueOf(value.substring(4, 8));
   }catch(NumberFormatException nfe){
    return false;
   }
   return (value.substring(3, 4)).equals("-") ? true : false;
  }else{
   return false;
  }
 }
}
動作確認はしてない。
666デフォルトの名無しさん:2005/11/15(火) 12:07:43
>>665
それじゃ -00--000 でもtrueになるんじゃない?
あと気になったのが args[0]がarg[0]になってる、checkメソッドがstaticじゃない、 ? true : falseは不必要。

class CodeCheck {
public static void main(String[] args) {
System.out.println(check(args[0]));
}
private static boolean check(String value) {
if (value.length() != 3 && value.length() != 8) return false;
for(int i=0; i<value.length(); i++)
if (i == 3 ? value.charAt(i) != '-' : (value.charAt(i) < '0' || value.charAt(i) > '9')) return false;
return true;
}
}
動作確認はほとんどしてない。
667デフォルトの名無しさん:2005/11/16(水) 11:48:23
>>663
答えられる猛者がいないみたいなんでここは俺の出番だな。

そのtoStringだと、レギュラープランで1分しか使用しなかった場合、
¢20しか請求されない事になる。
そのソースを書き換え+equal methodを加えた物。

ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=26288
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=26289
668デフォルトの名無しさん:2005/11/16(水) 15:47:20
時刻をhh:mm:ssのような形式で表示するデジタル時計を作成せよ。時、分、秒を求めるにはCalendarクラスを用いるとよい。
class Account {private int balance = 0;
/*synchronized*/ void deposit(int amount) {int x = balance;
for(int i=0; i<1000; i++); // 処理時間を延ばす
balance = x + amount;}
int getBalance() {
return balance;}}
class Customer extends Thread {
Account account;
Customer(Account account) {
this.account = account;}
public void run() {try {
for(int i=0; i<1000; i++) {
account.deposit(1);}
} catch(Exception e) {e.printStackTrace();}}}
public class BankDemo {
private final static int NUMCUSTOMERS = 10;
public static void main(String args[]) {
Account account = new Account();
Customer customers[] = new Customer[NUMCUSTOMERS];
for(int i=0; i<NUMCUSTOMERS; i++) {
customers[i] = new Customer(account);
customers[i].start();}
for(int i=0; i<NUMCUSTOMERS; i++) {
try {customers[i].join();
} catch(Exception e) {e.printStackTrace();}}
System.out.println(account.getBalance());}}
できれば今。よろしくお願いします。
669デフォルトの名無しさん:2005/11/16(水) 16:02:08
問題追加です・・・
import java.util.Calendar;
Calendar calendar = Calendar.getInstance();
int h = calendar.get(Calendar.HOUR);
int m = calendar.get(Calendar.MINUTE);
int s = calendar.get(Calendar.SECOND);
670 ◆vmtBc5WCBc :2005/11/16(水) 16:38:46
【 課題 】以下のC++で書かれたプログラムについて、以下の設問に答えなさい
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1099.txt
1.このプログラムをJava言語に書き換えなさい
2.このプログラムは何を計算するプログラムであるか説明しなさい
【 期限 】11月20日
【 補足 】このプログラムがおそらく「素数を小さいほうから(61まで)順に表示させるプログラム」
であることは分かりました。また教授いわく「C++とJavaの”クラス継承”の違いに注意しる」とのことでした。
少しスレ違いなふいんきを感じましたが、こちらで質問させていただきました。
どうかよろしくス
671668,669:2005/11/16(水) 16:47:27
でけまへた。
672デフォルトの名無しさん:2005/11/17(木) 02:51:06
【課題】入力した数の段数の数だけピラミッド型に*を表示させるプログラム

EX)入力した数が7→
          *
         ***
    *****
       *******
      *********
     ***********
    *************

【期限】11月29日

【Ver】1.5

【補足】for文の使用をお願いします

     私の力ではどうしても期限に間に合いそうに合いそうにないので、申し訳ありませんがお願いします
     後でやってみたいと思っていますので初心者程度でもわかるソースで書いて頂けたら助かります。
     よろしくお願い致します。
673デフォルトの名無しさん:2005/11/17(木) 02:52:55
>>673のものです
三段目の*が貼り付けした為ズレています、申し訳ありません。
全て中央揃えとなります
よろしくお願いします
674デフォルトの名無しさん:2005/11/17(木) 03:20:47
>>672
public class Q672 {
public static void main(String[] プログラムの引数) {
int 入力した段数 = Integer.parseInt(プログラムの引数[0]);
for (int 現在の段数 = 0; 現在の段数 < 入力した段数; 現在の段数++) {
for (int 空白の数 = 入力した段数 - 現在の段数 - 1; 空白の数 > 0; 空白の数--) System.out.print(" ");
for (int 星の数 = 現在の段数 * 2 + 1; 星の数 > 0; 星の数--) System.out.print("*");
System.out.println();
}
}
}

なんとなく日本語で
全角が良ければSystem.out.println(" ")とSystem.out.println("*")の所を書き換えてください。
675デフォルトの名無しさん:2005/11/17(木) 13:24:13
質問です。配列の降順ソートってどうやるんですか?
調べたのですがわかりません。
>>626を例として教えてください。
よろしくお願いします。
676デフォルトの名無しさん:2005/11/17(木) 16:38:34
>>675
ソートしてから別の配列に逆順コピー
677デフォルトの名無しさん:2005/11/17(木) 17:02:09
【 課題 】以下のプログラムで、最大値、最小値を表示できるようにする

//Step8.java
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.swing.*;
import java.text.*;

public class Step8 extends JFrame implements ActionListener{
int size = 256, level = 256, max_hindo;
int[] histo = new int[level];
Image img;
JLabel l;

public static void main(String[] args){
JFrame f = new Step8();
f.setVisible(true);
}
6782:2005/11/17(木) 17:02:33
Step8(){
setTitle("統計量を求める");
setBounds(10, 10, 600, 450);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JMenuBar mb = new JMenuBar();
JMenu m = new JMenu("ファイル");
JMenuItem mi = mi = new JMenuItem("開く");
mi.addActionListener(this);
m.add(mi);
mi = new JMenuItem("終了");
mi.addActionListener(this);
m.add(mi);
mb.add(m);
setJMenuBar(mb);
ImagePanel p = new ImagePanel();
l = new JLabel("");
p.add(l);
getContentPane().add(p);
}
6793:2005/11/17(木) 17:03:11

class ImagePanel extends JPanel{
public void paintComponent (Graphics g){
super.paintComponent(g);
if (img != null){
g.drawImage(img, 25, 65, 25+size, 65+size, 0, 0, size, size, this);
drawHistogram(g);
}
}
}

public void drawHistogram(Graphics g){
for (int i = 0; i < level; i++)
g.drawLine(310+ i, 321, 310 +i, 321 - histo[i] * size / max_hindo);
g.drawRect(309,329, 257, 12);
for(int i = 0; i < level; i++){
g.setColor(new Color(i, i, i));
g.drawLine(310 + i, 330, 310 + i, 340);
}
}
6804:2005/11/17(木) 17:03:39
public void count(){
PixelGrabber pg = new PixelGrabber(img, 0, 0, size, size, true);
try{
if(pg.grabPixels()){
int[] op= (int[])pg.getPixels();
for (int i = 0; i < level; i++) histo[i] = 0;
int number = size * size;
int center = number / 2; // 中央値
double mean = 0.0, xx=0.0; // 平均値
for (int i = 0; i < number; i++){
int x = op[i] & 0xff;
histo[x]++;
mean += x;
xx += x*x;
}
mean /= number;
double var = xx / number - mean * mean; // 平均値を出す
max_hindo = 0; // hindoの最大値を出す
int min =-1, max = -1, median = -1, mode = -1;
for (int i = 0, ruikei = 0; i < level; i++){
ruikei += histo[i];
if (median == -1 && ruikei > center) median=i;
if (histo[i] > max_hindo){
max_hindo = histo[i];
mode = i;
}
6815:2005/11/17(木) 17:04:25
// 最小値の式
// 最大値の式
}
DecimalFormat df = new DecimalFormat("0.00");
l.setText("最小値:" +min+ " 最大値:" +max+ " 平均値:" +df.format(mean)+ " 標準偏差:" +df.format(Math.sqrt(var))+ " 中央値:" +median+ " 最頻値:" +mode);
}
}catch (InterruptedException ie){}
}
6826:2005/11/17(木) 17:09:32
public void actionPerformed(ActionEvent ae){
String menu = ae.getActionCommand();
if (menu.equals("開く")){
JFileChooser fc = new JFileChooser();
int fd = fc.showOpenDialog(this);
if (fd == JFileChooser.APPROVE_OPTION) {
img = new ImageIcon(fc.getSelectedFile().getPath()).getImage();
count();
repaint();
}
}
else if (menu.equals("終了")) System.exit(0);
}
}

>>681の1,2行目で値を求めるみたいですが上手くいきません
期限は来週の月曜までです、お願いします
683デフォルトの名無しさん:2005/11/17(木) 17:33:28
>>672
import java.io.*;
public class shukudai {
public static void main(String[] args) throws IOException{
BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
System.out.print("段数? : ");
int a=Integer.parseInt(buf.readLine()); //段数入力
for(int i=0,k=0;i<a;i++){ //iが入力した段数より小さい間繰り返し
for(int j=a-i;j>0;j--){ //入力した段数から繰り返し回数iを引くことでスペースの数jを算出
System.out.print(" "); //上記で出た数だけ繰り返し
}
for(k=1+i*2;k>0;k--){ //最初"*"が1つから2の倍数ごとに表示数が増えていく
System.out.print("*");
}
System.out.println(); //両方表示したら改行
}
}
}
684デフォルトの名無しさん:2005/11/17(木) 17:43:52
>>675
>>626の内容を読むのが面倒なんで、最初から配列に適当に数入れてある所から始めるぞ。

public class play001 {
public static void main(String[] args){
int[] a={4,7,2,9,12,3,8,1,5}; //要素数9つで適当に数字入れる
for(int i=0;i<a.length;i++){ //a[i]を固定してa[j]と比べていく事でa[i]に最大値を入れていく
for(int j=i+1;j<a.length;j++){ //jはiより+1した要素から比べていく
if(a[i]<a[j]){
int koukan=a[i]; //交換するための変数を一つ取ってa[i]よりa[j]が大きい場合、位置交換
a[i]=a[j];
a[j]=koukan;
}
}
}
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
}
}
685デフォルトの名無しさん:2005/11/17(木) 23:09:25
【課題】
以下の配列のすべての要素の合計を表示するプログラムを作成せよ。
全ての要素を巡回し参照するのに、多重ループを利用せよ。

int[][] map = {{0,8,7,8,5,4,7,3,7,9},
{5,6,9,5,0,3,2,4,3,5},
{9,1,8,6,5,5,2,7,1,8},
{7,6,2,2,6,9,6,3,5,9},
{7,1,2,7,9,5,7,1,5,9},
{8,6,6,2,4,7,9,8,1,1},
{6,6,2,0,7,8,2,2,4,1},
{8,9,8,7,1,3,8,8,8,1},
{7,0,1,8,1,9,0,7,2,0},
{9,1,8,7,7,5,7,0,8,6}};
動作例)
$ java OKadai110701
要素の合計は 504
$

【期限】
11月21日
【Ver】
1.4
【補足】
丸投げです。
よろしくお願いします。
686デフォルトの名無しさん:2005/11/17(木) 23:26:49
>>685
public class OKadai110701 {
public staic void main(String[] args) {
int[][] map = {{0,8,7,8,5,4,7,3,7,9},
{5,6,9,5,0,3,2,4,3,5},
{9,1,8,6,5,5,2,7,1,8},
{7,6,2,2,6,9,6,3,5,9},
{7,1,2,7,9,5,7,1,5,9},
{8,6,6,2,4,7,9,8,1,1},
{6,6,2,0,7,8,2,2,4,1},
{8,9,8,7,1,3,8,8,8,1},
{7,0,1,8,1,9,0,7,2,0},
{9,1,8,7,7,5,7,0,8,6}};
int sum = 0;
for(int i=0; i<map.length; i++) {
for(int j=0; j<map[i].length; j++) {
sum += map[i][j];
}
}
System.out.println("要素の合計は "+sum);
}
}

動作確認はしてません。
687デフォルトの名無しさん:2005/11/18(金) 07:19:16
>>683

>>672の者です。
ありがとうございました!!
688デフォルトの名無しさん:2005/11/18(金) 10:26:41
>>672をひし形で出力するには
FOR文をどうやっていじったらよいのですか?
どなたかよろしくお願いします。
早めの返答お願いします。
689デフォルトの名無しさん:2005/11/18(金) 10:49:52
>>688
>>674のfor文を逆に書いて

ピラミッド
逆ピラミッド

で、ひし形になる
690デフォルトの名無しさん:2005/11/18(金) 11:09:39
>>688
ていうか>>683丁寧にコメント付きでうぷしてくれたんだから
そのくらいの応用は自分で出来ないと・・・。
691デフォルトの名無しさん:2005/11/18(金) 12:57:10
>>690
for文とかの程度で掲示板に質問してるアホじゃ無理だと思われ.
このくらいだったら自分でコード書いて実行を繰り返したほうが
回答待つより早いぞ.
692デフォルトの名無しさん:2005/11/18(金) 14:48:18
>>688
683だけど。
単純に同じ数値の倍の段数のひし形出すならそう難しくはないけど、
指定した段数のひし形を作ろうとするなら若干面倒臭い。
いくつかif文での指定が必要になると思う。
693683:2005/11/18(金) 15:45:00
import java.io.*;
public class Hishigata {
public static void main(String[] args) throws IOException{
BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
int a,i,j,k,x=0;
System.out.print("段数? : ");
a=Integer.parseInt(buf.readLine());
if(a%2==1){
a++;
x=1;
}
for(i=0,k=0;i<a/2-x;i++){
for(j=a/2-i-1;j>0;j--){
System.out.print(" ");
}
for(k=1+i*2;k>0;k--){
System.out.print("*");
}
System.out.println();
}
for(i=0,k=0;i<a/2;i++){
for(j=i;j>0;j--){
System.out.print(" ");
}
for(k=a-i*2-1;k>0;k--){
System.out.print("*");
}
System.out.println();
}
}
}
694683:2005/11/18(金) 15:48:24
このプログラムで重要なのは奇数と偶数でどう処理させるかを若干変える、と言うこと。

偶数の場合は"*"が増える時と減る時の処理回数がx:x同士になるが、奇数だとx:x-1(もしくはx+1:x)になる。
そのために今回の場合は冒頭の方のif文でaを2で割った余りを問う事で偶数か奇数かを判定。
そしてどちらか一方の処理回数をa/2+1にする必要がある(5/2は小数点以下が切り捨てられ2になるため)。
今回の俺のやり方の場合は奇数も偶数もif文によって同じ数になるようにして、
変わりに奇数の場合だけxと言う値に1を入れることで先の処理の回数を1回分減らしている。
後の減っていく処理に関してだが、特に説明はいらないと思う。
for文で変数kに値を入れている所だけ首を傾げるかもしれないが、
要するに今回の場合は"*"が一番多く表示される回数がa-1と言う状態だったので、
そこからi*2で回数を減らしていっただけ。
本当はaにどんな数値を入れても表示出来るもっと実用的なタイプで作ることも出来るのだが、
そっちの方は興味を持ったら自分で考えてくれ。
695663:2005/11/18(金) 16:22:09
>>667
大変助かりました。
ありがとうございました。
696デフォルトの名無しさん:2005/11/19(土) 12:48:43
データベースExerciseに対して、以下の参照系SQL文(SELECT文)を実行し、実行結果となるようなJavaプログラムSelect.javaを作成する。

SELECT Course_ID, Student_ID, MAX(Grades) FROM Registration GROUP BY Course_ID;

実行結果
% java -classpath .;./ConnectorJ.jar Select
Connected to MySQL Server.
Course_ID = A01, Student_ID = S001, MAX(Grades) = 78
Course_ID = F01, Student_ID = S002, MAX(Grades) = 90
Course_ID = F11, Student_ID = S002, MAX(Grades) = 95
Course_ID = F12, Student_ID = S002, MAX(Grades) = 90
Course_ID = F21, Student_ID = S003, MAX(Grades) = 95
Course_ID = F22, Student_ID = S003, MAX(Grades) = 92
Course_ID = F31, Student_ID = S001, MAX(Grades) = 95
7 rows were returned.
Disconnected from MySQL Server.

どなたかお願いします。
697デフォルトの名無しさん:2005/11/19(土) 13:18:00
>>696
Connector for J使わないとダメ?
698デフォルトの名無しさん:2005/11/19(土) 13:37:26
>>696
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Select {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
Class.forName("com.mysql.jdbc.Driver");
Connection cn = DriverManager.getConnection("jdbc:mysql://localhost/Exercise", "root", "pass");
Statement st = cn.createStatement();
System.out.println("Connected to MySQL Server.");
ResultSet rs = st.executeQuery("SELECT Course_ID, Student_ID, MAX(Grades) FROM Registration GROUP BY Course_ID");
int rows=0;
while (rs.next()) {
System.out.println("Course_ID = " + rs.getString(1) +", Student_ID = "+rs.getString(2)+", MAX(Grades) = "+rs.getString(3));
rows++;
}
System.out.println("" + rows + " rows were returned.");
rs.clearWarnings();
st.close();
cn.close();
System.out.println("Disconnected from MySQL Server.");
}
}
699698:2005/11/19(土) 13:39:16
動作確認してないんで後は適当に
接続ユーザーは"root"、パスワードは"pass"って事にしてあるので環境に合わせて変えてくれ
700デフォルトの名無しさん:2005/11/19(土) 21:32:59
【課題】

この配列には、Javaプログラム実行時の引数(コマンド引数)が文字列として格納されている。

コマンド引数を表示するプログラム
public class Kadai001 {
public static void main(String[] args){
for(int i=0; i < args.length; i++) {
System.out.println(args[i]);
}
}
}
例題を参考に、コマンド引数を入力した順番と逆の順に表示するプログラムを作成せよ。
実行例
$ java OKadai110702 astronaut boxer captain
captain
boxer
astronaut
$
【期限】 11月21日

【Ver】 1.4

【補足】

丸投げです。
よろしくお願いします。
701デフォルトの名無しさん:2005/11/19(土) 22:47:13
public class OKKadai110702 {
 public static void main(String[] args){
  for(int i = args.length-1 ; i >= 0 ; i--) {
   System.out.println(args[i]);
  }
 } 
}

この業界にはこないでね(ハアト
702696:2005/11/20(日) 00:19:41
>>698
ありがとうございました。助かりました。
703デフォルトの名無しさん:2005/11/20(日) 02:38:47
>(int i = args.length-1 ; i >= 0 ; i--)
孤立しているな このやり方
704デフォルトの名無しさん:2005/11/20(日) 14:16:32
【 課題 】JANAアプレットを用いて4択クイズを製作せよ。
      条件
     問題を提示し、その答えをチェックボックスを用いて選択する。
     決定ボタンを作成し、答えを決定するようにする。
     
     答えが正解の場合は、「正解」の表示を、間違っていた場合、
     「不正解」とともに、解説の表示を入れること。
     
     問題を答えた後、「次へ」のボタンを出現、次の問題を表示
     させるようにする。
     
     問題は計20問で終了するようにしなさい。   
【 期限 】11月22日
【 Ver  】eclipse SDK 3.1.1 j2SDK1.4.2
【 補足 】とにかく、問題をランダムに20問表示させるプログラム
      を組むことが出来ているかを評価の対象とする。
      
      大学の授業で興味半分にプログラミングの授業を選んだ愚
      か者です。まったく分からずお手上げ状態です。まことに
      申し訳在りませんが、力を貸してください。
      卒業かかってるんで…お願いします!!
705デフォルトの名無しさん:2005/11/20(日) 16:25:29
ja-na
706デフォルトの名無しさん:2005/11/20(日) 16:25:52
これはひどい。
707デフォルトの名無しさん:2005/11/20(日) 23:44:47
class ThreadX extends Thread {
String msg;
ThreadX(String x) {msg = x;}
public void run() {
for (int i=0; i<100; i++) {
System.out.print(msg);
}
}
}
public class ThreadDemo {
public static void main(String args[]) {
Thread th1 = new ThreadX("a");
Thread th2 = new ThreadX("b");
th1.start(); th2.start();
try {th1.join(); th2.join();}
catch (Exception e) {e.printStackTrace();}
}
}
の「aとbが混ざるまでの繰り返し回数を調べる」とはどういうことでしょうか?
実行するたびに実行結果が変わるのですが。
708Java初心者:2005/11/20(日) 23:54:46
【課題】 前回の課題を以下の様に改良せよ。
・JFrameのサブクラスを作成しそのコンテントペインに前回作成したパネルを
載せること。
・ウインドウ上部の×印をクリックウインドウを閉じたときにプログラムが終
了するようにウインドウリスナーを登録せよ。リスナーは匿名内部クラスにす
ること。
・メニューバーを実装し、「ファイル」→「終了」を選択するとプログラムが
終了するように。「ヘルプ」→「バージョン情報」を選択するとメッセージダ
イアログが表示されるように。「終了」と「バージョン情報」について、それ
ぞれキーボード入力Ctrl+xとCtrl+Shift+vでも実行されるようにし。なおか
つリスナークラスを独立したクラスにしなさい。
・さらに全てのリスナークラスを適切と思われるクラスの内部クラスにせよ。
・グラフ描画パネル上でマウスを左クリックすると定義域が半分に(描画が横方向に拡大)なり、右クリックすると定義域が2倍に(描画横方向に縮小)なるようにせよ。最小値は固定したままとする。
・javax.swing.Timerが一定感覚で起すアクションイベント利用してグラフを一定速度動かせ
【 期限 】11月21日
【 補足 】途中までは自力でやったのですが、どうにもなりませんでした。
丸投げしたいのですが、ソレをすると自分で理解ができないと思うのです。
わがままかも知れませんが自分の作ったプログラムを改良していただきたいです。
709708:2005/11/20(日) 23:56:01
以下自ソース
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
class sample11 extends JFrame {
sample11() {
sample g1 = new sample();
MenuExit exit = new MenuExit();
MenuBar menuBar = new MenuBar(exit);
setJMenuBar(menuBar);
Container pane = getContentPane();
pane.setLayout(new BoxLayout(pane,BoxLayout.Y_AXIS));
pane.add(g1);
pack();
setVisible(true);
}
public static void main(String[]args) {
sample11 frame = new sample11();
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e){System.exit(0);}
});
frame.setTitle("sample11"); }}
class MenuExit implements ActionListener{
MenuBar menu1;
MenuExit() {
menu1 = new MenuBar(this);
}
710708:2005/11/21(月) 00:01:40
public void actionPerformed(ActionEvent e){
String str = e.getActionCommand();
if(str.compareTo("I1") == 0){
System.exit(0);
}
else if(str.compareTo("I2") == 0){
JOptionPane.showMessageDialog(null,"Ex8B_2"+"\n"+"produced by Taichi Mototani"+"\n"+"version 1.0.0","
了解",JOptionPane.INFORMATION_MESSAGE);
}}}
class MenuBar extends JMenuBar{
MenuBar(ActionListener listener)
{
JMenu menu1 = new JMenu("ファイル");
JMenu menu2 = new JMenu("ヘルプ");
JMenuItem item1 = new JMenuItem("終了(Ctrl+x)");
JMenuItem item2 = new JMenuItem("バージョン情報(Ctrl+Shift+v)");
item1.setActionCommand("I1");
item2.setActionCommand("I2");
item1.addActionListener(listener);
item2.addActionListener(listener);
item1.setAccelerator(KeyStroke.getKeyStroke("ctrl X"));
item2.setAccelerator(KeyStroke.getKeyStroke("ctrl shift V"));
add(menu1);
add(menu2);
menu1.add(item1);
menu2.add(item2);
}}
711708:2005/11/21(月) 00:07:53
以前の課題、はsample10以下のプログラムです。よろしくお願いします。
ながすぎるので、こちらに。
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=26306
712デフォルトの名無しさん:2005/11/21(月) 18:13:20
【 課題 】以下のように数値データの書かれたテキストファイルを読み込み、
      それらの数値の平均、分散、標準偏差を計算せよ。
        データファイル
         (a)1行に1つの数値の場合
         (b)1行に5つの数値がスペースで区切られている場合
         (c)1行に不定個の数値がスペースで区切られている場合
      について考えよ。
      ファイルを読み込むには、ファイルの名前が"FileName"であれば、
         FileInputStream file = new FileInputStream( "FileName" );
      によってFileInputStreamクラスのオブジェクトを作成する。
【 用語 】数値の個数をn、数値をΧi、i=0,1,....,n-1、それらの平均をжとする時、
       分散u=(Χ0-ж)^2 + (Χ1-ж)^2 +…+ (Χn-1−ж)^2 / (n-1)
          =買エi^2 - nж^2 / (n-1)
       標準偏差は、分散をuで表すと、mです。つまり標準偏差の2乗が分散です。
【 期限 】11月24日(木)
【 Ver  】希望なし
【 補足 】自分なりに作ってみたのですが、できません。
      丸投げします。すみませんがよろしくお願いします。
      なをプログラムを書く際の(a)(b)(c)の違いが良く分かりません。
      よろしくお願いします。
713すいません。:2005/11/21(月) 18:23:25
数値をアスキーコードを用いて変換したいのですが、簡単な方法無いですか?
102(8進数)=66(10進数)=Bの流れで変換したいのですが・・・
投げかけですいません。
714デフォルトの名無しさん:2005/11/21(月) 18:32:20
【 課題 】キーボードから入力された英文を単語に分解するプログラムを作成せよ。
      たとえば、   
       This is a pen
      と入力されたら 
       This,is,a,pen
      の4単語に分解する。 
【 用語 】なし
【 期限 】11/23(水)
【 Ver  】なし
【 補足 】なし
      丸投げですがよろしくお願いします!!
715デフォルトの名無しさん:2005/11/21(月) 18:54:03
>>714
手抜き
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/Scanner.html
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/String.html#split(java.lang.String)
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/Arrays.html#toString(java.lang.Object[])

import java.util.*;

public class Q714 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while(true) {
// 一行読み込み
String line = scanner.next();
// 非単語文字で分割
String[] words = line.split("\\W");
// 表示
System.out.println(Arrays.toString(words));
}
}
}
716超初心者:2005/11/21(月) 20:13:51
課題『☆☆☆☆☆で表現されたバーを回転させながら横に移動させてみよう』
用語なし
期限は明日まで。
補足:windowsでlcc-win32っていうコンパイラ使ってます。chinou.3をインクルードしてCprint(x,y,文字列);っていうのを使うみたいなんですけど、お願いします!!
717デフォルトの名無しさん:2005/11/21(月) 21:31:38
>>716
C/C++の宿題を片付けます 53代目
http://pc8.2ch.net/test/read.cgi/tech/1132102992/
718デフォルトの名無しさん:2005/11/22(火) 00:06:43
【 課題 】
生年月日と計算したい年月を入力し
身体、感情、知性のバイオリズム数値を計算し
グラフを表示させよ。
【 用語 】
身体のリズムは23日サイクル
感情のリズムは28日サイクル
知性のリズムは33日サイクル
西暦への変換は
昭和年号+1925
平成年号+1988
を用いる。
【 期限 】
11/22 11:00
【 Ver  】
1,4
【 補足 】
プログラミングにおける構成や全体のフローチャートおよび説明を
必ず書けとのことですのでよろしくお願いします。
719デフォルトの名無しさん:2005/11/22(火) 11:59:25
【 課題 】四捨五入プログラムを作る。コマンドラインから引数が1つ入る、
Math.roundを使わずに四捨五入する。
【 期限 】11月23日朝
【 Ver  】1.5
【 補足 】ごめんなさい、丸投げです。よろしくお願いいたします。
720デフォルトの名無しさん:2005/11/22(火) 12:02:12
ttp://www.comp.metro-u.ac.jp/%7Etake/II/II8/II8.html

課題
掛け算の機能を追加せよ。
整数の割り算の機能を追加し,窓を追加して余りも表示せよ。
余りの表示は,割り算のときだけにし,他の計算のときは,何も表示しないようにせよ。
割り算のとき,0で割ろうとしたらエラーを表示せよ。
クリアボタンを追加し,入力が両方とも0になるようにせよ。
init()の中で,入力を両方とも0にセットせよ。

中級編
0〜9の文字ボタンを用意し,それを押すと数値を入力する窓のどちらかに数字をセットできるようにせよ。できれば,電卓のように,数値を押すたびに右側に数値が付け加えられていくとよい。

お願いします。
721デフォルトの名無しさん:2005/11/22(火) 12:31:45
>>719
public class sample{
 public static void main(String[] args){
  double d = Double.parseDouble(args[0]);
  d *= 10;
  d = (int)(d + 0.5);
  d /= 10;
  System.out.println( d );
 }
}

こんなんでいいの?
722デフォルトの名無しさん:2005/11/22(火) 14:08:22
>720
ちょっち長いけど。さらにまだまだ勉強不足だけど。

import java.applet.*;
import java.awt.Graphics;
import java.awt.Label;
import java.awt.TextField;
import java.awt.Button;
import java.awt.event.*;
import java.lang.String;

public class Homework extends Applet implements ActionListener {

private Label lab1 = new Label("電卓");
private TextField box1 = new TextField(4);
private TextField box2 = new TextField(4);
private Button plus = new Button("+");
private Button minus = new Button("-");
private Button multiply = new Button("*");
private Button divide = new Button("/");
private Label lab2 = new Label("=");
private TextField box3 = new TextField(8);
private Label lab3 = new Label("r");
private TextField remainder = new TextField(8);
private Button[] number = new Button[10];
private Button clear = new Button("clear");
723722:2005/11/22(火) 14:08:48
続き

public void init(){
add(lab1);
add(box1);
add(box2);
add(plus);
add(minus);
add(multiply);
add(divide);
add(lab2);
add(box3);
add(lab3);
add(remainder);
for(int i = 0; i < 10; i++){
number[i] = new Button(""+i);
add(number[i]);
number[i].addActionListener(this);
}
add(clear);
plus.addActionListener(this);
minus.addActionListener(this);
multiply.addActionListener(this);
divide.addActionListener(this);
clear.addActionListener(this);
box1.setText("0");
box2.setText("0");
}

public void paint(Graphics g){ //今回はお休み
}
724722:2005/11/22(火) 14:09:38
public void actionPerformed(ActionEvent e){ //ボタンが押されたら,ここが実行される。
int i;
try{
i = Integer.parseInt(e.getActionCommand());
box1.setText(box1.getText() + i);
}catch(NumberFormatException e1){
if(e.getActionCommand().equals("clear")){
box1.setText("0");
box2.setText("0");
box3.setText("");
remainder.setText("");
}
else{
String s1, s2, s;
int a, b, c;
int d = 0;

s1 = box1.getText(); //文字の読み取り。
s2 = box2.getText();
a = Integer.parseInt(s1); //文字を整数に変換
b = Integer.parseInt(s2);
remainder.setText("");
if(e.getActionCommand().equals("+")){
c = a + b;
s = Integer.toString(c);
}
else if(e.getActionCommand().equals("-")){
c = a - b;
s = Integer.toString(c);
}
725722:2005/11/22(火) 14:10:28
else if(e.getActionCommand().equals("*")){
c = a * b;
s = Integer.toString(c);
}
else{
if(b != 0){
c = a / b;
d = a % b;
remainder.setText("" + d);
s = Integer.toString(c);
}else{
s = "error";
}
}
box3.setText(s);
}
}
}
}

こんなもんかな。
まぁ、勉強不足なんでどうなのかはシラネ。
726デフォルトの名無しさん:2005/11/22(火) 14:26:44
あってました
どうもありがとうございました
727デフォルトの名無しさん:2005/11/22(火) 15:48:36
誰に対してのお礼かははっきりさせよう。
皆が自分の質問にだけ答えているわけじゃないので。
728デフォルトの名無しさん:2005/11/22(火) 23:20:55
【 課題 】画像ファイルを開き、サイズを変更して保存できるようにする。
      画像ファイルの形式は一般的なものならばOK。      
【 用語 】特になし
【 期限 】11/24日の朝までに
【 Ver  】1.5
【 補足 】初心者スレで聞くか迷ったのですが、宿題なのでこちらに書かせてもらいました。
729デフォルトの名無しさん:2005/11/23(水) 01:29:15
>>728
ほんとに開いてサイズ変更して保存するだけですが。

import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.*;
public class Q728 {
public static void main(String[] args) throws Exception {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
JFileChooser fileChooser = new JFileChooser() {
public boolean accept(File f) { return f.isDirectory() || f.getName().endsWith(".jpg"); }
};

int stat = fileChooser.showOpenDialog(null);
if (stat == JFileChooser.CANCEL_OPTION || stat == JFileChooser.ERROR_OPTION) return;
BufferedImage src = ImageIO.read(fileChooser.getSelectedFile());
double d = Double.parseDouble(JOptionPane.showInputDialog("倍率を入力してください。 (例: 1.5)"));
int w = (int)(src.getWidth() * d);
int h = (int)(src.getHeight() * d);
if (w <= 0 || w > 5000 || h <= 0 || h > 5000) return;
BufferedImage dst = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
Graphics2D g = (Graphics2D) dst.getGraphics();
g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
g.drawImage(src, 0, 0, w, h, null);
stat = fileChooser.showSaveDialog(null);
if (stat == JFileChooser.CANCEL_OPTION || stat == JFileChooser.ERROR_OPTION) return;
ImageIO.write(dst, "jpg", fileChooser.getSelectedFile());
}
}
730デフォルトの名無しさん:2005/11/23(水) 11:43:17
誘導されてきました。宿題ではないんですけど。
好きな飲み物を聞くだけのプログラムです。デバッグよろしくです。

import java.io.*;
public class Drink{
public static void main(String[] args){
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try{
System.out.println("飲み物は何が好きですか?");
System.out.println("1 オレンジジュース");
System.out.println("2 コーヒー");
System.out.println("3 ミルク");
String line = reader.readLine();
int n = Integer.parseInt(line);
switch(n){
case 1:
System.out.println("オレンジジュースです。");
break;
case 2:
System.out.println("コーヒーです。");
break;
case 3:
System.out.println("ミルクです。");
break;
}
}catch(IOException e){
System.out.println(e);
}catch(NumberFormatException e){
System.out.println("数字の形式が正しくありません。");
}
}
}
731デフォルトの名無しさん:2005/11/23(水) 12:26:26
>730
4行目のnewとInputStreamReaderとの間のスペースが全角だった以外は普通に動くんだが。
732730:2005/11/23(水) 12:36:51
>>731
ども。なんかデフォルトエンコーディングが悪かったみたい。
Xcode+Terminalなんだけど、Xcodeは日本語EUCでTerminalはSJISだった。
んで、XcodeをSJISにしたら、おkだった。御騒がせしました。
733デフォルトの名無しさん:2005/11/23(水) 14:11:22
【 課題 】javaで描画した絵(drawlineメソッドなどで書いた線など)
を画像ファイル(bmpでもgifでもjpgでもよいのですが)と
してローカルディスクに保存する      
【 用語 】特になし
【 期限 】11/25日の朝
【 Ver  】1.5
【 補足 】よろしくお願いします。
734デフォルトの名無しさん:2005/11/23(水) 14:59:41
【 課題 】名前,学生証番号,所属クラス名をデータとして持つStudentというクラスを 定義しなさい.
その中で,名前,学生証番号,所属クラスを引数として与えて, 一人の学生に対応するオブジェクトを生成する構成子を定義しなさい.
また, それらのデータの値を取り出すためのメソッド,getName, getId, getClassName, を定義しなさい.
そのクラス定義を利用して,2名の学生オブジェ クトを生成し,それらのデータを取り出すメインプロ グラムを書いて,動きを確かめなさい.
【 用語 】学生証番号、所属クラス名は英数です。
【 期限 】11月29日の午前
【 Ver  】1.5
【 補足 】特に、「一人の学生に対応するオブジェクトを生成する構成子を定義」というところが分かりません。
よろしくお願いします。
735デフォルトの名無しさん:2005/11/23(水) 15:08:20
>>733
手抜きですが。

import java.awt.*;
import java.awt.image.*;
import java.io.*;

public class T53_733 {
public static void main(String[] args) throws IOException {
// 描画
BufferedImage image = new BufferedImage(640, 480, BufferedImage.TYPE_INT_ARGB);
Graphics g = image.getGraphics();
for(int i=0; i<50; i++) {
int x1 = (int)(Math.random()*640);
int y1 = (int)(Math.random()*480);
int x2 = (int)(Math.random()*640);
int y2 = (int)(Math.random()*480);
g.setColor(new Color((int)(Math.random()*0xFFFFFF)));
g.drawLine(x1, y1, x2, y2);
}
// 保存
javax.imageio.ImageIO.write(image, "png", new File("output.png"));
}
}
736デフォルトの名無しさん:2005/11/23(水) 15:28:17
【 課題 】下のプログラムを参考に、オープンするだけのウィンドウを作成しなさい。
【 期限 】来週月曜
【 Ver  】指定無し
【 補足 】よろしくお願いします。
  import java.awt.*;
public class Awt01{
public static void main(String a[]){
MyFrame chko = new MyFrame("The Window Open Only!");
chko.setSize(350,150);
chko.setLocation(100,200);
chko.show();
}
}

class MyFrame extends Frame{
MyFrame(String t){
super(t);
}
}
737デフォルトの名無しさん:2005/11/23(水) 15:28:41
>>734
手抜きですが…細かい所は自分で直してください。
> 一人の学生に対応するオブジェクトを生成する構成子を定義
名前、学生証番号、所属クラスを引数としてとるコンストラクタを定義しろって事じゃない?

public class T53_734 {
public static void main(String[] args) {
Student student1 = new Student("山田太郎", "res733", "Java no Shukudai 53");
Student student2 = new Student("鈴木一郎", "res734", "Java no Shukudai 53");
System.out.printf("名前:%s 学生番号:%s クラス名:%s\n", student1.getName(), student1.getId(), student1.getClassName());
System.out.printf("名前:%s 学生番号:%s クラス名:%s\n", student2.getName(), student2.getId(), student2.getClassName());
}
}

class Student {
private String name;
private String id;
private String className;
public Student(String name, String id, String className) {
if (name == null || id == null || className == null) throw new NullPointerException();
if (name.equals("") || !id.matches("\\p{ASCII}+") || !className.matches("\\p{ASCII}+")) throw new IllegalArgumentException();
this.name = name;
this.id = id;
this.className = className;
}
public String getClassName() { return className; }
public String getId() { return id; }
public String getName() { return name; }
}
738デフォルトの名無しさん:2005/11/23(水) 15:33:34
>>736
参考にって…オープンするだけのウィンドウってそれでもう出来てない?
739736:2005/11/23(水) 15:51:19
Frameクラスを作成するのが宿題なんですけど・・・
740デフォルトの名無しさん:2005/11/23(水) 15:58:26
>>739
ん?出来てるよ?
741デフォルトの名無しさん:2005/11/23(水) 16:33:23
【 課題 】
class Addition{
static float p1;
static float p2;
static float plus(){
return p1+p2;
}
}
class AdditionMain{
public static void main(String args[]){
Addition.p1=1;
Addition.p2=2;
float answer=Addition.plus();
System.out.println("1+2="+answer);
}
}
↑足し算を実行する関数が、引数を持つように直せ。
【 期限 】今日中
【 補足 】本を読んだりしていますが、引数自体がまだ余り理解出来ていないため丸投げです
よろしくお願いします
742デフォルトの名無しさん:2005/11/23(水) 16:38:17
>>741
間違ってたらごめん

class Addition{
static float plus(float p1, float p2){
return p1+p2;
}
}
class AdditionMain{
public static void main(String args[]){
float answer=Addition.plus(1, 2);
System.out.println("1+2="+answer);
}
}
743デフォルトの名無しさん:2005/11/23(水) 16:38:52
>>741

class Addition{
static float plus(float p1, float p2){
return p1+p2;
}
}
class AdditionMain{
public static void main(String args[]){
float answer=Addition.plus(1, 2);
System.out.println("1+2="+answer);
}
}
744デフォルトの名無しさん:2005/11/23(水) 16:40:15
リロすればよかった・・・
745デフォルトの名無しさん:2005/11/23(水) 17:02:21
【 課題 】
public class sakusaku {
public static void main(String[] args){
TestSub sub = new TestSub();
sub.putName(2);
}
}
class TestSub {
private int no = 0;
private String name = "";
protected void putName( int cnt ){
for(int i = 0 ; i < cnt ; i++) {
no = i;
getName();
System.out.println( name );
}
}
746デフォルトの名無しさん:2005/11/23(水) 17:02:42
private String getName(){
switch(no){
case 0:
name = "A";
break;
case 1:
name = "B";
break;
default:
break;
}
return name;
}
}
↑パラメーター、戻り値を使用してフィールド変数を使用しないようにする。
【 期限 】今日中
【 補足 】まだJAVAを理解できておらず丸投げです。よろしくお願いします。
747741:2005/11/23(水) 17:37:09
>>742-743
素早い回答を有難う御座いました!
無事実行出来ました、助かりました
お二人みたいになれる様、もっと勉強したいと思います
748デフォルトの名無しさん:2005/11/23(水) 17:41:58
>>735
ありがとうございます。
それと、アプレットで結果を表示した画像を保存出来ます?
例えば好きな色の画像(IndexColorModelを使用)でコマンドプロンプトで赤と入力したら
アプレットに赤の画像が出て、その画像をローカルディスクに保存したいのですが。
お願いします。
749デフォルトの名無しさん:2005/11/23(水) 18:38:01
■私のホームページにようこそ
----
●こんにちは


上ようなのテキストをhtml化したいです。
コンパイルするとシンボルが解決できませんっていうエラーが・・
おねがいします。
750749:2005/11/23(水) 18:38:27
public class MakeHtml{
public static void main(String[] args){
System.out.println("<html><head><title>My page</title></head><body>");
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String line;
try{
while((line=reader.readLine()) != null){
char a = line.charAt(0);
if(a=='■'){
System.out.println("<h1>"+"line.substring(1)"+"</h1>");
}else if(a=='●'){
System.out.println("<h2>"+"line.substring(1)"+"</h2>");
}else if(line.equals("----")){
System.out.println("<hr>");
}else if(line.equals("address")){
System.out.println("<a href=\"mailto:[email protected]\">[email protected]</a>");
}else{
System.out.println(line);
}
}
System.out.println("</body></html>");
}catch(IOException e){
System.out.println(e);
}
}
}
751デフォルトの名無しさん:2005/11/23(水) 18:44:51
>>749-750
import java.io.*;
752751:2005/11/23(水) 18:47:19
追記
line.substring(1) は""で括っちゃ駄目よ
753749:2005/11/23(水) 18:53:03
>>751
ありがとん!javaを初めて一週間。プログラムって難しいね。
頑張ります。
754デフォルトの名無しさん:2005/11/23(水) 19:36:42
何でみんなEclipseとか使わないの?
アホなの?
755デフォルトの名無しさん:2005/11/23(水) 19:45:21
Eclipse?何だ?
756デフォルトの名無しさん:2005/11/23(水) 19:46:08
アホじゃなかったらこんなとこになんかきません。
757デフォルトの名無しさん:2005/11/23(水) 19:46:54
そんなの使ってるの軟弱者だけ
758デフォルトの名無しさん:2005/11/23(水) 20:10:34
【 課題 】EOFException例外を発生させ、catchで補足せよ 
【 用語 】なし
【 期限 】11/24(水)
【 Ver  】なし
【 補足 】簡単なプログラムでお願いします!!
      丸投げですがよろしくお願いします!!

759デフォルトの名無しさん:2005/11/23(水) 20:15:48
>>758
適当…throw new EOFException()じゃだめかな?

import java.io.*;
public class T53_758 {
public static void main(String[] args) throws IOException {
try {
DataInputStream in = new DataInputStream(new ByteArrayInputStream(new byte[0]));
in.readByte();
} catch (EOFException exception) {
exception.printStackTrace();
}
}
}
760デフォルトの名無しさん:2005/11/23(水) 20:32:51
コマンドラインで
appletviewer test.html
と実行するとき、appletviewerを略してappvと出来るようにしたいのですが、教えてください!
appv test.html
こんな風にする方法です。
761デフォルトの名無しさん:2005/11/23(水) 20:35:18
>>760
appletviewerをコピーしてappvにリネーム…使えるかどうか知らんがな
762デフォルトの名無しさん:2005/11/23(水) 20:53:53
763デフォルトの名無しさん:2005/11/23(水) 21:03:50
>>760
$ ln -s appletviewer appv
764デフォルトの名無しさん:2005/11/23(水) 21:16:48
>745
こんなんでいいかな。

public class sakusaku {
public static void main(String[] args){
TestSub sub = new TestSub();
sub.putName(2);
}
}

class TestSub {

protected void putName( int cnt ){
int no;
for(int i = 0 ; i < cnt ; i++) {
no = i;
String name = getName(no);
System.out.println( name );
}
}
private String getName(int no){
switch(no){
case 0:
return "A";
case 1:
return "B";
default:
return "";
}
}
}
765デフォルトの名無しさん:2005/11/23(水) 21:20:20
>>763
出来ないけど。
766デフォルトの名無しさん:2005/11/23(水) 21:45:54
>>764
>>デフォルトの名無しさん
>764
764さん、ありがとうございます。このソースみてやっと理解できました。
本当にありがとうございました。
767764:2005/11/23(水) 21:54:01
初めて宿題に答えたんだが、礼を言われるっていうのはすばらしいもんだな。
>766も頑張ってJAVA勉強して、このスレで答えられる側に回ってくださいな。
768デフォルトの名無しさん:2005/11/23(水) 21:56:35
>>764
真ん中のnoいらなくね?
769デフォルトの名無しさん:2005/11/23(水) 22:03:17
>768
ああ、確かにいらないorz
そのままgetName(i)ってやればいいな。
正直すまんかった。。。
770デフォルトの名無しさん:2005/11/23(水) 22:59:55
【 課題 】次のプログラムを作成せよ
      ・3行、2列のGridLayoutで、5つのラベルコンポーネントを配置
      ・表示されるウィンドウの位置は100、200の位置になるようにする
【 用語 】なし
【 期限 】明後日
【 Ver  】なし
【 補足 】○投げですがよろしくお願いします。
771デフォルトの名無しさん:2005/11/23(水) 23:21:01
>>770
適当ですが。

import java.awt.*;
import java.io.IOException;
import javax.swing.*;
public class T53_770 extends JFrame {
public static void main(String[] args) throws IOException {
new T53_770();
}
public T53_770() {
super("Java の宿題ここで答えます Part 53");
SwingUtilities.invokeLater(new Runnable() {
public void run() { initgui(); }
});
}
private void initgui() {
Container container = getContentPane();
container.setLayout(new GridLayout(3, 2));
container.add(new JLabel("【 課題 】"));
container.add(new JLabel("【 用語 】"));
container.add(new JLabel("【 期限 】"));
container.add(new JLabel("【 Ver  】"));
container.add(new JLabel("【 補足 】"));
setLocation(100, 200);
pack();
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
}
772デフォルトの名無しさん:2005/11/23(水) 23:32:23
>>748
誰かお願いします。
773デフォルトの名無しさん:2005/11/23(水) 23:48:40
>>707
どなたかお願いします。
774デフォルトの名無しさん:2005/11/23(水) 23:52:51
>>772,773
問題の意味わからんから回答が出ないんじゃない?
775ネス ◆Ness.AmS0A :2005/11/24(木) 00:01:14
>>773
aとbが混ざるまでの繰り返し回数のカウンタ付ければいいんじゃね?
776デフォルトの名無しさん:2005/11/24(木) 00:56:43
【 課題 】入力した2つの値の、最小公倍数と最大公約数を求めるプログラム

【 期限 】11月29日
【 Ver  】1.5

【 補足 】丸なげで申し訳ありません。
      まだ習い始めたばかりの初心者ですので、簡単なソースで作って頂けると幸いです。
      どうぞよろしくお願いします。
777デフォルトの名無しさん:2005/11/24(木) 01:27:54
>776
できるだけ簡単にしてみたつもり。

import java.io.*;
public class T53_776 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("数字を2つ入力してください");
int number1 = Integer.parseInt(br.readLine());
int number2 = Integer.parseInt(br.readLine());
System.out.println("最小公倍数は、"+multiple(number1, number2));
System.out.println("最小公約数は、"+divisor(number1, number2));
}
static int multiple(int number1, int number2){
int j = number1;
int k = number2;
while(j != k){
if(j < k)
j += number1;
else
k += number2;
}
return k;
}
778777:2005/11/24(木) 01:28:18
続き

static int divisor(int number1, int number2){
int ans;
while((ans = number1 % number2) != 0){
number1 = number2;
number2 = ans;
}
return number2;
}

}
779772です。:2005/11/24(木) 02:43:25
772>>でも書きましたが説明不足でした。
このプログラムを改良して、Integer.parseInt(br.readLine())で1を入力したら白、2なら赤、3なら青、4なら黄色、5なら黒の2×2の画像をアプレットで表示し、表示された結果をローカルディスクに保存するプログラムを希望します。
import java.applet.*;
import java.awt.*;
import java.awt.image.*;

public class color extends Applet {
Image img;

public void init(){
byte r [] = { 0,(byte)255,(byte)255,0,(byte)255};
byte g [] = { 0,(byte)255,0,0,(byte)255};
byte b [] = { 0,(byte)255,0,(byte)255,0};

IndexColorModel cm = new IndexColorModel(3,5,r,g,b);

int[] pix = {1,1,
1,1};
MemoryImageSource mimg = new MemoryImageSource (2,2,cm,pix,0,2);
img = createImage(mimg);
}

public void paint(Graphics g){
g.drawImage(img,0,0,100,100,this);
}
}
780デフォルトの名無しさん:2005/11/24(木) 08:32:31
>>779
Appletってローカルディスクにアクセスできたっけ?
781デフォルトの名無しさん:2005/11/24(木) 11:54:16
【 課題 】コマンドラインから第一引数、0以上の数値(10進数)が渡される。
       その引数(10進数)を3進数で表示する。

【 期限 】25日
【 Ver  】1.5
【 補足 】すみません、丸投げです。
      よろしくおねがいします。
782デフォルトの名無しさん:2005/11/24(木) 12:43:29
【課題】ある整数値を入力するたびに、1からその数までの合計を繰り返す
    プログラムを作成してください。ただし、入力した値が0または、
    マイナスの値ならその処理を終了してください。

【期限】11月28日
【Ver】指定なし
【補足】While文を使います。
    丸投げです。宜しくお願いします。

783デフォルトの名無しさん:2005/11/24(木) 12:48:15
>782の補足

まだ習い始めたばかりの初心者ですので、
簡単なソースで作って頂けると嬉しいです。
宜しくお願いいたします。
784デフォルトの名無しさん:2005/11/24(木) 14:25:56
public class Q781{
public static void main(String[] args) {
int num = Integer.parseInt(args[0]);
String numS = "";
while(num>2){
numS =Integer.toString(num%3) + numS;
num /= 3;
}
numS = Integer.toString(num) +numS;
System.out.println(numS);
}
}
785784:2005/11/24(木) 14:27:38

>>781宛ね
786デフォルトの名無しさん:2005/11/24(木) 15:06:01
>>782
こんな何の捻りもない初歩も出来ないってお前授業聞いてんのか?
もし授業受けてるのにわからないならやばいぞ。

import java.io.*;
public class 782{
public static void main(String[] args)throws IOException{
BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
int sum=0;
while(true){
System.out.print("数値入力:");
int x=Integer.parseInt(buf.readLine());
if(x<=0) break;
System.out.println("合計値:"+(sum+=x));
}
System.out.println("処理終了");
}
}
787デフォルトの名無しさん:2005/11/24(木) 15:14:16
>>786
まがってね?
788787:2005/11/24(木) 15:32:31
>>787 「ち」が抜けてた・・・orz
訂正
>>786
間違ってるよ
789デフォルトの名無しさん:2005/11/24(木) 16:23:03
ああ、問題の意味を取り違えてただけだわ。
どちらにしても簡単だろう。

import java.io.*;
public class play001{
public static void main(String[] args)throws IOException{
BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
while(true){
int sum=0;
System.out.print("数値入力:");
int x=Integer.parseInt(buf.readLine());
if(x<=0) break;
for(int i=1;i<=x;i++){
sum+=i;
}
System.out.println("合計値:"+sum);
}
System.out.println("処理終了");
}
}
790デフォルトの名無しさん:2005/11/24(木) 16:27:39
for文を一切使うなという条件なら

import java.io.*;
public class 782{
public static void main(String[] args)throws IOException{
BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
while(true){
int sum=0,i=1;
System.out.print("数値入力:");
int x=Integer.parseInt(buf.readLine());
if(x<=0) break;
while(true){
if(i>x) break;
sum+=i;
i++;
}
System.out.println("合計値:"+sum);
}
System.out.println("処理終了");
}
}
791728:2005/11/24(木) 18:34:08
遅くなりましたが>>729さん有難うございました。
なんとか提出の方も間に合いました。
本当に有難うございました。
792779:2005/11/24(木) 21:52:09
>>780
初心者なので勉強不足でした。ローカルディスクに保存できなくても良いので、
アプレットに表示するプログラムを希望します。
793デフォルトの名無しさん:2005/11/24(木) 22:06:53
>>777

>>776の者です。
どうもありがとうございました!!
794782の者です。:2005/11/24(木) 23:17:33
>786さん、789さん、790さん

ご丁寧にありがとうございます。
いくつかの回答も作って頂いて、本当に参考になります。
本当にありがとうございました。
これからも何かあれば、宜しくお願いします。
795デフォルトの名無しさん:2005/11/24(木) 23:27:48
AppletやJFrameなどのGUIにJButtonなどのコンポーネントを追加したとします。
これらのコンポーネントの配置をレイアウトによって変える方法はわかったのですが、直接各コンポーネントの位置を座標などで指定することはできないのでしょうか?
一応調べてComponentクラスのmoveメソッドなどを見つけて試してみたのですがうまくいきませんでした。
どなたか、教えてください。
796デフォルトの名無しさん:2005/11/24(木) 23:40:11
>795
JFrameとかAppletで、Applet#setLayout(null)にして、
Component#setBounds()使えばいいんジャマイカ?
797デフォルトの名無しさん:2005/11/24(木) 23:49:25
package main;

import javax.swing.*;

public class Main {

public static void main(String[] args) {
JFrame frm = new JFrame("Hello GUI World");
frm.setLayout(null); //ここが悪い

frm.setVisible(true);
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

java.lang.Error: Do not use javax.swing.JFrame.setLayout() use javax.swing.JFrame.getContentPane().setLayout() instead
at javax.swing.JFrame.createRootPaneException(Unknown Source)
at javax.swing.JFrame.setLayout(Unknown Source)
at main.Main.main(Main.java:21)
Exception in thread "main"

setLayout()でnullを指定したら例外を吐き出されました。何が悪いのでしょうか?
798795==797:2005/11/24(木) 23:52:55
import javax.swing.*;
import java.awt.*;

public class Main {

public static void main(String[] args) {
JFrame frm = new JFrame("Hello GUI World");
frm.setBounds(0 , 0 , 400 , 200);

Container contentPane = frm.getContentPane();
contentPane.setLayout(null);

Component but = contentPane.add(new JTextField("Hello World\nIm Hackker"));
but.setBounds(50, 50, 200, 200);

frm.setVisible(true);
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

すみません、解決できました。
796さん、ありがとうございました。
799デフォルトの名無しさん:2005/11/25(金) 00:00:18
>798
ごめんごめん。
俺もJFrame分かってなかったわorz

eclipseって3000回言って逝ってくる
800デフォルトの名無しさん:2005/11/25(金) 02:28:14
このプログラムを改良して、Integer.parseInt(br.readLine())で1を入力したら白、2なら赤、3なら青、4なら黄色、5なら黒の2×2の画像をアプレットで表示するプログラム。
import java.applet.*;
import java.awt.*;
import java.awt.image.*;

public class color extends Applet {
Image img;

public void init(){
byte r [] = { 0,(byte)255,(byte)255,0,(byte)255};
byte g [] = { 0,(byte)255,0,0,(byte)255};
byte b [] = { 0,(byte)255,0,(byte)255,0};

IndexColorModel cm = new IndexColorModel(3,5,r,g,b);

int[] pix = {1,1,
1,1};
MemoryImageSource mimg = new MemoryImageSource (2,2,cm,pix,0,2);
img = createImage(mimg);
}

public void paint(Graphics g){
g.drawImage(img,0,0,100,100,this);
}
}
誰かお願いします。
801デフォルトの名無しさん:2005/11/25(金) 13:39:55
【 課題 】長方形を描画できるお絵かきツールを作成する。
・長方形を作成するボタンを配置する
・複数の長方形を描けるようにする
・作成した長方形の内部にテキストを書き込めるようにする
・描いた長方形をマウスで選択することで、自由に移動できることができるようにする
・長方形の重なっている部分を選択したときは、一番上の長方形だけが選択されるようにする


【 期限 】27日
【 Ver  】指定なし
【 補足 】丸投げ申し訳ないです・・・。
      ボタンを配置して長方形を描画するところまでは作れたのですが。
      なお、Swingを用いて作成していますが、特にこれに拘る必要はございません。
802デフォルトの名無しさん:2005/11/25(金) 16:12:48
【 課題 】引数を”yyyy.MM.dd”形式とする。引数が何曜日であるか
      Zellerの公式を用いて表示する。
【 期限 】26
【 Ver  】1.5
【 補足 】丸投げになります。お願いします。
803デフォルトの名無しさん:2005/11/25(金) 17:21:47
>>802
Calendar使うと意味が無いのでStringTokenizerにしてみた
ttp://www.wikiroom.com/java/index.php?SourcePost_
804デフォルトの名無しさん:2005/11/25(金) 17:40:20
【 課題 】10進数,8進数,2進数をそれぞれ1文字づつキーボードから入力し
      それぞれを、文字に変換しなさい。
【 期限 】26/朝
【 Ver  】1.5
【 補足 】丸投げになります。お願いします
805デフォルトの名無しさん:2005/11/25(金) 22:01:10
>804
>10進数,8進数,2進数をそれぞれ1文字づつキーボードから入力し
>それぞれを、文字に変換しなさい。

これの意味がちょっとわかんないんだけど、補足してくれない?
806デフォルトの名無しさん:2005/11/25(金) 22:33:43
>805
説明不足でした。すいません。文字に変換とは、キャラクターコード表です。説明苦手なので実行結果の例を下記に示します。
それに、2進数は違いました。10,8進数だけです。

10進数を入力してください。(0〜127)
80
80はPです。
8進数を入力してください。(0〜177)
143
143はcです。

このような実行結果でお願いします。

807ネス ◆Ness.AmS0A :2005/11/25(金) 22:50:18
【 課題 】萌え.jpを楽に閲覧できるソフトをお願いします
【 期限 】一ヶ月以内
【 Ver  】1.5
【 補足 】丸投げになります。お願いします
808ザイン帝國軍帥・伯壬旭(小島露観):2005/11/25(金) 23:48:25
>>801
http://www.wikiroom.com/java/index.php?%A5%BD%A1%BC%A5%B9%C5%BD%C9%D5%A4%B1

ここに貼っておきました。
ボタンで長方形の色を選択し、マウスドラッグで作成します。
長方形をダブルクリックすると文字が書き込めます。
長方形を右クリックすると、文字編集が終了します。
809デフォルトの名無しさん:2005/11/25(金) 23:56:34
>>808
コマンドライン上で実行はどうするんですか?
コンパイルを行うとエラーが出ます。
810デフォルトの名無しさん:2005/11/26(土) 00:01:56
何のエラーが出るのか教えてください
811ネス ◆Ness.AmS0A :2005/11/26(土) 00:09:56
>>810
そのままコンパイルかけたらこうなったよ


HW113.java:438: シンボルを解決できません。
シンボル: メソッド valueOf (int)
場所 : java.lang.Integer の クラス
return -(Integer.valueOf(zOrder).compareTo(Integer.valueOf(rs.getZOrder())));
^
HW113.java:438: シンボルを解決できません。
シンボル: メソッド valueOf (int)
場所 : java.lang.Integer の クラス
   return -(Integer.valueOf(zOrder).compareTo(Integer.valueOf(rs.getZOrder())));
^
エラー 2 個
812デフォルトの名無しさん:2005/11/26(土) 00:15:19
バージョン1.4以前では、コンパイルできないようです。

return -(Integer.valueOf(zOrder).compareTo(Integer.valueOf(rs.getZOrder())));

return -(new Integer(zOrder).compareTo(new Integer(rs.getZOrder())));

としてください。
813ネス ◆Ness.AmS0A :2005/11/26(土) 00:23:15
>>812
ありがとー
かいぞーしてあそぼーっと
814デフォルトの名無しさん:2005/11/26(土) 01:03:34
>806
とりあえず作ってみたんだけど、int → char がよく分かってないからこれでいいか謎。
ダメダメだったら指摘お願いします。
>806に対してはなんか適当な感じでスマソ。

import java.io.*;
public class T53_804 {
public static void main(String[] args) throws IOException {
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
System.out.println("10進数を入力してください(0〜127)");
String str = buf.readLine();
char ch = (char)Integer.parseInt(str);
System.out.println(str + "は" + ch + "です");
System.out.println("8進数を入力してください(0〜177)");
str = buf.readLine();
ch = (char)byOctalNumber(str);
System.out.println(str + "は" + ch + "です");
}
public static int byOctalNumber(String numString){
int num = Integer.parseInt(numString);
int ans = 0;
for(int i = 0; i < numString.length(); i++){
int p = num % 10;
num /= 10;
for(int k = 0; k < i; k++)
p *= 8;
ans += p;
}
return ans;
}
}
815デフォルトの名無しさん:2005/11/26(土) 01:49:37
>>814
いえ、こちらこそ勉強不足ですいません。親身になってくれてとても嬉しいです。
今実行しましたが大丈夫でした。本当に感謝しています。
816デフォルトの名無しさん:2005/11/26(土) 04:50:32
>814

それだと8進数が129とかでも通るよ。
ch = (char)Integer.parseInt(str,8);
でNumberFormatExceptionあたりをcatchしておけば良いと思う
817デフォルトの名無しさん:2005/11/26(土) 05:19:57
>806
Integer#parseInt()って>816みたいに使えば10進数に戻してくれるのか・・・
俺も立派な初心者デスタ・・・orz
一応文字判定、範囲判定等書き加えたものです。
今度は大丈夫なはず。

import java.io.*;
public class T53_804 {
public static void main(String[] args) throws IOException {
analyze(10);
analyze(8);
}
static void analyze(int radix) throws IOException{
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
System.out.println(radix + "進数を入力してください");
String str = buf.readLine();
try{
int num = Integer.parseInt(str, radix);
if(num > 127 || num < 0)
throw new NumberFormatException();
System.out.println(radix + "進数で" + str + "は" +
(char) Integer.parseInt(str, radix) + "です");
}catch(NumberFormatException e){
System.out.println("正しい数値を入力してください");
}
}
}
818デフォルトの名無しさん:2005/11/26(土) 05:22:29
>>804
質問スレの625さんですね。
あっちでもいろいろ教えたつもりだったんですが
結局わからなかったようですね。

package net.2ch.java;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class ParseTest {
public static void main(String[] args) throws Exception {
String input;
char code;
BufferedReader br =new BufferedReader(new InputStreamReader(System.in));

// 10進数
System.out.println("10進数を入力してください。(0〜127)");
input = br.readLine();
code = (char)Integer.parseInt(input, 10);
System.out.println(input + "は" + code + "です。");
// 8進数
System.out.println("8進数を入力してください。(0〜177)");
input = br.readLine();
code = (char)Integer.parseInt(input, 8);
System.out.println(input + "は" + code + "です。");
}
}

エラー処理は一切していません。
>>814は8進のパースを自前で実装してますけどしてますけど
その必要はありません。
n進数のことをわかりたければ「基数」について調べてください。
819デフォルトの名無しさん:2005/11/26(土) 13:25:30
Eclipseでファイルの読み込みの仕方教えて
ください。
それと>>660も…お願いします
820デフォルトの名無しさん:2005/11/26(土) 13:27:47
ふと思ったんだが、問題作成してる側ってJavaの1.4や1.5の仕様知らない奴多くない?
821デフォルトの名無しさん:2005/11/26(土) 13:46:46
教える側が勉強怠けてるんだろ
822デフォルトの名無しさん:2005/11/26(土) 15:07:55
>>819
PackageExplorerを開いて、ファイルを読み込みたいところを右クリック。
ImportからFileSystemを選ぶ。
あとは簡単なので略。

PackageExplorerの開き方がもしわからんなら、
WindowメニューからShowViewを選んで、PackageExplorerを押す。
823801:2005/11/26(土) 16:16:44
>>808

貴重なお時間を頂いて、ありがとうございました。
ソースをじっくり読んで勉強させていただきます。
ありがとうございました!
824デフォルトの名無しさん:2005/11/26(土) 17:56:08
>>816>>818
範囲指定や、文字判定を追加してくれて、ありがとうございます。
>>814では10、8進数の範囲127を越えたら?が結果で表示されていました。
力になってくれた方々嬉しいです。
825デフォルトの名無しさん:2005/11/26(土) 19:45:37
ttp://lecture.ecc.u-tokyo.ac.jp/~yamaguch/pub/cp1-7/kadai6b.html
のオプションF
【 課題 】
http://up.viploader.net/mini/src/viploader0760.txt.html
を解読せよ。
【 用語 】
「abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ :.,-!"$'()」
の文字をいくつかシフトさせて暗号化している。例えば、
「opqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ :.,-!"$'()abcdefghijklmn」
として対応する文字を採用する。
【 期限 】提出期限12/8
【 Ver  】特にない。1.5.0_04使用。
【 補足 】
http://up.viploader.net/mini/src/viploader0761.txt.html
この糞ソースの##option(F)###以下が該当箇所です。
解読元を完璧に解読できません。(最初と最後がカットされる。時々誤読もある。)
ちなみに授業用掲示板に書き込んだのですが、ノーリアクションです。
身近にjavaを解する人もいません。
826デフォルトの名無しさん:2005/11/26(土) 19:45:56
827825:2005/11/26(土) 19:49:20
private static void decrypt(String s){
String answer="";
String codes="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ :.,-!\"$'()abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ :.,-!\"$'()";
int i=codes.indexOf('.')-codes.indexOf('r');
for(int j=0;j<s.length();j++){
char c=s.charAt(j);
int k=(codes.indexOf(c)+i);
if(c=='\n'){
answer+='\n';
k=-1;
}//end if
if(k!=-1){
answer+=codes.charAt(k);
}
}//end for
//------------------
try{
DataInputStream din=new DataInputStream(new FileInputStream("zzz.txt"));
String s = din.readUTF();
decrypt(s);
din.close();
}catch (FileNotFoundException e){
System.err.println(e);
}catch(IOException e){
System.err.println(e);
} //end try-catch
--------------------
ここだけでも良いです。ちなみにdecrypt(s);の部分を
print(s)にしてもファイルの全てを表示してくれません。
828デフォルトの名無しさん:2005/11/27(日) 00:42:32
>>827
DataInputStreamでなくFileInputStreamを使うといいよ。
829825:2005/11/27(日) 01:40:47
できました。
BufferedReader br
=new BufferedReader(
new InputStreamReader(
new FileInputStream("zzz.txt")));
String s;
while((s=br.readLine())!=null){
decrypt(s);
}
br.close();
しかし、データ量が多すぎて全ては表示できませんがね。
830825:2005/11/27(日) 02:00:06
表示されないのでファイル出力にしました。
解読分に“)”が大量表示されるのは、多分スレ違いなので、教授に聞いてみます。
831デフォルトの名無しさん:2005/11/27(日) 02:57:04
【 課題 】
【 期限 】
 2005/11/28
【 開発環境 】
 eclipce 3.0.1
【 補足 】

 applet で
 1.CheckboxGroupを使用してスペード・クラブ・ハート・ダイヤを選択可能に
 2.Choiceを使用して 1〜10, J, Q, K を選択可能に
 3.Buttonを使用して選択されたカードをdrawStringにて表示(黒と赤ぐらいは色付け)


 基本的には作成完了しています。
 しかし選択されたカードの種類(スペード・クラブ・ハート・ダイヤ)のマークを
 drawStringにて表示しろと書いてあるため詰まりました。
 機種依存文字を出力させようとする意味分からん宿題ですがご教授お願いします。

 これだけだと伝わりにくいためソースを以下にうpしました
 よろしくお願いします
832デフォルトの名無しさん:2005/11/27(日) 02:59:23
作成途中の内容を書き込んだため連投すみません

【 課題 】
 ボタン「トランプを描く」を押すと、 チェックボックスとリストボックスで選択されているトランプのマークを drawStringで表示する。
【 期限 】
 2005/11/28
【 開発環境 】
 eclipce 3.0.1
【 補足 】
 原文だと分かりにくいため以下補足します
 applet で
 1.CheckboxGroupを使用してスペード・クラブ・ハート・ダイヤを選択可能に
 2.Choiceを使用して 1〜10, J, Q, K を選択可能に
 3.Buttonを使用して選択されたカードをdrawStringにて表示(黒と赤ぐらいは色付け)


 基本的には作成完了しています。
 しかし選択されたカードの種類(スペード・クラブ・ハート・ダイヤ)のマークを
 drawStringにて表示しろと書いてあるため詰まりました。
 機種依存文字を出力させようとする意味分からん宿題ですがご教授お願いします。

 これだけだと伝わりにくいためソースを以下にうpしました
 ttp://www.uploda.org/file/uporg247242.txt
 よろしくお願いします
833デフォルトの名無しさん:2005/11/27(日) 03:38:27
>>831-832
スペード "\u2660"
クラブ "\u2663"
ハート "\u2665"
ダイヤ "\u2666"
でどうかな?
834デフォルトの名無しさん:2005/11/27(日) 03:47:03
>>833
的確な回答ありがとうございました

一応以下ソースです
ttp://www.uploda.org/file/uporg247289.txt
835デフォルトの名無しさん:2005/11/27(日) 14:11:33
【 課題 】以下のように数値データの書かれたテキストファイルを読み込み、
      それらの数値の平均を計算せよ。
        データファイル
         (a)1行に1つの数値の場合
         (b)1行に5つの数値がスペースで区切られている場合
         (c)1行に不定個の数値がスペースで区切られている場合
      について考えよ。
      ファイルを読み込むには、ファイルの名前が"FileName"であれば、
         FileInputStream file = new FileInputStream( "FileName" );
      によってFileInputStreamクラスのオブジェクトを作成する。
【 用語 】なし
【 期限 】11月28日(月)
【 Ver  】希望なし
【 補足 】自分なりに作ってみたのですが、できません。
      丸投げします。すみませんがよろしくお願いします。
      なをプログラムを書く際の(a)(b)(c)の違いが良く分かりません。
      よろしくお願いします。
836デフォルトの名無しさん:2005/11/27(日) 14:33:25
(c) ができれば、(a) も(b) も対応できるんだからいいんじゃねーの?

import java.util.StringTokenizer;
import java.io.BufferedReader;
import java.io.FileReader;
public class NumDataPrint {
  public static void main(String[] args) {
    try{
      BufferedReader in = new BufferedReader( new FileReader( args[0]));
      String line;
      double sum = 0.0;
      int cnt = 0;
      while(null != (line=in.readLine())){
        StringTokenizer tkzr = new StringTokenizer(line, " ");
        cnt += (double)tkzr.countTokens();
        while (tkzr.hasMoreTokens()){
          sum += Double.parseDouble(tkzr.nextToken());
        }
      }
      System.out.println("平均 : " + sum / cnt );
    }
    catch(Exception e){
      e.printStackTrace();
    }
  }
}
837819:2005/11/27(日) 14:36:15
>>822
ありがとうございます。

>>826
拝見しました。素晴らしいサイトですね!
838デフォルトの名無しさん:2005/11/27(日) 14:45:47
>837
>拝見しました。素晴らしいサイトですね!
何か勘違いしてないですか??
839デフォルトの名無しさん:2005/11/27(日) 14:49:30
>>833
スペード "\u2660"
クラブ "\u2663"
ハート "\u2665"
ダイヤ "\u2666"
にした理由って何??
840デフォルトの名無しさん:2005/11/27(日) 16:39:23
>837
>826は前からあったサイトなんかじゃなくて、
826の人が作ってソコにソース貼り付けてくれたんだよ。
841デフォルトの名無しさん:2005/11/27(日) 23:33:44
>>839
Unicodeでのトランプのマークだけどなんか変?
842デフォルトの名無しさん:2005/11/28(月) 07:44:03
例えば、
num a=1;
String str = ”文字列”;

このstrに数字をaの値を入れるにはどうしたらいいですか?
String str = ”a”;
としたらstrには文字列aだから、ダメなのですが。

int型のaに代入された値をstrに文字列として入れる方法を教えてください。

843デフォルトの名無しさん:2005/11/28(月) 07:57:55
str = (quick-)a.secondaryException(custom);
844960:2005/11/28(月) 07:59:36
http://page.freett.com/kb100000/00.txt
期限:明日くらいまで。宜しくお願い致します。
845デフォルトの名無しさん:2005/11/28(月) 08:06:33
846デフォルトの名無しさん:2005/11/28(月) 08:07:24
>>843
式の開始が不正です。
str1 = (quick-)a.secondaryException(custom);
と、エラーがでます。

(quick-)aのaとはnum a=1; で宣言したaですよね?

847819:2005/11/28(月) 11:00:30
>>840
わかってます。言い方が悪かった。
826さんには感謝してます。
848デフォルトの名無しさん:2005/11/28(月) 11:49:27
>844
なにをすればいいんかな?
synchronizedつけたときとつけないときを実行してみて、
両方おなじ結果になってしまったなら、balance = x + amountの下の行にでも
for(int i = 0; i < 100, i++){}を書き加えて実行。
多分synchronizedつけなかったときは変な値が出るはず。

そんな結果が出る理由は、10はめんどいから2個のスレッドの場合で説明するけど、
Thread1      Thread2
deposit(1)開始
           deposit(1)開始
barance = 1
           barance = 1
deposit(1)終了
           deposit(1)終了

みたいなことが起こってしまうため。
こんな感じかな。
849デフォルトの名無しさん:2005/11/28(月) 20:17:47
>>803
返事が遅くなり申し訳ないです。
ありがとうございます。
大変恐縮なのですが、この続き?として講師よりこっちで作ってみてと課題を出されまして。
考えた末なかなか分かりません、お願いします。

【課題】Calendarクラスを使いyyyy/MM/dd形式のプログラムを作れ。第一引
    数はSubStringを使い範囲指定をして求めよ。第一引数が火曜日なら直前の月曜日表示
    火曜日ならそのまま表示。またCalendarの直系の既知のサブクラス:GregorianCalendarを使え。

    表示結果
    >java Monday 2005/11/30
      2005/11/29
    >java Monday 2005/11/29
      2005/11/29
    >java Monday 2005/12/02
      2005/11/29
    といった感じです。
      
【 期限 】29日昼
【 Ver  】1.5
【 補足 】getFirstDayOfWeek() を使い、週の最初の日が何であるかを取得して
      年/月/日、曜日を求めろ。
      丸投げです。すみません。どなたかよろしくお願いします。
850デフォルトの名無しさん:2005/11/28(月) 23:09:39
【 課題 】オセロ作成
【 期限 】12月1日お昼
【 Ver  】Verの指定はありません。
【 補足 】丸投げです。
      出来ればオリジナル要素を加えてお願いしたいです。(碁盤がオリジナルなど)
      オリジナルは無くてもかまいません。
      加えていただける場合は簡単でも難しい要素でも大歓迎です。
851デフォルトの名無しさん:2005/11/28(月) 23:18:32
思考はいらないんだよな?
852デフォルトの名無しさん:2005/11/29(火) 01:20:36
>>850
オセロはネット上に山ほど転がってるけど・・・
853デフォルトの名無しさん:2005/11/29(火) 01:22:15
【 課題 】 クラスCarを作成し、さらに内部クラスEngineを作成しなさい。
      Carにはdrive()メソッド、Engineにはrotate()メソッドを実装してください。
      drive()メソッド内でrotate()メソッドを呼び出す処理を記述してください。
      rotate()メソッド内では「エンジンが回っています」と表示して、確認できるようにしなさい。
【 期限 】今週金曜日
【 Ver  】 指定なし
【 補足 】丸投げですが、誰かお願いします。
854デフォルトの名無しさん:2005/11/29(火) 03:31:58
>853
ほいさ。

public class Car {
private Engine engine;
public Car(){
this.engine = new Engine();
}
void drive(){
engine.rotate();
}
public static void main(String[] args) {
Car car = new Car();
car.drive();
}
class Engine {
void rotate(){
System.out.println("エンジンが回っています");
}
}
}
855デフォルトの名無しさん:2005/11/29(火) 03:43:38
JAVAアプレットでチェックボックスを指定の座標に配置する場合、
どうすればいいのでしょうか?だれか教えてください。お願いします。
856デフォルトの名無しさん:2005/11/29(火) 04:06:07
>855
ここは宿題スレだから、こういう質問は初心者質問スレの方がいいと思うよ。

http://pc8.2ch.net/test/read.cgi/tech/1133087049/

一応答えておくと、
Applet#setLayout()でレイアウトをnullに指定して
Checkbox#setBounds()で座標指定すりゃいいと思う。
857デフォルトの名無しさん:2005/11/29(火) 04:21:31
>856
教えてくださりありがとうございます。
スレ違いでしたね、申し訳ないです。
858デフォルトの名無しさん:2005/11/29(火) 12:18:45
ttp://www.comp.metro-u.ac.jp/%7Etake/II/II9/II9.html

課題
角の数を減らすボタンを追加せよ。(但し,3未満にならないようにせよ)
クリアボタン(赤い三角形に戻す)を追加せよ。
多角形の外接円を表示,非表示するチェックボックスを追加せよ。(どのくらい円に近づいているかを見るため。)
多角形を塗りつぶしするチェックボックスを追加せよ。(fillPolygonで塗りつぶせる)
数値を直接入力して,角数を指定できるようにせよ。

中級編
他に何か気の利いた機能を考えて追加せよ。

お願いします。
859デフォルトの名無しさん:2005/11/29(火) 12:37:37
【課題】
以下の仕様を満たす、整数の可変長配列クラスを作成せよ。動作をテストするメインクラスも作成すること。

*フィールド
  ・整数の配列
  ・最大の要素数
  ・(実際に値が格納されている)要素数

*メソッド
  ・コンストラクタ ... 引数として最大の要素数を受け取り、その大きさの配列を生成する。
  ・要素追加メソッド ... 引数として整数を一つ受け取り、現在までに格納されている要素の最後に格納する。追加できない場合はエラーメッセージを表示する。
  ・最大要素数のゲッター
  ・要素数のゲッター
  ・全表示メソッド ... 配列に格納されているすべての要素を表示する。




期限は明日までです。最低限の機能のみでよいので、どなたかお力添えしていただけると幸いです。
860デフォルトの名無しさん:2005/11/29(火) 13:38:35
【 課題 】「switch文を使って名前を入力すると顔写真(Gif画像)と情報がでるプログラム
      をAppletで作れ」が問題です。
【 期限 】12月2日夜
【 Ver  】ver1.4.2_09
【 補足 】授業でやった名前を入力して出力するAppletのプログラムです
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class Lesson15c extends Applet{
Button myBtn; Label myLbl; TextField myTxt; Panel myPnl;
public void init(){
mypnl = new Panel();
myPnl.setLayout(new GridLayout(2,1));
myBtn = new Button("名前を入力--click");
myTxt = new TextField();
myPnl.add(myTxt);
myPnl.add(myBtn);
setLayout(new BorderLayout());
myLbl = new Label("",Label.CENTER);
add("north",myPnl);
add("Center",myLbl);
myBtn.addActionListener(new ActionListener(){
public void actionperformed(ActionEvent e){
repaint();
}
});
}
public void paint(Graphics g){
myLbl.setText(myTxe.getText()+"さん、こんにちわ!");
}
}
861デフォルトの名無しさん:2005/11/29(火) 13:40:47
>>853
ありがとうございます。
862デフォルトの名無しさん:2005/11/29(火) 13:50:09
自分に礼とはいい身分だな。
863デフォルトの名無しさん:2005/11/29(火) 14:11:41
>>859
その問題、何か変じゃないか?
隠蔽されているわけでもなければ、他のクラスから読み出しているわけでもないのに
わざわざゲッターとか使う理由がわからん。
必ずゲッターを使えという指定もないし。
ついでに最大の要素数なんか格納するフィールドが必要な意味もわからない。
そんなのは普通に配列のlengthで出るだろうに。
864デフォルトの名無しさん:2005/11/29(火) 14:39:35
>>859
変な問題だったけど一応作るだけ作ってみた。やっぱりゲッター使わないなw
何か他に限定するような条件なかったの?
問題の意味自体を俺が取り違えてたらすまん。

import java.io.*;
public class Main {
public static void main(String[] args)throws IOException{
BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
System.out.print("最大要素数");
Hairetsu h=new Hairetsu(Integer.parseInt(buf.readLine()));//クラスHairetsuをインスタンス化し、引数を渡す
while(true){
String t;
System.out.print("値を格納(終了は空Enter):");
if((t=buf.readLine()).equals("")) break; //空Enter判定
h.tuika(Integer.parseInt(t)); //値tを引数にしてtuikaメソッドへ
}
h.printout();//printoutメソッドへ
}
}
865デフォルトの名無しさん:2005/11/29(火) 14:40:10
こっちがメインの可変長配列クラスHairetsu。

class Hairetsu {
int[] a;
int maxy,y=0; //↑maxy=最大要素数 y=現在格納されているよう素数
Hairetsu(int x){ //コンストラクタ
maxy=x; //maxyに引数xを入れる
a=new int[maxy];//int型の配列aの最大要素数決定
}
void tuika(int x){
if(y<maxy){
a[y]=x; //引数xをaの配列に入れる
y++; //格納されている要素数を増やす
}
else System.out.println("Error! OutOfBoundsException!"); //違う場合はエラーメッセージを
}
int getMaxy(){//結局一度も使わなかったゲッター
return maxy;
}
int getY(){
return y;
}
void printout(){
for(int i=0;i<getY();i++){ //別に使わなくていいんだけど折角だからゲッターを使ってみた
System.out.print(a[i]+" ");
}
}
}
866デフォルトの名無しさん:2005/11/29(火) 15:00:33
【 課題 】
1、9×9マスのフィールドを用意
2、数箇所に宝、一箇所は罠を用意
 ・宝: 所持金アップ。一定額を越えたらクリア
 ・罠: ゲームオーバー
3、主人公は(4, 4)の地点から出発
4、標準入力を元に、上下左右に一つずつ移動
 ・隅に来た場合は、それ以上移動できないようにする
5、移動するごとに、フィールド全体と現在地を表示
 ・宝の位置は、表示してもしなくても良い
6、クリアかゲームオーバーになるまで、4〜5を繰り返す
【 期限 】
12/30(水曜)の朝
【 Ver  】 指定なし
【 補足 】丸投げですが申し訳ありません。本当に困っています。お願いします。
867850:2005/11/29(火) 15:53:00
>>851
思考は不要ですが、二人対戦を出来るようにしていただきたいです。

ネットを探しましたが、今まで調べた結果
ソースはCPU対戦ばかりでした。
868デフォルトの名無しさん:2005/11/29(火) 19:24:20
869デフォルトの名無しさん:2005/11/29(火) 21:39:57
ぬるぽ
870866:2005/11/30(水) 00:52:14
>868
ありがとうございます!!
871デフォルトの名無しさん:2005/11/30(水) 18:58:40
読み込んだjpg画像(黒で4つに区切られた画像・・・田んぼの田みたいな感じ)を黒の中の色情報を得たいのですが、良い方法教えてください。
画像の周りは白です。
白白白
白田白
白白白
こんな感じです。もちろん田の中は何ピクセルかは決まってません。田の中の4つの色情報を得るには、左上から1ピクセルづつrgbの値を読みこむのは出来るのですが、黒の中の色情報を得るのが難しいです。
意味不明な質問かもしれないけど、お願いします。
872デフォルトの名無しさん:2005/11/30(水) 19:23:07
>871
マルチかよ・・・
アァーいっぺん逝けばいいのに〜
873デフォルトの名無しさん:2005/11/30(水) 19:31:52
マルチ悪イノ?
874866:2005/11/30(水) 20:28:25
度々すみません。
この冒険、Mapと別にしないで書くことは可能ですか?
http://www.wikiroom.com/java/index.php?SourcePost_#content_1_0
875デフォルトの名無しさん:2005/11/30(水) 20:40:14
【 課題 】 課題1.前回の課題プログラムEx9B_1.java をアプレットに改造しなさい.
課題2.以下の仕様を満たすようにさらに改造しなさい.
・ html ファイル内の<param>タグを利用して,html ファイル内で各パラメータの初期設定を行うこと.
・ その際html 内にパラメータの記述がない項目については,プログラム内のデフォルト設定で動作するように.Html では<!と>で囲まれた部分はコメントとなる.これを利用して確認すること.
・ html ファイルから受け取った,もしくはデフォルト設定のパラメータ値はアプレット起動時に各テキストフィールドおよびラジオボタンに表示されるように.
・ 設定パネル内のどれかでアクションが起こったときに,パラメータ値が現状を反映するように.(例えば,マウスクリックで定義域が変更されてもテキストフィールドは変更されないが,その後スタートボタンを押すと更新されるように)
注意:・ プログラムを修正・再コンパイルしてWeb ブラウザの再読み込みをしても,Web ブラウザのキャッシュに保存された古いクラスファイルによる結果が表示されるので,修正を反映するにはWeb ブラウザを再起動する.
・ ウェブブラウザではjava の例外など実行時エラーがそのままでは表示されないので,うまくいかない場合は,「ツール」→ 「Sun のJava コンソール」を選んで
(IE の場合,他のブラウザの場合でも探せばある)おいてから,html ファイルを開くとエラーメッセージを読むことができる.
・ appletviewer では,DOS ウィンドウにエラーメッセージが表示されるが,<applet>タグに関する部分しか読まないので,html ファイルの他の部分にhtml の文法エラーがあっても動作することに注意.
【 期限 】12月3日まで
【 Ver  】1,4だと思います
【 補足 】すいません、丸投げです。よろしくおねがいします
876875:2005/11/30(水) 20:49:34
前回の課題をここにおいて起きます。よろしくお願いします。
http://www.wikiroom.com/java/?FrontPage
ここの11・30日のやつです。投稿の仕方がいまいちわからなかったので変になりましたが、お願いします。
877デフォルトの名無しさん:2005/11/30(水) 22:47:19
>>863-865
ありがとうございます。
無意味なゲッターは最近習い始めたもので、意識して使うよう教えられているからです。
「inport java〜」の辺りが未知だったもので、遺憾ながらソースを削らせて使用させてもらいましたが、無事に動作いたしました。
878デフォルトの名無しさん:2005/11/30(水) 23:01:10
>875-876
wikiを修正した。
あの投稿で平気でいられる神経が信じられない。
ttp://www.wikiroom.com/java/index.php?%A5%BD%A1%BC%A5%B9%C5%BD%C9%D5%A4%B1#gcf66de5

まあこのページのどこにもEx9B_1.javaなんてないんだがw
879875:2005/11/30(水) 23:05:15
>878
修正の仕方がわからなかったのです、申し訳ない。
書き方が悪かったと思いますが、Ex9B_1.javaは今回の課題の名前です。
880デフォルトの名無しさん:2005/11/30(水) 23:06:43
>879
じゃあ>875の
>課題1.前回の課題プログラムEx9B_1.java をアプレットに改造しなさい.
はなんですか?
881デフォルトの名無しさん:2005/11/30(水) 23:14:50
>874
なにそれ。
できたら、そういうとき理由も書いててくれると俺的にうれしい。

まだクラス2つ使うやり方習ってないとかだったら、独学でやったって言えばいいし。

一応やっておいた。

http://www.wikiroom.com/java/index.php?SourcePost_#pb3d2042
882デフォルトの名無しさん:2005/12/01(木) 03:17:22
【 課題 】(【 補足 】に書いたプログラム)の空白部分を埋めて,動くプログラムを作り,実行を試すこと.
Jankenクラスを継承したGooJankenというクラスを作り,そのメソッド nextHandを次のように再定義せよ.
グーを50%の確率で出す.
チョキとパーはそれぞれ25%の確率で出す.
クラス定義の先頭は,次のようにする.
class GooJanken extends Janken {
このGooJankenとJankenが戦うようにPlayJankenを書き換えて
(この場合は継承でなく,実際に書き換えればよい),結果を比較せよ.
【 期限 】12/4
【 Ver  】1.4

補足は長いので次へ。
883デフォルトの名無しさん:2005/12/01(木) 03:17:46
【 補足 】class Janken {
static String[] name = {"グー","チョキ","パー"};
int sort; //0:グー, 1:チョキ, 2:パー をそれぞれ表す.
int getSort() {
return sort;
}
String getName() {
return name[sort];
}
void nextHand() {
sort = (int) Math.floor(3.0*Math.random());
}
String match(Janken j) {
//(1)ここを埋める

}
}
このクラスJankenのインスタンスを2つ作り,両者に与えられた回数だけジャンケンをさせて結果を
表示するプログラムを,クラスPlayJankenのメソッド mainとして次のように作成する.
class PlayJanken {
public static void main(String[] args) {
int n = Integer.parseInt(args[0]);
Janken me,you;
me = new Janken();
you = new Janken();
//(2)ここを埋める

}
}

お願いします。
884デフォルトの名無しさん:2005/12/01(木) 03:49:06
>>883
  String match(Janken j) {
    //(1)ここを埋める
    int result = sort - j.sort;
    switch(result){
      case 0:
        return "あいこ";
      case 1:
      case -2:
        return "まけ";
      case -1:
      case 2:
        return "かち";
      default:
        return "";
    }
  }
885デフォルトの名無しさん:2005/12/01(木) 03:56:59
>>883
//(2)ここを埋める
for(int i = 0; i < n; i++){
  me.nextHand();
  you.nextHand();
  System.out.println("わたし:" + me.getName() + " あなた:" + you.getName() + " けっか:" + me.match(you));
}
886デフォルトの名無しさん:2005/12/01(木) 08:30:20
>883
class GooJanken extends Janken{
void nextHand() {
sort = (int) Math.floor(4.0*Math.random());
if(sort ==  3)
sort = 0;
}
}

class PlayJanken {
public static void main(String[] args) {
int n = Integer.parseInt(args[0]);
Janken me,you;
me = new GooJanken();
you = new Janken();
//(2)ここを埋める
for(int i = 0; i < n; i++){
me.nextHand();
you.nextHand();
System.out.println("わたし:" + me.getName() + " あなた:" + you.getName() + " けっか:" + me.match(you));
}
}
}
887801:2005/12/01(木) 12:39:56
【課題】配列にやまだたろうという名前
   (漢字(山田太郎)、平仮名、カタカナ、ローマ字など)を予め保存しておき、
    ある文字列を入力するたびに、山田太郎の名前か否かを
    判断するプログラムを作成してください。

【期限】12月5日
【Ver】指定なし
【補足】丸投げです。宜しくお願いします。

【サンプルプログラム】
//Test5.java
import java.io.*;
class Test5{
public static void main(String[] args){
int[] ia = new int[5];
char[] ca = {'0','A','あ'};
String[] stab ={"012","ABC","あいう"};
int i;
for(i =0;i<ia.length;i++){
ia[i] = i * 2;
}
System.out.println("ia[0]=" +ia[0]);
System.out.println("ca[1]=" +ca[1]);
System.out.println("stab[2]="+stab[2]);
}
}
888875:2005/12/01(木) 14:11:15
>880
>課題1.前回の課題プログラムEx9B_1.java をアプレットに改造しなさい.
はなんですか?

見直してみたところ実際配布された課題の資料では、配布資料が間違っています。
今回の課題がEx9B_1であり、前回の課題がEx8B_1でした。
宜しくお願いします。
889デフォルトの名無しさん:2005/12/01(木) 17:10:41
【課題】
請求金額、利子、支払い回数を入力したら、

(この場合、請求金額5000、利子年間12%、12回払い)
-------------------------------------------------------------
回数 利子 今月支払った金額 残りの請求金額 総合利子

1   50.00  394.24       4605.76     50.00
2   46.06  398.19       4207.57     96.06
3   42.08  102.17       3805.40     138.13
             (省略)
12   4.40  435.45        0.00      330.93
-------------------------------------------------------------

と、表示されるようなプログラムを組みたいのですが、
どのようにすれば上のように表示されるのでしょうか?
while文を使うらしく、今月支払った金額は、
(残りの請求金額 * 利子)/ (1 - Math.pow(1/(1+利子),回数))
で求める事が出来るそうです。
ちなみに、請求金額、利子、支払い回数は、
請求金額が100〜1,000,000,00、利子が5〜25、支払い回数が1〜30の数値を下回るが超えると、
再入力するようにうながし、出力は通常出力とtoStringメソッドを使って出力せよ。
890889:2005/12/01(木) 17:11:16
【期限】12月2日
【Ver】指定なし
補足】
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=26384
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=26385

まで組んでみたのですが、サンプルと同じく「請求金額5000、利子年間12%、12回払い」
と入力すると、支払い回数が12で終わらず、13まで行ってしまいます。
また、toStringメソッドで出力しようとすると、

13 0.00 444.24 -444.24 330.93

としか表示されません。
どこが悪いのでしょうか?

よろしくお願いします。
891889:2005/12/01(木) 17:12:55
892foo:2005/12/01(木) 17:17:47
JMenuなどで作るメニューを縦に表示できないんですか?
893デフォルトの名無しさん:2005/12/01(木) 17:51:36
>>890
金額をdoubleで計算してるから小数点3桁以下の端数が出てるのではないかな?
894889:2005/12/01(木) 18:03:29
>>893
端数自体は、DecimalFormatを使って二桁以下表示しないようにしているので大丈夫だと思います。
金額をdoubleでやらないと、Math.powが使えないのでdoubleを使っています。

12     4.40    439.85    0.00    330.93

の時点で、loanAmountは0になっているので、ここでストップしないとおかしい(while (loanAmount > 0)なので)はずなのですが、
何故か、Interest(利子)が、0にならないとストップしなくなっています。
895デフォルトの名無しさん:2005/12/01(木) 18:13:09
>>894
loanAmount = 0.001 とする。
System.out.print(" " + df.format(loanAmount)); 表示は 0.00
while (loanAmount > 0) { は 0.001 > 0 で当然ループは続く。
896デフォルトの名無しさん:2005/12/01(木) 18:56:41
>887
import java.io.*;
public class T53_887 {
public static void main(String[] args) {
String[] str1 = new String[4];
String str = null;
boolean flag = false;
str1[0] = "山田太郎";
str1[1] = "やまだたろう";
str1[2] = "ヤマダタロウ";
str1[3] = "YamadaTarou";
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("名前を入力してください");
try {
str = br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
for(String str2 : str1){
if(str.equals(str2)){
flag = true;
break;
}
}
if(flag)
System.out.println("あなたは山田さんですね。");
else
System.out.println("あなたは山田さんではないです。");
}
}
whileで回すとか配列に予め保存するのを増やすとかは適当に改造して
897889:2005/12/01(木) 19:26:30
>>895
なるほど。
なら、loanAmountもintかlongの変数を使ってやれば良いのでしょうか?
ただ、Math.powを使わないといけないのですが、どのような方法を使えば、
Math.powも使って12までで止める事が可能なのでしょうか?
898デフォルトの名無しさん:2005/12/01(木) 21:24:37
>897
ん〜 while(loanamount > 0)
のところを
while(loanamount >= 0.1 && numberofPayments <= 12)に変えれば大丈夫じゃない?

回数も12回で止まるし、0.01以上だから0.01とかなら終わるし。
899デフォルトの名無しさん:2005/12/01(木) 21:32:31
>>897
>(残りの請求金額 * 利子)/ (1 - Math.pow(1/(1+利子),回数))
利子計算は端数処理の問題がついて回るからこういう計算式を実際に使うことはまずない。
それを承知で宿題の問題を出している以上、支払い回数だけでループさせていいと思うよ。
900デフォルトの名無しさん:2005/12/01(木) 23:50:34
>>871
だれかお願いします
901889:2005/12/02(金) 01:24:47
>>898,899
レスありがとうございました。やってみます。
toStringの出力なのですが、どうしても(上の例だと)12しか表示されません。
もう一度、numberofPayments++; を使って1から順番に表示させていきたいのですが、
どのように表示させたら良いのでしょうか?
902889:2005/12/02(金) 01:39:48
補足ですが、教科書には12回目の詳細は、

12    4.40    435.45   0.00   330.93

と載っているのですが、自分の場合は

12    4.40    439.85    0.00    330.93

と言うように、支払い金額が11回目よりも増えています。
11回目までは、教科書通りに

11    8,75    435.49    439.85   326.53

と表示されます。どうやら、利子計算なしで単純に残りの請求金額だけ払っているようです。
903デフォルトの名無しさん:2005/12/02(金) 03:31:57
【 課題 】Javaによるポーカー作成
【 期限 】12月 3日
【 補足 】丸投げですが、一定のコインを払い、役柄の倍率によって習得するコインが変わるように、
      DQのポーカーのような感じにしていただきたいです。
      
904デフォルトの名無しさん:2005/12/02(金) 07:53:11
負けたときは?
905903:2005/12/02(金) 08:14:12
>>904
負けたときはゲームオーバーと表示させていただきたいです
906875:2005/12/02(金) 08:30:24
どなたかお願いします。自分でやると根本的に間違っているのかエラーが大量に
出てしまいわかりません(泣
907デフォルトの名無しさん:2005/12/02(金) 08:39:56
「前回の課題プログラムEx9B_1.java」

これはどこにあるの?
908875:2005/12/02(金) 10:16:27
前にも書き込んだんですが、配布資料自体が間違っていまして、
前回の課題プログラムEx9B_1.javaではなく前回の課題プログラムEx8B_3.java
なのです。お願いします。
909デフォルトの名無しさん:2005/12/02(金) 10:35:19
んじゃ、

「前回の課題プログラムEx8B_3.java」

これはどこにあるの?
910875:2005/12/02(金) 10:35:54
間違えてあげてしまいました、すいません。
911デフォルトの名無しさん:2005/12/02(金) 10:41:24
そろそろ次スレですね
912875:2005/12/02(金) 10:48:02
913875:2005/12/02(金) 10:50:24
細かく言えばEx8B_3.javaをいじくってEx9B_1.javaに作り変えなさい。
ということです。課題2はEx9B_1.javaを改良してEx9B_2.javaにしなさい、
ということです。
914デフォルトの名無しさん:2005/12/02(金) 10:51:40
ああ、分かったよ

これから作るから待ってろ

っつーか醜いソースだな
915デフォルトの名無しさん:2005/12/02(金) 11:02:03
「意味の無いコメント」の典型的な例ww
916デフォルトの名無しさん:2005/12/02(金) 12:54:55
>>911
ギリギリまで使いませう。980くらいまで・・・
917デフォルトの名無しさん:2005/12/02(金) 13:01:01
【課題】1つ目の数字のケタを切り離して、
その数を足し2つ目の数字に近くなるようにして下さい。(いくつに切り離しても良い)
与えられた数字(5列)に最も近い数字が出るようにプログラムを記述しなさい。
例:Line #1: 19967, 1000
19+967=986 1+996+7=1004

Test Input:
Line #1: 4721, 75
Line #2: 4721, 100
Line #3: 1234, 20
Line #4: 1234, 46
Line #5: 1234, 127

Test Output:
Output #1: 68
Output #2: 77
Output #3: 19
Output #4: 46
Output #5: 127

【期限】12/4/05
【補足】Java超初心者です。宜しくお願いします。
918デフォルトの名無しさん:2005/12/02(金) 13:41:18
>917
Output #1だけど、68よりも77の方が近い気がするんだけど?
919887です:2005/12/02(金) 15:23:54
>896さん

返事をするのが遅くなってしまってもうしわけありません。
ご丁寧にありがとうございました。
おかげ様で無事動きました。
これからも何かあれば宜しくお願いします。
920デフォルトの名無しさん:2005/12/02(金) 18:58:50
>917
Line #1: 1000, 1000
の場合は?
必ず1つ以上は切るの?
921914:2005/12/03(土) 00:14:20
>>708-711 ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=26306 および
>>875-876 ttp://www.wikiroom.com/java/index.php?%A5%BD%A1%BC%A5%B9%C5%BD%C9%D5%A4%B1 のおふたりへ。

君らのソース実行してみたけど、
位相はずれまくっとるわ、周期も出鱈目、
波の進行方向も逆じゃないか。
バグだらけで提出しても評価0だろうな。
実行したらすぐ分かるのに何で気付かんの?

↓この辺りがおかしい
Dimension d = getSize();//ウィンドウサイズの取得
double z = (d.width-40)/(Math.PI*(graph.gettxt5()-graph.gettxt4())/180); //定義域の調整
if(graph.RD == 1){//sinの場合
 for(int i =0;i<=graph.gettxt1();i++){//iが0からtxt1までの間繰り返し
  x[i] = (Math.PI*(graph.gettxt5()-graph.gettxt4())/180)*i/graph.gettxt1();//x座標の計算
  y[i] = Math.sin(2*Math.PI/(Math.PI*graph.gettxt2()/180)*
(x[i]-(Math.PI*graph.gettxt6()*t/180)+(Math.PI*graph.gettxt4()/180)+(Math.PI*graph.gettxt3()/180)));//y座標の計算
  x2[i] = (int)(z*x[i]+20);//x座標
  y2[i] = (int)(-y[i]*(d.height-40)/2+(d.height-40)/2+20);//y座標
 }
}else if(graph.RD == 2){//cosの場合
 for(int i =0;i<=graph.gettxt1();i++){//iが0からtxt1までの間繰り返し
  x[i] = (Math.PI*(graph.gettxt5()-graph.gettxt4())/180)*i/graph.gettxt1();//x座標の計算
  y[i] = Math.cos(2*Math.PI/(Math.PI*graph.gettxt2()/180)*
(x[i]-(Math.PI*graph.gettxt6()*t/180)+(Math.PI*graph.gettxt4()/180)+(Math.PI*graph.gettxt3()/180)));//y座標の計算
  x2[i] = (int)(z*x[i]+20);//x座標
  y2[i] = (int)(-y[i]*(d.height-40)/2+(d.height-40)/2+20);//y座標
 }
}

直したらアップするからお待ち。
922デフォルトの名無しさん:2005/12/03(土) 00:51:23
>>903
Java歴一ヶ月の俺がこれから頑張って作るから待ってな。
所持金額(MONEY)と掛け金(BET)、役の倍率、買った時に「YOU WIN!」、負けた時に「YOU LOSE...」、引き分けで「DROW GAME」、
お金がなくなったら「GAME OVER」って表示させりゃいいかな?
カードはハートがH、ダイヤがD、スペードがS、クローバーがCでいいか。
ジャックとかクイーンは作れるけど面倒だから11〜13にしちゃうぞ。
後は一度の交換と、同じカードが二枚出ないようにするのと、JOKERとかも余裕あったら作る?
当然相手と自分の手との比較も作らないとね。
色んなパターンがあるから、いくつか役のパターンに漏れがあっても怒らないでね。期待はするな。
923デフォルトの名無しさん:2005/12/03(土) 00:52:36
drowはdrawかな。ハズカシス。
924デフォルトの名無しさん:2005/12/03(土) 01:24:23
>>903
あ、ごめん。簡単だと思ったら実は微妙に難しい事に気付いた。
自動のCOMPUTER側が自分の手を揃えるためにカードを切るような
思考を持たせるプログラムは初心者の俺じゃ出来ないわ。
最初の一手で決まっちゃうようなのじゃさすがにつまらないしね…。
力になれずすまん。
925デフォルトの名無しさん:2005/12/03(土) 01:28:15
>>924
別に対戦相手(COM)はいらないんじゃないか?
自分でカードを引いて、一度カードを交換。
で、役ができてなければぶー、
役ができていればそれに応じた支払いって感じで良いんじゃないの?

ポーカーのルールが良くわかんないけど。
926デフォルトの名無しさん:2005/12/03(土) 01:35:29
>>925
あー、DQのポーカーをよく知らないんだけど、あれは別に対戦相手はいないのかな?
それだったら出来ない事はないけど。
927デフォルトの名無しさん:2005/12/03(土) 01:37:37
よくわからんが、ポーカーって人と対戦するもの?
こんな感じで良いんじゃない?
ttp://www.game3rd.com/game/card/poker/
928デフォルトの名無しさん:2005/12/03(土) 01:43:48
いや、カジノのポーカーみたいな感じだと思ってたよ。
んじゃ、頑張ってみよう。
って言うか>>927みたいな画像使ったのはまだ出来ないんで、文字だけで作ります。
それじゃ希望に沿えないかな?とりあえず自分の勉強ってことでやってみます。
929925, 927:2005/12/03(土) 02:43:29
あぁ、ちなみにおれ依頼主>>903じゃないからね。

>>928
がんばれ〜
930903:2005/12/03(土) 10:26:13
>>922=929
ありがとうございます。
CPUの思考はいらなく、一人でポーカーやってる感じです。
プログラム作っていただいて、感謝します。
931デフォルトの名無しさん:2005/12/03(土) 11:42:32
>>918
紙に書いてあったのを丸投げしました。
多分、77でも良いのではないか、とは思うのですが・・・。

>>920
はい、必ず1つは区切らなければならないのです。
932875:2005/12/03(土) 13:35:21
>921
一応Ex8B_1.javaはエラーも出ないで動作したのでいけるものかと思っていました。
計算が間違っていましたか。
指摘ありがとうございます。
お待ちしています。宜しくお願いします
933デフォルトの名無しさん :2005/12/03(土) 19:02:10
【課題】EpliseでGUI電卓作成
【用語】Java GUI
【期限】期限12月7日
【質問】今の時点では一応電卓らしくはなっているんですが、でも整数しか計算できない
    電卓になってます。小数点を付ける場合はどのようにプログラムを
    かけばいいんですか?教えてください。
934デフォルトの名無しさん:2005/12/03(土) 19:14:28
とりあえず現時点のを見せろ
935デフォルトの名無しさん:2005/12/03(土) 19:28:25
ソースの貼り付けはどうやるんですか?
936デフォルトの名無しさん:2005/12/03(土) 19:49:32
ソースが長いんで、こちらを見てください。
ファイル名:javaGUI電卓プログラムです。お願いします。

ttp://j-apartment.net/03/kokugo/files/files.cgi
937デフォルトの名無しさん:2005/12/03(土) 20:00:38
""+int をやめろ。
938デフォルトの名無しさん:2005/12/03(土) 20:21:07
""+int
っていつから流行り始めたんだろね
939デフォルトの名無しさん:2005/12/03(土) 20:21:54
>>875 == >>932
ごめん、途中まで改良したんだが、motivationが続かなかった。
940デフォルトの名無しさん:2005/12/03(土) 20:41:40
936の人ですが、どこの""+intですか?Integerのとこかな?
941デフォルトの名無しさん:2005/12/03(土) 20:45:28
if(!er)jTextField.setText(""+k);



if(!er)jTextField.setText(Integer.toString(k));

こうしろってことだろ
942デフォルトの名無しさん:2005/12/03(土) 21:12:46
ありがとうございます。小数点はdoubleを使うことはわかってるんだけど、
プログラムの書き方がよくわからないです。教えてください。
943デフォルトの名無しさん:2005/12/03(土) 21:25:58
>928が逃げた(?)っぽいのでポーカー書いてみたんだが。。
普通に ""+int とか使ってるわ。
944875:2005/12/03(土) 21:38:05
>939
そうですか・・・その途中までのものでかまいませんのでいただけないでしょうか?
そこからどうにか自分でやりたいと思いますので・・・。
945903:2005/12/03(土) 21:55:54
>>943
わざわざありがとうございます。

それと、期限の事ですが今日までではなく明日まで大丈夫です。
今日完成して明日コンパイルしてエラーがあったら調べるという予定だったので;;
946デフォルトの名無しさん:2005/12/03(土) 22:02:12
>>942
やり方はいろいろあると思うけど、あまり考えずにやるのなら
数値ボタンを押されたときの状態を保持する変数 l をString(もしくはStringBuffer)に替える。
number(int)をnumber(String)に変える。
enzan() で実際に計算するときに Double.parseDouble() を使う。
とかかねぇ。

947943:2005/12/03(土) 22:41:35
貼るつもりはなかったけど、943の書き込みしといて貼らないのも変なのでwikiに置いときます。
ttp://www.wikiroom.com/java/index.php?SourcePost__#b21645dd
jdk1.5使ってます。
画像はページ左下のzipを展開して入手してください。
フォルダ構成はソースとスクリーンショットを参考にしてください。
描画回りがうまくいきませんが直してません。
948デフォルトの名無しさん:2005/12/03(土) 22:49:56
>946
申し訳ないのですが、可能ならばソースのほうも書いてみてもらえませんか?
丸投げですいませんです。
949デフォルトの名無しさん:2005/12/04(日) 00:35:35
>>948
変数名とかわかりやすく書き直してくれたらやっても良いが、
今の状態ではいやだ。
950903:2005/12/04(日) 09:13:45
>>947
画像も作っていただきありがとうございます。
自分で作れそうも無いプログラムだったので、ある程度理解して本番に臨みたいと思います。

ポーカー製作に関わってくれた方々、ありがとうございました。
951943:2005/12/04(日) 09:31:10
いや、、あの、、
画像は作ってないんですが。。
ttp://www.geocities.jp/ibezou/hpsozai.html
ここの。
952デフォルトの名無しさん:2005/12/04(日) 09:42:01
>948
んと、コメント付けるだけでいいのかな?
953デフォルトの名無しさん:2005/12/04(日) 09:43:05
あ、間違いました。
948の人ですが、プログラムのほうにコメントをつけるだけいいのかな?
954デフォルトの名無しさん:2005/12/04(日) 12:31:35
>>938
JDK1.0の頃かな
955デフォルトの名無しさん:2005/12/04(日) 12:44:35
>>943
ポーカーやってみたんですが、
カードをクリックすると、選択した左側のカードが
選ばれるのですが、私だけですか?
956デフォルトの名無しさん:2005/12/04(日) 13:04:02
>>952
インスタンス変数に i j k l といった無意味な文字を使わないでください。
どうしても、演算処理で1 なら +、2なら - ・・・とするのであれば、最低限
private static final int PLUS = 1;
としてください。

読みにくいと直しにくいです。
957デフォルトの名無しさん:2005/12/04(日) 15:05:03
【 課題 】
アプレットを作成するに当たって拡大、縮小ボタンをセットし、拡大ボタンを押すと縦横幅を1.5倍に拡大し
縮小ボタンを1/1.5倍に縮小する機能を付けた物を作成してください。それにあたって拡大、縮小を繰り返しても
四角形の大きさが最初の大きさに戻るように工夫して作りなさい。
【 期限 】
今日まで
【 補足 】
丸投げ
疑問点は拡大、縮小を繰り返しても四角形の大きさが最初の大きさに戻るように
コーディングするやり方がどうもわかりません。
958デフォルトの名無しさん:2005/12/04(日) 15:35:47
結局、>>903 のポーカーを作ると予告した人は逃げちゃったのかよ・・・
一番困るパターンだな。
予告すると誰も回答しなくなるんだよ。土壇場でしかも報告もせずに
逃げるんだんて、嫌がらせ以外のなにものでもない。
959957:2005/12/04(日) 15:48:18
/* <applet code="samp.class" width="500" height="500"></applet> */
import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class samp extends Applet implements ActionListener{
int x,y,x0,y0,x1,y1,x2,y2;
int oldx, oldy;//未使用
int count = 0;
Font font;
Color color;
Button Button1, Button2;

public void init(){
font = new Font("Serif",Font.BOLD,72);
color = new Color((int)(Math.random()*256),(int)(Math.random()*256),(int)(Math.random()*256));

y1 = x = y = 10;
x1 = 200;
oldx = x2 = x0 = 80;
oldy = y2 = y0 = 100;
Button1 = new Button("拡大");
Button2 = new Button("縮小");
exButton.addActionListener(this);
reButton.addActionListener(this);
add(Button1);
add(Button2);
}

960957:2005/12/04(日) 15:48:50
public void paint(Graphics g){
g.setFont(font);
g.setColor(color);
/* これでいいのか!? */
if(count == 0){
x0 = 80;
y0 = 100;
}
g.fillRect(x,y,x0,y0);

/* デバッグ関数 */
g.fillRect(x1,y1,x2,y2);
g.drawString(String.valueOf(x0),10,200);
g.drawString(String.valueOf(y0),10,250);
g.drawString(String.valueOf(x2),10,300);
g.drawString(String.valueOf(y2),10,350);
g.drawString(String.valueOf(count),10,400);
}

public void actionPerformed(ActionEvent e){
if(e.getSource() == Button1){
x0 *= 1.5;
y0 *= 1.5;
count++;
}else if(e.getSource() == Button2){
x0 /= 1.5;
y0 /= 1.5;
count--;
}
repaint();
}
}
961957:2005/12/04(日) 15:51:32
>>959,960
一応こうすればできるんですが何か納得いきません

それにあたって拡大、縮小を繰り返しても
四角形の大きさが最初の大きさに戻るように工夫して作りなさい。

の部分を数学的な式で書き換える事はできるんでしょうか?
962デフォルトの名無しさん:2005/12/04(日) 15:55:45
>>961
簡単だよ。
初期状態を変化させるのではなく、現在どの倍率で表示するか別の変数を用いるんだ。
表示させるときだけその倍率をかけてあげる。
963デフォルトの名無しさん:2005/12/04(日) 15:58:50
>>957
手抜き…ちゃんと動くか確認してください
public void paint(Graphics g) {
g.setFont(font);
g.setColor(color);
/* これでいいのか!? */
x0 = (int) (80 * Math.pow(1.5, count));
y0 = (int) (100 * Math.pow(1.5, count));
g.fillRect(x, y, x0, y0);

/* デバッグ関数 */
g.fillRect(x1, y1, x2, y2);
g.drawString(String.valueOf(x0), 10, 200);
g.drawString(String.valueOf(y0), 10, 250);
g.drawString(String.valueOf(x2), 10, 300);
g.drawString(String.valueOf(y2), 10, 350);
g.drawString(String.valueOf(count), 10, 400);
}

public void actionPerformed(ActionEvent e) {
if (e.getSource() == Button1) {
count++;
} else if (e.getSource() == Button2) {
count--;
}
repaint();
}
964957:2005/12/04(日) 16:03:04
>>963
できました。
そういうやり方もあるのか(´・ω・`)

>>962,963
回答ありがとうございます。
965903:2005/12/04(日) 17:12:17
943氏のポーカーを元に、どなたかBlackJackを作っていただけませんか?
掛け金などは無く、
最初、Player1に2枚のカード、Player2に2枚のカードが配られる
次にカードが欲しい場合は[追加]ボタンをクリックしてカードを追加
どちらかが22以上になったら負けの表示
ttp://www.bozo2.com/uploader/upload/like.JPG
こんな感じに作っていただけたら幸いです。
966デフォルトの名無しさん:2005/12/05(月) 01:05:08
【 課題 】 ノルウェーの国旗のjpeg画像を読み込み、青色の部分だけのRGB値を取得しなさい。
RGB値は配列に入れ、青の部分のピクセル数で割った値を表示しなさい。
967デフォルトの名無しさん:2005/12/05(月) 03:12:06
白黒のjpeg画像を読み込んで、Point p = new Point();を使い、完全に白のところの座標を得るにはどうしたらいいですか?
968>>914 == >>921:2005/12/05(月) 07:38:54
969875:2005/12/05(月) 08:27:02
>968
有難うございます!!
これはまだアプレットに改良してないのですね。
提出日が火曜の午前12時までなので、もしやっていただけるのならばお願い
したいと思います。
もちろん、自分でも出来る限りの努力はしてみます。
宜しくお願いします。
970デフォルトの名無しさん:2005/12/05(月) 10:43:03
 課題 】お絵描きソフトを作る。描いた絵、文字は保存できるようにする。
【 期限 】提出日 12月7日 
【 Ver  】Eclipse SDK 3.1.1 j2SDK1.4.2
【 補足 】こちらのサイトにあるようなもので作っていきたいのですが
      http://www.sm.rim.or.jp/~shishido/ged1.html
      丸投げの状態であります ご助力をお願い致します。
971デフォルトの名無しさん:2005/12/05(月) 11:12:21
古いな・・・
972デフォルトの名無しさん:2005/12/05(月) 15:21:59
【 課題 】 以下の方針を応用し、左右に動く3つのオブジェクトが中央の領域で
       お互いに排他制御するようにしたアプレットのプログラムを作成せよ。
       import javax.swing.*; import java.awt.*;
class MovingObject {
public int x; public int y; public int dx; public int dy; public int width;
MovingObject(int _x, int _y, int _dx, int _dy, int __width) {
x = _x; y = _y; dx = _dx; dy = _ dy; width = _width; }
void show(Graphics g, Color clr) {  g.setCOLOR(clr);  g.fillOval(x, y, width, width); } }
public class Wig extends JApplet implements Runnable {
MovingObject redBall = new MovingObject(0, 20, 20, 0, 10);
MovingObject blueBall = new MovingObject(30, 80, 20, 0, 20);
Thread redThread = new Thread(this); Thread blueThread = new Thread(this);
int interval = 1;
public void start() { redThread = new Thread(this); blueThread = new Thread(this);
redThread.start(); blueThread.start(); }
public void run(); { MovingObject obj;
if(Thread.currentThread() == redThread) obj = redBall;
else obj = blueBall;
while(true) { { try { Thread.sleep(3);  } catch (InterruptedException e) { } }
if(obj.x + obj.dx < 0 || getWidth() < obj.x + obj.dx + obj.width)  obj.dx = -obj.dx; obj.x += obj.dx; repaint(); } }
public void paint(Graphics g) { super.paint(g); redBall.show(g, Color.RED); blueBall.show(g, Color.BLUE); } }
【 期限 】 12月6日12時
【 Ver  】 指定なし 
【 補足 】 丸投げ、お時間があるようでしたら、みなさまよろしくお願いします。
973デフォルトの名無しさん:2005/12/05(月) 15:45:36
【課題】Ecpliseを用いGUI電卓を作る
【期限】12月7日
【補足】丸投げの状態であります、どなたかお時間あるようでしたら、
    ご助力をお願い致します。


974デフォルトの名無しさん:2005/12/05(月) 16:10:16
Ecplise...
975デフォルトの名無しさん:2005/12/05(月) 16:19:11
>>972
出来上がってんじゃん
976972:2005/12/05(月) 16:34:08
>>975
できあがってるとはどういうことでしょうか?初心者なのでさっぱりわかりません
>>972で示したのは二つのオブジェクトなんですけど
977デフォルトの名無しさん:2005/12/05(月) 16:36:55
>>973

>377 にあるよ

>350の仕様を完全に無視した逆ポーランド記法用の電卓のソースを貼ってみます。
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=26031
から
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=26037
まで。
978デフォルトの名無しさん:2005/12/05(月) 16:37:27
>>972
それコンパイル通らないし
979デフォルトの名無しさん:2005/12/05(月) 17:59:25
>977
ページを表示できませんって出る。
980972:2005/12/05(月) 18:08:36
>>972は多少間違っていたのでもう一度貼ります
import javax.swing.*;
import java.awt.*;
class MovingObject {
public int x;
public int y;
public int dx;
public int dy;
public int width;
MovingObject(int _x, int _y, int _dx, int _dy, int _width) {
x = _x;
y = _y;
dx = _dx;
dy = _ dy;
width = _width;
}
void show(Graphics g, Color clr) {
g.setCOLOR(clr);
g.fillOval(x, y, width, width);
}
}
public class Wig extends JApplet implements Runnable {
MovingObject redBall = new MovingObject(0, 20, 20, 0, 10);
MovingObject blueBall = new MovingObject(30, 80, 20, 0, 20);
Thread redThread = new Thread(this);
Thread blueThread = new Thread(this);
int interval = 1;
public void start() {
redThread = new Thread(this);
blueThread = new Thread(this);
981972:2005/12/05(月) 18:11:27
続き
redThread.start();
blueThread.start();
} 
public void run() {
MovingObject obj;
if(Thread.currentThread() == redThread)
obj = redBall;
else
obj = blueBall;
while(true) {
{
try {
Thread.sleep(3);
} catch (InterruptedException e) {
}
}
if(obj.x + obj.dx < 0 || getWidth() < obj.x + obj.dx + obj.width)
obj.dx = -obj.dx;
obj.x += obj.dx;
repaint();
}
}
public void paint(Graphics g) {
super.paint(g);
redBall.show(g, Color.RED);
blueBall.show(g, Color.BLUE);
}
}
982デフォルトの名無しさん:2005/12/05(月) 18:50:21
>>972

ttp://www.wikiroom.com/java/index.php?HW972%20Wig%20MovingObject

既知のバグ:
後ろから追突されても向きが変わるときがあります
ダブルバッファリング処理を施していないので画面がチラツキます
983デフォルトの名無しさん:2005/12/05(月) 18:51:14
ああ、3つか、作り直しだな
984 :2005/12/05(月) 19:24:00
980を越えたので、次スレを立てました

http://pc8.2ch.net/test/read.cgi/tech/1133778112/l50
985デフォルトの名無しさん:2005/12/05(月) 20:01:03
>>982さんありがとうございました
986943:2005/12/05(月) 20:18:33
>955
確認しました。Windowsだとピクセル単位でずれるっぽい。
修正したソースを載せておきました。
DQPokerFrame#mouseClicked()を直しました。
987デフォルトの名無しさん:2005/12/05(月) 23:57:18
http://page.freett.com/kb100000/4.txt
明日までです。よろしくお願いします。
988デフォルトの名無しさん:2005/12/06(火) 12:13:25
989デフォルトの名無しさん:2005/12/06(火) 17:34:09
>>808さんのソースに注釈をつけていただけませんか?
よろしくおねがいいたします
990デフォルトの名無しさん:2005/12/06(火) 17:45:11
【課題】Canvasクラスを使い、図形を描画するプログラムを作成。(図形は何でも良い。)
その時、レイアウトを用いて、Canvasクラスの上部にLabelクラスを配置し、
描画した絵のタイトルを記述すること。

【期限】12月7日午前中
【補足】丸投げで申し訳ありません。どうかお願い致します。
991987:2005/12/06(火) 20:46:26
>>988
返信ありがとうございます。
これは972さんの回答と同じということでしょうか??
992デフォルトの名無しさん:2005/12/06(火) 21:00:02
>>991
ダブルバッファしたものとしてないものがある訳だから兼用でOKだと思う
993デフォルトの名無しさん:2005/12/06(火) 21:08:13
994デフォルトの名無しさん:2005/12/06(火) 21:32:02
>>993
それコンパイル通らないよ
995デフォルトの名無しさん:2005/12/06(火) 21:42:17
>>994
貼るときに壊したかな?
エラーメッセージ出してみて
996デフォルトの名無しさん:2005/12/06(火) 21:45:06
>979
今ならつながる。
逆ポーランド記法の電卓でいいのかどうかは知らんが。
997デフォルトの名無しさん:2005/12/06(火) 21:47:41
>>994
うちは動いてるよ。
もう一回こぴぺしてみて。

あと、ファイル名は Bmp2Jpeg.java にしないとだめだよ。
大文字小文字も一字一句違うとだめ。
998デフォルトの名無しさん:2005/12/06(火) 21:48:47
>>994
あと、念のためだけど、 J2SDK 1.4.2 で確認した。
999デフォルトの名無しさん:2005/12/06(火) 21:49:22
1000デフォルトの名無しさん:2005/12/06(火) 21:50:36
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。