★★ Java の宿題ここで答えます Part 53 ★★
■ このスレッドは過去ログ倉庫に格納されています
0001ザイン帝國軍帥・伯魔壬旭(小島露観)
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/
0153114
2005/09/19(月) 02:05:50>>151
ImageIOについて、これから良く調べてみますw
>>152
初心者ですいませんm(._ _*)m
今分かるところ、OSはwindows。
ApacheなどのWebサーバはインストール済み。
JavaアプリケーションサーバはTomcat。
PCは研究室内のものを3台使用し、全てWebサーバはインストール済み。
同Tomcatを使用。同OS。
データベースはただの集まりで動くのかはまだわかりません。
後は今確認できないので、確認後報告致しますwすいませんw
0154114
2005/09/19(月) 02:07:57スマソ。。
間違いです。
0155デフォルトの名無しさん
2005/09/19(月) 07:37:50> データベースに接続する方法が分かりません。一応フォーム、データベースは
> もうできているので、後は他のパソコンから接続してデータを反映する事で
> 問題は解決できると思います。
これを読む限りでは同一PC内でAPL<->DBは接続できているように書いてあるけど
質問内容からすると出来ていない気がするなぁ
同一PC内で接続確認済->Javaの問題では無いだろうしね
0156デフォルトの名無しさん
2005/09/19(月) 13:37:18http://www.wikiroom.com/java/index.php?%A5%BD%A1%BC%A5%B9%C5%BD%A4%EA%C9%D5%A4%B12#u63f7829
画像処理なんて初めてやったので、かなりアヤシイ。
wikiにも書いたけど、jpgに変換するロジックは相当強引なので、処理が遅いです。
神を待った方がいいかも。
0157デフォルトの名無しさん
2005/09/19(月) 17:29:45随分と複雑なものをかいたものだのう
わざわざこんなことするなんて
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();
}
}
0158114
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。 ローカルアドレスにはプロキシサーバーを使用しないのチェックボックスに
チェックあり。
0159114
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
こんな感じです。
0160ザイン帝國軍帥・伯魔壬旭(小島露観)
2005/09/20(火) 18:48:38ここに、二つのクラスを貼っておきました。
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) メソッドを使ってください。
0161デフォルトの名無しさん
2005/09/20(火) 20:35:42[注文フォームのソースコードの一部]
//データベース設定
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アドレスを毎回自動で取得している?
0162デフォルトの名無しさん
2005/09/20(火) 22:20:02【課題】以下の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
0163114
2005/09/21(水) 00:37:52↑でマシンが違うことで変わるところは1箇所しかないと思うのだが
同一マシンでも接続できていない?
同一マシンでは接続できます。他のマシンからは接続できません。
他マシンを「localhost」から、このマシンのIPアドレスに変えればいいわけですよね??
IPアドレスは自動で取得していません。IPアドレスは分かります。
0164114
2005/09/21(水) 00:57:54ここに、二つのクラスを貼っておきました。
http://www.wikiroom.com/java/index.php?%A5%BD%A1%BC%A5%B9%C5%BD%C9%D5%A4%B1
すみません。なぜか見れません。私のブラウザに問題があるからでしょうか?
0165デフォルトの名無しさん
2005/09/21(水) 04:27:20【 用語 】数学用語、専門用語の意味、説明を書きます 《あれば必須》
【 期限 】1週間くらい
【 Ver 】1.4.2以前
【 補足 】PG暦TOTALで2年くらい
だが・・・最近まともにプログラムらしきモノに触り始めました
0166デフォルトの名無しさん
2005/09/21(水) 14:53:11さらに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();
0167デフォルトの名無しさん
2005/09/21(水) 20:58:26でどうだった?
あとはport等ネットワークの問題だろうから
各種設定、導通テスト(こんな言葉であってるか?)等
やってみた結果も併せて書いてくれれば解るかも
(既にJAVAの域を越えてる気がするけど・・)
0168デフォルトの名無しさん
2005/09/22(木) 03:08:29Connection 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("正常終了");
}
}
といいかげんに答えてみるテスト。
0169デフォルトの名無しさん
2005/09/22(木) 03:38:120170デフォルトの名無しさん
2005/09/22(木) 17:53:54ムリでした
0171デフォルトの名無しさん
2005/09/23(金) 19:55:27package 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);
}
}
0172171
2005/09/23(金) 19:56:05package 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日まで
よろしくお願いします。
0173デフォルトの名無しさん
2005/09/23(金) 21:29:02Ans. 違反している。
変数xがPoint内でprivateの可視性で定義されているから、
クラスが異なるPoint3Dからは見えない。
>172
Ans. xpos()
メソッドgetX()がPoint内でデフォルトの可視性で定義されているから、
パッケージが異なるColorPointからは見えない。
コンパイルすれば分かるものを。。
0174sage
2005/09/26(月) 14:39:57【 期限 】9月28日くらいまで
【 Ver 】できれば1.4でお願いします
まったくわからないのでよろしくお願いします
0175デフォルトの名無しさん
2005/09/26(月) 15:59:010176デフォルトの名無しさん
2005/09/26(月) 18:05:170177174
2005/09/26(月) 18:30:360178デフォルトの名無しさん
2005/09/26(月) 18:40:03それは色?それとも表示領域?
0179174
2005/09/26(月) 20:24:150180デフォルトの名無しさん
2005/09/27(火) 15:23:57public 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が減ると思うのですが。。。
今自分でも解決しようとしてます。 他の場所にレスしてすみませんでした。
0181デフォルトの名無しさん
2005/09/27(火) 22:58:06【 期日 】本日(9/27) 23:59まで。
【 補足 】java歴一週間です。丸投げですがよろしくお願いします。
0182Mb
2005/09/27(火) 23:15:03import 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));
}
}
0183デフォルトの名無しさん
2005/09/27(火) 23:20:51いま、そういうやり方なんだ
0184デフォルトの名無しさん
2005/09/27(火) 23:32:01そこで宿題
MP3再生プレーヤーを作りなさい。
0185デフォルトの名無しさん
2005/09/27(火) 23:44:400186デフォルトの名無しさん
2005/09/27(火) 23:50:00<html>
<HEAD><TITLE>>1-MP3</TITLE></HEAD>
<body>
<a href=">>1.mp3">ここをクリックすると再生します。</a>
</body>
0187デフォルトの名無しさん
2005/09/27(火) 23:53:210188181
2005/09/28(水) 00:10:21どうやらちゃんとできました。どうもありがとうございます。
0189デフォルトの名無しさん
2005/09/28(水) 05:32:00ハノイのタワーは三台あって、A,B,Cにわかれています。
タワーAには下の方から大きい数字の順番に置物があって、
その置物をすべてタワーCに移動させたいんです。 ただ少し問題をややこしく
するのは、移動をしている最中に一つ以上の置物を一度に運べないことと、
タワーAからタワーBとタワーCに置物が移動している際に小さい数字の
置物は、決してその数字より大きい数字の置物の下には置けないという事です。
後から付けたししてすみませんでした。
でも、みなさんハノイのタワーは過去に習われたのではないであろうかと
思いましたので、あえて詳しい解説はつけなかったのですが。。。
0190デフォルトの名無しさん
2005/09/28(水) 10:51:21Integer i = Integer.decode("02");
これはエラーにならないのに、
Integer i = Integer.decode("09");
はNumberFormatException例外が発生するのは何故でしょうか?
当方JAVA初心者です。
0191デフォルトの名無しさん
2005/09/28(水) 12:37:39ヒント:09 って何進数表記だ?
0192デフォルトの名無しさん
2005/09/28(水) 12:41:360193デフォルトの名無しさん
2005/09/28(水) 13:06:42つhttp://www.y-adagio.com/public/standards/tr_javalang/3.doc.htm#48282
10進数ではないよ。
0194190
2005/09/28(水) 13:11:17お返事ありがとうございます
つまりDecodeは2進数、8進数、16進数を数値に変換するメソッド
ってことなんですかね?
因みに>>192違います^^;
0195デフォルトの名無しさん
2005/09/28(水) 16:37:370[0-7]*
[1-9][0-9]*
0196デフォルトの名無しさん
2005/09/29(木) 01:38:530197デフォルトの名無しさん
2005/09/29(木) 01:56:020198デフォルトの名無しさん
2005/09/29(木) 02:15:460199デフォルトの名無しさん
2005/09/29(木) 03:49:22【 用語 】JAVA、コマンドプロンプト上
【 期限 】9月29日 13:00分提出
【 Ver 】JAVA1,5
【 補足 】ツェラーの公式というのを使うらしいのですが、どうにもならずorz
丸投げになります、がよろしくお願いします
0200200
2005/09/29(木) 08:09:14http://www.wikiroom.com/java/index.php?ソース貼付け
http://www.wikiroom.com/java/index.php?%A5%BD%A1%BC%A5%B9%C5%BD%C9%D5%A4%B1 (同じ)
入力値エラーチェックは一切無しだ。どうなっても知らん。
0201Mb
2005/09/29(木) 08:36:03public 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 + "日(星期" + 星期 + ")");
}
}
}
}
0202199
2005/09/29(木) 10:20:32これでどうにかなりそうです
0203デフォルトの名無しさん
2005/09/29(木) 13:24:16"09"を8進数として処理しようとするけど、8進数の数字じゃないので例外が出る
ちなみにC/C++/Javaで"0"は8進数の"0"であって10進数の"0"ではない
0204デフォルトの名無しさん
2005/09/29(木) 13:45:16【 用語 】なし
【 期限 】2005/9/30 午前10時
【 Ver 】指定なし
【 補足 】http://www.image.esys.tsukuba.ac.jp/javaimage/
にあるようなものをつくりたいです.
ここまで高度でなくてもいいので任意に画像を標本化して
2値画像などにできるようにしたいです.
丸投げになりますがおねがいします
0205デフォルトの名無しさん
2005/09/29(木) 13:54:38【 用語 】Java コマンドプロンプト上
【 期限 】9/30 15:00
【 Ver 】指定なし
【 補足 】アプレットのようなものを作ればいいと思ってるのですが・・・
0206短いからここにはるよ
2005/09/29(木) 15:02:14import 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);
}
0207短いからここにはるよ
2005/09/29(木) 15:02:23private 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));
}
0208短いからここにはるよ
2005/09/29(木) 15:02:51public 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]);
}
}
0209短いからここにはるよ
2005/09/29(木) 15:03:31public 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);
}
}
0210短いからここにはるよ
2005/09/29(木) 15:05:03public 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 指定無しだから大丈夫かな?
0211デフォルトの名無しさん
2005/09/29(木) 15:15:00あといろいろ誤字とかあるけど動くは動くから気にしないでね
もっと一般的なフィルタアルゴリズムがあったら誰か適当に足してちょ
0212デフォルトの名無しさん
2005/09/29(木) 15:34:20ひとまずコンパイルはできましたがエラーがでて実行できません
実行の仕方を詳しくお願いします
あとVer1.4でした
0213デフォルトの名無しさん
2005/09/29(木) 15:48:42実行は
> java ImageFilterPane hoge.jpg
とか。カレントディレクトリに hoge.jpg があればいけるはず。
D:\hoge.jpg とかのフルパスでもいいよ
0214デフォルトの名無しさん
2005/09/29(木) 16:02:46実行できました
ありがとうございます
お手数おかけしました
0215デフォルトの名無しさん
2005/09/29(木) 16:15:242つ目の2値化の部分なんですが、今の状態で2階調のような気がしますが
それをもう少し32階調16階調などにするためにはどこをどういう風にいじればいいのでしょうか?
0216デフォルトの名無しさん
2005/09/29(木) 17:15:32private 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);
とかしてくらはい。
0217デフォルトの名無しさん
2005/09/29(木) 17:42:470218デフォルトの名無しさん
2005/09/29(木) 18:16:55応用問題1
コマンドラインから数字と演算子を入力し計算結果を出力するプログラム
を作成せよ
(+とーのみにする)ただし、引数が不足している場合はエラーメッセージ
を出力して処理を終了させる
実行例 java cale 10+2
これのソースわかる人いる?
0219デフォルトの名無しさん
2005/09/29(木) 22:46:39次にテキストファイルの指示に従って問題を答えなさい。
http://ce.fake.ne.jp/whats.txt
改行多くて書けなかった
0220デフォルトの名無しさん
2005/09/29(木) 22:58:31http://pc8.2ch.net/test/read.cgi/tech/1110180044/526n
0221デフォルトの名無しさん
2005/09/29(木) 23:13:43それ本当に宿題か?
0222デフォルトの名無しさん
2005/09/29(木) 23:21:09音楽再生が再突入した場合に対応できないAudioPresenterクラスの設計が拙い
よって該当ソースを修正する必要はない
0223デフォルトの名無しさん
2005/09/30(金) 12:26:37サンプルがあるならjodeとかJadclipseで逆コンパイルしてみたら。
0224デフォルトの名無しさん
2005/09/30(金) 12:57:38【 課題 】javaをつかってAD変換の様子が分かるようにしなさい.
【 用語 】
【 期限 】2005年10月2日
【 Ver 】バージョン1.4
【 補足 】ttp://laputa.cs.shinshu-u.ac.jp/~yizawa/InfSys1/basic/chap1/index.htm
ここにあるディジタル処理というアプレットのようなものができれば
いいと思うのですが.丸投げですいませんが分かる方お願いします.
このjavaはアプレットですが,コマンドプロンプトで動作させること
ができればコマンドプロンプトでおねがいします.
0225デフォルトの名無しさん
2005/09/30(金) 14:58:06亀ですまんけど、嘘教えるなよー。
少なくとも Java において 0 は常に 10 進数だよ。
0226デフォルトの名無しさん
2005/09/30(金) 15:05:18>203は言葉足らずなだけじゃないか?
数字の最初に 0 がある場合は8進数をあらわしてるわけで、
この場合は普通の数字としての 0 じゃない。
つまり、10進数の 0 じゃなくって、
8進数をあらわす 0 ってことがいいたかっただけジャマイカ?
0227227
2005/09/30(金) 15:20:23import 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();
}
}
0228227
2005/09/30(金) 15:22:07【 用語 】
【 期限 】2005年10月2日
【 補足 】InetAddressのところに6を入れた状態で掲載しましたが、
それでもIPv6では動作しませんでした
0229デフォルトの名無しさん
2005/10/02(日) 05:20:15・GUIで作成(Windows上で動作するように作成すればウィジットは問わない)
・デジタル/アナログは問わない。
・表示誤差は極力無くなるようにすること。
【用語】 なし
【期限】10/3のAM7:00まで
【Ver 】JDK1.4.2
【補足】丸投げです。自分では無理でしたorz
どうか宜しくお願いします。
0230デフォルトの名無しさん
2005/10/02(日) 07:41:08import 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);
}
}
0231デフォルトの名無しさん
2005/10/02(日) 09:15:145.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 ) {
}
}
}
}
0232デフォルトの名無しさん
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
【 補足 】英文はキーボード入力です。
丸投げですがよろしくお願いします。
0233デフォルトの名無しさん
2005/10/02(日) 14:37:33public 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
0235デフォルトの名無しさん
2005/10/02(日) 14:39:43英文はキーボード入力なんじゃないの?
0236デフォルトの名無しさん
2005/10/02(日) 14:54:351、概要
(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(".*[\\.\\?!]")) {
// 以下略
これは動作確認してませんが
0238232
2005/10/02(日) 18:03:36レスありがとうございます。
233,236の両方とも無事動きました。
ちょっと課題が分かりにくかったようですいません。
本当にありがとうございました。助かりました。
0239デフォルトの名無しさん
2005/10/05(水) 02:08:38【 用語 】なし
【 期限 】10月7日まで
【 Ver 】指定なし
【 補足 】サンプルプログラムですが、なにも改造しないままエラーが4つもでるという悲惨な状況です。
問題点というかなぜエラーがでるのかがわかりません。
コンパイルできるようにしたいです。
0240239
2005/10/05(水) 02:10:08package 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",
""
);
}
0241239
2005/10/05(水) 02:11:00if (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;
}
}
よろしくお願いします。
0242デフォルトの名無しさん
2005/10/05(水) 02:33:20Interfaceでないなら、xxxxInterfaceなんて付けるな
もし、ほんとにInterfaceならnewできないぞ
DBSimpleInterface mDB;
public BBSModel() {
mDB = new DBSimpleInterface();
}
0243デフォルトの名無しさん
2005/10/07(金) 10:00:05インスタンスメソッドがprintName
クラスがSeminar
ゼミのメンバーを2人作る(名前を入れる・初期化する)
プリントアウトする
【 期限 】今日の午後2時まで
【 補足 】丸投げでお願いします あとゼミの宿題です
これが詳しく書ける限界ですみません
0244243
2005/10/07(金) 10:01:100245デフォルトの名無しさん
2005/10/07(金) 11:00:13適当だがこーいうことか?
// 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() ;
}
}
0246243
2005/10/07(金) 12:45:35そうです、ありがとうございます!
あとコンパイルしようとしたらclass interfaceがありませんと言われたのですが・・・・・・
0247デフォルトの名無しさん
2005/10/08(土) 20:13:05public Seminar{
という行の public と Seminar の間に
「 class 」を入れる。
0248デフォルトの名無しさん
2005/10/09(日) 22:53:34ありがとうございます
0250デフォルトの名無しさん
2005/10/09(日) 23:13:060251デフォルトの名無しさん
2005/10/09(日) 23:33:590252たわし
2005/10/09(日) 23:39:53..,,,,.,.,,
ミ・д・ミ
"''''''"
■ このスレッドは過去ログ倉庫に格納されています