★★ Java の宿題ここで答えます Part 55 ★★
【Java宿題スレッド基本ルール・五箇条の御誓文】
1:問題文は自己省略せずに、直接全部貼り付けてください。
2:課題の「丸投げ」が最も好ましい提示法です。なるべく丸投げしてください。
3:数学問題は「○×法でせよ」だけでなく、その数式、前提条件も説明してください。
4:課題&宿題関連の質問はOKですが、それ以外の一般的な質問は禁止です。
5:もし回答プログラムがアップされたら、その返答と動作報告をお願いします。
【課題提示用テンプレ】
【 課題 】与えられた課題文をそのまま書きます 《必須》
【 用語 】数学用語、専門用語の意味、説明を書きます 《あれば必須》
【 期限 】提出期限、解答希望日があれば書きます
【 Ver 】希望するJavaバージョンがあれば書きます
【 補足 】課題について自分なりに補足する事、何か思う事があれば書きます。
丸投げでない場合は、途中までのソースとその経過報告、
質問点、疑問点を書きます(なるべく丸投げにしてください)
【回答プログラムの掲載場所】
Java質問スレWiki
http://www.wikiroom.com/java/ ソースポストネット
http://sourcepost.sytes.net/ 【前スレ】
http://pc8.2ch.net/test/read.cgi/tech/1133778112/
2 :
デフォルトの名無しさん :2006/01/26(木) 22:30:33
一応、こっちにも書いておきます
【マウスで絵を描く】
【 課題 】画面分割
>>980 みたいな感じ、コンボボックスを右、左でマウスで
絵をかけるようにするコンボボックスは2つ用意し線の太さ、色を
変更する
【 期限 】来週土曜
【 補足 】とにかく、エラーがなく上で書いたことができればOKです。
色は3色くらい、線の太さも3種類くらいでお願いします
3 :
デフォルトの名無しさん :2006/01/26(木) 22:32:12
一応、こっちにも書いておきます
【マウスで絵を描く】
【 課題 】フレームを2つに分割(前レスの
>>980 みたいな感じ)コンボボックスを右、左でマウスで
絵をかけるようにするコンボボックスは2つ用意し線の太さ、色を
変更する
【 期限 】来週土曜
【 補足 】とにかく、エラーがなく上で書いたことができればOKです。
色は3色くらい、線の太さも3種類くらいでお願いします
4 :
デフォルトの名無しさん :2006/01/26(木) 22:43:11
>>1 スレ立てどうもです!
5 :
デフォルトの名無しさん :2006/01/26(木) 22:44:17
何故「丸投げ」が好ましいのかと言うと、人のソースを読んで それに修正を加えるのは、一から書くのより数倍大変になるのですね。 だから、少しでも自分でプログラムを書いてそれから出そうとするのは 余計なお節介どころか、絶対やって欲しくないお節介になってしまうのです。
6 :
デフォルトの名無しさん :2006/01/26(木) 23:26:06
【 課題 】キーボードより入力したstrを8進数のアスキーコードに変換する方法を教えて下さい 【 期限 】明日 【 補足 】丸投げ
6です有難うございました
【 課題 】String型の数字101をint型に変える方法教えて下さい。 【 期限 】できるだけ早くお願いします 【 補足 】丸投げです。よろしく
Integer#parseInt()
11 :
デフォルトの名無しさん :2006/01/27(金) 06:11:05
【 課題 】アプレットを使用して入力した3桁の数字を一桁づつ分けてgif画像を並べて表示させるプログラムお願いします 【 期限 】出来るだけ早いとありがたいです。 【 補足 】183の場合 1の画像 8の画像 3の画像てな感じでお願いします。
Javaの課題でJFrameを使い文字のスクロールを作れと言われました。 右側のある一定の場所から始まり、左側もある一定の場所まで行ったら、 右側の最初の位置に戻って文章を最初から描画したいのです。 どうやってもできないので、よろしくお願いします。 後流す文字は全角でお願いしますorz 期限が本日の放課後までなので、なるべく早くお願いしたいです・・
こうじゃね? 左の場所 右の場所 ス スジャータが スジャータが2時をお知らせ スジャータが2時をお知らせします ジャータが2時をお知らせします ス が2時をお知らせします スジャータ
何その腹が立つ文字列
スジャータナツカシスw 何となく解るからいんじゃね
17 :
11 :2006/01/27(金) 12:26:06
>>13 そうです。数字.gifです。8の場8.gifですね説明不足ですみません
18 :
デフォルトの名無しさん :2006/01/27(金) 12:52:41
次の行列計算をjavaで組みなさい。 0.3 0.5 0.2 3 (1.0、0)( 0.4 0.3 0.3 ) ※3は3乗 0.2 0.3 0.5 for文と配列のみで組むこと。
19 :
12 :2006/01/27(金) 13:25:02
>>14 さんが説明してくださってる通りです。
わかりにくくてすいません;
後一文字ずつスクロールさせたいのでよろしくお願いします。
>>17 並べてって何か指定されてる?
画像の大きさとか並べ方とか
21 :
デフォルトの名無しさん :2006/01/27(金) 15:10:37
■課題 (1)A店とB店のアイスの値段を入力して比較し、以下のように表示するプログラムを書け。 (画面表示例) A店のアイス値段=○○○○ B店のアイス値段=○○○○ ◇◇◇◇の方が△△△△より○○○円やすい。 (2)以下の仕様要求を実現するプログラムを書け。 仕様要求:0度から90度までのcos関数の値を画面に表示する。 (画面表示例) x(度) cosx 0 ***** 1 ***** 2 ***** : : : : 90 ***** (下に続きます)
(3)以下の仕様要求を実現するプログラムを書け。 仕様要求:”textfile.txt”から検索したい文字列の出現場所(行番号、列番号)をすべて ”dataout.txt”に記録する。 ただし、検索したい文字列はコマンドラインから与えるものとする。 実行コマンドの例: Z:¥(ファイル名)>java kadai10 textfile.txt 偏差値 実行結果はdataout.txtを開いて確認する。 (4) 以下の仕様要求にしたがって、systemtimeクラスを設計して、 これを用いた時間を設定と表示するプログラムを書け。 (仕様要求) class systemtime {フィールド変数(初期値:時=-1、分=-1、秒=-1) 時間設定メソッド(設定値をチェック、不備の場合は変更しない。(エラーメッセージを表示)) 時間表示メソッド(正しく設定された場合、「**時**分**秒です。」と表示する。 正しく設定されていない場合、「正しく設定されていません。」と表示する。) }public class kadai4{public static void main(String args[]) {インスタンス生成 時間を設定 設定時間を表示}} 4.以下の仕様要求にしたがって、systemtimeクラスを設計して、 これを用いた時間を設定と表示するプログラムを書け。 (使用要求) class systemtime {フィールド変数(初期値:時=-1、分=-1、秒=-1) コンストラクタ(設定値をチェック、不備の場合は変更しない。(エラーメッセージを表示)) 時間表示メソッド(正しく設定された場合、「**時**分**秒です。」と表示する。 正しく設定されていない場合、「正しく設定されていません。」と表示する。) }public class kadai4{ public static void main(String args[]){ インスタンス生成、コンストラクタで初期化 設定時間を表示}} ■期限 1/30 ■補足 丸投げです。申し訳有りませんが宜しくお願いします。
>>20 バーボンハウスに捕まってた
今からやるわ
>>21 import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class Sample extends Applet implements ActionListener{
TextField text;
Image img[] = new Image[3];
boolean ch=false;
public void init(){
setLayout(null);
text = new TextField();
text.addActionListener(this);
add(text);
text.setBounds(10,20,200,20);
}
public void paint(Graphics g){
if(ch==true){
for(int i=0;i<3;i++)
g.drawImage(img[i],i*100,100,100,100,this);
}
}
public void actionPerformed(ActionEvent e){
if(text.getText().equals("")==false){
String str = text.getText();
for(int i=0;i<3;i++)
img[i] = getImage(getDocumentBase(),str.charAt(i)+".gif");
ch=true;
text.setText(null);
repaint();
}
}
}
25様>有難う御座います。はりきって直します。
28 :
デフォルトの名無しさん :2006/01/27(金) 19:58:14
30 :
ganma :2006/01/27(金) 21:20:18
31 :
デフォルトの名無しさん :2006/01/27(金) 21:52:34
>>26 有難うございました
一つ質問なのですが3*3の9文字にする時はどのようにいじったらよろしいのですか?
>>31 iとjでも使ってfor文2重にして座標指定でもしてちょ
33 :
デフォルトの名無しさん :2006/01/27(金) 22:27:39
>>31 import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class Sample extends Applet implements ActionListener{
TextField text;
Image img[][] = new Image[3][3];
boolean ch=false;
public void init(){
setLayout(null);
text = new TextField();
text.addActionListener(this);
add(text);
text.setBounds(10,20,200,20);
}
public void paint(Graphics g){
if(ch==true){
for(int i=1;i<4;i++)
for(int j=1;j<4;j++)
g.drawImage(img[i][j],i*100,j*100,100,100,this);
} }
public void actionPerformed(ActionEvent e){
if(text.getText().equals("")==false){
String str = text.getText();
for(int i=1;i<4;i++)
for(int j=1;j<4;j++)
img[i][j] = getImage(getDocumentBase(),str.charAt(i)+".gif");
ch=true;
text.setText(null);
repaint();
} } }
35 :
デフォルトの名無しさん :2006/01/27(金) 22:28:41
>>31 作ってみたんですがエラーは出ないのに実効ができません。すみませんですけど3*3も作ってくれませんか?
>>35 public class Sample extends Applet implements ActionListener{
TextField text;
Image img[][] = new Image[3][3];
boolean ch=false;
public void init(){
setLayout(null);
text = new TextField();
text.addActionListener(this);
add(text);
text.setBounds(10,20,200,20);
}
public void paint(Graphics g){
if(ch==true){
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
g.drawImage(img[i][j],i*100,j*100+100,100,100,this);
}
}
public void actionPerformed(ActionEvent e){
if(text.getText().equals("")==false){
String str = text.getText();
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
img[i][j] = getImage(getDocumentBase(),str.charAt(i*3+j)+".gif");
ch=true;
text.setText(null);
repaint();
}
}
}
>>39 まて
g.drawImage(img[i][j],i*100,j*100+100,100,100,this);
のiとjを入れ替えれ
【 課題 】「キーボードから入力して入力された文字をアスキーコードより変換し出力せよ」という問題がでました。 【 期限 】 29日昼 【 補足 】Integer.toString(int i, int radix) Integer.parseInt(String s, int radix)のどちらかを使うみたいです。 入力文字数は3文字で出力はSystem.out.printlnでお願いします。
43 :
デフォルトの名無しさん :2006/01/28(土) 14:21:32
>41
// ASCIIDemo.java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* @see
ttp://www.shibu.jp/cppreference/ascii.html */
public class ASCIIDemo {
public static void main(String[] args) {
System.out.println( "exitを入力すると終了." );
while( true ) {
System.out.print( "> " );
try {
BufferedReader br = new BufferedReader( new InputStreamReader(System.in) );
String line = br.readLine();
if( line.equals( "exit" ) ) System.exit( 0 );
else if( line.length() != 1 ) throw new IllegalArgumentException( "入力文字は1文字で:" + line );
else {
int ascii = new Character(line.toCharArray()[0]).hashCode();
if( ascii > 127 ) throw new IllegalArgumentException( "ASCIIコードがありません:" + line );
else System.out.println( ascii );
}
} catch( IOException ioe ) {
ioe.printStackTrace();
} catch( IllegalArgumentException iae ) {
System.err.println( iae.getMessage() );
}
}
}
}
44 :
デフォルトの名無しさん :2006/01/28(土) 14:44:02
行列の (1.0)(0.6 0.4)3 (0.7 0.3) を計算し、”解は(○.△)です。”と 出力するプログラムを作成しなさい。 ○と△は計算結果です。 (3は3乗するって意味です。) 【期限】30日 【補足】forと配列を使って作成して下さい。 出力はSystem.out.printlnでお願いします。 どうかよろしくお願いしますm(_ _)m
45 :
デフォルトの名無しさん :2006/01/28(土) 14:47:10
44です。行列の部分が見にくかったので修正します(_ _;) (1.0)(0.6 0.4)3 (0.7 0.3) どうかよろしくお願いしますm(_ _)m
行列廚ウザス
行列の宿題出すってことは間違いなく授業中に計算の方法の実現教わってるはずなんだよなぁ なのになんでできないのかね? 10分くらいしか考えてないんだろ
48 :
デフォルトの名無しさん :2006/01/28(土) 15:36:44
ワロシュw
50 :
デフォルトの名無しさん :2006/01/28(土) 15:41:44
( ̄w ̄) ぷっ
51 :
デフォルトの名無しさん :2006/01/28(土) 15:44:04
javaの実行の仕方ですが、classpathから実行するコマンドって何だったでしょうか?
52 :
46 :2006/01/28(土) 16:01:13
>47 別に質問者が自分で考えようが考えまいがそんなことはどうでもいい。 もうすでに答えを出しているのに、それに対して何のレスポンスもせず、 ただただ同じトーンで質問を投げてる、というのがすごく嫌。
53 :
>>41 :2006/01/28(土) 16:22:45
>>43 それ変換の方向が逆ではないかい?
// A.java
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class A {
public static void main(String[] args) {
String str = null;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
for(;;)
try {
System.out.print("ASCII値を入力してください> ");
str = br.readLine();
if ("".equals(str)) break; // 空の入力(改行のみ)で終了
int i = Integer.parseInt(str);
if ((i < 0) || (i > 127)) {
System.out.println("入力値(" + i + ")は適切なASCII値ではありません");
continue;
}
System.out.println(i + " -> " + (char) i);
} catch (NumberFormatException e) {
System.out.println("入力文字列(" + str + ")は数値ではありません");
} catch (IOException e) {
e.printStackTrace();
}
}
}
// 逆だとしたらこんな感じか?
54 :
デフォルトの名無しさん :2006/01/28(土) 16:39:34
>>44 行列知らないけどWikipediaの公式参考に作ってみた
展開が間違ってたら直してくれ
public class Gyoretsu
{
public static void main(String[] args) {
double[] v = {1.0, 0.0};
double[][] m = {{0.6, 0.7}, {0.4, 0.3}};
for (int i = 0; i < 3; i++) v = calc(v, m);
System.out.println("解は(" + v[0] + " " + v[1] + ")です。");
}
private static double[] calc(double[] v, double[][] m) {
double[] r = new double[2];
r[0] = v[0] * m[0][0] + v[1] * m[0][1];
r[1] = v[0] * m[1][0] + v[1] * m[1][1];
return r;
}
}
55 :
43 :2006/01/28(土) 17:07:39
>53 >41をよく読んだらそうですね。。
56 :
デフォルトの名無しさん :2006/01/28(土) 17:14:18
実行してみたら誤差が出るのでintで書き直してみた 全然汎用的じゃないけど public class Gyoretsu { public static void main(String[] args) { int[] v = {1, 0}; int[][] m = {{6, 7}, {4, 3}}; for (int i = 0; i < 3; i++) v = calc(v, m); System.out.println("解は(" + (v[0] * 0.001) + " " + (v[1] * 0.001) + ")です。"); } private static int[] calc(int[] v, int[][] m) { int[] r = new int[2]; r[0] = v[0] * m[0][0] + v[1] * m[0][1]; r[1] = v[0] * m[1][0] + v[1] * m[1][1]; return r; } }
>56 いくらなんでもそれは無理矢理過ぎ。
58 :
デフォルトの名無しさん :2006/01/29(日) 13:11:17
どんどん書き込んでロ!!
>>前スレ918からの行列房は大学特定したww 先生言っとくわwwww
60 :
デフォルトの名無しさん :2006/01/29(日) 14:50:18
61 :
デフォルトの名無しさん :2006/01/29(日) 15:48:57
import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; /** * 22の課題1.<br> * Shopは前回のShopを使う. */ public class Kadai22_1 { public static void main(String[] args) throws Exception { Shop[] shops = new Shop[] { new Shop("A", 0), new Shop("B", 0) }; for (int i = 0; i < shops.length; i++) inputShopData(shops[i]); printComp(shops); } private static void inputShopData(Shop shop) throws Exception { System.out.print(shop.getName() + "店のアイス値段="); String icePrice = new BufferedReader(new InputStreamReader(System.in)).readLine(); shop.setIcePrice(Integer.parseInt(icePrice)); } private static void printComp(Shop[] shops) { for (int i = 0; i < shops.length; i++) System.out.println(shops[i].getName() + "店のアイスの値段="+ shops[i].getIcePrice()); Arrays.sort(shops); Shop min = shops[0]; Shop max = shops[shops.length - 1]; System.out.println(min.getName() + "店の方が" + max.getName() + "店より"+ (max.getIcePrice() - min.getIcePrice()) + "円安い。"); } }
62 :
デフォルトの名無しさん :2006/01/29(日) 15:53:00
/** * 22の課題2. */ public class Kadai22_2 { public static void main(String[] args) { for (int i = 0; i <= 90; i++) System.out.println(i + "\t" + Math.cos(i)); } }
63 :
デフォルトの名無しさん :2006/01/29(日) 16:01:17
import java.io.*; import java.util.ArrayList; /** * 23の課題3 */ public class Kadai23_3 { public static void main(String[] args) throws Exception { // args = new String[] { "textfile.txt", "偏差値" }; String textfile = args[0]; String keyword = args[1]; String dataout = "dataout.txt"; BufferedReader br = new BufferedReader(new FileReader(textfile)); BufferedWriter bw = new BufferedWriter(new FileWriter(dataout)); String s = null; for (int i = 1; (s = br.readLine()) != null; i++) { ArrayList list = new ArrayList(0); searchIndexes(s, 0, keyword, list); for (int j = 0; j < list.size(); j++) bw.write("行番号=" + i + "\t列番号="+ (((Integer) list.get(j)).intValue() + 1) + "\r\n"); } br.close(); bw.close(); } private static void searchIndexes(String target, int fromIndex,String keyword, ArrayList list) { int index = target.indexOf(keyword, fromIndex); if (index != -1) { list.add(new Integer(index)); searchIndexes(target, ++index, keyword, list); } } }
64 :
デフォルトの名無しさん :2006/01/29(日) 16:33:51
>23 課題4と課題(4)は別物として作るの? それとも、一つでいいの? あと、このsystemtimeクラスって1秒毎に秒数が自動でアップするような、 時計としての機能も要る? それとも、設定されたときの時間をそのまま持っていればいいだけ? あと、 >時間表示メソッド(正しく設定された場合、「**時**分**秒です。」と表示する。 >正しく設定されていない場合、「正しく設定されていません。」と表示する。) ここで「正しく設定された場合」って、現在の設定時刻をチェックすればいいだけ? つまり、 ×正しく設定された場合 ○正しく設定されている場合 でいいかな?
【 課題 】画像データに他のデータを埋め込むステガノグラフィをプログラミングせよ。 ただし、画像は白黒のbmp画像で、埋め込むデータの容量はできるだけ大きくすること。 【 期限 】1月30日中にお願いします。 【 補足 】丸投げです、すいません。 画像に他のデータを埋め込むプログラムは初めてで全くわかりません。 難しいかもしれませんがよろしくお願いします。
64様>はいそうです!4.は(5)と表記するのを間違えました…。済みません!! ststemtimeクラスは設定されたときの時間をそのまま持っていればいいだけ だと思います。時計としての機能〜というのは聞いてなかったので。 >○正しく設定されている場合。こっちで良いと思われます。 済みません;お手数かけます;
>65 // SteganographDemo.java import java.io.*; public class SteganographDemo { public static void main(String[] args) { if( args.length != 2 ) usage(); else if( !args[0].endsWith( ".bmp" ) ) usage(); File bmpFile = new File( args[0] ); File inpFile = new File( args[1] ); FileInputStream fis = null; FileOutputStream fos = null; try { fos = new FileOutputStream( bmpFile, true ); fis = new FileInputStream( inpFile ); fos.write( "here".getBytes() ); for( int i; (i=fis.read()) != -1; ) fos.write( i ); System.out.println( "埋め込み完了..." ); } catch (FileNotFoundException e) { e.printStackTrace(); } catch( IOException ioe ) { ioe.printStackTrace(); } finally { try { if( fos != null ) fos.close(); if( fis != null ) fis.close(); } catch( IOException ioe ) {}} } public static void usage() { System.err.println( "java SteganographDemo [bmp画像] [埋め込みデータ]" ); System.exit(0); } } ひどく単純。後ろにくっつけるだけ。 取り出すときは「here」という文字列を手掛かりにすればいいようにしてみました(※取り出す機能はありません)。 ファイル偽装って昔流行ったよね、なにもかも懐かしい。
>>66 様とかつけんでいいから「>>レス番号」という風にしてくれ。
>60 タイマー針をマウスドラッグで動かせるようにするにはどうすればいいんだろ? 思い付かないなあ。
70 :
javaです :2006/01/29(日) 21:04:40
■振り子の振動をオイラー法で解くプログラムを作成し、次の計算を行え。 ただし、振り子の長さ は123cmとし、g=9.8 、初期角速度を w=0rad/sとする。 @初期振幅 θ=0.01rad、刻み幅 hをT/10、T/20、T/100として5周期分の振幅波形をそれぞれ計算し、 理論と比較することで誤差を評価せよ。ただし、Tは周期である。 A刻み幅 をT/100として、初期振幅 θと計算周期T”関係を考察せよ。 B@をルンゲクッタ法で計算し、オイラー法と比較せよ。 ■期限 2/05 ■補足 丸投げです。何もわからないんで宜しくお願いします。
>70 オイラー法とルンゲクッタ法についてのフォローは無しかよ。
72 :
デフォルトの名無しさん :2006/01/29(日) 23:18:07
【 課題 】2行2列の行列 9/4 1 の20乗をもとめよ(1回かけるごとに値を画面に表示) -9/2 -2 【 期限 】今から3時間以内であるとたすかります
74 :
デフォルトの名無しさん :2006/01/29(日) 23:30:05
23の課題4。これでいいのか? import java.text.DecimalFormat; public class Systemtime23_4 { private int hh = -1; private int mm = -1; private int ss = -1; public void setTime(int theHh, int theMm, int theSs) { try { this.validate(theHh, theMm, theSs); this.hh = theHh; this.mm = theMm; this.ss = theSs; } catch (Exception e) { System.err.println(e.getMessage()); } } public void printTime() { try { this.validate(this.hh, this.mm, this.ss); DecimalFormat df = new DecimalFormat("00"); System.out.println(df.format(this.hh) + "時" + df.format(this.mm)+ "分" + df.format(this.ss) + "秒です。"); } catch (Exception e) { System.err.println("正しく設定されていません。"); } } private void validate(int theHh, int theMm, int theSs) throws Exception { if (theHh < 0 || theHh >= 24) throw new Exception(theHh + "は正しい時ではありません。"); if (theMm < 0 || theMm >= 60) throw new Exception(theMm + "は正しい分ではありません。"); if (theSs < 0 || theSs >= 60) throw new Exception(theSs + "は正しい秒ではありません。"); } }
75 :
デフォルトの名無しさん :2006/01/29(日) 23:32:50
23の課題4のエントリポイント。 public class Kadai23_4 { public Kadai23_4() { } public static void main(String[] args) { Systemtime23_4 st = new Systemtime23_4(); st.setTime(2, 0, 40); st.printTime(); } }
76 :
デフォルトの名無しさん :2006/01/29(日) 23:36:48
23の課題5。これでいいのか? import java.text.DecimalFormat; public class Systemtime23_5 { private int hh = -1; private int mm = -1; private int ss = -1; public Systemtime23_5(int theHh, int theMm, int theSs) { try { this.validate(theHh, theMm, theSs); this.hh = theHh; this.mm = theMm; this.ss = theSs; } catch (Exception e) { System.err.println(e.getMessage()); } } public void printTime() { try { this.validate(this.hh, this.mm, this.ss); DecimalFormat df = new DecimalFormat("00"); System.out.println(df.format(this.hh) + "時" + df.format(this.mm)+ "分" + df.format(this.ss) + "秒です。"); } catch (Exception e) { System.err.println("正しく設定されていません。"); } } private void validate(int theHh, int theMm, int theSs) throws Exception { if (theHh < 0 || theHh >= 24) throw new Exception(theHh + "は正しい時ではありません。"); if (theMm < 0 || theMm >= 60) throw new Exception(theMm + "は正しい分ではありません。"); if (theSs < 0 || theSs >= 60) throw new Exception(theSs + "は正しい秒ではありません。"); } }
77 :
デフォルトの名無しさん :2006/01/29(日) 23:37:52
23の課題5のエントリポイント。 public class Kadai23_5 { public static void main(String[] args) { Systemtime23_5 st = new Systemtime23_5(12, 50, 33); st.printTime(); } }
課題:マウス操作で絵を描けるプログラム(筆の色が切り替えられ、ドラッグで線を引ける)を作成せよ。 期限:本日まで 補足:基本的な部分は完成したのですが、変数の受け渡しに四苦八苦しています。 以下に元のソースを記述致しますので、どなたか宜しければ補完をお願いします。 /* MyPanel.java */ import java.awt.Color; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Graphics; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionListener; import javax.swing.JButton; import javax.swing.JPanel;
public class MyPanel extends JPanel implements MouseMotionListener, ActionListener { private MyFrame myFrame; int red,green,blue; JButton bclear = new JButton("clear"); JButton bred = new JButton("red"); JButton bgreen = new JButton("green"); JButton bblue = new JButton("blue"); public MyPanel(MyFrame myFrame) { super(); this.myFrame = myFrame; myPanel.add(bclear); //ここでmyPanelを使えるようにしたい(アクセサーを利用らしいです) myPanel.add(bred); myPanel.add(bgreen); myPanel.add(bblue); bclear.addActionListener(this); bred.addActionListener(this); bgreen.addActionListener(this); bblue.addActionListener(this); addMouseMotionListener(this); setPreferredSize(new Dimension(640, 480)); }
public void paintComponent(Graphics g) { super.paintComponents(g); setBackground(Color.white); } public void mouseMoved(MouseEvent e) {} public void mouseDragged(MouseEvent e){ Graphics g = getGraphics(); int x = e.getX(); int y = e.getY(); Color color = new Color(red,green,blue); g.setColor(color); g.drawLine(x,y,x,y); g.dispose(); }
public void actionPerformed(ActionEvent e) { if(e.getSource() == bclear){ repaint(); } if(e.getSource() == bred){ Graphics g = getGraphics(); red = 255; green = 0; blue = 0; } if(e.getSource() == bgreen){ Graphics g = getGraphics(); red = 0; green = 255; blue = 0; } if(e.getSource() == bblue){ Graphics g = getGraphics(); red = 0; green = 0; blue = 255; } } }
/* MyFrame.java */ import java.awt.*; import javax.swing.*; class MyFrame extends JFrame { private MyPanel myPanel; public MyFrame() { super(); myPanel = new MyPanel(this); FlowLayout flow = new FlowLayout(); myPanel.setLayout(flow); getContentPane().add(myPanel); } }
>>79 > public class MyPanel extends JPanel
> public MyPanel(MyFrame myFrame) {
> myPanel.add(bclear); //ここでmyPanelを使えるようにしたい(アクセサーを利用らしいです)
この myPanel は何者だろう
もし、このコンストラクタで生成するインスタンスならば、
add(bclear);
で問題ないのだが・・・
/* MyFrameApp.java */ class MyFrameApp{ public static void main(String[] args) { MyFrame x = new MyFrame(); x.setSize(300, 300); x.setLocation(10, 10); x.setVisible(true); } }
>>78-82 、
>>84 で以上です。
長くなってしまいました・・・。
こちらの拙いソースに不備があればその点もおっしゃって頂ければ幸いです。
86 :
行列厨の72 :2006/01/30(月) 00:54:46
72だけど
>>59 で指摘されてはじめてスレ1からみたけど糞ワロタ
たしかにうざいかもしれんね
まぁ先生に言っといてくれw
87 :
78 :2006/01/30(月) 01:47:29
>>83 変数myPanelはMyFrame.javaで定義するようなっているので
どうにかしてMyPanel.java内で使用したいのですか・・・。
そのためにはアクセサーを組むようにすれば可能とは聞いたのですが
どうしてもわからずにこのスレで質問させていただいた次第です。
88 :
83 :2006/01/30(月) 02:02:06
89 :
デフォルトの名無しさん :2006/01/30(月) 02:31:39
>>87 >myPanel.add(bclear); //ここでmyPanelを使えるようにしたい(アクセサーを利用らしいです)
>myPanel.add(bred);
>myPanel.add(bgreen);
>myPanel.add(bblue);
ここでやりたいことって、
MyPanel上にbclear,bred,bgreen,bblueボタンを追加したい。
ってことでしょ?
だとしたら
>>83 が言うようにadd(bclear);・・・でいいんじゃない?
90 :
83 :2006/01/30(月) 02:33:53
思い直して追記。 # このあたりの感覚は、理解するまでに多少時間がかかるかもしれませんが… 仮に、MyFrame に getMyPanel という MyFrame の myPanel を取ってくるメソッドを作ったとします。 このメソッドを MyPanel のコンストラクタから呼び出すと、 MyFrame の myPanel には、まだ何も入っていないので、当然 null が返されます。 # myPanel = new MyPanel(this); ←ココの右辺を解決中なので
91 :
デフォルトの名無しさん :2006/01/30(月) 03:02:34
連立常微分方程式を使ったr=10,l=0.1,c=0.001,q=0.1の時のr*dq/dt+l*d^2q/dt^2+q/cのプログラムを教えていただけませんか?
93 :
デフォルトの名無しさん :2006/01/30(月) 03:15:08
91ですがRungeKutta法を使ってのプログラムです
>>93 RungeKutta 法のアルゴリズム(計算手順書)が分かれば、誰かやってくれるかも。
# 少なくても僕は調べる気にはなれませんでした。ごめんよ。
95 :
デフォルトの名無しさん :2006/01/30(月) 05:32:33
96 :
65 :2006/01/30(月) 06:00:16
>>67 返事遅れましたがありがとうございます!!
しっかり埋め込むことができました!!
元画像の容量をなるべく変えずに埋め込むことって可能でしょうか??
あつかましくてすいませんが何かアドバイスあったらお願いします!
整数値ビット単位演算子の式で data[62]&0xFF というのが出て来たのですが、この"0xFF"が何を意味するのか判りません。 どなたかご存知でしたら教えて下さい。
>>97 「0x〜」は16進数表示であることをあらわす。
16進数のFFは10進数で表現すると255。
2進数で表現すると11111111。
data[62]&0xFF は 「data[62]の下位8biitを取り出す」ことを意味する。
>>98 そういうことでしたか!
いやー謎が解けました。ありがとうございました。
100 :
タカベガス :2006/01/30(月) 09:42:18
[課題]下記の学籍番号1番から20番までの計20名の学生の成績を、 得点の高いものから順に並べ替えるプログラムを作成しなさい。 ただし、得点データは左から順に学籍番号の1,2,3・・・番の成績である。 「 85,40,89,72,84,53,23,68,78,94,16,54,81,68,30,70,48,65,80,87 」 ・学籍番号8番と、14番の成績は同一の68点である。プログラムによって 並べ替えられた際に、上位に表示されている68点はいずれの学生の成績であるか 明確に説明しなさい。 [期限]・・・2月3日です。 ・・・といった内容の課題です。正直、全然わかりません(--;) よろしくお願いします
101 :
デフォルトの名無しさん :2006/01/30(月) 12:39:20
XML,XSLの宿題ですが、OKですか? よければお願いします。 26の医療XMLデータを選択リストで選択すると、 ポップアップウインドウでそのデータが表示される プログラムを作成せよ。です。 ファイル名はa,bなどで結構です。 よろしくお願いします!
>96 埋め込みデータを圧縮するとか? >101 XMLデータも作れ、と言ってる? いくらなんでもそれは。。
103 :
78 :2006/01/30(月) 13:07:24
動作しました。
レスくれた方々、ありがとうございます、並びに申し訳ありませんでした。
特に
>>90 のレスは大変タメになりました。
テンプレ使えYO!
105 :
59 :2006/01/30(月) 16:01:08
59だけど、前スレ918は
>>72 なん?
だとしたら大学違うがナー
前スレ918と
>>20 は同じなら大学同じなんだが・・・
まぁもうこのスレにいねーかな、もう言っちゃったしまぁいいかw
姉貴をからかって遊んでいたら、 ついに姉貴がキレて、手当たり次第に物を投げつけてきた。 でも、芯から心の優しい姉貴は、命中すると痛い物を投げるのは、意識的に避けているようだった。 最初は縫いぐるみや、枕を投げつけてきたが、もう投げるものが無くなってしまった。 それでも怒りの収まらない姉貴は、Tシャツを脱いで投げつけ、ジーンズを脱いで投げつけ、 ブラを外して投げつけ、最後にはぱんつを脱いでは投げつけ……。 そして投げるものが一切無くなったとき、姉貴はうつむいたままこう嗚咽した。 「抱きしめてよ!!弟なら!姉を抱きしめてよ!!」 漏れは姉貴に歩み寄りそっと抱きしめる。 思いっきり投げられた。
108 :
デフォルトの名無しさん :2006/01/30(月) 17:20:04
■振り子の振動をオイラー法で解くプログラムを作成し、次の計算を行え。 ただし、振り子の長さ は123cmとし、g=9.8 、初期角速度を w=0rad/sとする。 @初期振幅 θ=0.01rad、刻み幅 hをT/10、T/20、T/100として5周期分の振幅波形をそれぞれ計算し、 理論と比較することで誤差を評価せよ。ただし、Tは周期である。 A刻み幅 をT/100として、初期振幅 θと計算周期T”関係を考察せよ。 B@をルンゲクッタ法で計算し、オイラー法と比較せよ。 ■期限 2/05 ■補足 丸投げです。何もわからないんで宜しくお願いします。
109 :
デフォルトの名無しさん :2006/01/30(月) 17:27:35
>>105 つーかさ、多分宿題ってテキストとかからでしょ?
もし進め具合がほぼ一緒で同じ章を勉強してたとしたら
同じような問題を宿題に出しても不思議じゃないよね?
君が同一人物と勘違いするのは勝手だけど
君の馬鹿スレで他の人のスレが流されるのって迷惑なんだよね。
>108 だーかーらー。 >71の返事は? つか、>70のまんまコピペじゃん。 答えてもらえない場合、なんか工夫しようとは思わんのかね。
>>109 君の馬鹿「レス」で他の人の「レス」が流されるのって迷惑なんだよね。が正解
2ch初心者は半年ROMってろクズ
あ、先生に言われたから単位取れなかった阿呆ですか?^^^
ってかこのスレsage基本ですか?
112 :
デフォルトの名無しさん :2006/01/30(月) 18:46:13
>>111 同一人物と勘違いしたあほうですか・・・
>>112 ですか?って聞いてんだから同一人物と思ったわけじゃない
あんたも言ってるでしょ?
>もし進め具合がほぼ一緒で同じ章を勉強してたとしたら
>同じような問題を宿題に出しても不思議じゃないよね?
ってな、別に
>>111 が同一人物じゃなくても当てはまるわけだ
俺叩いてる暇があったら親の肩でも叩いてろ
君の馬鹿「スレ」で他の人の「スレ」が流されるのって迷惑なんだよねwww
114 :
113 :2006/01/30(月) 18:54:49
115 :
デフォルトの名無しさん :2006/01/30(月) 18:56:34
import java.util.Arrays; public class これはは100さんへの回答です { public static void main(String[] args) { これはは100さんへの回答です 自分自身 = new これはは100さんへの回答です(); 自分自身.並べ替えてください(); } public void 並べ替えてください(){ int[] 学生情報全体点数 = {85,40,89,72,84,53,23,68,78,94,16,54,81,68,30,70,48,65,80,87}; 学生情報[] 学生情報全体 = new 学生情報[20]; for(int 連番 = 0;連番<学生情報全体.length;連番++){ 学生情報 学生情報個人 = new 学生情報(); 学生情報個人.学生番号 = 連番; 学生情報個人.成績 = 学生情報全体点数[連番]; 学生情報全体[連番] = 学生情報個人; } Arrays.sort(学生情報全体, new 生徒を並べ替えたい()); for(int 連番 = 0;連番<学生情報全体.length;連番++){ System.out.println("学籍番号"+(学生情報全体[連番].学生番号+1)); System.out.println("成績"+学生情報全体[連番].成績); } } public class 生徒を並べ替えたい implements java.util.Comparator{ public int compare(Object キャストオブジェクト1, Object キャストオブジェクト2){ return ((学生情報)キャストオブジェクト2).成績 - ((学生情報)キャストオブジェクト1).成績; } } public class 学生情報 { public int 学生番号 = 0; public int 成績 = 0; } }
随分と荒れている。オレの課題やってもらえた後でよかった・・・。 もっとマッタリいきましょうよ。ねえ。
118 :
60 :2006/01/30(月) 22:23:42
>>117 とても凝ったプログラムを作っていただきありがとうございました!
【課題】XMLファイルを操作するクラスを設計せよ。 【回答者】125 ヨロシク!
121 :
デフォルトの名無しさん :2006/01/30(月) 22:49:40
【 課題 】次の表は小さい会社4つを入社年、男女別に分けたものである。 この表を見やすいグラフで表せ。棒グラフ、折れ線グラフなど、形式は自由とする。 新人 若手 中堅 ベテラン 合計 男 女 計 男 女 計 男 女 計 男 女 計 男 女 計 A社 95 10 105 85 10 95 98 8 106 77 6 83 355 34 389 B社 56 16 72 44 19 63 66 25 91 86 24 110 252 84 336 C社 28 13 41 31 18 49 25 16 41 0 0 0 84 47 131 D社 105 13 118 73 6 79 141 18 159 0 0 0 319 37 356 計 284 52 336 233 53 286 330 67 397 163 30 193 1010 202 1212 【 期限 】2月1日ですが、できれば早めにお願いします
122 :
120 :2006/01/30(月) 22:59:07
>>121 表が見にくくてすみません。半角スペース2つ以上は無視されるんですかね?
新人 若手 中堅 ベテラン 合計
男 女 計 男 女 計 男 女 計 男 女 計 男 女 計
A社 95 10 105 85 10 95 98 8 106 77 6 83 355 34 389
B社 56 16 72 44 19 63 66 25 91 86 24 110 252 84 336
C社 28 13 41 31 18 49 25 16 41 0 0 0 84 47 131
D社 105 13 118 73 6 79 141 18 159 0 0 0 319 37 356
計 284 52 336 233 53 286 330 67 397 163 30 193 1010 202 1212
123 :
108 :2006/01/30(月) 23:19:57
オイラー法: 導関数 dy/dx=f(x,y)=k が与えられているとき、関数 yを求めることを目的とします。 例えば、y3の値は、位置x2におけるy2の値が前回計算で求められてあり、 位置x2における傾き k は与えられた導関数dy/dxから計算できるので、 刻み幅h を傾き k に乗算することにより、 y2をこれに加えて、y3の値とする。以下同様の手順を限界まで繰り返す。 [ y3の値 = 位置x2におけるy2の値 + 位置x2における傾き k * 刻み幅h ] この手順において、x0におけるy0の値を初期値として与える必要がある。 初期値を与えれば、全てのxに対してyの値が算出可能である。 なお、初期条件の個数としては、1階の微分方程式では1つ。2階の微分方程式では2つ必要です。 計算手順: 1.x1=x0+h, y1=y0+k0・h 2.x2=x1+h, y2=y1+k1・h 3.x3=x2+h, y3=y2+k2・h ・・・ N.xn+1=xn+h, yn+1=yn+kn・h ただし、 kn は下式にて求める。 kn=k1 ここで、 k1=f(xn,yn) の計算を行う。 必要回数にて、計算を終了する。 算出された(x1,y1),(x2,y2),(x3,y3),(x4,y4),,,(xi,yi),,,(xn,yn)を 平面上にプロットすると図形が描かれる。 こうして解としての関数 y が図形上に求められたことになる
124 :
108 :2006/01/30(月) 23:24:26
計算手順: 1.x1=x0+h, y1=y0+k0・h 2.x2=x1+h, y2=y1+k1・h 3.x3=x2+h, y3=y2+k2・h ・・・ N.xn+1=xn+h, yn+1=yn+kn・h ただし、調整する傾き kn は下式にて求める。 kn=(k1+2k2+2k3+k4)/6 ここで、 k1=f(xn+0/1,yn+000/1) k2=f(xn+h/2,yn+kn1/2) k3=f(xn+h/2,yn+kn2/2) k4=f(xn+h/1,yn+kn3/1) の計算を付加的に行う必要がある。 必要回数にて、計算を終了する。 算出された(x1,y1),(x2,y2),(x3,y3),(x4,y4),,,(xi,yi),,,(xn,yn)を 平面上にプロットすると図形が描かれる。 こうして解としての関数 y が図形上に求められたことになる。
125 :
108 :2006/01/30(月) 23:25:49
ルンゲ・クッタ法: 導関数 dy/dx=f(x,y) が与えられているとき、関数 yを求めることを目的とします。 ルンゲ・クッタ法の基本的な、大きい手順は、オイラー法と同じですが、 オイラー法に較べて、傾きの求め方を調整・工夫します。 すなわち、例えば、y3の値は、位置x2におけるy2の値が前回計算で求められてあり、 位置x2における傾きは与えられた導関数dy/dxから 調整した 傾き k を算出することとするので、 刻み幅 h を調整した傾き k に乗算することにより、 y2をこれに加えて、y3の値とする。以下同様の手順を限界まで繰り返す。 [ y3の値 = 位置x2におけるy2の値 + 位置x2における調整した傾き k * 刻み幅h ] この手順において、x0におけるy0の値を初期値として与える必要がある。 初期値を与えれば、全てのxに対してyの値が算出可能である。 なお、初期条件の個数としては、1階の微分方程式では1つ。2階の微分方程式では2つ必要です。
126 :
108 :2006/01/30(月) 23:27:45
計算手順: 1.x1=x0+h, y1=y0+k0・h 2.x2=x1+h, y2=y1+k1・h 3.x3=x2+h, y3=y2+k2・h ・・・ N.xn+1=xn+h, yn+1=yn+kn・h ただし、調整する傾き kn は下式にて求める。 kn=(k1+2k2+2k3+k4)/6 ここで、 k1=f(xn+0/1,yn+000/1) k2=f(xn+h/2,yn+kn1/2) k3=f(xn+h/2,yn+kn2/2) k4=f(xn+h/1,yn+kn3/1) の計算を付加的に行う必要がある。 必要回数にて、計算を終了する。 算出された(x1,y1),(x2,y2),(x3,y3),(x4,y4),,,(xi,yi),,,(xn,yn)を 平面上にプロットすると図形が描かれる。 こうして解としての関数 y が図形上に求められたことになる。
127 :
108 :2006/01/30(月) 23:31:17
110さん。108です。 2chはじめてなんでよくわかんなくてすいません。 以上が調べたオイラー法とルンゲグッタ法の説明です。
プログラマーの多くが数学にコンプレックスを抱いていることへの皮肉かこの野郎!
129 :
デフォルトの名無しさん :2006/01/31(火) 10:25:53
class VarTest{ int number; static void methodA(int a,VarTest b){ a=10; b.number=100; } public static void main(String[] args){ int a=0; VarTest b=new VarTest(); b.number=0; methodA(a,b); System.out.println("a:"+a+",b.number:"+b.number); } } を実行し、なぜそのような出力結果が得られるか論ぜよ。 実行結果はa=0,b.number=100です。 多分スタックとかヒープとかそんな感じのことだと思うのですがわかりません。 お願いします。
130 :
デフォルトの名無しさん :2006/01/31(火) 10:54:25
java初心者です。課題をやっていただきといと思います。お願いします。できれば1/30中がよいのですが、2/1までにお願いできたらと思います。 @あるサーバを起動したときにサーバソケットを作成し、クライアントからの接続待ちをするメソッドを 呼び出す。 Aサーバを停止するときにサーバソケットをクローズし、終了するメソッドを呼び出す。 Bサーバの起動、停止をするメソッドは同一クラス。しかし、javaアプリ(mainがあるやつ)ではなく メソッドのみで記述。これはLinuxで/etc/init.d/サーバd stopなどのコマンドを行うときに呼び出すの で Cクライアントからの接続は一度に4人までとする。(認証など)処理中に5人目以降のクライアントが接 続要求した場合、その要求を破棄する D接続したあとの認証などの処理をこちらで用意しているので、記述する箇所を明記してほしい という課題をお願いしたいです。 今自分でやってできなかったところは、サーバの停止時にサーバソケットを閉じる部分で、閉じることが できず、次にサーバを立ち上げたとき、port番号が重複するというエラーが出てきます。最悪、そのサー バ自体をリブートかければできるのですが、それはダメといわれているので、、、 続く
131 :
130 :2006/01/31(火) 10:54:58
ちなみに私のソースですが、サーバソケットの接続待ちをする部分が、 try{ while(true) socket = serverSocket.accept(); new ServerSocketThread(socket).start();//ServerSocketThreadクラスで認証処理や、クライアントの 接続要求を受け入れるかを判断しています。 }catch(Exception e){ e.printStackTrace(); }finally{ if(serverSocket!= null){ try{ serverSocekt.close(); }catch(IOException){ e1.printStackTrace(); } } のようになっていて、while(true)を抜けない限り終了できません(これは私が作ったのではなく、ひきつ いだので容易にかえられず、、、)。フラグを入れたり、サーバ停止メソッドのなかで、serversocketを 閉じるメソッドを呼び出したりしたのですが、まったくダメでした。また、サーバ停止メソッドで Systemo.exit()を呼び出してもできません(プロセスが違うから?)他にもシングルトンなども試したのですが、ダメでした。 分かる方いらっしゃいましたらお願いします。
132 :
デフォルトの名無しさん :2006/01/31(火) 12:05:22
テンプレ使えッつっとるだろうがボケナス童貞
133 :
デフォルトの名無しさん :2006/01/31(火) 13:02:50
>>129 private boolean runFlag;
private synchronized void setRunFlag (boolean bool) {
runFlag = bool;
}
private synchronized boolean isRun () {
return runFlag;
}
public void start (int port) {
setRunFlag(true);
ServerSocket ss = new ServerSocket(port);
ss.setSoTimeout(1000);
while(isRun()) {
try {
Socket socket = ss.accept();
new ServerSocketThread(socket).start();
} catch (SocketTimeoutException ex) {
// nop
} catch (Exception ex) {
// operation
}
}
try {
ss.clese;
} catch (Exception ex) {
// operation
}
}
public void stop () {
setRunFlag(false);
}
134 :
デフォルトの名無しさん :2006/01/31(火) 13:19:24
>133 ごめん、意味がわからんない・・
ステータス行に得点を表示させるにはどうしたらいいですか?
【 課題 】「0〜9」により構成される10進数を「A〜Z」により構成される26進数に変換するメソッドを 作成せよ、引数としてintを受け取り返り値としてStringを返すものとする。変換例をいかに示す 1->A 2->B 26->Z 27->AA 28->AB 【期限】2006/02/08までにお願いします。
>>22 >>23 です。
頂いたプログラム上手く行きました!有難う御座いました!
お礼と動作確認が送れてしまい申し訳有りませんでした…。
139 :
デフォルトの名無しさん :2006/01/31(火) 19:52:05
テンプレも使えないヤツばかりになってきたな。
140 :
デフォルトの名無しさん :2006/01/31(火) 20:43:44
>>136 public static String convert(int n) {
if (n <= 0) {
return "";
}
n--;
StringBuilder sb = new StringBuilder();
do {
sb.append(c[n%26]);
n = n/26;
} while(n > 0);
return sb.toString();
}
>136 26が「Z」という文字一文字だったら27進法なんじゃないの? 例に「ゼロ」への対応方法がないのでそのへんよく分かりません。 と書き込もうと思ったら>140さんが答え出した。
>142 いいんじゃないの? テンプレ使わなくても答え貰える、と思われても困るし。
隣のC言語宿題スレのテンプレはいろいろ書かねばならないけど、 このJava宿題スレのテンプレでは、【課題】の一つだけが必須で外は任意なのに それすらもやはり面倒なのか。。。
145 :
140 :2006/01/31(火) 21:19:52
バグがあったorz
146 :
141 :2006/01/31(火) 21:21:37
>145 というより問題がおかしいと思う。 気にしなくていいと思うよー。
147 :
140 :2006/01/31(火) 21:35:20
バグ修正しました。 private static char[] c = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'}; public static String convert(int n) { if (n <= 0) { return ""; } StringBuilder sb = new StringBuilder(); do { n--; sb.insert(0, c[n%26]); n = n/26; } while(n > 0); return sb.toString(); }
public static String convert(int n){ if(n <= 0){ return "ぬるぽっ"; } switch(n){ case 1:retrun "A";break; case 2:retrun "B";break; case 3:retrun "C";break; case 4:retrun "D";break; (中略) case 2147483645:retrun "FXSHRXU";break; case 2147483646:retrun "FXSHRXV";break; case 2147483647:retrun "FXSHRXW";break; default:return "ガッ"; } }
149 :
256 :2006/01/31(火) 22:57:09
課題】JSPとサーブレットを使い下記の問題を解きなさい。 DBに接続する為にIDとパスワードを入力画面を作成。 入力後、「Select」ボタンを押下しテーブルの選択画面に進む。 テーブルを選択(vegetable)を選択し、「Select」ボタンを押下 し「テーブル名」と「vegetable(列名 No・Name・Money)」の表を 表示させる。 又「Back」ボタンを押下しIDとパスワードを入力画面に戻る プログラムを作成せよ。 【期限】2月2日ですがなるべく早くお願いします 【補足】ほんとにわかりません。丸投げですいません。
未来から来るとはよほど切羽詰ってるな。
public class rei12 extends Applet implements Runnable { Thread th = null; int x; Image img; public void init() { img = getImage(getDocumentBase(),"img1.jpg"); } public void start() { if (th == null) { th = new Thread(this); th.start(); } } public void run() { for (x=0; x<400; x=x+10) { repaint(); try { th.sleep(100); } catch(InterruptedException e){} } } public void paint(Graphics g) { g.drawImage(img,x,10,this); } 画像を左右にはね返させたいんですが。おねがいします。
みなさ〜んテンプレに従わない輩は無視ですからね〜
154 :
デフォルトの名無しさん :2006/02/01(水) 00:07:30
天ぷら!!
155 :
152 :2006/02/01(水) 00:20:45
import java.applet.Applet; import java.awt.*; import java.awt.event.*; 追加です、行が多いんで。朝までにおねがいします。
こいつまかせて寝る気だぞ
朝、呆然としてる
>>152 が楽しみだ
逆に皆で書きまくってどれをコピペすればいいのか迷わせるのも手かと。
でもみんな間違ってるみたいなw
つーかこいつevent.*インポートして何したいんだろうな
event.* = 画像が動く。
161 :
デフォルトの名無しさん :2006/02/01(水) 04:17:31
>>156-160 せっかく課題を出してくれてる人を茶化してどうするんだ。
このスレの序列は
課題を出す人 >>>>> 回答プログラムを書く人 >>>>
コードを書かずに薀蓄だけの人 >>>> 傍観者
だ。勘違いも程ほどに。
162 :
デフォルトの名無しさん :2006/02/01(水) 08:17:38
回答はボランティアだ。 勘違いも程々に
>>140 ありがとうございました。StringBuilder クラスははじめてみたので、
StringBufferクラスに置き換えましたが…
164 :
デフォルトの名無しさん :2006/02/01(水) 11:30:47
>>18 です
課題提出が明後日なので
答えて頂ける方おりませんでしょうか?
自分もいろいろ考えたんですが全くわからないので
お願いします。
>>161 別にこっちとしては問題なくてだらだらやってるだけでもいいから
出題者は最上位じゃない
気に入らなければやらない
特にテンプレに従わないのはやらない
166 :
デフォルトの名無しさん :2006/02/01(水) 15:42:44
やっぱ2chってくだらない輩の集まりか。 働けボケが
回答得られなかったからって・・( ´,_ゝ`)プッ そのセリフそっくりそのまま返しますよ ちなみに自分は大学生で試験期間ですがもう試験は終わりました
【課題】DOMを使い クラスの数 クラス当たりのメソッドの数 アクセス属性毎の数 属性の数 メソッドの行の数 メソッド毎のメソッド呼び出しの数 をXMLから取り出しテキストファイルに出力するプログラムを作成せよ。 【Ver】j2sdk1.4.2 【期限】2月2日午前中です 時間が無くてすいません
import java.applet.Applet; import java.awt.*; import java.awt.event.*; public class reidai14 extends Applet implements Runnable,KeyListener,ActionListener { Thread th = null; int x=10, y=200, vx=10, vy=10, xl=65, yl=65; int px=300, py=500, vpx=10, pl=64; int xmin=0, xmax=600, ymin=0, ymax=500; int sleep_time = 128; int n=2; Button bt1,bt2; Image img; public void init() { img = getImage(getDocumentBase(),"img1.jpg"); bt1 = new Button("スタート"); bt2 = new Button("ストップ"); add(bt1); add(bt2); bt1.addActionListener(this); bt2.addActionListener(this); requestFocus(); addKeyListener(this); } public void start() { if (th == null) { th = new Thread(this); th.start(); } } 前半
170 :
デフォルトの名無しさん :2006/02/01(水) 17:12:07
>>168 問題の意味がいまいち不明なのですが・・・・
ソースコードから、XML要素を取り出すとはどういう事ですか?
public void run() { while (th != null) { if(n == 1) { if (x <= xmin || x >= xmax-xl) vx = -vx; if (y <= ymin ) vy = -vy; if (y >= ymax-yl) { if( px-xl < x && px+pl > x ) vy = -vy; } x = x+vx; y = y+vy; if(y > ymax+100) th = null; repaint(); } try { th.sleep(sleep_time); } catch(InterruptedException e){} } } public void paint(Graphics g) { g.setColor(Color.black); g.drawLine(xmin,ymin,xmin,ymax); g.drawLine(xmin,ymin,xmax,ymin); g.drawLine(xmax,ymin,xmax,ymax); g.setColor(Color.red); g.drawLine(px,py,px+pl,py); g.drawImage(img,x,y,this); } つづきです
public void stop( ) { if (th != null) { th = null; } } public void keyPressed(KeyEvent e) { switch (e.getKeyCode()) { case KeyEvent.VK_RIGHT : px=px+vpx; if(px > xmax-pl) px=xmax-pl; break; case KeyEvent.VK_LEFT : px=px-vpx; if(px < xmin) px=xmin; break; } repaint(); } public void keyReleased(KeyEvent e) { } public void keyTyped(KeyEvent e) { } public void actionPerformed(ActionEvent e) { if(e.getSource() == bt1) n=1; else n=2; requestFocus(); } } スタートボタンを押すと,600×500 ピクセル上のあちこちに,画像が 20回だけ表示される。画像の表示間隔は最初の 5回が 900ミリ秒,10回 までが800ミリ秒,15回までが 700ミリ秒,20回までが 600ミリ秒とし, 画像が表示されている間にその画像の上をマウスでクリックすると得点が 加算され,ステータス行に現在の得点を表示する。ゲームが終わったら 「ゲームオーバー,あなたの得点は〜点です」という表示が画面上に されて終わりになるようなゲームを作成せよ。 今週までです、全然わからないのでおねがい。
173 :
デフォルトの名無しさん :2006/02/01(水) 17:35:11
174 :
168 :2006/02/01(水) 17:38:54
>>171 さん
ありがとうございます。
あらかじめJavaのソースを(何でもよい)をJavaMLをつかいXMLに変換をしています。
そのXMLからクラスの数etcを取り出す
言葉足らずで御免
175 :
172 :2006/02/01(水) 17:41:24
これを改造するんです。おねがいします。
176 :
ザイン帝國軍帥・伯壬旭(小島露観) :2006/02/01(水) 22:33:31
177 :
デフォルトの名無しさん :2006/02/01(水) 23:52:46
String[] que=int String[]{"問1","問2","問3","問4","問5"}; String[] ans=int String[]{"選1","選2","選3","選4","選5"}; ●メニューの「書込」によって上(qus・ans)のデータをレコードに保存し、 「読込」によってレコードに保存↑したデータを表示せよ。 MIDP2.0 J2ME 明日の昼までです。宜しくお願いします。時間がなくてすみません(>_<")
178 :
デフォルトの名無しさん :2006/02/02(木) 00:13:26
宿題ではないのですが・・・独学でJavaをやり始めた者です。 九九表を作りたいのですが 12345 246810 ・・・・ という風に作りたいのにどうしても 1 2 3 4 と縦に並んでしまいます。 基本中の基本なのでしょうが本当に分からないのでどなたか教えてください。 お願いします。
179 :
デフォルトの名無しさん :2006/02/02(木) 00:15:03
>>178 System.out.print
System.out.println
>>180 ハッ・・・・・ですよね、すっかり忘れていました。
どうもありがとうございました。
182 :
デフォルトの名無しさん :2006/02/02(木) 00:55:57
あげ
iアプリですが、どうか助けてください・・・ 【 課題 】四則計算(電卓) 【 用語 】 【 期限 】すでにすぎてます・・・ 【 Ver 】DOJA4.1 【 補足 】 丸投げです、四則計算は足し算、引き算のみで再現しなさいと条件が付いています
184 :
121 :2006/02/02(木) 03:17:51
>>121 です。
返答が遅くなって申し訳ございません。
>>151 ありがとうございました。
しかし、
private LinkedHashMap<Data, Integer>() distribution = new LinkedHashMap<Data, Integer>();
のところに”<identifier>がありません”というエラーが出てしまいます。
お手数ですが、別の方でも構いませんので、正しく直せる方、よろしくお願いいたします。
185 :
デフォルトの名無しさん :2006/02/02(木) 03:28:48
【 課題 】「歩く」がテーマの、いくつかのキーフレームを中割法で内挿して作る キーフレームアニメーションを作れ。アニメーションの ボタン操作などでスピードを変化できるようにすること 【 期限 】2月3日 【 補足 】はっきり言って課題の意味すら良く分かりません。よろしくお願いします
186 :
ザイン帝國軍帥・伯壬旭(小島露観) :2006/02/02(木) 05:01:58
187 :
ザイン帝國軍帥・伯壬旭(小島露観) :2006/02/02(木) 05:04:18
>>168 プログラム引数で読み込みXMLファイル名を指定してください。
実行すると、output.txt に結果が書き込まれます。
188 :
151 :2006/02/02(木) 06:04:37
>184 ヴァージョンの指定がなかったので、JDK5.0使ってます。 もう今から外に出るので、自分でなんとかするか人に頼ってください。
189 :
デフォルトの名無しさん :2006/02/02(木) 07:34:46
190 :
168 :2006/02/02(木) 07:38:42
ザイン帝國軍帥・伯壬旭(小島露観)様ありがとうございます。
一晩中やっていましたがどうにもならずにおりました。
>プログラム引数で読み込みXMLファイル名を指定してください。
コマンドプロンプトで
java HW114 test.xml
の入力で大丈夫ですよね?
出力されたtxtには
:ソースコード
とのみ出力されています。
XMLファイルにはclassとかはあります。(以下XMLの最初の方のみ出してます)
<?xml version="1.0" encoding="UTF-8" ?>
- <java-source-program xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance " xsi:noNamespaceSchemaLocation="F:\javaML\xml\javaml-2.xsd">
- <java-class-file name="C:/test/sample.java">
<import module="java.io.*" />
- <class name="sample" id="Lsample;" idkind="type">
6時頃からまた悩んでいます。
191 :
168 :2006/02/02(木) 07:41:41
190ですが、訂正を >java HW114 test.xml は java HW114 sample.xml の入力間違いです。
192 :
デフォルトの名無しさん :2006/02/02(木) 10:32:31
193 :
デフォルトの名無しさん :2006/02/02(木) 10:36:34
JavaMLのPDFにあった、このサンプルでテストしたら成功したのですが。。。 <?xml version="1.0" encoding="UTF-8"?> <java-source-program name="FirstApplet.java"> <import module="java.applet.*"/> <import module="java.awt.*"/> <class name="FirstApplet" visibility="public"> <superclass class="Applet"/> <method name="paint" visibility="public" id="meth-15"> <type name="void" primitive="true"/>
194 :
177 :2006/02/02(木) 10:46:27
早めにお願いします
【 課題 】試験の点数(0〜100の整数値)を読み込んで平均を出すプログラム。 点数の入力の終わりは文字列”END”の入力で示す。 正常でない入力に対しては警告を出す。 【 期限 】できるだけ早くお願いします 初歩ですみませんがお願いします。 購入した入門書では最初に人数を入力する方法しか 載っていなかったので分かりませんでした。 すみませんが、教えてください。
196 :
ザイン帝國軍帥・伯壬旭(小島露観) :2006/02/02(木) 14:53:28
197 :
デフォルトの名無しさん :2006/02/02(木) 16:23:01
次の行列計算をjavaで組みなさい。 0.3 0.5 0.2 3 (1.0、0)( 0.4 0.3 0.3 ) ※3は3乗 0.2 0.3 0.5 for文と配列のみで組むこと。
199 :
168 :2006/02/02(木) 17:20:42
私の方では未だ同じ状態です。もう時間を過ぎていますが、最後までやりたいと思いますのでお時間頂けたらと思います。
193さんが出来ていますので、私のJavaMLの設定が問題かと考えています。
http://paginas.fe.up.pt/~aaguiar/javaml/javaml-2.0-RC5.zip をダウンロードし、jikes.exeと
cygwinのcygwin1.dllをクラスパスのある同じフォルダに入れて、そのフォルダの中でjikes.exe +ux FirstTest.java
を行い、出来たXMLファイルをコマンドプロンプトから
java HW114 FirstTest.java.xml
と行い、output.txtが出来ます。しかし中を見ると同じ
:ソースコード
となります。
200 :
195 :2006/02/02(木) 17:23:30
>>198 有難うございました。とても助かりました。
201 :
デフォルトの名無しさん :2006/02/02(木) 17:36:44
>>199 すみませんが、XMLファイルをここにコピペしてください。
202 :
168 :2006/02/02(木) 17:37:51
上はこれを参照して行いました。
http://samurai.pose.jp/java/archives/2004/12/javaml.php で午後からもう一つやってみたのがこちら(こちらの方が古いようですが)から
http://www.badros.com/greg/JavaML/javaml-for-jikes-1.12.tar.gz #でもこの中のbadros-javaml-www9.pdfと193さんのXMLが違うようです。
jikes-xmlの設定が必要な様ですがよくわかっていません。以下jikes-xml
#!/bin/sh -
CLASSPATH=$CLASSPATH:/usr/lib/netscape/java/classes/java40.jar:/usr/lib/netscape/473/netscape/java/classes/java40.jar:.; export CLASSPATH
# +ulx is needed to get column information
# +ux for no column information
# +c for comment
JIKES_PATH=$HOME/jikes-1.12/src/jikes
#exec $JIKES_PATH -nowrite +c +B +ulx "$@"
exec $JIKES_PATH -nowrite +B +ux "$@"
また別にjava40.jarが必要なのか?
203 :
デフォルトの名無しさん :2006/02/02(木) 17:43:39
>>202 よろしければソースコードを変換した「XMLファイル」をここにコピペしてください。
それで試してみます。
>>197 の1×2行列と3×3行列のかけ算ができないのは私だけでしょうか?
205 :
168 :2006/02/02(木) 18:10:24
206 :
168 :2006/02/02(木) 18:12:24
201デフォルトの名無しさんが抜けておりました。失礼しました。
207 :
デフォルトの名無しさん :2006/02/02(木) 19:26:09
>>168 人にレス返すときは
>>レス番号
という風に書いてくれ。読みにくい。
209 :
デフォルトの名無しさん :2006/02/02(木) 20:17:14
【 課題 】コマンドライン引数として2進数を1つ受け取って その値を10進数として表示するプログラム、Sample1.javaを作成しなさい。 なお、try、catchのブロックを付け加え、例外処理も行うこと。 【 期限 】2月6日までにお願いします。 【 補足 】切羽詰ってます。丸投げですいませんがお願いします。
>209 // BinaryToDecimal.java public class BinaryToDecimal { public static void main(String[] args) { if( args.length != 1 ) { System.out.println( "使いかた:java BinaryToDecimal [2進数]" ); return; } try { int binary = Integer.parseInt( args[0], 2 ); System.out.println( binary ); } catch( NumberFormatException nfe ) { System.out.println( "2進数ではありません:" + args[0] ); } } }
211 :
デフォルトの名無しさん :2006/02/02(木) 20:27:46
【課題 】入力した7つの数値から最大と最小の値を除いた後、 平均値を求めるプログラムを作成しなさい 7つの数値にはコマンドライン関数を用いること。 【 期限 】2月12日 【 補足 】お手数ですが、どうぞよろしくお願い致します。
212 :
168 :2006/02/02(木) 20:33:48
207デフォルトの名無しさん本当に有り難うございました!!! ソースファイル: クラスの数:1 クラス名:AppletFrame メソッドの数:2 publicメンバの数:2 メソッド名:startApplet ステートメントの数:5 メソッド呼出の回数:8 メソッド名:processEvent ステートメントの数:2 メソッド呼出の回数:2 無事私の方でも出ました。 ご協力いただいた皆様有り難うございました。
>211 // AverageDemo.java import java.util.Arrays; public class AverageDemo { public static void main(String[] args) { if( args.length != 7 ) { System.out.println( "使いかた:java AverageDemo [数値1] [数値2] ... [数値7]" ); return; } double[] numbers = new double[7]; boolean isError = false; for( int i=0; i<numbers.length; i++ ) { try { numbers[i] = Double.parseDouble( args[i] ); } catch( NumberFormatException nfe ) { System.out.println( "数値ではありません:" + args[i] + "(第" + (i+1) + "引数)" ); isError = true; } } if( isError ) return; Arrays.sort( numbers ); System.out.println( "最小値:" + numbers[0] ); System.out.println( "最大値:" + numbers[numbers.length-1] ); double sum = 0; System.out.println( "上記を除いた" ); for( int i=1; i<numbers.length-1; i++ ) { System.out.println( "・" + numbers[i] ); sum += numbers[i]; } System.out.println( "の平均は " + (sum/(numbers.length-2)) + " です。" ); } }
214 :
デフォルトの名無しさん :2006/02/02(木) 20:43:31
>>213 様
ご回答頂いてありがとうございます!!
216 :
177 :2006/02/02(木) 21:26:32
助けてください(〒_〒)
217 :
デフォルトの名無しさん :2006/02/02(木) 21:52:56
課題】ある確立にしたがって、ランダムに記号が表示されるプログラムの作成 (記号 全5種類【◎ ● ○ ▲ ☆ 】) ◎...10% ●・・・50% ○・・・20% ▲・・・13% ☆・・・7% の確立で設定されています 【 期限 】2月12日 【 補足 】面倒な設定で申し訳ございません。どうか宜しくお願い致します!
>217 package net._2ch.tech; import java.util.Random; public class _217 { private static final String hoge = "◎◎◎◎◎◎◎◎◎◎●●●●●●●●●●●●●●●●●●●\\ ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●○○○○○○○○○○○○○○○○○○\\ ○○▲▲▲▲▲▲▲▲▲▲▲▲▲☆☆☆☆☆☆☆"; private static final Random rnd = new Random( ); public static void main( final String args[] ){ final int n = rnd.nextInt( hoge.length( )); System.out.println( hoge.substring( n, n + 1 )); } }
219 :
218 :2006/02/02(木) 22:12:10
あ、コピペミスった。 2個所ある \\改行 は消しといて。
220 :
デフォルトの名無しさん :2006/02/02(木) 22:27:03
>>204 すいません、打ちかた間違えました
0.3 0.5 0.2 3
(1 0 0)( 0.4 0.3 0.3 ) ※3は3乗
0.2 0.3 0.5
1×3行列と3×3行列の掛け算です、すいません。
221 :
デフォルトの名無しさん :2006/02/02(木) 22:34:12
>>219 助かります!
どうもありがとうございました!
222 :
256 :2006/02/02(木) 23:00:24
>>176 様
遅くなりましたがご回答ありがとうございました。
何とかOKを頂けそうです。
223 :
デフォルトの名無しさん :2006/02/03(金) 00:13:41
お、回答率が上がってきたぞ!
224 :
209 :2006/02/03(金) 00:25:46
>>210 様
ほんとに助かりました。
細かく教えていただいてありがとうございます。
【 課題 】GUIをつかってボタンを押されたら入力された実数を1/2にするプログラム 【 期限 】今日(3日)です<(_ _)> 一旦プログラム内で512を与え、整数のみのプログラムを書いてみたのですが。(見よう見まねです) 入力された数を使うやり方と整数ではなく実数の範囲で計算するやり方が分かりません。 今の段階が下です。 どこをどう変えるかだけでもかまいません。丸投げ扱いでもかまいません。 お願いします。
226 :
225 :2006/02/03(金) 00:34:06
import java.awt.*; import java.awt.event.*; public class GUITest implements ActionListener{ public static void main(String args[]){ GUITest test=new GUITest(); } private TextField field=null; private GUITest() { Frame window=new Frame("GUIからの入力"); Button button=new Button("1/2倍にします"); button.addActionListener(this); window.add("North",button); field=new TextField("512"); window.add("Center",field); window.setSize(200,100); window.setVisible(true); } public void actionPerformed(ActionEvent e) { String d=null,s=null; s=field.getText(); try{ int i=Integer.parseInt(s); d=Integer.toString(i/2); }catch(NumberFormatException nfe){ d="入力は変換できません"; } field.setText(d); } }
227 :
デフォルトの名無しさん :2006/02/03(金) 00:35:24
【課題提示用テンプレ】 【 課題 】1.Webブラウザを動作させているクライアントのOS (Windows、Mac、UNIX)を判定して画面に表示するのと、 マウスポインタをMENUのどれかに重ねると、文字が大きくなったり、 文字色や背景が変わったりするもの。 【 期限 】提出期限、平成18年2月15日(16日のAM0:00 【 Ver 】希望なし 【 補足 】OSの判定はできました。しかしマウスオーバーの箇所で画像は大きくできるのですが 問題は文字なので文字を大きくする事ができません。 よろしくお願いします。
>>225-226 丸投げ扱いにさせてもらった。
// GUI225.java
package p225;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class GUI225 extends JFrame {
private JTextField txtNumber = new JTextField(10);
private JTextArea taOutput = new JTextArea();
private void btnActionPerformed() {
try {
String numstr = txtNumber.getText();
double half = Double.parseDouble(numstr) /2;
taOutput.append(numstr + "の半分は" + half + "\n");
} catch(NumberFormatException e) {
taOutput.append("数値を入力してください" + "\n");
}
}
private void createAndShowGUI() {
JFrame.setDefaultLookAndFeelDecorated(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
JPanel jPanel1 = new JPanel(new FlowLayout());
//続く
JButton btn = new JButton("半分にする"); btn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { btnActionPerformed(); } }); jPanel1.add(txtNumber); jPanel1.add(btn); JScrollPane jScrollPane1 = new JScrollPane(taOutput); add(jPanel1, BorderLayout.NORTH); add(jScrollPane1, BorderLayout.CENTER); Dimension dim = getToolkit().getScreenSize(); setBounds((dim.width-400)/2, (dim.height-300)/2, 400, 300); setVisible(true); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { new GUI225().createAndShowGUI(); }; }); } } // コメントや解説がなくて悪いが、以上。
230 :
225 :2006/02/03(金) 01:55:53
231 :
デフォルトの名無しさん :2006/02/03(金) 03:50:41
>>227 >>マウスポインタをMENUのどれかに重ねると
MENUとは具体的に何を指すのか教えてください。
232 :
デフォルトの名無しさん :2006/02/03(金) 03:54:17
グラフにグリッド入れようとしてるんですが、実数のため一部グリッドの数値が 5.9999....E120 とかいう表示になってしまいます。有効数字3桁で丸めたいの ですが、倍精度浮動小数点をうまいこと四捨五入できるアルゴリズムって ないでしょうか?
BigDecimal使え
分からないなら無理に答えてくれなくて結構です。 っていうか浮動小数点で扱ってるのに BigDecimal って アフォ ですか? 浮動小数点って何か分かってますか?
たまに非宿題人が釣りに来るスレですかここは 業務系しかやったことない人間もいる。察してやれ。
>>235 BigDecimal調べたんだろうな?
オイオイ 308 桁の BigDecimal 扱わせる気か
グリッド線引くだけだろ?どうせ、割り算して浮動小数点になっちゃったからって話と思われ。
>>233 で出してる例だけでも e120 と出てるが
科学技術演算なら固定小数点で済ますのはちょっと無理がある
そういえば任意精度固定小数点のクラスはあるのに浮動小数点版はないのな
まぁ多言語も科学技術演算はほとんど別ライブラリか
ちょっと強引だが Double.doubleToLongBits() で double のビットパターン取り出して 仮数部を自分で丸めてはどうか。実数を有効桁指定で丸めるのは C やってた頃に よくやってた気がするんだが、もう忘れたw 俺も思い出したい。誰か知ってたらヨロ
あれ、ここって宿題スレであってるよな?
ん、IEEE 754 見たら仮数部は 2 のべき乗で入ってるのか。なんか大変そうw
>>233 四捨五入でよければ、0.5を足して int にキャストをする(小数点以下切捨て)。
というのはどうでしょうか。
245 :
244 :2006/02/03(金) 09:37:39
有効数字3桁か・・・というか、質問スレじゃなかった_no みんなゴメンね
ちょっとベタだが、算術で仮数部と指数部に分解。 実数値 f、仮数部 a、指数部 b とする。 f = 0 の時は特殊解として省略。b が発散する。 f = a×10^b ここで b は整数、1≦a<10 とする 両辺の対数を取って log f = b + log a → b = log f - log a 0≦log a<1 より、log f≦log f - log a<1 + log f → floor(log f) = floor(log f - log a) b は整数より floor b = b 従って b = floor(log f)、a = f ÷ 10^b 後は仮数部 a を 1000 倍して四捨五入して元に戻せば有効数字 3 桁で丸めの 誤差を消せるだろう。まぁ有効数字 3 桁程度なら log 使っても影響はないだろうし。 だがまた double 型に戻すと丸めで同じことになるかもしれないので、このまま 仮数と指数に分けた状態でグリッドに乗せてやるのが良い。
間違えた ×log f≦log f - log a<1 + log f → floor(log f) = floor(log f - log a) ○log f≧log f - log a>-1+log f → ceil(log f) = ceil(log f - log a)、ceil b = b = ceil(log f) だな。
(´-`).。oO( 俺もBigDecimalにして丸めればいいと思うんだけど・・・ )
249 :
デフォルトの名無しさん :2006/02/03(金) 10:39:44
非常に曖昧な質問で申し訳ないんですが、皆さんのお知恵を拝借したく質問させていただきます。 大学の期末課題で表計算プログラムを書けというものが出たのですが、ほかのセルに入っている式を 参照する機能がありそれを調べて計算しなおすのにトポロジカルソートを使うようにという事なのですが、ネット、本等で調べても あまり良くわからず、困っています。何となくの実装の指針だけでも結構ですので教えていただけるとありがたいです。
251 :
デフォルトの名無しさん :2006/02/03(金) 17:26:44
【 課題 】逆行列を求め、その逆行列とほかの行列の掛け算をするプログラムを作成しなさい。 【 期限 】できれば今日中でお願いします。 【 補足 】つくっていただけるとなんでもよいのですが、下のような感じにしていただけると大変助かります。 import java.awt.*; import java.awt.event.*; class aiu { public static void main(String [] args) { double a[][] = {正方行列の宣言} double b[][] = {正方行列の宣言} //逆行列を求める。 static void inv(double a[][]) { 逆行列をもとめる } //求めた逆行列とほかの行列の掛け算をする。 static void kakezan(double a[][], double b[][]) { 行列の掛け算をする。 } } よろしくおねがいします
252 :
デフォルトの名無しさん :2006/02/03(金) 17:35:28
上のやつではいけてませんね。すいませんこちらでよろしくおねがいします。 【 課題 】逆行列を求め、その逆行列とほかの行列の掛け算をするプログラムを作成しなさい。 【 期限 】できれば今日中でお願いします。 【 補足 】つくっていただけるとなんでもよいのですが、下のような感じにしていただけると大変助かります。 class aiu { public static void main(String [] args) { double a[][] = {正方行列の宣言} double b[][] = {正方行列の宣言} gyaku(a) kake(a,b) } //逆行列を求める。 static void gyaku(double a[][]) { 逆行列をもとめる } //求めた逆行列とほかの行列の掛け算をする。 static void kake(double a[][], double b[][]) { 行列の掛け算をする。 } } よろしくおねがいします
253 :
?デフォルトの名無しさん :2006/02/03(金) 18:23:06
249です。以下に主だった2つのjavaファイルをのせます。TechCalc.javaは表計算のウィンドウを作る もので、MathExpression.javaは表に入力された式を解析し計算するものです。 今回わからないのは、主に、TechCalc内のrefreshメソッドの改善とそれに付随するメソッドの作成です。 この表計算のプログラミングには、通常のExcel同様、セルの参照機能があります。 なのである表が書き換えられたときにそれを参照しているセルの計算結果も変更したいのですが、そのときにこのままのやり方ですとあまりに手間がかかってしまいます。 そこで、教授曰くトポロジカルソートなるものを使えとのことなんですが、どうにも理解できません。多少の変更、実際にそのまま実装できるか等はあまり気にしません。 自分で理解して書き直すつもりですので、ある程度の指針だけでも示していただければと思います。 可読性の乏しいプログラムですが、よろしくお願いします。
254 :
デフォルトの名無しさん :2006/02/03(金) 18:30:17
255 :
249 :2006/02/03(金) 18:40:15
257 :
249 :2006/02/03(金) 19:46:24
ホントに場違いな質問で申し訳ないんですが… テンプレとは何なんでしょうか?
258 :
249 :2006/02/03(金) 19:48:22
ホントに場違いな質問で申し訳ないんですが… テンプレとは何なんでしょうか?
260 :
249 :2006/02/03(金) 20:46:44
【 課題 】
以下の機能を実現しなさい。
・セルに数式が入力され、その数式が計算可能な場合には表に計算結果を記載すること。
・入力された数式に文法上の誤りがあった場合には、エラーがあった旨を分かりやすく表示し、表のセルには「?」と表示すること。誤った入力の内容を保持し、メニュー直下の入力覧を用いて修正できるような仕組みは優秀なユーザインタフェイスです。
エラーメッセージは、GUIを拡張して、エラーメッセージを表示するエラー表示領域に出力するとよいでしょうね。標準エラー出力を使っても構いません(ショボイですが)。エラーが発生するごとにメッセージウィンドウを表示する方法も考えられますが、欝陶しいでしょうね。
・文法的に正しい数式が入力されたが、その数式が空のセルを参照したために評価時にエラーが発生する場合には、その数式の入力を許し、表には「?」と記載して下さい。赤くなくて構いません。
・入力された数式が文法的には正しいけれども、その数式が循環的な参照を含んでいて評価できないことがあります。その場合には、その数式の入力を許し、表には「?」と記載して下さい。赤くなくて構いません。
・セルの数式が直接的にあるいは間接的にそのセル自身を参照することを自己参照します。
・自己参照しているセルを直接的にあるいは間接的に参照するセルは循環的な参照を含んでいます。
・セルに数式が入力され、その数式が計算可能な場合には、その数式を直接的にあるいは間接的に参照するセルのうち計算可能なものすべてについて、
必要であれば再計算をして、正しい計算結果を表に記載すること。
・自己参照をするセルの数式が更新され、その結果、そのセルの自己参照がなくなった場合には、そのセルの計算結果を表に記載すること。
さらに、自己参照がなくなったセルを直接的あるいは間接的に参照するセル(「?」となっているはず)のうち計算可能なものすべてについて、再計算して正しい計算結果をセルに記載してください。
・十分に実用的な速度で計算できるように工夫してください。
【期限】今週中希望です
【補足】
>>253
261 :
デフォルトの名無しさん :2006/02/03(金) 21:08:05
263 :
262 :2006/02/03(金) 21:38:50
JDK5.0云々のやりとりって一度やってるのね。。忘れてたわw
264 :
262 :2006/02/03(金) 21:49:35
(1) private LinkedHashMap<Data, Integer> distribution = new LinkedHashMap<Data, Integer>(); →private LinkedHashMap distribution = new LinkedHashMap(); (2) init()メソッド内のdistribution.put()第2引数の整数 →new Integer()でくるむ。 例)distribution.put( new Data(COMPANY_A, TERM_NEW, false), new Integer(95) ); (3) int width = distribution.get(key) * 2; →int width = ((Integer)distribution.get(key)).intValue() * 2; 今度からはバージョンの指定してくれ。
そですねぇ。5.0 (1.5) から文法も変わってることですし。 JDK のバージョンは割と必須項目かも…?
266 :
デフォルトの名無しさん :2006/02/04(土) 00:07:14
初心者の俺でもわかる質問をお待ちしております。 他人の勉強は自分の勉強。
>>266 encode何だ?
Shift-JISでもEUCでもマトモに読めないんだが・・・
269 :
266 :2006/02/04(土) 00:54:25
270 :
266 :2006/02/04(土) 00:58:42
271 :
デフォルトの名無しさん :2006/02/04(土) 03:52:21
>>260 できれば、数式の文法について(セル指定の構文など)
教えてくだされ
ソースから読み取るのは、かなり辛いです。。。
272 :
>251-252 :2006/02/04(土) 12:58:40
>>262 ありがとうございます。
Matrix.javaの15行目を少し直すと無事使うことができました。
273 :
260 :2006/02/04(土) 13:12:30
>>271 私が今から書くことが果たして答えになっているかどうかはわかりませんが、
あとこれのほかに、Parse.javaというものがあります。これは式を、解析して
MathExpression.java内のどこで計算すればよいのかをわかるようにします。
そして、解析した引数の数によって、そして関数なのか演算子による演算なのかのよって
各々のevaluateメソッドによって振り分けられその場所場所で計算します。
セル参照についてですがMathExpression内のReferenceというクラスで、定義・計算されています。
不十分でしたら随時お知らせください。お願いします。
>273 正直な話、途中までできてるものをカスタマイズするという課題だと 動くものを提供してくれないと手が打ちづらいんだわ。 中途半端にモノをもらっても困る。 自分がもし>255のTechCalc.javaとMathExpression.javaだけ与えられて >260の課題を解こうとしたときにできると思う?
【課題】 インストラクション: ダイヤル式金庫クラスを作成。(開けるコードも) コンストラクタ 金庫の中身の金額,開く右回転左回転のパターンの配列 メソッド (public) 「金庫ドアノブ」引数なし,戻り値,中身の金額 「ダイヤルを右に回しn目盛へ」引数,int n;何目盛にあわす 「ダイヤルを左に回しn目盛へ」引数,int n;何目盛にあわす フィールド (private) 中身の金額 金庫が開く右回転,左回転のパターンの配列 現在の位置とどのステップまで進んだかの状態 お願いします
276 :
260 :2006/02/04(土) 13:45:03
スミマセン…では明日学校に行くのでそのときにすべて載せます。 それまでお待ちいただければと思います。
277 :
デフォルトの名無しさん :2006/02/04(土) 13:49:57
>>41 で
10進数を書いてもらったのですけど8進数で出力のやり方教えてもらえませんか?
System.out.printf("%o",9);
279 :
デフォルトの名無しさん :2006/02/04(土) 14:31:46
>>278 さん
すみませんよくわかりませんどこに入れたらいいんですか?
280 :
デフォルトの名無しさん :2006/02/04(土) 14:42:09
>>277自己解決しました
282 :
デフォルトの名無しさん :2006/02/04(土) 22:56:23
java.awt.swing って何ですか?API見てもわかんネイっす。
そんな変なもんねぇ
>>282 awtとswingって何が違う?
っていうかこんな質問してダイジョウブ化俺?
【 課題 】Bilingalクラスを修正し、コンストラクタで年齢を指定して インスタンスを作れるように書き換えなさい。 さらにクラスの動作をテストするmainメソッドを追加し、 動作を確認しなさい。 【 期限 】2月5日(ギリギリですみません) 【 補足 】与えられているソースを下は貼ります。 課せられている実行結果は以下です [実行結果] 年齢は15歳 Age is 15 years old こう見えても疲れまんねん I am tired even if I am seen this way
287 :
286 :2006/02/05(日) 01:04:37
interface Japanese{ public void 走る(); public int 年齢(); } interface English{ public void run(); public int age(); } class Bilingual implements Japanese,English{ public void 走る(){ System.out.println("こう見えても疲れまんねん"); } public int 年齢(){ return age(); } public void run(){ System.out.println("I am tired even if I am seen this way"); } public int age(){ return 20; } }
>286 Bilingal内に以下を付け加えたらよろし。 int age; public Bilingual(int old){ this.age = old; } public static void main(String[] args) throws IOException { try { BufferedReader buf = new BufferedReader(new InputStreamReader(System.in)); System.out.println("年齢を入力してください"); int num = Integer.parseInt(buf.readLine()); Bilingual bil = new Bilingual(num); System.out.println("年齢は" + bil.年齢() + "歳"); System.out.println("Age is " + bil.age() + "years old."); bil.走る(); bil.run(); } catch (NumberFormatException e) { System.out.println("数字を入力してください"); } }
289 :
286 :2006/02/05(日) 02:56:34
回答有難うございます。付け加えたところ Bilingual.java:17: シンボルを見つけられません。 シンボル: クラス InputStreamReader 場所 : Bilingual の クラス BufferedReader buf = new BufferedReader(new InputStreamReader(System.in)); というエラーが出てしまいました。いろいろ試してみたのですがどこを直せば良いのでしょうか。 お願いします。
291 :
286 :2006/02/05(日) 03:24:18
>>290 よく分からず下の3つimportで実行はできたのですが
import java.awt.*;
import java.awt.event.*;
import java.io.*;
>>286 の下から3行目で20が戻されて表示が20歳で出てしまいます。
age()を入れるのかと試したらループのような表示がでました。
すみません教えてください。
292 :
286 :2006/02/05(日) 03:32:21
すみません上で書いたようにage()いれてました^^; ageいれたらできました。有難うございました。 importについてはこれで大丈夫でしょうか
>>292 問題ない。
# 個人的な信念としてはクラス別にimportしてる
# どのクラスインポートしてるか分かるじゃん
【課題】キーボードから、数値を2つ入力待ちをする間 10秒ごとに画面に * を出力するプログラムを作成。 2つの値が入力されたら、2つを足した値を画面に出力し終了する。 お願いします
295 :
デフォルトの名無しさん :2006/02/05(日) 15:38:23
>>266 とりあえず、日本語みたいなところは文字化けしてんな
一応ソースは見れるようだ
【 課題 】以下のMyFrame2を修正し「終了」ボタンを押すと終了するようにしなさい。 import java.awt.*; import java.awt.event.*; public class MyFrame2 extends Frame{ static public void main(String args[]){ Frame window=new MyFrame2(); window.setSize(300,120); window.setVisible(true); } public void paint(Graphics g){ g.setColor(Color.blue); g.setFont(g.getFont().deriveFont(Font.PLAIN,50.0f)); g.drawString("Hello World",10,80); } public MyFrame2(){ Control control=new Control(); addWindowListener(control); Button button=new Button("終了"); button.addActionListener(control); add("South",button); } class Control extends WindowAdapter{ public void windowClosed(WindowEvent e){ System.exit(0); } public void windowClosing(WindowEvent e){ dispose(); } } } おねがします。
>297 現状だとコンパイルエラーになっている button.addActionListener(control); を以下の5行で書き換える。 button.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent ae) { System.exit(0); } });
299 :
297 :2006/02/05(日) 22:16:50
>>298 なるほど、そのような使い方があるのですね。
まだ全然分からなくて助かりました。有難うございます。
【課題】 キーボードから1行づつ文字を入力する 1行入力したら別のスレッドでa.txtというファイルにその1行を書き出す プログラム実行中はファイルをひらきっぱなし と いうプログラムを作成 余裕がある人は,配列やvectorなしで,連続に書き出された場合でも正しく スレッドが起動され,正しく順番どおりに書き出されるようにすること お願いします
301 :
デフォルトの名無しさん :2006/02/06(月) 07:16:31
302 :
301 :2006/02/06(月) 07:19:36
さらに補足ですが、 if (inputNum <= 2) { System.out.print("2以上の数値を入力してください。"); の所で、2以下を入力するとまた入力画面に戻したいのですが、 こういう場合はfor文を使った方が良いのでしょうか?
303 :
301 :2006/02/06(月) 09:07:26
すいません、また補足です… 課題に2枚目がありましたorz(オンラインでPDFで配布されています。) 二つのクラスを用いてプログラムを書けとのことです。 入力するところまでをメインのクラスに、素数の計算を別のクラスでやるみたいで、 コンストラクターが混ざってくるみたいです。こうなってくるとお手上げ状態なので、 丸投げでよろしくお願いします。 一応、課題を書き直しておきます。 【 課題 】入力した数値の素数を求めるプログラムを組みなさい。 例えば100と入力した場合、2〜97、10000と入力した場合、2〜9973と すべて表示されるようにすること。 (※)課題にはここで、素数の例が書かれています。 注意)最低でも二つのクラスを用いてプログラムを組むようにする事。 クラスがひとつの場合はプログラムが正しく動作をしても評価をつけることが出来ません。
【課題】画像ファイルを複数読み込み、Timerクラスを用いて画像のアニメーション表示を行う以下のプログラムを完成せよ。 /* AnimeFrame.java */ import java.awt.*; import javax.swing.*; class AnimeFrame extends JFrame { private AnimePanel animePanel; public AnimeFrame() { super(); Toolkit tk = Toolkit.getDefaultToolkit(); Image[] images = new Image[10]; for (int i = 0; i < 10; i++) { images[i] = tk.getImage("anime" + i + ".gif"); } AnimePanel animePanel = new AnimePanel(images); FlowLayout flow = new FlowLayout(); animePanel.setLayout(flow); getContentPane().add(animePanel); } }
305 :
304 :2006/02/06(月) 10:40:25
/* AnimePanel.java */ import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Image; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JPanel; import javax.swing.Timer; public class AnimePanel extends JPanel implements ActionListener { private Image[] images; private Timer timer; public int x,y; private int joutai = 0;
306 :
304 :2006/02/06(月) 10:42:07
public AnimePanel(Image[] images) { super(); setBackground(Color.white); setPreferredSize(new Dimension(640, 480)); this.images = images; timer = new Timer(2000, this); timer.start(); } public void paintComponent(Graphics g) { super.paintComponents(g); if(joutai < 10){ g.drawImage(images[joutai], x, y, this); joutai++; } } public void actionPerformed(ActionEvent e) { repaint(); } }
307 :
304 :2006/02/06(月) 10:43:38
/* AnimeFrameApp.java */ class AnimeFrameApp{ public static void main(String[] args) { AnimeFrame x = new AnimeFrame(); x.setSize(200, 300); x.setLocation(10, 10); x.setVisible(true); } } 以上です。おながいします……。
309 :
301 :2006/02/06(月) 14:13:42
>>308 ありがとうございます。こういう風に記述すれば良いのですね。
310 :
デフォルトの名無しさん :2006/02/06(月) 17:05:40
【課題】プログラムのデッドロックを回避する方法を考えてください class DedLocka { DedLockb b; public synchronized void fn1(int c) { System.out.println("fn1"+c); try { Thread.sleep(1000); } catch(Exception e) {} if(c == 1) b.fn2(0); } } --------------------------------------------- 続く
311 :
デフォルトの名無しさん :2006/02/06(月) 17:06:51
---------------------------------------------------------- class DedLockb { DedLocka a; public synchronized void fn2(int c) { System.out.println("fn2"+c); try { Thread.sleep(1000); } catch(Exception e) {} if(c == 1) a.fn1(0); } } class Th1 extends Thread { DedLocka obj; public Th1(DedLocka c) { obj = c; } public void run() { obj.fn1(1); } } class Th2 extends Thread { DedLockb obj; public Th2(DedLockb c) { obj = c; } public void run() { obj.fn2(1); } } class test { public static void main(String av[]) { DedLocka a = new DedLocka(); DedLockb b = new DedLockb(); a.b = b; b.a = a; Th1 t1 = new Th1(a); Th2 t2 = new Th2(b); t1.start(); t2.start(); }}
312 :
デフォルトの名無しさん :2006/02/06(月) 17:10:06
【課題】デッドロックを起こすコードを書きなさい。 【期限】2月7日17時まで よろしくお願いします。
313 :
007 :2006/02/06(月) 18:31:38
問題 主人一人で頭を刈る小さな床屋がある。1時間当たり平均λ(人)の客がランダムに床屋に到着する。 1時間当たり平均μ(人)の指数サービスに従う。待合室は1人だけ入ることができる。満員のときは客 は帰ってしまう。 @この待ち行列系はケンドールの記号で表すとどのような系か? Aλ=0.8、μ=1のとき、この床屋で客が待たされる確率を計算せよ。 Bこの床屋には平均何人の客がいることになるか計算せよ。 プログラムじゃないけどこの問題を解いてください。 お願い!助けて!!!! 留年がかかってます!
315 :
007 :2006/02/06(月) 18:33:35
>>313 いや、ここJAVAの宿題やるところだから別行けよ
てか
>>314 のはマルチポストでぐぐって意味が分かったらもう来るな
317 :
デフォルトの名無しさん :2006/02/06(月) 20:42:59
【問題】 コマンドラインで指定したファイルをコピーするプログラムを作成しなさい。 ・コピー元ファイル名およびコピー先ファイル名は必須項目である。 ・指定する順序はどちらでもよい。 【期限】2月8日まで 「ここ」と書いてある場所がわかりません。よろしくお願いします。 import java.io.*; public class Ec{ public static void main(String[] args){ BufferedWriter bw=null; BufferedReader br=null; String in=""; String out=""; String line; for(int i=0;i<args.length;i++){ if(args[i].equals(args(ここ)){ in=args[ここ]; }else if(args[i].equals(args[ここ])){ out =args[ここ]; } }
318 :
317の続き :2006/02/06(月) 20:43:51
if(ここ){ System.out.println("Usage:"); System.out.println("-iコピー元ファイル名"); System.out.println("-oコピー先ファイル名"); System.exit(1); } try{ br=new BufferedReader(new ここ(in)); bw=new BufferedWriter(new ここ(out)); while((line=br.ここ)!=null){ bw.write(line); bw.ここ; } }catch(FileNotFoundException fnfe){ System.out.println("指定したファイルは存在しません"); }catch(IOException ioe){ System.out.println("ファイル乳sh靴緑エラー"+ioe); }finally{ try{ if(br !=null){br.close();} if(bw !=null){bw.close();} }catch(Exception e){ }}}}
>>316 import java.io.*;
class A017 {
public static void main(String[] args) {
if (args.length < 2) {
System.out.println("パラメーターを入力してください。 [コピー元] [コピー先]");
return;
}
try {
InputStream in = new FileInputStream(args[0]);
OutputStream out = new FileOutputStream(args[1]);
try {
byte[] buff = new byte[4096];
int f = 0;
while ((f = in.read(buff)) != -1) {
out.write(buff, 0, f);
}
} finally {
in.close();
out.close();
}
} catch (FileNotFoundException fie) {
System.out.println("ファイルが見つかりません。");
} catch(IOException ie) {
System.out.println("コピーできません。");
}
}
}
320 :
319 :2006/02/06(月) 21:02:13
>>300 同期なしの超シンプル版。close()してない。
// HW300.java
import java.io.*;
public class HW300 extends Thread {
private static final String PATH = "a.txt";
private String data;
private static PrintWriter pw;
HW300(String str) { data = str; }
public void run() {
if (pw == null) {
try { pw = new PrintWriter(new FileWriter(new File(PATH))); }
catch (IOException e) { e.printStackTrace(); }
}
pw.println(data); pw.flush();
}
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
for (String str = null; (str = br.readLine()) != null;) {
if ("".equals(str)) break;
new HW300(str).start();
} }
catch (IOException e) { e.printStackTrace(); }
}
}
// Writerってスレッドセーフ? 教えて!偉い人!!
>300 題意は満たすはず。多分。 package net._2ch.tech; import java.io.*; public class _300 { private static PrintWriter writer; private static class Cuckoo implements Runnable { private final String toWrite; Cuckoo( final String s ) { this.toWrite = s; } public void run( ) { writer.println( toWrite ); } } public static void main( final String args[] ) throws Exception { final BufferedReader br = new BufferedReader( new InputStreamReader( System.in )); writer = new PrintWriter( new FileWriter( "a.tst" )); while( true ) { final String s = br.readLine( ); if( s == null ) break; final Thread th = new Thread( new Cuckoo( s )); th.start( ); th.join( ); } br.close( ); writer.close( ); } }
323 :
317 :2006/02/06(月) 22:16:53
324 :
317 :2006/02/06(月) 22:24:32
何度もすいません
>>317-318 の「ここ」って書いてあるところを穴埋めして欲しかったのですが・・・
できればでいいですのでよろしくお願いします
325 :
デフォルトの名無しさん :2006/02/06(月) 22:54:47
>325
package net._2ch.tech;
import java.io.*;
import java.nio.channels.*;
import java.net.*;
public class _325 {
public static void main( final String args[] ) throws Exception {
final URLConnection srcURL = new URL( "
http://i.yimg.jp/images/main13.gif " ).openConnection( );
final int len = srcURL.getContentLength( );
final FileChannel dst = new FileOutputStream( "main13.gif" ).getChannel( );
final InputStream is = srcURL.getInputStream( );
final ReadableByteChannel src = Channels.newChannel( is );
dst.transferFrom( src, 0, len );
src.close( );
dst.close( );
}
}
>>326 ありがとうございます。
正常に動作し、課題を提出することが出来ました
【課題】 java JavaCopy a.txt b.txt とすれば,a.txtというファイルを b.txtにコピーする JavaCopyクラスを作成してください。 ※コピーできるのは,テキストファイルだけでOK(バイナリファイルはコピーできなくても良いです。) 【期限】今週水曜日 お願いします
330 :
デフォルトの名無しさん :2006/02/07(火) 08:40:08
【課題】 コマンドライン引数として2進数を1つ受け取りその値を10進数として 表示するプログラムを作成せよ。 正の2進数のみを考慮すればよい 【期限】 2月8日まで お願いします。
>331 画像用意してくれないとやる気起きないっすわー。
>328 import java.io.*; public class JavaCopy { public static void main(String[] args){ if( args.length != 2 ) { System.out.println( "使いかた:java JavaCopy [入力ファイル名] [出力ファイル名]" ); return; } BufferedReader br = null; BufferedWriter bw = null; try { if( !new File(args[0]).exists() ) { System.out.println( "コピー元のファイルが存在しません。" ); return; } if( new File(args[1]).exists() ) { System.out.println( "コピー先のファイルは既に存在しています。\n上書きしますか?[Y/n]" ); BufferedReader keyInput = new BufferedReader( new InputStreamReader(System.in) ); if( !keyInput.readLine().equals("Y") ) return; } br = new BufferedReader( new FileReader(args[0]) ); bw = new BufferedWriter( new FileWriter(args[1]) ); for( String line; (line=br.readLine()) != null; ) { bw.append( line + "\n" ); bw.flush(); } System.out.println( "コピーしました。" ); } catch( FileNotFoundException fnfe ) { fnfe.printStackTrace(); } catch( IOException ioe ) { ioe.printStackTrace(); } finally { try { if( bw != null ) bw.close(); if( br != null ) br.close(); } catch( IOException ioe ) {} }}}
>330 >209で既出。 >210に答えあり。
>334 ログ読んでなくてすみません。
336 :
デフォルトの名無しさん :2006/02/07(火) 13:20:14
【課題】 五目並べのプログラム。 マスは10×10。 禁じ手は考慮しない。 GUIで作成。 【期限】今週水曜日 お願いします。
>>336 > GUIで作成。
少しばかりの恐怖を感じた
>>337 グリッド10,10で
ボタン100個並べればいいんでない?
J++で作ってみよーかな
J++って何??
>>340 M$が改造しまくって、挙句にjava非互換の烙印を押された悪魔です
>>341 非互換ってことはJavaのソース使えないの?
まさかVMで動かないとか・・・
>>342 そういえばJ#とか、javaVMじゃないからjava互換じゃないんだよなぁ
何よJ#って・・・・M$もうダメポ
JavaじゃないけどM$次あたりC*とか♭とかCΩとか出してきたりして・・・・
見た目Javaなのにjavaxパッケージの使えないJ#キモい
347 :
syosinsya :2006/02/07(火) 22:01:42
すいません 教えてください 大変困っています。 サーバサイドプログラミングで、 サーバ側のWEBアプリから、クライアントのEXEを起動しようと試みています。 環境 サーバ OS:windows アプリ:WEBアプリ(Struts) ブラウザ:IE6 クライアント OS:windows アプリ:.NETアプリ(EXEファイル) 処理としては、クライアントからWEBアプリ(Struts)にアクセスして、 Aというリンク文字列をクリックすると、ローカルにインストールしてある .NETで開発したEXEを起動するといったものです。 クライアントの、EXEパスは絶対パスでOKです。 サーバのWEBアプリから、アクセスしてきたクライアントのEXEを起動はできますでしょうか? どのようにすればよいでしょうか? できれば、JAVAで制御しようと思っているのですが、 JAVAで無理であれば、JavaScript・VBScriptの何れかでも結構です。 ご教授いただきたいのですが、よろしくお願いします。
つ [ClickOnce]?
350 :
デフォルトの名無しさん :2006/02/08(水) 04:02:44
申し訳ないですがお願いいたします・・・・・ JAVAアプレットにて動作させるという課題なのですが、 プログラミングが苦手で、正直どうしていいかわかりません。。。 課題としては、 リアルタイム処理時計表示付き電卓(四則演算のみでよい) じゃんけんゲーム(プレイヤー VS CPU) ストップウオッチ(停止・開始・リセットボタンが必要) の3つなのですが、最低限の表示でいいので、極力簡単なソースで お願いできないでしょうか? 身勝手な丸投げですが、よろしくお願いいたします・・・・
351 :
デフォルトの名無しさん :2006/02/08(水) 04:08:52
補足いたしますと、 osはwindows コンパイラは、LSIコンパイラです。 実行すると、JAVAアプレット画面が開き、そこから操作が出来る物を 作成しろとの事です。。 大変申し訳ないのですが、よろしくお願いいたします。 期限はほとんどありません・・・
>350-351 >1のテンプレ使え。 じゃないと誰も答えてくれません。 じゃんけんは昔作った。wikiにあるはず。
353 :
デフォルトの名無しさん :2006/02/08(水) 09:37:21
>>352 【 課題 】@ジャンケンゲーム。
A時計表示機能付き電卓。
Bストップウオッチ
【 用語 】なし
【 期限 】来週水曜日(2/15)
【 Ver 】なし
【 補足 】JAVAアプレットにて表示・動作するものを作成。
osはwindows
@時刻は秒まで表示しリアルタイムで更新。計算機能は四則演算のみ
Aスタート・ストップ・リセットの機能を有したアプレット。計測単位は1/10秒単位まで
Bコンピューター対戦型で、あいこの判定もできるもの。
こんな感じです。。。よろしくお願いいたします・・・
354 :
デフォルトの名無しさん :2006/02/08(水) 10:53:21
複数のbinaryFileをある条件で書き換え連結し一つの binaryfile(matome)を作るプログラムを作っています。 どう組むかの案として以下の2つがあります。 案1 binaryfileを書き換える度に、binaryfile(matome)に書き込む。 案2 書き換えた複数のbinaryfileをbyte配列にまとめておき最終的に binaryfile(matome)に書き込むようにする。 この二つを考えているのですが、できればスタンダードな方法を取りたい どの案がいいと思いますか、どっちでもよいという意見でも いいので教えてください。
>>354 >できればスタンダードな方法を取りたい
binaryfile(matome)なんてファイルは「作らない」
これがスタンダード
357 :
354 :2006/02/08(水) 11:05:17
>>355 (整合性をとる必要のある)冗長はデータは作らない。
是、プログラミングの常識ね。
逆に、どうして binaryfile(matome) なるものが必要なのか、
合理的に説明できるか?
単純に複数の binaryfile があるだけで事足りるのでは?
360 :
デフォルトの名無しさん :2006/02/08(水) 15:54:44
【 課題 】ユーザーDBから引数で渡された値をキーにし、ユーザーの全情報を取得するSELECT文を記述してください。(丸投げできなくてすいません) 【 補足 】MST_USER(ユーザテーブル)引数user,pass 【期限】2月9日9時まで 自分なりには strSQL ="SELECT * FROM MST_USER WHERE USER_ID =" + user.id + " and USER_PASSWORD =" + pass + ";"; だと思っていたのですが動かないのでお助けください。
361 :
デフォルトの名無しさん :2006/02/08(水) 16:26:06
>>360 ";"が不要なのでは?
エラーログを見てみては?
362 :
360 :2006/02/08(水) 16:59:58
こんな感じです Exception in thread "main" java.lang.NullPointerException at DBC.S_User(DBC.java:185) at Log.login(Log.java:35) at DBSAMPLE19.getLOG(DBSAMPLE19.java:78) at DBSAMPLE19main(DBSAMPLE19.java:29)
>>360 ,
>>362 userって何クラスなのよ? user.idと書いてるのを見るとStringじゃないだろうし。
364 :
デフォルトの名無しさん :2006/02/08(水) 17:13:21
>>362 DBC.javaの185行目にnullを参照してる所があるのでは?
【 課題 】1〜10の整数のコマンドライン引数を受け取り、それと等しい英語を表示するプログラム。 受け取った引数の数も表示しなさい。引数がない場合、1〜10以外の整数の場合はエラーメッセージを出力してプログラムを終了しなさい。 英語の文字列はString型配列に格納。 【 期限 】2月9日中 【 補足 】丸投げです。よろしくお願いします。
>>365 public class Number{
static String num[] = {"one","two","three","four","five","six","seven","eight","nine","ten"};
public static void main(String args[]){
if(args.length > 0){
try{
for(int i = 0; i < args.length; i++){
int n = Integer.parseInt(args[i]);
if(n >= 1 && n <= 10) System.out.println("引数:" + n);
System.out.println("単語:" + num[n - 1]);
}
}catch(Exception e){
System.out.println("不正な引数です。");
System.exit(-1);
}
}
}
}
367 :
360 :2006/02/08(水) 22:31:57
>>364 え〜っと185行目が
strSQL ="SELECT * FROM MST_USER WHERE USER_ID =" + user.id + " and USER_PASSWORD =" + pass + ";";
です。
>>360 その user か、user.id か、 pass のどれかに null が入っているんじゃねーの?
370 :
360 :2006/02/08(水) 23:35:23
>>364 >>368 指摘の通りなおしていったらSQL文は通りましたありがとうございます。
次の問題で、取得した値でユーザーを作成。とあるのですが、
while(result.next())
{
// 取ってきたデータを取得
/*JavaAPIを使用し、取得した値を変数に格納*/
iUser_Id=result.getInt("USER_ID");
strUser_Name=result.getString("USER_NAME");
iUser_Pass=result.getInt("USER_PASSWORD");
// ユーザーを作成
//問6 取得した値でユーザーを作成
user.id=iUser_Id;
user.name=strUser_Name;
user.password=iUser_Pass;
}
sta.close();
return user;
こんな感じで当ているのでしょうか?前回のが通ったあとにここら辺でエラーが出ました。
371 :
デフォルトの名無しさん :2006/02/09(木) 00:27:56
[1] 授業単元:プログラミング
[2] 問題文 テーブル「A1」「A2」「A3」に登録されているデータを奇数・偶数に分けて、昇順・降順にソートし、
奇数は昇順の配列で「B」テーブルに、偶数は降順の配列で「C」テーブルに格納する。
ただし、main関数より下位関数にパラメータを渡す場合は、共通の構造体に格納し、その構造体のポインタを渡すようにする。
下位関数よりさらに下位の関数にパラメータを渡す場合はこの限りではない。
[3] 環境
[3.1] OS:winXP
[3.2] コンパイラ名とバージョン: BCC
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限:2006/02/10
[5] その他の制限:使用可能なのはstdio.hくらいです。
現状としては、ソートをしてB・Cの配列に格納するということはできてます。ですが、まだ構造体の扱いになれていないので、パラメーターを一つの構造体にまとめて構造体に対するポインタを
渡すという方法がいまいちわかりません。
大変申し訳ありませんが、どなたかご教授いただけませんでしょうか?
コンパイルエラーがでてしまいますが、書きかけのソースを書きのURLにアップさせていただきました。
http://proxy.f2.ymdb.yahoofs.jp/bc/74d693f8/bc/41d4/datasort.c.c?bcVQh6DBKw9.VknJ デバッグライトの挿入のしすぎで少し醜いかと思われますが、ご容赦くださいペコリ(o_ _)o))
>>371 マルチ乙
# いや、C++宿題スレの誤爆なのだろうけどw
373 :
365 :2006/02/09(木) 02:00:45
動作確認したところ、num.java:1:クラスNumberはpublicであり、ファイルNumber.javaで宣言しなければなりません。 と表示されました。
>>373 それぐらいの動作確認、サルでもできるだろ
日 本 語 が 読 め な い の か
376 :
365 :2006/02/09(木) 03:00:18
>>374 いや、本当に申し訳ありません。動作確認をということで適当なファイルにぶちこんで試して脊髄反射で報告を投稿していました。
>>375 わざわざ、そんなところまで教えていただきありがとうございます。
>>376 ( ´Д`) こんなところにもう一人の俺が・・・
378 :
デフォルトの名無しさん :2006/02/09(木) 13:29:59
>>370 userのインスタンス(例 User user = new User() )が作られていますか?
nullであった場合同様の例外が↓で発生します
user.id=iUser_Id;
379 :
365 :2006/02/09(木) 13:33:56
改めて動作報告をします。 確認してみたところエラーは出ないのですが、引数がない、範囲外の引数が入力された時エラーメッセージが出力されないままプログラムが終了しました。
380 :
デフォルトの名無しさん :2006/02/09(木) 15:19:38
【課題】 タイマーの表示する数字(0〜9の10種類)は画像ファイルを用いること(Webのアクセスカウンターで利用する画像などを流用してもよいが著作権には注意すること) タイマーの動作は100msec以下の桁で表示してカウントダウンすること(スレッドの動作タイミングなどを確かめながら、なるべく正確に表示されるか調整すること) 上記の指定条件以外の動作や見た目は各自の自由にしてよい(ウィンドウの形や大きさ、GUIパーツの利用など見た目やユーザインタフェースのほか、カウンターがゼロになった際の動作についてなどは自由!) ソースコードの中身について アプリケーションの動作や操作方法に関する説明をコメント(//)として記述すること 他人がプログラムの処理内容を解釈し易いよう、随所にコメントで注釈を書くこと 【期限】 できるだけ早くお願いします
>380 画像くれ。探すのめんどくさい。 ってゆーかそもそも何をするプログラムを作るのかって書いてなくね?
382 :
デフォルトの名無しさん :2006/02/09(木) 23:35:09
dasd
383 :
デフォルトの名無しさん :2006/02/09(木) 23:36:32
【課題】sql操作 【補足】sql操作でuserを返したいのですがNullPointになってしまいます。おかしな部分がありましたら直していただきたいです。 /*引数:id:IDpass:パスワード戻り値:なし*/ public User Select_User(int id,int pass){ User user = new User(); // sql文格納文字列 String strSQL = ""; try{ // ステートメントを生成 Statement sta = connect.createStatement(); // SQL文を生成 //ユーザーDBから引数で渡された値をキーにし、ユーザーの全情報を取得するSELECT文を記述してください。*/ strSQL ="SELECT * FROM USER WHERE USER_ID =" + id + " and USER_PASSWORD =" + pass; ResultSet result = sta.executeQuery(strSQL); while(result.next()){ // 取ってきたデータを取得 //JavaAPIを使用し、取得した値を変数に格納 iUser_Id=result.getInt("USER_ID"); strUser_Name=result.getString("USER_NAME"); iUser_Pass=result.getInt("USER_PASSWORD"); strUser_Name = DbStringTrim(strUser_Name); //取得した値でユーザーを作成。 user.id=iUser_Id; user.name=strUser_Name; user.password=iUser_Pass; } sta.close(); return user; }catch(SQLException sqle){ System.out.println("ユーザーの取得に失敗。"); return null; }}
384 :
デフォルトの名無しさん :2006/02/10(金) 01:49:40
【 課題 】コマンドラインから読み込んだCSVを次の出力イメージのようなXMLに変換し出力させよ。 【 期限 】来週月曜日(2/13) 【 補足 】変換過程で合計(金額の3行目以下の合計)と残金(金額の2行目から合計を引いたもの)を出力するみたい。 入力 suitou.csv 摘要,金額,備考 元金,5000, 飲食費,560,ジュース、パン 交通費,450,電車 以下省略 出力イメージ suitou.xml <出納> <項目> <摘要>元金</摘要><金額>5000</金額><備考 /> </項目> <項目> <摘要>飲食費</摘要><金額>560</金額><備考>ジュース、パン</備考> </項目> <項目> <摘要>交通費</摘要><金額>450</金額><備考>電車</備考> </項目> 途中省略 <項目> <摘要>合計</摘要><金額>4750</金額><備考 /> </項目> <項目> <摘要>残金</摘要><金額>250</金額><備考 /> </項目> </出納>
385 :
デフォルトの名無しさん :2006/02/10(金) 02:24:12
386 :
384 :2006/02/10(金) 02:28:53
>>385 そんなこと言わないでYoヽ(`Д´)ノウワーン
でも参考先は[java csv xml]をキーにググったときにも引っかからなかったからありがとう。
また試してみる。
387 :
教えて下さい :2006/02/10(金) 08:28:22
Download the Square.java and SquareTester.java files. Complete the Square class by implementing it as specified by the documentation provided. Run the SquareTester class to test your Square class
>>387 まずは、英語教育スレ(あるかわからんが)に逝け
389 :
384 :2006/02/10(金) 10:37:27
>>386 だめっぽい。たすけて。おねがい。(´・ω・`)
391 :
デフォルトの名無しさん :2006/02/11(土) 01:53:46
>>389 Suitou.java
public class Suitou {
private String tekiyou = "";
private String kingaku = "";
private String bikou = "";
public String getBikou() {
return bikou;
}
public void setBikou(String bikou) {
this.bikou = bikou;
}
public String getKingaku() {
return kingaku;
}
public void setKingaku(String kingaku) {
this.kingaku = kingaku;
}
public String getTekiyou() {
return tekiyou;
}
public void setTekiyou(String tekiyou) {
this.tekiyou = tekiyou;
}
}
392 :
デフォルトの名無しさん :2006/02/11(土) 02:15:18
>>389 Kadai384.java -1
import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.util.ArrayList;
import org.w3c.dom.DOMImplementation;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.ls.DOMImplementationLS;
import org.w3c.dom.ls.LSOutput;
import org.w3c.dom.ls.LSSerializer;
import com.sun.org.apache.xerces.internal.dom.DOMImplementationImpl;
public class Kadai384 {
public static void main(String[] args) throws Exception {
toXml(toSuitous(args[0]));
}
393 :
デフォルトの名無しさん :2006/02/11(土) 02:17:33
>>389 Kadai384.java -2
private static void toXml(Suitou[] suitous) throws Exception {
Suitou head = suitous[0];
DOMImplementation domImpl = new DOMImplementationImpl();
DOMImplementationLS domImplLS = (DOMImplementationLS) domImpl.getFeature("LS", "3.0");
Document doc = domImpl.createDocument(null, "出納", null);
Element suiElem = doc.getDocumentElement();
for (int i = 1; i < suitous.length; i++) {
suiElem.appendChild(doc.createTextNode("\n"));
Element koElem = doc.createElement("項目");
koElem.appendChild(doc.createTextNode("\n"));
suiElem.appendChild(koElem);
Element tekiElem = doc.createElement(head.getTekiyou());
tekiElem.appendChild(doc.createTextNode(suitous[i].getTekiyou()));
koElem.appendChild(tekiElem);
Element kinElem = doc.createElement(head.getKingaku());
kinElem.appendChild(doc.createTextNode(suitous[i].getKingaku()));
koElem.appendChild(kinElem);
Element biElem = doc.createElement(head.getBikou());
biElem.appendChild(doc.createTextNode(suitous[i].getBikou()));
koElem.appendChild(biElem);
koElem.appendChild(doc.createTextNode("\n"));
}
suiElem.appendChild(doc.createTextNode("\n"));
LSOutput lsOutput = domImplLS.createLSOutput();
LSSerializer lsSerializer = domImplLS.createLSSerializer();
FileOutputStream fos;
fos = new FileOutputStream("suitou.xml");
lsOutput.setByteStream(fos);
lsSerializer.write(doc, lsOutput);
fos.close();
}
394 :
デフォルトの名無しさん :2006/02/11(土) 02:18:33
>>389 Kadai384.java -3
private static Suitou[] toSuitous(String csv) throws Exception {
BufferedReader br = new BufferedReader(new FileReader(csv));
ArrayList list = new ArrayList();
String s = null;
while ((s = br.readLine()) != null) {
String[] l = s.split(",");
Suitou suitou = new Suitou();
suitou.setTekiyou(l[0]);
suitou.setKingaku(l[1]);
if (l.length > 2)
suitou.setBikou(l[2]);
list.add(suitou);
}
return (Suitou[]) list.toArray(new Suitou[list.size()]);
}
}
395 :
391 :2006/02/11(土) 02:27:47
しまった、合計と残金を忘れてた。
【課題】 彼女をつくれ 【期限】2月14日 【Ver 】1.4 全然出来なくて困ってます 以前にも質問しましたが、期限が短すぎるという事で駄目でした。 どなたかよろしくお願いします
Ver1.4かあ、1.5なら楽にできるんだが、残念。
398 :
384 :2006/02/11(土) 10:34:35
>>391-395 ありがとう。感激。(*・w・)
今まで単一ファイルのものしかやってなかったんだけど、これコンパイルどうやるの。
>>398 Kadai384.javaの方をコンパイルすれば勝手にSuitou.javaもコンパイルされる
400 :
384 :2006/02/11(土) 13:41:01
>>399 ありがとう。
コンパイルしてからKadai384.classやSuitou.classと同じディレクトリにsuitou.csvをおいて
java Kadai384 suitou.csv
と打ったら、以下のエラーっぽいのが出た。
Exception in thread "main" org.w3c.dom.DOMException: INVALID_CHARACTER_ERR: An i
nvalid or illegal XML character is specified.
at com.sun.org.apache.xerces.internal.dom.CoreDocumentImpl.createElement
(Unknown Source)
at Kadai384.toXml(Kadai384.java:33)
at Kadai384.main(Kadai384.java:18)
そういえば、コンパイルするときにも以下のものが。意味がわからなかった。
K:\java\suitoujava>javac Kadai384.java
注: Kadai384.java の操作は、未チェックまたは安全ではありません。
注: 詳細については、-Xlint:unchecked オプションを指定して再コンパイルしてくださ
い。
K:\java\suitoujava>javac -Xlint:unchecked Kadai384.java
Kadai384.java:67: 警告: [unchecked] raw 型 java.util.ArrayList のメンバとしての
add(E) への無検査呼び出しです。
list.add(suitou);
^
Kadai384.java:70: 警告: [unchecked] raw 型 java.util.ArrayList のメンバとしての
<T>toArray(T[]) への無検査呼び出しです。
return (Suitou[]) list.toArray(new Suitou[list.size()]);
^
警告 2 個
402 :
384 :2006/02/11(土) 14:02:35
ああ、出力がxmlなのか
>>400 とりあえず、「無検査呼び出しです」でぐぐれば?
オウム返しの質問じゃ、答える側がかわいそうです。
そんなことは分かってるよっ、というなら、話は別ですがね。
>>400 例外が発生したのは入力データ(suitou.csv)のエンコードのせいだと思う
コンパイル時の警告はJava2 5.0 TigerのArrayやList等でジェネリクスに
よる明示的な型指定がされてないよって言ってるだけだと思う
バージョンの記入は必須にしようよ。 5.0云々のやりとりは流石にもう飽きた。
407 :
405 :2006/02/11(土) 14:28:02
>>400 この行を→BufferedReader br = new BufferedReader(new FileReader(csv));
String encoding="EUC-JP"; // ここはsuitou.csvのエンコーディングにあわせる
FileInputStream fis = new FileInputStream(csv);
BufferedReader br = new BufferedReader(new InputStreamReader(fis, encoding));
に変えてみれ。
408 :
384 :2006/02/11(土) 14:32:24
>>404 おっしゃるとおりググって、
javac -source 1.4 -Xlint:unchecked Kadai384.java
と入力したら、問題ありませんでした。コードのバージョンが違うみたいですね。
知りませんでした。
>>405 suitou.csvの文字コードを「UTF-8 CR+LF」から「SJis CR+LF」にかえたら
うまくいき、suitou.xmlが出力されました。(suitou.xmlの文字コードは「UTF-8 LF」になってます。どうしてだろ。)
>>391-395 ありがとう
409 :
384 :2006/02/11(土) 14:36:57
>>408 間違えました。
誤:suitou.xmlの文字コードは「UTF-8 LF」になってます。
正:suitou.xmlの文字コードは「UTF-8N LF」になってます。
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・↑
410 :
405 :2006/02/11(土) 14:56:20
>>408 suitou.xmlの文字コードを変えたかったら
この行の後に→lsOutput.setByteStream(fos);
lsOutput.setEncoding("Shift_JIS"); // Shift_JISにしたい場合
を入れればいい
JavaのioのデフォルトエンコーディングはUnicodeだべ?
411 :
デフォルトの名無しさん :2006/02/11(土) 15:03:28
91ですがプラグラムを作れる方お願いできないでしょうか?
シュッ・シュッって何の音ですか?
>>411 > 連立常微分方程式を使ったr=10,l=0.1,c=0.001,q=0.1の時の
> r*dq/dt+l*d^2q/dt^2+q/cのプログラムを教えていただけませんか?
dt≒Δtとおくと
r*dq/dt+l*d^2q/dt^2+q/c=0
⇔ r*Δq/Δt+l*Δ(Δq/Δt)/Δt+q/c=0
⇔ 0+0+0.1/0.001=0
となるんだが…
414 :
デフォルトの名無しさん :2006/02/11(土) 15:28:15
ルンゲクッタを使ってどのようにすればいいのかが分かりません
プログラムとかいうレベルじゃないな
417 :
デフォルトの名無しさん :2006/02/11(土) 15:53:44
分からないのでお願いします
418 :
デフォルトの名無しさん :2006/02/11(土) 19:29:12
IEの画面名に //http:xxxxx画面名 MicroXXXXXって表示されます。なんで?
420 :
デフォルトの名無しさん :2006/02/11(土) 19:42:46
インターネットエクスプローラのはなしじゃね?
421 :
391 :2006/02/11(土) 19:51:30
>>384 Suitou.java
public class Suitou {
private String tekiyou = null;
private String kingaku = null;
private String bikou = null;
public Suitou() {
}
public Suitou(String tekiyou, String kingaku, String bikou) {
this.tekiyou = tekiyou;
this.kingaku = kingaku;
this.bikou = bikou;
}
public String getBikou() {
return bikou;
}
public void setBikou(String bikou) {
this.bikou = bikou;
}
public String getKingaku() {
return kingaku;
}
public void setKingaku(String kingaku) {
this.kingaku = kingaku;
}
public String getTekiyou() {
return tekiyou;
}
public void setTekiyou(String tekiyou) {
this.tekiyou = tekiyou;
}
}
422 :
391 :2006/02/11(土) 19:53:47
>>384 Kadai384.java -1
import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.w3c.dom.DOMImplementation;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.ls.DOMImplementationLS;
import org.w3c.dom.ls.LSOutput;
import org.w3c.dom.ls.LSSerializer;
import com.sun.org.apache.xerces.internal.dom.DOMImplementationImpl;
public class Kadai384 {
public static void main(String[] args) throws Exception {
Suitou[] suitous = toSuitous(args[0]);
int gankin = sumGankin(suitous, "元金");
int shuppi = sumShuppi(suitous, "費");
suitous = addSuitou(suitous, new Suitou("合計", String.valueOf(shuppi),
null));
suitous = addSuitou(suitous, new Suitou("残金", String.valueOf(gankin
- shuppi), null));
toXml(suitous);
}
423 :
391 :2006/02/11(土) 19:54:47
>>384 Kadai384.java -2
private static Suitou[] addSuitou(Suitou[] suitous, Suitou suitou) {
List<Suitou> list = new ArrayList<Suitou>(Arrays.asList(suitous));
list.add(suitou);
return (Suitou[]) list.toArray(new Suitou[list.size()]);
}
private static int sumGankin(Suitou[] suitous, String tekiyou) {
int gankin = 0;
for (int k = 0; k < suitous.length; k++)
if (suitous[k].getTekiyou().equals(tekiyou))
gankin += Integer.parseInt(suitous[k].getKingaku());
return gankin;
}
private static int sumShuppi(Suitou[] suitous, String endWithOfTekiyou) {
int shuppi = 0;
for (int m = 0; m < suitous.length; m++)
if (suitous[m].getTekiyou().endsWith(endWithOfTekiyou))
shuppi += Integer.parseInt(suitous[m].getKingaku());
return shuppi;
}
424 :
391 :2006/02/11(土) 19:59:28
>>384 Kadai384.java -3
private static void toXml(Suitou[] suitous) throws Exception {
Suitou head = suitous[0];
DOMImplementation domImpl = new DOMImplementationImpl();
DOMImplementationLS domImplLS = (DOMImplementationLS) domImpl.getFeature("LS", "3.0");
Document doc = domImpl.createDocument(null, "出納", null);
Element suiElem = doc.getDocumentElement();
for (int i = 1; i < suitous.length; i++) {
suiElem.appendChild(doc.createTextNode("\n"));
Element koElem = doc.createElement("項目");
koElem.appendChild(doc.createTextNode("\n"));
suiElem.appendChild(koElem);
Element tekiElem = doc.createElement(head.getTekiyou());
tekiElem.appendChild(doc.createTextNode(suitous[i].getTekiyou()));
koElem.appendChild(tekiElem);
Element kinElem = doc.createElement(head.getKingaku());
kinElem.appendChild(doc.createTextNode(suitous[i].getKingaku()));
koElem.appendChild(kinElem);
Element biElem = doc.createElement(head.getBikou());
biElem.appendChild(doc.createTextNode(suitous[i].getBikou()));
koElem.appendChild(biElem);
koElem.appendChild(doc.createTextNode("\n"));
}
suiElem.appendChild(doc.createTextNode("\n"));
LSOutput lsOutput = domImplLS.createLSOutput();
LSSerializer lsSerializer = domImplLS.createLSSerializer();
FileOutputStream fos = new FileOutputStream("suitou.xml");
lsOutput.setByteStream(fos);
lsOutput.setEncoding("Shift_JIS");
lsSerializer.write(doc, lsOutput);
fos.close();
}
425 :
391 :2006/02/11(土) 20:01:03
>>384 Kadai384.java -4
private static Suitou[] toSuitous(String csv) throws Exception {
BufferedReader br = new BufferedReader(new FileReader(csv));
ArrayList<Suitou> list = new ArrayList<Suitou>();
String s = null;
while ((s = br.readLine()) != null) {
String[] l = s.split(",");
Suitou suitou = new Suitou();
switch (l.length) {
case 3:
suitou.setBikou(l[2]);
case 2:
suitou.setKingaku(l[1]);
case 1:
suitou.setTekiyou(l[0]);
}
list.add(suitou);
}
return (Suitou[]) list.toArray(new Suitou[list.size()]);
}
}
426 :
384 :2006/02/11(土) 22:00:33
>>421-425 (
>>391 )
合計と残金の出力の分も作ってくれてありがとう。(なおかつ、コードを5.0にしてくれて)
XSLでごりごりやってたけど、こっちのほうがきれいで良いです。
もうそろそろ寝れそうです。目が痛いや。
ただ、実行してみると合計の値と残額の値とが逆に出力されます。
>>422 のshuppiとgoukeiの部分に問題があるのかと思い、
いろいろ書き換えてみたけれど、ソースの意味がわからないので…orz
今のところ根本的には解決できていません。(表示だけなら何度かできています。)
427 :
384 :2006/02/11(土) 22:08:48
>>426 また間違えた。
誤:表示だけなら何度かできています。
正:表示だけなら何とかできています。
・・・・・・・・・・・・・・・・↑
428 :
391 :2006/02/11(土) 22:18:57
>>426 >【 補足 】変換過程で合計(金額の3行目以下の合計)と残金(金額の2行目から合計を引いたもの)を出力するみたい。
これって、
合計=出費の全額
残金=元金-合計
って意味じゃないの?
429 :
384 :2006/02/11(土) 22:42:03
>>428 (
>>391 )
長い間お付き合いありがとうございます。もうしばらくお付き合いお願いします。
>合計=出費の全額
>残金=元金-合計
確かに、そのとおりです。
いま、もう一度
>>421-425 までのソースを新たにファイルを作り実行しましたが、
出力されるsuitou.xmlでは合計、残金ともに違ってました。
以下に入力ファイルと出力ファイルの内容を記します。
430 :
384 :2006/02/11(土) 22:44:26
入力ファイル名:suitou.csv 文字コード:Shift_Jis 摘要,金額,備考 元金,5000, 飲食費,560,ジュース、パン 交通費,450,電車 振込,2180, 手数料,70, 貯金,1000,
431 :
384 :2006/02/11(土) 22:45:36
出力ファイル名:suitou.xml 文字コード:Shift_Jis <?xml version="1.0" encoding="Shift_JIS"?> <出納> <項目> <摘要>元金</摘要><金額>5000</金額><備考/> </項目> <項目> <摘要>飲食費</摘要><金額>560</金額><備考>ジュース、パン</備考> </項目> <項目> <摘要>交通費</摘要><金額>450</金額><備考>電車</備考> </項目> <項目> <摘要>振込</摘要><金額>2180</金額><備考/> </項目> <項目> <摘要>手数料</摘要><金額>70</金額><備考/> </項目> <項目> <摘要>貯金</摘要><金額>1000</金額><備考/> </項目> <項目> <摘要>合計</摘要><金額>1010</金額><備考/> </項目> <項目> <摘要>残金</摘要><金額>3990</金額><備考/> </項目> </出納>
432 :
391 :2006/02/11(土) 23:03:21
なるほど。 適用=××費ならば出費 で見てたけど、そうじゃないのね。了解。 ところで、CSVの中にある貯金って出費扱いでいいの? んでもって、3行目以降は全て出費扱いでOK? それとも、3行目以降に入金と出費が混在する? 混在するなら入金と出費の判別が必要だから、 何かしらルール(+−とか▲とか)が必要になるよ。
つかrelaxer使えよ。
434 :
384 :2006/02/11(土) 23:27:18
>>432 >>384 などでの説明が足らず誤解させてしまってすみません。
この場合、csvファイルの3行目以降はすべて出費扱いでお願いします。
【 課題 】音楽曲のダウンロードサービス用の画面インタフェース作成 【 期限 】2月13日 【 補足 】丸投げです。 画面サイズ240x320 顧客情報として 名前(ローマ字表記)、メールアドレス、会員番号(数字5桁) を画面上の英数字ボタンで入力する。 ダウンロードサービス対象曲は3つ以上のカテゴリーでそれぞれ20曲とする。 ダウンロードしたい曲の指定は画面上のボタンで操作する。 サービス利用の確認画面を用意する。 操作の取り消し機能は必要ない。
436 :
391 :2006/02/12(日) 00:06:42
>>434 じゃあ、Kadai384.javaをこんな風に書き換えて。
int shuppi = sumShuppi(suitous, "費");
を
// int shuppi = sumShuppi(suitous, "費");
にするか、削除して。
で、
private static int sumShuppi(Suitou[] suitous) {
int shuppi = 0;
for (int m = 2; m < suitous.length; m++)
shuppi += Integer.parseInt(suitous[m].getKingaku());
return shuppi;
}
を追加して。
あと、
private static int sumShuppi(Suitou[] suitous, String endWithOfTekiyou)
を削除するか、コメントアウトするか、前に、
@SuppressWarnings("unused")
を追加して。
駄目だったらKadai384.javaをもう一度貼るから言って。
437 :
391 :2006/02/12(日) 00:09:55
あ、抜けてた。 int shuppi = sumShuppi(suitous); を追加して。
438 :
384 :2006/02/12(日) 00:44:29
>>436-437 (
>>391 )
うまくいきました。入力ファイルを変えても、合計も残金もぴったり合いました。
>>391 何度も時間を割いてくれて本当にありがとう。
これでようやく眠れます。二日分寝てきますね。
では風呂に入ってきます。
441 :
435 :2006/02/12(日) 07:47:14
>>440 お時間あればお願いします。わざわざすみません。
重ね重ね誠に恐縮ですがお願いします。
【問題】
コマンドラインで指定したファイルをコピーするプログラムを作成しなさい。
・コピー元ファイル名およびコピー先ファイル名は必須項目である。
・指定する順序はどちらでもよい。
【補足】
?の穴埋めです。実は
>>317-318 で同じ事を質問し
>>319-320 さんが答えてくれましたが、
学校のほうで「穴埋めでなければ不可である」ときました。
本当に困っています。どうかよろしくお願いします。
【期限】
2月13日までです。
import java.io.*;
public class Ecopy{
public static void main(String[] args){
BufferedWriter bw=null;
BufferedReader br=null;
String in="";
String out="";
String line;
for(int i=0;i<args.length;i++){
if(args[i].equals( ? )){
in=args[ ? ];
}else if(args[i].equals( ? )){
out =args[ ? ];
}
}
if( ? ){ System.out.println("Usage:"); System.out.println("-iコピー元ファイル名"); System.out.println("-oコピー先ファイル名"); System.exit(1); } try{ br=new BufferedReader(new ? (in)); bw=new BufferedWriter(new ? (out)); while((line=br.readLine())!=null){ bw.write(line); bw. ? (); } }catch( ? ){ System.out.println("指定したファイルは存在しません"); }catch(IOException ioe){ System.out.println("ファイル入力エラー"+ioe); } ? { try{ if(br !=null){br.close();} if(bw !=null){bw.close();} }catch(Exception e){ } } }}
>442 一度やろうとしたけど意味が分からなかったところがあってやめた記憶があります。 >317のときは for(int i=0;i<args.length;i++){ if(args[i].equals(args(ここ)){ in=args[ここ]; }else if(args[i].equals(args[ここ])){ out =args[ここ]; } } って書いてあるから意味が分からなかった。 >442だと for(int i=0;i<args.length;i++){ if(args[i].equals( ? )){ in=args[ ? ]; }else if(args[i].equals( ? )){ out =args[ ? ]; } } に直ってるからなんとかできそうかも。ちょっと待て。
446 :
444 :2006/02/12(日) 13:33:16
>442-443 // Ecopy.java import java.io.*; public class Ecopy { public static void main(String[] args) { BufferedWriter bw = null; BufferedReader br = null; String in = ""; String out = ""; String line; for (int i = 0; i < args.length; i++) { if (args[i].equals("-i")) { in = args[i + 1]; } else if (args[i].equals("-o")) { out = args[i + 1]; } } if (in.length() == 0 || out.length() == 0) { System.out.println("Usage:"); System.out.println("-i コピー元ファイル名"); System.out.println("-o コピー先ファイル名"); System.exit(1); } try { br = new BufferedReader(new FileReader(in)); bw = new BufferedWriter(new FileWriter(out)); while ((line = br.readLine()) != null) { bw.write(line + "\n"); bw.flush(); } } catch (FileNotFoundException fnfe) { System.out.println("指定したファイルは存在しません");
447 :
444 :2006/02/12(日) 13:35:22
>442-443 つづき } catch (IOException ioe) { System.out.println("ファイル入力エラー" + ioe); } finally { try { if (br != null) br.close(); if (bw != null) bw.close(); } catch (Exception e) {} } } } 嫌だったところがあったので穴埋めじゃないところも2箇所いじりました。 1) System.out.println("-i コピー元ファイル名"); System.out.println("-o コピー先ファイル名"); →オプションとファイル名の間に半角スペースを入れた。 2) bw.write(line + "\n"); →改行するようにした。
>>444 御早い返事で大変助かりました。
前回は半端に自分で埋めてしまった所があって問題だったのですね。気をつけます。
何はともあれ、本当に感謝の言葉もありません。
それでも、文面のみの粗野ながらも感謝の言葉をば
本当にありがとうございました。
【 課題 】 BM法を用いて、文字列の出現位置をすべて表示するプログラムを作りなさい。 なお、出現位置を保持するために、「ArrayList」を使用しなさい。 【 期限 】2月13日 10時 期限まであまり無いですが、よろしくお願いします。
450 :
デフォルトの名無しさん :2006/02/12(日) 20:43:50
ここには専門学生しかおらんのか
大学は既に春休みだな
オレはここ1年間春休みだよ
>>449 残念だ、日曜日に見ていれば作ったかも知れなかったが・・・
>>445 修正Verを貼ってみました
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=27107 複数回探索するために、探索開始インデックスを引数に追加してます。
また、元のソースの
while (txt.charAt(pt) == pat.charAt(pp)) {
if (pp == 0)
//return pt; // 探索成功
pp--;
pt--; //////*(A)*///////
}
pt += skip[txt.charAt(pt)]; //////*(B)*///////
部分一致したが完全一致ではなかった場合、
(A)の部分で変化したptを(B)の部分でも利用しているため、判定に余計な時間がかかる可能性があります。
(BM法の仕様から外れてしまう)
そこで完全一致判定のところで別の変数を使っています。
>>456 ご返答ありがとうございます。
自宅に帰ってから、しっかり理解したいと思います。
本当にありがとうございました。
458 :
デフォルトの名無しさん :2006/02/19(日) 16:27:35
春休みだから人来ないのかな でもCの宿題スレは進んでるし…
459 :
名無し子 :2006/02/19(日) 16:28:58
だれかけしてください。
昨日も書いたけど消してもらえないし
自分の昔作ったホムペなんですがIDやパスワードを再発行してもらおうとしましたが
本人確認を出せと言われるし
私は消して欲しいだけなのです
ネットのゴミなので恥ずかしいし
もう過去は消したくて・・・
どなたか知識のある方お願いします。
昔のライコスで作ってあります。
登録情報も覚えていなくてメアドも変わっていてどうにもなりません
掲示板などは何とか消せました。
お願いします!!!!!
http://tama_kyuusoku.at.infoseek.co.jp/
【課題】画像データを読み込み、各画素値を一画素ずつ表示せよ。 表示の順番は画像の一番左上から右下にかけて、横順と縦順の2通り作成せよ。 【期限】2月21日(火)朝10時まで 丸投げです、すいません。 画像を扱うプログラミングは初めてなので全くわかりません。 よろしくお願いします。
461 :
デフォルトの名無しさん :2006/02/20(月) 16:05:07
【課題】右に一秒10ピクセル動き、はねかえるゴール(1.jpg)にボール(2.jpg) を入れるゲームを作れ。ただし、ボールはゴールを外れてx=0になったらボール は再び元の位置に戻る。ピクセルは800×800ボールの速さは自由とする。 スタートボタンも作れ。 【期限】2月22日まで 俺も丸投げです。結構自由なのでお任せします、おね願いします。
463 :
461 :2006/02/21(火) 14:48:34
課題内容の補足が授業であったので、しておきます。
先生、助手、点数が悪かった人用のエクセプションという3つのクラスを作り、
先生のクラスで、助手を雇い(雇った助手はインスタンスメソッドで生成されます。)
、助手が生徒の名前、生徒の点数を出します。
また、生徒の名前を入力する時に、exitと入力すると終了するようにします。
そして、助手は所詮助手なので、コースの名前、セクション番号を決める事は出来ないので、
先生のクラスでこの二つを入力して、助手の暮らすに受け渡すという方法を使うそうです。
また、先生のクラスで宿題の名前、赤点設定点(LowGrade)を入力し、これも助手のクラスに流すそうです。
生徒の点数が、赤点より低かった場合、点数が悪かった人用のエクセプションにthrowされ、
それを先生のクラスが受けて、
ttp://www.imgup.org/iup166181.jpg.html のような出力をするそうです。
昨日からずっとやっているのですが、いまだにごちゃごちゃで分かりません…。
>>461 getメソッドってどのクラスのメソッド?
465 :
461 :2006/02/21(火) 16:04:07
>>464 レスありがとうございます。
ゲットは、先生クラス、点数が悪かった人用のエクセプションクラスで使うみたいです。
//先生クラス
while(!done){ //すべてが終わったらここに行く
try{
done = teachinAssistant.grade();
}catch (LGE lge){
studentName = lge.getStuName(){
}
と
//点数が悪かった人用のエクセプション(LowGradeException) クラス
Class LGE extends Exception{
private String name;
public String getStuName(){
return name;
}
という風にするらしいです。
467 :
461 :2006/02/22(水) 01:35:49
>>466 ありがとうございます。
cutoff scoreに50、Enter scoreに49と入力しても、もう一度、
Enter student name; type 'exit' if done:
を訪ねてきて、JOptionPane.showMessageDialogに飛ばないのですが、
どのようにすれば良いのでしょうか?
469 :
461 :2006/02/22(水) 02:37:27
>>468 コンパイルをしてみたのですが、
Enter score: の後に出る、Enter student name; type 'exit' if done: で
exitと入力をし、点数が赤点以上、赤点以下でもその場で終わってしまいます。
470 :
461 :2006/02/22(水) 02:39:38
つまり、赤点以上ならそれでOKなのですが、 赤点以下なら、JOptionPane.showMessageDialogが表示されないと おかしいはずなのに、赤点以上同様その場で終わってしまいます。 寝不足で日本語がおかしくて申し訳ありません・・・。
471 :
461 :2006/02/22(水) 03:01:08
コンパイル環境を、JBuilderからEclipseに変更したら出来ました…orz ご迷惑をおかけして申し訳ありませんでした。ありがとうございました。 しかしながら、どのように練習?をすればこんなに綺麗なソースを書けるようになるのでしょうか? 自分の書いたソースと、466さんの書いたソースの明解度の違いに驚きました。
【 課題 】swingを使用した画面出力 ・登録用配列を作り数値を確認用に使う(例、String[] listData = {"1", "2"〜"10"};) ・色配列を作っておき(例、String[] colorData = {"aka","midori", "ao", "kuro"};など) また、リストからクリックした色(文字)を履歴に追加する ・履歴配列で今までの履歴を見る(arrayでもいいです。) ・画面の順番 1・開始画面(入力用リスト(数値入力)・確認用ボタン(リストに入力されていた数値が登録されていたらトップページへ)) 2・トップページ(ボタン(色画面へ)・ボタン2(履歴へ)) 3・色画面(リスト(色数件)・ボタン(履歴に追加+トップに戻る)) 4・履歴画面(リスト(色画面で追加された今までの色を表示)・ボタン(トップページに戻る)) 【 期限 】2月28日 【 補足 】すいませんが丸投げです。
473 :
デフォルトの名無しさん :2006/02/23(木) 13:37:53
出題する時は上げてください。。。
474 :
デフォルトの名無しさん :2006/02/23(木) 17:28:06
そこも初心者か( ´ー`)フゥー...
475 :
デフォルトの名無しさん :2006/02/27(月) 14:33:50
【 課題 】 次のコードは自然数nを初期設定し、数列1/1*1,1/2*2,,,,,,,,,1/k*k,,,,,,,,,,,,,1/n*nの 値及びπ^2との比を、k=nまで500おきに1行ずつ表示するプログラムである。空欄を埋めよ。 public class sum { public static void main(String[] args) { int n = 10000; int k, skip = 500; ( @ ) double sum = 0.0; for(k=1; k<=n; k++){ sum = sum + 1.0/(k*k); if( A ) ( B ) r = Math.( C )*Math. ( D )/sum; system.out.print("k="+k+"\t: "+sum); System.out.println("\t"+r); } } } } <<実行結果>> ◎_n=_10000_までの和_◎ k=100 : ........... 【 期限 】3/2 【 補足 】お願いします。
476 :
デフォルトの名無しさん :2006/02/27(月) 21:02:19
>>475 @System.out.println("◎_n=_10000_までの和_◎");
An%skip == 0
Bdouble
CD PI
あとAの右に{がいるかな
477 :
おし :2006/02/27(月) 23:40:33
次の問の解答がわかりません。教えてください 次のクラスが定義されている時 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、次のクラスの中にアクセス制限に違反しているメソッド呼び出しはどれか? package question; import exercise.Point; public class Q1{ static void main(String[] args){ Point p = new Point(3, 4); System.out.println(p.getX()); System.out.println(p.getY()); } }
478 :
おし :2006/02/27(月) 23:41:54
2、下のmoveXメソッドの定義はアクセス制限に違反しているか否かか答えよ package execise; 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); } } 3、下のクラス定義の中で、アクセス制限に違反しているメソッドの定義を答えよ 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; } }
コンパイルして試してみればいいのに
>>477 1、次のクラスの中にアクセス制限に違反しているメソッド呼び出しはどれか?
System.out.println(p.getX());
2、下のmoveXメソッドの定義はアクセス制限に違反しているか否かか答えよ
違反している (xがprivate)
3、下のクラス定義の中で、アクセス制限に違反しているメソッドの定義を答えよ
public int xpos() {return getX(); }
どの設問も [ x ]絡みのアクセス装飾子の問題ですね
public , protected , デフォルト , private の関係をもう一度復習してみてください
481 :
おし :2006/02/28(火) 00:31:48
>>479 コンパイルができなかった… >>480 ありがとうございます
482 :
デフォルトの名無しさん :2006/02/28(火) 15:32:22
【課題】ArrayListの内容をString配列とVectorに追加し画面に出力する 【 期限 】3/2 【補足】ArrayListの中身は、 list.No(1,2,3・・・10) list.Id(100,200.300・・・1000) list.color(青、赤、緑・・・などの10色) すいませんがお願いいたします。
483 :
デフォルトの名無しさん :2006/02/28(火) 19:00:23
以下のプログラムを実行すると、どんな文字列を入力してもCancelと表示され、OKと表示されることはなかった。なぜであるか理由を考え、yesと入力したらOKと表示されるようにプログラムを修正せよ String text = javax.swing.JOptionPane.showInputDialog(null); if (text != "yes") System.out.println("Cancel"); else System.out.println("OK"); System.exit(0);
484 :
デフォルトの名無しさん :2006/02/28(火) 19:02:59
指定された位置に指定された大きさで三角形を描くdrawPolygonメソッドを書き次のプログラムが正しく動くようにせよ。drawPolygonメソッドの引数は順にx座標、y座標、三角形の辺の長さである。 public class Exercise1{ public void run(){ drawPolygon(50, 200, 100); drawPolygon(150, 200, 100); //ここにdrawPolygonメソッドの定義を書く// public static void main(String[] args){ Exercise1 ex1 = new Exercise1(); ex1.run(); } } } ヒント:drawPolygonの定義は次のようになる。 Public void drawPolygon(int x, int y, int length){ ここを埋める }
485 :
デフォルトの名無しさん :2006/02/28(火) 19:03:58
次のプログラムは誤っている。どこが誤っているか指摘せよ。 String[] s = new String[3]; s[0] = “Delphi”;
486 :
デフォルトの名無しさん :2006/02/28(火) 19:06:00
コマンド行引数で与えられた2つの数の間で四則演算を行うプログラムCalc.javaを書け。例えば、 java Calc 4 – 3 とコマンド行引数を与えて実行すると、4 - 3 の計算結果を表示するようにせよ。演算の種類は加減乗除の4種類でよい。 ヒント: 問題文の例ではargs[0]の値は“4”、args[1]の値は“−”、args[2]の値は”3“となる。すべて文字列なので、Integer.parseIntを使ってint型の値に変更しなければならない。
487 :
デフォルトの名無しさん :2006/02/28(火) 19:07:01
次のプログラムは誤りを含む。誤りを指摘せよ。 public class Point{ public int x; public int y; public static void scale(int s){ x *= s; y *= s; } public static void scale(Point p, int s){ p.x *= s; p.y *= s; } }
>>483 > if (text != "yes")
textと"yes"が違うインスタンスなので、常に正だから
>>484 >>485 シラネ
>>486 switch()でゴリゴリかけるのでパス
>>487 xとyはインスタンス変数なのにscale(int)では(ry
489 :
前半 :2006/02/28(火) 19:12:33
下のRectクラスはPointクラス利用して定義されているが、継承機能は利用されていない。Rectクラスの定義を修正し、継承機能を利用できるように書き直せ。具体的には、RectクラスからupperLeftフィールドを削除し、代わりにPointクラスを継承するようにすればよい。 /* Point.java に保存 */ public class Point { public int x, y; public Point(int x0, int y0){ x = x0; y = y0; } } /* Rect.javaに保存 */ public Point upperLeft; //左上隅の座標 public int width; public int height;
490 :
後半 :2006/02/28(火) 19:13:42
上の問題の続きのプログラム public Rect (int x0, int y0, int w, int h){ upperLeft = new Point(x0, y0); width = w; height = h; } public Point getLowerRight() { // 右下隅の座標を返す return new Point(upperLeft.x + wodth, upperLeft.y + height); } public static void main (String[] args) { Rect r = new Rect(5, 10, 15, 20); Point p = r.getLowerRight(); System.out.println(p.x + “ “ + p.y); } }
491 :
後半 :2006/02/28(火) 19:17:25
>>485 問題間違えた 次のプログラムは誤っている。どこが誤っているか指摘せよ。 String[] s = new String[3]; s[3] = “Delphi”;
492 :
デフォルトの名無しさん :2006/02/28(火) 19:39:39
あのですね なんかよく分からないんですがJAVAが実行できなくなってしまったんですが。 どうすればいいんでしょうか。コンパイルはできるんですけど。
493 :
デフォルトの名無しさん :2006/02/28(火) 19:50:04
どうすればいいんでしょうか!
495 :
デフォルトの名無しさん :2006/02/28(火) 19:55:15
ッアーー!
496 :
デフォルトの名無しさん :2006/02/28(火) 20:20:20
>>491 String[] s = new String[3];
で確保されるのは、
s[0],s[1],s[2]
498 :
デフォルトの名無しさん :2006/02/28(火) 21:54:13
>>489 public class Rect extends Point{
public int width;
public int height;
public Rect (int x0, int y0, int w, int h){
x = x0;
y = y0;
width = w;
height = h;
}
public Point getLowerRight() { // 右下隅の座標を返す
return new Point(x + width, y + height);
}
public static void main (String[] args){
Rect r = new Rect(5, 10, 15, 20);
Point p = r.getLowerRight();
System.out.println(p.x + " " + p.y);
}
}
499 :
デフォルトの名無しさん :2006/02/28(火) 22:09:07
>>486 public class Calc{
public static void main(String args[]){
if(args.length != 3) System.out.println("コマンドライン引数の数が不正です");
else calc(args);
}
static void calc(String args[]){
int a, b, r;
try{
a = Integer.parseInt(args[0]);
b = Integer.parseInt(args[2]);
if(args[1].equals("+")){
r = a + b;
}else if(args[1].equals("-")){
r = a - b;
}else if(args[1].equals("*")){
r = a * b;
}else if(args[1].equals("/")){
r = a / b;
}else{
System.out.println("不正な演算子です");
return;
}
System.out.println(r);
}catch(Exception e){
System.out.println("数値の入力が不正です");
}
}
}
500 :
:2006/03/01(水) 14:09:06
501 :
デフォルトの名無しさん :2006/03/01(水) 14:10:27
単語単位でファイルの内容を読むときに便利なように、java.util.StringTokenizerというクラスが標準で用意されている。このクラスを使って、単語単位でファイルの内容を読み取って、読み取った単語を画面に表示するプログラムを書け。
使えって言ってるんだから使えば
>482 問題の意味がわからない なんでString配列とVectorの二つに追加するの? 何をどう追加するの? list.Noって何?メソッド?変数?型は? list.Id,list.colorも同様 ()の中に値があるが引数なの?青とか赤とか""で囲まれてないけどStringじゃないの? 色って何?色自体を表示するの?色の名前を表示するの? てことで意味不明
>500 ホントにかけ算も実行できたのかと。
>>501 StringToken.java
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.StringTokenizer;
public class StringToken {
public static void main(String[] args) {
String str = "";
try {
BufferedReader br = new BufferedReader(new FileReader("token.txt"));
while( (str = br.readLine()) != null) {
StringTokenizer st = new StringTokenizer(str);
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
該当スレが分からない・・・。どこで聞いたらいいでしょう? mysql-connector-java-3.0.8-stable-bin.jarというファイルが欲しいのですが、mySQLのサイトで無いように思われます。 どなたか、保管しているサイトを知っておりましたら、誘導をお願いします。
507 :
デフォルトの名無しさん :2006/03/02(木) 02:29:55
【課題】 (1)下は実行列X(配列名x)実ベクトルy、z(配列名y、z) が与えられたときに、ベクトルXy−zを計算してベクトルw(配列名w)に 格納するメソッドの一部である。( )を埋めよ。 public static void Xy_mns_z( double[][]x, double[]y, double[]z, double[]w ) { double wj; int m=x.length; int n=x[0].length; for( 1 ) wj=( 2 ) for( 3 ) ( 4 ) w[j]=wj; } } (2)ベクトルy=Ax−bを計算するために(1)のメソッドをmainで呼び出すときの 文を書け。ただしy、A、x、bとする。 【期限】 3/2 【補足】 お願いします。
508 :
507 :2006/03/02(木) 02:31:28
あっ・・・配列名とかを大文字で書いちゃいました。すいません小文字でした・・・
509 :
507 :2006/03/02(木) 02:32:31
あー・・・違う・・・そうじゃなくて半角と全角のことです。 まじですいません。
>>507 適当に書いたので、間違いあるかも
(1)
public static void Xy_mns_z(
double[][] x, double[] y, double[] z, double[] w){
double wj;
int m=x.length;
int n=x[0].length;
for(int j=0;j<m;j++){
wj = -z[j];
for(int i=0;i<n;i++)
wj += x[j][i]*y[i];
w[j] = wj;
}
}
(2)
Xy_mns_z(A,x,b,y);
>>506 >mysql-connector-java-3.0.8-stable-bin.jar
確かにそのバージョンにこだわるのであればMySQLのサイトに無いですねぇ
ただ、単純にJDBCドライバを使われるのであればリリースされている
3.1.12とかのバージョンじゃダメなんですかね?
外してたらすみません。
>>501 ゴメソ br.close();抜けてた。適当に入れておいて
>511 あ、なるほど。調べてみましたら、同じ効力のファイルのようです。 こちらをダウンロードしてみることにします。 ありがとうございました。
514 :
507 :2006/03/02(木) 23:44:54
>>510 (1)、それと同じ回答あるんだけど完全に不正解とされてるんだよね・・・
もしかしたらx[0].length→y.length かもしれない。
誰か分かりそうな人いませんか?お願いします・・・
あと、(2)については理解できました。ありがとうございます。
515 :
デフォルトの名無しさん :2006/03/02(木) 23:56:46
【課題】 import java.io.*; public class Approx { public static void main (String[] args) { int i, n=1000000, k=0; double x, y, ds, ap; PrintWriter fo; long tb, te; try { fo=new PrintWriter( new BufferedWriter( new FileWriter( args[0]))); tb=System.currentTimeMillis(); for (i=0; i<n; i++) { x=2*Math.random()-1; y=2*Math.random()-1; if ((x-1)*(y-1)>1) k++; } te=System.currentTimeMillis(); long dm=te-tb; ds=dm/1000.0; ap=4.0*k/n; fo.println(ds+"秒\n"+"近似値 ="+ap); fo.close(); } catch(Exception e) { System.out.println("書き込みエラー: "+e); }}} (1)dmでは何を計算しているか。 (2)apを次式で計算した場合の格値とその理由を説明せよ。 (i)ap=k/n*4.0; (ii)ap=4*k/n; 【期限】過ぎてます・・・
>>515 (1)dmでは何を計算しているか。
forループ部分の処理時間(ミリ秒)の計算結果を格納している
(2)
2)apを次式で計算した場合の格値とその理由を説明せよ。
(i)ap=k/n*4.0;
→0.0 理由:k/nの計算結果がint型の結果となるためその後0*4.0で結果は0.0
(ii)ap=4*k/n;
→1.0 理由:上記に似ているが、4*kの結果がint型で/nの結果もint型になるため結果は1で
apがdouble型のため暗黙のキャストで1.0
ってこんなんじゃだめ?
517 :
515 :2006/03/03(金) 00:31:57
>>516 なるほど・・・
dmの単位はミリ秒だということまで!ありがとう!
(2)の計算結果も実際実行させてみたらそうなってました〜。
本当にありがとうございました。
518 :
デフォルトの名無しさん :2006/03/03(金) 00:34:12
漢字を2進数で表示させたいのですが、どうすればいいのでしょうか??
520 :
デフォルトの名無しさん :2006/03/03(金) 01:08:43
>>519さん ありがとうございます!
【課題】 地球温暖化による温度上昇を2010年より10年ごとにもとめよ また、それぞれどのような影響が出るかとどのように対処するかを出力せよ。 【期限】 やばくなるまえに 【補足】 どこの地域の温度でもいいです。
522 :
デフォルトの名無しさん :2006/03/03(金) 09:42:49
JAVAて一文字何バイトですか?至急返答願います
JAVA → UTF-8 →一文字1バイト
今日から1MB
525 :
デフォルトの名無しさん :2006/03/03(金) 13:33:30
タスクトレイに格納する方法を教えてください
>>523 日本語使うと2バイトになるだろ。
場合によっては4バイトになる。
527 :
デフォルトの名無しさん :2006/03/03(金) 21:05:05
>>526 1文字ったってchar型なら2バイトじゃない?違ったらスマソ
まぁ、当の522は聞き逃げ厨な様だが
Javaってユニだから半角だろうが全角だろうが1文字2バイトだろ?
529 :
デフォルトの名無しさん :2006/03/04(土) 00:05:56
Javaを始めてまだまだ初心者です。宜しくお願い申します。 【課題】 起動されると文字入力待ちとなる。 何らかの文字列が入力され、Enterが押されたら 入力された文字列を画面上に表示し、再度文字入力待ちとなる。 入力された文字が「q」 一文字の場合は画面には表示せず終了する。 public class WaitingAgain { public static void main(String[] args) { for (int i = 0; i < args.length; i++) { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); try{ String line = reader.readLine(); System.out.println(line); if (line = reader.readLine() equals('q')) { System.out.println(); } } catch (IOException e) { System.out.println(e); } } } }
530 :
529 :2006/03/04(土) 00:10:44
期限はまだ何とか大丈夫ですが、これよりも少々複雑なプログラム課題が 5つ程残っていまして、他にも課題があるため少々焦っている次第です。 上のソースがうまく改行されずに見にくく申し訳ありません。
>529 import java.io.*; public class WaitingAgain { public static void main(String[] args) { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String line; try{ while(!(line = reader.readLine()).equals("q")){ System.out.println(line); } } catch (IOException e) { System.out.println(e); } } }
532 :
デフォルトの名無しさん :2006/03/04(土) 17:15:04
【 課題 】ユーザーに文章を入力させ、以下の3つ条件を選択させ、条件に当てはまるように文章をコンバートしなさい。
また、文章を入力する画面で、「quit」と入力したらプログラムを終了させるようにしなさい。
Eggy : 母音(a,i,u,e,o)が入力されたら、その前に egg と表示。例:dog → deggog
Ava : 入力した単語の最初の文字を最後に移動し、ava と表示。例:I like a dog → Iava ikelava aava ogdava
Shift: String N のポジションに文字列をずらします。例:Nが3の場合。 dog → fqi
出力例:
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1678.txt 【 期限 】3/6
【 Ver 】1.4
よろしくお願いします。
533 :
デフォルトの名無しさん :2006/03/05(日) 00:30:32
534 :
533 :2006/03/05(日) 00:35:56
>>532 ぁ…
Ava Eggy Shift の StringTokenizer をprivateにするの忘れてた…
535 :
デフォルトの名無しさん :2006/03/05(日) 00:39:01
Javaで減色処理を行う良い方法は何かありませんか? フルカラーを64色ぐらいまで落としたいのですが。
64色にするとなんかいいことあるのかと
537 :
532 :2006/03/05(日) 14:27:03
>>533 533さん、ありがとうございました。
ちょっと出力で質問があるのですが、
何番で文章をコンバートしますか?
3
あなたの文章は、
文章を何行ずらすか、選択してください。(ASCII表参照):2
出力された文字
文章(英語のみ)を〜
といった風に出力されてしまうのですが、3を選んだ場合は、
「文章を何行ずらすか、選択してください。(ASCII表参照):」を入力した後に
「あなたの文章は、」 が来るようにしたいのですが、どうすれば良いのでしょうか?
>537 >533ではないが。 conv.javaの System.out.println("あなたの文章は"); AL = con.getData(); を入れ換えて、 AL = con.getData(); System.out.println("あなたの文章は"); にする。
539 :
532 :2006/03/05(日) 16:00:41
540 :
デフォルトの名無しさん :2006/03/07(火) 16:43:31
宿題ではないですが テキストを読み込んで '▼'の次の行から'▲'の前の行までをString[]に入れるにはどうすればよいのでしょうか? いろいろやってみたのですが型変換がうまくできません
それでわかるかボケw ソースコピペしる。
542 :
デフォルトの名無しさん :2006/03/08(水) 12:37:34
【 課題 】 1.すでに存在する文字列(strings)を大文字から小文字に変換するプログラムを製作しなさい。 ヒント: ‘A’(65) は ‘a’ (97) ‘Z’(90)は ‘z’(122)(※()内はアスキー表番号) 2.利用者に入力させたstr1 と str2があり、もし同じ文字(String)なら「Yes」、違うなら「No」と出力されるプログラムを製作しなさい。 【 期限 】3月8日 午後7時 よろしくお願いします。
>>542 課題1
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Kadai1 {
public static void main(String[] args) {
try {
BufferedReader input = new BufferedReader(new InputStreamReader(
System.in));
System.out.print("文字を入力してください : ");
String str = input.readLine();
System.out.println("入力した文字は : " + str);
System.out.println("大文字から小文字に変換させます・・・");
int length = str.length();
StringBuffer sBuf = new StringBuffer(); for (int i = 0; i < length; i++) { char c = str.charAt(i); if (c >= 'A' && c <= 'Z') { char castChar = (char)(c + 32); sBuf.append(castChar); }else{ sBuf.append(c); } } System.out.println("変換しました : " + sBuf); } catch (Exception e) { e.printStackTrace(); } } }
545 :
課題2 :2006/03/08(水) 13:29:57
import java.io.BufferedReader; import java.io.InputStreamReader; public class Kadai2 { public static void main(String[] args) { try { BufferedReader input = new BufferedReader(new InputStreamReader( System.in)); String str1 = null; String str2 = null; for (;;) { System.out.print("文字1を入力してください : "); str1 = input.readLine(); if (str1.equals("") == false) { break; } }
for (;;) { System.out.print("文字2を入力してください : "); str2 = input.readLine(); if (str2.equals("") == false) { break; } } System.out.println(str1.equals(str2) ? "Yes" : "No"); } catch (Exception e) { e.printStackTrace(); } } }
>>546 toLowerCase、str1.equal(str2) 使った方が分かりやすくね?
547だが、str1.equals(str2)は使ってたな… スマソ
>>547 1.すでに存在する文字列(strings)を大文字から小文字に変換するプログラムを製作しなさい。
ヒント: ‘A’(65) は ‘a’ (97) ‘Z’(90)は ‘z’(122)(※()内はアスキー表番号)
問題でアスキー表番号を提示してるってことは、それを使うことを期待している問題かなぁと思って。
いや、普通はtoLowerCase使うよな。
標準APIでわざわざ用意してくれるんだから。
>>542 は先生に、「toLowerCaseメソッドを使ったほうが簡単じゃないですか?(`Д´)」
って聞いてみて。課題提出するときにでも
先生はC言語の延長としてJavaを使ってるだけと予想
フィボナッチの数列なんですが public class do2 { public static void main(String[] args) { int index = 0; int[] i = new int[20]; i[0] = 0; i[1] = 1; do{ System.out.println(i[index+1]); i[index+2] = i[index] + i[index+1]; index++; }while(index <= 14); } } こういうのでも問題ないですか?
クラスの名前は大文字から 配列の初期化でなぜ20?
555 :
デフォルトの名無しさん :2006/03/10(金) 01:40:25
556 :
デフォルトの名無しさん :2006/03/11(土) 04:18:50
【 課題 】 指定された間隔で指定された回数httpリクエストを送信する機能を持った httpクライアントプログラムを作りなさい。 よろしくお願いします。
F5ツール作成依頼か 舐められたもんだ
558 :
デフォルトの名無しさん :2006/03/11(土) 05:07:41
F5ツールとは、Dos攻撃のツールという意味ですが? そういう意図ではないのですが、あまりにバカバカしい質問だったでしょうか? プログラミングは超初心者で全然駄目なので、このような問題でも 私にとっては難解です。すいません。
httpリクエストの文字列は全部て入力なんかね
560 :
デフォルトの名無しさん :2006/03/11(土) 05:20:12
はい、その通りです
馬鹿は馬鹿のままが一番だよ
なんか宿題ない? 暇なんだけど
春休みだから宿題もないんだろう
566 :
デフォルトの名無しさん :2006/03/12(日) 05:44:09
>>566 べつにそれって宿題じゃ無いんでしょ?
正直
>>556 の様な宿題を出す学校なら品位を疑う。
>>566 宿題の出題者を恨みなさい。
あなたを疑うことと、ものを提示することどちらが悪か。
悪に加担する可能性がある以上、
どうしても必要に駆られるならあなたが作るしかないじゃない。
public class class12 { public static void main(String[] args) { float sum = 0; for(int index = 0; index < 10; index++){ float weightarray[] = new float[10]; float weight = (float)(Math.random() * 9 + 1); weightarray[index] = weight; System.out.println("岩石" + (index+1) + "の重さは" + weightarray[index] + "です。"); sum = sum + weightarray[index]; } System.out.println("岩石の合計の重さは" + sum + "です。"); } } これをオブジェクトを作成する方法に書き換えるにはどうしたらいいの?
>>569 質問の意図がイマイチ汲み取れないんだが…
こんなんでいいってこと?
単純に他のクラスで書いただけなんだが
public class Class12 {
public static void main(String[] args) {
Rock R = new Rock();
System.out.println("岩石の合計の重さは" + R.getSum() + "です。");
}
}
class Rock {
public float getSum() {
float sum = 0;
for(int index = 0; index < 10; index++){
float weightarray[] = new float[10];
float weight = (float)(Math.random() * 9 + 1);
weightarray[index] = weight;
System.out.println("岩石" + (index+1) + "の重さは" + weightarray[index] + "です。");
sum += weightarray[index];
}
return sum;
}
}
【 課題 】データグラムを使ったネットワークプログラミング。異なったマシーンで動く2つのプログラム(例えばプログラムAがプログラムBにある文字列を送り、プログラムBがそれに対して文字列で返答する)を構成するアプリケーションを作りなさい。文字列は自由。 【 期限 】今週末まで。なるべく早くできれば助かります。 【 補足 】たぶん簡単なメッセンジャーのような物を作れと言われてるんだと思います。 よろしくお願いします。
573 :
デフォルトの名無しさん :2006/03/14(火) 16:23:16
少々頭が混乱してきて困っています。宜しくお願い申します。 【 課題 】 起動すると文字入力待ち状態に→※ファイル名入力(恐らく同じディレクトリ内のもの)→ ファイルの内容が表示される(→適切に表示されれば、また文字入力待ちに)→ 要求したファイルが無い場合、「ファイル○○○がありません」と表示 ファイルがあっても読み込みできない場合、「ファイル○○○が読み込めません」と表示 ※"q"が入力されると、プログラム自体が終了 【期限】まだ大丈夫ですがこれ以外に幾つか残っておりまして、 内容的にこれ等ができないと先に進めない状況です。 【補足】例外について、ファイル自体が無い場合はFileNotFoundExceptionが あるのに、読み込みができない場合のものはないのか?というか、今使っている 参考書でさがしても見当たらない…という感じです。
574 :
573 :2006/03/14(火) 16:31:21
import java.io.*; public class DisplayOfFiles2 { public static void main(String[] args) { System.out.println("ファイル名を入力してください"); String filename = args[line]; try { BufferedReader reader = new BufferedReader(new FileReader(filename)); String line; while (!(line = reader.readLine()).equals("q")) { System.out.println(line); } reader.close(); } catch (FileNotFoundException e) { System.out.println("指定されたファイル" + filename + "がありません" + e); } catch (IOException e) { System.out.println("IOエラー:" + e); } } }
575 :
573 :2006/03/14(火) 16:33:36
これまでコンパイルを試みた中でエラーは複数ありましたが、 今のところ一つです。その中で、6行目のString〜args[]のところの 「シンボルを見つけられません。」といったエラーは出続けています。 お手数をおかけしますが、宜しくお願いします。
String filename = args[line]; の line ってどこで定義している?
【課題】1〜100の整数範囲から乱数を重複なく10個を発生させ、それをrandom.txt に書き出す。さらに、random.txtを読み込み、配列を用いて小さい順に並べ替えて order.txtとして書き出す。 【期限】明日の夕方くらいまで 【補足】丸投げです。お手数ですがよろしくお願いします。
//
>>577 // JDK5使用 適当です、確認お願いします。
import java.io.*;
import java.util.*;
public class T55_577 {
public static void main(String[] args) throws IOException {
// 生成
int[] random = new int[100];
for (int i = 0; i < 100; i++) random[i] = i + 1;
for (int i = 0; i < 100; i++) {
int j = (int) (Math.random() * 100);
int k = random[j];
random[j] = random[i];
random[i] = k;
}
// 出力
PrintWriter out = new PrintWriter("random.txt");
for(int i=0; i<10; i++) out.println(random[i]);
out.close();
// 入力
int[] order = new int[10];
Scanner in = new Scanner(new File("random.txt"));
for(int i=0; i<10; i++) order[i] = in.nextInt();
in.close();
// ソート
Arrays.sort(order);
// 出力
out = new PrintWriter("order.txt");
for(int i=0; i<10; i++) out.println(order[i]);
out.close();
}
}
メソッドわけしたほうが・・・
>>573 適当です、動作確認お願いします。
import java.io.*;
public class T55_573 {
public static void main(String[] args) throws IOException {
System.out.println("ファイル名を入力してください");
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String line;
while ((line = in.readLine()) != null) {
if (line.equals("q")) break;
File file = new File(line);
if (file.exists()) {
try {
BufferedReader fileReader = new BufferedReader(new FileReader(file));
while ((line = fileReader.readLine()) != null) System.out.println(line);
fileReader.close();
} catch (IOException ioe) {
System.out.println("指定されたファイル" + file + "が読み込めません");
}
} else {
System.out.println("指定されたファイル" + file + "がありません");
}
}
in.close();
}
}
>>579 マンドクサw 出題された用件を満たせば良いのさww
581 :
577 :2006/03/14(火) 19:10:33
>>578 まずは作成ありがとうございます。
しかしコンパイルできませんでした。jdk1.3.1_17を使用しているからでしょうか。
全くの無知で申し訳ありません。。
jdk1.3はちょっとありえないんじゃね? せめて1.4入れてきて
583 :
577 :2006/03/14(火) 20:01:24
動作確認しました。 本当にありがとうございました。
584 :
573 :2006/03/14(火) 20:09:57
>>580 コンパイルは成功し、正常に実行されました。
ただ、気になったのですが、「ファイルが読み込めません」と表示され得る場合は
どういったミス入力等が考えられるのでしょうか(とりあえず適当に打ってみても
「〜ファイルがありません」ばかりなので)。
>>584 たとえば読み込もうとしたファイルがロックされてる場合とか…
よくわからずに作っているので、ロックしようとしたファイルの内容が消えるかもしれません。
適当なファイルで試してください。
import java.io.*;
import java.nio.channels.*;
public class T55_573_LockTest {
public static void main(String[] args) throws Exception {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
FileLock lock = null;
while (true) {
if (lock == null) {
System.out.println("ロックするファイル名を入力してください");
String line = in.readLine();
if (line.equals("q")) break;
FileChannel channel = new FileOutputStream(line, true).getChannel();
lock = channel.lock();
} else {
System.out.println("改行でロック解除");
in.readLine();
lock.release();
lock.channel().close();
lock = null;
System.out.println("ロック解除しました");
}
}
}
}
java.io.Fileクラスには、boolean delete() メソッドが存在し、ディレクトリを削除することができる。 しかし、このメソッドは、ディレクトリ内にファイルがあると削除することができない。 ではディレクトリ内にファイルが存在していても、ディレクトリを削除するにはどうしたらいいでしょう? こんなことも判らんプログラマです。
>>586 ディレクトリ内にあるファイルをすべて削除すれば良いじゃない…と適当なことを言ってみる
public static boolean delete(File file) {
if (file.isDirectory())
for (File f : file.listFiles()) delete(f);
return file.delete();
}
>>587 なるほど。
大いに納得致しました。逝ってきます。
【積年の】旦那にしてる密かな仕返し【恨みじゃー】
http://human5.2ch.net/test/read.cgi/ms/1141694640/ 8 名前:可愛い奥様[] 投稿日:2006/03/07(火) 11:05:23 ID:8dtluKkp
夫の歯ブラシで洗面所の排水溝掃除。
洗面所をビショビショに汚した罰だ。
20 名前:可愛い奥様[age] 投稿日:2006/03/08(水) 00:40:17 ID:pRrk6A21
前に頭きた時あって
1度だけ歯ブラシで肛門カキカキしちゃった
22 名前:可愛い奥様[] 投稿日:2006/03/08(水) 01:27:12 ID:gU5mHc7J
よかった。どこのお宅も同じようなことしてて。
24 名前:可愛い奥様[] 投稿日:2006/03/08(水) 01:36:35 ID:SSSFsTqE
そうそう、ヘンなモノはダンナのお皿へ直行だよね。
41 名前:可愛い奥様[] 投稿日:2006/03/08(水) 11:55:18 ID:sjj+/60Q
見てるだけで気が晴れるな!
皆さん、頑張ってね!
42 名前:可愛い奥様[sage] 投稿日:2006/03/08(水) 20:33:51 ID:Ju2N1s7+
年金分割が楽しみじゃのう
63 名前:可愛い奥様[] 投稿日:2006/03/10(金) 08:55:20 ID:qLfJYpJR
家族で密かにはぶっている。
男性は肉体が汚く、精神が美しい傾向がある。(気に入らない相手に肉体的攻撃を加える⇒精神的攻撃も加える男は猛者)
女は肉体が美しく、精神が汚い傾向がある。(気に入らない相手に精神的攻撃を加える⇒肉体的攻撃も加える女は猛者)
女は隠れて悪事をする。気に入らない女子を便所でボコったり、便器舐めさせたり、男の友人を使ってレイプ、仲間外れにしたり。陰口、嫉妬。
女は対人関係において、この汚い性格を隠そうとするため、外面が非常によくなる。(猫かぶり)
男性諸君は外面に騙されないように気を付けて下さい。
>>578 >>580 センスを疑う
面倒なら回答しなければいい
回答するならそれなりにきちんとした回答せよ
>>591 どうした
まともな回答できないから暴言か
>>592 お前がまともな解答した所見たこと無いんだけど?
てめーのセンスなんて所詮自己満足のオナニーだろ
>>593 あなたは、私をどのように特定しているの?
なんの根拠もなしに「お前がまともな解答した所見たこと無いんだけど?」発言ですか
ほんと、ナンセンスですよ、あなたは。
特定して無いからまともな回答見たこと無いって言ってるんだ そんなにセンスがあるという自負があるなら固定になって回答してみろよチキン
>>596 ありがとうございます。
"クラス T55_572 は public であり、ファイル T55_572.java で宣言しなければなりません。
"というエラーが出ました。
新しくクラスファイルと作らないといけないんでしょうか?
599 :
まだまだビギナ :2006/03/15(水) 14:08:49
既出のものと似ていますが、よろしくお願いします。 【課題】:カレントディレクトリ内のファイル内容表示 【期限】とりあえず大丈夫です import java.io.*; public class ShowFile1 { public static void main(String[] args) { if (args.length != 1) { System.out.println("文字ファイル:exp05.txt"); System.exit(0); } String filename = args[0]; try{ BufferedReader reader = new BufferedReader(new FileReader(exp05.txt)); String line; While ((line = reader.readLine()) != null) { System.out.println(line); } reader.close(); } catch (FileNotFoundException e) { System.out.println("exp05.txtが見つかりません。"); } catch (IOException ioe) { System.out.println("exp05.txtが読み込めません。"); } } } 【補足】参考書を見ながらやったのですが、 何故か、13行目「';'がありません。」というエラーが出ました。
>>599 While のWが大文字
whileが正解
While → while
602 :
まだまだビギナ :2006/03/15(水) 14:23:19
>>600 小さな所まで発見して頂いてありがとうございます。
確かに。前後のが大文字でつい…かと思われます。
ただ、コンパイルがこれで通ると思ったのですが、11行目で
「シンボルを見つけられません。」シンボル:変数exp05
というエラーが出てしまいました。実はこの類のエラー、
以前も違う課題でずっとでてて、未だに意味が分かりません。
(そもそも、シンボルというのは変数の別称か?と思っていたりで)
exp05.txtを"で囲んでない
604 :
まだまだビギナ :2006/03/15(水) 14:49:07
>>600 ,
>>601 ,
>>603 たびたび指摘下さりありがとうございます。おかげでコンパイル出来ました。
ただ、「たびたび」で何とも恐縮なのですが、コンパイル後実行したところ、
「文字ファイル:〜」と表示されってしまい、ファイル内容の表示は失敗しました。
これは根本的にソースの構成が問題なのでしょうか?それとも、
実行時の問題も考えられますでしょうか?
「文字ファイル:〜」と表示されってしまい ↑この続きが見たい。
>>604 System.exit(0);
これって何の為にあるの?
わかった。 実行時のVMに引数が与えられていない。 java ShowFile1 exp05.txt このとき、ShowFile1.classがあるフォルダにexp05.txtを用意してあげてな。
608 :
606 :2006/03/15(水) 14:59:01
あと、 String filename = args[0]; これも。
BufferedReader reader = new BufferedReader(new FileReader(exp05.txt)); ↓ BufferedReader reader = new BufferedReader(new FileReader(filename));
610 :
まだまだビギナ :2006/03/15(水) 15:19:43
>>605 printlnの引数がそのまま表示されてしまってたんです。
>>607 ジャストミートでしたぁっ!m(__)m
>>606 まだまだ、みようみまねでやっていて・・・
606の辺りは、「引数が何も指定されなかったときのエラー表示です。」
とテキストに書いてありましたが。
608の辺りは「引数の文字列を変数に代入しています。」となっています。
勿論、filenameをexp05に直してコンパイルしたわけですが。
自分が今使っているテキストの場合、分かりやすくさらっと書いてある
説明書きが自分には「何を言いたいんだか分からない」と思う箇所が
ぼちぼちあります。ま、他のもあたってみようかなと思います。
611 :
606 :2006/03/15(水) 15:29:26
>>610 いや…俺が言いたかったのは
BufferedReader reader = new BufferedReader(new FileReader("exp05.txt"));
の様に直接ソース内でファイル名を指定するなら
>>606 も
>>608 も要らないんじゃないかと思ってね。
まぁ、出来たなら良かった。
612 :
デフォルトの名無しさん :2006/03/15(水) 23:30:53
サーブレットと配列が得意な人っていますか?
>>612 throw new YourQuestion ();
try {
>>612 >>613 } catch (RuntimeException e) {
System.err.println("配列が得意ってなんだよー");
throw e;
}
615 :
デフォルトの名無しさん :2006/03/16(木) 11:51:09
【 課題 】 クライアントとサーバーの間に中継サーバーとして配置し、 データをそのまま中継するだけのサーバーを作りなさい。
616 :
デフォルトの名無しさん :2006/03/16(木) 12:45:42
TextSS のWindowsXP(Professional)64bit化おながいします もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
618 :
デフォルトの名無しさん :2006/03/20(月) 20:20:53
明後日期限なんですが、 1.ローカルでオープンしているポートを画面に一覧表示させる 2.ポートに対する一般名称を「ポート番号(名称)」も表示するように修正する 3.ファイルにも一覧を出力する(2.で修正した一覧であること。ファイル名は任意) 以上お願いします
619 :
さくら :2006/03/20(月) 22:54:07
【 課題 】(1)〜(5)の演算を実行したあとの変数i,d,bの値を求めなさい。 ただし、int i=1;double d=1.0;boolean b=fales;と初期化されている。 【 回答 】 (1) i+=3; → i=( ) (2) d++; → d=( ) (3) b=(1.0!=1.0); → b( ) (4) d=( (1.0<-1.0 ? 1.0 : -1.0); →d( ) (5)i<<=1; →i( ) よろしくお願い致します。
620 :
デフォルトの名無しさん :2006/03/20(月) 23:08:09
>>619 わかんないなら実行すりゃいいだろ、釣りか?
つられてたまるか (1) i = 4 (2) d = 2.0 (3) b = false (4) d = -1.0 (5) i = 8
623 :
774 :2006/03/21(火) 00:10:53
int a = -1/5; ってやったらaに0が入るのは何でですか? 俺の考えだと、 1.-1/5は-0.2 2.int/intだからintにキャスト 3.(int)-0.2だから-1 4.aに-1が入る どこで間違えてる? 商が求まる時点で整数になってるとか?
624 :
デフォルトの名無しさん :2006/03/21(火) 00:13:07
↑774は気にしないでください
intにキャストするときって その数字以下で最大の整数にするんじゃなくて、 数字部分で切捨てじゃなかったっけ?
626 :
623 :2006/03/21(火) 01:14:12
おっしゃる通りです。 すいませんでした。
どうしても-1にしたけりゃ-0.5足してからキャストね
628 :
デフォルトの名無しさん :2006/03/21(火) 08:08:29
吸ってんじゃねーよ
629 :
デフォルトの名無しさん :2006/03/21(火) 08:20:23
↑きみは短絡的って言われてるでしょ
0.5は四捨五入だった この場合は-1足してからキャスト
631 :
デフォルトの名無しさん :2006/03/23(木) 01:44:45
【課題】 プログラムに引数で与えられたファイル名でファイルのコピーを行う 例)exp01 コピー元ファイル名 コピー先ファイル名 指定したコピー元ファイルが無い場合は 「指定されたコピー元ファイル〇〇〇がありません」 指定したコピー元ファイルがあるが、読み込み不可の場合は 「指定されたコピー元ファイル〇〇〇が読み込めません」 と画面に表示し例外を投げて終了。 指定したコピー先ファイルがすでに存在する場合は、 「指定されたコピー先ファイル〇〇〇が存在します」 と画面に表示し例外を投げて終了。 【期限】:まだ一応大丈夫です。 【補足】最初は課題文を読んでも、何をすればよいのか分かりませんでした (今でも同じような感じですが)。例外が3つにも及ぶので、ここまでくると ソースが複雑になりそうで、今の自分の力ではとても負えないなという印象が 正直なところ。そもそも、参考書でFileReaderやWriterのところは目を通したのですが 「ファイルのコピーってできるの?」という風な疑問です。 皆さんの的確且つ有効なアドバイスを頂けると有難いです。
>>631 > 「ファイルのコピーってできるの?」という風な疑問です。
コピー元ファイルから一定量ずつ読みだしてはコピー先に書きだしていく
というのを残りがなくなるまで繰り返すとコピーになるよ。
>>631 // 引数が無い場合の処理などは入れてません。
// 動作確認お願いします。
import java.io.*;
import java.nio.channels.*;
public class T55_631 {
public static void main(String[] args) throws IOException {
File src = new File(args[0]);
File dst = new File(args[1]);
if (!src.exists()) {
System.out.println("指定されたコピー元ファイル "+src+" がありません");
throw new IOException();
}
if (!src.canRead()) {
System.out.println("指定されたコピー元ファイル "+src+" が読み込めません");
throw new IOException();
}
if (dst.exists()) {
System.out.println("指定されたコピー先ファイル "+dst+" が存在します");
throw new IOException();
}
FileChannel in = new FileInputStream(src).getChannel();
FileChannel out = new FileOutputStream(dst).getChannel();
in.transferTo(0, src.length(), out);
in.close();
out.close();
}
}
634 :
631 :2006/03/23(木) 13:22:33
>>632 なるほど、確かにそれならば。流石、視点が違いますね。
では、例えばFileCopyといった感じのメソッドはないのですね・・・
>>633 おぉ、なんだか凄いものができてますね。ちなみに、
import宣言の2行目はどういう意味なのでしょうか?
あと、Fileクラスのとこの変数src、dstは任意のものですか?
【 課題 】ランダムに数値が格納されているファイルを読み込み、そのデータを並び替え(昇順)を行う。 並び替えたデータを別のファイルに書き込む。 *数値例 7989 98851 47986 ・・・ 【 期限 】本日中です。申し訳ありません。 【 補足 】並び替え方法は、2種類より選択可能とする。1つはバブルソートで行い、もう一つはバブルソート以外の方法で行う。 よろしくおねがいします。
【課題】CellCountVisitor.javaに適切なメソッドを入力し、TableTest2.htmlの出力
結果が出るようにせよ
http://read.kir.jp/file/read41186.lzh 【期限】明日のお昼
【補足】Acceptor Visitor Table TableData TableEntry TableTest2
CellCountVisitorをjavacで実行
TableTestとColorVisitorの自力で出来ましたが
TableTest2の、テーブルのセル数 = 0 これがTableTest2.htmlのようにカウン
トさせて表示させることが出来ません。
よろしくお願いします。
637 :
デフォルトの名無しさん :2006/03/23(木) 19:09:47
さあ、はやく回答するがいい!
638 :
636 :2006/03/23(木) 20:18:19
補足です。 テーブルのセル数は色の着いた部分のみを数えます
639 :
631 :2006/03/24(金) 00:18:52
>>633 import宣言の2行目については、先ほど、
version1.4以降の拡張された要件云々であることが一応分かりました。
少しお騒がせしましてすいません。
追加の質問で恐縮なのですが…、文字入力待ちの処理のためのソースは
BufferedReader reader = new BufferedReader(new InputStreamReader(Syatem.in));
を使えばよいと思うのですが、複数行入力できるようにするには
どうすればよいでしょうか?一つのキーとしてループさせればよいかもしれない
というアドバイスは違うところから頂いているのですが、それだとその都度複数行可能かなと
思ってしまいます。
何度もご迷惑をおかけします。申し訳ありません…
640 :
デフォルトの名無しさん :2006/03/24(金) 00:19:59
少しは考えろ
641 :
デフォルトの名無しさん :2006/03/24(金) 07:30:17
>>639 class SuperReader {
private BufferedReader in;
SuperReader(BufferedReader br) {
this.br = br;
}
String[] readSuper(int n) {
String[] s = new String[n];
for (int i = 0; i < n; i++) {
s[i] = br.readLine();
}
}
}
642 :
774 :2006/03/24(金) 07:46:31
643 :
デフォルトの名無しさん :2006/03/24(金) 10:43:14
>>642 スレ違いながら、改めて韓国人への怒りが増した今日この頃であった。。。
韓国人は心底腐ってる
644 :
636 :2006/03/24(金) 13:27:31
自己解決しました
646 :
532 :2006/03/26(日) 02:36:03
647 :
532 :2006/03/26(日) 14:19:26
夜中から今までやって、終盤まで組み終わりましたが、
2.をどうしても組むことが出来ません。
先生にメールを送って聞いたところ、エラーメッセージを表示ではなく、
JTextFieldが空欄の状態でボタンを押した時に何も起きなければ良い と言われました。
JTextFieldに何か文字が書かれている時にボタンが押されたら、通常のコンバート処理を行え との事です。
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=27391 00120: の所に、try-catchの文を挿入してみたのですがどうしても上手くいきません。
それ以外はきちんと動いていると思うのですが、最終的に書きかけのソースを表示してしまい、
申し訳ありません。
空だったら何もしない、という処理を
>>532 に追加して、
それをGUIから呼ぶだけだろ?
なにが難しい?
649 :
532 :2006/03/26(日) 17:11:31
>>648 空だったら何もしない、という処理の組み方がわからないんです…orz
文字列変換するオブジェクトを作る→できてる(教員から提示有り) GUIのオブジェクトを作る→できてる イベントに応じてGUIオブジェクトが文字列変換オブジェクトを呼ぶ
651 :
532 :2006/03/26(日) 17:18:31
>>650 と仰いますと、エラーを検出するコードを書かないで、
このままの状態でも問題ないのでしょうか?
>>649 考え方のヒントなんだけど、
temp(inputLine1.getText() が返す値)と ""(空白文字列) を equals() で比較してみる
というような分岐処理を入れてみたら、どうなると思う?
どうでもいいけど、
>>646 の先生の回答で
各文字列変換メソッドがpublic staticで書かれていてるんだ…
なんかJAVAというよりVBのコード見てるみたい。
変換用のクラス使ってGUIの出力にあわせて継承すればいいのに
654 :
533 :2006/03/27(月) 01:15:51
655 :
573 :2006/03/27(月) 14:29:19
以前お世話になった者です。度々お手数ですが宜しくお願い致します。 【課題】 起動後、入力待ちとなる。複数行入力可能。 画面から1文字 w が入力されると出力先ファイル名(恐らく課題の上では .txtファイルでいいのではないかと思いますが)を聞くメッセージを表示し、 入力されたファイル名にてファイルに書き出し処理をして終了する。 ただし、以下の条件を満たすように。 ファイル名入力時に未入力でEnterされた場合はファイルに書かず処理を終了する。 入力されたファイル名のファイルが既にある場合、その旨メッセージを表示して 別のファイル名入力を待つ。 【期限】今月中 【補足】これと同じ問題で条件が更に付け加えられたバージョンがあるのですが、 それは今の自分には難しすぎるので、とりあえず上記でお願い致します。 最近卒業式等で落ち着きませんでしたが、自分なりにソース作ってみました。以下に↓
656 :
573 :2006/03/27(月) 14:37:46
import java.io.*; import java.util.*; public class kadai9 { public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>(); BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); while (true) { String line = reader.readLine(); if((line = reader.readLine()).equals("w")) { break; System.out.println("ファイル名を入力して下さい"); } } String filename = args[0]; try { PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(filename))); String line; while ((line = reader.readLine()) != null) { writer.println(line); if("filename".exists()) { System.out.println("ファイル名:"+filename+"は既に存在します。"); } } writer.close(); } catch (IOException e) { System.out.println(e); } } }
657 :
573 :2006/03/27(月) 14:38:33
今の所、21行目で「シンボルを見つけられません」ということで、 「シンボル:メソッドexists()」といったエラーが出ています。 ただ、コレクションがいまいちよく分からないためその箇所に自信がなく、 21のエラーをクリアしたとしても、次はコレクションで引っかかるのでは という気がしますが・・・ 長くなり&読みにくく、ごめんなさい。
【課題】キーボードから3つの数字を入力し、 整数化して小さい順に表示するプログラム。 【補足】ホントに初歩的なことですいません;一応分かるととこまで 記載します。 public class CondNest { public static void main(String[] args) { int x, y, z; x = Integer.parseInt(args[0]); y = Integer.parseInt(args[1]); z = Integer.parseInt(args[2]);
public class CondNest { public static void main(String[] args) { int x, y, z; x = Integer.parseInt(args[0]); y = Integer.parseInt(args[1]); z = Integer.parseInt(args[2]); int []a = new int[]{x,y,z}; java.util.Arrays.sort(a); System.out.println(a[0]+" "+a[1]+" "+a[2]); } }
イギッツッツ?
>>656 , 657
まず、おかしいのここ。
if("filename".exists()) {
663 :
662 :2006/03/27(月) 17:02:25
String.exists() っていうインスタンス・メソッドは無いよ と言われているのと同じ。
664 :
658 :2006/03/27(月) 17:42:26
無事実行することできました。 ありがとうございました^^
儲かった?
二回に分けて投稿します!! 【 課題 】 class A { protected int x = 0; // x の初期値を 0 とする。 void f(int y) { x = 2 * y; // y を 2 倍した値を x に代入 } void g(int z) { f(z + 1); // z に 1 足した数を引数に渡して f() を呼び出す。 } } class B extends A { void f(int y) { x = 3 * y; // y を 3 倍した値を x に代入 } } ――――――――――――――――――――――――― A a = new A(); B b = new B(); a.g(2); b.g(2);
続きです!! Q1.上のコードを実行した直後、変数 a のインスタンス変数 x の値はいくつになっているでしょうか。また、x がその値になるまでの間、a が参照するインスタンスに対して、どのクラスのどのメソッドが呼び出されたかを順に示してください。 インスタンス変数 x の値: x = 呼び出されるメソッド(呼び出される順に) 1: 2: Q2.上のコードを実行した直後、変数 b のインスタンス変数 x の値はいくつになっているでしょうか。また、x がその値になるまでの間、b が参照するインスタンスに対して、どのクラスのどのメソッドが呼び出されたかを順に示してください。 インスタンス変数 x の値: x = 呼び出されるメソッド(呼び出される順に) 1: 2: 【 期限 】明日には郵送で贈らなければいけないので早めだと嬉しいです。 【 補足 】丸投げです。まったくわからないので力を貸してください;長くて申し訳ないです;
すいません。スレ違いなんですけど、 swingでコンポーネントのフォーカスをロストすることができます?
Q1 x = 6 1: a#g(2) 2: a#f(3) Q2 x = 9 1: a#g(2) 2: b#f(3)
672 :
デフォルトの名無しさん :2006/03/28(火) 13:50:04
674 :
655 :2006/03/28(火) 13:52:37
みなさん、ありがとうございます。
>>665 どうも、わざわざすいません。ありがとうございます。
分からないところ一部ありますが、参考にさせて頂きます。
675 :
670 :2006/03/28(火) 13:55:50
自己解決しました。 おまいらほんとに使えませんな(プグラ
676 :
デフォルトの名無しさん :2006/03/28(火) 15:47:57
296 名前:670[sage] 投稿日:2006/03/28(火) 13:54:43 自己解決しました。 おまいらほんとに使えませんな(プグラ 297 名前:670[sage] 投稿日:2006/03/28(火) 13:55:18 誤爆スマソ 超絶バカ発見w
>>671 ありがとうございます!!
本当に早くて嬉しいです!!
678 :
デフォルトの名無しさん :2006/03/28(火) 16:56:02
いますよ〜
681 :
532 :2006/03/29(水) 14:15:03
>>654 レスが遅れて申し訳ありません。
作って頂いたソースですが大変参考になりました。
533さんのソースを元に、自分で書いたソースに少し味付けし、提出する事が出来ました。
本当にありがとうございました。
682 :
デフォルトの名無しさん :2006/03/30(木) 10:31:41
【 課題 】アレイ(並列)のプログラムを組みなさい。
ホテルに泊まっている客の情報を元に、以下の情報を出力せよ。
・何人の客が現在泊まっているか。
・客の平均年齢(doubleを使用して小数点まで求めよ)
・一番年を取っている客の名前と名字
・一番若い客の名前と名字
・18歳以下の客の数
・55歳以上の客の数
・使用者が入力した文字が名字の頭文字である客の数
(例, aと入力したら akagi, aoki などの名字の人がピックアップされ、それの合計数を出力する。)
<採点条件※これらのメソッドを必ず含ませる事。>
・すべての客の平均年齢を求めるメソッド
・一番年を取っている客の名前と名字を求めるメソッド
・一番若い客の名前と名字を求めるメソッド
・18歳以下の客の数を求めるメソッド
・55歳以上の客の数を求めるメソッド
・使用者が入力した文字が名字の頭文字である客の数を求めるメソッド
・プログラムを走らせた時、客の情報は毎回違う情報にする事。(異なる名前、年、合計宿泊客数など)
・最低でも一人の客はかならず並列リストに含まれている事。
・src.zip(客のリストクラス(Person.java)、並列クラス(A5Arrays.java)、メインクラス(Main.java))をダウンロードし、
その中に含まれているメインクラス(Main.java)にコースを追加してプログラムを動くようにする事。
→
ttp://n.limber.jp/n/fWC1aihFb パスは java です。
【 期限 】3月31日
丸投げですが、よろしくお願いします。
683 :
デフォルトの名無しさん :2006/03/30(木) 15:48:12
【 課題 】 複数のインターフェースを宣言し、それらを様々なクラスに実装する次のようなアプリケーションを作成せよ。 まず、インターフェースAntiLockBrakes、CruiseControl、PowerSteeringで、自動車のオプション機能を宣言する。 各インターフェースにはインターフェースと同じ名前のメソッドを1つだけ宣言する。 Model1、Model2、Model3クラスは、抽象クラスAutoを拡張する。 Model1オブジェクトでは、パワーステアリングを使用できる。 Model2オブジェクトではABSとクルーズコントロールを使用できる。 これらのクラスをインスタンス化し、メソッドの動作をテストせよ。 【 期限 】3月31日まで 長い上に丸投げで期限も短くて申し訳ありませんが、皆さんのお力を是非お貸しください。
>>682 鉄アレイのプログラムかと思った。
並列? それはシリアルと呼ぶのではないか?
アレイといったら配列のことだと思うのだが。
>>682 簡単じゃねえか。Personクラスにそれぞれ必要な情報とgetter/setterメソッド追加して
ホテルに相当するクラスに何人止まっているかをPerson[]で調べる。
Person[]よりもList<Person>のほうがええかな。
686 :
デフォルトの名無しさん :2006/03/30(木) 16:44:41
>>683 > 【 課題 】
> 複数のインターフェースを宣言し、それらを様々なクラスに実装する次のようなアプリケーションを作成せよ。
> まず、インターフェースAntiLockBrakes、CruiseControl、PowerSteeringで、自動車のオプション機能を宣言する。
なんか凄い見覚えがあるな。富士ソフトABCの研修課題か?
そのネタ実は、「独習Java」にすべての答えが載っているぞ。
簡単だからやってみ。
あの会社は研修に毎年「独習Java」を使っているらしいからな。
富士ソフトABCに入社するなんてご愁傷様だが。
687 :
デフォルトの名無しさん :2006/03/30(木) 17:05:50
>>684 よく問題を読んだら配列でしたorz
>>685 というと、どんな風に組めば良いのでしょうか?
あべし入社カワイソス
690 :
683 :2006/03/30(木) 18:54:45
>>686 いや、違いますけど、そんな有名な問題なんですかね?
しかし、教えてくださってありがとうございます。
>>688 vぬをんヴおwんじsbjh
マジリスペクトです。ありがとうございます。
みなさん親切ですね。
ホントピンチだったので、助かりました。
お世話になりました。
691 :
682 :2006/03/30(木) 18:56:03
自己解決しました。
692 :
655 :2006/03/30(木) 19:48:47
No.655と同じ課題についてですが、エラー続きで困っています。 ”エラー続き”といっても、ようやく、あと一つか二つと思っていたのです。 しかし新たに(下のソースの)下の辺りののexists()メソッドの箇所の 変数についてエラーが出てしまいました。 講師への質問で昼過ぎに返答が来て「色々と問題箇所があるので時間がありません。 ファイルを添付するので参考にして下さい」といった思いもしない感じの返事が来ました。 課題欄に事情を連ねるのもなんですが、時間ないといっても、下のソースと大体同じものを 3,4日程前に別の質問の為に添付しており(勿論”エラー続き”のように、手直しを継続中なので 部分的には都度違いますが)、講師の人は既に知っていたはずなので、もし全体的に修正の必要ありなら その時点で指摘して欲しかったという状況です。 【期限】 今月中(でも1日までなら大丈夫です)。技術研修はまだ始まらないので幾分か猶予がありますが、 式&初期研修の関係で地方に遠征するので、そもそもネットに接続可な環境あるかという 不安材料あり。 【補足】 もしかしたら全体的に変えなければならないのか否か自分には分かりませんが、 何とか今のものを手直しする形で完成できればと思う次第です。 No.655と同じ内容で別問題として、入力行数&各行文字数を任意に設定して その制限を超えた場合にメッセージ表示と共にその文削除する問題があります。 それに関して参考になる書籍やサイト等、もしご存知な場合も宜しくお願い できないでしょうか。
693 :
655 :2006/03/30(木) 19:53:32
import java.io.*; import java.util.*; import java.io.File; public class ShortEditor { public static void main(String[] args) { ArrayList list = new ArrayList(); BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String line = null; while (true) { line = reader.readLine(); if(line.equals("w")) { break; } list.add(line); } 改行エラーが出たので2つに分けさせて頂きます。 見にくくなり申し訳ありません。
694 :
655 :2006/03/30(木) 19:54:50
String filename = args[0]; try { File file = new File(filename); while (true) { System.out.println("ファイル名を入力して下さい"); filename = reader.readLine(); if (filename.equals("")) { return; } } PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(filename))); while ((line = reader.readLine()) != null) { writer.println(line); } writer.close(); } catch (IOException e) { if (file.exists()) { System.out.println(filename + "は既に存在します。"); } } } } 何分お手数をおかけしますが、宜しくお願い申します。
696 :
682 :2006/03/31(金) 00:32:51
>>691 誰ですか…。自己解決していません…orz
698 :
682 :2006/03/31(金) 08:22:46
>>698 >メインクラス(Main.java)にコース (??) を追加してプログラムを動くように
なんでPersonをいじってるんだ。 触る必要は皆無。 むしろ触るな。
平均年齢とかの情報を個人に持たせてどうする。 どんなPersonだそりゃ。
「必ず含ませる事」になってる最低7個のメソッドをMainに書くだけだ。
平均年齢ならこんな幹事
public int getAverage(Person[] persons) {
int total = 0;
for (int i=0; i < persons.length; i++) {
total += persons[i].getAge();
}
return total / persons.length;
}
700 :
699 :2006/03/31(金) 10:01:28
あー平均年齢ってdouble出せっての忘れてた。 まあ雰囲気を判れ
701 :
682 :2006/03/31(金) 10:35:17
>>691 どうせならどう事故解決できたのかかけばいいのに
>>701 Personクラスを見てみな。 コンストラクタで lastName firstName age を渡してるだろ。
取り出すのは、getLast() getFirst() でいける。
返り血を出力するには
System.out.println("Avarage age is " + myPeople.aAge); とかを
System.out.println("Avarage age is " + getAverage(myPeople));
にすりゃいいんだよ。
705 :
655 :2006/03/31(金) 13:22:32
>>697 では、最初から、一から書き直したほうがよいですか?
どうでしょうか?
706 :
682 :2006/03/31(金) 13:44:07
>>705 Java始めたばっかりだから間違ってたら許してくれ(697じゃない)
>>693 1行目にimport java.io.*;って書いてるから3行目のimport java.io.File;っていらないと思うんだが。
>>694 1行目のString filename = args[0];は何を意味してるの?ファイル名与えて実行すんの?
それでファイル名取得してもあとで「ファイル名を入力してください」ってあるから意味なくね?
講師が「色々と問題箇所があるので時間がありません。」といったのはそのへんだと思うよ
あと「ファイルを添付するので参考にして下さい」ってあるけど見てみたの?
>>706 そりゃ動かねーよ。 そういうふうに条件判断するように書かなきゃ。
まだ実装途中なのかと思った。
考え方のサンプルとしてこんな幹事
public static int getOldestAge(Person[] myPeople) {
int oldestAge = -1; // 有り得ない最低値をセットしといて
for (int i=0; i <myPeople.length; i++){
int age = myPeople[i].getAge(); // いらんけど見やすくなるので今回だけ
if (age > oldestAge) {
// Personの年齢がoldestより多ければoldestをその年齢で更新
oldestAge = age;
}
}
return oldestAge;
}
入力関係はまずはググれ。いくらでも出てくる。
709 :
708 :2006/03/31(金) 14:33:06
・・・って最小/最大の年齢じゃなくて、その氏名がほしいのか。 面倒な。 Comparatorでソートしちゃえば早いんだけど、しょーがねーから書いてみる。 さっきのメソッドで拾った年齢のPersonを、配列から探し出して返す。 いなけりゃnullだ。 同じ配列を渡せば通常は居ないはずはないが、一応nullチェックはするように。 public static final Person getPersonByAge(Person[] persons, int age) { for (int i=0; i < persons.length; i++) { if (persons[i].getAge() == age) { return persons[i]; } } return null; } で、こっから帰ってきたPersonから getLast() getFirst() で氏名を取得しろ。
710 :
708 :2006/03/31(金) 14:36:23
>>708 を書き直したほうが早かったかも orz
まーいいや
文句をだらだら言いながらもきちんとソースを書いてやってる
>>708 に愛を感じる。
なんでfinal宣言してんの?
713 :
708 :2006/03/31(金) 15:06:18
>なんでfinal クセ。 つかstaticメソッドを継承することって有り得ないでしょ?
>つかstaticメソッドを継承することって有り得ないでしょ? 継承されるぞ。 絶対変更されるわけには行かないという 変数・メソッド以外はfinal宣言は避けるべき。
715 :
708 :2006/03/31(金) 15:31:35
>>714 継承じゃなくてオーバーライドだった or2 =3
で、そうだね、その通りだと思う。 俺もstatic以外でのfinal宣言には気を使ってる。
effective java でもそんな事書いてあった希ガス。
個人的にはstaticをfinal宣言しないのは気持ち悪いけど・・・ クセだから直そう。
スレ違い失礼
716 :
デフォルトの名無しさん :2006/03/31(金) 22:08:02
今、7つのブルーの丸がランダムに散らばるJavaを書いていて、 ここから、大きさもランダムで、色もスクリーンの幅で変わるような プログラムを書かなくちゃいけないのですが、さっぱりわかりません。。。 あと7つの丸は全部、スクリーンの1辺でもいいので当たらなければなりません。 ちょっと説明不足かもしれないんですけど、だれか教えてくれるかた居ますでしょうか? ifとかelse ifとか難しいよぉ。。。
717 :
デフォルトの名無しさん :2006/03/31(金) 22:25:19
718 :
デフォルトの名無しさん :2006/03/31(金) 22:43:28
まったくだ!プンプン
719 :
682 :2006/03/32(土) 13:26:06
>>708 色々やったのですが、どうしても上手くいきません…。
点数は引かれてしまうのですが、提出日を月曜日にしてもらいました。
自分で組んでみたのですが、Oldest age は常に101のままで、
名前も[La5.Person;@1add2ddと表示されるだけです。
720 :
682 :2006/03/32(土) 16:26:37
>>708 もう答え全部書いてやれよ、、、
かなりの初心者だぞ>682
getLast() getFirst() で氏名を取得 を違うクラスから取得してやがる
今って学生は春休みじゃないの? 宿題ってもしかして会社の研修課題?なんか怖いな
723 :
682 :2006/03/32(土) 17:27:21
724 :
デフォルトの名無しさん :2006/03/32(土) 17:44:38
そもそも何でMainクラスのメソッドが全部クラスメソッドなんだ?
725 :
682 :2006/03/32(土) 17:52:03
726 :
デフォルトの名無しさん :2006/03/32(土) 19:40:09
>>725 724では無いが、あなたのソースは手続き志向プログラミングだよ ってこと
オブジェクト指向プログラミングを少しは勉強したらどうかと。
727 :
デフォルトの名無しさん :2006/03/32(土) 19:40:40
実は、たったの24時間で、
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
あなたの今後のネット収益を倍増するスキルがあります。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
それを知りたい方は、他にいませんか?
アフィリエイトを使わずにホームページとEメールだけで3,000万以上稼いだ
インターネット・マーケッターの宮川さんが、
巨大な現金の山を作り出す門外不出の一生涯使えるノウハウを
下記のサイトで公開しています。
その内容をお知りになりたい方は、下記をクリックしてください。
【たったの24時間で あなたの今後のネット収益を倍増するスキルとは? 】
http://infostore.jp/dp.do?af=moneyclick&ip=successpreneur&pd=01
728 :
682 :2006/03/32(土) 20:35:45
>>726 オブジェクト指向は、全機能は言語の仕様として備わっているから、
後は命令文だけ書けば良い といった感じで認識しているのですが、
こんな感じで良いのでしょうか?
例えば、ラジオの作り方は知らないけどラジオの操作方法は知っているから、
スイッチをつける、消す、ボリュームをあげる、下げる等々の操作は可能。
プログラムの方は、
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=27433 まで書いて、
Total guests are 196
Avarage age is 49.392857142857146
Oldest guest name is Nathan Spencer and this guest age is 98
Youngest guest name is Ryan Quaid and this guest age is 14
Minor(Under 18) guests have 14
Senior(Over 55) guests have 98
Typed initial people have
といった感じで出力されるようになりましたが、18歳以下の人数、55歳以上の人数、
入力したアルファベットが頭文字の人の人数はどのように求めたら良いのでしょうか?
729 :
デフォルトの名無しさん :2006/03/32(土) 20:59:37
>>728 それ先生に教わったのか?
だったらその先生に馬鹿って言っておいて
730 :
デフォルトの名無しさん :2006/03/32(土) 21:04:54
>>728 Java以前だな
現実世界で
ある部屋に見知らぬ人間達と一緒に居てその中の人間の18歳以下の人数,55歳以上の人数
任意の頭文字を持つ人の人数を調べる時はお前はどうするよ?
先生がCしかやったことないんじゃないかな
732 :
デフォルトの名無しさん :2006/03/32(土) 21:41:30
使う側のオブジェクト指向としてはあってる気がするけど、 作る側としての考え方が欠如しとる気がする。
733 :
682 :2006/03/32(土) 22:02:03
>>729 オブジェクト指向は習っていません。
いきなりJavaの基本から習い始めました。
>>730 現実世界でなら、直接聞くと思います。
734 :
デフォルトの名無しさん :2006/03/32(土) 22:11:19
>>682 オブジェクト指向のカプセル化としての考え方はそれでいいけど
他にも色々あるでしょ。継承やら多態性やら。
JAVAを学習していくなら、例え話のラジオを作る側にならなくちゃ
別にツールとして使用するだけの話ならAPI使えれば十分かも知れないが
Javaの世界でも直接聞けばいいじゃん
736 :
682 :2006/03/32(土) 22:22:10
>>734 というと、オブジェクト指向をきちんと学ばないと、
Javaは完璧にマスター出来ないという事でしょうか?
>>735 言うなれば、日本語で聞くか、Java言語で聞くかとの違いですよね。
例えば、18歳以下を聞くメソッドですが、
public static int getMinor(Person[] myPeople) {
int minorTotal = 0;
for (int i = 0; i < myPeople.length; i++) {
if (myPeople[i].getAge() < 18) {
minorTotal = myPeople[i].getAge();
}
}
return minorTotal;
}
とあり、最初の変数(トータル人数用)は0に設定しておいて、
次のループ等で18歳以下の人を探したのですが、
minorTotal = myPeople[i].getAge(); のままでは、一番若い客の年齢を求めるのと変わりません。
Javaから現実世界にスイッチしますが、若い客の年齢を求めた後は、それを数えるだけですよね。
Javaに戻って、この場合、もう一度for文を持ってきて数えた結果を出力すれば良いのでしょうか?
>>736 そのコードしか見てないけど、こんな感じじゃ駄目なのかな?
for (int i = 0; i < myPeople.length; i++) {
if (myPeople[i].getAge() <= 18) { //18歳以下だから18を含める
++minorTotal; //18歳以下でif文を通過したので、人数を一人増やす
}
738 :
734 :2006/03/32(土) 22:56:10
>>682 「JAVAを完璧にマスターする」というのであれば
オブジェクト指向を学ぶことは避けて通れない道でしょう。
ゴリゴリ手続き指向でも書けなくはないけど
結果的にJAVAを使うメリットが少なくなるかと。
勉強すると目からウロコがあるかもよ
staticメソッドはオーバーライドされないよ 継承関係がFoo extends Booでstaticメソッドが次のような定義なら Foo.bar(){Aと出力} Boo.bar(){Bと出力} Foo.bar();はAと出力されるし Boo.bar();はBと出力される また、 Foo hoge = new Boo(); hoge.bar();はAと出力される
間違えた Boo extends Foo これだ
743 :
682 :2006/04/02(日) 05:40:23
>>737 自分のコードに加えてみます。
>>738 オブジェクト指向を学ぶには、書籍を購入した方が良いのでしょうか?
学校のゼミでは、先生がプリントしてきたJavaの基礎のようなシートで勉強しています。
>>739 ありがとうございます。
ソースをコピーしてコンパイルしてみたのですが、
"Main.java": 総称型は -source 1.2 でサポートされていません (総称型を使用可能にするには、-source 1.5 を試してください) at line 87, column 21
と出てしまいます。何がいけないのでしょうか?ちなみに、コンパイラはJBuilder 2005の無料版を使用しています。
>>739 ありがとうございます。
こちらも、"Main.java": 総称型は -source 1.2 でサポートされていません (総称型を使用可能にするには、-source 1.5 を試してください)
と表示されてエラーがおきてしまいますorz
744 :
682 :2006/04/02(日) 05:49:15
ArrayList<Person> result = new ArrayList<Person>(); を、JBuilder 2005がサポートしていないのでしょうか?
745 :
739 :2006/04/02(日) 07:51:15
>682にバージョンに付いて何も書いてないのが悪い。 テンプレにバージョンがある理由が分かった? ちなみにJBuilder 2005はコンパイラとは言わない。IDE。 とりあえずメッセージで言われたことをやってくれ。 意味が分からなかったら調べる。調べ方分からなかったらIDE使うな。
746 :
682 :2006/04/02(日) 09:10:10
>>745 調べて見たら、JBuilderではなくてJava自体にバージョンがあるんですね。
739さんの組んだコードはバージョン1.5で動くようになっているんですか?
また、このコードをバージョン1.4で動くようにするにはどうすれば良いのでしょうか?
ここ数日の間、質問ばかりで申し訳ありません・・・。
747 :
682 :2006/04/02(日) 14:37:31
>>745 Javaのバージョンを1.5にしたら動きました。
なので先生に電話をして、バージョン1.5でも良いか?と訪ねたら、
1.4でないと駄目だと言われてしまいましたorz
学生が「1.5にしてもいいか?」と聞いてきたら 先生はピンと来るね「1.5用のコードもらったんだろうな」って。 バレてるよ
javascript:(function(){var messageTextArea = document.getElementsByTagName( 'textarea')[0]; var sp = '&' + 'nbsp;'; var tab = sp + sp + sp + sp; var original = messageTextArea.value; var replaced = original.replace( /^[ \t]+/mg, function(matchstr){return matchstr.replace(/\t/g, tab).replace( /\s/g, sp);}); messageTextArea.value = replaced; if (confirm( 'Post OK?\n\n\n(Original)\n' + original + '\n\n(Replaced)\n' + replaced)) { document.forms[0].submit.click(); }})();
750 :
742 :2006/04/02(日) 16:02:52
>>682 742のソースは1.4のコンパイラで動くよ。
あなたのコードとはかなり違うけど
このスレ観てる先生へ 宿題はこのスレに投下するのが手っ取り早いよ
先生が投下すんのかよ
753 :
682 :2006/04/02(日) 16:43:14
>>748 え、そんなもんなんですか・・・(((( ;゚Д゚))))
>>750 ありがとうございます。
739さん、742さんは数十分でこのコードを書いたみたいですが、
いったいどういう勉強・練習をすればこんな風にJavaを扱えるようになるのでしょうか?
僕は去年の9月から、ゼミの先生にこれからやるならJavaが良いと言われてやり始めたのですが、
コンピュータも大学に入るまでは、インターネットをする程度でゼミの授業の最初の頃は用語が全然分からなくて、
とりあえずコンピュータに慣れろ、と先生に言われてここ1年は週刊アスキーを購読しています。
754 :
682 :2006/04/02(日) 16:44:26
これからやるなら=これからプログラミングを勉強するなら
>>753 せっかく高い授業料払って大学に行っているのだから、
大学の教授にも聞いといたほうがいいんでないかい?
授業料をまだ一回も払ってない漏れは誰に聞けばよかですか?
javascript:(function(){var messageTextArea=document.getElementsByTagName( 'textarea')[0];var sp='&'+'nbsp;';var tab=sp+sp+sp+sp;var original= messageTextArea.value;var replaced=original.replace(/^[ \t]+/mg,function( matchstr){return matchstr.replace(/\t/g,tab).replace(/ /g,sp);}); messageTextArea.value=replaced;if(confirm('Post OK?\n\n\n(Original)\n'+original +'\n\n(Replaced)\n'+replaced)){document.forms[0].submit.click();}})();
javascriptはスレ違いっていってるだろ
あ〜ぁ、やっちゃった(笑
760 :
デフォルトの名無しさん :2006/04/02(日) 23:25:42
761 :
デフォルトの名無しさん :2006/04/03(月) 01:06:04
注意点:
•更新通知付きの MVC を使用しています。
•char は文字を表す型です。
•図におけるクラスの配置位置や順序はテキストで使った図とは異なります。
•キーコードはキーボードのキーの位置を表す整数値です。38 は 'a' のキーを表します。
テキストエディタの機能
•文書に文字を入力・削除できます。
•表示エリアをマウスでクリックしてカーソルを移動できます。
•複数の表示エリアに同じ文書を表示できます。
クラス図
次の図はテキストエディタで使用するクラスの構造をあらわしています。
ttp://up.87op.com/getfile.php?fid=21885&iid=4&DL=UK 各クラスの説明は次の通りです。
TextArea
テキストデータを表示します。
•getCharPosition(x, y) は、座標 (x, y) にテキストの何番目の文字が表示されているかを返します。
•setCursor(pos) は、テキストの pos 番目の文字の手前にカーソルを表示します。
InputManager
キーとマウスの入力を処理します。
•cursor は、テキストの何番目の文字の手前にカーソルがあるかを記憶しています。マウスでカーソルを移動した時に設定されます。
•keyTyped(keyCode) は、キーが押されると OS から呼び出されるメソッドです。keyCode には押されたキーに対応するキーコードが渡されます。
•mouseClicked(x, y) は、マウスがクリックされた時に OS から呼び出されるメソッドです。x, y にはクリックされた時のマウスカーソルの座標位置が渡されます。
762 :
デフォルトの名無しさん :2006/04/03(月) 01:06:57
Text
テキストデータを管理します。
•insertCharAt(pos, c) は、テキストの pos 番目の文字の手前に文字 c を挿入します。
•deleteCharAt(pos, c) は、テキストの pos 番目の文字を削除します。
•getText() は、テキストを文字列の形で返します。
TextChangeSpeaker
TextChangeListener を管理します。
•addListener(listener) は、listener を登録します。
•removeListener(listener) は、listener の登録を削除します。
•fireTextChanged() は、登録された TextChangeListener の textChanged() を呼び出します。
TextChangeListener
テキストの変更の通知を受け取ります。
•textChanged() は、テキストが変更されたときに呼び出されます。
シーケンス図
次の図は表示エリアに "Jva" が表示されている時に、マウスで2文字目の位置(座標は (34, 5))をクリックしてカーソルを移動し、
その位置で「a」のキー(キーコードは38)を押して文字 'a' を入力して、表示エリアに "Java" が表示されるまでの時の処理の流れをあらわしています。
ttp://up.87op.com/getfile.php?fid=21886&iid=4&DL=UK
763 :
デフォルトの名無しさん :2006/04/03(月) 01:07:42
Q1.テキストエディタのクラスで、MVC のモデル、ビュー、コントローラに対応する具体的なクラスはどれでしょう? それぞれ一つずつ答えてください。 モデル: ビュー: コントローラ: Q2. InputManager の mouseClicked() メソッドの実装を Java で記述してください。 TextArea のインスタンスは InputManager のインスタンス変数 textArea で参照できるものとします。 textArea にはあらかじめ適切なインスタンスが代入済みであるとします。 public void mouseClicked(int x, int y) { /* この下にコードを書きます */ } Q3. 上の説明にはテキストをどのメソッドで表示するか記述がありません。表示処理のコードを記述する (具体的な表示処理を行う) のにもっとも適切なメソッドはどれでしょう。どのクラスのどのメソッドという形で答えてください。 丸投げです。すみません; どなたか助けてください・・・;
分割します! @のアプリケーション DrawingApp の描画メソッドはポリモーフィズムを利用して図形クラスの追加に対して変更が必要ない構造になっています。 図形クラスのインスタンスを生成するコードについてもアプリケーションコードの変更が必要ない構造にするために、Lesson 1 で学習したファクトリークラスを利用することを考えます。 次のソースコードを見て設問に答えてください。 class DrawingApp { /* 図形の配列 */ Shape[] shapes = new Shape[10]; /* 指定した名前に対応する図形を指定位置の配列要素に設定する。 */ public void setShape(String name, int index) { shapes[index] = [ 空欄1 ]; } /* 描画領域に図形を表示するメソッド */ public void paint(Graphics g) { for (int i=0; i < 10; i++) { shapes[i].draw(g); } } }
class ShapeFactory { /* 名前に対応する図形クラスのインスタンスを返す。 */ static Shape create(String name) { if (name.equals("rectangle")) { return new Rectangle(); } else if ([空欄2]) { [空欄3]; } else { // 知らない名前の図形に対しては null を返す。 return null; } } } @ class ButtonFactory { static Button create() { return new Button(); } } ○ソースコードの [空欄1] に当てはまるコードを答えてください。 ○ShapeFactory は引数に渡した文字列が "circle" の時、Circle クラスのインスタンスを返すものとします。ソースコードの [空欄2] と [空欄3] にあてはまるコードを答えてください。 空欄2 : 空欄3 : 丸投げします。 大学のゼミの課題です。期限はできるだけ早いと嬉しいです。 どうぞよろしくお願いします
766 :
デフォルトの名無しさん :2006/04/03(月) 04:34:37
( ゚Д゚)ネムヒー
>>764 1. ShapeFactory.create(name)
2. name.equals("circle")
3. return new Circle()
767 :
デフォルトの名無しさん :2006/04/03(月) 04:51:55
(n `д‘)ηマダネムイワァ
>>761 Q1.
モデル: Text
ビュー:TextChangeListener
コントローラ:InputManager
Q2.
textArea.setCursor(getCharPosition(x, y));
Q3.
TextChangedListener#textChanged()
768 :
デフォルトの名無しさん :2006/04/03(月) 04:54:28
まちがいた Q2. textArea.setCursor(textArea.getCharPosition(x, y));
769 :
682 :2006/04/03(月) 05:21:19
>>755 訪ねても、自分で調べろ。俺が学生の時は全部自分で調べたと、
課題をやりながらプログラムは覚えていく というタイプの先生で、
自転車の練習じゃないんだから… と毎回思います。
とりあえず、742さんから頂いたソースを元に書き換えて提出する予定です。
本当にありがとうございました。
>>760 ?
>>766 ありがとうございます!!
助かりました!!
swingにて計算機を作成しなさい。 @足し算・引き算・掛け算・割り算ができる。 A桁数は10桁まで。(それ以上だったら警告) JDKのバージョンは問わず
774 :
デフォルトの名無しさん :2006/04/03(月) 17:14:51
テンプレ読めない阿呆は質問するなよ
775 :
デフォルトの名無しさん :2006/04/05(水) 00:00:09
めちゃめちゃ初心者の質問ですいません。独習Javaで勉強してるんですが 以下のStringToIntの例を,perseInt()メソッドを使う形に書き換えなさいという 問題です。馬鹿みたいな問題なんだと思いますが、どなたか教えてください。 class StringToInt { public static void main(String args[]) { String s = "234"; int i = Integer.valueOf(s).intValue(); System.out.println("Integer.valueOf(s).intValue()" + i); } }
独習Javaに解答付いてないのか
778 :
775 :2006/04/05(水) 00:30:01
>>776 さん
parseInt()の間違いでした
class StringToInt { public static void main(String args[]) { String s = "234"; int i = Integer.parseInt(s); System.out.println("Integer.parseInt(s)" + i); } }
780 :
775 :2006/04/05(水) 00:58:40
>>779 さん
ありがとうございました
助かりました。
781 :
デフォルトの名無しさん :2006/04/05(水) 12:58:32
782 :
デフォルトの名無しさん :2006/04/05(水) 23:28:10
それなんて独習できない本?
独習Javaがウンコってことがよく分かった
784 :
775 :2006/04/06(木) 04:29:31
また来ました c言語学んでc++言語を勉強しようと思ったけど class,メソッド,カプセル化,継承,オーバーロード等を学ぶのに メモリ関係をある程度まかせられるGCなjavaでと 思い勉強中で、ちなみに独習Javaはそうウンコでは 無いと思う。俺が質問した内容と知識がウンコだっただけです。
785 :
デフォルトの名無しさん :2006/04/06(木) 08:25:57
どう考えてもウンコだ 一人のウンコな馬鹿の役にもたたないんだから
糞の役にも立たないとはまさにこのこと
まずはメソッドの命名規約から勉強してこい
788 :
788 :2006/04/07(金) 22:47:08
//java que10 //九九の演算処理を行ってください。 //九九の処理結果 //1から9までの好きな数値を入力してください。 //[入力1から9] //cace1:[入力数値]の2倍を取得する。 //case2:1〜9っていいましたよね? 最初からやり直しです。 //上記で取得した処理結果に1から[入力数値]番目までを掛ける。 お願いします。。。。。。
母国語でおk
790 :
788 :2006/04/07(金) 23:19:48
//1 public class hogehoge{ public static void main(String[] args){ hoge(); } public static void hoge(){ for(int x=1;x<=9;x++) { for(int y=1;y<=9;y++) { System.out.print(x*y+" "); } System.out.println(""); } } } System.out.println(g); System.out.println(b); } public static int sum(int k) { k=k*2; return k; } public static int sum2(int k1) { k1=k1*k1; return k1; } }
791 :
788 :2006/04/07(金) 23:20:22
//9 import java.io.* public class nibai { public static void main(String[] args) throws IOException { BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); String s1=br.readLine(); String s2=br.readLine(); int i1=Integer.parseInt(s1); int i2=Integer.parseInt(s2); int g,b; g=sum(i1); b=sum2(i2);
792 :
788 :2006/04/07(金) 23:21:37
//3 //前に作成した二つのクラスの処理を呼び出し、九九の計算を出力した後、それらに入力した数値を1〜[1〜9までの入力]を掛ける処理をおこなえ。 //尚、それ以外の数値が入力されたときはエラーとし、処理を終了させる。(new で生成) //九九の演算処理を行ってください。 //九九の処理結果 //1から9までの好きな数値を入力してください。 //[入力1から9] //cace1:[入力数値]の2倍を取得する。 //case2:1〜9っていいましたよね? 最初からやり直しです。 //上記で取得した処理結果に1から[入力数値]番目までを掛ける。
793 :
デフォルトの名無しさん :2006/04/07(金) 23:54:34
ボタンの上の文字を上下反転させなさい
794 :
デフォルトの名無しさん :2006/04/08(土) 03:17:39
あげ
>788,790-792 >793 何をしてほしいのかさっぱり分からん。 >1嫁。
788はmixiJavaコミュで質問してコメントなしの放置で
こっちで質問ですか
なによりもまずインデントとることから始めろ
>>1 嫁以前の問題だろ
>>788 なぁ、お前さんよ
最初にこの質問をmixiに持ってきて、「お願いします!」と言ったきりで
こちらに誘導されたら知らんぷりで、お礼やお詫びの一つもないんか?
おにょれ学校で一体何を教わってきたんだ?
>788 ようはやりたいことはこういうことか。 import java.io.*; public class A788 { public static void main(String[] args) throws IOException { ex1(); ex2(); } public static void ex1() { System.out.println("九九の演算処理を行ってください。"); for (int x = 1; x <= 9; x++) for (int y = 1; y <= 9; y++) printMul(x, y); } public static void ex2() throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); while (true) { System.out.println("1から9までの好きな数値を入力してください。"); try { int n = Integer.parseInt(br.readLine()); if (n < 1 || 9 < n) throw new Exception(); printMul(n, 2); } catch (Exception ex) { System.out.println("1〜9っていいましたよね? 最初からやり直しです。"); } } } public static void printMul(int x, int y) { System.out.println(x + " * " + y + " = " + (x * y)); } }
799 :
デフォルトの名無しさん :2006/04/09(日) 01:21:44
ある文字列を作成して、それをテキストファイルに書き出したいのです。 どうすればよいのでしょうか?
今すぐパソコンを飲み込め
「ある文字列」の作成の仕方がわからなかったら、 広辞苑をランダムにぺらぺらめくって適当な文字を拾い出すといいよ。 テキストには鉛筆かシャーペンで書き出すんだ。 HBかFが使いやすい。
802 :
682 :2006/04/09(日) 07:45:13
前回の課題は無事に提出出来たのですが、前回の応用でさらに課題を出されましたorz
【 課題 】前回の課題(
>>682 )を元に、ソートのプログラムを組みなさい。
ホテルに泊まっている客の情報を元に、以下の情報を出力せよ。
・何人の客が泊まっているか。
・泊まっている客の名字をアルファベット順(A〜Z)に並び替え、名字、名前、年齢を出力。
・泊まっている客を年齢の若い順に並び替え、名字、名前を表示を出力。
【 期限 】4/10
【 Ver 】1.4
【 補足 】・a6_src.zipの中に配列クラス、Personクラスがあるのでそれを使いプログラムを組むこと。
ttp://n.limber.jp/n/qMVSA5iF8 パスはかけていません。
・それぞれのソートは別々のメソッドを使い実行すること。
・プログラムを動かす時、毎回客のリストが変わるようにすること。
・最低でも1つのアレイオブジェクトがソートメソッドに入るようにすること。
よろしくお願いします。具体的な出力例は、a6_src.zipに入っています。
804 :
742 :2006/04/09(日) 11:30:11
805 :
742 :2006/04/09(日) 11:40:11
ぁ…ごめん。 コメントで//匿名クラス じゃなくて //無名インナークラス だった。脳内変換よろしく。
806 :
682 :2006/04/09(日) 12:09:54
807 :
742 :2006/04/09(日) 13:43:22
やさしいな
809 :
682 :2006/04/09(日) 15:03:45
>>807 ありがとうございます。
本当に何とお礼を言って良いのやら…
810 :
742 :2006/04/09(日) 17:16:33
>>809 いえいえ。どういたしまして。
今回のように、A5Arrays から A6Arrays で氏名・年齢が重複しないように
実装が変更されていても、getPersonArray() が同じく Person [] でデータ返すので
問題なく動くというのは、オブジェクト指向開発のメリットの1つだと思いますょ。
私も実務、開発経験が無いのでいい勉強にさせてもらってます。
811 :
デフォルトの名無しさん :2006/04/10(月) 15:26:05
どうしても分からないのでよろしくお願いします。 Javaの配列について、以下の問に答えよ。 ・int型の要素を50個持つ配列(配列名arr)を作るためのJavaの命令を書け。 ・配列arrの値を全て0に初期化するための命令を,for文を用いて書け。 ・配列arrの要素を全て画面に表示するための命令を,for文を用いて書け。 ・配列arrの7番目の要素の値を-1に書き換えるためのJavaの命令を書け。
>>799 おまえはまずHalloJavaWorldからだ
>>811 public class Res811 {
public static void main(String[] args) {
// int型の要素を50個持つ配列(配列名arr)を作る
int[] arr = new int[50];
// 配列arrの値を全て0に初期化する
for(int i = 0; i < arr.length; i++) {
arr[i] = 0;
}
// 配列arrの要素を全て画面に表示する
for(int i = 0; i < arr.length; i++) {
System.out.println("arr[" + i + "] = " + arr[i]);
}
// 配列arrの7番目の要素の値を-1に書き換える
arr[7] = -1;
}
}
817 :
811 :2006/04/10(月) 21:56:16
お願いしてこんなこと言うのはなんですが その解答のどの辺がオブジェクト指向ですか?
なんだコイツ
>>817 それが言いたいだけで質問したんだろ?
宿題じゃないんだろ?
>>811 釣りじゃないと仮定した上でマジレス
オブジェクトを作成するほどの処理じゃない。
おそらくC言語厨の仕業だろ
822 :
デフォルトの名無しさん :2006/04/11(火) 07:16:44
823 :
811 :2006/04/11(火) 07:45:10
ジャバで実装してればオブジェクト指向なノリだな >配列がオブジェクト って
824 :
682 :2006/04/11(火) 08:49:51
>>810 742さんにご報告です。課題5の宿題が帰ってきました。
結果は、重複があるので-5点でした。(25/30)
public int getOldestAge(Person [] myPeople){
int max = 0;
//get Oldest Age
for (int i = 0; i < myPeople.length; i++) {
if (myPeople[i].getAge() > myPeople[max].getAge()) {
max = i;
}
}
//return to Oldest Age
return max;
}
このように書けば、わざわざ別のメソッドで名前を求める必要はないし、アレイリストもいらない。
出力する所で、myPeople[i].getFirst()、myPeople[i].getLast(),myPeople[i].getAge()
で根こそぎ持って行けると言われましたorz YoungAgeの場合は、OldAgeの客のメソッドを逆に書けば良いと言われました。
あと、課題6ですが、先生に見せたところ前回の課題(
>>682 )を元にとは言ったが、そのまま流用をするわけではない。
また、こんな高度なソートは使う必要はない。もっとシンプルなソートを使え。と言われました…。
先生曰く、バブルソートでソートをするのがこの課題の目的らしいです。742さんのソート方法はもっと上のクラスで習うらしいですが、
自分で書いた事になっているので、「ええ、そうなんですか?!」としか言えませんでした…orz
一応、課題6を先生に言われた通りに書き換え、バブルソートの記述するところまでのソースです。
ttp://n.limber.jp/n/ay76lsiF6 自分でもやってはいるのですが、結構ハードです…。
バブルソートについて分からない場合は
ttp://lecture.ecc.u-tokyo.ac.jp/~ueda/cp05/prog9.html を見ろとの事でした。
ご迷惑をおかけして申し訳ありません。
825 :
742 :2006/04/11(火) 10:32:21
>>824 >>結果は、重複があるので-5点でした。(25/30)
あらま、残念でしたね。
ちなみにその5点、どうしても取り返したいと思うなら先生に
「最高年齢が2人いる場合、このメソッドでどう取得すればいいのですか?」
と聞いてみるといいよ。
結局最高年齢のindexを取得しても同じ年齢の人が他にもいるかどうかを
走査して取得しなくちゃいけないなら、どんどんスパゲティプログラムになると思うけどな。
826 :
682 :2006/04/11(火) 11:43:32
827 :
742 :2006/04/11(火) 12:08:45
>>817 プログラム始めたばかりなんで間違ってたらごめんなさいね
public class Res817 {
private int[] arr;
public Res817(int max) {
arr = new int[max];
}
public void setArr(int value, int num) {
arr[num] = value;
}
public void arrDisplay() {
for(int i = 0; i < arr.length; i++) {
System.out.println("arr[" + i + "] = " + arr[i]);
}
}
public static void main(String[] args) {
int max = 50;
Res817 data = new Res817(max);
for(int i = 0; i < max; i++) {
data.setArr(0, i);
}
data.arrDisplay();
data.setArr(-1, 6);
data.arrDisplay();
}
}
829 :
682 :2006/04/11(火) 12:55:22
>>827 レスありがとうございます。
基本的なソートらしく、どちらかをセレクション、バブルソートでソートするようにしないと、駄目みたいです…。
今、学校で昼飯も食べずに、プログラミングをやりつつ新入生の声をきいています…orz
830 :
742 :2006/04/11(火) 13:41:57
831 :
682 :2006/04/11(火) 13:53:22
>>830 ありがとうございます。
いえ、声は外から聞こえてくるんですorz
画面に向かってJbuilderいじりつつ2chを見ているなんて、はたから見たら怪しい人ですね。
しかしながら、自由自在にJavaを操っているようですが742さんはどのようにJavaを勉強されたのですか?
832 :
742 :2006/04/11(火) 14:09:55
>>831 >>Jbuilderいじりつつ2chを見ているなんて、はたから見たら怪しい人ですね
うはっっwおっっっk
別に自由自在には、まだまだ操れません。まだまだヒヨっ子です
APIとか見つつトライ&エラーでやってます
どのように勉強したかと聞かれても(´ё`)
SJC-P取るのに基礎から独学で勉強した位かなぁ。
基礎を満遍なく学ぶという意味ではいい資格ですょ
833 :
682 :2006/04/11(火) 14:37:59
>>832 なるほど、資格対策の勉強で得た知識なのですね。
いただいたソースをプログラムに組み込んでみたのですが、
出力時、名字のアルファベット順にソートしたセクションと、
年齢の順でソートしたセクションとで、名前、年齢、総合人数の数が違うのですが、
これはいったい何がいけないのでしょうか…orz
834 :
682 :2006/04/11(火) 14:44:37
このような感じで出力されています。 There are 31 guests. Guests sorted by last name: ここはアルファベット順に出力されています。 There are 28 guests. Guests sorted by age: ↑のリストとは異なった名前の人らがソートされています。
オレなんてSJC-P持ってるけどここの宿題全然わかんねーぜwwww
あの試験、ありえない問題ばっかりじゃねーかよw
837 :
742 :2006/04/11(火) 14:57:46
>>834 Main.javaの中段あたりで
//新しいデータでソートをする?
myPeople = A6Arrays.getPersonArray();
の部分で myPeople に新しい配列をセットしなおしているので
データは変わりますよ。
>>802 の要件で
・プログラムを動かす時、毎回客のリストが変わるようにすること。
を見てソートメソッドごとに客のリストを変えるのかと思ってた。
中段部分を
/*
myPeople=null;
//新しいデータでソートをする?
myPeople = A6Arrays.getPersonArray();
pu.setPerson(myPeople);
*/
と、コメントアウトすれば同じデータで
氏名と年齢別のソートメソッドを実行出来ます。
>>836 そう、人呼んで人間コンパイラー試験
838 :
682 :2006/04/11(火) 15:09:03
>>837 うわぁ、ありがとうございます。
自分でも、//新しいデータでソートをする? というところが怪しいと思って、
myPeople = A6Arrays.getPersonArray(); だけ削除したのですが、
エラーになって???状態でした…orz
これでやっと、お昼ご飯を食べに行くことが出来ます。
本当にありがとうございました。また、結果が帰ってきたらこのスレに書き込もうと思います。
839 :
742 :2006/04/11(火) 16:03:44
【 課題 】 mとnの2数を入力し(m≦n)、その間の数値を表示せよ。 数と数の間は半角3文字分のスペースを空ける。一行20文字までとし、20文字を超えると改行する。 ただし数の途中で改行が入るような場合は次の行から開始する。 例: 93 94 95 96 97 98 99 100 101 102 103 104 105 106 … 【 期限 】できれば本日24時までに 【 補足 】丸投げです。お願いします
841 :
デフォルトの名無しさん :2006/04/11(火) 22:19:12
>>840 センスないコードだけど多分動く。
import java.io.*;
class Main {
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] s = new String[2];
int m = 0, n = 0;
try {
s = br.readLine().split(" ", 2);
m = Integer.parseInt(s[0]); n = Integer.parseInt(s[1]);
if (m <= n) {
int l = 0, j = 0;
System.out.println("01234567890123456789");
for (int i = m; i <= n; i++) {
if (i < 10) {
j = 4;
} else if (i < 100) {
j = 5;
} else if (i < 1000) {
j = 6;
}
l += j;
if (l > 20) {
l = j;
System.out.println();
}
System.out.print(i + "[[[");
}
}
} catch (Exception e) {
e.printStackTrace();
} } }
【 課題 】UPnPでルータを検出し、ポートを開けるプログラム。 【 期限 】今週木曜 【 Ver 】5.0 【 補足 】完全に自作でもいいが、cyberlink for java等を使って実装しても良い。
【 課題 】 オンラインのレストラン予約システム(javaRest)を作りなさい。 客は、1)本日のメニューをリクエストできること 2)予約をできること 3)予約をキャンセルできること(予約した客のみ) 4)特定の日にレストランで無料の席を尋ねることができること 5)レストランからメッセージをダウンロードできること(デイリースペシャル) システムはデータグラムソケットを使用したサーバーと複数のクライアントから成り立っていること。 クライアントの機能として、 1)サーバーに接続しサービスを使用するためにIPアドレスを有効なユーザの名前として登録できること 2)サービスからユーザを削除できること(例:ログオフコマンドを実行するために回線を切るとき) 3)必要な情報(本日のメニューのリクエスト、予約、予約のキャンセル、特定の日の無料の席を尋ねる、 デイリースペシャルについてのリクエスト)を指定しているサーバーにメッセージを送る 4)サーバーからレストランが特定の日は満席になったことを非同期でメッセージを受け表示できること。 第2の緊急のメッセージは満席のレストランにちょうどキャンセルがあり、空席ができたことを知らせる(誰かがキャンセルをした時) この仕様はマルチスレッドの使用が必要になる。
844 :
843 :2006/04/12(水) 07:25:30
サーバーの機能として、 1)全てのオンライン登録された参加者と彼らのアドレスの記録(何らかの形で)を残すこと 2)新しい参加者登録を許可し、アクティブな参加者リストに加えることができること 3)記録から削除するためにクライアントからの要求を受け入れることができること(始めに登録されたコンピュータからのログオフオンリー) 4)以下のフォーマットで複数の行からなるテキストファイルから予約を読みとること 最初のラインは、 javaRest <Total Number of Seats > 続いて1行か複数行の javaRest <day.month.year> < reserved seats> <Customer Name> 5)メッセージを送り、要求を実行する (特定の日の無料の席を知らせる、席の予約、予約のキャンセル(予約しているクライアントのみ)、デイリースペシャルと本日のメニューの送信) 6)同時に(並行して)複数のクライアント接続を扱うこと 7)予約システムで利用できる席のリストを正しく維持すること 【 期限 】4月14日 大きな課題でしかも丸投げですが、どうぞよろしくお願いします。
845 :
843 :2006/04/12(水) 07:59:10
846 :
デフォルトの名無しさん :2006/04/12(水) 11:47:28
>>843 4)特定の日にレストランで無料の席を尋ねることができること
無料の席って、空席と英訳間違ってるとかというオチは無い?
その他の要件見ても有料の席という記述もないし、空席の問い合わせも無いし
847 :
843 :2006/04/12(水) 14:40:52
848 :
yamutya :2006/04/12(水) 17:45:05
テキストファイルの書式整形化プログラムの作成しなければいけないのですが、 書式整形化というのが今ひとつよくわからないので、よかったら教えてください。
849 :
デフォルトの名無しさん :2006/04/12(水) 17:47:29
850 :
840 :2006/04/12(水) 18:09:13
851 :
デフォルトの名無しさん :2006/04/12(水) 18:13:45
引数つけでもダメなのか?
引数二つを入力するんですよね? それはやってみましたが…
854 :
デフォルトの名無しさん :2006/04/12(水) 18:24:11
本当だな動かないな
856 :
840 :2006/04/12(水) 18:30:44
857 :
デフォルトの名無しさん :2006/04/12(水) 21:05:43
>>841 は起動してからスペースで区切って数字入力なのね。
>>855 を見て数学の勉強をしようと思った。
858 :
デフォルトの名無しさん :2006/04/12(水) 22:48:53
>>855 これだとlog10の引数が100の時はdigit = 2になるけど101の場合はdigit = 3になるけど良いのかい?
859 :
855 :2006/04/12(水) 23:02:10
誰か突っ込むと思ってた - int digits = (int)Math.ceil(Math.log10((double)i)); + int digits = (int)Math.floor(Math.log10((double)i)) + 1;
860 :
デフォルトの名無しさん :2006/04/12(水) 23:07:12
あれだな ここで答え聞く奴に満点取らせて自堕落になるのを防ぐために 態と間違えて自分で気付かせようとした親心だったんだよな 良い奴だな
>>840 俺もやってみた
class Main {
public static void main(String[] args) {
java.util.Scanner in = new java.util.Scanner(System.in);
int n = in.nextInt();
int m = in.nextInt();
System.out.println("01234567890123456789");
int pos = 0;
for(int i=n; i<=m; i++) {
int length = intLength(i);
if (pos + length > 20) {
System.out.println();
pos = 0;
}
if (pos != 0) System.out.print("___");
System.out.print(i);
pos += length + 3;
}
}
private static int intLength(int i) {
int j = i < 0 ? 1 : 0;
do {
i /= 10;
j++;
} while (i != 0);
return j;
}
}
大げさに解くのなら、区間を表すオブジェクトと 区間オブジェクトの文字列表現を生成する オブジェクトを導入してみる
863 :
682 :2006/04/13(木) 06:45:18
>>839 LastNameの所は自分で修正したのですが、バブルソートアルゴリズムは修正せずに提出していまいましたorz
とりあえず、結果が帰ってくるのを待っています。この調子だと金曜辺りにまた課題が来そうですね…
先生のカリキュラムとしては、Javaの基礎を学んだ後にデータストラクチャを学びつつ、
実際に商業用として売れる・配布出来るレベルのアプリケーションを作れるようになるのが目的らしいです。
しかもグループワークとかではなく、単独でペイントソフト(フォトショップのような大それた物ではなくWindows付属のペイントレベル)を
最終的に作って、Vector等で配布するというプロジェクトをやるそうです。後、就職先を外資系の会社も視野に入れて、現在のJavaの課題からも分かるように、
すべて英語を使ってコメントや記述をしろと言っています。だから、教科書もうちのゼミだけ洋書ですorz
英語ダメ? 今から自分に制限設けるのはもったいないよ
いい先生だな、としか思えないんだが?オレのときなんて完全放置だったぞ
866 :
yamutya :2006/04/13(木) 14:11:36
【 課題 】テキストファイルの書式整形化プログラムを作成せよ 【 用語 】 【 期限 】4月18日 【 Ver 】J2SE 【 補足 】条件 WindowsXP/2K 入力 コマンド・ラインで指定したファイル。 出力 コマンド・ラインで指定したファイル。 その他 [TAB]は指定された間隔の、半角空白文字に置き換える。 行番号、各頁ヘッダはコマンド・ラインで指定が出来ること。 初めてだったので失礼しました。よろしくお願いします。
867 :
デフォルトの名無しさん :2006/04/13(木) 14:38:34
二分探索の実行過程・実行ステップ数を調べるプログラムを作りたい。
テキストp.52〜p.54に載っている順序配列のプログラム(orderedArray.java)を参考
に、ひな形プログラム中の次の各メソッドを完成させよ。完成すると、二分探索の様
子を表示しながら探索を実行してくれるようになる。
1-1:配列の内容を表示するメソッドを完成させよ。
・課題2
1-2:配列にランダムな値を大小順に代入して初期化するメソッドを完成させよ。
・課題3[記入内容非公開]
1-3:二分探索を実行するメソッドを完成させよ。
・課題4
1-4:mainメソッドを完成させ、ソート過程を表示しながら選択ソートを実行するよう
にせよ。
・課題5
1-5:作成したプログラムが正しく選択ソートを実行していることが分かる
実行結果を示し、正しく動作していることを説明せよ。
・課題6
1-6:考察・感想・デバッグ履歴を述べよ。
ひな形プログラムは以下↓のWebページに掲載してあります。
http://edu.kankyo-u.ac.jp/InfSys/class2006/Programming3/20060410/BinarySearch.java 余裕のある人は、配列の大きさによって二分探索にかかるステップ数の平均が
どのように変化するか、調べてみよ。
どうしても分からないので、よろしくお願いします。期限は18日までなので、どうかお願いします。
868 :
682 :2006/04/13(木) 14:57:18
>>864 英語力は、英検2級・TOEIC600点クラスなのでたいした事ないです。
どちらかというと、話す方が好きです。
>>865 先生はカリフォルニア大学のバークレイという米国では有名?な大学院でコンピュータの博士号を取ったらしく、
理系の人ですが、英語の先生よりも英語が出来ると思いますorz 部屋に行くと、日本語のコンピュータ系の本は数冊しかなく、
ほとんど洋書ですね。大学院を卒業後、(米国の)現場で働いていたらしく会社が何を必要としているか、が分かっていらっしゃる先生です。
大学在学中に即戦力になる人材を育成するのが目的らしく、将来はそっち系で働きたい人や、興味のある人はゼミに参加するのですが、
難しいので辞めていく人が多いです。教科書は、Java: How To Programという1万円近い洋書を使用しています。
英語も重要な科目(通常、理系の学科では英語は重視していないです。)だから、コンピュータを勉強するだけではなく、
同時にコンピュータ系で使われる英単語も覚えられるという事で洋書を採用しているみたいです。
アメリカの大学は死ぬほど大変。それを日本の大学生にも体験してもらいたいから、このゼミは難しい。
辞めたいならいつでも辞めてもかまわん。といつもおっしゃっていますが、このゼミを修了した人は就職した時、
研修の指導員よりもコンピュータについて詳しいらしく、そういう理由もあり、だいたいの人は食いついて頑張っていますが、
2年目をクリア出来るかどうか、微妙な所です。
869 :
742 :2006/04/13(木) 15:01:04
>>863 うっはっっw間に合わなかったか…南無。
LastNameの方はいいとしてバブルソートは久々だったもんで、
腐ったセレクションソートみたいな内容にだったと思う。
目標立ってていいゼミだな。ガンガレ
>>868 >英語力は、英検2級・TOEIC600点クラス
大したことねーなぁ・・・もうちょっと英語勉強したほうがいいよ。
すばらしいゼミなのにひどい受講程度ですね このスレで聞くくらいだから課題を 乗り切れればいいとしか思ってないんでしょ?
程度じゃなくて態度の誤り
873 :
デフォルトの名無しさん :2006/04/13(木) 15:29:24
もちけつ
874 :
デフォルトの名無しさん :2006/04/13(木) 15:41:13
そんなにいい先生なのにここで宿題聞いてちゃダメだよ・・・もったいねぇ 宿題スレは「将来必要ないけど単位取らないと卒業できねーんだよ!だから教えろ」って人が主だと思う
876 :
682 :2006/04/13(木) 16:00:05
>>869 ありがとうございます。結果が来たら連絡します。
>>870 そうですね… 教科書を読む時も辞書を片手に読んでいて難しいです。
>>871 それを言われると耳が痛いです…orz
自分でもやるだけやっているのですが、コンピュータを本格的にさわり始めたのが
大学に入ってからなのでコンピュータの基礎を覚えながら、Javaもやっています。
新しい課題が1週間ごとに出るのでWebでも色々と調べたりしているのですがハードです。
コンピュータが得意な人はこのJavaゼミをすっとばして、すでにソフトウェアの製作に入っています。
本当、自分で頑張らないといけないとは思っているのですが課題が出されるペースが早いのでつらいです。
質問をする前に自分でもコードを組んでいる事は組んでいるのですが、いつも出力例とは違った出力、
またはエラーを起こしてしまうのでどうしてもダメな時はこのスレで聞いています。
その謝った出力をするコードを書くのにも半日は費やしているので、このスレの皆さんが課題のコードを
数時間で書いてしまうのには驚きです。
言い訳乙
ゼミなら友達に聞くのが一番だよ、いないの?
宜しく御願いします。 【課題提示用テンプレ】 【 課題 】 ● 次のような形で Dog と PetDog を再定義せよ. – Dog ● String name, public void say(String s), public void bark() を持つ ● say(文字列)は,「文字列+"だワン!"」を出力 ● bark()は,自分の名前+"だワン!"を出力(sayを使う) – PetDog extends Dog ● String owner, public void bark() を持つ ● bark() は,Dog のbark() に加えて,owner+"だワン!"を出 力(sayを使う) 【 補足 】JAVAであれば問題ないので丸投げしますので宜しく御願いします。
880 :
デフォルトの名無しさん :2006/04/13(木) 21:33:11
再定義って何かね
881 :
デフォルトの名無しさん :2006/04/13(木) 21:34:28
class Dog{ private String name; public Dog(String name){ this.name = name; } public void say(String s){ System.out.println(s + "だワン!"); } public void bark(){ say(name); } } class PetDog extends Dog { String owner; public PetDog(String name, String owner) { super(name); this.owner = owner; } public void bark(){ super.bark(); say(owner); } }
宜しくです。 [課題] 課題 ● コマンドラインにファイル名を2つ指定して,最初の ファイルを2番目のファイル名にコピーするプログラ ムを書け。 – クラス名はFileCopy とせよ。 ● java -cp . FileCopy file1 file2 で file1 を file2 にコピーする。 – file2の存在チェックはしなくて良い。 – file1が開けなかった場合,”file1 not found” というエ ラーメッセージを出力して(file1には実際に指定したファ イル名が入る)停止するようにせよ。 [期限]明日までに欲しいです。 [他に]丸投げで構いません、JAVAであれば
883 :
デフォルトの名無しさん :2006/04/13(木) 22:45:19
>>882 import java.io.*;
import java.nio.channels.FileChannel;
public class FileCopy {
public static void main(String[] args) {
if (args.length == 2) {
copy(new File(args[0]), new File(args[1]));
} else {
System.out.println("引数でファイル名を二つ指定してください");
}
}
public static final void copy(File src, File dst) {
FileChannel in = null;
FileChannel out = null;
try {
if (src.exists()) {
in = new FileInputStream(src).getChannel();
out = new FileOutputStream(dst).getChannel();
in.transferTo(0, src.length(), out);
} else {
System.out.println(src + " not found");
}
} catch (IOException ioe) {
ioe.printStackTrace();
} finally {
try { if (in != null) in.close(); } catch (IOException ioe) {}
try { if (out != null) out.close(); } catch (IOException ioe) {}
}
}
}
885 :
デフォルトの名無しさん :2006/04/13(木) 23:19:09
・課題1 二分探索の実行過程・実行ステップ数を調べるプログラムを作りたい。 テキストp.52〜p.54に載っている順序配列のプログラム(orderedArray.java)を参考 に、ひな形プログラム中の次の各メソッドを完成させよ。完成すると、二分探索の様 子を表示しながら探索を実行してくれるようになる。 1-1:配列の内容を表示するメソッドを完成させよ。 ・課題2 1-2:配列にランダムな値を大小順に代入して初期化するメソッドを完成させよ。 ・課題3 1-3:二分探索を実行するメソッドを完成させよ。 ・課題4 1-4:mainメソッドを完成させ、ソート過程を表示しながら選択ソートを実行するよう にせよ。 ・課題5 1-5:作成したプログラムが正しく選択ソートを実行していることが分かる 実行結果を示し、正しく動作していることを説明せよ。 まじたのむ。わからん。
>テキストp.52〜p.54に載っている〜 何のテキストなんだよ
887 :
デフォルトの名無しさん :2006/04/13(木) 23:23:55
>>885 鳥取環境大学乙
せめて雛形のプログラムを貼る位の事しろ
888 :
デフォルトの名無しさん :2006/04/13(木) 23:24:51
鳥取環境大学に通報しますた
889 :
デフォルトの名無しさん :2006/04/14(金) 12:14:20
>>855 雛形プログラムって↓コレ
class BinarySearch {
//比較回数を覚えておくための変数
static intcompare = 0;
static void showArray(int a[], int N)
{
//1-1:配列の内容を表示するメソッド
//動作:N個の要素を持つ配列aの要素を全て画面に表示する
//例: a[0]=10, a[1]=30, a[2]=20の場合
// showArray(a,3)を実行すると画面に
// 10 30 20
// と表示される。
//★以降を適切に埋めよ
}
static void initArray(int a[], int N)
{
//1-2:配列にランダムな値を大小順に代入するメソッド
//動作:N個の要素を持つ配列aに対し、ランダムな数を大小順に入れる
//ヒント:次のようにして乱数を使えば1〜Nまでの範囲の数をランダムに1つ作れる
//int n;
//n = (int)(java.lang.Math.random()*(N-1)) + 1;
//ヒント:値が大小順になるようにするには、a[i]の値が必ずa[i-1]の値より
//大きくなるようにすればよい。
//★以降を適切に埋めよ
int i;
a[0] = 1;
}
890 :
デフォルトの名無しさん :2006/04/14(金) 12:18:45
static int find(int a[], int N, int d) { inti; //1-3:二分探索を実行するメソッド //動作:二分探索の過程を表示しながら、 //N個の要素を持つ配列aに値dが入っているかどうかを調べる //値dが見つかったときは値の入っていた場所の添え字を返し、 //値dが見つからなかったときは-1を返す。 /* 二分探索の手順: 変数lは探索範囲の左端の添え字、変数rは探索範囲の右端の添え字を 表す。 0.探索に要した比較回数compareを0に初期化 1.探索範囲の真ん中の添え字cを求める 2.探索範囲を表示(例:a[0]〜a[10]を探索中) 3.a[c]の値と探索したい値dを比較 探索に要した比較回数compareを1増やす 3-1. a[c]とdの値が一致した場合 値を発見したので、その値が入っていた場所の添え字cを返す 3-2. a[c]とdの値が一致しなかった場合 3-2-1. 探索範囲が残っていない場合(l > rになった場合) 値が見つからなかったので-1を返す 3-2-2. a[c]がdより小さかった場合 dはa[c]よりも右の方にあることが判明したので、 探索範囲をa[c+1]〜a[r]に絞り込む 3-2-3. a[c]がdより大きかった場合 dはa[c]よりも左の方にあることが判明したので、 探索範囲をa[l]〜a[c-1]に絞り込む 4. 2.に戻る
891 :
デフォルトの名無しさん :2006/04/14(金) 12:19:17
*/ //★以降を適切に埋めよ intl = 0; intr = N-1; intc; } public static void main(String args[]) { //1-4:上で作ったメソッドを用いて、探索過程を表示しながら二分探索を実行 //手順は次のようになる。 /* 1.要素を(20個もつ)整数型配列aを宣言 2.整数型変数Nに配列aの要素数を保存 3.initArrayメソッドを用いて配列aを初期化 4.showArrayメソッドを用いて配列aの内容を表示 5.整数型変数dに配列aに入っている値を代入(例:a[N/3]) 6.findメソッドを使って配列aの中にdが入っているか探索 7.値dが見つかった場所の添え字を表示 8.二分探索にかかった比較回数compareを表示 9.整数型変数dに配列aに入っていない(かもしれない)値を代入(例:(a[0]+a[N-1])/2) 10.findメソッドを使って配列aの中にdが入っているか探索 11.値dが見つかった場所の添え字を表示 12.二分探索にかかった比較回数compareを表示 */ //★以降を適切に埋めよ intN; } }
892 :
デフォルトの名無しさん :2006/04/14(金) 16:25:48
課題 1.String型の引数を1つ持ち、その文字列を2進数表記だと解釈して、 valueの値をコンストラクタしなさい。 2.valueの値を2進数表記の文字列に変換して返すメゾッドにしなさい。 3.Binary型の引数を1つ持ち、valueの値に引数の値を加算(減算、乗算、除算) を加えなさい。 下のプログラムを使って下さい。 [期限]4月16日まででお願いします。授業の課題なんですが、誰か教えて下さい。 public class TestBinary { public static void main(String[] arg){ Binary b1 = new Binary(10); System.out.println(b1.getValue()); /*機能1 Binary b2 = new Binary("10"); System.out.println(b2.getValue()); 機能2 System.out.println(b1.toSting()); System.out.println(b2.toSting()); 機能3 b1.add(b2) System.out.println(b1); b1.sub(b2) System.out.println(b1); b1.mul(b2) System.out.println(b1); b1.div(b2) System.out.println(b1); */ } }
>892 // Binary.java public class Binary { private int value; public Binary(int i) { this.value = i; } public Binary(String string) { this.value = Integer.parseInt( string, 2 ); } public int getValue() { return this.value; } public String toString() { return Integer.toString( this.value, 2 ); } public void add(Binary b2) { this.value += b2.getValue(); } public void sub(Binary b2) { this.value -= b2.getValue(); } public void mul(Binary b2) { this.value *= b2.getValue(); } public void div(Binary b2) { this.value /= b2.getValue(); } }
894 :
843 :2006/04/14(金) 20:00:00
無料の席ではなく空席でしたorz
今頃かよ
896 :
843 :2006/04/14(金) 20:28:53
>>895 すいませんorz
指摘されてから先生にメールしてみました。
さっき返事がやっと来たので遅くなりました。
897 :
682 :2006/04/15(土) 15:07:16
>>869 課題6ですが、先生が忙しい為、まだ結果が帰ってきません。
来週には帰ってくるだろうと思われます。
先生が忙しいのとは関係なしに課題7が出されてやっていますが、
何がなにやら分かりません…。例によってエラーばかりですが、もう少し自分でやってみます。
このゼミも5月の最初で終るので、上級レベルが始まる前に、日本語のJavaの本を買って、
基礎から勉強しなおしてみようと思っています。
>>878 僕は情報系の学科ではないのでゼミの友人とはあまり話しません。
休み時間とかゲーム、アニメの話をしているのでついていけませんorz
まだゼミとか言ってんのかよ
899 :
843 :2006/04/15(土) 17:59:47
提出期限を1週間延ばしてもらったので、どうにかお願いできないでしょうか?
900 :
デフォルトの名無しさん :2006/04/15(土) 23:37:01
901 :
900 :2006/04/15(土) 23:40:26
903 :
846 :2006/04/16(日) 15:05:39
905 :
846 :2006/04/16(日) 19:15:31
>>903 どうもありがとうございます!!!!
助かりました!
906 :
897 :2006/04/16(日) 19:32:45
【 課題 】入出力のプログラムを組みなさい。
インプットファイルに含まれるダブルのそれぞれ数値を読み込み、新しい数値に計算をし以下の条件の下で出力しなさい。
新しい数値の求め方:現在のダブルの数値1 * 0.25 ※もし、マイナスになった場合は *-1 でポジティブナンバーにする。
インプットファイル:
ttp://n.limber.jp/n/KOVr8wiF4 ・インプットファイルに含まれるダブルの数値の数(ダブルの数値が225個ある場合、225と出力。)
・インプットファイルに含まれるダブルの数値を足した数(ダブルの数値が2個で、その数が2.5と1.2の場合、3.7)
・インプットファイルに含まれるダブルの数値の平均(3.7 / 2 をする。)
・インプットファイルに含まれるダブルの数値を上記計算式で計算した後の数値を足した数(2.5と1.2の場合、0.925)
・インプットファイルに含まれるダブルの数値を上記計算式で計算した後の数値の平均(2.5と1.2の場合、0.4625)
出力例:
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1744.txt プログラムを組む時の条件:
・JFileChooserオブジェクトを使う事。
・もし、読み込んだファイルがインプットファイル以外の場合、エラーメッセージを表示し終了させる事。
・もし、出力するファイルが指定されていない場合、またはすでに出力されている場合、エラーメッセージを表示し、
処理を続けるか、キャンセルするかをユーザーに求める事。
【 期限 】4/17
【 Ver 】1.4
色々やったのですが、どうしても上手く行きません…orz
丸投げでよろしくお願いします。
907 :
902 :2006/04/16(日) 21:29:42
908 :
900 :2006/04/16(日) 23:49:49
どなたか
>>900 わかるかたいらっしゃいませんか?
お願いいたします。
910 :
900 :2006/04/17(月) 02:20:22
>>910 ああ・・ほんとだ
ちゃんと見てなかったごめん
912 :
897 :2006/04/17(月) 09:30:08
913 :
897 :2006/04/17(月) 09:36:13
ファイルではありませんorz 途中まで組んだソースです。
ほとんど出来てるよーな。 最初のほうで double sumDouble = 0; としておいて、 inputDouble = dis.readDouble();の後に次の行を追加。 sumDouble += inputDouble; 後は自力でできるな。
915 :
897 :2006/04/17(月) 11:14:17
新しくwhile作ったら、また1からファイル読み直さなくちゃいけないじゃん。 while内部に追加してOK。
917 :
897 :2006/04/17(月) 13:01:44
919 :
900 :2006/04/17(月) 16:18:09
>>918 ありがとうございます。動きました。
適当だなんてとんでもないです。
920 :
デフォルトの名無しさん :2006/04/17(月) 22:22:46
課題2 初期化された配列が与えられている場合,その配列の要素の中で最大の数と最小の数の両方を表 示するプログラムを作りなさい. ここで,配列を初期化するとは, int[] data = {31, 41, 59, 26, 53, 58} のようにすることを言う.配列の初期値のデータと個数は,各自自由に決めてかまわない.ただし,個数が変わっても,プログラムを一切変更する必要がないように,プログラムを作成すること. お願いします。
int[] data = {1,2,3,4,5,6,7,8,9,10}; int min = Integer.MAX_VALUE; int max = Integer.MIN_VALUE; for (int i=0; i < data.length; i++) { int d = data[i]; if (min > d) { min =d; } if (max < d) { max = d; } } System.out.println ("MAX = " + max + " : MIN = " + min); いま適当に書いたから動作確認ナシ
922 :
デフォルトの名無しさん :2006/04/17(月) 22:41:49
923 :
902 :2006/04/18(火) 13:45:03
すみません、どなたか
>>902 が出来ていませんでしょうか?
924 :
682兼897 :2006/04/18(火) 13:52:43
>>923 今からやっても間に合いそうならやるけど?
926 :
925 :2006/04/18(火) 15:24:36
・・・って問題文をみたら、不確定要素が多すぎて手を付けられないカンジ。 Commandで入力をハンドルするのか? Editorじゃなくて? 普通はCommandをインターフェースにして、それぞれの実装クラスつくると思うけど。
927 :
デフォルトの名無しさん :2006/04/18(火) 15:59:43
漏れもチャレンジしようと思ったけど InputIFのinput()の戻り値がdoubleである意味が分らなくて諦めた
【 課題 】正の整数とその逆数とを1つの配列要素とする配列がある。 配列要素は最大30である。 1)この配列の要素を作るプログラムを書け。 2)この配列から最小の整数を見つけるプログラムを書け。 つまり、[(a1 , 1/a1),(a2 , 1/a2),(a3 , 1/a3),・・・(ai , 1/ai)]の中から最小のaiを見つける。 【 期限 】今日中に 【 補足 】ヒントとして、以下のプログラムの不等号を逆にすればいいという風なことを言われました public class Example{ public static int findMaximum (int[] a){ int result = a[0]; for(int i = 1; i < a.length; ++i) if(a[i] > result) result = a[i]; return result; } } よろしくお願いします
>つまり、[(a1 , 1/a1),(a2 , 1/a2),(a3 , 1/a3),・・・(ai , 1/ai)]の中から最小のaiを見つける。 ってどういうこと? 正の整数の中で最小のもの、逆数の中で最小のものって意味じゃなくて?
930 :
928 :2006/04/18(火) 17:27:24
正の整数のうち最小のものを求める、ってことです
931 :
デフォルトの名無しさん :2006/04/18(火) 17:57:03
意味不明
932 :
897 :2006/04/18(火) 18:01:55
課題7のファイルアウトプット、どなたかお願いします…orz status = chooser.showSaveDialog(null); if (chooser.getSelectedFile().exists()){ int answer = JOptionPane.showConfirmDialog( chooser, "Do you want to over write?", "check to over write", JOptionPane.YES_NO_OPTION ); if (answer == JOptionPane.YES_OPTION){ chooser.getSelectedFile(); }else{ chooser.getSelectedFile();} }else{ System.out.println("Must select output file."); System.exit(0); } これだと、まったく違う出力ファイルが作られてしまいます…orz
>927 全く同じ感想を持った・・
ああ、ごめん、ちゃんと見てなかったわ
936 :
902 :2006/04/18(火) 19:15:39
上の問題文のプログラムを何週間かかけてGUIに仕立てていくらしいのですが、 もしよろしければ、やっていただいた部分だけでも構いませんので 参考にしたいので上げていただければ助かります。
>>932 試してないけど多分これでOK
while(chooser.showSaveDialog(null) == JFileChooser.APPROVE_OPTION){
if (!chooser.getSelectedFile().exists() ||
(JOptionPane.YES_OPTION == JOptionPane.showConfirmDialog(
chooser,
"Do you want to over write?",
"check to over write",
JOptionPane.YES_NO_OPTION )) ){
//ファイルに出力する処理
break;
}
}
938 :
928 :2006/04/18(火) 20:41:21
すいません読解力不足でした
>>929 の通りです、お願いします
>>928 は元の問題を全て晒したほうがいいと思うぞ。
意味不明すぎでエスパーに来て貰わないと。
もし、元の課題が928のとうりなら課題を出したやつ窓から放りなげろ。
940 :
デフォルトの名無しさん :2006/04/18(火) 21:22:04
仕様書ってどれだけ大事かよく分るスレ
941 :
928 :2006/04/18(火) 21:24:42
>>939 これで問題文の通りでした
一応確かめてみたのですが自分で考えろと投げられてしまって。
(2)はどうもよくわからないのでとりあえず(1)だけでも解いておきたいのですが…
942 :
デフォルトの名無しさん :2006/04/18(火) 21:40:48
class A{ private int a; private double inva; public A(int a){ if (a <= 0) throw new IllegalArgumentException(); this.a = a; inva = 1/(double)a; } こんなクラスを配列にするってことか? public static A[] createA(int num){ A[] a = new A[num]; Random random = new Random(); int rnd; for (int i = 0; i < a.length; i++){ rnd = random.nextInt(); if (rnd <= 0) i--; else a[i] = new A(rnd); } return a; }
943 :
デフォルトの名無しさん :2006/04/18(火) 21:42:44
>>929 これの通りならaiの最小のものと最大のものを探せばいいだけだな
>正の整数とその逆数とを1つの配列要素とする配列がある。 きっとここが重要なんだよ
>>936 あれ、書かれてるクラス以外は作っちゃダメなんかね?
内部クラスとか、例外とかも。
指定された通りに作ると、素敵に酷いモノが出来そうなんだが。
>>945 同感
クラス構成の条件が邪魔だ
自由に作って良いなら楽でいいんだが
>>928 はおそらく4月から学校でJavaをやり始めてまだ講義も1、2回程度しか受けてないと思われる
例外投げるどころかクラスというのも教わってないんじゃないかな?
>>947 のをそのまま提出しちゃっていいのかな?
ぶっちゃけ
>>928 と同じことをやってるんだが、これは一応1年間Javaをやった上で出された。
そもそもの問題文の意味がわからなかったのはどうしようもなかったが…
因みに自分は配列とかを使って全部メインメソッド内でおさめてしまった。
携帯からなんで+自分も未提出なのでソース貼れずごめん。
950 :
デフォルトの名無しさん :2006/04/19(水) 01:03:49
【課題提示用テンプレ】 【 課題 】タイマーの作成 【 用語 】 【 期限 】20日木曜日まで 【 補足 】学会などで使うタイマーです。 画面いっぱいに残り時間(または経過時間)が表示されるものがいいらしい。。 お願いします!
952 :
897 :2006/04/19(水) 01:49:46
>>937 ありがとうございます。
ですが、保存先を指定するところが2回、出てしまいます。
あと、保存先を指定する所でキャンセルを押した場合、
「終了しますか?」という質問を出して、YESにしたら終了し、
NOを押したらそのまま保存先を指定する所を続けたいのですが
どうすれば良いのでしょうか…
ここだけで数時間迷っています。
953 :
936 :2006/04/19(水) 01:52:06
955 :
897 :2006/04/19(水) 06:44:32
956 :
897 :2006/04/19(水) 07:08:41
上の意味ですが、読みこんだファイルを、 読みこんだファイルに上書きしようとすると、エラーを起こすという意味です。 例えば、1というファイルを読みこんで2というファイルで出力をし、 また1を読みこんで2に上書きをしても問題はないのですが、 1を読み込んで、1に上書きをするとエラー出力され、1のデータファイルが からっぽになってしまいます。
957 :
897 :2006/04/19(水) 08:10:12
その数字コテ意味ないよ、問題文がある所のレス番号にするとかしてくれないかな
>>897 をたどっても雑談書いてあるだけだしその先の
>>682 はアレイ(並列)のプログラムとか書いてあるしさ
同じ人が毎週宿題持ってくるのは普通のことだから、レス本文に書く程度でいいと思う
959 :
デフォルトの名無しさん :2006/04/19(水) 09:17:56
>>958 すいませんでした。
問題文自体は、
>>906 に書いてあります。
これの最後の方にある課題の補足ですが、読み込んだファイルを元に
新しく計算した数値の情報をファイルとして出力しないといけないのですが、
出力する時にファイル名を決めるのですが、すでに同じ名前のファイルがある場合、
上書きするか?と訪ねて「NO」を選択したら「終了するか?」と訪ねて「NO」を選んだ場合は、処理続行で
また出力ファイルの選択画面に戻り、「YES」を選んだ場合は終了させるようにします。
上書き処理に戻りますが、「YES」を選択したら現在あるファイルが上書きされます。
もし、その時、同じ名前のファイルがない場合は普通に出力されます。
>>957 にあるように自分で組んでみたのですが、
>>956 にある通り、
読みこんだファイルに上書きしようとすると、エラーを起こします。
例えば、1という名前のファイルを読みこんで2というファイル名で出力をし、
また1を読みこんで2に上書きをしても問題はないのですが、
1を読み込んで、1に上書きをするとエラー出力され、1のデータがからっぽになってしまいます。
あと、ここの計算セクションの「ファイルはexistしているか」、「ファイルが出力出来ない場合はSystem.outputでエラー文を出す」
という部分が定かではないです。
長文になりましたが、よろしくお願いします。これ以上の混乱を避ける為、数字コテははずしました。
大学行ってもこれじゃあ無駄だよね コミュニケーションの講義受講したほうがよほどJAVA学習に役立つよ
961 :
937 :2006/04/19(水) 10:03:10
>>897 >保存先を指定するところが2回、出てしまいます。
試してみたけどちゃんとなってるよ。どうやったんだ?
>1を読み込んで、1に上書きをするとエラー出力
読み込みファイルを閉じないで書き込んでるからじゃね?
後、>957のソースだと、1回目にダイアログで指定した保存先のみ有効で、2回目以降は無視されてるぞ。
こんな感じか。
outputloop: while(true){
switch(chooser.showSaveDialog(null)){
case JFileChooser.APPROVE_OPTION:
if (!chooser.getSelectedFile().exists() ||
(JOptionPane.YES_OPTION == JOptionPane.showConfirmDialog(
chooser, "Do you want to over write?",
"check to over write",
JOptionPane.YES_NO_OPTION )) ){
//ファイルに出力する処理
break outputloop;
}
case JFileChooser.CANCEL_OPTION:
if(JOptionPane.OK_OPTION != JOptionPane.showConfirmDialog(chooser,
"Do you want to continue?",
"Warning",
JOptionPane.OK_CANCEL_OPTION,
JOptionPane.WARNING_MESSAGE) ){
break outputloop;
}
break;
}
}
962 :
健二 :2006/04/19(水) 10:21:12
フィボナッチ数列、fib(0)=1,fib(1)=1,fib(n)=fib(n-1)+fib(n-2) N>=2、の フィボナッチ数をnが0から100まで示すプログラムの続きを作れというもの どうかけばいいかわかりません。誰か教えてください。system.out.println("fib(+i+)="+a); を使うとの条件もあります。 public class Fibonacci{ public static void main (String arg[]){ long a=0: // aにフィボナッチ数をいれる このあと? }
963 :
デフォルトの名無しさん :2006/04/19(水) 10:36:05
964 :
デフォルトの名無しさん :2006/04/19(水) 10:42:57
>>961 レス、ありがとうございます。
>保存先を指定するところが2回、出てしまいます。
ですが、自分のソースに加えると二回でてしまいます…。
>読み込みファイルを閉じないで書き込んでるからじゃね?
とありますが、どのようにやれば良いのでしょうか?
961さんのソースを加えて実行しても、
同じファイルを読みこみ、同じファイル名で保存をすると、
Number of values read: 0
Sum of original values: 0.0
Average of original values: NaN
Sum of new values:0.0
Average of new values: NaN
と出力されます。
965 :
937 :2006/04/19(水) 12:34:58
>957のソースから、 1.//Error message for selecting an output file. から//calculate section を削除 2.dos = new DataOutputStream(new FileOutputStream(outFile)); を削除 3.dos.writeDouble(newInputDouble); を削除 4.//output の次の行に dis.close(); を追加 5.さらにその次に>961を追加 6.//ファイルに出力する処理 の次の行からファイルに出力する処理を書く。 これで駄目なら入力するファイルの内容が正しいか疑え。
966 :
健二 :2006/04/19(水) 14:55:51
>962の課題は上記ですべてです。上記のプログラム以降を完成しろというものです。 誰か、教えてください。
967 :
デフォルトの名無しさん :2006/04/19(水) 15:03:41
失せろ
>>936 InputIFの戻り値がdoubleである意味を教えてくれ。
入力されたコマンドはStringなんだから、これじゃ拾えないぜ。
コマンドの判定は別でやって、数値入力だけはこれ使えってか?
ここがわからないと手の付けようがない。
>966 longじゃ駄目だろ。100まで届かない。問題作成者に確認しろ。
クラスの構成条件も勝手にやっていいってことだからインターフェースも勝手に作ればいいんじゃね?
>>968 そういうことなんじゃねーの?
戻り値doubleってのがおかしいよな
まあ全て数字で入力させて
Double.parseDouble()で変換していくという手もあるが・・
せめてStringが戻ってくるのが筋のような気もする
972 :
デフォルトの名無しさん :2006/04/19(水) 16:06:15
>>962 このあと?って何だよ、何も作ってないじゃないか
974 :
デフォルトの名無しさん :2006/04/19(水) 16:33:31
public static long fib(int n){ if (n == 0 || n == 1) return 1; else return fib(n-1) + fib(n-2); }
975 :
健二 :2006/04/19(水) 17:28:46
>969 >966 80まででした。すみません。
これであってるはず。 long f_2 = 0; long f_1 = 0; long f_0 = 1; for(int i=0;i<=80;++i){ System.out.println("fib("+i+")="+f_0); f_2 = f_1; f_1 = f_0; f_0 += f_2; }
977 :
健二 :2006/04/19(水) 17:43:10
>976 さっそくありがとうございます。 でも、aにフィボナッチ数をいれるためには f_0=aとおきかえればいいんですか? すみません、初歩的で
978 :
デフォルトの名無しさん :2006/04/19(水) 18:29:19
979 :
デフォルトの名無しさん :2006/04/19(水) 18:34:32
お前バカだろ
980 :
デフォルトの名無しさん :2006/04/19(水) 18:38:50
牧野研究室の学部生乙
プログラミング演習Bをとってる学生、だな
982 :
デフォルトの名無しさん :2006/04/19(水) 19:11:50
通報しますた
983 :
デフォルトの名無しさん :2006/04/19(水) 19:58:54
課題:コマンドライン引数に負の値が含まれている場合に、独自の例外を生成するプログラムを作れ。 途中まで作ったのがありますので、それを元にお願いできますでしょうか? import java.util.*; class Kadai{ publicstatic voidmain(String args[]){a();} static void a(){try{b();} catch(Exception e){e.printStackTrace();} } static void b() throws ExceptionA{ try{c();} catch(ExceptionB e){e.printStackTrace();} } static void c() throws ExceptionA,ExceptionB{ int a = Integer.ParseInt(args[0]); if(a < 0){throw new ExceptionA("We have a -");} else{throw new ExceptionB("We have a +");} }} class ExceptionA extends Exception{ public ExceptionA(String message){super(message);} } class ExceptionB extends Exception{ public ExceptionB(String message){super(message);} } よろしくお願いいたします。
984 :
デフォルトの名無しさん :2006/04/19(水) 20:37:34
i-appliというかjava全般のことですが、 変数を宣言すると、メモリのスタック領域に アドレスが書き込まれますよね。 たしか、一律 4byte だったと思うんですが、 ( intだと 4byte * 4byte ? ) これって、配列変数を宣言した場合も 同じなんでしょうか。 つまり、配列の先頭アドレスだけじゃなくて、 全要素分、アドレスがスタックに取られるんでしょうか。
985 :
デフォルトの名無しさん :2006/04/19(水) 20:37:46
ゲット
986 :
デフォルトの名無しさん :2006/04/19(水) 20:38:18
ゲット
987 :
デフォルトの名無しさん :2006/04/19(水) 20:38:56
ゲット
988 :
デフォルトの名無しさん :2006/04/19(水) 20:40:01
m8 (+_+) 9m gets
989 :
デフォルトの名無しさん :2006/04/19(水) 20:42:49
990ゲット
あなたのWebコンテンツをHTML4.01Strictに従うように変換するために 使用することができるウェブページテーブル形式アプローチについて 述べているのはどれですか? A.スペースとリターンで<PRE>タグを使用しているHTMLテーブルをフォーマットする B.フレームでウェブページを構造化するためにHTMLテーブルを使用する C.テーブルヘッダーとコラムを作成するためにHTMLタグの代わりにCSSを使用する D.表にされたテキストをフォーマットするために<PRE>タグの代わりにHTMLテーブルタグを使用する
991 :
デフォルトの名無しさん :2006/04/19(水) 20:43:28
990ゲット
992 :
デフォルトの名無しさん :2006/04/19(水) 20:45:22
ダメか、1000を目指す
993 :
デフォルトの名無しさん :2006/04/19(水) 20:46:46
ゲット
994 :
デフォルトの名無しさん :2006/04/19(水) 20:47:16
ゲット
996 :
デフォルトの名無しさん :2006/04/19(水) 21:17:23
もうすぐ1000
997 :
デフォルトの名無しさん :2006/04/19(水) 21:18:12
997
1000ドゾー↓
1000げっとーーーーーー!!
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。