★★ Java の宿題ここで答えます Part 53 ★★
1 :
ザイン帝國軍帥・伯魔壬旭(小島露観) :
2005/08/10(水) 11:04:35 【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
即死回避
4 :
デフォルトの名無しさん :2005/08/11(木) 08:56:05
age
5 :
デフォルトの名無しさん :2005/08/12(金) 08:24:40
age
6 :
デフォルトの名無しさん :2005/08/12(金) 14:46:37
age
Test
8 :
デフォルトの名無しさん :2005/08/13(土) 04:33:26
【 PG歴 】 3週間 【 種別 】 丸投げ 【 Ver 】 1.4 【 期限 】 8月13日午朝0時 【 課題 】 上から読んでも下から読んでも 同じ音になる 文,"回文"(Palindrome)を測定する再帰的(recursive)メソッド が含まれたプログラムを書く。よろしくお願いします。
>>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
13 :
デフォルトの名無しさん :2005/08/13(土) 23:06:53
テストドライバもお願いできるでしょうか?
【 課題 】 ユーザーへ配送されたメールを標準入力で受け取り、~/data へ 本文と添付ファイルを保存するJAVAプログラム SaveMail を作成せよ。 JAVAプログラムへの標準入力は ~/.qmail より行うものとする。 【 期限 】8/22 【 Ver 】1.4 【 補足 】 丸投げですがよろしくお願いします。 メールサーバーは qmail です。 メール受信時に ~/.qmail から以下の様にプログラムを起動することで 標準入力でメールが渡せることまで分かりました。 # ~/.qmail | /usr/java/j2sdk1.4.2_09/bin/java SaveMail
15 :
8 :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());
}
>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()が何を引数にとって、何を返却するのかを理解しる。
17 :
15 :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
>18 mainメソッドは>18にあるじゃん。 おかしいのは、 コマンドライン引数を2つ(1つめは10進から2進にするのか2進から10進にするのかのフラグ、2つめはコンバートする数字)取っているのに、 JOptionPane.showInputDialogで10進から2進にするのか2進から10進にするのかをもう一度聞いてるところ。 どういう仕様にしたいか不明なので、詳しく教えてください。
22 :
19 :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時 【 補足 】よろしくお願いします。
>>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]);
}
}
26 :
955 :2005/08/15(月) 15:26:10
28 :
955 :2005/08/15(月) 20:46:46
コンパイルしません、もしかして、ヴァージョンが違いますか??
29 :
27 :2005/08/15(月) 20:54:36
>28 一応EclipseでJDKの設定を1.4にしたつもりなんだけど。。 どこでエラーになったか書いて。
30 :
955 :2005/08/15(月) 21:07:09
すいません、走りました。 親でもないのに迷惑かけてすいません。 本当に有難うございました。 まじで、感謝です。
31 :
19 :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
最近、雑用が多くて・・・ 今日中に何とか回答します〜
36 :
デフォルトの名無しさん :2005/08/17(水) 23:09:49
お願いするときは何回も書き込むけど、 いざコードが示されたら音沙汰なしだね。 人間なんてこんなもんなのね。。
38 :
デフォルトの名無しさん :2005/08/17(水) 23:18:13
これまでの回答者の多くが「なしのつぶて」されてるのに、何を今更。。。 私達は、感謝される為にソースコードを書いてるのではない
>38 感謝は求めてない。 動作報告をして欲しい。
41 :
デフォルトの名無しさん :2005/08/22(月) 17:14:08
保守age
42 :
デフォルトの名無しさん :2005/08/25(木) 20:13:31
さすがに夏休みだけあって、全く課題が来ないね・・・
>>42 逆に夏休みにやり残した課題を消化するためあわてて課題を出してくると思った漏れ
>>43 駆け込みが殺到するのはもうちょっと先だな。
学生とか9末まで夏休みの人も多いだろうし。
【 PG歴 】 2週間 【 種別 】 丸投げ 【 Ver 】 1.4 【 期限 】 8月30日午後6時 【 課題 】 ウインドウのサイズを越えたものを表示するための スクロールバー(ウインドウ自体の)の設置。 意味がわからなかったらすいません。
>>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円という意味です。。 丸投げですいません。 よろしくお願いします。
>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++ ) {
51 :
50 :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の時だけ結果が数円違うけど。。 どこかミスってるかも。
【 課題 】 ファイル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の知識が無いためどうしていいかわかりません。よろしければ教えてください。 お願いします。
54 :
50 :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 ありがとうございます。 おかげで無事にコンパイルできました。 本当にありがとうございました。
【 課題 】コマンドラインに入力された引数を整数に変換した値を引数として,オブジェクト 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個ごとにデータを受け取るということをコントロールできるのか、 お願いしマスダ
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がありましたら教えてください。 テストで使いたいのです。
【 課題 】ソースファイルと同一フォルダに置いてある画像"SUNSET24.jpg"を読み込み、ピクセル単位でRGBの値を変えられるようにして 新しいjpegファイルとして書き出しなさい。 【 種別 】丸投げ 【 期限 】9月5日 【 Ver 】1.4 【 補足 】ピクセル単位でRGBの値を変えるっていうのは元画像のRGBの値のRを3倍にしたり とからしいです。(教師に質問した) 読み込みと書き込みにFileInput(Output)Storeamを、RGB処理にPixelGrabberなどを使って 自分なりにやってみたものの新しいファイルとして書き出すところでお手上げになりました。 丸投げですがお願いします。
>>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);
65 :
52 :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個出力されるたびに作図、出力、作図、を繰り返したいんです。
通常ソルバーの出力の方が速くて作図が間に合わないだろうという予測のもと、ある程度出力に間隔を置いて作図するわけなのですが・・・
>>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; }
>
>>67 様
>ソルバーの出力を標準出力に渡すって言うことは、簡単に表現するなら
>printf("%ld\n", data);
>のようなコードをソルバーのソースに入れておくっていうことですか?
そういうことですよ
ちなみにいまさらな話なのですが私はソルバーってよくわかりません使ったこともないし・・・
なので、ソルバーの出力をうまくgetInputStream()に渡せるのかというのが気になっておりました
>>69 出来たのならそれでいいのでは?
あとは100ごとの処理を書けばいいのではないでしょうかね
72 :
デフォルトの名無しさん :2005/09/04(日) 20:20:53
そうですか、とりあえずこの方法でやってみます。 お世話様でした。 ソルバーとは "solver"のことで、計算をするプログラムのことです。直訳的には"解く人"ですね。
【 課題 】コマンドラインに入力された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("ログイン失敗"); } }
>>74 もっとJAAS風におねがいします・・・それじゃ小学生並なので・・・
>75 >73の質問からはそういう風にしてほしいという意図が全く読み取れないのだが。
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の問題お願いします・・
>>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 おれがやろうと思ったのに、おれがやろうと思ったのに、
おれがやろうと思ったのに、おれがやろうと思ったのに、
おれがやろうと思ったのに、おれがやろうと思ったのに、
出来なかったです(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日 【 補足 】 丸投げです。 水平スクロールバーの高さと、垂直スクロールバーの幅を 制御したいです。
>>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);
}
}
【 課題 】 前提条件 下記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
ageてしまった 申し訳ない・・・
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
やさしいMaja
92 :
88 :2005/09/13(火) 20:59:38
皆さんなんとか知恵を貸していただけないでしょうかOTL
>>92 中学と高校をやり直してこい。
これは中学とか高校で『確率』のときに習ったはずだ。
コンビネーション(nCm)、 パームテーション(nPm)を習ったはずだ。
基本情報処理試験のテスト出題範囲でもある。
94 :
デフォルトの名無しさん :2005/09/13(火) 21:38:06
>>93 4C4+4C3+4C2=11
になるのは分かるのですが、プログラムでどう書いていいのやら・・・
> int型の配列 hairetu[]n={1,2,5,4} が存在する 存在するんだ・・・
>>90 の思考プロセスをそのまま書けばできるような気がするけどな
>>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();
}
}
しまった、これじゃ1が動かない
美しくない〜。 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(); } }
101 :
88 :2005/09/13(火) 22:22:28
無事
>>100 で動きました
ありがとうございました
もう少しちゃんと勉強しよう・・・OTL
102 :
100 :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(); } }
103 :
100 :2005/09/13(火) 22:40:49
うぎゃ、なんだ i <= a.length -1 てよ。 i < a.length でいいじゃん。
104 :
デフォルトの名無しさん :2005/09/13(火) 23:46:32
質問です。 #で三角形を描きたいです。 どうすればいいですか? # # # # # # # ####### 完成図はこんなかんじです。
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
空白を一つずつ減らしたり増やしたりするやり方がわかればなんとか・・・
【 課題 】正誤式の問題作成。 100問 問題を作成しランダムで出題 正、誤で回答をし、回答結果を集計して表示 【 種別 】丸投げ 【 期限 】9月15日 【 Ver 】1.5 まったくわかりません・・ よろしくお願いします。
109 :
デフォルトの名無しさん :2005/09/14(水) 00:48:26
>>104 宿題に書かれてる条件ってそれだけか?
省略せずに全部書けよ
110 :
デフォルトの名無しさん :2005/09/14(水) 01:03:10
>>108 君もそれ問題全部書いてるか?
アバウトなのが多すぎるぞ
>>109 口頭で言われたんですが、これだけなんです。
「単元で言うと」とか全くなし。
でもやっぱり条件式とかはつけないとだめかなーと思っています。
112 :
108 :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日
【 補足 】当方海外の大学生のため、問題は英語になっています。
>>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);
}
}
117 :
デフォルトの名無しさん :2005/09/14(水) 13:58:31
このスレは常時上げてください。
>108 一番難しいのは100問の問題を作成することなのだが。。
>113 TerminalIOパッケージの中身をクレ.
120 :
113 :2005/09/14(水) 20:12:19
>>115 ありがとうございます。
がんがって説明できるように解読します・・・
>>114 底辺が一個足りない感じになるんですよ。
ちなみに
>>115 でも同じようになって・・・
for (int i = 0; i < height - 1; i++) {
の-1を抜くとピッタリなんです。
どうしてだろう・・・
>>104 の図
#
# #
# #
# #
#######
お前がやりたいのはこっちか?
#
# #
# #
# #
#########
だったら-1を抜くとピッタリだ
>>123 上のほうだけど・・・
失礼だったかもしれませんが、
作っていただいたプログラムにいちゃもんつけてるわけじゃないんです。
秀丸にコピペしてコマンドプロンプトで出すと
#
# #
# #
# #
######
↑こうなってる。
-1抜いたら二個増えるはずなのに、ピッタリなんですよ。
なんでだろ・・・・
125 :
113 :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を問題にすればいいのでは?
>>113 配列じゃなきゃダメか?
Listの方が実用性 (つっても宿題だけど) としてはより良い選択だと思うが。
130 :
129 :2005/09/15(木) 17:43:23
宿題:可変可能な配列、new ArrayList(82);級に早い奴
132 :
113 :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)"
ってでて強制終了されます。自分なりに弄ってはいるんですが、
解決方法はありますか?
133 :
113 :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で民俗学ミステリ凶笑面だ。 みんな、見ようぜ。 原作は新潮文庫から出てるよ。 俺はドラゴン桜を見るからビデオに撮るけどな。
135 :
129 :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;
TerminalIO ってこのスレで時折見かけるが どっか同じ学校に行ってるんだろうな ナンマンダブ ナンマンダブ
137 :
113 :2005/09/17(土) 23:59:54
提出期限延ばしてもらいました。月曜の朝までです。ヤヴァイな。
>>135 ,
>>129 Dの処理でも同じようにエラーが出たので、Aと同じように
CD cd = new CD();
cds[index] = cd;
にしたんですけど、出力が全て0とnullになります。
丸投げで回答してもらったほうがいいですかね?
知るか、ボケ
139 :
デフォルトの名無しさん :2005/09/18(日) 00:12:52
もう一回問題と 出来たところまでの回答をあげてくれ
>113 今日の夜みるからもう一度今までできたところをうpして、 それに対してどこが解らないかを書き込んどいてくれ
142 :
デフォルトの名無しさん :2005/09/18(日) 13:55:15
くだ質では知っているひとがいないようなので、移動してきました。 すいません。javaでの環境をつくらなくてはいけないのですが、 『java web start』というアイコンはこれは何ですか?
144 :
デフォルトの名無しさん :2005/09/18(日) 14:49:02
>>142 とりあえず起動してみろ。
知らないなら気にするな。中にいくつかデモプログラムが入っているので
デモと勘違いする香具師が多いが、実際には
ダウンロードしたJavaWebStartに対応するアプリケーションを溜めて
リストアップしておくためのアプリケーションだ。
わからないならJavaAppletに取って代わる新しい技術だということを
頭に入れておけばいい。
【 課題 】 していされた画像ファイルの画像変換を行うクラスを作成。 <機能条件> 前提とする画像のファイル形式はBMP、JPG、GIF、PNGとする 変換元ファイルの画像形式は自動で判別する事。 変換先のファイル形式は引数などで指定すること。(指定の無い場合はデフォルトでJPGとする) 画像のサイズ(縦横)変更を可能とする事。(ただし、縦横比は維持させる) 変換先のファイル形式がJPGの場合、ファイルサイズの上限を設定できること。 上限を設定された場合、変換されたJPGファイルは上限値を超えない最大のサイズでの圧縮レベルで変換する事。 さらに、縦横のサイズ変更との併用を可能とする。 【 期限 】 9月20日の正午までにメールまたは各種メディアにて提出。 (ソースコードおよびコンパイルしたもの、さらに動作確認用のメイン関数の書かれたもの)
146 :
140 :2005/09/18(日) 22:53:25
>141 問題すらみれてないので何とも言えないが 同じCDを買うときもtitleやらなにやら入力し直すのかい? 間違えてaddしたの消す機能を必要無し?
147 :
113 :2005/09/18(日) 23:36:24
148 :
113 :2005/09/18(日) 23:38:06
>>146 まだ、初級プログラムなので、そこまで想定して作る必要はないそうです。
実用的には大問題ですけどね。
149 :
114 :2005/09/19(月) 00:41:06
今、jspを利用して、顧客、メーカー、サプライヤーの枠組みで生産管理システムを 3台のパソコンで仮想的な受注と発注を行いたいのですが、他のパソコンから データベースに接続する方法が分かりません。一応フォーム、データベースは もうできているので、後は他のパソコンから接続してデータを反映する事で 問題は解決できると思います。 たぶんサーバ名を"localhost"にしているためだと思うのですが何に変更すれば いいか、調べてはみたのですが、全く分かりません。分かる方、どうかお教えお願いします。
>>145 ImageIOで検索してみ。
適したAPIがあるから。簡単だからすぐできるぞ。
Advansed Image IOなんてもの使わなくてもいいから。
AffinTransformとかも必要かもしれないが、
このケースの場合不要だな。
>>149 他のPCとそのマシンとの関係はどうなっておるかな?
間にファイアウォールがあるかどうか?
IPアドレスは動的か、静的か? グローバルIPか?それともプライベートIPか?
グローバルIPアドレスの使用は学校から許可が下りているか?
DNSの設定は?
ポートhttpは解放できるか?
ApacheなどのWebサーバをインストールしているか?
Javaアプリケーションサーバは何を使うのか?
Tomcat? Jetty? それとも、JBoss?
サーバ、クライアントPCに使われているOSは何か? Windowsか? Linuxか? *BSDか? Solarisか?
データベースはRDBMSにするのか、ただのデータの集まりで構わないのか?
RDBMSにする場合、お前にRDBMSをインストールし、設定し使いこなすスキルがあるのかどうか?
データベースサーバはどこに置くか?
データベースサーバを外部に置く場合、そのポートは開放させてもいいのかどうか?
まずこれらを確認せよ。
153 :
114 :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
154 :
114 :2005/09/19(月) 02:07:57
>149 > データベースに接続する方法が分かりません。一応フォーム、データベースは > もうできているので、後は他のパソコンから接続してデータを反映する事で > 問題は解決できると思います。 これを読む限りでは同一PC内でAPL<->DBは接続できているように書いてあるけど 質問内容からすると出来ていない気がするなぁ 同一PC内で接続確認済->Javaの問題では無いだろうしね
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();
}
}
158 :
114 :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。 ローカルアドレスにはプロキシサーバーを使用しないのチェックボックスに チェックあり。
159 :
114 :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) メソッドを使ってください。
>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
163 :
114 :2005/09/21(水) 00:37:52
>161 ↑でマシンが違うことで変わるところは1箇所しかないと思うのだが 同一マシンでも接続できていない? 同一マシンでは接続できます。他のマシンからは接続できません。 他マシンを「localhost」から、このマシンのIPアドレスに変えればいいわけですよね?? IPアドレスは自動で取得していません。IPアドレスは分かります。
164 :
114 :2005/09/21(水) 00:57:54
【 課題 】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();
>163 でどうだった? あとはport等ネットワークの問題だろうから 各種設定、導通テスト(こんな言葉であってるか?)等 やってみた結果も併せて書いてくれれば解るかも (既にJAVAの域を越えてる気がするけど・・)
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
今、次のようなクラスが定義されているとする。 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); } }
172 :
171 :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日まで よろしくお願いします。
>171 Ans. 違反している。 変数xがPoint内でprivateの可視性で定義されているから、 クラスが異なるPoint3Dからは見えない。 >172 Ans. xpos() メソッドgetX()がPoint内でデフォルトの可視性で定義されているから、 パッケージが異なるColorPointからは見えない。 コンパイルすれば分かるものを。。
174 :
sage :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それぞれ量子化されてないか?
177 :
174 :2005/09/26(月) 18:30:36
すみません、いい方がおかしかったもしれません。なんらかの画像を読み込んでその解像度を8bitにしたりといった、変換をしたいのですが・・・
178 :
デフォルトの名無しさん :2005/09/26(月) 18:40:03
量子化レベルの変更をしたいのね それは色?それとも表示領域?
179 :
174 :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歴一週間です。丸投げですがよろしくお願いします。
182 :
Mb :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));
}
}
184 :
デフォルトの名無しさん :2005/09/27(火) 23:32:01
祝 ウィルコムJAVA搭載 そこで宿題 MP3再生プレーヤーを作りなさい。
え?マジで?
186 :
デフォルトの名無しさん :2005/09/27(火) 23:50:00
test version
<html>
<HEAD><TITLE>>1-MP3</TITLE></HEAD>
<body>
<a href="
>>1 .mp3">ここをクリックすると再生します。</a>
</body>
つーかウィルコムのJavaって勝ってサイトで配布できるの?
188 :
181 :2005/09/28(水) 00:10:21
>>182 どうやらちゃんとできました。どうもありがとうございます。
180に付けたしなんですが、 ハノイのタワーは三台あって、A,B,Cにわかれています。 タワーAには下の方から大きい数字の順番に置物があって、 その置物をすべてタワーCに移動させたいんです。 ただ少し問題をややこしく するのは、移動をしている最中に一つ以上の置物を一度に運べないことと、 タワーAからタワーBとタワーCに置物が移動している際に小さい数字の 置物は、決してその数字より大きい数字の置物の下には置けないという事です。 後から付けたししてすみませんでした。 でも、みなさんハノイのタワーは過去に習われたのではないであろうかと 思いましたので、あえて詳しい解説はつけなかったのですが。。。
数字文字列をInteger型に変換する為のコードで Integer i = Integer.decode("02"); これはエラーにならないのに、 Integer i = Integer.decode("09"); はNumberFormatException例外が発生するのは何故でしょうか? 当方JAVA初心者です。
10進数 ・・かな?
194 :
190 :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]*
結局16進数って事でおk?
8進数だよ解らんのか
わからん。もっと勉強する
【 課題 】JAVAで年と月を入力したら、その月を表示するカレンダーを作る 【 用語 】JAVA、コマンドプロンプト上 【 期限 】9月29日 13:00分提出 【 Ver 】JAVA1,5 【 補足 】ツェラーの公式というのを使うらしいのですが、どうにもならずorz 丸投げになります、がよろしくお願いします
200 :
200 :2005/09/29(木) 08:09:14
201 :
Mb :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 + "日(星期" + 星期 + ")"); } } } }
202 :
199 :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
205 :
デフォルトの名無しさん :2005/09/29(木) 13:54:38
【 課題 】Javaを使って画像処理技術の視覚化をする(例:濃度変換,フィルタ処理等) 【 用語 】Java コマンドプロンプト上 【 期限 】9/30 15:00 【 Ver 】指定なし 【 補足 】アプレットのようなものを作ればいいと思ってるのですが・・・
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); }
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)); }
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]); } }
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); } }
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 指定無しだから大丈夫かな?
5x5 じゃないね あといろいろ誤字とかあるけど動くは動くから気にしないでね もっと一般的なフィルタアルゴリズムがあったら誰か適当に足してちょ
212 :
デフォルトの名無しさん :2005/09/29(木) 15:34:20
>>211 ひとまずコンパイルはできましたがエラーがでて実行できません
実行の仕方を詳しくお願いします
あとVer1.4でした
何てエラーが出たかコピペしてよ ○○Exception つー断片でもいいから 実行は > java ImageFilterPane hoge.jpg とか。カレントディレクトリに hoge.jpg があればいけるはず。 D:\hoge.jpg とかのフルパスでもいいよ
214 :
デフォルトの名無しさん :2005/09/29(木) 16:02:46
>>211 実行できました
ありがとうございます
お手数おかけしました
>>213 2つ目の2値化の部分なんですが、今の状態で2階調のような気がしますが
それをもう少し32階調16階調などにするためにはどこをどういう風にいじればいいのでしょうか?
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
221 :
デフォルトの名無しさん :2005/09/29(木) 23:13:43
>>219 音楽再生が再突入した場合に対応できないAudioPresenterクラスの設計が拙い
よって該当ソースを修正する必要はない
223 :
デフォルトの名無しさん :2005/09/30(金) 12:26:37
>>204 サンプルがあるならjodeとかJadclipseで逆コンパイルしてみたら。
224 :
デフォルトの名無しさん :2005/09/30(金) 12:57:38
>>203 亀ですまんけど、嘘教えるなよー。
少なくとも Java において 0 は常に 10 進数だよ。
>225 >203は言葉足らずなだけじゃないか? 数字の最初に 0 がある場合は8進数をあらわしてるわけで、 この場合は普通の数字としての 0 じゃない。 つまり、10進数の 0 じゃなくって、 8進数をあらわす 0 ってことがいいたかっただけジャマイカ?
227 :
227 :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(); } }
228 :
227 :2005/09/30(金) 15:22:07
【 課題 】IPv6でも動作するように改良しなさい 【 用語 】 【 期限 】2005年10月2日 【 補足 】InetAddressのところに6を入れた状態で掲載しましたが、 それでもIPv6では動作しませんでした
【課題】時計作成 ・GUIで作成(Windows上で動作するように作成すればウィジットは問わない) ・デジタル/アナログは問わない。 ・表示誤差は極力無くなるようにすること。 【用語】 なし 【期限】10/3のAM7:00まで 【Ver 】JDK1.4.2 【補足】丸投げです。自分では無理でしたorz どうか宜しくお願いします。
>>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);
}
}
>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 【 補足 】英文はキーボード入力です。 丸投げですがよろしくお願いします。
>>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
234 :
233 :2005/10/02(日) 14:39:21
>>233 実行結果のTABが消えとるw
単語数: 4
平均語長: 2.75
語長 単語数
1 0
2 2
3 1
4 1
>>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(".*[\\.\\?!]")) {
// 以下略
これは動作確認してませんが
237 :
229 :2005/10/02(日) 17:48:49
>>231 さんので動きました。
230さん231さん考えてくれてた方
本気で有難う御座いました。
本気で助かりました。
238 :
232 :2005/10/02(日) 18:03:36
>>233 さん
レスありがとうございます。
233,236の両方とも無事動きました。
ちょっと課題が分かりにくかったようですいません。
本当にありがとうございました。助かりました。
【 課題 】JSPで掲示板を作るときにデータベースの処理を担う部分 【 用語 】なし 【 期限 】10月7日まで 【 Ver 】指定なし 【 補足 】サンプルプログラムですが、なにも改造しないままエラーが4つもでるという悲惨な状況です。 問題点というかなぜエラーがでるのかがわかりません。 コンパイルできるようにしたいです。
240 :
239 :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", "" ); }
241 :
239 :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; } } よろしくお願いします。
>>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時まで 【 補足 】丸投げでお願いします あとゼミの宿題です これが詳しく書ける限界ですみません
244 :
243 :2005/10/07(金) 10:01:10
あと急すぎて本当にごめんなさい
>>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() ;
}
}
246 :
243 :2005/10/07(金) 12:45:35
>>245 そうです、ありがとうございます!
あとコンパイルしようとしたらclass interfaceがありませんと言われたのですが・・・・・・
>>246 public Seminar{
という行の public と Seminar の間に
「 class 」を入れる。
249 :
243 :2005/10/09(日) 22:54:14
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;
}
}
256 :
253 :2005/10/11(火) 05:59:59
>>255 時間ないところ本当にありがとうございます(つД`)
参考にさせていただきます!
ありがとうございました!!
>>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);
}
}
【 課題 】 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という事になります。 よろしくお願いします。
260 :
259 :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);
261 :
259 :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("*********************************************"); } }
262 :
259 :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. *********************************************
そこまでできてるならこれだけ貼れば分かるかな? 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 も使わない感じ・・
264 :
259 :2005/10/12(水) 00:38:37
>>263 ご指導ありがとうございます。
ただ、まだunitsや、for、if、while文は習っていないので、
それらを使わずに「520と認識させて520/100で5枚のone-dollor bill、520%100で20なので〜」
という風に出力しろとの事です。
>>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 まで展開。
習っていないので使ってはいけません。って文部省教育の弊害だな。
ゼミなんだから、「自分はさらに調べた。こちらの方法のほうがより効率的に書け美しい」とか発展してもよさそうだが・・・。
>>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() {}
}
267 :
259 :2005/10/12(水) 05:29:09
>>265 申し訳ないのですが、ソース解答の丸投げをしてはいただけないでしょうか。
補足してもらったソースと自分で書いたソースを合わせたら、何度書き直してもエラーを吐いてきます。
268 :
259 :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;
269 :
259 :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("***********************************************"); } }
270 :
259 :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; のところがエラーを吐きます。
変数は 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) みたいなことをせにゃならん。つまり一桁づつ作るわけ。 (ほんとはもっと流儀に沿ったやり方があるが「習ってない」だろうから避けておこう)
× x.x と 0 が ○ x.x となり 0 が
273 :
259 :2005/10/12(水) 12:15:21
>>271 ありがとうございました。
完璧に仕上がりました。
あ、小数点以下は (yourMoney%100) でもいいのかな。 できたようだからまぁいいか。
はじめまして。JAVA(Swing)で15パズル(スライドパズル)を作る課題が出ました。 どなたか教えてください。
276 :
デフォルトの名無しさん :2005/10/12(水) 16:07:21
>>275 【課題提示用テンプレ】
【 課題 】与えられた課題文をそのまま書きます 《必須》
【 用語 】数学用語、専門用語の意味、説明を書きます 《あれば必須》
【 期限 】提出期限、又は解答希望日を書きます
【 Ver 】希望するJavaバージョンがあれば書きます(1.5 とか 1.4以前とか)
【 補足 】課題について自分なりに補足する事、何か思う事があれば書きます。
丸投げでない場合は、途中までのソースとその経過報告、
質問点、疑問点を書きます(なるべく丸投げにしてください)
277 :
275 :2005/10/12(水) 16:20:53
【 課題 】15Puzzle。 4×4の升目状の絵合わせパズル。 正方形に近い画像データを4×4の16個のピースに分割し、 右下のピースを取り除いた残りのピースをランダムに升目に配置する。 ピースが割り当てられていない場所の上下左右のピースをクリックすると、 そのピースが空白の場所へ移動し、ピースの場所は空白になる。 ピースを並べ直して、元の画像が再現できればパズルが完成する。 【 期限 】10月18日 【 補足 】JAVA Swing Application よろしくお願いします。
279 :
277 :2005/10/12(水) 17:24:09
278 は作ってんの? 俺できたけど、277 が質問スレで言ってた状況にしては奇抜な発想のになっちゃった・・・ いいのかなこんなんで その辺に関して親切なのを 278 が作ってるなら、よろしく
281 :
278 :2005/10/12(水) 20:39:08
スマン、聞いてみただけだ
じゃ、まず貼っちゃおう 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); }
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++; } } }
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(); //再配置の終了を宣言(=再描画の要求) } }
ふつーはきっと「JComponent と MouseListener を使おう」
という発想だろうと思うのね
ふつーのゲームならそうだし、AWT のみならそれしかないし
でもせっかく Swing と指定されてるし、
それだとボタンでも枠消せるからこんな感じで・・・多分このやり方の方がソースも短い
時間はあるみたいだから仕組み眺めといてね
>>277
286 :
277 :2005/10/13(木) 02:12:33
>>280 解答ありがとうございます!ただ今バイトからあがりました。
こんなに早く、しかも丁寧に答えていただいて、本当に助かりました。
これからまたじっくり眺めて自分でも書いてみて仕組み等勉強したいと思います。
質問スレを読んでくださったのなら状況はご存知の通りですが、
しっかり勉強して、教授を見返してやろうと思います。
本当にありがとうございました。
なにこのネ申スレ
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…と表示されてしまいます。どこが可笑しいのでしょうか。
計算機は普通浮動小数を正確な値では扱えない。
小数の値を
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 ありがとうございました。ちなみに、ソース自体は組み直して大丈夫です。
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 使えばいい。
>>292 すみません。
>293 いや、0.2が0.199となるのは何故か、という質問でした。
ソース自体は解決しました。
295 :
デフォルトの名無しさん :2005/10/17(月) 05:01:25
グラフィックをやってるのですが、 四角の中に文字列を表示させたいのですが、ちょうど真ん中に来るようにするにはどうすればいいでしょうか? 四角の中ちょうどいっぱいの大きさに表示させるのではなく、四角よりもだいぶん小さな文字をちょうど中央に書くには。 お願いします。
何を使って絵を描くのかちゃんと明示しないと答えられないよ。
297 :
295 :2005/10/17(月) 05:45:42
グラフィッククラスのdrawRect();で四角を書いて中にdrawString();で字を書くって感じです。
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まで 【 補足 】まる投げですがよろしくおねがいします。
その程度の用語説明だと、関連する研究やってる人でもないと書けないっす 基準画像、探査画像、テンプレートがそれぞれ何を指しどんな関係なのか、 今ひとつ分からず
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の初歩的な知識で可能だとかなんとか言っていたので。 しかしさっぱりわかりません よろしくお願いします
>>303 int code = (int)'峯';
System.out.println(Integer.toString(code, 16));
とりあえず対応点検出は作れたことになんのかな・・・? 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; }
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]; }
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; }
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; }
以上、全部
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はどこに書くんでしょうか?
* 文字列が半角のアルファベット小文字のみで構成されているかのチェック。 * * @param letterString 調べる文字列 * @return letterStringがa〜zのみで構成されている場合、trueを返す。<br> * letterStringにa〜z以外の文字が含まれている場合、falseを返す。 */ public static boolean isSmallLetterString(String letterString) { // TODO: ここに処理を実装する。 return false; }
>>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座標を用いて立体的に表示させることはできないでしょうか?
どなたかどうか宜しくお願いします。
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個づつに区切り、対応するたんぱく質結合を出力するのができません。
>>315 String str = "123,456,789";
long l = Long.parseLong(str.replaceAll(",", ""));
318 :
316 :2005/10/18(火) 16:31:29
出力例です。 DNA :TATACGAGCGC RDNA:CGCGAGCATAT TRNA:GCGCUCGUAU たんぱく質:AlaLeuVal
>>317 サンクスコです。
こんなに簡単だったのか orz
>>318 生物弱いんで、
TRNAとたんぱく質の対応表くれたら書けるが?
public static double sum(double[] numbers) throws NullPointerException { exception NullPointerException numbersがnull numbersに格納されている全要素の中で最も大きい値を返すには、どのように書いたら良いですか?
>>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);
}
すいません、もう一ついいでしょうか?
>>321 の様な文の全要素の合計を出したい場合はどうすればよいのですか?
>>323 こんなんでいいか?
public static double sum(double[] numbers){
double sum=0.0;
for(int i=0;i<numbers.length;i++){
sum+=a[i];
}
return(sum);
}
センキューです〜
327 :
316 :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 俺はコード書いた本人じゃないけど、このコードだと
桁あふれとか精度は考慮してないから、使い方には注意したほうが良いと思われ。
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());
}
>>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);
}
}
333 :
316 :2005/10/18(火) 19:18:03
>>330 Scannerでエラーが出るんですけど…。
Java1.5 が楽だから BufferedReader in=new BufferedReader(new InputStreamReader(System.in)); String dna=in.readLine(); この辺使って
>>329 str.matches("[01]+")
【 課題 】ツェラーの定理を使ったカレンダーを作る。年、月を入力して1-12月までウインドウで出力 【 用語 】数学用語、専門用語の意味、説明を書きます 《あれば必須》 【 期限 】10月20日 【 Ver 】希望なし 【 補足 】丸投げですがよろしくお願いします。
ツェラーの定理の説明はなしかよ。
>>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());
}
}
}
>>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());
}
に変えるだけ。
>>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);
}
>>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);
}
}
>>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);
}
>>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);
}
}
}
>>346 引数にマイナスが設定された時の動作に問題がありますって出ます。
>>347 どうなってほしいの?
もうちょっと詳しく
すみません
>>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ムズカシス
>>349 10進 str.matches("-?\\p{Digit}+")
16進 str.matches("\\p{XDigit}+")
>>335 と同じ表記なら
10進 str.matches("-?[0-9]+")
16進 str.matches("[0-9a-fA-F]+")
>str.matches("[01]+") >str.matches("[0-9a-fA-F]+") その正規表現で思ったんだが、 お前らのやり方だと abc12xyz も、trueになる?(←結果的にこれを望むならいいのだけど、) 試してないから勘で言っているんだけど・・・ 何を心配しているかと言うと、 ^[0-9]$ じゃなくていいのかと言う事 Javaでは^$イラネ-よ というのならゴメンナサイです
なるほど、了解です
357 :
デフォルトの名無しさん :2005/10/20(木) 01:43:25
【 課題 】下記のように10段のピラミッドの出力を行うプログラムをfor文を使ってさくせい
下記無しで age っぱなし?
359 :
デフォルトの名無しさん :2005/10/20(木) 02:03:56
【 課題 】(問題1)下記のように10段のピラミッドの出力を行うプログラムをfor文を使って作成しなさい。 (ヒント)二重ループを利用すること * ** *** **** ***** ****** ******* ******** ********* ********** (問題2)更に10段の逆ピラミッドの出力を行うプログラムをfor文を使って作成しなさい。 【 期限 】10月21日 【 Ver 】特に無し 【 補足 】丸投げですみませんがよろしくお願いします。
>>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
>>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]);
}
}
}
>>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)));
}
}
365 :
361 :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つの置換えをしたいんだけど、どうしたらいいですか? & ⇒ & < ⇒ < > ⇒ > " ⇒ " ' ⇒ ' replaceAll使うの?
368 :
デフォルトの名無しさん :2005/10/20(木) 09:36:53
タグ入れていなかった <pre> & ⇒ & < ⇒ < > ⇒ > " ⇒ " ' ⇒ ' </pre>
369 :
デフォルトの名無しさん :2005/10/20(木) 09:38:10
だめか… こんな感じ &amp; → &amp;amp;
>>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("");
}
}
}
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.ソートされた配列を返す。
374 :
デフォルトの名無しさん :2005/10/20(木) 16:19:03
1Vecterクラスの配列を用意 2Vecterクラスの配列に九九を段数毎に格納3九九の全段表示を出力 4九九の段数表示を出力 5八、九段は七個までの出力とする 丸投げです お願いします
375 :
デフォルトの名無しさん :2005/10/20(木) 19:07:56
a
sourcepost復活してる。
377 :
376 :2005/10/20(木) 22:35:52
378 :
339 :2005/10/21(金) 01:59:44
>>340-341 ありがとうございます。しかし実行したらエラーが・・・。
ちょっと粘ってみます。
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.
382 :
380 :2005/10/23(日) 18:27:00
【 用語 】 【 期限 】10/24 【 Ver 】1.5以降 コンパイラはBorland JBuilder 2005 Foundation ver11.0を使用。 【 補足 】二つのクラスを使って、交互に処理をするというプログラムです。 サンプルプログラムと自分で途中まで書いたプログラムを載せておきます。
383 :
380 :2005/10/23(日) 18:48:25
また英語かよー
385 :
380 :2005/10/23(日) 19:03:01
>>384 すいません…。
アメリカの大学に通っています。
ちっ。
387 :
質問です。 :2005/10/23(日) 19:16:58
JPEGを読み込んでRGBの値を得るプログラムを教えてください。
ルールを読まない人には教えません
389 :
デフォルトの名無しさん :2005/10/23(日) 19:44:33
ちっ。
390 :
380 :2005/10/23(日) 20:52:11
TotalPrice = numberofBags * bagWeight * pricePerLb; TotalPriceWithTax = TotalPrice * (1 + taxRate);
392 :
380 :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は違うクラスも絡めて出力という主旨らしいです。
>>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)のメソッド());
}
394 :
393 :2005/10/24(月) 01:22:41
395 :
380 :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
****************************************************
が二つ出力されてしまいます。
396 :
380 :2005/10/24(月) 03:45:03
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 】 【 補足 】よろしくお願いします。
398 :
393 :2005/10/24(月) 06:04:56
main の最後の行が違ってそう。 my_coffeebag.print(); ↓ coffeeBag.print(); あと、変数名は、 coffeebag my_coffeebag; coffeebag coffeebag; ↓ coffeebag coffeebag1; coffeebag coffeebag2; くらいが無難かな。
399 :
380 :2005/10/24(月) 06:34:08
400 :
393 :2005/10/24(月) 06:55:41
【 課題 】 jpeg画像の読み込みを行い2値化するプログラムの作成方法教えて下さい(RGBの値を得るプログラムもよけれべお願いします。) 【 期限 】 今週中 【 補足 】よろしくお願いします。
↑ 2値化とはある数字以下を0以上を1にする方法です。 間違ってたらごめんなさい
403 :
デフォルトの名無しさん :2005/10/24(月) 14:16:06
【課題】標準入力から10個の数を受け取り、平均、分散、標準偏差を計算するプログラムを作成しなさい。
(共通性の高い計算部分はメソッド化して作成すること)
【期限】今週木曜12時まで。
【補足】n!の計算プログラムと、nPrとnCrの計算プログラムを参考にすること
丸投げですが、宜しくお願いします。
僕も
>>370 みたいな感じの文字の羅列希望です…。
(何でそんなに皆判るのか…尊敬…)
>>403 それは、>254と>257を読んだ上での○投げか?
406 :
デフォルトの名無しさん :2005/10/24(月) 16:50:47
JavaScriptはスレちがい?
408 :
デフォルトの名無しさん :2005/10/24(月) 16:53:20
そうか、ありがとう この板にないし どこだろう?
410 :
397 :2005/10/24(月) 17:21:08
>>400 ありがとうございました。
ただ、Queueメソッドで何をしているのかが分からないです。
forのところでエラーになります。。。
どなたか教えてください。
411 :
login: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 よろしくお願いします
【 課題 】1-12月までのカレンダーを4*3列で並べて、 日、土を色付けてウィンドウで表示しなさい。 【 期限 】26日18時まで 【 Ver 】特になし 【 補足 】 丸投げですがお願いします。 できれば1月から↓向きにに次の月が表示されるようにしろと言われてます。
【 課題 】 Cドライブ内にあるAフォルダー内にあるb.jpegのjpeg画像のRGB値を得る プログラムの作成方法教えて下さい 【 期限 】今週中 【 Ver 】特になし 【 補足 】プログラム始めたばかりなのでこの処理のとこだけ書かれても 理解できないと思うので最初から最後まで書いていただくとありがたいのですが。
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 のように表示してくれると嬉しいです。
>>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
このプログラムが書けるレベルの本があれば教えてください。。すれ違い?
420 :
AK :2005/10/26(水) 11:38:27
421 :
デフォルトの名無しさん :2005/10/26(水) 14:26:03
英語の問題は自分で訳してから載せろ、とルールに入れた方がいいな。
>>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();
}
>>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());
}
>>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
427 :
413 :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日 【 補足 】よろしくお願いします。
またsourcepostつながらない。 調子悪いなあ。
432 :
デフォルトの名無しさん :2005/10/27(木) 19:44:35
>>300 >>302 >>314 何度やっても抽出された画像が黒くなりうまくいきません。
期限はすぎているのですが,仕上げなければなりません。
自力ではまったくわからないので,すみませんがどうかお願いします。
433 :
デフォルトの名無しさん :2005/10/27(木) 20:20:05
【課題】○×ゲームをAWTアプレットで作成しなさい また、対CPU対戦もできるようにしなさい 【期限】11/9 【補足】全て書くと500行ぐらいになるそうなので、アクションの部分だけでもけっこうです どなたかお願いします
【課題】 実行結果 「ベクトル 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 【補足】長文すいません。お願いします。
内積ってこうだっけ 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(""); } }
【課題】 英語の試験を行った。その参加者は不定とし、参加者の平均点を求めるプログラムを作製せよ。 平均点は以下のように求める。 total+=mark_i //得点の加算 number++; //受験者のカウント : //以上を、参加者の数だけ繰り返す : //繰り返し終わったら以下の平均値を求める 【Ver】 1.5 【期限】 11月3日 【捕捉】 どなたかよろしくお願いします。
>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
444 :
デフォルトの名無しさん :2005/10/29(土) 02:07:02
>>435 すいません、33行目に「java.lang.DoubleのvalueOf(java.lang.String)は(int)に適用できません。」
というエラーメッセージが出ます。どうすればいいのでしょうか?
446 :
デフォルトの名無しさん :2005/10/29(土) 02:38:32
>>445 x = -Double.valueOf(slider.getValue() ).doubleValue(); の部分をどう変えればいいのでしょうか?
Double.parseDoubleにするんでしょうか?括弧内をStringにしてもだめでした。
447 :
445 :2005/10/29(土) 03:44:03
>446 > 括弧内をStringにしてもだめでした。 ビビって1.4で試してしまったじゃないかー。ダメじゃないし。動く。 x = -Double.valueOf(""+slider.getValue()).doubleValue();
448 :
445 :2005/10/29(土) 03:50:32
つかそんな難しいことしなくても、 x = -(double)slider.getValue(); でいいな。寝よ。
450 :
デフォルトの名無しさん :2005/10/29(土) 12:51:12
451 :
デフォルトの名無しさん :2005/10/29(土) 14:36:13
452 :
デフォルトの名無しさん :2005/10/29(土) 16:08:50
453 :
デフォルトの名無しさん :2005/10/29(土) 18:56:16
プログラムを作るんじゃないんですが、 @「リスト」をポインタを用いて実装したとき,どのような操作が高速に実行できるか. A「連結リスト」では,あとに続くデータの検索は容易であるが,前に並ぶデータの検索はむつかしい.これを改善するにはどのような構造にすればよいか. データ構造に関するこの二つの問題の答えがわからないので教えてください。
【 課題 】1対1でメッセージの送受信ができるプログラムをつくる 【 期限 】11/1 Javaについては今まで学んでなかったのですが、 独学で勉強してきてその上で作って来いということです。 取り合えずjavaの入門書のようなものは読みましたが、 正直どのようにして実装したらいいのか全然わかりません。 何か参考になるほうなHPなど教えていただけませんか。
>455 たぶん検索した方が早い。
>>453 @順次操作
A双方向リストにする。もしくはインデックスを別に持つ
459 :
436 :2005/10/30(日) 11:21:17
>>437 かなり遅レスですがありがとうございます!
ちゃんと理屈を勉強してみますね。
【 課題 】before.txtに書かれた5コの数値をソートしファイルafter.txtに出力せよ 【 期限 】11月2日 【 補足 】 ====before.txt==== 90 20 50 30 100 ファイルの読み込みがよく解りません バイナリファイルはFileInputStreamとInputStreamReaderを使うとあるのですが普通のテキストファイルの場合どのように読み込むのでしょうか?
>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 ) {} } } }
462 :
460 :2005/10/30(日) 15:33:10
>>461 早速やって頂きありがとうございます。 大変解りやすくて恐縮です。
Eclipseへ貼り付けてみたところ
「型 TreeSet は総称ではありません。引数 <Integer> でパラメーター化できません。」 と、
「構文エラー。パラメーター化された型はソース・レベルが 5.0 の場合にのみ使用可能です。」となってしまいました。
申し訳ないのですが、どのようにしたら解決できますでしょうか?
宜しくお願いします。
463 :
461 :2005/10/30(日) 15:48:30
>462 JDK5.0の機能使いまくりです。 5.0が入ってなかったら入れてください。 eclipseだと5.0用に設定しないと駄目だったと思うので とりあえずコンソールからコンパイル/実行してください。
464 :
460 :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>(); ^ となってしまいました・・・ちゃんとインストールされてないのでしょうか?
465 :
461 :2005/10/30(日) 20:58:20
>464 コンパイラが5.0になってないとダメです。 javac -versionで確認してください。 たぶん1.5になってません。 pathを見直してください。
【課題提示用テンプレ】 【 Ver 】希望するJavaバージョンがあれば書きます(1.5 とか 1.4以前とか) は、やっぱり必須にしたほうがいいんじゃないか? バージョン違いで動かないケース大杉。
>466 そうなってくれると答える側としても非常にありがたい。
MSのVMでも動くコードを書けば問題なし。
>>468 面倒…バージョン書かないほうが悪いと思うが
470 :
460 :2005/10/31(月) 12:42:26
pathの前の方にJDK5.0のパスを追加するとうまくいきました。 古い本を読んでたみたいで・・・jdk1.4.2を使ってやっていました。 JDK5.0の新機能について学んで出直してきますw
>>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);
}
}
472 :
466 :2005/10/31(月) 17:29:07
>>467 >>469 いや、まあ、そうなんだが、言いたかったのはそこじゃなくて、
ここにも 《必須》 マークあったほうがいいんじゃね?ってことよ。
素人さんは、どうせ事の重大性を知らないんだから、
バージョンの希望があるはずもなく、それで誰も書かないんだと思うわけよ。
だったら、最初っから 《必須》 にしといたほうがいいんじゃないかと。
↓こんな感じ
【 Ver 】希望するJavaバージョンを書きます(java -version で調べます) 《必須》
473 :
デフォルトの名無しさん :2005/10/31(月) 19:21:54
>>454 すいません返事遅れました
今Javaが打てないので、明日確認してみます!
わざわざAWTで打ってもらってありがとうございました!
474 :
454 :2005/10/31(月) 20:17:08
>473 動かしたらまたコメントください。
475 :
デフォルトの名無しさん :2005/10/31(月) 21:20:20
476 :
デフォルトの名無しさん :2005/10/31(月) 21:26:15
【 課題 】キーボードで入力された国語、数学、英語の点数を配列に格納し出力しなさい。 【 期限 】11月3日 【 補足 】
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]);
478 :
461 :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 ありがとうございます。 キーボードから入力された文字って配列に格納できますか? 初歩的な質問ですいません。
480 :
461 :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]); } }
>>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);
}
}
久々に見たな C宿題スレでは不思議と見ない たまたま俺が見てないだけかな?
484 :
デフォルトの名無しさん :2005/11/01(火) 16:55:49
【 Ver 】指定なし 【 期限 】11/5 【 課題 】数値が記述されているテキストファイルを読み込み 合計値を求めて表示するプログラムを作成しなさい 但し、結果が指数表記にならないこと、BigIntegerは 使わないこと。 【 補足 】テキストに入力されている数値は整数で、最大桁数は100桁
その数値が記述されているテキストは空白区切りなのかカンマ区切りなのか
486 :
484 :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 】指定なし 【 補足 】 丸投げです。 よろしくお願いします。
>>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();
}
}
}
489 :
488 :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(); } } }
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]; }
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(); } }
以上。 実行は java Q484 ファイル名 クラス名は適当に変えるべし
【 課題 】コラッツの予想の数列をプログラムで実行せよ 【 用語 】コラッツ予想=任意の正の整数nに対して,それが 奇数なら3倍して1をたす, 偶数なら2で割る. その結果に対して,同じことを繰り返す.結果が1になったら終了 【 期限 】11/3 【 ver 】 1.4 いろいろググってみましたが見つかりませんでした・・・。 お願いします。
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朝
>>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);
}
}
>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(); } } }
>>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);
}
}
499 :
496 :2005/11/01(火) 20:34:53
500 :
495 :2005/11/01(火) 20:49:42
>>498 有難うございます!
こういうのをわかりやすく解説しているサイトや本はないでしょうか
501 :
デフォルトの名無しさん :2005/11/01(火) 20:56:29
>>474 ○×ゲームを依頼した者です。
今動かそうとしてみましたが、どうもエラーが起きてコンパイルできないみたいです
503 :
454 :2005/11/01(火) 21:05:24
どうせまたJDK5.0がらみだと思います。 JDKの最新版入れて動かしてください。 ルールの > 5:もし回答プログラムがアップされたら、その返答と動作報告をお願いします。 は「動かなかったらエラーメッセージの詳細な内容も載せろ」というのを追記した方がいいな。
504 :
487 :2005/11/01(火) 21:09:53
ありがとうございました。 助かりました。
505 :
デフォルトの名無しさん :2005/11/01(火) 22:30:46
あれだな、普通に業務やってるけど 名前とかインデントとか大事だなw Sample5とかいうクラス名見ただけでモチベーションが。。。
いや、まだいい sample5のほうが萎え
508 :
デフォルトの名無しさん :2005/11/01(火) 23:12:13
>>506 そこをなんとか
でも俺の行ってる大学ってやっぱダメなんですかね。
正直食っていければなんでもいいんですけど、将来情報システム系の職に
就けるのか疑問です・・。
GetXXX() は見たくねェ
>>505 課題とかじゃなくてこれそのまま答えだと思うぞ。
classごとそのままペーストしてコンパイルして
sample5よべば4と3が表示されるが考察すれということなのか???
513 :
デフォルトの名無しさん :2005/11/02(水) 00:58:37
【 課題 】Appletでのマルチスレッドを利用した複数画像によるアニメーションを作成せよ。 【 期限 】今日中 【 Ver 】1.4.2 【 補足 】一応自分でやったのですが、エラーが出ます。ネットワーク上の画像を読み込むときは どうたらとか言われた気がするのですがよくわかりません。どなたかよろしくお願いします。
514 :
513 :2005/11/02(水) 01:08:54
課題内容の補足です。作成するAppletは、ネットワーク上の複数画像ファイルを読み込んでアニメーションを実行させるものです。
515 :
511 :2005/11/02(水) 01:34:38
javaって難しいですよね。
http://page.freett.com/yszkjnt/java/inp_main.html のように簡単に書いてくれると理解しやすいんだけど。。
お金もないし、バイトしなくちゃいけないし、少し難しいまで
上のようなサイトのように簡単に分解して書いてあるようなおすすめの
本があったら、是非教えてくださいまし・・。わかりにくいのやってると
追い詰められて絶死状態になります。あと、今大学3年なんですが、
こういうのを勉強していて、どのようなところに就職できるのでしょうか?
より分かりやすくて簡単で、給料が良くてスペースが広い、みたいな。
学校は席のスペースも狭いし、わかりにくいことをバンバンやるのが嫌なんです・・
今は株やっているんで、いつかは株優先で暮らすのが理想なんですけどね・・
スレ違いすみません。スーパーダメ人間の愚痴でした。
この書き方が読みにくくして難しいだけ とにかくエクリプスにこぴぺした後 コントロール+シフト+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>より前の、ボタンやパスワードなどをログイン画面に表記するところまでは分かっているのですが、回数を表示させるところが分かりません。
519 :
484 :2005/11/02(水) 09:35:48
520 :
454 :2005/11/02(水) 22:03:03
>517 5つのファイルに分かれているということを分かりやすく伝わるようにしたつもりでしたが 無理でしたか。。 TicTacToe.javaは273行もありません。
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
523 :
454 :2005/11/02(水) 23:23:16
>522 >503 ×Cpu ○CPU ×Erorr ○Error コピペぐらいちゃんとできるようになってください。
524 :
○× :2005/11/03(木) 00:27:39
>>523 すいません、コマンドプロンプトで打ってるのでコピペできなくて・・・
確認してみます
525 :
sage :2005/11/03(木) 08:36:58
Microsoft Windows XP [Version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:\java> コマンドプロンプトのこぴぺ…
あげてしまいましたorz
>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>
【課題1】 次の仕様を満たす相性占いプログラムを作成し、自分と、出席番号が次の人(以下、相手)の相性を判定せよ。 (Uranai.javaとUranaiApp.javaを提出) * クラスUranai フィールド * 名前(ひらがなが並んだ文字列) * 名前の各文字をそれぞれ1〜5に置き換えた数字の列(1〜5の数字が並んだ文字列) あ,か,さ,... → 1 い,き,し,... → 2 う,く,す,... → 3 (以下同様) メソッド * 表示 ... "私の名前は〜です"と表示する。 * 判定 ... 自分と相手の相性を判定して表示する。 1. 引数で、Uranaiクラスのインスタンス(相手)を一つ受け取る。 2. 自分の数字列と相手の数字列を連結して長い数字列を作る。 3. 手順2で作った数字列を引数として、次の計算メソッドを呼び出し、相性の計算を行う。計算メソッドの結果を適当な変数に入れておく。 4. 変数に入れておいた計算結果を、"私と〜の相性は〜%です"と表示する。
【課題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の逆)
【課題2】 Uranaiクラスに以下の仕様を満たすstaticな判定メソッドを追加せよ。 mainメソッドにその動作をテストするコードも追加すること。 (追加した部分のソースを提出) * 名前はhanteiとする。 * 引数としてUranaiクラスのインスタンスを二つ受け取る。 * 一人目の数字列と二人目の数字列を連結して長い数字列を作る。 * 二人分の長い数字列を引数として、計算メソッドを呼び出し、相性の計算を行う。 * 計算結果を「〜と〜の相性は〜です」と表示する。 【課題3】 また、以下の各メソッドはstaticメソッドとするのが相応しい。その理由を考察せよ。 * Uranaiクラスの計算メソッド * (一般的に)mainメソッド 【期限】 明日の明朝まで 長くなってしまいましたが、どうかよろしくお願いします
532 :
529 :2005/11/03(木) 20:04:55
すみません、期限は明後日の明朝でした。訂正します
頭痛が痛い。
>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はアヤシイなあ。
誰かフォロー頼んます。
>>529 俺がうまれて初めてトライした自作プログラムだ 懐かしい
N88-BASIC だが
537 :
デフォルトの名無しさん :2005/11/04(金) 18:37:09
【 課題 】ファイル操作、イベント処理、GUIを用いてアプレットを使用せずにじゃんけんするプログラムを作成せよ。 【 期限 】11月8日に提出 【 補足 】丸投げですがおねがいします
>537 問題はホントにこれだけ? 何のファイルを操作するのかよく分からないんだけど。。
539 :
デフォルトの名無しさん :2005/11/04(金) 23:55:02
537です。勝敗結果をファイル操作とのことでtexで保存するんですがわかりません
540 :
デフォルトの名無しさん :2005/11/04(金) 23:55:54
すみません。間違えましたtxtで保存です。
>>540 txtに保存するならなぜ最初からそう書かないんだ?
条件は勝手に省略せずに全部書け。
542 :
527 :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ページがあったら是非教えてください。
>537 作ってみたが課題と違う仕様だと恥ずかしいので、課題をそのまま書いたレスください。
544 :
ambig :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();
}
}
547 :
545 :2005/11/05(土) 19:01:38
>>546 氏
動きました!!明日提出の課題だったんで本当助かりました!ありがとうございます。
特にAの穴に該当するコードが意味不だったんでこの回答を参考にもう一度参考書とにらめっこしてみます!
549 :
537 :2005/11/05(土) 21:23:17
すみませんレス遅れました。 イベント処理がマウス操作。GUIが画面表示です。ファイル操作は勝敗結果をTETで保存です。ボタンの数の制限は無いです。 GUIを使用してアプレットを使わずに画面をマウスでクリックするとじゃんけんを開始して勝敗結果をTXTで保存する。とのことです。
550 :
543 :2005/11/05(土) 22:35:32
551 :
529 :2005/11/06(日) 11:30:10
遅くなりました、申し訳ありません。
>>535 無事に動きました。
後で気付いたんですが、本来ならば名前をプログラムで解析するのは上級の課題だったようでした。
お手数をかけたようで申し訳なく思っています。
それでは、本当にありがとうございました。
552 :
537 :2005/11/06(日) 12:14:02
>>550 報告遅れました。本当にお手数おかけしてすみませんでした。
ありがとうございました。
>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()) ); }
554 :
553 :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で。
555 :
548 :2005/11/06(日) 14:36:34
556 :
デフォルトの名無しさん :2005/11/06(日) 15:57:57
助けてください。お願いします。 ■ファイル操作 ■ネットワーク通信 ■マルチスレッド ■GUIとイベント処理 この4つの中から2つ以上を選び可搬性の高いプログラムを作成せよ なんでもいいのでおねがいします
557 :
デフォルトの名無しさん :2005/11/06(日) 16:46:11
>>566 追記
Javaアプレットの使用は認められていない課題なので、使用しないということでお願いします。
提出期限は、11月9日(水)までなのでおねがいします。
558 :
543 :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+"/>
559 :
543 :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
562 :
561 :2005/11/06(日) 20:12:00
563 :
561 :2005/11/06(日) 23:01:44
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
週末のうちに書いておけば答えも得られやすいのにね。 >565 たぶんそのページじゃ答えになってない。
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週間ずっと考えているのですが、ポーカーでは数字とマークがあるのでコーディングの仕方が分かりません。 どなたかお願いします!
日本語の部分だけ読んだ。つまりホールデムポーカーだな
570 :
デフォルトの名無しさん :2005/11/07(月) 12:33:47
テキサスホールデムポーカーのハンドの評価ですね。 ifだけを使ってなら分からなくも無いが、 ループを使ってツリー状に考えるというのが良く分からない。
571 :
561 :2005/11/07(月) 15:17:58
>571 あなたの場合は途中まで作ったソースコード載せるより、 問題文の日本語訳を載せた方が 回答が得られる可能性がぐっと高くなる。 正直な話、誰も問題読んでないと思うよ。
573 :
561 :2005/11/07(月) 23:34:16
GUI系は面倒くさいから回答率低いよ。
575 :
561 :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日)までの学校の課題です。どうしてもわかりません どなたかご教示ください
578 :
デフォルトの名無しさん :2005/11/08(火) 22:26:37
579 :
576 :2005/11/08(火) 23:36:51
>>577 やっぱりそうですよね?俺も殆どって言うか絶対「現在です」にはならないと思うんですけど・・・。
っていうことはコンパイル出来てれば問題ないっすかね?
581 :
578 :2005/11/09(水) 02:19:34
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(); } を参考にする。
【 課題 】Javaでゲームを作成する。 戦艦ゲームで対戦できるものといわれました 【 期限 】11月末 【 Ver 】 【 補足 】丸投げです、自分でなんとかしようと思いましたが、全然知識不足でした
586 :
デフォルトの名無しさん :2005/11/10(木) 18:54:03
>>585 「戦艦ゲーム」って具体的にどうすんのよ
どういう操作をする、だとか説明不足
587 :
585 :2005/11/10(木) 21:01:45
>585 本当に「戦艦ゲームで対戦できるものを作ってこい」と言われただけなの? >こんな感じ じゃあプログラムは作れません。
589 :
585 :2005/11/10(木) 22:02:52
自分でもう少し努力して形にしてみます、ありがとうございました。
590 :
デフォルトの名無しさん :2005/11/11(金) 00:35:10
System.out.println("これは戦艦ゲームです"); これでいいんじゃねーの 4行くらいで書けるな、すごい!
>>591 ぶっちゃけ初めて聞いた。
ところで、このゲームは面白いのか?
イマイチぴんとこないんだが(´・ω・`)
>>592 面白いっつーか、Pongとかみたいにむかーしからあるから
サンプルとして使いやすいんでない?
リアルタイム処理いらないし。
594 :
デフォルトの名無しさん :2005/11/11(金) 14:25:40
>>591 漏れも初めて聞いたよ・・・初心者だけどw
作ってみるお!
二次元配列でサクっとできそうだ
これ人間vsCOMでやるんだよな
COMももちろん行動するんだろうなぁ・・そこだけが怪しいw
とりあえずCOMは動かないってことで作る!!
【 課題 】 実行結果が 「行列 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日 【 補足 】よろしくお願いします。
>>591 本筋から関係ないが補足
もともとの名前は 「BattleShip」 なので、実は「戦艦ゲーム」が正しいっぽい。
599 :
デフォルトの名無しさん :2005/11/12(土) 10:49:35
Java質問・相談スレッドからこちらへの書き込みをするよう促されましたのでこちらに書かせていただきます。 九九の表を作るにあたって問題なのですが、1〜3のみの数字しか使えないという制限があります。 3までの数字でどうやって1から順に9までの数字を作るのかがわかりません。 プログラム的にはちゃんと動いてます(ループ文でループ回数を9にするとちゃんと回る) 数学の問題に近いですがループなどの事の説明もありますのでこちらで質問させていただきました。 よろしくお願いします。
>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以上使わない方法を教えてください。
教えてもらう身なのに、条件を増やしたりすみません。
604 :
603 :2005/11/12(土) 12:27:32
自己解決しました。 ご迷惑おかけしました〜。
>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ページへジャンプとか、 そういう感じです. 誰かお願いします
607 :
603 :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
609 :
603 :2005/11/12(土) 13:19:39
>>608 素晴らしい!
そして、本当にプログラムと数学の面白さを感じます。
自分が届かなかった未知の場所から手を引っ張ってもらって登った気分です。
【 課題 】 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); にしてください あとこれだけだと、改行の部分が欠けてますよ
>>610 >System.out.print(i+" ");
iをjに変更
>>612-613 出来ました!有難うございます
どうしてそうなるのかは解りませんが…
(これのフローチャートを書こうとしたのですが、出来ませんでした)
とにかく有難う御座いました
どうしてそうなるか解らないなら プログラマなんてやめたほうがいいんじゃないか?と 心底おもったよ
>615 「プログラマになりたい」なんて>610は言ってないじゃん。
617 :
デフォルトの名無しさん :2005/11/12(土) 23:51:21
じゃあ、なぜJavaなんか勉強してるの?
618 :
デフォルトの名無しさん :2005/11/13(日) 00:05:06
javaSDKの最新版頂戴
>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 [期限]水曜日
[補足] 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]); } } } ここまでできました。
>>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]);
}
}
}
>>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
>>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 という問題を誰か解いてください。お願いします。
【 課題 】128×128のTGA形式の画像データがある。 これを読込み、その内容を全てコンソール画面に出力せよ。 尚、ランレングス圧縮はされていないものとするが、対応した場合加点とする。 【 期限 】11月21日 18時 【 Ver 】 1.5 【 補足 】丸投げですorz 内容を全て出力ってのはtgaのフォーマットの表示と RGBAデータを16進数表示で表示しろってことらしいです。 ランレングスとかtgaってなんですか状態です。
631 :
デフォルトの名無しさん :2005/11/14(月) 01:15:31
>>626 ありがとうございます。
勉強になりました。
じゃんけんゲームを作成せよ。 お願いします。
以下の配列を並べ替えるプログラムを作成せよ。 int[] date = {98,45,13,26,24,17,36}; こういうの地味に苦手・・・。 どなたかお願いします・・・。
>>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以前とか) 【 補足 】何かヒントのようなものをいただけたら幸いです(;_;) よろしくお願いします。
つjava.lang.String.split()
637 :
デフォルトの名無しさん :2005/11/14(月) 11:16:43
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を使う。郵便番号の問題だと思います。 なにとぞよろしくお願いいたします。
>>633 コンパイルは成功するんですが出力されません。
だれかこの謎を解いてください…。
与えられた数値の数だけ「*」を出力するプログラムを作成せよ。 数値は引数で一つ与える。 どなたかこれお願いします…。
【 課題 】以下の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を利用(継承?)させようとするとき、どうすればいいのでしょうか。 よろしくお願いします。
642 :
637 :2005/11/14(月) 15:23:32
出力である、System.output.println〜 が沢山あるので、 toStringの出力方法だと全部をまとめられないのですが、どのように一つにまとめて出力するのでしょうか?
つjava.lang.StringBuffer
int[] data = {10,11,12,50,4,3,2,1}; このデータを使って最大値、最小値、合計、平均を求めるプログラムを つくりなさい。 どなたかおねがいします…。
以下の数値を並べ替えるプログラムをつくりなさい。 int[] data = {43,23,1,42,2,56,73}; これ、どなたかお願いできますか?
>>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
引数あるかどうかのチェックは自分で入れてね
647 :
646 :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に直してください。
>>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);
}
}
>>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));
}
}
>>651 ありがとうございます。
でもなんか文字化けしていました;
>>653 下のようなエラーがでてしまうのですが・・
TextEditor.java:45: シンボルを見つけられません。
シンボル: クラス PopupMenuListener
場所 : TextEditor の クラス
popup.add(paste); ta.setComponentPopupMenu(popup);
popup.addPopupMenuListener(new PopupMenuListener() {
^
注: TextEditor.java は推奨されない API を使用またはオーバーライドしています。
注: 詳細については、-Xlint:deprecation オプションを指定して再コンパイルしてくだ
さい。
エラー 1 個
655 :
651 :2005/11/14(月) 23:33:27
>>654 Java2SE5.0 使ってますから…
前提条件でJavaのバージョンを書いていない君がわるい…
ということで後はがんばってください。
>>656 public static void main(String[] args) {
new TextEditor("TextEditor").setVisible(true);
}
>>657 ありがとうございます。
注意のほうが消えました。
できればどなたか、jdk1.5.0_05用でコピー、貼り付けなどの
機能を付加してください。よろしくお願いします。。。
659 :
657 :2005/11/15(火) 00:53:41
660 :
デフォルトの名無しさん :2005/11/15(火) 00:58:15
【 課題 】次のようなJavaアプレットを作成してください. ・画面上に5x5程度のマス目を表示する. ・乱数を使って,マス目のいくつかに地雷を埋めておく.この地雷は表示されない. ・マス目がクリックされたら,次の処理を行う. ・そこに地雷があればゲームオーバーです.何かメッセージを表示してください. ・地雷がなければ,クリックされたマスの周囲のマス(8個)に隠れている地雷の数を数えて, そのマスの上に表示する.プレイヤーはそれをヒントに地雷の場所を推測することになる. ・地雷以外の場所を全てクリックできたら「成功」です.何かメッセージを表示してください. ・アプレットの回りに簡単な遊び方を記述すること(HTMLで). 【 期限 】来週の火曜日(22日)夕刻。 【 補足 】丸投げで申し訳ないですがよろしくお願いします。 それと解答してくださる方々に質問があります。 どのような勉強をすればある程度難しめのプログラミングでも できるようになれるのですか?
>>659 はい、
public static void main(String[] args) {
new TextEditor("TextEditor").show();
}
を657さんのにしたら、注意が消えました。
で651さんの文字化けした文字を直して実行してもやはり文字化けしてしまいます
エラーもえりますし。。
663 :
637 :2005/11/15(火) 09:31:00
664 :
デフォルトの名無しさん :2005/11/15(火) 10:13:16
>638 の問題で文字列操作で判定するとどうなるんですか?? >646さんが書いてるのは正規表現での判定ですよね?? だれか教えてください。。
>>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;
}
}
}
動作確認はしてない。
>>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;
}
}
動作確認はほとんどしてない。
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);
でけまへた。
672 :
デフォルトの名無しさん :2005/11/17(木) 02:51:06
【課題】入力した数の段数の数だけピラミッド型に*を表示させるプログラム EX)入力した数が7→ * *** ***** ******* ********* *********** ************* 【期限】11月29日 【Ver】1.5 【補足】for文の使用をお願いします 私の力ではどうしても期限に間に合いそうに合いそうにないので、申し訳ありませんがお願いします 後でやってみたいと思っていますので初心者程度でもわかるソースで書いて頂けたら助かります。 よろしくお願い致します。
673 :
デフォルトの名無しさん :2005/11/17(木) 02:52:55
>>673 のものです
三段目の*が貼り付けした為ズレています、申し訳ありません。
全て中央揃えとなります
よろしくお願いします
>>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 を例として教えてください。
よろしくお願いします。
【 課題 】以下のプログラムで、最大値、最小値を表示できるようにする //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); }
678 :
2 :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); }
679 :
3 :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); } }
680 :
4 :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; }
681 :
5 :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){} }
682 :
6 :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 【補足】 丸投げです。 よろしくお願いします。
>>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
688 :
デフォルトの名無しさん :2005/11/18(金) 10:26:41
>>672 をひし形で出力するには
FOR文をどうやっていじったらよいのですか?
どなたかよろしくお願いします。
早めの返答お願いします。
>>688 ていうか
>>683 丁寧にコメント付きでうぷしてくれたんだから
そのくらいの応用は自分で出来ないと・・・。
>>690 for文とかの程度で掲示板に質問してるアホじゃ無理だと思われ.
このくらいだったら自分でコード書いて実行を繰り返したほうが
回答待つより早いぞ.
692 :
デフォルトの名無しさん :2005/11/18(金) 14:48:18
>>688 683だけど。
単純に同じ数値の倍の段数のひし形出すならそう難しくはないけど、
指定した段数のひし形を作ろうとするなら若干面倒臭い。
いくつかif文での指定が必要になると思う。
693 :
683 :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(); } } }
694 :
683 :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にどんな数値を入れても表示出来るもっと実用的なタイプで作ることも出来るのだが、 そっちの方は興味を持ったら自分で考えてくれ。
695 :
663 :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. どなたかお願いします。
>>696 Connector for J使わないとダメ?
>>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.");
}
}
699 :
698 :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 【補足】 丸投げです。 よろしくお願いします。
public class OKKadai110702 { public static void main(String[] args){ for(int i = args.length-1 ; i >= 0 ; i--) { System.out.println(args[i]); } } } この業界にはこないでね(ハアト
702 :
696 :2005/11/20(日) 00:19:41
>>698 ありがとうございました。助かりました。
>(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問表示させるプログラム を組むことが出来ているかを評価の対象とする。 大学の授業で興味半分にプログラミングの授業を選んだ愚 か者です。まったく分からずお手上げ状態です。まことに 申し訳在りませんが、力を貸してください。 卒業かかってるんで…お願いします!!
ja-na
これはひどい。
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が混ざるまでの繰り返し回数を調べる」とはどういうことでしょうか? 実行するたびに実行結果が変わるのですが。
【課題】 前回の課題を以下の様に改良せよ。 ・JFrameのサブクラスを作成しそのコンテントペインに前回作成したパネルを 載せること。 ・ウインドウ上部の×印をクリックウインドウを閉じたときにプログラムが終 了するようにウインドウリスナーを登録せよ。リスナーは匿名内部クラスにす ること。 ・メニューバーを実装し、「ファイル」→「終了」を選択するとプログラムが 終了するように。「ヘルプ」→「バージョン情報」を選択するとメッセージダ イアログが表示されるように。「終了」と「バージョン情報」について、それ ぞれキーボード入力Ctrl+xとCtrl+Shift+vでも実行されるようにし。なおか つリスナークラスを独立したクラスにしなさい。 ・さらに全てのリスナークラスを適切と思われるクラスの内部クラスにせよ。 ・グラフ描画パネル上でマウスを左クリックすると定義域が半分に(描画が横方向に拡大)なり、右クリックすると定義域が2倍に(描画横方向に縮小)なるようにせよ。最小値は固定したままとする。 ・javax.swing.Timerが一定感覚で起すアクションイベント利用してグラフを一定速度動かせ 【 期限 】11月21日 【 補足 】途中までは自力でやったのですが、どうにもなりませんでした。 丸投げしたいのですが、ソレをすると自分で理解ができないと思うのです。 わがままかも知れませんが自分の作ったプログラムを改良していただきたいです。
709 :
708 :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); }
710 :
708 :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); }}
711 :
708 :2005/11/21(月) 00:07:53
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 】なし 【 補足 】なし 丸投げですがよろしくお願いします!!
716 :
超初心者 :2005/11/21(月) 20:13:51
課題『☆☆☆☆☆で表現されたバーを回転させながら横に移動させてみよう』 用語なし 期限は明日まで。 補足:windowsでlcc-win32っていうコンパイラ使ってます。chinou.3をインクルードしてCprint(x,y,文字列);っていうのを使うみたいなんですけど、お願いします!!
【 課題 】 生年月日と計算したい年月を入力し 身体、感情、知性のバイオリズム数値を計算し グラフを表示させよ。 【 用語 】 身体のリズムは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の文字ボタンを用意し,それを押すと数値を入力する窓のどちらかに数字をセットできるようにせよ。できれば,電卓のように,数値を押すたびに右側に数値が付け加えられていくとよい。
お願いします。
>>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 );
}
}
こんなんでいいの?
>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");
723 :
722 :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){ //今回はお休み }
724 :
722 :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); }
725 :
722 :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 【 補足 】初心者スレで聞くか迷ったのですが、宿題なのでこちらに書かせてもらいました。
>>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("数字の形式が正しくありません。"); } } }
>730 4行目のnewとInputStreamReaderとの間のスペースが全角だった以外は普通に動くんだが。
732 :
730 :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 【 補足 】特に、「一人の学生に対応するオブジェクトを生成する構成子を定義」というところが分かりません。 よろしくお願いします。
>>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); } }
>>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; }
}
>>736 参考にって…オープンするだけのウィンドウってそれでもう出来てない?
739 :
736 :2005/11/23(水) 15:51:19
Frameクラスを作成するのが宿題なんですけど・・・
【 課題 】 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); } } ↑足し算を実行する関数が、引数を持つように直せ。 【 期限 】今日中 【 補足 】本を読んだりしていますが、引数自体がまだ余り理解出来ていないため丸投げです よろしくお願いします
>>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を理解できておらず丸投げです。よろしくお願いします。
747 :
741 :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化したいです。 コンパイルするとシンボルが解決できませんっていうエラーが・・ おねがいします。
750 :
749 :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);
}
}
}
752 :
751 :2005/11/23(水) 18:47:19
追記 line.substring(1) は""で括っちゃ駄目よ
753 :
749 :2005/11/23(水) 18:53:03
>>751 ありがとん!javaを初めて一週間。プログラムって難しいね。
頑張ります。
何でみんなEclipseとか使わないの? アホなの?
755 :
デフォルトの名無しさん :2005/11/23(水) 19:45:21
Eclipse?何だ?
アホじゃなかったらこんなとこになんかきません。
そんなの使ってるの軟弱者だけ
758 :
デフォルトの名無しさん :2005/11/23(水) 20:10:34
【 課題 】EOFException例外を発生させ、catchで補足せよ 【 用語 】なし 【 期限 】11/24(水) 【 Ver 】なし 【 補足 】簡単なプログラムでお願いします!! 丸投げですがよろしくお願いします!!
>>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 こんな風にする方法です。
>>760 appletviewerをコピーしてappvにリネーム…使えるかどうか知らんがな
>>760 $ ln -s appletviewer appv
>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
766 :
デフォルトの名無しさん :2005/11/23(水) 21:45:54
>>764 >>デフォルトの名無しさん
>764
764さん、ありがとうございます。このソースみてやっと理解できました。
本当にありがとうございました。
767 :
764 :2005/11/23(水) 21:54:01
初めて宿題に答えたんだが、礼を言われるっていうのはすばらしいもんだな。 >766も頑張ってJAVA勉強して、このスレで答えられる側に回ってくださいな。
>768 ああ、確かにいらないorz そのままgetName(i)ってやればいいな。 正直すまんかった。。。
770 :
デフォルトの名無しさん :2005/11/23(水) 22:59:55
【 課題 】次のプログラムを作成せよ ・3行、2列のGridLayoutで、5つのラベルコンポーネントを配置 ・表示されるウィンドウの位置は100、200の位置になるようにする 【 用語 】なし 【 期限 】明後日 【 Ver 】なし 【 補足 】○投げですがよろしくお願いします。
>>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
>>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 【 補足 】丸なげで申し訳ありません。 まだ習い始めたばかりの初心者ですので、簡単なソースで作って頂けると幸いです。 どうぞよろしくお願いします。
>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; }
778 :
777 :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; } }
779 :
772です。 :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); } }
>>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の補足 まだ習い始めたばかりの初心者ですので、 簡単なソースで作って頂けると嬉しいです。 宜しくお願いいたします。
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); } }
785 :
784 :2005/11/24(木) 14:27:38
>>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("処理終了");
}
}
788 :
787 :2005/11/24(木) 15:32:31
ああ、問題の意味を取り違えてただけだわ。 どちらにしても簡単だろう。 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("処理終了"); } }
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("処理終了"); } }
791 :
728 :2005/11/24(木) 18:34:08
遅くなりましたが
>>729 さん有難うございました。
なんとか提出の方も間に合いました。
本当に有難うございました。
792 :
779 :2005/11/24(木) 21:52:09
>>780 初心者なので勉強不足でした。ローカルディスクに保存できなくても良いので、
アプレットに表示するプログラムを希望します。
793 :
デフォルトの名無しさん :2005/11/24(木) 22:06:53
794 :
782の者です。 :2005/11/24(木) 23:17:33
>786さん、789さん、790さん ご丁寧にありがとうございます。 いくつかの回答も作って頂いて、本当に参考になります。 本当にありがとうございました。 これからも何かあれば、宜しくお願いします。
795 :
デフォルトの名無しさん :2005/11/24(木) 23:27:48
AppletやJFrameなどのGUIにJButtonなどのコンポーネントを追加したとします。 これらのコンポーネントの配置をレイアウトによって変える方法はわかったのですが、直接各コンポーネントの位置を座標などで指定することはできないのでしょうか? 一応調べてComponentクラスのmoveメソッドなどを見つけて試してみたのですがうまくいきませんでした。 どなたか、教えてください。
>795 JFrameとかAppletで、Applet#setLayout(null)にして、 Component#setBounds()使えばいいんジャマイカ?
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を指定したら例外を吐き出されました。何が悪いのでしょうか?
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さん、ありがとうございました。
>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 【 補足 】丸投げになります。お願いします。
804 :
デフォルトの名無しさん :2005/11/25(金) 17:40:20
【 課題 】10進数,8進数,2進数をそれぞれ1文字づつキーボードから入力し それぞれを、文字に変換しなさい。 【 期限 】26/朝 【 Ver 】1.5 【 補足 】丸投げになります。お願いします
>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
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
>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 いえ、こちらこそ勉強不足ですいません。親身になってくれてとても嬉しいです。
今実行しましたが大丈夫でした。本当に感謝しています。
>814 それだと8進数が129とかでも通るよ。 ch = (char)Integer.parseInt(str,8); でNumberFormatExceptionあたりをcatchしておけば良いと思う
>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の仕様知らない奴多くない?
教える側が勉強怠けてるんだろ
822 :
デフォルトの名無しさん :2005/11/26(土) 15:07:55
>>819 PackageExplorerを開いて、ファイルを読み込みたいところを右クリック。
ImportからFileSystemを選ぶ。
あとは簡単なので略。
PackageExplorerの開き方がもしわからんなら、
WindowメニューからShowViewを選んで、PackageExplorerを押す。
823 :
801 :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
827 :
825 :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)にしてもファイルの全てを表示してくれません。
>>827 DataInputStreamでなくFileInputStreamを使うといいよ。
829 :
825 :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(); しかし、データ量が多すぎて全ては表示できませんがね。
830 :
825 :2005/11/27(日) 02:00:06
表示されないのでファイル出力にしました。 解読分に“)”が大量表示されるのは、多分スレ違いなので、教授に聞いてみます。
【 課題 】 【 期限 】 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 よろしくお願いします
>>831-832 スペード "\u2660"
クラブ "\u2663"
ハート "\u2665"
ダイヤ "\u2666"
でどうかな?
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)の違いが良く分かりません。 よろしくお願いします。
(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(); } } }
837 :
819 :2005/11/27(日) 14:36:15
>837 >拝見しました。素晴らしいサイトですね! 何か勘違いしてないですか??
839 :
デフォルトの名無しさん :2005/11/27(日) 14:49:30
>>833 スペード "\u2660"
クラブ "\u2663"
ハート "\u2665"
ダイヤ "\u2666"
にした理由って何??
>837 >826は前からあったサイトなんかじゃなくて、 826の人が作ってソコにソース貼り付けてくれたんだよ。
>>839 Unicodeでのトランプのマークだけどなんか変?
842 :
デフォルトの名無しさん :2005/11/28(月) 07:44:03
例えば、 num a=1; String str = ”文字列”; このstrに数字をaの値を入れるにはどうしたらいいですか? String str = ”a”; としたらstrには文字列aだから、ダメなのですが。 int型のaに代入された値をstrに文字列として入れる方法を教えてください。
str = (quick-)a.secondaryException(custom);
844 :
960 :2005/11/28(月) 07:59:36
846 :
デフォルトの名無しさん :2005/11/28(月) 08:07:24
>>843 式の開始が不正です。
str1 = (quick-)a.secondaryException(custom);
と、エラーがでます。
(quick-)aのaとはnum a=1; で宣言したaですよね?
847 :
819 :2005/11/28(月) 11:00:30
>>840 わかってます。言い方が悪かった。
826さんには感謝してます。
>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() を使い、週の最初の日が何であるかを取得して
年/月/日、曜日を求めろ。
丸投げです。すみません。どなたかよろしくお願いします。
【 課題 】オセロ作成 【 期限 】12月1日お昼 【 Ver 】Verの指定はありません。 【 補足 】丸投げです。 出来ればオリジナル要素を加えてお願いしたいです。(碁盤がオリジナルなど) オリジナルは無くてもかまいません。 加えていただける場合は簡単でも難しい要素でも大歓迎です。
思考はいらないんだよな?
>>850 オセロはネット上に山ほど転がってるけど・・・
853 :
デフォルトの名無しさん :2005/11/29(火) 01:22:15
【 課題 】 クラスCarを作成し、さらに内部クラスEngineを作成しなさい。 Carにはdrive()メソッド、Engineにはrotate()メソッドを実装してください。 drive()メソッド内でrotate()メソッドを呼び出す処理を記述してください。 rotate()メソッド内では「エンジンが回っています」と表示して、確認できるようにしなさい。 【 期限 】今週金曜日 【 Ver 】 指定なし 【 補足 】丸投げですが、誰かお願いします。
>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アプレットでチェックボックスを指定の座標に配置する場合、 どうすればいいのでしょうか?だれか教えてください。お願いします。
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で塗りつぶせる)
数値を直接入力して,角数を指定できるようにせよ。
中級編
他に何か気の利いた機能を考えて追加せよ。
お願いします。
【課題】 以下の仕様を満たす、整数の可変長配列クラスを作成せよ。動作をテストするメインクラスも作成すること。 *フィールド ・整数の配列 ・最大の要素数 ・(実際に値が格納されている)要素数 *メソッド ・コンストラクタ ... 引数として最大の要素数を受け取り、その大きさの配列を生成する。 ・要素追加メソッド ... 引数として整数を一つ受け取り、現在までに格納されている要素の最後に格納する。追加できない場合はエラーメッセージを表示する。 ・最大要素数のゲッター ・要素数のゲッター ・全表示メソッド ... 配列に格納されているすべての要素を表示する。 期限は明日までです。最低限の機能のみでよいので、どなたかお力添えしていただけると幸いです。
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
自分に礼とはいい身分だな。
>>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 】 指定なし 【 補足 】丸投げですが申し訳ありません。本当に困っています。お願いします。
867 :
850 :2005/11/29(火) 15:53:00
>>851 思考は不要ですが、二人対戦を出来るようにしていただきたいです。
ネットを探しましたが、今まで調べた結果
ソースはCPU対戦ばかりでした。
869 :
デフォルトの名無しさん :2005/11/29(火) 21:39:57
ぬるぽ
870 :
866 :2005/11/30(水) 00:52:14
>868 ありがとうございます!!
871 :
デフォルトの名無しさん :2005/11/30(水) 18:58:40
読み込んだjpg画像(黒で4つに区切られた画像・・・田んぼの田みたいな感じ)を黒の中の色情報を得たいのですが、良い方法教えてください。 画像の周りは白です。 白白白 白田白 白白白 こんな感じです。もちろん田の中は何ピクセルかは決まってません。田の中の4つの色情報を得るには、左上から1ピクセルづつrgbの値を読みこむのは出来るのですが、黒の中の色情報を得るのが難しいです。 意味不明な質問かもしれないけど、お願いします。
>871 マルチかよ・・・ アァーいっぺん逝けばいいのに〜
873 :
デフォルトの名無しさん :2005/11/30(水) 19:31:52
マルチ悪イノ?
874 :
866 :2005/11/30(水) 20:28:25
【 課題 】 課題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だと思います 【 補足 】すいません、丸投げです。よろしくおねがいします
876 :
875 :2005/11/30(水) 20:49:34
>>863-865 ありがとうございます。
無意味なゲッターは最近習い始めたもので、意識して使うよう教えられているからです。
「inport java〜」の辺りが未知だったもので、遺憾ながらソースを削らせて使用させてもらいましたが、無事に動作いたしました。
879 :
875 :2005/11/30(水) 23:05:15
>878 修正の仕方がわからなかったのです、申し訳ない。 書き方が悪かったと思いますが、Ex9B_1.javaは今回の課題の名前です。
>879 じゃあ>875の >課題1.前回の課題プログラムEx9B_1.java をアプレットに改造しなさい. はなんですか?
882 :
デフォルトの名無しさん :2005/12/01(木) 03:17:22
【 課題 】(【 補足 】に書いたプログラム)の空白部分を埋めて,動くプログラムを作り,実行を試すこと. Jankenクラスを継承したGooJankenというクラスを作り,そのメソッド nextHandを次のように再定義せよ. グーを50%の確率で出す. チョキとパーはそれぞれ25%の確率で出す. クラス定義の先頭は,次のようにする. class GooJanken extends Janken { このGooJankenとJankenが戦うようにPlayJankenを書き換えて (この場合は継承でなく,実際に書き換えればよい),結果を比較せよ. 【 期限 】12/4 【 Ver 】1.4 補足は長いので次へ。
【 補足 】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)ここを埋める } } お願いします。
>>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 "";
}
}
>>883 //(2)ここを埋める
for(int i = 0; i < n; i++){
me.nextHand();
you.nextHand();
System.out.println("わたし:" + me.getName() + " あなた:" + you.getName() + " けっか:" + me.match(you));
}
>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)); } } }
887 :
801 :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]); } }
888 :
875 :2005/12/01(木) 14:11:15
>880 >課題1.前回の課題プログラムEx9B_1.java をアプレットに改造しなさい. はなんですか? 見直してみたところ実際配布された課題の資料では、配布資料が間違っています。 今回の課題がEx9B_1であり、前回の課題がEx8B_1でした。 宜しくお願いします。
【課題】 請求金額、利子、支払い回数を入力したら、 (この場合、請求金額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メソッドを使って出力せよ。
890 :
889 :2005/12/01(木) 17:11:16
891 :
889 :2005/12/01(木) 17:12:55
892 :
foo :2005/12/01(木) 17:17:47
JMenuなどで作るメニューを縦に表示できないんですか?
>>890 金額をdoubleで計算してるから小数点3桁以下の端数が出てるのではないかな?
894 :
889 :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にならないとストップしなくなっています。
>>894 loanAmount = 0.001 とする。
System.out.print(" " + df.format(loanAmount)); 表示は 0.00
while (loanAmount > 0) { は 0.001 > 0 で当然ループは続く。
>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で回すとか配列に予め保存するのを増やすとかは適当に改造して
897 :
889 :2005/12/01(木) 19:26:30
>>895 なるほど。
なら、loanAmountもintかlongの変数を使ってやれば良いのでしょうか?
ただ、Math.powを使わないといけないのですが、どのような方法を使えば、
Math.powも使って12までで止める事が可能なのでしょうか?
>897 ん〜 while(loanamount > 0) のところを while(loanamount >= 0.1 && numberofPayments <= 12)に変えれば大丈夫じゃない? 回数も12回で止まるし、0.01以上だから0.01とかなら終わるし。
>>897 >(残りの請求金額 * 利子)/ (1 - Math.pow(1/(1+利子),回数))
利子計算は端数処理の問題がついて回るからこういう計算式を実際に使うことはまずない。
それを承知で宿題の問題を出している以上、支払い回数だけでループさせていいと思うよ。
900 :
デフォルトの名無しさん :2005/12/01(木) 23:50:34
901 :
889 :2005/12/02(金) 01:24:47
>>898 ,899
レスありがとうございました。やってみます。
toStringの出力なのですが、どうしても(上の例だと)12しか表示されません。
もう一度、numberofPayments++; を使って1から順番に表示させていきたいのですが、
どのように表示させたら良いのでしょうか?
902 :
889 :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 と表示されます。どうやら、利子計算なしで単純に残りの請求金額だけ払っているようです。
【 課題 】Javaによるポーカー作成 【 期限 】12月 3日 【 補足 】丸投げですが、一定のコインを払い、役柄の倍率によって習得するコインが変わるように、 DQのポーカーのような感じにしていただきたいです。
負けたときは?
905 :
903 :2005/12/02(金) 08:14:12
>>904 負けたときはゲームオーバーと表示させていただきたいです
906 :
875 :2005/12/02(金) 08:30:24
どなたかお願いします。自分でやると根本的に間違っているのかエラーが大量に 出てしまいわかりません(泣
「前回の課題プログラムEx9B_1.java」 これはどこにあるの?
908 :
875 :2005/12/02(金) 10:16:27
前にも書き込んだんですが、配布資料自体が間違っていまして、 前回の課題プログラムEx9B_1.javaではなく前回の課題プログラムEx8B_3.java なのです。お願いします。
んじゃ、 「前回の課題プログラムEx8B_3.java」 これはどこにあるの?
910 :
875 :2005/12/02(金) 10:35:54
間違えてあげてしまいました、すいません。
そろそろ次スレですね
912 :
875 :2005/12/02(金) 10:48:02
913 :
875 :2005/12/02(金) 10:50:24
細かく言えばEx8B_3.javaをいじくってEx9B_1.javaに作り変えなさい。 ということです。課題2はEx9B_1.javaを改良してEx9B_2.javaにしなさい、 ということです。
ああ、分かったよ これから作るから待ってろ っつーか醜いソースだな
「意味の無いコメント」の典型的な例ww
>>911 ギリギリまで使いませう。980くらいまで・・・
【課題】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超初心者です。宜しくお願いします。
>917 Output #1だけど、68よりも77の方が近い気がするんだけど?
919 :
887です :2005/12/02(金) 15:23:54
>896さん 返事をするのが遅くなってしまってもうしわけありません。 ご丁寧にありがとうございました。 おかげ様で無事動きました。 これからも何かあれば宜しくお願いします。
>917 Line #1: 1000, 1000 の場合は? 必ず1つ以上は切るの?
921 :
914 :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側が自分の手を揃えるためにカードを切るような
思考を持たせるプログラムは初心者の俺じゃ出来ないわ。
最初の一手で決まっちゃうようなのじゃさすがにつまらないしね…。
力になれずすまん。
>>924 別に対戦相手(COM)はいらないんじゃないか?
自分でカードを引いて、一度カードを交換。
で、役ができてなければぶー、
役ができていればそれに応じた支払いって感じで良いんじゃないの?
ポーカーのルールが良くわかんないけど。
>>925 あー、DQのポーカーをよく知らないんだけど、あれは別に対戦相手はいないのかな?
それだったら出来ない事はないけど。
いや、カジノのポーカーみたいな感じだと思ってたよ。
んじゃ、頑張ってみよう。
って言うか
>>927 みたいな画像使ったのはまだ出来ないんで、文字だけで作ります。
それじゃ希望に沿えないかな?とりあえず自分の勉強ってことでやってみます。
929 :
925, 927 :2005/12/03(土) 02:43:29
930 :
903 :2005/12/03(土) 10:26:13
>>922 =929
ありがとうございます。
CPUの思考はいらなく、一人でポーカーやってる感じです。
プログラム作っていただいて、感謝します。
>>918 紙に書いてあったのを丸投げしました。
多分、77でも良いのではないか、とは思うのですが・・・。
>>920 はい、必ず1つは区切らなければならないのです。
932 :
875 :2005/12/03(土) 13:35:21
>921 一応Ex8B_1.javaはエラーも出ないで動作したのでいけるものかと思っていました。 計算が間違っていましたか。 指摘ありがとうございます。 お待ちしています。宜しくお願いします
【課題】EpliseでGUI電卓作成 【用語】Java GUI 【期限】期限12月7日 【質問】今の時点では一応電卓らしくはなっているんですが、でも整数しか計算できない 電卓になってます。小数点を付ける場合はどのようにプログラムを かけばいいんですか?教えてください。
とりあえず現時点のを見せろ
ソースの貼り付けはどうやるんですか?
""+int をやめろ。
""+int っていつから流行り始めたんだろね
936の人ですが、どこの""+intですか?Integerのとこかな?
if(!er)jTextField.setText(""+k); ↓ if(!er)jTextField.setText(Integer.toString(k)); こうしろってことだろ
ありがとうございます。小数点はdoubleを使うことはわかってるんだけど、 プログラムの書き方がよくわからないです。教えてください。
>928が逃げた(?)っぽいのでポーカー書いてみたんだが。。 普通に ""+int とか使ってるわ。
944 :
875 :2005/12/03(土) 21:38:05
>939 そうですか・・・その途中までのものでかまいませんのでいただけないでしょうか? そこからどうにか自分でやりたいと思いますので・・・。
945 :
903 :2005/12/03(土) 21:55:54
>>943 わざわざありがとうございます。
それと、期限の事ですが今日までではなく明日まで大丈夫です。
今日完成して明日コンパイルしてエラーがあったら調べるという予定だったので;;
>>942 やり方はいろいろあると思うけど、あまり考えずにやるのなら
数値ボタンを押されたときの状態を保持する変数 l をString(もしくはStringBuffer)に替える。
number(int)をnumber(String)に変える。
enzan() で実際に計算するときに Double.parseDouble() を使う。
とかかねぇ。
947 :
943 :2005/12/03(土) 22:41:35
>946 申し訳ないのですが、可能ならばソースのほうも書いてみてもらえませんか? 丸投げですいませんです。
>>948 変数名とかわかりやすく書き直してくれたらやっても良いが、
今の状態ではいやだ。
950 :
903 :2005/12/04(日) 09:13:45
>>947 画像も作っていただきありがとうございます。
自分で作れそうも無いプログラムだったので、ある程度理解して本番に臨みたいと思います。
ポーカー製作に関わってくれた方々、ありがとうございました。
951 :
943 :2005/12/04(日) 09:31:10
>948 んと、コメント付けるだけでいいのかな?
あ、間違いました。 948の人ですが、プログラムのほうにコメントをつけるだけいいのかな?
>>943 ポーカーやってみたんですが、
カードをクリックすると、選択した左側のカードが
選ばれるのですが、私だけですか?
>>952 インスタンス変数に i j k l といった無意味な文字を使わないでください。
どうしても、演算処理で1 なら +、2なら - ・・・とするのであれば、最低限
private static final int PLUS = 1;
としてください。
読みにくいと直しにくいです。
【 課題 】 アプレットを作成するに当たって拡大、縮小ボタンをセットし、拡大ボタンを押すと縦横幅を1.5倍に拡大し 縮小ボタンを1/1.5倍に縮小する機能を付けた物を作成してください。それにあたって拡大、縮小を繰り返しても 四角形の大きさが最初の大きさに戻るように工夫して作りなさい。 【 期限 】 今日まで 【 補足 】 丸投げ 疑問点は拡大、縮小を繰り返しても四角形の大きさが最初の大きさに戻るように コーディングするやり方がどうもわかりません。
結局、
>>903 のポーカーを作ると予告した人は逃げちゃったのかよ・・・
一番困るパターンだな。
予告すると誰も回答しなくなるんだよ。土壇場でしかも報告もせずに
逃げるんだんて、嫌がらせ以外のなにものでもない。
959 :
957 :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); }
960 :
957 :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(); } }
961 :
957 :2005/12/04(日) 15:51:32
>>959 ,960
一応こうすればできるんですが何か納得いきません
それにあたって拡大、縮小を繰り返しても
四角形の大きさが最初の大きさに戻るように工夫して作りなさい。
の部分を数学的な式で書き換える事はできるんでしょうか?
>>961 簡単だよ。
初期状態を変化させるのではなく、現在どの倍率で表示するか別の変数を用いるんだ。
表示させるときだけその倍率をかけてあげる。
>>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();
}
964 :
957 :2005/12/04(日) 16:03:04
>>963 できました。
そういうやり方もあるのか(´・ω・`)
>>962 ,963
回答ありがとうございます。
965 :
903 :2005/12/04(日) 17:12:17
966 :
デフォルトの名無しさん :2005/12/05(月) 01:05:08
【 課題 】 ノルウェーの国旗のjpeg画像を読み込み、青色の部分だけのRGB値を取得しなさい。 RGB値は配列に入れ、青の部分のピクセル数で割った値を表示しなさい。
967 :
デフォルトの名無しさん :2005/12/05(月) 03:12:06
白黒のjpeg画像を読み込んで、Point p = new Point();を使い、完全に白のところの座標を得るにはどうしたらいいですか?
969 :
875 :2005/12/05(月) 08:27:02
>968 有難うございます!! これはまだアプレットに改良してないのですね。 提出日が火曜の午前12時までなので、もしやっていただけるのならばお願い したいと思います。 もちろん、自分でも出来る限りの努力はしてみます。 宜しくお願いします。
古いな・・・
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 】 指定なし 【 補足 】 丸投げ、お時間があるようでしたら、みなさまよろしくお願いします。
【課題】Ecpliseを用いGUI電卓を作る 【期限】12月7日 【補足】丸投げの状態であります、どなたかお時間あるようでしたら、 ご助力をお願い致します。
Ecplise...
976 :
972 :2005/12/05(月) 16:34:08
>>975 できあがってるとはどういうことでしょうか?初心者なのでさっぱりわかりません
>>972 で示したのは二つのオブジェクトなんですけど
>977 ページを表示できませんって出る。
980 :
972 :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);
981 :
972 :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); } }
ああ、3つか、作り直しだな
984 :
:2005/12/05(月) 19:24:00
986 :
943 :2005/12/05(月) 20:18:33
>955 確認しました。Windowsだとピクセル単位でずれるっぽい。 修正したソースを載せておきました。 DQPokerFrame#mouseClicked()を直しました。
989 :
デフォルトの名無しさん :2005/12/06(火) 17:34:09
>>808 さんのソースに注釈をつけていただけませんか?
よろしくおねがいいたします
990 :
デフォルトの名無しさん :2005/12/06(火) 17:45:11
【課題】Canvasクラスを使い、図形を描画するプログラムを作成。(図形は何でも良い。) その時、レイアウトを用いて、Canvasクラスの上部にLabelクラスを配置し、 描画した絵のタイトルを記述すること。 【期限】12月7日午前中 【補足】丸投げで申し訳ありません。どうかお願い致します。
991 :
987 :2005/12/06(火) 20:46:26
>>988 返信ありがとうございます。
これは972さんの回答と同じということでしょうか??
>>991 ダブルバッファしたものとしてないものがある訳だから兼用でOKだと思う
994 :
デフォルトの名無しさん :2005/12/06(火) 21:32:02
>>994 貼るときに壊したかな?
エラーメッセージ出してみて
>979 今ならつながる。 逆ポーランド記法の電卓でいいのかどうかは知らんが。
>>994 うちは動いてるよ。
もう一回こぴぺしてみて。
あと、ファイル名は Bmp2Jpeg.java にしないとだめだよ。
大文字小文字も一字一句違うとだめ。
>>994 あと、念のためだけど、 J2SDK 1.4.2 で確認した。
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。