【初心者】Java の宿題はここで答えます【歓迎】
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001M.B.
NGNG・丸投げOK なるべく問題文を直接うpしておくれよ
・前提条件も全部出しておくれよ 数学関係は数式も出しておくれよ
・内容単純でも規模デカすぎるのはマンドクセェから省略
・JavaScript など、他言語の課題は徹底的にゴルァ
【附則】
・"hello, world"くらいは動かしてから恋
・ポストの前に自助努力 キーワードくらいググらんかボケェ
・ウゼェ問題設定と屑コードの穴埋め問題は徹底糾弾 出題者は謝罪しる
・自前のコードがあれば迷わずコピペ エラーが出たらメッセージをコピペ
・戦果があった場合は報告をキボンヌ
【前スレ】
Java!宿題!
http://pc5.2ch.net/test/read.cgi/tech/1096959843/
Java の宿題ここで答えます。
http://pc5.2ch.net/test/read.cgi/tech/1089527630/
【関連サイト】
2ch Java初心者質問スレ Wiki
http://www.wikiroom.com/java/
0002デフォルトの名無しさん
NGNG【実は】長老がJavaの宿題に答えます part50【雑談】
0003前スレ982
NGNG<<中間課題1>> 〜図形描画命令を理解する図形描画ソフト
第二回から第七回までの範囲の理解を確認するために課題を実施します。
これは成績評価の対象になります。全員提出してください。
図形描画命令を解析して実行するプログラムDrawCommand.javaを作成
しましょう。
その際、復習課題で作成したプログラムDrawObject.javaをパッケージ
として改造しておき(「演習問題解答例のBBSに提示します)、
DrawCommand.javaからDrawObject.javaのクラスを使うようにしましょう。
また、DrawCommand.javaでは図形描画命令をファイルから読み込む様
にしましょう。
0004前スレ982
NGNG//Date : 2003/10/04
package prog2.DrawObject;
class Square {
private int x, y, l;
private char pattern;
void setCoordinateSquare(int nx, int ny, int nl){
this.x = nx;
this.y = ny;
this.l = nl;
}
void setPattern(char c){
this.pattern = c;
}
void drawSquare(Screen s){
int i,j;
for(j=this.y-1;j<this.y+this.l-1;j++){
for(i=this.x-1;i<this.x+this.l-1;i++){
s.drawPoint(i,j,pattern);
}
}
}
}
0005前スレ982
NGNGclass Rectangle {
private int x, y, w, h;
private char pattern;
void setCoordinateRectangle(int nx, int ny, int nw, int nh){
this.x = nx;
this.y = ny;
this.w = nw;
this.h = nh;
}
void setPattern(char c){
this.pattern = c;
}
void drawRectangle(Screen s){
int i,j;
for(j=this.y-1;j<this.y+this.h-1;j++){
for(i=this.x-1;i<this.x+this.w-1;i++){
s.drawPoint(i,j,pattern);
}
}
}
}
0006前スレ982
NGNGclass Screen {
private char screen [][] = new char [10][];
Screen(){
this.init();
}
void init(){
int i,j;
for(i=0;i<10;i++){
screen[i] = new char[10];
for(j=0;j<10;j++){
screen[i][j]='x';
}
}
}
void flush(){
int i,j;
for(j=0;j<10;j++){
for(i=0;i<10;i++){
System.out.print(this.screen[i][j]+" ");
}
System.out.println();
}
}
void drawPoint(int x, int y, char c){
this.screen[x][y] = c;
}
}
0007前スレ982
NGNG形式:"図形タイプ,X座標,Y座標,パラメータ1,パラメータ2,模様,"
図形タイプ:
r - 長方形(rectangle)
s - 正方形(square)
X座標、Y座標:
長方形・正方形の場合は左上の角のX座標、Y座標
パラメータ1:
長方形・正方形の場合は横の長さ
パラメータ2:
長方形・正方形の場合は縦の長さ
模様:
1byteのテキストで表現される模様
例:"r,3,2,5,3,o"
( (3,2)を左上の角とする横5、縦3の長方形を'o'の模様で作成する)
○図形描画命令の受け取り方は以下の3段階で実装してみる
といいでしょう。
(1) プログラム内部で受け取る(連続して複数の命令を受け取る)
(2) 引数から受け取る(一度に一つの命令だけを受け取る)
例: %java DrawCommand r,3,2,5,3,o
(3) ファイルから読み込む(同時に複数の命令を受け取る)
最終的に提出して欲しいのは(3)の段階のものですが、実装
ができなかった場合は(1)や(2)のものでも結構です。
0008前スレ982
NGNGStringTokenizer st = new StringTokenizer(str,",");
if(st.nextToken().equals("r")){//分割された文字列が"r"と等しいなら
int x = Integer.parseInt(st.nextToken());
int y = Integer.parseInt(st.nextToken());
int w = Integer.parseInt(st.nextToken());
int h = Integer.parseInt(st.nextToken());
char pattern = st.nextToken().charAt(0);
}else if(st.nextToken().equals("s")){//分割された文字列が"s"と等しいなら
//以下省略
}
このようにして、"StringTokenizer"という、文字列を分割
する便利なクラスを利用します。StringTokenizerクラスの
nextToken()メソッドは、分割された文字列を一つずつ先に
進めることができます。この戻り値はStringクラスなので、
その後でcharAt()メソッドを使えば分割された文字列の最
初の一文字をとってくることもできます。
詳しくは教材の"JAVA API"ボタンからAPI仕様にアクセス
して調べて下さい。
という宿題を出されました。まったくのさっぱり解りません。誰かお願いします
0009M.B.
NGNG文字を使って図形を描画する
仮想言語をStringTokenizerを利用して書けと。
…… C じゃないんだからさ。
【問題点その1】
Cなら図形文字の描画サイズとバイト長がたまたま一致するから
いいのだが(そんかし2バイト系文字の先頭文字をうっかり書き潰すと
文字化け問題が発生するが)
Java のキャラクタには全角文字と半角文字の両方がある。それをどうする?
【問題点その2】
Java の StringTokenizer は、マシン間でテキスト形式のデータを
やりとりするためのもので、人間の書いたコード(たとえばプログラム)を
扱おうとすると、かなり機能が不足している。
r,3,2,5,3,o だって、r((3,2),[5*3],'o')とか書きたいだろ?
コメントだって入れたいだろ?
出題のポイントを明らかにするように、出題者に言ってこい。
0010デフォルトの名無しさん
NGNG昨日M.B.さんにいたたいだプログラムは実行の時に
結果が2.999999999..とかなってしまいうまく実行することが出来ませんでした。
以下にある文章をフレームに表示したいのですがどうすればいいでしょうか。
行列 A =
[ xx.x xx.x xx.x xx.x xx.x ]
[ xx.x xx.x xx.x xx.x xx.x ]
[ xx.x xx.x xx.x xx.x xx.x ]
[ xx.x xx.x xx.x xx.x xx.x ]
ベクトル b (の転置) =
[ xx.x xx.x xx.x xx.x xx.x ]
--- 計算結果 ---
ベクトル c (の転置) =
[ xx.x xx.x xx.x xx.x ]
0011前スレ938続き
NGNGg.drawStringのところでシンボルを解決できない、とエラーがでます。
import java.awt.*;
import java.awt.event.*;
public class HW10 extends Frame{
public HW10(){
setSize(400,300);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
public void paint(Graphics g){
double [][] a = { { 1.5, 2, 3, 4},
{ 5, 6, 7, 8},
{ 9,10.4,11,12},
{13,14.3,15,16},
{17.9,18,19,20.6}};
double [] b = {1,2.9,3,4};
double [] c = new double[a.length];
vector(a,b,c);
g.drawString("行列A=");
printMatrix(a);
System.out.println("ベクトルb=");
printVector(b);
System.out.println("ベクトルc=");
printVector(c);
}
0012前スレ938続き
NGNGfor(int i = 0;i < a.length;i += 1){
double c = 0.0;
for(int j = 0;j < a[0].length; j++){
c += a[i][j] * b[j];
}
s[i] = c;
}
}
public static void printMatrix( double [][] matrix){
for(int i = 0;i < matrix.length;i += 1){
System.out.print(" (");
for(int j = 0;j < matrix[i].length;j += 1){
System.out.print(" "+ matrix[i][j]);
}
System.out.println(" )");
}
}
public static void printVector(double [] vector){
System.out.print("(");
for(int i = 0;i < vector.length;i++) {
System.out.print(" "+vector[i]);
}
System.out.println(" )");
}
}
0013デフォルトの名無しさん
NGNGパラメータが足りないよ。
drawString(String str, int x, int y)
ね。
001410
NGNGパラメータを足して書いてみましたが、mainがないとエラーがでます。
import java.awt.*;
import java.awt.event.*;
public class HW10 extends Frame{
public HW10(){
setSize(400,300);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
public void paint(Graphics g){
double [][] a = { { 1.5, 2, 3, 4},
{ 5, 6, 7, 8},
{ 9,10.4,11,12},
{13,14.3,15,16},
{17.9,18,19,20.6}};
double [] b = {1,2.9,3,4};
double [] c = new double[a.length];
vector(a,b,c);
001510続き
NGNGprintMatrix(a);
g.drawString("ベクトルb=",10,200);
printVector(b);
g.drawString("ベクトルc=",10,300);
printVector(c);
}
public static void vector( double[][] a, double[] b, double[] s){
for(int i = 0;i < a.length;i += 1){
double c = 0.0;
for(int j = 0;j < a[0].length; j++){
c += a[i][j] * b[j];
}
s[i] = c;
} }
public static void printMatrix( double [][] matrix){
for(int i = 0;i < matrix.length;i += 1){
System.out.print(" (");
for(int j = 0;j < matrix[i].length;j += 1){
System.out.print(" "+ matrix[i][j]);
}
System.out.println(" )");
}}
public static void printVector(double [] vector){
System.out.print("(");
for(int i = 0;i < vector.length;i++) {
System.out.print(" "+vector[i]);
}
System.out.println(" )");
} }}
0016デフォルトの名無しさん
NGNGSwingで描くプログラムつくってみましたが、長すぎるし設計が微妙です。
欲しい!って言ってくれたら書きます。
いらないならスルー希望。
0017デフォルトの名無しさん
NGNGすみません、これが最後の質問になると思います。
下のプログラムを実行した時に、
フレーム側に計算結果も出るようにしたいです。
import java.awt.*;
import java.awt.event.*;
public class HW10 extends Frame{
public HW10(){
setSize(500,500);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
public void paint(Graphics g){
double [][] a = { { 1.5, 2, 3, 4},
{ 5, 6, 7, 8},
{ 9,10.4,11,12},
{13,14.3,15,16},
{17.9,18,19,20.6}};
double [] b = {1,2.9,3,4};
double [] c = new double[a.length];
vector(a,b,c);
0018デフォルトの名無しさん
NGNGg.drawString("ベクトルb=",10,200);
g.drawString("ベクトルc=",10,300);
}
public static void vector( double[][] a, double[] b, double[] s){
for(int i = 0;i < a.length;i += 1){
double c = 0.0;
for(int j = 0;j < a[0].length; j++){
c += a[i][j] * b[j];
}
s[i] = c;
}
}
public static void printMatrix( double [][] matrix){
for(int i = 0;i < matrix.length;i += 1){
for(int j = 0;j < matrix[i].length;j += 1){
System.out.print(" "+ matrix[i][j]);
}
System.out.println(" )");
} }
public static void printVector(double [] vector){
System.out.print("(");
for(int i = 0;i < vector.length;i++) {
System.out.print(" "+vector[i]);
}
System.out.println(" )");
}
public static void main(String[] args){
Frame w=new HW10();
w.show();
}}
0019デフォルトの名無しさん
NGNG単に計算結果だけを表示したいならこれじゃダメなの?
for (int i=0; i<c.length; i++) {
g.drawString("ベクトルc=" + String.valueOf(c[i]), 10, 300 + i * 20);
}
002017
NGNG以下のような文をフレームに表示したいです。
行列 A =
[ xx.x xx.x xx.x xx.x xx.x ]
[ xx.x xx.x xx.x xx.x xx.x ]
[ xx.x xx.x xx.x xx.x xx.x ]
[ xx.x xx.x xx.x xx.x xx.x ]
ベクトル b (の転置) =
[ xx.x xx.x xx.x xx.x xx.x ]
--- 計算結果 ---
ベクトル c (の転置) =
[ xx.x xx.x xx.x xx.x ]
for (int i=0; i<c.length; i++) {
g.drawString("ベクトルc=" + String.valueOf(c[i]), 10, 300 + i * 20);
}
の部分もどこに入れてどこを削ればいいのかわからない状況です。
お願いします。
0021>>3 その1
NGNGimport java.util.*;
public class DrawCommand {
static int mode;
static final int N_MODE=0; static final int R_MODE=1; static final int S_MODE=2;
static final int E_SYNTAX=0; static final int E_RANGE=1; static final int E_PATTERN=2; static final int E_OPE=3;
static List list=new ArrayList();
static Screen screen=new Screen();
public static void main(String[] args) {
StreamTokenizer st=null;
try {
FileInputStream fi=new FileInputStream(args[0]);
st=new StreamTokenizer(new InputStreamReader(fi));
st.whitespaceChars(',', ',');
} catch (Exception e) {
System.out.println("ファイル読み込み不可能エラー");
}
try {
parseText(st);
} catch (Exception e1) {
System.out.println("例外発生でエラー終了");
}
}
0022>>3 その2
NGNGwhile(st.nextToken()!=StreamTokenizer.TT_EOF) {
if(mode==R_MODE) {
switch(list.size()) {
case 0: case 1: case 2: case 3:
if(st.ttype!=StreamTokenizer.TT_NUMBER) { errorOperation(0, st); continue; }
if(st.nval<1 || st.nval>10) { errorOperation(1, st); continue; }
list.add(new Integer((int)st.nval)); break;
case 4:
if(st.ttype!=StreamTokenizer.TT_WORD) { errorOperation(0, st); continue; }
if(st.sval.length()!=1) { errorOperation(2, st); continue; }
Rectangle r=new Rectangle();
r.setCoordinateRectangle(((Integer)list.get(0)).intValue(), ((Integer)list.get(1)).intValue(),
((Integer)list.get(2)).intValue(), ((Integer)list.get(3)).intValue());
r.setPattern(st.sval.charAt(0));
try {
r.drawRectangle(screen);
screen.flush();
System.out.println();
} catch (Exception e) {
System.out.println("座標範囲オーバーエラー検出");
}
list.clear(); mode=N_MODE; screen=new Screen();
}
}
0023>>3 その3
NGNGswitch(list.size()) {
case 0: case 1: case 2:
if(st.ttype!=StreamTokenizer.TT_NUMBER) { errorOperation(E_SYNTAX, st); continue; }
if(st.nval<1 || st.nval>10) { errorOperation(E_RANGE, st); continue; }
list.add(new Integer((int)st.nval)); break;
case 3:
if(st.ttype!=StreamTokenizer.TT_WORD) { errorOperation(E_SYNTAX, st); continue; }
if(st.sval.length()!=1) { errorOperation(E_PATTERN, st); continue; }
Square s=new Square();
s.setCoordinateSquare(((Integer)list.get(0)).intValue(), ((Integer)list.get(1)).intValue(),
((Integer)list.get(2)).intValue());
s.setPattern(st.sval.charAt(0));
try {
s.drawSquare(screen);
screen.flush();
System.out.println();
} catch (Exception e) {
System.out.println("座標範囲オーバーエラー検出");
}
list.clear(); mode=N_MODE; screen=new Screen();
}
} else {
if(st.ttype!=StreamTokenizer.TT_WORD) errorOperation(E_OPE, st);
if(st.sval.equals("r")) mode=R_MODE;
else if(st.sval.equals("s")) mode=S_MODE;
else errorOperation(E_OPE, st);
}
}
}
0024>>3 その4
NGNGswitch(type) {
case E_SYNTAX: System.out.println("構文エラー検出"); break;
case E_RANGE: System.out.println("座標範囲オーバーエラー検出"); break;
case E_PATTERN: System.out.println("不正パターン文字指定エラー検出"); break;
case E_OPE: System.out.println("図形指定記号エラー検出"); break;
}
while(st.nextToken()!=StreamTokenizer.TT_EOF) {
if(st.ttype==StreamTokenizer.TT_WORD) {
if(st.sval.equals("r")) {
mode=R_MODE; list.clear(); return;
} if(st.sval.equals("s")) {
mode=S_MODE; list.clear(); return;
}
}
}
System.exit(0);
}
}
0025古代帝國富士皇朝総帥・伯壬旭
NGNG上記のプログラムに
>>4->>6の、Rectangleクラス、Squareクラス、Screenクラスのコードを
付け足してください。
実行引数にファイル名を指定するとそのテキストファイルを読んで
図形を表示します。
(注)>>4->>6のクラスの仕様から、座標に0を指定するとエラーが出ます。
さらに座標+サイズが10を超えるとエラーが出ます。
各文は , で区切ってください。 例: r,1,1,5,5,a,s,3,3,4,b
NotePad.exeで上記の構文の文章を記入したテキストファイルを作って
そのファイル名を引数に指定してください。
002619
NGNG前スレ見たんだけどM.B. さんが回答してる奴じゃダメなの?
あまり詳しくないから、参考程度に。
一応形にはなってるハズ。
import java.awt.*;
import java.awt.event.*;
public class HW10 extends Frame{
private static final int DRAW_X1 = 10;
private static final int DRAW_X2 = 30;
private static final int DRAW_Y = 80;
private static final int DRAW_ADD_Y = 20;
private static final Font drawFont = new Font("MS ゴシック", Font.PLAIN, 12);
public HW10(){
setSize(500,500);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
002719
NGNGdouble [][] a = {{ 1.5, 2, 3, 4},
{ 5, 6, 7, 8},
{ 9,10.4,11,12},
{13,14.3,15,16},
{17.9,18,19,20.6}};
double [] b = {1,2.9,3,4};
double [] c = new double[a.length];
vector(a,b,c);
g.setFont(drawFont);
int y = DRAW_Y;
g.drawString("行列A=", DRAW_X1, y);
StringBuffer buf = null;
for (int i=0; i<a.length; i++) {
y = DRAW_Y + DRAW_ADD_Y + i * DRAW_ADD_Y;
g.drawString(sprintVector(a[i]), DRAW_X2, y);
}
g.drawString("ベクトル b (の転置) = ", DRAW_X1, y += DRAW_ADD_Y * 2);
g.drawString(sprintVector(b), DRAW_X2, y += DRAW_ADD_Y);
g.drawString("--- 計算結果 --- ", DRAW_X1, y += DRAW_ADD_Y * 2);
g.drawString("ベクトル c (の転置) = ", DRAW_X1, y += DRAW_ADD_Y);
g.drawString(sprintVector(c), DRAW_X2, y += DRAW_ADD_Y);
}
002819
NGNGfor(int i = 0;i < a.length;i += 1){
double c = 0.0;
for(int j = 0;j < a[0].length; j++){
c += a[i][j] * b[j];
}
s[i] = c;
}
}
private static String fillLeft(double num, String str, int len) {
return fillLeft(String.valueOf(num), str, len);
}
private static String fillLeft(String num, String str, int len) {
String s = String.valueOf(num);
for (int i=s.length(); i<len; i++) {
s = str + s;
}
return s;
}
public static String sprintVector(double [] vector){
StringBuffer buf = new StringBuffer("");
buf.append("[");
for(int i = 0;i < vector.length;i += 1) { buf.append(fillLeft(vector[i], " ", 10)); }
buf.append(fillLeft("]", " ", 5));
return buf.toString();
}
public static void main(String[] args){
Frame w=new HW10();
w.show();
}
}
0029デフォルトの名無しさん
NGNG:
:
public Colorcoding_new() {
setTitle("Colorcoding Viewer");
setBackground(Color.lightGray);
setSize(841, 718);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) {
System.exit(0);
}
});
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent me) {
clickdruglabel[0].setText("300");
}
public void mouseReleased(MouseEvent me) {
clickdruglabel[2].setText("800");
}
});
:
:
といった感じにしたのですが、コンパイルは問題なくできますが、mousePressed, mouseReleased の処理がまったく作動しません。
マウスイベントが作動しない場合などはあるのでしょうか
0030デフォルトの名無しさん
NGNGそれってたぶんJFrameのサブクラス内に書いてるんだよね? たぶんコンストラクタ内かな?
addWindowListenerってあるし。
たぶん、ウインドウに対してマウスリスナを登録しているから駄目なんだと思う。JFrameの上には
Content Paneというペインが表示領域としてかぶさってるから、イベントが到達してないんだろう。
コンテント・ペインに設定してみたらどうだろうか。
JPanel panel = (JPanel)this.getContentPane();
panel.addMouseListener( new MouseAdapter() { ... } }
という感じで。
0031デフォルトの名無しさん
NGNGswing を使っていないのですが、その場合どうすればよいのでしょう?
Panel panel = (Panel)this.getContentPane();
とするとエラーがでました
0032デフォルトの名無しさん
NGNGじゃああってそうに見えるねえ。
0033デフォルトの名無しさん
NGNGFrameに貼ってあるLabel? その次の行にSystem.out.println("hoge");とか入れても
何も表示されないということ?
0034M.B.
NGNG新しいネタなら、「質問です」とか家。
前のネタの続きかと主他。
0035デフォルトの名無しさん
NGNG問題は以下のような感じです
(問題)
=============================
次のように0〜100の範囲で数字を一つ決めた後に、二分法を使って決めた数字を探していくプログラムを記述しなさい。
→実行例
0〜100の中から好きな整数を思い浮かべてください。2分法を使って先ほど思い浮かべた数字を探していきます。
0から50の間にある数ですか?(y or n)
y
0から25の間にある数ですか?(y or n)
n
26から37の間にある数ですか?(y or n)
y
----------------------上記のような処理を繰り返した末に以下のようになる
34〜35の間にある数ですか(y or n)
y
思い浮かべた数は34ですか?(y or n)
n
求める答えは35です。
=============================
よろしくお願いしますm(_ _)m
0036デフォルトの名無しさん
NGNG何を聞きたいのかがよくわからないっす。
二分法の仕組みが知りたいの?
それともコーディングが分からないの?
003735
NGNGわからないのはコーディングの方です。
0038M.B.
NGNG「m から n」っていうのは、「m 以上 n 以下」なのか?
それとも「m より大きくて n より小さい」のか?
それとも「m 以上 n 未満」なのか?
(「m を越えて n 未満」というのはあんまりないが)
0039M.B.
NGNG004035
NGNG問題文から判断するに「m以上 n以下」だと思います。
004135
NGNG>ついでながら Java 的には「m 以上 n 未満」が普通。
そうなんですか…うーん、不安になってきた。
「m 以上 n未満」なのかなぁ…
0042デフォルトの名無しさん
NGNGimport java.io.*;
public class Exc
{
private static final int MAX_NUMBER = 1000;
private static final int MIN_NUMBER = 0;
public static void main(String[] args)throws IOException{
System.out.println(MIN_NUMBER+"〜"+MAX_NUMBER+"の範囲の数字を2分探索します");
int max = MAX_NUMBER;
int min = MIN_NUMBER;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while(max-min > 1){
int n = min+(max-min)/2;
System.out.println("その数字は"+min+"以上"+n+"未満の数字ですか?");
while(true){
System.out.print(":");
String an = br.readLine();
if(an.equals("y")){
max = n;
break;
}
if(an.equals("n")){
min = n;
break;
}
}
}
br.close();
System.out.println("その数字は"+min+"です");
}
}
0043デフォルトの名無しさん
NGNG0044デフォルトの名無しさん
NGNGこの前、本いっぱい紹介してもらって、感謝!!!
0045デフォルトの名無しさん
NGNG004635
NGNGおぉ!!ありがとうございます!!
本当に助かりましたm(_ _)m
感謝です!
0047M.B.
NGNG素直に「その数字は52ですか?」と訊け、と言いたい。
で、「y」と答えると、「その数字は52です」とダメを押される。
0048M.B.
NGNGちゃんと読めよー!
「PL/I 分からん」とか「FORTRAN 分からん」とか言うなよー!
できれば Java に書き直してみろよー!
電算業界に就職したらデカいツラができるぞー!
(そのかわり社会人3ヶ月めでプロジェクトリーダーとかにされて、
「五月病になるヒマもねぇんじゃ糞ったれ!」とか毒づく破目になるのだが)
0049デフォルトの名無しさん
NGNGごめんなさーい。
ifとか使って直してくださーい。
それに、最初の"〜"っていうのも曖昧ですね。
orz
0050超初心者α
NGNG「1+2+3-4+5+6-7+8+9-10・・・・100の合計値と平均値」
をjava script プログラムを作れ
って言われました。
馬鹿野郎な自分が苦心して出した答えがこれです
<html>
<head>
<title>1+2+3-4+5+6-7+8・・・100の合計値プログラム</title>
</head>
<body>
1+2+3-4+5+6-7+8+9-10・・・・100=
<script language="JavaScript">
<!--
sum=1;
i=2;
for (i=2; i<=100; i++){
if (i%3==1) i=-i;}
sum += i;
document.write(sum);
// -->
</script>
</body>
</html>
これだと処理が重くなるみたいで
つД`)うぅ・・・教えて下せぇ
0051M.B.
NGNGスレタイを千回(ry
0052デフォルトの名無しさん
NGNGi=-i;
なんてことしたら次のループのときに・・・
0053デフォルトの名無しさん
NGNG最長共通部分系列(LCS)の探索
www.futamura.info.waseda.ac.jp/~futamura/lecture/Gikenshuu/Chap16.pdf
にのってるやつで作りましたが、
どうにも設定する配列によっては、正則と逆正則が違うようでそのために解が
まともに得られていないようなのですが、これ以外にLCSを解く方法があれば
教えてください。
0054デフォルトの名無しさん
NGNGjavascriptとか知らんけど
1+2+3-4+5+6-7…
=(1+2+3)+(-4+5+6-7)+7+(-7+8+9-10)+10+…
=6+(7+10+13+…+97)
とか直してやればいいんじゃないの?
ぜんぶ馬鹿丁寧に足さなあかんていうんなら知らん。
0055デフォルトの名無しさん
NGNG0056デフォルトの名無しさん
NGNGpublic static void main(String[] args){
int n = Integer.parseInt(args[0]);
int sum = n*(n+1)/2;
double avg = (double)sum/n;
System.out.println("total = "+sum);
System.out.println("mean = "+avg);
}
}
0057M.B.
NGNG筧先生にでも相談してこい。
ここは Java プログラミングのスレだ。
0058デフォルトの名無しさん
NGNG問題読み間違えてないかい?
>>50を流用するなら
<html>
<head>
<title>1+2+3-4+5+6-7+8・・・100の合計値プログラム</title>
</head>
<body>
1+2+3-4+5+6-7+8+9-10・・・・100=
<script language="JavaScript">
<!--
sum=1;
i=2;
for (i=2; i<=100; i++){
if (i%3==1){
sum +=-i;
}else{
sum += i;
}
}
document.write(sum);
// -->
</script>
</body>
</html>
0059M.B.
NGNG0060前スレ982
NGNGありがとうございました。おかげで助かりました。
0061デフォルトの名無しさん
NGNG完全に読み間違えてました。
0062超初心者α
NGNG>>58
お答えどうもっす。そういうことか〜参考になりました。
あと平均値計算はどうなるんでしょう?
処理した回数カウントしてそれを合計値と割ればいいと思うんですが
どこに組み込めばいいか分からないです。
0063デフォルトの名無しさん
NGNG<script language="JavaScript">
<!--
sum=0;
count=0
for (i=1; i<=100; i++){
if (i%3==1 && i!=1){
sum +=-i;
}else{
sum += i;
}
count++
}
document.write('合計:' + sum);
document.write('<BR>平均:' + sum/count);
// -->
</script>
0064デフォルトの名無しさん
NGNGさっきのはミスです。そしてスレチガイデス。
public class JavaScriptIsNotJava{
public static void main(String[] args){
int n = Integer.parseInt(args[0]);
if(n<3) return;
int sum = n*(n+1)/2;
switch(n%3){
case 0: sum -= (4+n-2)*(n/3-1); break;
case 1: sum -= (4+n)*(n/3); break;
case 2: sum -= (4+n-1)*(n/3); break;
}
double avg = (double)sum/n;
System.out.println("total = "+sum);
System.out.println("mean = "+avg);
}
}
0065デフォルトの名無しさん
NGNG4行目のn<3はn<1でした。
そしてスレチガイデース。
0066デフォルトの名無しさん
NGNGいきなり自分の名前呼ばれてびびったー(;・∀・)
違う人か。
0067デフォルトの名無しさん
NGNG0068デフォルトの名無しさん
NGNG【課題】スーパーマーケットの在庫管理のプログラムを作成する.
商品クラ スを作成し,価格や商品名,在庫数などのフィールドやその設定や表示などをするメ ソッドを作成する.
この商品クラスを拡張し,生鮮品,日用品,電化製品な どのサブクラスを作成する.生鮮品ならば産地などが必要であるし,電化製 品ならばメーカー名や型番が必要である.
メインでは最初,現在の在庫をファ イルから読み取り,売れた状況や入荷の状況をキーボードから入力する.
商 品名を指定してそのときの状況を表示する機能や,在庫がなくなったら警告 を発する機能を持つ.
最後にそのときの在庫状況をファイルに書き出す.
入力用のファイルのフォーマットは各自に任せます.プログラムを提出する ときに入力ファイルも添付してください.
0069デフォルトの名無しさん
NGNGprintf("TEST %08x\n",hex);
0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNGまわりくどいやり方
String a = "0000000" + Long.toHexString( hex );
a = a.substring( a.length() - 8 );
System.out.print( "TEST " );
System.out.println( a );
>>70
Cのメモリ管理で泣いたからってファビョる事もあるまい
0072M.B.
NGNG十進数の場合、 DecimalFormat クラスを使って整形するので、
似たようなものが十六進数でもあるはず。
0073デフォルトの名無しさん
NGNGabstract class 商品 {
protected String 商品名;
protected int 在庫数;
商品(String 商品名, int 在庫数){
this.商品名=商品名;
this.在庫数=在庫数;
}
int 在庫変動(int 増減数) throws そんなに在庫ねーよ, もうスッカラカンっす{
int 変動後在庫数=在庫数+増減数;
if(変動後在庫数>=0){
在庫数=変動後在庫数;
if(在庫数==0){
throw new もうスッカラカンっす(商品名());
}
}
else {
throw new そんなに在庫ねーよ(商品名(),変動後在庫数);
}
return 変動後在庫数;
}
String 商品名(){
return 商品名;
}
int 在庫数(){
return 在庫数;
}
abstract String 在庫情報();
}
0074つづき
NGNGString メーカー名;
String 型番号;
電化製品(String 商品名, int 在庫数, String メーカー名, String 型番号){
super(商品名,在庫数);
this.メーカー名=メーカー名;
this.型番号=型番号;
}
String メーカー名(){
return メーカー名;
}
String 型番号(){
return 型番号;
}
String 在庫情報(){
return 商品名()+" "+メーカー名()+" "+型番号()+" 残り"+在庫数();
}
}
0075さいご
NGNGそんなに在庫ねーよ(String 商品名, int 不足数){
super(商品名+"の不足数"+Math.abs(不足数));
}
}
class もうスッカラカンっす extends Throwable {
もうスッカラカンっす(String 商品名) {
super(商品名+"の在庫が在りません");
}
}
0076M.B.
NGNG文法上アリだというのは知ってたが漢字のクラス名・メソッド名
使ってる香具師はじめて見た。
0078>>68 その1
NGNGimport java.awt.event.*; import java.io.*; import java.util.*;
import javax.swing.*; import javax.swing.table.*; import java.awt.*;
public class HW17 extends JFrame {
static Map goodsMap=new TreeMap();
static Goods crtGoods;
static DefaultTableModel model=
new DefaultTableModel(new Object[][]{{"none","0","0"}}, new Object[]{"商品名","価格","在庫数"});
static JTextField tfd_s=new JTextField(); static JLabel label=new JLabel();
static JSpinner spn1=new JSpinner(); static JSpinner spn2=new JSpinner();
0079>>68 その2
NGNGreadFile();
JFrame frame=new JFrame(); JTable table=new JTable(model); JScrollPane scroll=new JScrollPane(table);
JPanel panel=new JPanel(); tfd_s.setPreferredSize(new Dimension(200,20)); panel.add(tfd_s);
JButton btn0=new JButton("商品表示");
btn0.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { showGoods(); }
});
JButton btn1=new JButton("データをファイルへ保存");
btn1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { writeFile(); }
});
panel.add(btn0); panel.add(btn1);
Box box=Box.createHorizontalBox();
JButton btn2=new JButton("個売れた");
btn2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { updateStock(-((Integer)spn1.getValue()).intValue()); }
});
JButton btn3=new JButton("個入荷した");
btn3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { updateStock(((Integer)spn2.getValue()).intValue()); }
});
label.setPreferredSize(new Dimension(200,20)); label.setHorizontalAlignment(JLabel.CENTER);
box.add(Box.createGlue()); box.add(spn1); box.add(btn2); box.add(label);
box.add(spn2); box.add(btn3); box.add(Box.createGlue());
frame.getContentPane().add(panel, BorderLayout.NORTH); frame.getContentPane().add(scroll);
frame.getContentPane().add(box, BorderLayout.SOUTH);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(600,140); frame.setVisible(true);
}
0080>>68 その3
NGNGString name=tfd_s.getText().trim(); crtGoods=(Goods)goodsMap.get(name);
if(crtGoods==null) {
model.setDataVector(new Object[][]{{"none","0","0"}}, new Object[]{"商品名","価格","在庫数"});
label.setText("その名前の商品はありません");
} else {
model.setDataVector(new Object[][]{crtGoods.toArray()}, crtGoods.toHeadArray());
label.setText(crtGoods.name + "のデータを表示しました");
if(crtGoods.stock==0) label.setText("この商品の在庫がありません");
}
spn1.setValue(new Integer(0)); spn2.setValue(new Integer(0));
}
static void updateStock(int num) {
if(crtGoods==null) return;
crtGoods.stock+=num;
if(crtGoods.stock<=0) {
crtGoods.stock=0; label.setText("在庫がなくなりました");
}
goodsMap.put(crtGoods.name, crtGoods);
model.setDataVector(new Object[][]{crtGoods.toArray()}, crtGoods.toHeadArray());
spn1.setValue(new Integer(0)); spn2.setValue(new Integer(0));
}
static void writeFile() {
try {
File file=new File("商品在庫.dat");
ObjectOutputStream objOut=new ObjectOutputStream(new FileOutputStream(file));
objOut.writeObject(goodsMap); objOut.close();
} catch (Exception e1) { }
}
0081>>68 その4
NGNGtry {
File file=new File("商品在庫.dat");
ObjectInputStream objIn=new ObjectInputStream(new FileInputStream(file));
goodsMap=(Map)objIn.readObject();
objIn.close(); return;
} catch (Exception e1) { }
String goodsList =
"Foods,米,3000,10,新潟,Foods,牛肉,400,10,アメリカ,Foods,まぐろ,600,10,三崎," +
"Electric,テレビ,12000,10,ソニー,2000年型,Electric,ラジオ,3000,10,ナショナル,1990年型,Electric,ビデオ,8000,10,三菱,2001年型," +
"Daily,洗剤,400,10,花王,Daily,歯ブラシ,200,10,ライオン,Daily,ゴミ袋,100,10,カネボウ";
StringTokenizer st=new StringTokenizer(goodsList, ",\n");
while(st.hasMoreTokens()) {
try {
Object obj=Class.forName("hw17." + st.nextToken()).newInstance();
((Goods)obj).name=st.nextToken();
((Goods)obj).price=Integer.parseInt(st.nextToken());
((Goods)obj).stock=Integer.parseInt(st.nextToken());
if(obj instanceof Foods) {
((Foods)obj).farm=st.nextToken();
} else if(obj instanceof Electric) {
((Electric)obj).brand=st.nextToken();
((Electric)obj).model=st.nextToken();
}
goodsMap.put(((Goods)obj).name, obj);
} catch (Exception e) { }
}
}
}
0082>>68 その5
NGNGString name; int price; int stock;
abstract Object[] toArray();
abstract Object[] toHeadArray();
}
class Foods extends Goods implements Serializable {
String farm;
Object[] toArray() {
return new Object[] {name, new Integer(price), new Integer(stock), farm};
}
Object[] toHeadArray() {
return new Object[] {"商品名", "価格", "在庫数", "産地"};
}
}
class Electric extends Goods implements Serializable {
String brand;
String model;
Object[] toArray() {
return new Object[] {name, new Integer(price), new Integer(stock), brand, model};
}
Object[] toHeadArray() {
return new Object[] {"商品名", "価格", "在庫数", "メーカー", "型番"};
}
}
class Daily extends Goods implements Serializable {
Object[] toArray() {
return new Object[] {name, new Integer(price), new Integer(stock)};
}
Object[] toHeadArray() {
return new Object[] {"商品名", "価格", "在庫数"};
}
}
0083古代帝國富士皇朝総帥・伯壬旭
NGNG上記のプログラムを全部コピペして、実行クラスファイルは
hw17ディレクトリにいれて実行してください。
(package指定を外すと初期データが読み込まれなくなるので)
初期商品データは、米、牛肉、まぐろ、テレビ、ラジオ、ビデオ、
洗剤、歯ブラシ、ゴミ袋 です。
上部左側のテキストフィールドに商品名を書いて、「商品表示」ボタンを
押すと、下に商品データがでます。
下部には、売却数と仕入れ数の入力欄があります。
「データをファイルへ保存」ボタンを押すと、商品データをファイルへ
セーブします。セーブファイル名(入出力ファイル)は
「商品在庫.dat」です。
0084デフォルトの名無しさん
NGNG長文ウザイ。だいたい古代帝國富士皇朝ってなんだよ。
0086デフォルトの名無しさん
NGNG正確には「出雲帝國富士皇朝」な。
>>85
『逝ってよし教』かよ(-_-!)
0087デフォルトの名無しさん
NGNG☆ チャンチキ ♪マチクタビレタ♪
〃 ♪マチクタビレター♪
☆ チャンチキ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄
ヽ ___\(\・∀・)< 宿題マダー?
\_/⊂ ⊂_)_\______
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄/|
|  ̄ ̄ ̄ ̄ ̄ ̄ ̄ :| |
| トントカ芋 :| |
| _______ :|/
0088デフォルトの名無しさん
NGNGプログラムを作ろうとしてるのですが、さっぱりわかりません。
ttp://java.sun.com/j2se/1.4/ja/docs/ja/guide/security/jaas/JAASRefGuide.html
できるのか、できないのか。できるのであれば、
どなたかサンプルお持ちでしたら見せていただきたいです。
ユーザ名 パスワードを入力すれば、/etc/shadowの情報を見て
OK or NGが出るプログラムのような、単純な(馬鹿でも判る)のを希望してます。
どうぞ、よろしくお願いいたします。
0089M.B.
NGNGログイン名と「暗号化されたログイン名+パスワード」が、
システム管理者以外には書き換えられない
決まった場所にある全員が見られるファイル
(たとえば/etc/shadow だとか/etc/psswrd だとか)
に書いてあるとするだろ?
そしたら全員が共通に使える暗号化システムを用意して、
自分のログインネームと自分のパスワードを暗号化したものが、
その「暗号化されたログイン名+パスワード」と一致するかどうかを
認証時にチェックすればいい。
この方式だと、システム管理者が複合化システムを知らないか、
あるいは復号化システムが存在しない場合、あるいは
復号に必要なキーを捨ててしまった場合、
システム管理者もパスワードを知ることができないし
(暗号化のプロセスをクライアント側で行なえば、回線を盗聴しても無駄
スパイウェアを使うしかない)
ログイン名を変えることもできない(アカウントの削除はできる)。
まあ、「ログイン名だけ変えてパスワードを変えない」とかいうことは
できなくなるが、それはセキュリティ上必要なコストと考えていただきたい。
0090M.B.
NGNGついでに「Javaの」の五文字を見落としたうっかり八兵衛は
Java コーヒーを飲み Java カレー辛口を食ってから
スレタイを叫びつつ腕立て伏せ・スクワット・腹筋を各二十回
0091M.B.
NGNGあ、いかん。クライアント側で暗号化する場合は、
サーバー側でも別に暗号化プロセスを用意して、
クライアント側から送られてきた暗号を再度暗号化して、
「二重に暗号化されたログイン名+パスワード」と
比較するんだぞ?
でないと/etc/shadow/のパスワードを送信するだけで
破られちゃうから。
009288
NGNG直接は、無理ですね・・・
/etc/shadowは、root以外見れ無いことを忘れてました。
ユーザ名や、パスワードの管理はuseraddコマンドやpasswdコマンドでやろうと思ってます。
このプログラムの用途なんですが、サーブレットに組み込んで
linuxのユーザ名・パスワードを使って認証して、セッション管理を行いたいと思ってました。
Java コーヒーを飲み Jawa カレー辛口を食ってから、出直してきます。
009388
NGNG暗号化・・・難しすぎで手が出せませんw
M.B.さん、色々教えていただき有難うございました。
0094デフォルトの名無しさん
NGNG知らなかったよ。
Javaの見方が変わってしまいそうなほどの衝撃だったよ。
そういえば、Unicodeだもんね。
0095M.B.
NGNG×Jawa カレー
○Java カレー
ちなみに Java カレーは辛口より中辛に
ローレル・コリアンダーシード・シナモン・ナツメグ等にプラスして、
チリペッパー(レッドペッパー)を足したほうがむまい。
隠し味にブラックペッパーと花山椒を足すのも可。
キミも辛ぇなる Zapper の世界を体験してみないか?
読み筋は"Jargon file"(『ハッカー用語辞典』)の"Zap"の項。
0096M.B.
NGNGabstruct class とか interface とかいろいろ使ってみたりしている。
なかなか面白い。
0097M.B.
NGNG☆ チャンチキ ♪マチクタビレタ♪
〃 ♪マチクタビレター♪
☆ チャンチキ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄
ヽ ___\(\・∀・)< 宿題マダー?
\_/⊂ ⊂_)_\______
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄/|
|  ̄ ̄ ̄ ̄ ̄ ̄ ̄ :| |
| トントカ芋 :| |
| _______ :|/
0098デフォルトの名無しさん
NGNG一日当たりの必要栄養量を満たしながらも,出費を最小限に抑えるプログラムを作成しなさい.
(動作例)
あなたは伝説の病にかかってしまいました.
この病を克服するためには,一日当たり・・・
ビタミンB1>2mg,B2>2mg,C>600mg必要です!
合理的なあなたは,こんなときでも節約家.
そこで,出費をできるだけ少なくしたい!
本日のメニュー
みかん:1kg300円
1kgあたり…ビタミンB1=1mg,B2=0.4mg,C=400mg
アセロラ:1kg800円
1kgあたり…ビタミンB1=0.6mg,B2=1mg,C=600mg
わかめ:1kg2000円
1kgあたり…ビタミンB1=4mg,B2=6mg,C=100mg
りんご:1kg500円
1kgあたり…ビタミンB1=0.5mg,B2=0.5mg,C=200mg
0099デフォルトの名無しさん
NGNGって1kgもわかめ食えないか
0100M.B.
NGNGまず、「お願いします」くらい書け。
ついでに「線形計画法」でググって、少しくらい努力した跡を見せろ。
ついでに、宮沢賢治についてググってみろ(ビタミンB1、B2、C を
窒素・燐酸・カリに置き換えれば、そのまま肥料の計算になる。
宮沢賢治が農村の学校で数学を教えていたというのは知ってるだろ?)。
さらに言えば、カーマーカー法とかについても調べてみろ。
線形計画法の高速化手法についていろいろ学べるはずだ。
てなワケで、再提出。
0101デフォルトの名無しさん
NGNGなおaが0のときは"ケイサンデキズ"と表示せよ。
またa,b,xは実数型である。
0102M.B.
NGNG解答者が見つけやすいように。
(これは曝し age )
0103M.B.
NGNGX = -b / a;
> またa,b,xは実数型である。
FORTRAN 以来、伝統的に実数を使うときは、
double を使うことになっている。
出題者を連れてこい。
小一時間問い詰めてやる。
0104デフォルトの名無しさん
NGNGどうせお前さんしか回答しないんだから、お前さんが専ブラ使えばいいだけじゃない
0105デフォルトの名無しさん
NGNGいや、そんなことはない。
神もいるぞ。
0107デフォルトの名無しさん
NGNGどなたか助けてください。
以下課題文です。
l(エル)xm 行列 A とmxn 行列 B の積 A*B を計算して行列 C に格納し、
画面表示するプログラムを作成せよ。
ただし、次の条件を満たしていること。
1. データを与える部分の行列の次元が変わっても動作するようにプログラムを書くこと。
すなわち次元を具体的数値で与えずにプログラムを記述せよ、ということである。
実際に与える(最終的)値は l(エル), m, n≧3 で, かつすべて異なること (l(エル)≠m≠n≠l(エル))。
2. 行列 A と B の成分はどちらも(一般に小数点をもつ, つまり整数ではない)
実数データとして各自が適当な桁数で、配列データの初期化を使って与えよ。 小数点以下が.0ばかりではダメ。
3. 行列の積を計算する部分と、行列の成分を出力する部分はそれぞれ、
行列(2次元配列)を引数にもつ、別の独立したメソッド(型は void. )として作ること。
したがって積のメソッドと出力のメソッドの計2つを作ることになる。
4. 行列 C の成分を求める積和の部分には
部分和用の変数を1つだけ導入し複合代入演算子を使って
最後まで積和を完全に求め終わってから、最後に配列要素に格納すること。
積和を求め終わるまでは指定の配列要素に格納する必要がないのだから、
ループ中に何度も配列要素を呼び出すよりその方が効率がいいのである。
また部分和用の変数は必ず初期化する必要がある。
5. 各自で与えたデータとそれによる計算結果が下の結果になるように出力せよ。
成分の表示はfor文を使って出力すること。
0108デフォルトの名無しさん
NGNG(゚д゚) いままで本気で一人だと思ってた
0109デフォルトの名無しさん
NGNG気のせいか俺も同じ課題出てるぞ。
同じ学校か。
0110デフォルトの名無しさん
NGNG何大?
0111109
NGNG内輪ネタスマソ
0112>>107 その1
NGNGpublic class HW18 {
static JFrame frame = new JFrame();
static JPanel[] panel = new JPanel[] {new JPanel(), new JPanel(), new JPanel()};
static int l, m, n;
static double[][] A, B, C;
public static void main(String[] args) {
Box box=Box.createVerticalBox(); JScrollPane scr=new JScrollPane(); scr.getViewport().add(box);
frame.getContentPane().add(scr); JPanel pane1=new JPanel();
panel[0].setBorder(BorderFactory.createRaisedBevelBorder()); pane1.add(panel[0]);
panel[1].setBorder(BorderFactory.createRaisedBevelBorder()); pane1.add(panel[1]);
JPanel pane2=new JPanel(); panel[2].setBorder(BorderFactory.createRaisedBevelBorder()); pane2.add(panel[2]);
JPanel pane0=new JPanel();
final JSpinner[] spn = new JSpinner[] {new JSpinner(), new JSpinner(), new JSpinner()};
final JButton[] btn = new JButton[] {new JButton("行列初期化"), new JButton("行列計算")};
pane0.add(new JLabel(" l ")); pane0.add(spn[0]); pane0.add(new JLabel(" m ")); pane0.add(spn[1]);
pane0.add(new JLabel(" n ")); pane0.add(spn[2]); pane0.add(spn[2]); pane0.add(btn[0]); pane0.add(btn[1]);
box.add(pane0); box.add(pane1); box.add(pane2);
btn[0].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Set numset = new TreeSet();
for(int i = 0; i < spn.length; ++i) {
Integer in = (Integer) spn[i].getValue();
if(in.intValue() < 3 || numset.contains(in)) return;
if(i==0) l=in.intValue(); else if(i==1) m=in.intValue(); else n=in.intValue();
numset.add(in);
}
0113>>107 その2
NGNGfor(int x = 0; x < l; ++x) {
for(int y = 0; y < m; ++y) {
double val = Math.random() * 10;
if(String.valueOf(val).length()>6) val=Double.parseDouble(String.valueOf(val).substring(0,6));
A[x][y] = val; panel[0].add(new Label(String.valueOf(val)));
}
}
B = new double[m][n]; panel[1].removeAll(); panel[1].setLayout(new GridLayout(m,n));
for(int x = 0; x < m; ++x) {
for(int y = 0; y < n; ++y) {
double val = Math.random() * 10;
if(String.valueOf(val).length()>6) val=Double.parseDouble(String.valueOf(val).substring(0,6));
B[x][y] = val; panel[1].add(new Label(String.valueOf(val)));
}
}
frame.validate();
}
});
btn[1].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
compute(A, B);
show(C);
}
});
frame.setSize(640,480); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true);
}
0114>>107 その3
NGNGC = new double[l][n];
panel[2].removeAll();
panel[2].setLayout(new GridLayout(l, n));
for (int a = 0; a < l; ++a) {
for (int b = 0; b < n; ++b) {
double val = 0;
for (int c = 0; c < m; ++c) {
val += A[a][c] * B[c][b];
}
if (String.valueOf(val).length() > 12) {
val = Double.parseDouble(String.valueOf(val).substring(0, 12));
}
C[a][b] = val;
}
}
}
static void show(double[][] C) {
for (int a = 0; a < l; ++a) {
for (int b = 0; b < n; ++b) {
panel[2].add(new Label(String.valueOf(C[a][b])));
}
}
frame.validate();
}
}
0115古代帝國富士皇朝総帥・伯壬旭
NGNG上記のコードを全部コピペしてコンパイルしてください。
上の欄の、l m n 3つの数値入力欄に好きな数字を入れて、行列初期化ボタンを
押すと、A、B二つの行列が出ます。行列計算ボタンを押すと
二つの行列の積の行列Cが下にでます。
(注) l m n の数値入力欄に、3未満の数値、又は重複する数値を入れて
行列初期化ボタンを押しても何も実行されません。(問題文の仕様による)
0116出雲帝國富士皇朝帝士
NGNGコードを見た範囲内だと、C言語上がりのハッカーと
業務系経験者の設計屋と、
言語処理系とかに通じた理論屋が、
ごっちゃに書いてる可能性は否定できないと
思われ。
0117デフォルトの名無しさん
NGNG十字帝國ザイナスティアともいうらしい
0118デフォルトの名無しさん
NGNG↑お願いします
0119M.B.
NGNGそれに n の最大値をどこまで取るか教えれ。
0120デフォルトの名無しさん
NGNG初期値と係数はテキストフィールドで設定できるようにする。
グラフの描画部分は最小値と最大値をテキストフィールドで設定できるようにする。
値は配列ではなくVectorで保持し、描画の必要に応じて漸化式を計算する。
こんな感じでお願いします。
0121M.B.
NGNG>>118 を見た限りだと、漸化式を計算する部分が分からんように
思えたのだが、
>>120 のカキコを見ると、直(もろ)に GUI の話なのだが。
「わからない部分」をはっきりさせると同時に、
前提条件は明らかにしる。
ついでながら問題を見た感じでは、
カオス関連の話であるようにも思われるので、
横軸に a、縦軸に x の分布域をプロットしたほうが、
題意に沿うような気がするがいかがなものか。
0122デフォルトの名無しさん
NGNGをEnterを押しても実行でできるようにしたいんですが
よろしくお願いします。
0123デフォルトの名無しさん
NGNG実行できませんでした。(**)
アクティブエディターにはメインが含まれていません。
ってコメントがでますがどうすればよいのですか?
0124デフォルトの名無しさん
NGNGきみ、質問の日本語がほとんど何を聞きたいのか分からんぞ。
勝手に「ボタンをデフォルトボタンのように、キーボードのエンターで動くようにしたい」と
解釈する。
JFrameにgetRootPane()というメソッドがある。これでRoot Paneが取得できる。Root Paneに
setDefaultButton()というメソッドがあるので、デフォルトボタンにしたいJButtonのインスタンス
を渡せばいい。
0125デフォルトの名無しさん
NGNG1: public class GCTest1 {
2: public static void main(String[] args) {
3: String str = "こんにちは";
4: str = "さようなら";
5: System.out.println(str);
6: }
7: }
4行目の後らしい?まじか??
0126デフォルトの名無しさん
NGNG0127>>118 その1
NGNGimport java.awt.event.*; import java.awt.*; import java.awt.image.*;
public class HW19 {
static JTextField[] tfd = new JTextField[4]; static JLabel graph = new JLabel(); static List list = new ArrayList();
static BufferedImage img = new BufferedImage(516,516, BufferedImage.TYPE_INT_ARGB);
public static void main(String[] args) {
JFrame frame = new JFrame(); JPanel panel = new JPanel();
String[] lab = {"0.1", "初期値", "3.95", "係数", "0", "最小値", "30", "最大値"};
for(int i = 0, k = 0; i < tfd.length; ++i) {
tfd[i] = new JTextField(lab[k++]); tfd[i].setPreferredSize(new Dimension(40, 20));
panel.add(new JLabel(lab[k++])); panel.add(tfd[i]);
}
JButton btn = new JButton("グラフ描画"); panel.add(btn);
btn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { drawGraph(); } });
graph.setIcon(new ImageIcon(img));
frame.getContentPane().add(panel, BorderLayout.NORTH); frame.getContentPane().add(graph);
frame.pack(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true);
Graphics2D g = img.createGraphics(); g.setColor(Color.white); g.fillRect(0, 0, img.getWidth(), img.getHeight());
g.dispose(); graph.repaint();
}
0128304
NGNG全部が必要ではなく(この場合MAX/dt=10000)、1、500、1000…
というように500刻みにするにはどうすればいいのですか?
double x;
double dt=0.01;
int MIN=0;
int MAX=100;
for(x<MIN;X<=MAX;X+=dt){
if(xを500刻みで表示させたい。)
printf("hogehoge");
}
}
ifの中身を教えてください。お願いします。
0129>>118 その2
NGNGdouble init, a; int lead, anch; list.clear();
try {
init = Double.parseDouble(tfd[0].getText()); a = Double.parseDouble(tfd[1].getText());
lead = Integer.parseInt(tfd[2].getText()); anch = Integer.parseInt(tfd[3].getText());
} catch (NumberFormatException e) { return; }
double crt = init, prev = 0, max = 0; int idx = 0;
while(idx < lead) {
prev = crt; crt = a * crt * (1 - crt); ++idx;
}
while(idx < anch) {
list.add(new Double(crt)); crt = a * crt * (1 - crt); ++idx; if(crt > max) max = crt;
}
double pt = 500 / max; Graphics2D g = img.createGraphics();
g.setColor(Color.white); g.fillRect(0, 0, img.getWidth(), img.getHeight());
g.setColor(Color.black); g.drawRect(16, 0, 500, 500);
g.drawString("0.0", 0, 512); String ns = String.valueOf(max);
if(ns.length() > 3) ns = ns.substring(0, 3); g.drawString(ns, 0,12); g.drawString(ns, 500,512);
Point prevpt = null, crtpt = null; int x, y; double num = ((Double)list.get(0)).doubleValue();
for(int i = 1; i < list.size(); ++i) {
x = (int) (num * pt) + 16; num = ((Double)list.get(i)).doubleValue(); y = (int) (500 - num * pt);
crtpt = new Point(x, y);
if(i > 1) {
g.drawLine(prevpt.x, prevpt.y, crtpt.x, crtpt.y);
} else {
g.setColor(Color.red); g.fillOval(crtpt.x - 4, crtpt.y - 4, 8, 8); g.setColor(Color.blue);
}
prevpt = crtpt;
}
g.setColor(Color.green); g.fillOval(crtpt.x - 4, crtpt.y - 4, 8, 8); g.dispose(); graph.repaint();
}
}
0130古代帝國富士皇朝総帥・伯壬旭
NGNG上記の2つのコードを全部コピペしてコンパイル。
適当に数値を設定して、グラフ描画ボタンを押すだけです。
0131古代帝國富士皇朝総帥・伯壬旭
NGNG自分がいつも作成プログラムを置いてるフォルダを、
「C:\Documents and Settings\User\MyProg」とすると
そのフォルダに「hw17」フォルダを作成する。
そして、「C:\Documents and Settings\User\MyProg\hw17」フォルダに
コンパイルして出来た全classファイルをコピーする。
そして、「java -cp "C:\Documents and Settings\User\MyProg" hw17.HW17」
と実行すればOK
0132デフォルトの名無しさん
NGNGif(Max/dt%500 == 0) {
printf("hogehoge");
}
とすればOK
0133デフォルトの名無しさん
NGNGif(x%500 == 0) {
printf("hogehoge");
}
でいいかと。
0134M.B.
NGNGそれダメ。
500も500.01も500.02も(ry)500.99も、ぜんぶ出力されちまう。
0135M.B.
NGNGよく見りゃ >>128 はムチャクチャやんけ。
> 全部が必要ではなく(この場合MAX/dt=10000)、1、500、1000…
> というように500刻みにするにはどうすればいいのですか?
……って、初期値は 1 じゃねぇだろ。0 だ。
> int MIN=0;
> int MAX=100;
> for(x<MIN;X<=MAX;X+=dt){
> if(xを500刻みで表示させたい。)
……って、x の最大値は 100 だから 500 まで行かないだろ。
要するに、
for(int cnt = 0, x = Min;x <= MAX;cnt += 1, x += dt) {
としておいて、
if ((cnt % 500) == 0) {
で判断すればいいんじゃねぇの?
0136M.B.
NGNGfinal double MIN = 0.0;
final double MAX = 100.0;
とかにしといたほうがいいように思う。
0137デフォルトの名無しさん
NGNGメインが無いというエラーがでます。
どうすればいいのですか?
0138118
NGNG誰?
>>119
aはアプレット上から任意に設定
横軸x[n]の最大は1で、ロジスティックモデルの2次関数とx[n]=x[n+1]の直線を使って
x[0](横軸をクリックした地点)からx[n]の推移の奇跡を描くアプレット・・
これでイミ通じますか・・
>>121
オレと120は別人で・・・
0140デフォルトの名無しさん
NGNG自分に誰とか言ってどうするw
記憶喪失症か? 性質の悪い釣りだったのか?
0141>>138 その1
NGNGimport java.awt.event.*; import java.awt.*; import java.awt.image.*;
public class HW19 {
static JTextField tfd_a = new JTextField("3.95"), tfd_m=new JTextField("30");
static JLabel graph = new JLabel(); static List list = new ArrayList();
static BufferedImage img = new BufferedImage(516,516, BufferedImage.TYPE_INT_ARGB);
public static void main(String[] args) {
JFrame frame = new JFrame(); JPanel panel = new JPanel();
panel.add(new JLabel("係数")); tfd_a.setPreferredSize(new Dimension(40, 20)); panel.add(tfd_a);
panel.add(new JLabel("最大項数")); tfd_m.setPreferredSize(new Dimension(40, 20)); panel.add(tfd_m);
graph.setIcon(new ImageIcon(img));
graph.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if(e.getY()<500) return; drawGraph(e.getX() / 50);
}
});
frame.getContentPane().add(panel, BorderLayout.NORTH); frame.getContentPane().add(graph);
frame.pack(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true);
clearGraph();
}
static void clearGraph() {
list.clear();
Graphics2D g = img.createGraphics(); g.setColor(Color.white); g.fillRect(0, 0, img.getWidth(), img.getHeight());
g.setColor(Color.white); g.fillRect(0, 0, img.getWidth(), img.getHeight());
g.setColor(Color.black); g.drawRect(16, 0, 500, 500);
String[] col = {"0.0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1.0"};
int x=0, y=512; for(int i = 0; i < col.length; ++i) { g.drawString(col[i], x,y); x+=50; }
x=0; y=12; for(int i = 10; i > 0; --i) { g.drawString(col[i], x,y); y+=50; }
g.dispose(); graph.repaint();
}
0142>>138 その2
NGNGclearGraph();
double a; int max;
try {
a = Double.parseDouble(tfd_a.getText()); max = Integer.parseInt(tfd_m.getText());
} catch (NumberFormatException e) { return; }
double crt = (double) init / 10;
for(int i = 0; i < max; ++i) {
list.add(new Double(crt)); crt = a * crt * (1 - crt);
}
Graphics2D g = img.createGraphics();
g.setColor(Color.blue); g.drawRect(50*init, 500, 24, 12);
Point prevpt = null, crtpt = null;
double num = ((Double)list.get(0)).doubleValue();
for(int i = 1; i < list.size(); ++i) {
int x = (int) (num * 500 + 16); num = ((Double)list.get(i)).doubleValue();
int y = (int) (500 - num * 500);
crtpt = new Point(x, y);
if(i > 1) {
g.drawLine(prevpt.x, prevpt.y, crtpt.x, crtpt.y);
} else {
g.drawLine(init*50+16, 500, crtpt.x, crtpt.y);
g.setColor(Color.red); g.fillOval(crtpt.x - 4, crtpt.y - 4, 8, 8);
g.setColor(Color.blue);
}
prevpt = crtpt;
}
g.setColor(Color.green); g.fillOval(crtpt.x - 4, crtpt.y - 4, 8, 8);
g.dispose(); graph.repaint();
}
}
0143古代帝國富士皇朝総帥・伯壬旭
NGNG上記の2つのコードを全部コピペしてコンパイル。
適当に数値を設定して(例としての設定値は始めからある)、
下のX軸のどれか目盛をクリックすると、その位置の数値を
初期値としてグラフ描写が開始します。
0144古代帝國富士皇朝総帥・伯壬旭
NGNG>>131のとおりに実行してください。
メインが無いなんてそんな事はありえません。
コードに大きくstatic void mainと書いてあるのですから。
0145118
NGNGありがとうございます
0146デフォルトの名無しさん
NGNG用意されているのでわかるのですが
Eclispeを使わないそれこそJDKだけでJavaを書いていくときの
デバッグ方法とかどのようなものがあるのでしょうか?
System.out.println()で変数を出すのは思いつくのですが
0147デフォルトの名無しさん
NGNGassert。
0148デフォルトの名無しさん
NGNGjdbというコマンドラインのデバッガがJDKについてくる。
でもEclipseとかのグラフィカルなデバッガとくらべると
拷問のように使いずらい。
サーバーサイドのリモートデバッグで
他に手が無くて使ったことはあるけど。
まあ最後の手段だな。
0149デフォルトの名無しさん
NGNGできました。ありがとうございます。
0150M.B.
NGNGいまだにテキストエディタと
javac & java.exe のエラーメッセージだけで開発してる
漏れって
アフォ? (Eclispe 入れたんだけど全然使ってねぇ)
0151M.B.
NGNG処理系依存システムがらみの不具合を追っかけ回すとか、
他人が書いた大量のコードを緊急にデバッグする障害対応とか、
そういうんでなければ、
デバッガに頼る前に、まずコードを洗濯したほうがぜってー早いぞ。
とりあえず構造化プログラミングとか心がけてみ。
0152デフォルトの名無しさん
NGNG0153デフォルトの名無しさん
NGNG↓
構造化プログラミング
↓
オブジェクト指向プログラミング
↓
アスペクト指向プログラミング
↓
マルチディメンショニングプログラミング
0154おながいします
NGNGpublic void init(){
add( makeContainer("test") );
}
public Component makeContainer(String text){
Container newContainer = new Container();
newContainer.setLayout(new FlowLayout());
newContainer.add( new Label(text) );
return newContainer;
}
}
を Applet で実行すると
java.lang.InstantiationError: java/awt/Container
at test2.makeContainer
at test2.init
at com/ms/applet/AppletPanel.securedCall0
at com/ms/applet/AppletPanel.securedCall
at com/ms/applet/AppletPanel.processSentEvent
at com/ms/applet/AppletPanel.processSentEvent
at com/ms/applet/AppletPanel.run
at java/lang/Thread.run
と Java コンソールに出力されますが、appletviewer だとエラーが出ません。
どういう原因があるのでしょうか?
0155デフォルトの名無しさん
NGNG(配列の中身)
trump[0] = スペードのエース
trump[1] = スペードの2
・
・
trump[12] = スペードのキング
trump[13] = ハートのエース
・
・
trump[51] = クラブのキング
trump[52] = ジョーカー
trump[53] = ジョーカー
0156デフォルトの名無しさん
NGNGランダムにソートしろってこと?
0157デフォルトの名無しさん
NGNG0158デフォルトの名無しさん
NGNG0159M.B.
NGNGそれも前スレでやったような気がするが。
0160デフォルトの名無しさん
NGNGなんかしら本末転倒のような気もするな。
質問者つーか依頼者は、
なるべく解りやすく問題を提示しれ。
もっともわからんから質問するんだろうが。
0161デフォルトの名無しさん
NGNGpublic static final int NUM = 54;
public static int trump[] = new int[NUM];
public static void main(String[] args) {
for (int i = 0; i < NUM; i++){
trump[i] = i;
}
print(trump);
int i1, i2;
for (int i = 0; i < NUM*10; i++){
i1 = (int)Math.floor(Math.random()*NUM);
i2 = (int)Math.floor(Math.random()*NUM);
swap(i1, i2);
}
print(trump);
}
public static void swap(int i1, int i2){
int tmp = trump[i1];
trump[i1] = trump[i2];
trump[i2] = tmp;
}
public static void print(int[] t){
for (int i = 0; i < NUM; i++){
System.out.println(i + " = " + t[i]);
}
}
}
0162デフォルトの名無しさん
NGNGpublic class Sample {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
for (int i = 0; i < 54; i++){
list.add(i);
}
Collections.shuffle(list);
System.out.println(list);
}
}
0163デフォルトの名無しさん
NGNGここにあるじゃんけんのプログラムを少し機能を省略しながら作ったのですが
エラーが出て動きません。
コンパイルは通るのですが・・・・
実行すると Exception in thread "main" java.lang.NoClassDefFoundError: Janken/class
というエラーが出ます。
APIでエラーの内容を調べたのですがよくわかりません・・・
アドバイスいただきたいです。
下にソース張りますのでよろしくお願いします。
0164デフォルトの名無しさん
NGNGpublic class Janken{
public static void main(String args[]){
int Hand;
int ComHand;
Me me = new Me();
Computer com = new Computer();
Judge judge = new Judge();
Hand=me.GetHandData();
if(Hand!=0){
ComHand=com.GetHandData();
Hand=judge.judgement(Hand,ComHand);
}
}
}
0165デフォルトの名無しさん
NGNG0166デフォルトの名無しさん
NGNGpublic class Judge{
public int judgement(int my,int you){
if(my==you){
System.out.println("引き分け");
return(0);
}
else if(my==2 && you==1 || my==3 && you==2 || my==1 && you==3){
System.out.println("負け");
return(-1);
}
else{
System.out.println("勝ち");
return(1);
}
}
}
0167163
NGNGありがとうございます。
あとここ見ててわからないところがいくつかあるのですが・・・
まずMe.javaで
入力ストリームで count=reader.read(cstr,0,1);
という風に受け取っていますが、この count てのは何のためにあるのでしょうか?
他で使われてる様子もないのですが・・・
Janken.javaの Hand=judge.hantei(Hand,ComHand); てとこも同じです。
あと返り値のところ、
return Integer.parseInt(new String(cstr));
となっていますが、 new String(cstr) てのはなんなんでしょうか?
自分でやったときは return Integer.parseInt(cstr[0]);
とやったのですがだめでした・・・
最後にComputer.java。
Hand=Math.round((Math.random()*3+1));
のところで 精度が落ちている可能性 というエラーがでるのですが
このサイトのソースはおかしいのでしょうか?
一応下のようにしたらうまくいきました。
0168163
NGNGpublic class Computer{
public int GetHandData(){
int Hand;
Hand=Math.round((Math.random()*3+1));
switch((int)Hand){
case 1:
System.out.println("コンピュータはグーを出しました。");
break;
case 2:
System.out.println("コンピュータはチョキを出しました。");
break;
case 3:
System.out.println("コンピュータはパーを出しました。");
break;
}
return((int)Hand);
}
}
0169163
NGNGこっちでした
// Computer.java
public class Computer{
public int GetHandData(){
long Hand;
Hand=Math.round((Math.random()*3+1));
switch((int)Hand){
case 1:
System.out.println("コンピュータはグーを出しました。");
break;
case 2:
System.out.println("コンピュータはチョキを出しました。");
break;
case 3:
System.out.println("コンピュータはパーを出しました。");
break;
}
return((int)Hand);
}
}
0170デフォルトの名無しさん
NGNG20点くらい
0171デフォルトの名無しさん
NGNGHand
は
hand
の方がいい。
0172デフォルトの名無しさん
NGNGだから。
わからなけりゃ参考書嫁
0173M.B.
NGNG> 精度が落ちている可能性 というエラーがでるのですが
デフォルトが double なので、黙って int にするとそう言われる。
int にするときに明示的に int にキャストすると黙る。
0174デフォルトの名無しさん
NGNGTABキーや矢印キーがkeyPressed() , keyReleased()で取得できません。
AppletviewerやMicrosoftVM では正常に動作するのに、
SUNのVMだと動きませんが、解決方法はありますか?
0175デフォルトの名無しさん
NGNG0176丸投げ君
NGNG宿題が終わらずなきそうです。
宿題
スーパークラスとサブクラスを用いてペットのデータをアレイにして
表示するプログラムをつくりなさい。
ペットは2種類まで(例、犬と猫)で、サブクラスは犬と猫、二つつくりなさい。
犬のサブクラス(DOG)はスーパークラスからinheritするほかにoccupation(仕事)の欄をつけくわえなさい。
猫のクラスはスーパークラスから全て引き継ぎなさい。
入力はユーザーによって行われ、入力が済んだあと、ペット一匹づつのデータが表示されます。
何匹のペットのデータを入力するかはユーザーによって決定されます(arrayサイズはユーザーが決める)。
outputの例
PET NAME:たろう
PET TYPE:犬
PET FAMILY:柴犬
PET COLOR:茶色
PET AGE:4
OCCUPATION:盲導犬
PET NAME:みけ
PET TYPE:猫
PET FAMILY:三毛猫
PET COLOR:三毛
PET AGE:2
なお、猫のクラスはabstract methodを使いなさい。
0177丸投げ君
NGNGただつくっただけなのでまだこれからメソッド足したり訂正すると思います。
今はDOG(サブクラスをつくっていますが、スーパークラスの最後にいれた
abstract メソッドがいったいどういう動きをするのか理解していません。
アレイのコントロールにもさらさら自身がないので、泣きそうです。
具体的にまったく理解不能な箇所にさしかかったらまた書き込みさせていただきます。
お暇なかた、助けてください。
お願いします。
0178丸投げ君
NGNG//ABSTRACT SUPERCLASS FOR ALL PETS
public abstract class PETS
{
//DATA MEMBER
protected String pName; //name of pet
protected String pType; //type of pet
protected String pFamily; //pet family
protected String pColor; //color of pet
int pAge; //age of pet
//METHOD MEMBER
//Constructor
public PETS(String name, String type, String family, String color, int age)
{
pName = name;
pType = type;
pFamily = family;
pColor = color;
pAge = age;
}
//ACCESSOR METHOD FOR name
public String getName()
{
return pName;
}//END getName()
0179丸投げ君
NGNG//ACCESSOR METHOD FOR type
public String getType()
{
return pType;
}//END getType()
//ACCESSOR METHOD FOR family
public String getFamily()
{
return pFamily;
}//END getFamily()
//ACCESSOR METHOD FOR color
public String getColor()
{
return pColor;
}//END getColor()
//ACCESSOR METHOD FOR age
public int getAge()
{
return pAge;
}//END getAge()
//ABSTRACT METHOD FOR CAT
public abstract String cat();
}//END PETS Class
0180丸投げ君
NGNGpackage PETS;
import staugIO.StaugIO;
//SUBCLASS DOG
public class DOG extends PETS
{
private String DOccupation;
StaugIO io = new StaugIO();
//CONSTRCUTOR TO INITIALIZE PET'S NAME, TYPE, FAMILY, COLOR, AGE
public DOG(String name, String type, String family, String color, int age)
{
super(name, type, family, color, age);
}
//CONSTRCUTOR TO INITIALIZE ALL DETA MEMBER in DOG CLASS
public DOG(String name, String type, String family, String color, int age, String Occupation)
{
super(name, type, family, color, age);
DOccupation = Occupation;
}
//UniqueAbility Method:ここでユーザーがarrayにデータ入力するさい
//に名前に犬といれたら、OCCPATIONを入力できるようにする。
public String UniqueAbility(String name)
{
}
//これはPETS Classにある最後のアブストラクトメソッド、まだ自分でこれがなんなのかよくわかってません。
public String cat()
{
//return cat;
}
}
0181丸投げ君
NGNGデータ入力のときに表示される画面は以下のようになります。
type = readString(”TYPE(DOG or CAT)を入力してください”);
family = readString("種類を入力してください”);
name = readString("名前を入力してください”);
これはスーパークラスに追加しました。
PETSクラス(スーパークラス)内のACCESSOR METHODの前に
setメソッド
public void setName()
{
name = readString("名前を入力してください”);
}
をつくりました。
0182>>176 その1
NGNGimport java.util.*; import java.util.List;
public class HW21 {
static List list = new ArrayList();
static JTextField[] tfd = {new JTextField(), new JTextField(), new JTextField(), new JTextField(), new JTextField()};
static JTextArea ta = new JTextArea(80,40);
static JComboBox cbx = new JComboBox(new Object[] {"犬", "猫"});
static void inputPetData() {
for(int i = 0; i < tfd.length ; i++) {
if(tfd[i].isEditable() && tfd[i].getText().trim().length() == 0) {
ta.append("入力されてないデータがあります\n\n"); return;
}
}
Pet pet;
if(cbx.getSelectedItem().equals("犬")) {
pet = new Dog(); ((Dog)pet).occupation = tfd[4].getText().trim();
} else {
pet = new Cat();
}
pet.name = tfd[0].getText().trim(); pet.family = tfd[1].getText().trim();
pet.color = tfd[2].getText().trim(); pet.age = tfd[3].getText().trim();
list.add(pet); ta.append(pet.name + "のデータを入力しました\n\n");
}
static void outputPetData() {
for(int i = 0; i < list.size(); i++) ta.append(((Pet)list.get(i)).toText());
}
static void clearPetData() {
list.clear(); ta.append("ペットのリストを全て削除しました\n\n");
}
0183>>176 その2
NGNGJFrame frame = new JFrame(); Box box = Box.createVerticalBox();
JPanel[] panel = {new JPanel(), new JPanel()};
JButton[] btn = {new JButton("ペット登録"), new JButton("全登録ペット出力"), new JButton("全登録削除")};
btn[0].addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { inputPetData(); } });
btn[1].addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { outputPetData(); } });
btn[2].addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { clearPetData(); } });
panel[0].add(btn[0]); panel[0].add(btn[1]); panel[0].add(btn[2]);
panel[0].add(new JLabel("TYPE")); panel[0].add(cbx);
cbx.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
if(cbx.getSelectedItem().equals("犬")) tfd[4].setEditable(true);
else tfd[4].setEditable(false);
}
});
String[] arg = {"NAME", "FAMILY", "COLOR", "AGE", "OCCUPATION"};
for(int i = 0; i < tfd.length; i++) {
tfd[i].setPreferredSize(new Dimension(80,20));
panel[1].add(new JLabel(arg[i])); panel[1].add(tfd[i]);
}
JScrollPane scroll = new JScrollPane(ta);
for(int i = 0; i < panel.length; i++) box.add(panel[i]); box.add(scroll);
frame.getContentPane().add(box); frame.setSize(700,500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true);
}
}
0184丸投げ君
NGNGこのメソッドの中で
public String UniqueAbility(String name)
{
}
データがarrayに入力されるさいに犬であれば
データ入力のコマンドに
職業の欄を追加したいのですが、どのようにやったらいいかわかりません。
ヒントだけでもいいのでどなたかお答えいただけないでしょうか?
0185>>176 その3
NGNGString name;
String family;
String color;
String age;
abstract String toText();
}
class Dog extends Pet {
String occupation;
String toText() {
return "PET NAME:" + name +"\nPET TYPE:犬" + "\nPET FAMILY:" + family +
"\nPET COLOR:" + color + "\nPET AGE:" + age + "\nOCCUPATION:" +
occupation + "\n\n";
}
}
class Cat extends Pet {
String toText() {
return "PET NAME:" + name +"\nPET TYPE:猫" + "\nPET FAMILY:" + family +
"\nPET COLOR:" + color + "\nPET AGE:" + age + "\n\n";
}
}
0186古代帝國富士皇朝総帥・伯壬旭
NGNG上記の3つのコードを全部コピペしてコンパイルしてください。
実行するとウィンドウが出ます。
0187デフォルトの名無しさん
NGNG0188丸投げ君
NGNGありがとうございます。
高度すぎてまるで理解できませんが、頑張ってみます。
JPテキストは使わない方向でつくることにしました。
コピペしてコンパイルしたところ、sbuclassが作られていないので動作しませんでした。
つくってみます。
自分の環境はネットビーンズIDE3.6です
これで動作しないと採点してやらないと言われてます(泣
GUIはstaugIOが適当にやってくれるので必要ありません。
お手数かけてもうしわけありませんでした。
まだわからないところがありますが手探りでやっています。
これからまだしばらくお付き合いくださる方がいらっしゃったら、うれしく思います。
0189丸投げ君
NGNGどうやらうまくコンパイルできないようです。
サブクラスを作成して、コンパイルしてみましたがウィンドウが
たちあがりませんでした(エラーはありません、感動しましたw)。
立ち上がらないのは環境のせいだと思います。
今からしばらく古代帝國富士皇朝総帥・伯壬旭の書かれたコードを
じっくりよんで自分が何がわかっていないのか勉強してまいります。
さしでがましいようですが、今自分がGUIをコントロールするのに
つかっているクラスパッケージを貼っていきます。
自分のような初心者には非常に便利です。
Andrew C. Staugaardさんという人がつくったらしいです。
abstractの意味がようやくつかめてまいりました。
0190デフォルトの名無しさん
NGNGうちではあっさりコンパイルして実行できたぞ。1〜3まで全部ペーストしたか?
0191古代帝國富士皇朝総帥・伯壬旭
NGNG丸投げとの文字を見て、一気にガーッとコードを書いて貼り付けて
しまいました。。。この場合はコンソールよりもGUIの方が楽だったので。。
環境によっては、Swingでも表示されないとは残念・・・
>>190
わざわざコンパイルしてくれての補足どうもです。
0192デフォルトの名無しさん
NGNG小数点の計算もできるようにしたいのですがどうすればいいのでしょうか?
http://49uper.com:8080/html/img-s/24313.zip
お願いします。
0193デフォルトの名無しさん
NGNG変数memを、doubleに、inputValueをDouble.parseDouble()で
数値化すればよいのでは・・・・・・・・
0194デフォルトの名無しさん
NGNGやりましたが小数点以下がちゃんと計算できません。
あと小数点を入力するとき.が表示されないです。
どうすればよいのでしょうか?
http://49uper.com:8080/html/img-s/24319.zip
0195M.B.
NGNG漏れも同じことを考えて BigDecimal 版を作ろうとしたが、
使い方がよくわからんので結局 BigInteger とオーダーを
自分で管理していたりするのだ。
BigDecimal についてもうちょい調べてみるので、
期待せずに待っておってくれ。
0196デフォルトの名無しさん
NGNG90行目の下に
pointButton.addActionListener(this);
を挿入し
113行目に
if (button == pointButton) {
if (!numInput) {
return;
}
inputValue = inputValue + ".";
}
else
(この次にはif (button == plusButton) {が続く)
を挿入してみてください。
0197丸投げ君
NGNGどうもです。
GUIは指定があってStaugIOパッケージをつかったものでないと駄目です。
ですので折角つくっていただいたのにGUIは別につくらねばです。
それは問題ないのですが、
今現在mainでくるしんで苦しんでおります。
0198丸投げ君
NGNGimport staugIO.StaugIO
public class actionPETS
{
public static void main(String[] args)
{
StaugIO io = new StaugIO();
DOG dog = new DOG("","","","",0,"");
CAT cat = new CAT("","","","",0);
int choice;
int arraySize =0;
PETS array[] = new PETS[arraySize];
arraySize = io.readInt("Enter the Number of Pets");
for (int i = 0; i<arraySize; ++i)
{
choice = io.readInt("Enter the Type of Pet. 1 for Dog, 2 for Cat");
switch(choice)
{
case '1':break;
case '2':break;
default :io.writeInfo("This is not valid entry");
}
++i;
}
}
}
0199丸投げ君
NGNG呼び出し方がわかりませんです。
DOGとCATクラスはPETSクラスのサブクラスです。
0200デフォルトの名無しさん
NGNG0201丸投げ君
NGNGわかりにくくてすみません。
DOGクラスとキャットクラスで行う動作をそこで発生させたいということです。
プログラミング用語が不自由なのでわかりにくくてもうしわけありません。
http://49uper.com:8080/html/img-s/24344.zip
こちらに今までつくったものをあげてみました。
0202丸投げ君
NGNGchoice = io.readInt("Enter the Type of Pet. 1 for Dog, 2 for Cat");
switch(choice)
{
case '1':dog();break;
case '2':cat();break;
これは間違った表記ですが、こんな感じで呼び出したクラスをそこで
実行させたいです。
そういうことは可能なんでしょうか?
0203丸投げ君
NGNG0204デフォルトの名無しさん
NGNGまたお願いします;;
問題
public class mondai {
public static void main(String[] args) {
for (int n = -8; n <= 8; n++) {
printGraph(n * n);
}
}
public static void printGraph(int x) {
int i;
for (i = 0; i < x; i++) {
System.out.print("*");
}
System.out.println("");
}
}
これを参考にして、ボールを投げた時の放物線を描け。
メソッドprintGraphを変化させて使う。
という問題です
お願いします(*- -)(*_ _)ペコリ
0205M.B.
NGNGわかった。やっぱアカン。(^_^!)
BigDecimal は固定小数点形式なので、浮動小数点をサポートするには、
やっぱり BigInteger を自分で管理しないといかんらしい。
0206デフォルトの名無しさん
NGNG話が見えてこない。
問題文を書いてごらん。
0207デフォルトの名無しさん
NGNG???
public class mondai {
public static void main(String[] args) {
for (int n = -8; n <= 8; n++) {
printGraph(n * n);
}
}
public static void printGraph(int x) {
x = Math.abs(64 - x);
int i;
for (i = 0; i < x; i++) {
System.out.print("*");
}
System.out.println("");
}
}
0208デフォルトの名無しさん
NGNG0209DESについて
NGNGhttp://www.ep.u-tokai.ac.jp/~kikn/Java2003/text-JCE.html
などを参考にはしてるのですが、実行の方法が良く分かりません。
宜しくお願いします。
0210M.B.
NGNG書いてあるまんまなんだがな。
Java の入門書読んだほうが早くね?
0211デフォルトの名無しさん
NGNG教えてくださいと言っても、あまりに抽象的すぎます。
何をどうしてもらいたいのか具体的に書いてください。
そのリンク先にある、宿題問題の回答をここに書いてくれと
いう事なのですか?
0212209
NGNG2
3public class DES{
4public static void main(String[] argv){
5try{
6KeyGenerator kg = KeyGenerator.getInstance("DES");
7SecretKey sk = kg.generateKey();
8byte[] m = "Hello Des World".getBytes();
9
10Cipher ch = Cipher.getInstance("DES/ECB/PKCS5Padding");
11ch.init(Cipher.ENCRYPT_MODE, sk);
12byte[] c = ch.doFinal(m);
13
14ch.init(Cipher.DECRYPT_MODE, sk);
15byte[] m2 = ch.doFinal(c);
16}catch(Exception e){
17System.out.println(e);
18}
19}
20}
HPにあるこのプログラムはどの部分を暗号化するプログラムなのでしょうか?
それすらも分からない落ちこぼれです。
また、このプログラムを実行するにはどうすればよいでしょう?
java DES ???とコマンドプロンプトに入力すればよいのですか?
0213209
NGNGimport javax.crypto.*;
public class DES{
public static void main(String[] argv){
try{
KeyGenerator kg = KeyGenerator.getInstance("DES");
SecretKey sk = kg.generateKey();
byte[] m = "Hello Des World".getBytes();
Cipher ch = Cipher.getInstance("DES/ECB/PKCS5Padding");
ch.init(Cipher.ENCRYPT_MODE, sk);
byte[] c = ch.doFinal(m);
ch.init(Cipher.DECRYPT_MODE, sk);
byte[] m2 = ch.doFinal(c);
}catch(Exception e){
System.out.println(e);
}
}
}
0214デフォルトの名無しさん
NGNG"Hello Des World"の文字列を、getBytes()でmに格納し
その文字列を
ch.init(Cipher.ENCRYPT_MODE, sk);
byte[] c = ch.doFinal(m);
で暗号化して、cに格納し
その暗号化されたバイト配列cを
ch.init(Cipher.DECRYPT_MODE, sk);
byte[] m2 = ch.doFinal(c);
で複合化して、m2に格納してるだけです。
実行は、
java -cp "DES.classファイルのあるフォルダ" DES
とコマンドプロンプトに入力します
0215212
NGNG有難うございます。
実行できました。
解説も分かりやすく助かりました。
0216M.B.
NGNG> ここまでソースコードだらけのスレもめずらしい・・・
素敵だろ(w
0217212
NGNG暗号化・複合化がきちんと行われているか確認できないので
import javax.crypto.*;
public class DES{
public static void main(String[] argv){
try{
KeyGenerator kg = KeyGenerator.getInstance("DES");
SecretKey sk = kg.generateKey();
byte[] m = "Hello Des World".getBytes();
Cipher ch = Cipher.getInstance("DES/ECB/PKCS5Padding");
ch.init(Cipher.ENCRYPT_MODE, sk);
System.out.println(m);
byte[] c = ch.doFinal(m);
System.out.println(c);
ch.init(Cipher.DECRYPT_MODE, sk);
byte[] m2 = ch.doFinal(c);
System.out.println(m2);
}catch(Exception e){
System.out.println(e);
}
}
}
とSystem.out.printlnを入れて確認できるようにしました。
これで実行すると、
[B@bfc8e0
[B@11d0a4f
[B@18fd984
となり暗号化・複合化ができてないように見えます。なぜなのでしょうか?
また、暗号化・複合化ができていることを目で確認するには
どうすればよいでしょうか?
何度も申し訳ありませんが、ご教授願います。
0218212
NGNG暗号化・複合化がきちんと行われているか確認できないので
import javax.crypto.*;
public class DES{
public static void main(String[] argv){
try{
KeyGenerator kg = KeyGenerator.getInstance("DES");
SecretKey sk = kg.generateKey();
byte[] m = "Hello Des World".getBytes();
Cipher ch = Cipher.getInstance("DES/ECB/PKCS5Padding");
ch.init(Cipher.ENCRYPT_MODE, sk);
System.out.println(m);
byte[] c = ch.doFinal(m);
System.out.println(c);
ch.init(Cipher.DECRYPT_MODE, sk);
byte[] m2 = ch.doFinal(c);
System.out.println(m2);
}catch(Exception e){
System.out.println(e);
}
}
}
とSystem.out.printlnを入れて確認できるようにしました。
これで実行すると、
[B@bfc8e0
[B@11d0a4f
[B@18fd984
となり暗号化・複合化ができてないように見えます。なぜなのでしょうか?
また、暗号化・複合化ができていることを目で確認するには
どうすればよいでしょうか?
何度も申し訳ありませんが、ご教授願います
0219デフォルトの名無しさん
NGNGSystem.out.println(m);
↓
for(int i=0; i<m.length; ++i) {
System.out.print(Integer.toHexString(m[i] & 0xff) + " ");
}
あとは、上記のmの部分をc、m2に置き換えて記述すればOK
文字列の元のバイトコード、暗号後のバイトコード、復号後のバイトコードが出る。
0220訂正
NGNG↓
for(int i=0; i<m.length; ++i) {
System.out.print(Integer.toHexString(m[i] & 0xff) + " ");
}
System.out.println();
0221デフォルトの名無しさん
NGNGttp://muimi.com/j/doclet/
ここを見て、とりあえずここにある二つのサンプルを実行しようとしたのですがうまくいきません・・・
このサンプルどおりに動かす手順を教えていただければ助かります。
とりあえず
MyDoclet.javaを javac MyDoclet.java とコンパイルして
javadoc -doclet hoge.MyDoclet -docletpath classes
-classpath classes;%JAVA_HOME%\lib\tools.jar -sourcepath src -private aaa
てのを丸写ししてみました。
まぁだめだろうとは思ってましたがやっぱりできませんでした・・・
javadoc: doclet クラス MyDoclet が見つかりません。
というエラーでした
0222デフォルトの名無しさん
NGNGここは同じJAVAでも、学校から出された課題、宿題を丸投げ依頼して、
そのプログラムを書いてもらう宿題スレッドです。
質問スレッドは↓でお願いします。
【初心者】Java質問・相談スレッド57【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1101077884/l50
0223221
NGNGここのサイトを見てなんとかコンパイルは成功しました。
その後ここに書いてるとおり実行したのですが(もちろんjdkのパスは自分のPC用に変えました)
エラーが出てとまってしまいます。
エラーは
java.lang.NoClassDefFoundError: MyDoclet (wrong name: hoge/MyDoclet)
というエラーで、その後に
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:502)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:250)
at java.net.URLClassLoader.access$100(URLClassLoader.java:54)
のような文字列が出て最後に
javadoc: 致命的エラー
エラー 1 個
とでてとまります。
解決方法アドバイスいただけるとありがたいです。
0224221
NGNGそっちのすれいきます
0225192
NGNGありがとうございました。
0226デフォルトの名無しさん
NGNG(a) fib(0)=0
(b) fib(1)=1
(c) fib(n)=fib(n-1)+fib(n-2) ただしn>1
この数列を計算するメソッドを再帰を利用して定義し、
入力した数値に対してフィボナッチ数を計算して出力するようなクラスFibAPを定義すること
(2)再帰を使わずにフィボナッチ数列を計算するメソッドを上のプログラムに追加し、両者が同一の値を返すことを確認しなさい。
下のような実行イメージになるようにすればよい
Input:5
5のフィボナッチ数(再帰)=・・・
5のフィボナッチ数(繰返)=・・・
Input:3
3のフィボナッチ数(再帰)=・・・
3のフィボナッチ数(繰返)=・・・
(3)エイト・クィーンのプログラムを再帰を用いて完成させ、いくつの解が得られるか調べよ。
(4)7*7の迷路パターンを作成しすべての可能な経路を出す迷路探索プログラムを作成しなさい。
ただし左上が入り口とし、右下が出口とする。経路探索の結果は(0,0)(0,1)…(7,7)のように経路がわかるように出力すること。
どうかお願いします。
0227デフォルトの名無しさん
NGNGpublic int getFib1( int n ) {
switch(n) {
case 0:
case 1:
return n;
default:
return getFib1( n-1 ) + getFib1(n-2);
}
}
// ループ版
public int getFib2( int n ) {
if( n==0 || n ==1 ) {
return n;
}
int[] tmp = new int[n];
tmp[0] = 0;
tmp[1] = 1;
for( int i=2; i<n; i++ ) {
tmp[i] = tmp[i-2] + tmp[i-1];
}
return tmp[n-2]+tmp[n-1];
}
後は任せた。
0228212
NGNG有難うございます。
暗号化・複合化できていることが確認できました。
0229sa
NGNG標準入力からテキストファイルを読み込み、
行を短い順に出力しなさい。 但し、行は
最大 80 文字とし、 80 文字以上の行は先
頭 80 文字だけの行として取扱い 出力し、
空行は出力しないで下さい。 また、同じ
長さの行は入力した順番に出しなさい。
なお、取り扱える行数は実行時のコン
ピュータのメモリーのサイズのみに依
存 しなければなりません。 勝手な上
限を設けてはいけません。
0230デフォルトの名無しさん
NGNGn回IDを生成したときに同じIDが生成される確率を計算しなさい。
0231デフォルトの名無しさん
NGNGいくつかのゲームが入っていて、やりたいゲームの番号を選ぶと新しいフレーム(gameWindowクラスで定義)が開いて、そこでゲームが始まると言うプログラムを組んでいます。
ですが、新しいフレームを開いて、そのフレームにアクセスしようとすると、そこで、ゲーム番号を選択するフレームと、gameWindowのフレーム両方が描画を停止してしまいます。
(両方のフレームのラベルやアイコンがすべて消えて、何も描画されていないフレームが表示されるだけ)
gameWindow gW = new gameWindow();
gW.Window();
//ここまで正常
while (i <= 5) {
//以下からおかしくなる
gW.jlL.setIcon(new ImageIcon("image/000.gif"));
gW.jlR.setIcon(new ImageIcon("image/000.gif"));
(以下略)
}
という感じのコードです。
描画はここでストップしてしまうのですが、ゲーム自体は進行していて、入力を行うと、それに対する正常な反応が返ってきます。
試しにwhileループに入る前にsetIconをしてみると、それは正常に処理されたので、どうもwhileループが何か悪さをしているように思うのですが、どなたか解決方法をご存知ないでしょうか?
長々と読みにくい説明で失礼しました。よろしくお願いします。
0232デフォルトの名無しさん
NGNGやだ
0233デフォルトの名無しさん
NGNGマルチポスト、c/c++の宿題スレにもいた
0234古代帝國富士皇朝総帥・伯壬旭
NGNGimport java.awt.Point;
import java.util.*;
public class HW23 {
static List ansList = new ArrayList();
static int[] pos = new int[8];
public static void main(String[] args) {
for (int i = 0; i < 8; ++i) {
List ptList = new ArrayList();
ptList.add(new Point(i, 0));
pos[0] = i;
putQueen(1, ptList);
}
for (int a = 0; a < ansList.size(); ++a) {
List list = (List) ansList.get(a);
System.out.print("置き方その" + (a + 1) + ": ");
for (int b = 0; b < list.size(); ++b) {
Point pt = (Point) list.get(b);
System.out.print("<" + pt.x + ", " + pt.y + "> ");
}
System.out.println();
}
}
0235古代帝國富士皇朝総帥・伯壬旭
NGNGstatic void putQueen(int row, List ptList) {
loop: for (int i = 0; i < 8; ++i) {
for (int k = 0; k < row; ++k) {
if (pos[k] == i)
continue loop;
if (pos[k] + k == i + row)
continue loop;
if (pos[k] - k == i - row)
continue loop;
}
List newList = new ArrayList(ptList);
newList.add(new Point(i, row));
pos[row] = i;
if (newList.size() == 8) {
ansList.add(newList);
return;
}
putQueen(row + 1, newList);
}
}
}
0236M.B.
NGNGつーか前にもやった。同じ学校かも。
0237M.B.
NGNG描画が終わったところで再表示しる。
0238M.B.
NGNG前スレ 771 の回答を参照のこと。
0239M.B.
NGNG1 - (((2^128-1)/(2^128))*((2^128-2)/(2^128))*((2^128-3)/(2^128))*……
*(2^128-(n-1))/(2^128)))。
0240>>226 問題4 迷路作成&経路探索 その1
NGNGimport java.util.*;
import javax.swing.*;
import java.awt.image.*;
import java.awt.*;
import java.util.List;
import java.awt.event.*;
public class HW24 {
static class Wall {
boolean north = true, south = true, west = true, east = true, mark= false;
}
static Wall[][] wall = new Wall[7][7];
static List ansList = new ArrayList();
static final int NORTH = 0, SOUTH = 1, WEST = 2, EAST = 3, CELL = 64, HCELL = 32;
static BufferedImage img = new BufferedImage(CELL * 7, CELL * 7, BufferedImage.TYPE_INT_ARGB);
static JLabel label = new JLabel(new ImageIcon(img));
static JComboBox cbx = new JComboBox();
0241>>226 問題4 迷路作成&経路探索 その2
NGNGJPanel panel = new JPanel(); JButton btn1 = new JButton("迷路作成"), btn2 = new JButton("経路探索");
btn1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
cbx.removeAllItems();
for (int i = 0; i < wall.length; ++i) {
for (int k = 0; k < wall.length; ++k) { wall[i][k] = new Wall(); }
}
makeMaze(0, 0); drawMaze();
}
});
btn2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(wall[0][0]==null) return;
ansList.clear();
searchPath(0,0, new ArrayList());
for(int i = 0; i < ansList.size(); ++i) { cbx.addItem("到達経路" + String.valueOf(i)); }
if(cbx.getModel().getSize()==0) return;
drawPath(0);
}
});
cbx.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(cbx.getModel().getSize()==0) return;
drawMaze(); drawPath(cbx.getSelectedIndex());
}
});
panel.add(btn1); panel.add(btn2); panel.add(cbx); JFrame frame = new JFrame();
frame.getContentPane().add(label); frame.getContentPane().add(panel, BorderLayout.NORTH);
frame.pack(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true);
}
0242>>226 問題4 迷路作成&経路探索 その3
NGNGList list = new ArrayList(Arrays.asList(new Integer[] {
new Integer(NORTH), new Integer(SOUTH), new Integer(WEST),
new Integer(EAST) }));
while (!list.isEmpty()) {
int type = (int) (Math.random() * 4);
list.remove(new Integer(type));
if (!check(x, y, type))
continue;
int w = x - 1, e = x + 1, n = y - 1, s = y + 1;
switch (type) {
case NORTH:
wall[y][x].north = false; wall[n][x].south = false; wall[n][x].mark = true;
makeMaze(x, n); break;
case SOUTH:
wall[y][x].south = false; wall[s][x].north = false; wall[s][x].mark = true;
makeMaze(x, s); break;
case WEST:
wall[y][x].west = false; wall[y][w].east = false; wall[y][w].mark = true;
makeMaze(w, y); break;
case EAST:
wall[y][x].east = false; wall[y][e].west = false; wall[y][e].mark = true;
makeMaze(e, y); break;
}
}
}
0243>>226 問題4 迷路作成&経路探索 その4
NGNGint w = x - 1, e = x + 1, n = y - 1, s = y + 1;
switch (type) {
case NORTH:
if (n < 0) return false;
if (wall[n][x].mark) return false;
break;
case SOUTH:
if (s >= 7) return false;
if (wall[s][x].mark) return false;
break;
case WEST:
if (w < 0) return false;
if (wall[y][w].mark) return false;
break;
case EAST:
if (e >= 7) return false;
if (wall[y][e].mark) return false;
break;
}
return true;
}
static void drawPath(int index) {
Graphics g = img.getGraphics(); g.setColor(Color.blue);
List list = (List) ansList.get(index);
for (int i = 0; i < list.size() - 1; ++i) {
g.drawLine(((Point)list.get(i)).x * CELL + HCELL, ((Point)list.get(i)).y * CELL + HCELL,
((Point)list.get(i+1)).x * CELL + HCELL, ((Point)list.get(i+1)).y * CELL + HCELL);
}
g.dispose(); label.repaint();
}
0244>>226 問題4 迷路作成&経路探索 その5
NGNGGraphics g = img.getGraphics(); g.setColor(Color.white);
g.fillRect(0, 0, img.getWidth(), img.getHeight()); g.setColor(Color.black);
for (int y = 0; y < 7; ++y) {
for (int x = 0; x < 7; ++x) {
if (wall[y][x].north) g.drawLine(x * CELL, y * CELL, (x + 1) * CELL, y * CELL);
if (wall[y][x].south) g.drawLine(x * CELL, (y + 1) * CELL, (x + 1) * CELL, (y + 1) * CELL);
if (wall[y][x].west) g.drawLine(x * CELL, y * CELL, x * CELL, (y + 1) * CELL);
if (wall[y][x].east) g.drawLine((x + 1) * CELL, y * CELL, (x + 1) * CELL, (y + 1) * CELL);
}
}
g.dispose(); label.repaint();
}
static void searchPath(int x, int y, List pathList) {
Point point = new Point(x, y);
if(pathList.contains(point)) return;
pathList.add(point);
if(x == 6 && y == 6) { ansList.add(pathList); return; }
for(int i = 0; i < 4; ++i) {
switch (i) {
case NORTH:
if(!wall[y][x].north) searchPath(x, y - 1, new ArrayList(pathList)); break;
case SOUTH:
if(!wall[y][x].south) searchPath(x, y + 1, new ArrayList(pathList)); break;
case WEST:
if(!wall[y][x].west) searchPath(x - 1, y, new ArrayList(pathList)); break;
case EAST:
if(!wall[y][x].east) searchPath(x + 1, y, new ArrayList(pathList)); break;
}
}
}
}
0245古代帝國富士皇朝総帥・伯壬旭
NGNG問題4 迷路作成&経路探索
上記の5つのコードを全部コピペしてコンパイル。
迷路作成ボタンを押すと、7×7の迷路がランダムで作成されます。
経路探索ボタンを押すと、到達経路を探索して1番目の道筋を表示します。
道筋が複数ある時は、隣のコンボボックスにスイッチが複数登録されるので
どれかを選ぶと他の道筋が表示されます。
0246デフォルトの名無しさん
NGNGそれBigDecimalとか使っても簡単に書けないんだけど
何か方法ない?
0247M.B.
NGNG掛け算のところを対数取って足し算にするとか、
手段はいろいろあると思われ。
0248デフォルトの名無しさん
NGNGこの問題だれかといてください。
0249古代帝國富士皇朝総帥・伯壬旭
NGNG問題4 迷路作成&経路探索
失礼。問題文を一部見落としてました。
>>243の drawPathメソッドをこう修正(追補)してください。
static void drawPath(int index) {
Graphics g = img.getGraphics(); g.setColor(Color.blue);
List list = (List) ansList.get(index);
for (int i = 0; i < list.size() - 1; ++i) {
g.drawLine(((Point)list.get(i)).x * CELL + HCELL, ((Point)list.get(i)).y * CELL + HCELL,
((Point)list.get(i+1)).x * CELL + HCELL, ((Point)list.get(i+1)).y * CELL + HCELL);
}
g.setColor(Color.red);
for (int i = 0; i < list.size(); ++i) {
Point pt = (Point)list.get(i);
String text = "(" + pt.x + "," + pt.y + ") ";
g.drawString(text, pt.x * CELL + 16, pt.y * CELL + 32);
System.out.println(text);
}
System.out.println();
g.dispose(); label.repaint();
}
0250古代帝國富士皇朝総帥・伯壬旭
NGNGimport java.io.*;
public class FibAP {
public static void main(String[] args) {
while (true) {
int num = 0;
try {
System.out.print("Input:");
String s = new DataInputStream(System.in).readLine();
if (s.length() == 0) {
System.out.println("終了");
break;
}
num = Integer.parseInt(s);
if (num < 2) {
throw new Exception();
}
} catch (Exception ex) {
System.out.println("入力数値が不正");
continue;
}
System.out.println(num + "のフィボナッチ数(再帰)= " + computeByReflexive(num));
System.out.println(num + "のフィボナッチ数(繰返)= " + computeByLoop(num));
}
}
static int computeByReflexive(int num) {
if (num < 2) {
return num;
} else {
return computeByReflexive(num - 1) + computeByReflexive(num - 2);
}
}
0251古代帝國富士皇朝総帥・伯壬旭
NGNGstatic int computeByLoop(int num) {
int n1 = 1, n2 = 0;
for (int i = 2; i < num; i++) {
int swap = n1;
n1 = n1 + n2;
n2 = swap;
}
return n1 + n2;
}
}
0252M.B.
NGNGこれは数値計算あるいはシミュレーションの問題なのか、
画像生成の問題なのか、
それとも同期を取って実時間表示する方法を問うているのか、
あるいはその全部なのか、どれだ。
あらかじめ一周期ぶんの画像を作成しておいて、それを
決まったタイミングで出力するというのがいちばん簡単だが、
ゲームなんかだと、画像を生成しながらリアルタイムで
(つまり、マシンの速度にかかわらず、決まった速さで)
表示する必要がある。
そのあたりの前提条件を明らかしる。
0253デフォルトの名無しさん
NGNG指定したフォルダに書き出したいのですが
ファイルへの書き出しは分かるのですが
指定したフォルダ内のファイルの取得方法について教えてください
0254デフォルトの名無しさん
NGNG↓
指定したファイルにその情報を書き出したいのですが
0255デフォルトの名無しさん
NGNGFile folder = new File("フォルダの名前");
File file[] = folder.listFiles();
0256M.B.
NGNGこれでも読んでみそ。
/**
* 指定されたディレクトリの下にあるすべてのディレクトリとファイルを
* 木の形で標準出力に表示する。
*/
import java.io.*;
import java.util.*;
public class DirTree {
static HashMap gFileList;
public static void main( String argv[] ){
gFileList = new HashMap ();
try {
if ( argv.length == 0 ) {
DirTree( "." ); // 引数なしの場合、カレントディレクトリから。
} else {
DirTree( argv[0] ); // 引数ありの場合、そのディレクトリから。
}
}
catch( Exception e ) { // エラーが発生
System.err.println("Error....");
System.exit(-1);
}
}
0257M.B.
NGNGSystem.out.println( sdir );
String str = new String();
File rootdir = new File( sdir );
WalkTree( rootdir );
DirTree( rootdir, str );
}
0258M.B.
NGNG* ディレクトリを巡回し、最新のファイルを見つける。
*/
private static void WalkTree( File dir ) throws Exception {
File flist[] = dir.listFiles();
for ( int idx = 0 ; idx < flist.length ; idx += 1 ) {
if ( flist[idx].isDirectory() ) {
WalkTree( flist[idx] );
} else {
String filename = flist[idx].getName();
long ytime = flist[idx].lastModified();
if ( gFileList.containsKey(filename) ) {
long xtime = ((Long)gFileList.get(filename)).longValue();
ytime = flist[idx].lastModified();
if ( xtime < ytime ) {
gFileList.put(filename, new Long( ytime ));
}
} else {
gFileList.put( filename, new Long( flist[idx].lastModified() ) );
}
}
}
}
0259M.B.
NGNGprivate static void DirTree( File dir, String str ) throws Exception {
File flist[] = dir.listFiles();
if ( flist.length > 0 ) {
for ( int idx = 0 ; idx < ( flist.length - 1 ); idx += 1 ) {
if ( flist[idx].isDirectory() ) {
System.out.println( str + "├ " + flist[idx].getName() + File.separator );
DirTree(flist[idx], str + "│ ");
} else {
if (newest( flist[idx] )) {
System.out.println( str + "├ " + flist[idx].getName() );
} else {
System.out.println( str + "├ " + flist[idx].getName() + "(旧)" );
}
}
}
0260M.B.
NGNGif ( flist[flist.length - 1].isDirectory() ) {
System.out.println( str + "└ "+ flist[flist.length - 1].getName() + File.separator );
DirTree(flist[flist.length - 1], str + " ");
} else {
if (newest( flist[flist.length - 1] )) {
System.out.println( str + "└ "+ flist[flist.length - 1].getName() );
} else {
System.out.println( str + "└ "+ flist[flist.length - 1].getName()+"(旧)" );
}
}
}
}
0261デフォルトの名無しさん
NGNGこれは画像生成の問題で、とりあえずアップレットでサンプルに近い感じでうごかせればいいです。
ルンゲ・クッタ法をつかってといてください。
すいません説明不足で。
0262M.B.
NGNG* gFileList の中から名前をキーに最終更新時間を探し、、
* 最新だったら 0 を返す。
*/
private static boolean newest( File file ) throws Exception {
String filename = file.getName();
long xtime = ((Long)gFileList.get(filename)).longValue();
long time = file.lastModified();
if ( time >= xtime ) {
return true;
} else {
return false;
}
}
}
0263デフォルトの名無しさん
NGNGソースコードだらけじゃん
0264M.B.
NGNGでは彩りにAAでも入れてやろう
∧_∧
∧_∧ (´<_` ) あまり本質的な解決に
( ´_ゝ`) / ⌒i なっていないと思うぞ兄者
/ \ | |
/ / ̄ ̄ ̄ ̄/ |
__(__ニつ/ IBM / .| .|____
\/____/ (u ⊃
0265デフォルトの名無しさん
NGNG1.整数 c と計算の繰り返し回数 n をキーボードから指定できるようにすること 。
2.繰り返し計算の初期値(x0)を解に近い値に設定できるように工夫すること。
3.ニュートン法の本体(繰り返し計算をする部分)をメソッドとして独立させること。
どうかお助けください。
0266古代帝國富士皇朝総帥・伯壬旭
NGNGimport java.io.*; import java.math.*; import java.util.regex.*;
public class HW25 {
public static void main(String[] args) {
int num = 1, max = 1; String s;
while (true) {
try {
BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
System.out.print("数値の指定= "); s = r.readLine(); num = Integer.parseInt(s);
System.out.print("繰り返し数= "); s = r.readLine(); max = Integer.parseInt(s);
} catch (Exception e) {
System.out.print("入力が不正→終了"); System.exit(0);
}
String fig = compute(num, max).toString();
Matcher mat = Pattern.compile("0+$").matcher(fig);
if (mat.find()) fig = mat.replaceFirst("0");
System.out.println(num + "の平方根 = " + fig);
}
}
static BigDecimal compute(int arg_num, int max) {
BigDecimal num = new BigDecimal(arg_num).setScale(100);
BigDecimal x = new BigDecimal(arg_num / 2).setScale(100);
BigDecimal d, TWO = new BigDecimal(2), ZERO = new BigDecimal(0);
for (int i = 1; i <= max; i++) {
d = x.subtract(num.divide(x, BigDecimal.ROUND_HALF_EVEN)).divide(
TWO, BigDecimal.ROUND_HALF_EVEN);
x = x.subtract(d);
if (d.compareTo(ZERO) == 0) { break; }
}
return x;
}
}
0267デフォルトの名無しさん
NGNGボタンを押したらキャンバスにGraphics gによって
何らかの動作をさせたいのですが、
textfieldについてはうまく行きますが、
cav.paing(Graphics g)と書くとそこでエラーがでてしまいます。
教えていただければ大変助かります;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.Graphics;
/*
<APPLET CODE = "ButtonTest.class" WIDTH=200 HEIGHT=100>
</APPLET>
*/
0268その2
NGNGJButton jb1;
JTextField jtf;
Canvas cav;
public void init() {
// create botton
jb1 = new JButton("test");
MC_Listener mc = new MC_Listener();
// add listener
jb1.addActionListener(mc);
// add botton
JPanel jp1 = new JPanel();
jp1.add(jb1);
getContentPane().add(jp1, "North");
// create and add textfield
jtf = new JTextField(20);
JPanel jp2 = new JPanel();
jp2.add(jtf);
getContentPane().add(jp2, "Center");
// create and add canvas
cav = new Canvas();
JPanel jp3 = new JPanel();
jp3.add(cav);
getContentPane().add(jp3, "South");
}
0269その3
NGNGpublic void actionPerformed(ActionEvent e) {
if(e.getSource() == jb1) {
jtf.setText("hi guys!!");
cav.paint(Graphics g),{
g.drawString("i did it!! thx!", 5, 5);
}
}
}
}
}
0270デフォルトの名無しさん
NGNGの課題8を誰か解いて下さい。
0271デフォルトの名無しさん
NGNGすいませんまちがえました。
ttp://sparrow.math.ryukoku.ac.jp/~junta/edu/graphics/schedule.html
です。
0272デフォルトの名無しさん
NGNGここは同じJAVAでも、学校から出された課題、宿題を丸投げ依頼して、
そのプログラムを書いてもらう宿題スレッドです。
質問スレッドは↓でお願いします。
【初心者】Java質問・相談スレッド57【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1101077884/l50
0273デフォルトの名無しさん
NGNGCanvas cav;
の部分を
String cabText = "";
Canvas cav = new Canvas() {
public void paint(Graphics g) {
g.drawString(cavText, 5, 5);
}
};
と修正し、
cav = new Canvas();
の行を削除し
cav.paint(Graphics g),{
g.drawString("i did it!! thx!", 5, 5);
}
の部分を
cavText = "i did it!! thx!";
cav.repaint();
と修正してみてください。
0274デフォルトの名無しさん
NGNGキーボードから入力された16進の文字列(0000〜FFFF 頭に0xをつけても良い)を
10進の数値に変換して画面に出力するプログラムを作成しなさい
例
入力が000Fの場合には出力は15 0010の場合には出力は16となる
0275デフォルトの名無しさん
NGNGpublic class Hex{
public static void main(String[] args){
System.out.println(Long.parseLong(args[0], 16));
}
}
0276デフォルトの名無しさん
NGNGdouble MAX = 10.0;
double dt = 0.01;
euler(MIN, MAX, dt) //積分結果の最後の値を返す
0から10.0まで積分計算をし、積分結果の最後の値を返す関数eulerがあるのですが、
途中の計算過程も出力するようにするにはどうすればいいのですか?
0277M.B.
NGNG普通は区間を分けてeuler()を求めて合計すればよさそうに思うが、
数値積分は端点の処理がけっこう重要なので、
euler()の中でやるのが順当。
したがってeuler()を書き換えずになんとかするのは
たぶん実際的ではない。
0278デフォルトの名無しさん
NGNG>>したがってeuler()を書き換えずになんとかするのは
>>たぶん実際的ではない。
実際的でないのですか。書き込みありがとうございます。
質問ですが、実際的でなくてもかまわないのでそのやり方を教えてください。
0279M.B.
NGNGdouble step = 0.1;
for (double start = MIN;start += step;start < MAX ) {
sum += euler(start, start + step, dt);
// ここでsumを出力。
}
0280デフォルトの名無しさん
NGNG回帰分析の計算
ベクトルy
46.005
55.805
47.805
49.205
61.405
66.505
43.005
44.305
61.405
56.205
と計画行列x
1 8 17
1 6 23
1 15 15
1 12 17
1 13 23
1 17 24
1 9 15
1 13 14
1 13 23
1 13 19
を初期化して与え、係数ベクトルβの推定値を求め、printlnで出力するプログラムを作成しなさい
0281280
NGNG計画行列x(m×n)と出力ベクトルy(m×1)が与えられたときの、
係数ベクトル推定量βは
β=(xt*x)-1*xt*yである (xtはxの転置行列 -1は逆行列の意味です
転置行列、逆行列、行列の積のクラスも自分で作成せよとのこと
どうか、よろしくお願いします。
0282デフォルトの名無しさん
NGNG0283218
NGNGまた、暗号化・複合化ができていることを確認できるプログラムを作れ。
という宿題がでました。
何度もすみませんが、教えてください。
また、この宿題はプログラムの説明もレポートにしなくてはならないので、
プログラムだけでなく説明もして頂けると幸いです。
0284218
NGNG問題は int型の”1234”を、DESKeyを使って暗号化・複合化せよ
です。失礼しました。
0285デフォルトの名無しさん
NGNG0286古代帝國富士皇朝総帥・伯壬旭
NGNGimport javax.crypto.*;
import java.nio.*;
public class HW26 {
static final int VALUE = 1234;
public static void main(String[] args) {
byte[] sourceData = null, encodeData = null, decodeData = null;
try {
KeyGenerator kg = KeyGenerator.getInstance("DES");
SecretKey key = kg.generateKey();
Cipher cip = Cipher.getInstance("DES");
ByteBuffer bb = ByteBuffer.allocate(4);
bb.putInt(VALUE);
sourceData = bb.array();
cip.init(Cipher.ENCRYPT_MODE, key);
encodeData = cip.doFinal(sourceData);
cip.init(Cipher.DECRYPT_MODE, key);
decodeData = cip.doFinal(encodeData);
} catch (Exception e) {
System.out.println("エラー終了");
System.exit(0);
}
System.out.print("int型数値 1234 の元のバイト配列(ビッグエンディアン): ");
outputData(sourceData);
System.out.print("DES鍵によって暗号化したバイト配列: ");
outputData(encodeData);
System.out.print("DES鍵によって複合化したバイト配列: ");
outputData(decodeData);
}
0287古代帝國富士皇朝総帥・伯壬旭
NGNGstatic void outputData(byte[] data) {
for (int i = 0; i < data.length; i++) {
System.out.print(Integer.toHexString(data[i] & 0xff) + " ");
}
System.out.println();
}
}
0288デフォルトの名無しさん
NGNG0289デフォルトの名無しさん
NGNG説明はあとで書きます。
0290デフォルトの名無しさん
NGNG0291デフォルトの名無しさん
NGNGもっとスマートなやり方がある気がするが…
やり方が思い出せない。
思い出したらカキコ
0292M.B.
NGNGがんがれ。
漏れもがんがってみる。
0293デフォルトの名無しさん
NGNGf(x) のグラフ上で,初期値 x0 を与えてA点(x0, f(x0))において接線を引き,その接線と x 軸が交差する点を x1 とすると,x1 は x0 よりも解に近い点となる.
同様に x1 を与えて B点(x1, f(x1))において接線を引くと,さらに解に近い x2 が得られる.
この操作を繰り返して近似解を求めるのが Newton法 である.
一般に xn と xn+1 の関係は,xn+1 = xn - f(xn)/f'(xn) である.
この Newton 法を用いて,与えられた整数 c の平方根を求めよ(つまり,x~2 = c の解をニュートン法によって求めよ,ということ.また,初期値 x0 をできるだけ解に近い値に設定しないと,少ない繰り返し回数では良い近似解が得られないこともあるので注意すること).
ただし,この c の値と,計算の繰り返し回数 n をキーボードから指定できるようにせよ.
って課題が出たんですど次に書く奴であってるか確かめてもらえないでしょうか?
KeyboardInput.inputInt();ってのは講師から与えられたメソッドです。
public class Rep {
public static void main(String[] args) {
System.out.print("元の数値を入力してください ");
int num = KeyboardInput.inputInt();
System.out.print("繰り返し回数を入力してください ");
int max = KeyboardInput.inputInt();
double answer = compute(num , max);
System.out.println(num + "の平方根は" + answer);
}
public static double compute(int c , int n) {
double x = c/3 + 1;
for (int i = 1; i <= n; i++) {
x = x - (x*x - c)/(2*x);
}
return x;
}
}
0294デフォルトの名無しさん
NGNG0295デフォルトの名無しさん
NGNG0296218
NGNGプログラムは無事動きました。有難うございます。
説明も宜しくお願いします。
0297デフォルトの名無しさん
NGNG課題が出たのですが私には難しすぎました。
よろしくお願いしますm(..)m
【課題】
スロットマシンゲームを作成します。
スロットの表示は絵でも数字でも構いません。
縦2つ横4つにします。そしてヒットした絵や数字、氏名のカウントを準備して
どれが一番ヒットしたかを表示します。したがってスロットは2列スロットと
なります。
こんな感じです。すいませんがよろしくお願いしますm(..)m
0298M.B.
NGNGスロットマシンといえば、風情としてレモンは必須だな
∧_∧
∧_∧ (´<_` ) 課題で必死こいてる奴に
( ´_ゝ`) / ⌒i 風情を要求するのはどうかと思うが
/ \ | |
/ / ̄ ̄ ̄ ̄/ |
__(__ニつ/ IBM / .| .|____
\/____/ (u ⊃
0299297
NGNGすいません。。。いっぱいいっぱいなんです_| ̄|○
297の追加をさせてください。
先程のスロットマシンの内容に加えてHTML上で動かしたいので
アプレットでお願いします。
どうかよろしくお願いしますm(..)m
0300デフォルトの名無しさん
NGNGを取得したいのですが可能なんでしょうか?
0301デフォルトの名無しさん
NGNGお願いします。
【課題】抽象クラスとしてトランプゲームのクラスを作成する.
このクラス には抽象メソッドとしてカードを配る,ゲームをプレイするなどを持ち,
普通のメソッドとしてgameを持つ.
gameはカードクラスのオブジェクトを作成し,3回プレイし,勝者の判定をするメソッドである.
トランプゲームのクラスを拡 張し、ブラックジャックを作成する.
コンピュータとプレイヤの 1対1の対戦とし,ルールは簡略化しても構わない.
カードクラスではトラ ンプのカードを保持しており,カードをシャッフルする,一枚のカードを配るといったメソッドを持つ.
また,プレイヤクラスなどを作成し,これらを統合したプログラムにせよ.
0302デフォルトの名無しさん
NGNGjava.lang.System#getProperty()
java.net.InetAddress#getAddress()
起動からの経過時間は、Singletonクラスでも作って起動時に
開始時間をセットしておけばいい
>>301
トランプゲームに共通なデータ、操作をabstractクラスにくくり出せば
良いわけです。
簡易版オイチョカブ(3枚の合計の下1桁がおおきい方が勝ち)をクラス
構造に書き下すと下のようになります。
public class Card{ int no; String mark; getNo(){}; getMark{}; setNo(){}; getMark(){}; }
abstract class AbstractGame{
Card[] cards;
コンストラクタ{ フィールドのcards配列に53枚のカードを作成 }
void shuffle(){ cards配列をシャッフルする }
Card getCard(){ cards配列の先頭の一枚を取り出す }
abstract Card[] deal(); // 最初にn枚配る。ゲームによって違う
abstract boolean isUserWin( Card[] user , Card[] com );
// userとcomの手配を比較して勝敗を決める。ゲームによって違う
}
class TinyOithokabu extends AbstractGame{
Card[] deal(){ cardsの先頭から3枚取り出す }
boolean isUserWin( Card[] user , Card[] com ){ カードの合計%10 がuserの方が大きければtrue,そうでなければfalseを返す}
}
0303デフォルトの名無しさん
NGNG起動ってのはマシン起動からなんですが…
無理でしょうか?
0304デフォルトの名無しさん
NGNG最低2つのアルゴリズムで作成せよ
という課題が出ました。
さっぱりなのでお願いします。
0305>>301 その1
NGNGimport java.util.*; import java.util.List; import java.awt.image.*;
public class BlackJack extends TrumpGame {
private int issue;
private boolean waitFlag;
private Player player, dealer;
private CardHandler ch;
private JButton btn_hit = new JButton("Hit"), btn_stand = new JButton("Stand"), btn_next = new JButton("Next");
public static void main(String[] args) {
new BlackJack().game();
}
private BlackJack() {
JFrame frame = new JFrame(); JPanel panel = new JPanel();
btn_next.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { waitFlag = false; }
});
btn_hit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
player.receiveCard(ch.getOneCard(), false);
if (player.getTotalNumber() > 21) { judge(); }
}
});
btn_stand.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { judge(); }
});
panel.add(btn_next); panel.add(btn_hit); panel.add(btn_stand);
frame.getContentPane().add(screen); frame.getContentPane().add(panel, BorderLayout.SOUTH);
frame.pack(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true);
}
0306>>301 その2
NGNGscreen.setText(no + "回戦目"); drawTable();
ch = new CardHandler(false);
player = new Player(new Rectangle(100, 380, 500, 100), this);
dealer = new Player(new Rectangle(100, 10, 500, 100), this);
dealCard();
btn_next.setEnabled(false); btn_hit.setEnabled(true); btn_stand.setEnabled(true);
issue = NONE; while (issue == NONE) { }
btn_next.setEnabled(true); btn_hit.setEnabled(false); btn_stand.setEnabled(false);
waitFlag = true; while (waitFlag) { }
btn_next.setEnabled(false);
return issue;
}
void dealCard() {
player.receiveCard(ch.getOneCard(), false); dealer.receiveCard(ch.getOneCard(), true);
player.receiveCard(ch.getOneCard(), false); dealer.receiveCard(ch.getOneCard(), true);
dealer.reverseCard(1);
}
0307>>301 その3
NGNGdealer.reverseCard(0);
while (dealer.getTotalNumber() <= 16) {
dealer.receiveCard(ch.getOneCard(), false);
}
int pn = player.getTotalNumber(), dn = dealer.getTotalNumber();
String text;
if (pn == 100 && dn == 100) {
issue = DRAW; text = "引き分け " + "BlackJack vs BlackJack";
} else if (pn == 100) {
issue = WIN; text = "勝利 " + "BlackJack vs " + dn;
} else if (dn == 100) {
issue = LOSE; text = "負け " + pn + " vs BlackJack";
} else if (pn > 21 && dn > 21) {
issue = DRAW; text = "引き分け " + "Over vs Over";
} else if (pn > 21) {
issue = LOSE; text = "負け " + "Over vs " + dn;
} else if (dn > 21) {
issue = WIN; text = "勝ち " + pn + " vs Over";
} else if (pn > dn) {
issue = WIN; text = "勝ち " + pn + " vs " + dn;
} else if (pn < dn) {
issue = LOSE; text = "負け " + pn + " vs " + dn;
} else {
issue = DRAW; text = "引き分け " + pn + " vs " + dn;
}
screen.setText(text);
}
}
0308>>301 その4
NGNGBufferedImage table = new BufferedImage(640, 480, BufferedImage.TYPE_INT_ARGB);
Graphics2D g = table.createGraphics(); JLabel screen = new JLabel();
static final int NONE = 0, WIN = 1, LOSE = 2, DRAW = 3;
protected TrumpGame() {
g.setBackground(new Color(180, 220, 180)); g.setFont(new Font("Dialog", 0, 20));
screen.setFont(new Font("Dialog", 1, 40)); screen.setHorizontalTextPosition(JLabel.CENTER);
screen.setIcon(new ImageIcon(table));
}
void game() {
while (true) {
int plscr = 0, dlscr = 0;
for (int i = 0; i < 3; i++) {
int ans = playGame(i + 1);
if (ans == WIN) { ++plscr; }
else if (ans == LOSE) { ++dlscr; }
}
String text = "3回戦終了<br>player " +plscr + "勝 dealer " + dlscr + "勝で<br>";
if (plscr > dlscr) {
text += "Playerの勝利<br>(3秒間待機)";
} else if (plscr < dlscr) {
text += "Dealerの勝利<br>(3秒間待機)";
} else {
text += "引き分け<br>(3秒間待機)";
}
drawTable(); screen.setText("<html>" + text + "</html>");
try { Thread.sleep(3000); } catch (InterruptedException e) { }
}
}
abstract int playGame(int no);
abstract void dealCard();
0309>>301 その5
NGNGif (card.isReverse) {
g.setColor(new Color(180, 180, 220)); g.fillRect(card.x, card.y, 60, 90);
g.setColor(Color.black); g.drawRect(card.x, card.y, 59, 89);
screen.repaint(card.x, card.y, 60, 90); return;
}
g.setColor(Color.white); g.fillRect(card.x, card.y, 60, 90);
g.setColor(Color.black); g.drawRect(card.x, card.y, 59, 89);
String text;
switch (card.type) {
case Card.SPADE: g.setColor(Color.black); text = "spade"; break;
case Card.CLUB: g.setColor(Color.blue); text = "club"; break;
case Card.DIA: g.setColor(Color.magenta); text = "dia"; break;
case Card.HART: g.setColor(Color.red); text = "hart"; break;
default: g.setColor(Color.gray); text = "joker";
g.drawString(text, card.x + (60 - g.getFontMetrics().stringWidth(text)) / 2,
card.y + (90 - g.getFontMetrics().getHeight()) / 2 + g.getFontMetrics().getAscent());
return;
}
g.drawString(text, card.x + (60 - g.getFontMetrics().stringWidth(text))
/ 2, card.y + g.getFontMetrics().getAscent());
switch (card.no) {
case 1: text = "A"; break;
case 11: text = "J"; break;
case 12: text = "Q"; break;
case 13: text = "K"; break;
default: text = String.valueOf(card.no);
}
g.drawString(text, card.x + (60 - g.getFontMetrics().stringWidth(text)) / 2, card.y
+ (90 - g.getFontMetrics().getHeight()) / 2 + g.getFontMetrics().getAscent());
screen.repaint(card.x, card.y, 60, 90);
}
0310>>301 その6
NGNGg.setColor(Color.green);
g.clearRect(0, 0, table.getWidth(), table.getHeight());
screen.repaint();
}
}
class Card {
static final int SPADE = 0, CLUB = 1, DIA = 2, HART = 3, JOKER = 4;
int type;
int no;
int x = -1, y = -1;
boolean isReverse;
}
class CardHandler {
boolean hasJoker;
Card[] cards;
List cardList;
CardHandler(boolean hasJoker) {
this.hasJoker = hasJoker; reset();
}
void shuffleCard() {
List list = Arrays.asList(cards);
Collections.shuffle(list, new Random(System.currentTimeMillis()));
cards = (Card[]) list.toArray(cards);
}
Card getOneCard() {
return (Card) cardList.remove(0);
}
0311>>301 その7
NGNGif (hasJoker) {
cards = new Card[54]; int idx = 0;
for (int i = 0; i < 4; i++) {
for (int k = 1; k <= 13; k++) {
cards[idx] = new Card(); cards[idx].type = i; cards[idx++].no = k;
}
}
cards[idx] = new Card(); cards[idx++].type = Card.JOKER;
cards[idx] = new Card(); cards[idx].type = Card.JOKER;
} else {
cards = new Card[52]; int idx = 0;
for (int i = 0; i < 4; i++) {
for (int k = 1; k <= 13; k++) {
cards[idx] = new Card(); cards[idx].type = i; cards[idx++].no = k;
}
}
}
shuffleCard(); cardList = new ArrayList(Arrays.asList(cards));
}
}
class Player {
List myCard = new ArrayList();
Rectangle space;
BlackJack gameObj;
Player(Rectangle space, BlackJack gameObj) {
this.space = space; this.gameObj = gameObj;
}
void receiveCard(Card card, boolean reverse) {
card.x = myCard.size() * 60 + space.x + myCard.size() * 4; card.y = space.y; card.isReverse = reverse;
gameObj.drawCard(card); myCard.add(card);
}
0312>>301 その8
NGNGCard card = (Card) myCard.get(index); card.isReverse ^= true;
gameObj.drawCard(card);
}
int getTotalNumber() {
int num = 0; Set bjj = new TreeSet();
for (int i = 0; i < myCard.size(); i++) {
Card card = (Card) myCard.get(i);
if (card.no == 1) {
num += 11; bjj.add(new Integer(1));
} else if (card.no >= 10) {
num += 10; bjj.add(new Integer(2));
} else {
num += card.no; bjj.add(new Integer(0));
}
if (i == 1) {
if (bjj.contains(new Integer(1)) && bjj.contains(new Integer(2))) return 100;
}
}
if (num > 21) {
for (int i = 0; i < myCard.size(); i++) {
Card card = (Card) myCard.get(i);
if (card.no == 1) {
num -= 10;
if (num <= 21) break;
}
}
}
return num;
}
}
0313古代帝國富士皇朝総帥・伯壬旭
NGNG上記の8つのコードを一字一句逃さずにコピペしてコンパイルしてください。
かなりコードが敷き詰めてられてるので、適当にフォーマットし直してください。
あと、ハートのスペルを間違えてるので、適当に修正してください。
BlackJackクラスを指定して、実行してください。
操作法は、Hitボタンでカードをもらい、Standボタンで勝負します。
Nextボタンで次に移ります。
0314デフォルトの名無しさん
NGNGの問題を解いてください。よろしくお願いします。
0315M.B.
NGNGスロットマシンというのは、通常3×3なので、
どういう形で倍率(整数値)が計算されるのかを
明確にしてもらわないとプログラムが書けない。
特に、回転するシリンダーの駒数がいくつで、
それぞれの駒に何の図柄が入っていて、
それがどの升目にどういう形で並ぶと倍率が何倍になるか
(チェリーは中央列の左側に入った場合、一個でも当たりになる)
定義しる。
0316デフォルトの名無しさん
NGNGeuler(MIN,MAX,dt)があり、xはdtずつ変化(x+=dt)する。
double MIN = 0.0;
double MAX = 100.0;
double dt = 0.01;
euler(MIN, MAX, dt) //積分結果の最後の値を返す
0から100.0まで積分計算をし、xの値が0番目、100番目、200番目…900番目、
1000番目というように積分区間の間の任意の値を表示するにはどうしたら
いいのですか? お願いします。
0317デフォルトの名無しさん
NGNG0319デフォルトの名無しさん
NGNG0321JAVA超初心者
NGNG整数型で
12 23 1 42 15 5 ・・・・・・・
のようにスペースで区切られている一行のデータを読み込んで、入力件数、最大値、最小値、種類件数をもとめるにはどうすればよいでしょうか?
JAVAで整数を読み込むという関数はあるのですか?
ほんっとに初心者なものでもうしわけないですが、どなたか教えてください。
0322>>304 その1
NGNGpublic class HW28 {
public static void main(String[] args) {
int[] source = new int[30];
Set set = new TreeSet();
while (set.size() < 30) {
int num = (int) (Math.random() * 30);
if (!set.contains(new Integer(num))) {
source[set.size()] = num; set.add(new Integer(num));
}
}
outputData(source, "元のデータ");
int[] data = new int[source.length];
System.arraycopy(source, 0, data, 0, source.length);
heapSort(data); outputData(data, "ヒープソート");
System.arraycopy(source, 0, data, 0, source.length);
mergeSort(data); outputData(data, "マージソート");
System.arraycopy(source, 0, data, 0, source.length);
quickSort(data, 0, data.length - 1); outputData(data, "クイックソート");
System.arraycopy(source, 0, data, 0, source.length);
insertionSort(data); outputData(data, "インサーションソート");
System.arraycopy(source, 0, data, 0, source.length);
bubbleSort(data); outputData(data, "バブルソート");
System.arraycopy(source, 0, data, 0, source.length);
selectionSort(data); outputData(data, "セレクションソート");
}
static void outputData(int[] data, String text) {
System.out.print(text + " : ");
for (int i = 0; i < data.length; i++) { System.out.print(data[i] + " "); }
System.out.println();
}
0323>>304 その2
NGNGfor (int i = (data.length - 2) / 2; i >= 0; i--) {
int idx = i, src = data[idx], child = 0;
while (true) {
child = idx * 2 + 1;
if (child > data.length - 1) { break; }
if (child < data.length - 1) {
if (data[child] < data[child + 1]) { ++child; }
}
if (src > data[child]) { break; }
data[idx] = data[child];
idx = child;
}
data[idx] = src;
}
for (int i = data.length - 1; i > 0; i--) {
int swap = data[0]; data[0] = data[i]; data[i] = swap;
int idx = 0, src = data[idx], child = 0;
while (true) {
child = idx * 2 + 1;
if (child > i - 1) { break; }
if (child < i - 1) {
if (data[child] < data[child + 1]) { ++child; }
}
if (src > data[child]) { break; }
data[idx] = data[child];
idx = child;
}
data[idx] = src;
}
}
0324>>304 その3
NGNGint[] dst = new int[src.length];
for (int width = 1; width < src.length; width *= 2) {
for (int start = 0; start < src.length; start += width * 2) {
int idx1 = start, idx2 = start + width, ptr = start;
int len1 = Math.min(idx1 + width, src.length);
int len2 = Math.min(idx2 + width, src.length);
while (idx1 < len1 && idx2 < len2) {
if (src[idx1] <= src[idx2]) { dst[ptr++] = src[idx1++]; }
else { dst[ptr++] = src[idx2++]; }
}
while (idx1 < len1) { dst[ptr++] = src[idx1++]; }
while (idx2 < len2) { dst[ptr++] = src[idx2++]; }
}
System.arraycopy(dst, 0, src, 0, src.length);
}
}
static void quickSort(int[] data, int left, int right) {
if (left >= right) {
return;
}
int center = left + (right - left) / 2, num = data[center], idx = left;
data[center] = data[left];
for (int i = left + 1; i <= right; i++) {
if (data[i] < num) {
int swap = data[++idx]; data[idx] = data[i]; data[i] = swap;
}
}
data[left] = data[idx]; data[idx] = num;
quickSort(data, left, idx - 1); quickSort(data, idx + 1, right);
}
0325>>304 その4
NGNGfor (int a = 1; a < data.length; a++) {
for (int b = a; b > 0 && data[b] < data[b - 1]; b--) {
int swap = data[b];
data[b] = data[b - 1];
data[b - 1] = swap;
}
}
}
static void bubbleSort(int[] data) {
for (int a = 0; a < data.length; a++) {
for (int b = 1; b < data.length - a; b++) {
if (data[b] < data[b - 1]) {
int swap = data[b];
data[b] = data[b - 1];
data[b - 1] = swap;
}
}
}
}
static void selectionSort(int[] data) {
for (int a = 0; a < data.length; a++) {
for (int b = a; b < data.length; b++) {
if (data[b] < data[a]) {
int swap = data[b];
data[b] = data[a];
data[a] = swap;
}
}
}
}
}
0326古代帝國富士皇朝総帥・伯壬旭
NGNGコピペしてコンパイル。
敷き詰めて書いてるので、フォーマットしなおしてください。
0327M.B.
NGNG一行読んでから StringTokenizer を使え
0328JAVA超初心者
NGNG一行読み込んでから、整数を一つずつ配列に入れるのでしょうか?それとも、
整数読み込みのような関数があるのでしょうか?
0329デフォルトの名無しさん
NGNGその後int型の配列にぶち込んで表示。
0330デフォルトの名無しさん
NGNGtextを12 23 1 42 15 5 ・・の一行のデータが入ってるString型変数とすると
int[] num = new int[1000];
int idx = 0;
StringTokenizer st = new StringTokenizer(text, " ");
while (st.hasMoreTokens()) {
String token = st.nextToken();
num[idx++] = Integer.parseInt(token.trim());
}
こうすれば、空白で区切られた数値が int配列の num に順に格納される。
0331JAVA超初心者
NGNGさっそくやってみます!!
0332デフォルトの名無しさん
NGNG0333デフォルトの名無しさん
NGNG0334デフォルトの名無しさん
NGNG>>296
>>286の説明文です。
KeyGenerator kg = KeyGenerator.getInstance("DES");
SecretKey key = kg.generateKey();
で、DESアルゴリズムの秘密鍵 key を作成し
Cipher cip = Cipher.getInstance("DES");
で、デフォルトのモードとパディング方式によるDESの
Chipherインスタンス cip を作成し、
ByteBuffer bb = ByteBuffer.allocate(4);
bb.putInt(VALUE);
sourceData = bb.array();
で、"1234"のint数値をバイト配列sourceDataに格納し
cip.init(Cipher.ENCRYPT_MODE, key);
で、cip を暗号化モードに設定して(鍵も指定)
encodeData = cip.doFinal(sourceData);
で、sourceDataを暗号化したデータを、encodeDataに格納する。
cip.init(Cipher.DECRYPT_MODE, key);
で、cip を復号化モードに設定して(鍵も指定)
decodeData = cip.doFinal(encodeData);
で、encodeDataを復号化したデータを、decodeDataに格納する。
0335M.B.
NGNGとはいえ意外に使い道の少ない StringTokenizer
結局自分で Tokenizer を書いている
0336デフォルトの名無しさん
NGNG>>296
>>286の説明文です。
KeyGenerator kg = KeyGenerator.getInstance("DES");
SecretKey key = kg.generateKey();
で、DESアルゴリズムの秘密鍵 key を作成し
Cipher cip = Cipher.getInstance("DES");
で、デフォルトのモードとパディング方式によるDESの
Chipherインスタンス cip を作成し、
ByteBuffer bb = ByteBuffer.allocate(4);
bb.putInt(VALUE);
sourceData = bb.array();
で、"1234"のint数値をバイト配列sourceDataに格納し
cip.init(Cipher.ENCRYPT_MODE, key);
で、cip を暗号化モードに設定して(鍵も指定)
encodeData = cip.doFinal(sourceData);
で、sourceDataを暗号化したデータを、encodeDataに格納する。
cip.init(Cipher.DECRYPT_MODE, key);
で、cip を復号化モードに設定して(鍵も指定)
decodeData = cip.doFinal(encodeData);
で、encodeDataを復号化したデータを、decodeDataに格納する。
0337デフォルトの名無しさん
NGNG>>296
>>286の説明文です。
KeyGenerator kg = KeyGenerator.getInstance("DES");
SecretKey key = kg.generateKey();
で、DESアルゴリズムの秘密鍵 key を作成し
Cipher cip = Cipher.getInstance("DES");
で、デフォルトのモードとパディング方式によるDESの
Chipherインスタンス cip を作成し、
ByteBuffer bb = ByteBuffer.allocate(4);
bb.putInt(VALUE);
sourceData = bb.array();
で、"1234"のint数値をバイト配列sourceDataに格納し
cip.init(Cipher.ENCRYPT_MODE, key);
で、cip を暗号化モードに設定して(鍵も指定)
encodeData = cip.doFinal(sourceData);
で、sourceDataを暗号化したデータを、encodeDataに格納する。
cip.init(Cipher.DECRYPT_MODE, key);
で、cip を復号化モードに設定して(鍵も指定)
decodeData = cip.doFinal(encodeData);
で、encodeDataを復号化したデータを、decodeDataに格納する。
0338デフォルトの名無しさん
NGNGすいません。勝手に連投されてしまいました。
なんか遅いな〜、と思ってたら。
0339デフォルトの名無しさん
NGNG201〜300 しか表示してなかったんだろ。きっと。
それで連続ポストしちまったんだな。
0340デフォルトの名無しさん
NGNG少なくとも「勝手に連投」ってことは無い罠
0341デフォルトの名無しさん
NGNG>>縦2つ横4つにします
の意味が分かりません。
7777
7777
こんな感じのスロットなんですか?
0342デフォルトの名無しさん
NGNG0343M.B.
NGNG起動時に自動起動するようにセットしとけばよし。
Windows XP だったら、
Documents and Settings>(ユーザ名)>スタート メニュー>プログラム>スタートアップ
に、起動用のバッチファイルを書いて置いとけ。
0344M.B.
NGNG普通のスロットだと、「斜め」っつーのがあるんだが、
二列だと斜めがないのでどういうルールなのかわからん。
さらに言うと、スロットの妙味は
「揃いそうで揃わない絵柄の配置」にあるので、
むしろ確率計算のほうに興味があるのだが。
0345_
NGNG実行例のように表示するプログラムを作れ。
実行例:何月ですか? 6
英語で6月はJuneです。
宜しくお願いします。
0346デフォルトの名無しさん
NGNGint main(void)
{
char *month[]={"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
char m;
while(1){
printf("何月ですか? ");
m = fgetc(stdin);
printf("%d月は%sです。\n", m, month[m]);
}
return 0;
}
0347M.B.
NGNG「Java の宿題はここで出します」とかいうスレでも立てて、
課題を出す方も教育したほうがいいんでないかい?
0348JAVA超初心者
NGNGimport java.util.*;
class sample3
{
public static void main(String args[])
{
try{
String ss;
int num;
int idx = 0 , i , cnt=0, cnt2=0 , flag=0;
int inpData[][] = new int[1000][1];
int maxData = 0 , minData = 1000;
for( i=0; i<1000 ;i++)
{
for(int j=0;j<1;j++)
{
inpData[i][j]=0;
}
}
BufferedReader fr = new BufferedReader(
new FileReader("H16C2data2.txt"));
ss = fr.readLine();
StringTokenizer st = new StringTokenizer(ss , " ");
0349_
NGNGプログラムの作り方が習ってないのですが・・・
0350JAVA超初心者
NGNGString token = st.nextToken();
num = Integer.parseInt(token.trim());
idx++;
for(i=0;i<idx;i++) {
if(inpData[i][0]==num) {
inpData[i][1]++;
flag=1; }
if(flag==0) {
inpData[cnt2][1]++;
inpData[cnt2][0]=num;
cnt2++;
}
cnt++;
if(maxData<num)maxData = num;
if(minData>num)minData = num;
} }
System.out.println("入力件数=" + idx);
System.out.println("種類件数=" + cnt2);
System.out.println("最大値 =" + maxData);
System.out.println("最小値 =" + minData);
}
catch( Exception e) {
System.out.println("error");
} } }
のようにプログラムを組んだのですがエラーがでてしまいます。どなたか教えてください。
0351JAVA超初心者
NGNGどなたかわかる方教えてください。
ちなみに、入力件数と数値の種類などをもとめています。
0352M.B.
NGNG解説しよう。
ネタだ。
C 言語だ。
0354デフォルトの名無しさん
NGNG#include <stdlib.h>
int main(void)
{
char *month[] = {"(゚Д゚)ハァ?","Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
char m[3] = "";
char* ret;
int dm;
while(1){
printf("何月ですか? ");
m = fgets(stdin, 2);
dm = (int)strtol(m,&ret,10);
if(ret == m) dm = 0;
if(dm < 0 && dm > 12) dm = 0;
printf("%d月は%sです。\n", dm, month[m]);
}
return 0;
}
0355M.B.
NGNGimport java.io.*;
import java.util.*;
class sample2 {
public static void main( String[] args ) throws Exception {
if (args.length < 1) {
System.err.println("usage:sample3 filename");
System.exit(-1);
}
BufferedReader br = new BufferedReader(new FileReader(args[0]));
String ss = br.readLine();
TreeSet nums = new TreeSet();
StringTokenizer st = new StringTokenizer(ss , " ");
int idx = 0;
while(st.hasMoreTokens()) {
String token = st.nextToken();
Integer num = new Integer(token.trim());
nums.add(num);
idx += 1;
}
System.out.println("入力件数=" + idx);
System.out.println("種類件数=" + nums.size());
System.out.println("最大値 =" + nums.last());
System.out.println("最小値 =" + nums.first());
}
}
0356M.B.
NGNGusage が間違ってるのは藁って許せ。
"java sample2 <filename>" が正解。
0357M.B.
NGNG_| ̄|○ il||li
0358297
NGNG説明が不足していてすみませんでした。
お手数おかけします。
課題のスロットマシンは2X4です。図で表すと以下のような感じです。
○○○○
△△△△
回転するシリンダーの駒数は4つです。
それぞれの駒の図柄については特に指定はないのですがシリンダー1つにつき
4つもしくは5つの図形を入れます。(果物の図形を予定してます)
升目での倍率概念についてはなくていいです。
横1列に同じ絵柄が並べばそれで当たりでトータルの当たり回数を
表示させます。
加えて今回は横2列同時に当たることもありますのでその場合は
トータルカウントも2プラスになります。
よろしくお願いしますm(..)m
0359JAVA超初心者
NGNG数えるために二次元配列にしました。いまは出力してないんですが、あとで付け足す予定です。
if(flag==0) {
inpData[cnt2][1]++;
inpData[cnt2][0]=num;
cnt2++;
}
このあたりでエラーがでているようなのですが。。。
0361JAVA超初心者
NGNGinpData[x][y]=num[z];
ってできますか??
0362M.B.
NGNG見ててうざいから ArrayList に押し込んでから TreeSet に変換しれ。
瑣末なエラーに引っかかって時間を浪費するより、
まず見通しのよいコードにしてから
不具合を潰せ。
0363M.B.
NGNGimport java.io.*;
import java.util.*;
class sample3 {
public static void main( String[] args ) throws Exception {
if (args.length < 1) {
System.err.println("usage:sample3 filename");
System.exit(-1);
}
BufferedReader br = new BufferedReader(new FileReader(args[0]));
String ss = br.readLine();
ArrayList nums = new ArrayList();
StringTokenizer st = new StringTokenizer(ss , " ");
int idx = 0;
while(st.hasMoreTokens()) {
String token = st.nextToken();
Integer num = new Integer(token.trim());
nums.add(num);
idx += 1;
}
TreeSet nums2 = new TreeSet(nums);
System.out.println("入力件数=" + idx);
System.out.println("種類件数=" + nums2.size());
System.out.println("最大値 =" + nums2.last());
System.out.println("最小値 =" + nums2.first());
}
}
0364デフォルトの名無しさん
NGNG0365M.B.
NGNGnums.size() でOK。
0366デフォルトの名無しさん
NGNGマジでありがとうございます。
ところで、この中でどれが一番高速化を調べるにはどうすればいいのでしょうか。
0367デフォルトの名無しさん
NGNG0368デフォルトの名無しさん
NGNGここは同じJAVAでも、学校から出された課題、宿題を丸投げ依頼して、
そのプログラムを書いてもらう宿題スレッドです。
(課題や回答プログラムについての質問はOKですが)
質問スレッドは↓でお願いします。
【初心者】Java質問・相談スレッド57【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1101077884/l50
0369M.B.
NGNG>>1
> エラーが出たらメッセージをコピペ
if の中に num を書くと「初期化されない可能性がある」と
コンパイラに叱られる。
宣言部の
int num;
を
int num = 0;
に書き換えてみ。
0370M.B.
NGNG当たり判定とアプレット化は自分でしる。
import java.util.*;
public class Slot {
public static void main(String[] args) {
final int rows = 2;
final int cols = 4;
final String [][] 図柄 = {
{ "○", "●", "△", "★", "☆", "△",
"●", "○", "☆", "△", "★","△" },
{ "○", "☆", "△", "◎", "○", "☆",
"△", "○", "△", "☆", "★","△" },
{ "△", "○", "●", "△", "○",
"●", "△", "●", "○", "☆","○" },
{ "○", "●", "◎", "●", "★", "☆",
"△", "△", "○","●" }
};
int [] リール位置 = new int[cols];
int [][] 枠 = new int[rows][cols];
for (int col = 0;col < cols;col += 1) {
リール位置[col] = (int)Math.floor(図柄[col].length * Math.random());
}
for (int row = 0;row < rows;row += 1) {
for (int col = 0;col < cols;col += 1) {
枠[row][col] = (リール位置[col] + row) % 図柄[col].length;
System.out.print(図柄[col][枠[row][col]] + " ");
}
System.out.println();
}
}
}
0371>>358 スロットその1
NGNGimport java.util.*; import java.awt.*; import java.util.Timer;
public class HW29 extends JApplet {
static final int CS = 64, CC = 4, ROW = 2, CLM = 4, CYCLE = 60, CYMIN = 10, SLOW = 1;
BufferedImage[] img = new BufferedImage[CC];
ReelTask[] task = new ReelTask[ROW * CLM];
Graphics2D[] cg = new Graphics2D[ROW * CLM];
JLabel[] lab = new JLabel[ROW * CLM];
JButton btn_stop = new JButton("Stop"), btn_start = new JButton("Start");
JLabel msg = new JLabel("当たり回数:" + 0);
int crtReel, hitCount = 0;
Timer tim = new Timer();
public void init() {
Color[] col = {Color.blue, Color.red, Color.green, Color.yellow};
for (int i = 0; i < img.length; i++) {
img[i] = new BufferedImage(CS, CS, BufferedImage.TYPE_INT_ARGB);
Graphics2D g = img[i].createGraphics();
g.setColor(Color.white); g.fillRect(0, 0, CS, CS);
g.setColor(col[i]); g.fillOval(4, 4, CS - 8, CS - 8);
g.dispose();
}
0372>>358 スロットその2
NGNGcpal.setBorder(BorderFactory.createEmptyBorder(16, 16, 16, 16));
cpal.setLayout(new GridLayout(ROW, CLM, 16, 16)); cpal.setBackground(new Color(220, 220, 250));
for (int i = 0; i < cg.length; i++) {
BufferedImage cell = new BufferedImage(CS, CS, BufferedImage.TYPE_INT_ARGB);
cg[i] = cell.createGraphics();
lab[i] = new JLabel(new ImageIcon(cell));
lab[i].setBorder(BorderFactory.createLoweredBevelBorder());
cpal.add(lab[i]);
}
btn_stop.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(crtReel >= task.length) { return; }
task[crtReel++].stop();
if(crtReel >= task.length) { btn_stop.setEnabled(false); }
}
});
btn_start.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
for (int i = 0; i < task.length; i++) {
task[i] = new ReelTask(cg[i], lab[i]);
}
btn_start.setEnabled(false); btn_stop.setEnabled(true); crtReel = 0;
for (int i = 0; i < task.length; i++) {
tim.schedule(task[i], 100, (int) (Math.random() * CYCLE + CYMIN));
}
}
});
btn_stop.setEnabled(false); spal.add(btn_stop); spal.add(btn_start); spal.add(msg);
getContentPane().add(cpal); getContentPane().add(spal, BorderLayout.SOUTH);
}
0373:>>358 スロットその3
NGNGGraphics2D g; JLabel lab; int count, rotc = CS / 4; boolean stopFlag;
ReelTask(Graphics2D g, JLabel lab) { this.g = g; this.lab = lab; }
public void run() {
if (rotc <= 0) { cancel(); return; }
if (stopFlag) {
rotc -= SLOW;
if (rotc <= 0) { count = count + (int) (CS * 0.75) & ~(CS - 1) & (CS << 2) - 1; rotc = 0; }
}
int crt = count / CS, nxt = crt + 1 & (CC - 1);
int bound = count % CS, size1 = CS - bound, size2 = CS - size1;
g.drawImage(img[crt], 0, 0, CS, size1, 0, bound, CS, bound + size1, null);
g.drawImage(img[nxt], 0, size1, CS, CS, 0, 0, CS, size2, null);
count = (count + rotc) & (CS << 2) - 1;
lab.repaint();
}
void stop() { stopFlag = true; }
public boolean cancel() {
boolean flag = super.cancel();
if (crtReel >= task.length) {
crtReel = 0; btn_start.setEnabled(true);
for (int i = 0; i < ROW * CLM; i += CLM) {
int num = task[i].count; int k = i;
while (k < i + CLM && task[k].count == num) ++k;
if (k == i + CLM) { ++hitCount; }
}
msg.setText("当たり回数:" + hitCount);
} return flag;
}
}
}
0374古代帝國富士皇朝総帥・伯壬旭
NGNG全部コピペしてコンパイル。
アプレットサイズは、360 * 220 にしてください。
リールのマスの絵柄を変えたい時は、BufferedImage[] img に任意のイメージを
いれてください。
マスのサイズは定数 CS です。(このコードでは64)
リールにあるマスの数は定数 CC です。(このコードでは4)
0375283. 296
NGNG説明有難うございます。
また宜しくお願いします。
0376デフォルトの名無しさん
NGNG一人でやって詰まってまして、周りに聞ける人いないので、どうかお願いしますm(_)m
元のCheckboxアプレットです。これをアプリケーションにしたいです。
import java.awt.*;
import java.applet.Applet;
public class CheckboxApplet extends Applet {
Checkbox cb[] = new Checkbox[4];
public void init() {
cb[0] = new Checkbox("English");
cb[1] = new Checkbox("Mathematics");
cb[2] = new Checkbox("Physics");
cb[3] = new Checkbox("History");
for (int i = 0; i < 4; ++i ) add(cb[i]);
}
public boolean action(Event evt, Object obj) {
if(evt.target instanceof Checkbox) {
for (int i = 0; i < 4; ++i ) {
if ( evt.target == cb[i] ) {
System.out.println("Checkbox No."+i);
System.out.println("State is "+cb[i].getState());
break;
}
}
}
else {
System.out.println("Not a Checkbox event.");
}
return true;
}
}
0377376
NGNGimport java.awt.*;
public class CheckboxFrame extends Frame {
public boolean action(Event evt, Object obj) {
String label = obj.toString();
if(evt.target instanceof Checkbox) {
if(label.equals("English")){
System.out.println("Checkbox No.0");
System.out.println("English");}
else if(label.equals("Mathematics")){
System.out.println("Checkbox No.1");
System.out.println("Mathematics");}
else if(label.equals("Physics")){
System.out.println("Checkbox No.2");
System.out.println("Physics");}
else if(label.equals("History")){
System.out.println("Checkbox No.3");
System.out.println("History");}}
else {
System.out.println("Not a Checkbox event.");}
return true;}
(次に続きます)
0378376
NGNGpublic static void main(String args[]) {
CheckboxFrame bf = new CheckboxFrame();
bf.resize(400,300);
Panel pnl = new Panel();
pnl.setFont(new Font("Helvetica", Font.BOLD, 24));
Checkbox cb[] = new Checkbox[4];
cb[0] = new Checkbox("English");
cb[1] = new Checkbox("Mathematics");
cb[2] = new Checkbox("Physics");
cb[3] = new Checkbox("History");
pnl.add(cb[0]);
pnl.add(cb[1]);
pnl.add(cb[2]);
pnl.add(cb[3]);
bf.add(pnl);
bf.show();}}
どこか改良したら良い所ありますか?
どうか宜しくお願いしますm(_)m
0379デフォルトの名無しさん
NGNGString label = obj.toString();
を
String label = ((CheckBox)evt.target).getLabel();
とすればOK
0380376
NGNGやってみて、できました。ありがとうです。
感謝しますm(_)m
0381デフォルトの名無しさん
NGNGマウスをクリックしたときに新しく文字が表示されるようにするにはどうすればいいのでつか?
0382デフォルトの名無しさん
NGNGttp://zynekiller.hp.infoseek.co.jp/
0383283
NGNGこんどは、DESKeyをラッピングして別のユーザに送り、
アンラッピングする方法を教えて下さい。
課題の内容は、ユーザAで暗号化したデータをユーザBに送り、
ユーザBでデータを開き暗号化されていることを確認した後、
AからBに鍵を送り、データを複合化する。というものです。
宜しくお願いします。
0384M.B.
NGNGオトコなら成長したところを見せてみろw
0385デフォルトの名無しさん
NGNG「別のユーザに送り」「確認した後」「AからBに鍵を送り」
このAとBの通信の部分は、どのようにプログラム上で実現すれば
いいのですか? Socketを使うとか何か課題上の指定があるのですか?
0386283
NGNG0387デフォルトの名無しさん
NGNGimport java.awt.*;
import java.awt.event.*;
public class Soundnovel extends Applet implements MouseListener{
int i;
Image Haikei;
AudioClip bgm;
AudioClip se01;
public void init(){
this.setSize(640,480);
this.addMouseListener(this);
Haikei=this.getImage(this.getCodeBase(),"../img/背景.jpg");
bgm=this.getAudioClip(this.getCodeBase(),"../ado/natu.mid");
bgm=this.getAudioClip(this.getCodeBase(),"../ado/se.wav");
i=0;
}
public void paint(Graphics g){
g.drawImage(Haikei,0,0,this);
g.drawString("試しに描画",10,10);
}
public void mousePressed(MouseEvent e){
se01.play();
this.repaint();
} その他は省略します
}
0388デフォルトの名無しさん
NGNGてな具合でアプレット作ったらエラーは発生しませんでしたが、Haikeiが描画されてませんでした。何故ですか?
質問2
このアプレットでサウンドノベルのように背景を暗くして、文字をマウスがクリックされる度に表示していき、改ページさせるにはどうすればよいのですか?
明後日提出なので早めにお願いします。
0389デフォルトの名無しさん
NGNGてな具合でアプレット作ったらエラーは発生しませんでしたが、Haikeiが描画されてませんでした。何故ですか?
質問2
このアプレットでサウンドノベルのように背景を暗くして、文字をマウスがクリックされる度に表示していき、改ページさせるにはどうすればよいのですか?
明後日提出なので早めにお願いします。
0390デフォルトの名無しさん
NGNG0391297
NGNGありがとうございます!
助かりました。
早速アプレット化にチャレンジしてますねm(..)m
>>374
遅くなりましたがありがとうございました!
助かりました。
お二人ともお手数おかけしました。
本当にありがとうございました。
0392デフォルトの名無しさん
NGNGm=質量、d~2x/dt~2=加速度、k=バネ定数として、初期値とバネ定数と質量は適当な値をいれます。
連立一階微分方程式になおす
dv/dt=v
dv/dt=-k*x/m
連立一階微分方程式
dy1/dt=f1(t,y1,y2)
dy2/dt=f2(t,y1,y2)
に対するルンゲクッタ法などにおいて
f1(t,y1,y1)=y2
f2(t,y1,y2)=-k*y1/m
などをつかって使って解いてくださいおねがいします。
ttp://sparrow.math.ryukoku.ac.jp/~junta/edu/graphics/exercise/8.html
に作ってもらいたいアプレットがのっています。
ほんとおねがいします。
0393デフォルトの名無しさん
NGNGttp://sparrow.math.ryukoku.ac.jp/~junta/edu/graphics/note.pdf
ここの第八回をみてもらえれば、さらに詳しくのってます。
0394>>383 その1
NGNGimport java.io.*;
import java.security.*;
import javax.crypto.*;
import javax.crypto.spec.SecretKeySpec;
public class HW30 {
public static void main(String[] args) {
try {
new Thread(new Server()).start();
new Client();
} catch (Exception e) {
System.out.println("error");
}
finally {
Server.endFlag = true;
}
}
}
0395>>383 その2
NGNGbyte[] encData, wrappedKey;
String encAlgo;
int keyType;
Key secretKey, publicKey, privateKey;
Client() throws IOException {
super(InetAddress.getByName("localhost"), 8080);
byte[] buf = new byte[1000];
DataInputStream in = new DataInputStream(getInputStream());
OutputStream out = getOutputStream();
System.out.println("client: send data文を送る");
out.write("send data\r\n".getBytes("ISO-8859-1"));
System.out.println("client: 鍵ラップの為の公開鍵(のつもり)を送る");
try {
privateKey = publicKey = KeyGenerator.getInstance("DES").generateKey();
} catch (NoSuchAlgorithmException e1) {
throw new IOException();
}
byte[] keyData = publicKey.getEncoded();
out.write((String.valueOf(keyData.length) + "\r\n").getBytes("ISO-8859-1"));
out.write(keyData);
int size = in.read(buf);
encData = new byte[size];
System.arraycopy(buf, 0, encData, 0, size);
System.out.println("client: 暗号データを受け取る");
System.out.println("client: send key文を送る");
out.write("send key\r\n".getBytes("ISO-8859-1"));
0396>>383 その3
NGNGkeyType = Integer.parseInt(in.readLine());
System.out.println("client: 暗号アルゴリズム(" + encAlgo + ")と鍵タイプ(SECRET_KEY)を受け取る");
size = in.read(buf);
wrappedKey = new byte[size];
System.arraycopy(buf, 0, wrappedKey, 0, size);
System.out.println("client: ラップされた秘密鍵を受け取る");
System.out.println("client: end文を送る");
out.write("end\r\n".getBytes("ISO-8859-1"));
in.close();
out.close();
close();
try {
System.out.println("client: ラップされた秘密鍵を、先の公開鍵とペアの個人鍵(のつもり)でアンラップする");
Cipher cip = Cipher.getInstance("DES");
cip.init(Cipher.UNWRAP_MODE, privateKey);
secretKey = cip.unwrap(wrappedKey, encAlgo, keyType);
System.out.println("client: アンラップされた秘密鍵で、暗号データを復号する");
cip.init(Cipher.DECRYPT_MODE, secretKey);
byte[] decData = cip.doFinal(encData);
String data = new String(decData);
System.out.println("client: 復号文章 = 「" + data + "」");
} catch (Exception e) {
throw new IOException();
}
}
}
0397>>383 その4
NGNGstatic boolean endFlag;
String data = "あいうえおかきくけこさしすせそたちつてと";
Key secretKey, publicKey;
Cipher cip;
Server() throws IOException {
super(8080);
setSoTimeout(100);
try {
secretKey = KeyGenerator.getInstance("DES").generateKey();
cip = Cipher.getInstance("DES");
} catch (Exception e) {
throw new IOException();
}
}
public void run() {
while (!endFlag) {
try {
Socket sc = accept();
new IOThread(sc).start();
} catch (SocketTimeoutException e) {
} catch (Exception e) {
break;
}
}
try {
close();
} catch (IOException e) { }
}
0398>>383 その5
NGNGSocket sc;
IOThread(Socket sc) {
this.sc = sc;
}
public void run() {
try {
DataInputStream in = new DataInputStream(sc.getInputStream());
OutputStream out = sc.getOutputStream();
while (true) {
String line = in.readLine();
System.out.println("server: " + line + "文を受け取る");
if (line.equals("send data")) {
int size = Integer.parseInt(in.readLine());
byte[] keyData = new byte[size];
in.read(keyData);
publicKey = new SecretKeySpec(keyData, "DES");
System.out.println("server: 鍵ラップの為の公開鍵(のつもり)を受け取る");
cip.init(Cipher.ENCRYPT_MODE, secretKey);
byte[] encData = cip.doFinal(data.getBytes());
System.out.println("server: 暗号化して送る文章=「" + data + "」");
System.out.println("server: 文章を秘密鍵で暗号化して送る");
out.write(encData);
0399>>383 その6
NGNGSystem.out.println("server: 秘密鍵暗号アルゴリズム(" + secretKey.getAlgorithm()
+ ")と秘密鍵タイプ(SECRET_KEY)を送る");
out.write((secretKey.getAlgorithm() + "\r\n").getBytes("ISO-8859-1"));
out.write((String.valueOf(Cipher.SECRET_KEY) + "\r\n").getBytes("ISO-8859-1"));
System.out.println("server: 秘密鍵を、公開鍵(のつもり)でラップする");
cip = Cipher.getInstance("DES");
cip.init(Cipher.WRAP_MODE, publicKey);
byte[] wrapped = cip.wrap(secretKey);
System.out.println("server: ラップされた秘密鍵を送る");
out.write(wrapped);
} else if (line.equals("end")) {
break;
}
}
in.close();
out.close();
sc.close();
} catch (Exception e) { }
}
}
}
0400古代帝國富士皇朝総帥・伯壬旭
NGNG全部コピペしてコンパイルしてください。
ClientクラスとServerクラスでやり取りする形になってます。
ただ、このコードには欠陥があり、通常DESKeyのラップとアンラップは
RSAアルゴリズムなどの公開鍵&個人鍵で行うのですが、Javaの通常の環境だと
CipherインスタンスがRSAで生成できないケースがあるので、
仕方なくここでは、DESで生成した鍵を公開鍵&個人鍵に見立てて、
例えばという形で書きました。
公開鍵&個人鍵の次に(のつもり)とあるのはその為です。
RSAでCipherインスタンスが生成できたら、そこら辺を修正してください。
0401古代帝國富士皇朝総帥・伯壬旭
NGNG0402デフォルトの名無しさん
NGNG解きたいのは山々なんですが・・・・
ルンゲクッタがさっぱり分からなくて・・・・
0403デフォルトの名無しさん
NGNGいや、初めて提示された4〜5日前からやろうとは思ってたんですよ。
ただルンゲクッタが分からなくて・・・
計算部分のコートを書いてくれれば、アプレット化しますので。
0404デフォルトの名無しさん
NGNG>403
ttp://www.geocities.jp/supermisosan/source/rkse.html
ここにC言語ですけどそれっぽいのがのっています。
なんとかなりますかね?
0405M.B.
NGNG単段型の陽公式で、
「現時点の値」から「次の時点の値」を求める過程で、
いくつかの中間的時点における仮の値を算定し、
その線形和で精度を高める方法を総称して、
Runge-Kutta型の公式という(ただし、文献により定義は多少異なる)。
【歴史】C.Runge が1895年に発表、W.Kutta が一般化(1901)。
類似の公式が続々と発表され、
コンピュータの出現以前に既にかなり普及していた。
0406デフォルトの名無しさん
NGNGpublic void show(int n){
}
}
…
objA.show(10);
objB.show(20);
objAとobjBは別クラスのオブジェクトでメソッドを呼び出すときに
オブジェクトの属性によってメソッドの処理を変えたいと思ってます。
この引数nを渡したオブジェクトを調べたいのですがわかりません…
よろしくお願いします。
0407M.B.
NGNG・二次のRunge-Kutta法(1/2公式)
・三次のRunge-Kutta法(RK3-classic)
・Ralston の最適 Runde-Kutta法
・Runge-Kutta-Gill法
・Merson の方法
・Ceschino の公式
・田中法
……といろいろあるので、
とりあえず、f(x) + �冉(x)*�凅 で書いてもらって、
Runge-Kutta 法に直すのは後でやるというのは
ど う だ ?
0408M.B.
NGNGついでに言っとくと、
> dv/dt=v
> dv/dt=-k*x/m
ではなくて、
> dx/dt を v と置いたとき、
> dv/dt=-k*x/m 。
> すなわち、
> d^2x/dt^2 = =-k*x/m。
だから、
初期値が x と v に入っていて、
k・m・dt が定数であるとして、
作業用変数に x2・v2 を使って、
ループの中で
x2 = x + v * dt;
v2 = v - k * x / m * dt;
x = x2;
v = v2;
を繰り返せばよし。
0409>>388 その1
NGNGimport java.awt.image.*; import java.net.URL;
public class HW31 extends JApplet {
String[] textDatas = {"あいうえお\nかきくけこ$さしすせそ\nアイウエオ$カキクケコ\nサシスセソ",
"たちつてと\nなにぬねの$はひふへほ\nタチツテト$ナニヌネノ\nハヒフヘホ",
"まみむめも\nやいゆえよ$らりるれろ\nマミムメモ$ヤイユエヨ\nラリルレロ"};
String[] imageURLs = {"/*ここに任意のイメージのパスを入れる*/"};
BufferedImage bcg; String[] parags;
int textPage, imgPage, paragNo; boolean brightFlag;
JLabel lab = new ScreenLabel();
public void init() {
addComponentListener(new ComponentListener() {
public void componentShown(ComponentEvent e) { lab.repaint(); }
public void componentHidden(ComponentEvent e) { }
public void componentResized(ComponentEvent e) { }
public void componentMoved(ComponentEvent e) { }
});
addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getButton() == e.BUTTON1) {
if (brightFlag) return;
++paragNo; if (paragNo >= parags.length) { nextPage(); }
} else {
reverseBright();
}
lab.repaint();
}
});
loadBackImage(); parags = textDatas[textPage].split("\\$");
lab.setOpaque(true); lab.setBackground(Color.black); getContentPane().add(lab);
}
0410>>388 その2
NGNGif (textPage < textDatas.length - 1) {
++textPage; parags = textDatas[textPage].split("\\$"); paragNo = 0;
}
}
void loadBackImage() {
Image img = getImage(getCodeBase(), imageURLs[imgPage]);
while (img == null || img.getWidth(null) == -1 || img.getHeight(null) == -1) ;
int[] buf = new int[img.getWidth(null) * img.getHeight(null)];
PixelGrabber grab = new PixelGrabber(img, 0, 0, img.getWidth(null), img.getHeight(null), buf, 0, img.getWidth(null));
try {
grab.grabPixels();
} catch (InterruptedException e) {
return;
}
for (int i = 0; i < buf.length; ++i) {
buf[i] &= 0x80ffffff;
}
bcg = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_ARGB);
bcg.setRGB(0, 0, bcg.getWidth(), bcg.getHeight(), buf, 0, bcg.getWidth());
lab.setIcon(new ImageIcon(bcg));
}
0411>>388 その3
NGNGbrightFlag ^= true;
int[] buf = new int[bcg.getWidth() * bcg.getHeight()];
bcg.getRGB(0, 0, bcg.getWidth(), bcg.getHeight(), buf, 0, bcg.getWidth());
if (brightFlag) {
for (int i = 0; i < buf.length; i++) buf[i] |= 0xff000000;
} else {
for (int i = 0; i < buf.length; i++) buf[i] = buf[i] & 0x00ffffff | 0x80000000;
}
bcg.setRGB(0, 0, bcg.getWidth(), bcg.getHeight(), buf, 0, bcg.getWidth());
}
class ScreenLabel extends JLabel {
public void paint(Graphics g) {
super.paint(g);
if (brightFlag) return;
g.setFont(new Font("Dialog", 1, 30)); g.setColor(Color.white);
int row = 0;
for (int a = 0; a < parags.length && a <= paragNo; a++) {
String[] lines = parags[a].split("[\\n]");
for (int b = 0; b < lines.length; b++) {
g.drawString(lines[b], 0,
row++ * g.getFontMetrics().getHeight() + g.getFontMetrics().getAscent());
}
}
}
}
}
0412M.B.
NGNG定常振動のはずが発振しやがった。
それはさておきこの問題、拡張性を無視すればそう難しくなく書けるが、
パッケージ化とか考えると(とっくに公開されてはいるのだが)
正規形に直した式を渡す部分はともかくも(C でいうなら
値をセットする領域の配列と、その配列を対象とした
関数のポインタを渡すような形になる)、
初期値をセットする部分でけっこうプログラム的に
嬉しくないことになる。
なんかこう、「こういう形で書け」みたいな情報は
ないのか?
ついでに>>407は
×とりあえず、f(x) + �冉(x)*�凅 で書いてもらって、
○とりあえず、f(t+�冲) = f(t) + f'(t)*�冲 の形で書いてもらって、
だ。
0413古代帝國富士皇朝総帥・伯壬旭
NGNG全部コピペしてコンパイル。
まず、String[] imageURLs に任意のイメージファイルのパスを入れてください。
String[] textDatas にも任意のテキストをいれてください。
左クリックでパラグラフが進みます。
右クリックで、テキストモードとイメージモードが切り替わります。
0414デフォルトの名無しさん
NGNGttp://sparrow.math.ryukoku.ac.jp/~junta/edu/graphics/schedule.html
ここにある講義ノートとかじゃ参考にならないですかね?
大まかな形はのってると思います。以前までの課題にも書き方がかいてあります。
どうかよろしくお願いします。
0415デフォルトの名無しさん
NGNG問題は計算・・・・
計算部分の式だけでも書いてくれれば(普通の数式でいい)
だれかがコードを書くと思うのだが
0416M.B.
NGNGとりあえずアニメーションをどうやってるかは把握した。
「th.sleep(10);」っておまえ厨房じゃ(ry) _| ̄|○
インタフェースに関してはなんの解決にもなっとらんので、
とりあえず考えてみる。
0417デフォルトの名無しさん
NGNGttp://sparrow.math.ryukoku.ac.jp/~junta/edu/graphics/schedule.html
ここにある講義ノートの3章くらいからルンゲクッタ法のやりかたと、8章のところに計算の参考があります。
0418M.B.
NGNGとりあえず書いてはみたのだが、
通常f'(t)は x から直接に与えられているようで、
力学シミュレーションのようにf''(t)は x から分かっても
f'(t)は初期値に依存するもんで、
漏れの書いたプログラムが本当に Runge-Kutta になっとるかどうか
よくわからん。
とりあえず
k / m → K として、
x' = v
v' = K * x
つーところから出発して、考え直してみる。
0419デフォルトの名無しさん
NGNGサーバにリクエスト送るまでは問題ないんですが、サーバからレスポンス受け取る段になって難儀しています。
該当部分のソースは…
//ストリーム取得部分(sはクライアントへのソケット)
InputStream in =s.getInputStream();
BufferedReader bin = new BufferedReader(
new InputStreamReader(in));
(中略)
//実際にレスポンスを受ける部分(buffはChar[128])
while((bin.read(buff,0,1))!=-1){
response.append(buff[0]);
}
と、スタンダードなソースです。
コンパイルし、適当なサーバにリクエストを送ると、ちゃんとレスポンスを、
HTTP/1.1 200 OK
Content-Type: text/html; charset=iso-2022-jp
<以下 ヘッダの残りやコンテンツの内容>
みたいには返してくれるんですが、最後の最後、
すべての文字を読み取った後に更にreadしようとすると、完全にプログラムが停滞するんです。
リファレンスとか見てる限り、停滞せずにreadが-1を返してくれそうなものなんですが…。
しかも、www.yahoo.co.jpだと(ちゃんと-1が返ってきて)うまくwhileを抜けてくれるのに、
www.google.co.jpだと上記の現象(readの戻り値が帰ってこない)が起こるんです。
ちなみに、特にエラーメッセージは返ってきません。完全に停止します。
どなたか、何か原因に心当たりは有りませんでしょうか…。
0420383
NGNG有難うございます。動作しました。しかしコンパイルした所、
注: C\test\HW30.java は推奨されない API を使用
またはオーバーライドしています。
注: 詳細については、-deprecation
オプションを指定して再コンパイルしてください。
という警告がでました。これは無視しても平気ですよね?
あと、DESKeyをラッピングせずに送るにはどうすれば良いでしょうか?
ラッピングせずに鍵は送れるのですか?
0421デフォルトの名無しさん
NGNGしかしコンパイルしたら
コンストラクター PixelGrabber(Image,int,int,int,int[],int,int)は未定義です
インポートjava.net.URLは決して使用されません。
staticフィールドMouseEvent.BUTTON1には静的にアクセスする必要があります
とエラーがでました
0422デフォルトの名無しさん
NGNGif文のなかに空白文字を検知するisSpaceをいれたいんですけど
いろいろ調べても例とかがないんですよ;;
エラーメッセージはclassがないって言われます。
空白文字をなくして表示するようにしたいんですけどどうすればいいでしょうか?
お願いします。
import java.io.*;
public class Kuhaku{
public static void main(String ar[]) throws Exception{
FileInputStream f=new FileInputStream("Kuhaku.java");
int i;
while((i=f.read())!=-1){
if(Character.isSpace(char i))
System.out.print((char)i);
}
f.close();
}
}
0423古代帝國富士皇朝総帥・伯壬旭
NGNG>>コンストラクター PixelGrabber(Image,int,int,int,int[],int,int)は未定義です
上のエラー例では、コンストラクタの引数は7個であり
ソースでは
new PixelGrabber(img, 0, 0, img.getWidth(null), img.getHeight(null), buf, 0, img.getWidth(null));
と、8個書いてあるので、コピペを間違えてるかと思われます。
>>インポートjava.net.URLは決して使用されません。
これは実行上問題の無い警告です(あってもOK)。
単なる消し忘れです。消してください。
>>staticフィールドMouseEvent.BUTTON1には静的にアクセスする必要があります
これも実行上問題の無い警告です。
長い単語を書くのが面倒だったので・・・
e.BUTTON1の部分を、MouseEvent.BUTTON1と直してください。
0424古代帝國富士皇朝総帥・伯壬旭
NGNG警告ですので、実行上問題ありません。
自分の知識では、Socket通信時には、1バイト文字をそのままゼロ拡張で
Stringに変換するDataInputStream.readLine()を使うのが一番便利ですので
そうしてます。
ラップしないでDES鍵を送るには
byte[] keyData = key.getEncoded();
out.write(keyData);
として、
それを受け取るのは
byte[] keyData = new byte[任意のサイズ];
in.read(keyData);
Key key = new SecretKeySpec(keyData, "DES");
としてください。
ただ、盗聴されても問題ないようにデータを暗号化してるのに、その
鍵をそのまま送ってしまうと、全くの無意味になってしまいますが・・・
0425デフォルトの名無しさん
NGNG0426383 420
NGNGいつも有難うございます。
0427デフォルトの名無しさん
NGNGGauss型積分でもとめよ。
プログラムは写すだけなのですが、コンパイルの方法がわかりません。
教えてください。
使用するのはfortran90らしいです。
おねがいします。
0428デフォルトの名無しさん
NGNGGauss型積分でもとめよ。
プログラムは写すだけなのですが、コンパイルの方法がわかりません。
教えてください。
使用するのはfortran90らしいです。
おねがいします。
0429427
NGNGrea*8 p(6),w(6),s,f,a
write(*,*) 'Give number of points(2<= np <=6)'
read(*,*) np
call lgndre(np,p,w)
s=0.0d0
do 10 i=1,np
10 s=s+f(p(i))*w(i)
write(*,*) 'result of intergration is ',s
a=dlog(2.0d0)
write(*,*) 'the value of log(2.0) is ',a
end
real*8 function f(x)
real*8 x
f=1.0d0/(x+3.0d0) !関数 f(x)=1/(x+3) の定義
return
end
0430427
NGNGreal*8 p(np),w(np)
if(np,gt.6) stop
if(np,eq.2) then
p(2)=0.57735026918962d0? !sqrt(1/3)
w(2)=1.0
elseif(np.eq.3) then
p(2)=0.0
p(3)=0.774596669241483d0 !sqrt(3/5)
w(2)=0.888888888888889d0
w(3)=0.555555555555556d0
elseif(np.eq.4) then
p(3)=0.339981043584856d0 !sqrt((15-2sqrt(30))/35)
p(4)=0.861136311594053d0 !sqrt((15+2sqrt(30))/35)
w(3)=0.652145154862546d0
w(4)=0.347854845137454d0
elseif(np.eq.5) then
0431デフォルトの名無しさん
NGNG0432427
NGNGp(4)=0.538469310105683d0
p(5)=0.906179845938664d0
w(3)=0.568888888888889d0
w(4)=0.478628670499366d0
w(5)=0.236926885056189d0
else
p(4)=0.238619186083197d0
p(5)=0.661209386466265d0
p(6)=o.467913934572691d0
w(4)=0.497913934572681d0
w(5)=0.360761573048139d0
w(6)=0.171324492379170d0
endif
do 20 i=1,np/2
p(i)=-p(np+1-i)
20 w(i)=w(np+1-i)
return
end
0433427
NGNGp(4)=0.538469310105683d0
p(5)=0.906179845938664d0
w(3)=0.568888888888889d0
w(4)=0.478628670499366d0
w(5)=0.236926885056189d0
else
p(4)=0.238619186083197d0
p(5)=0.661209386466265d0
p(6)=o.467913934572691d0
w(4)=0.497913934572681d0
w(5)=0.360761573048139d0
w(6)=0.171324492379170d0
endif
do 20 i=1,np/2
p(i)=-p(np+1-i)
20 w(i)=w(np+1-i)
return
end
0434デフォルトの名無しさん
NGNGgeometry = new LineStripArray(vertex.length, GeometryArray.COORDINATES | GeometryArray.COLOR_3, stripVertexCounts);
geometry.setCoordinates(0, vertex);
Color3f[] colors = { new Color3f(1.0f, 0.0f, 0.0f),
new Color3f(1.0f, 0.0f, 0.0f),
};
geometry.setColors(0, colors);
shape = new Shape3D(geometry);
tg.addChild(shape);
と、定義した色をボタンが押されたときに任意の色に変更したいのですが
bt_arrow.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e){
Color3f[] colors1 = { new Color3f(1.0f, 0.0f, 0.0f),
new Color3f(0.0f, 0.5f, 0.0f),
};
geometry.setColors(0, colors1);
}
});
だとエラーが出てしまいます。どうすればいいのでしょうか
0435デフォルトの名無しさん
NGNG0436>>392 単振動 その1
NGNGimport java.awt.event.*; import java.awt.image.*; import java.awt.*;
public class HW32 extends JApplet {
double ans[]; double l = 200, g = 50, m = 32;
JLabel lab = new JLabel(); BufferedImage img = new BufferedImage(600, 400, BufferedImage.TYPE_INT_ARGB);
Timer tim = new Timer(); TimerTask task;
public void init() {
ans = comupte();
JPanel pal = new JPanel();
JButton btn_s = new JButton("再スタート");
final JSpinner spn_l = new JSpinner(new SpinnerNumberModel(200, 100, 300, 50)),
spn_g = new JSpinner(new SpinnerNumberModel(50, 10, 100, 10)),
spn_m = new JSpinner(new SpinnerNumberModel(32, 8, 64, 8));
pal.add(btn_s); pal.add(new JLabel("長さ")); pal.add(spn_l); pal.add(new JLabel("バネ定数"));
pal.add(spn_g); pal.add(new JLabel("質量")); pal.add(spn_m);
getContentPane().add(pal, BorderLayout.SOUTH);
btn_s.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
task.cancel();
l = ((Number) spn_l.getValue()).intValue();
g = ((Number) spn_g.getValue()).intValue();
m = ((Number) spn_m.getValue()).intValue();
double t = 2 * Math.PI * Math.sqrt(l / g);
task = new Task(); tim.schedule(task, 100, (int) t);
}
});
lab.setHorizontalAlignment(JLabel.LEFT); lab.setVerticalAlignment(JLabel.TOP);
lab.setIcon(new ImageIcon(img)); getContentPane().add(lab);
double t = 2 * Math.PI * Math.sqrt(l / g);
task = new Task(); tim.schedule(task, 100, (int) (t / 2));
}
0437>>392 単振動 その2
NGNGint idx, csz, hcs;
Graphics2D cg; Rectangle prevR = new Rectangle();
static final int HCEN = 300, VCEN = 200;
Task() {
cg = img.createGraphics();
cg.setBackground(new Color(240, 240, 255));
cg.clearRect(0, 0, img.getWidth(), img.getHeight());
cg.setColor(Color.black);
csz = (int) m;
hcs = csz / 2;
int x = (int) (ans[idx++] * l + HCEN);
cg.fillOval(x - hcs, VCEN - hcs, csz, csz);
prevR.setBounds(x - hcs, VCEN - hcs, csz, csz);
cg.drawLine(x, VCEN, HCEN, VCEN);
lab.repaint();
}
public void run() {
cg.clearRect(prevR.x, prevR.y, prevR.width, prevR.height);
int x = (int) (ans[idx++] * l + HCEN);
cg.fillOval(x - hcs, VCEN - hcs, csz, csz);
cg.drawLine(x, VCEN, HCEN, VCEN);
if (idx == 100) {
idx = 0;
}
prevR.setBounds(Math.min(prevR.x, x - hcs), prevR.y,
Math.max(prevR.x + prevR.width, x - hcs + csz) - Math.min(prevR.x, x - hcs), prevR.height);
lab.repaint(prevR);
}
}
0438>>392 単振動 その3
NGNGdouble x = 1.0, v = 0, dt = 0.01, tmax = Math.PI * 2;
double[] k1 = new double[2], k2 = new double[2], k3 = new double[2], k4 = new double[2];
double[] ans = new double[100];
double next = tmax / 100, add = tmax / 100;
int idx = 0; ans[idx++] = x;
for (double t = 0; t < tmax; t += dt) {
k1[0] = dt * f1(t, x, v);
k1[1] = dt * f2(t, x, v);
k2[0] = dt * f1(t + dt / 2.0, x + k1[0] / 2.0, v + k1[1] / 2.0);
k2[1] = dt * f2(t + dt / 2.0, x + k1[0] / 2.0, v + k1[1] / 2.0);
k3[0] = dt * f1(t + dt / 2.0, x + k2[0] / 2.0, v + k2[1] / 2.0);
k3[1] = dt * f2(t + dt / 2.0, x + k2[0] / 2.0, v + k2[1] / 2.0);
k4[0] = dt * f1(t + dt, x + k3[0], v + k3[1]);
k4[1] = dt * f2(t + dt, x + k3[0], v + k3[1]);
x = x + (k1[0] + 2.0 * k2[0] + 2.0 * k3[0] + k4[0]) / 6.0;
v = v + (k1[1] + 2.0 * k2[1] + 2.0 * k3[1] + k4[1]) / 6.0;
if (t >= next) {
ans[idx++] = x; next += add;
}
}
return ans;
}
static double f1(double t, double x, double v) {
return v;
}
static double f2(double t, double x, double v) {
return (-x);
}
}
0439>>392 単振り子 その1
NGNGimport java.awt.event.*; import java.awt.image.*; import java.awt.*;
public class HW33 extends JApplet {
double ans[]; double l = 200, g = 10, m = 32, d = 45;
JLabel lab = new JLabel(); BufferedImage img = new BufferedImage(600, 400, BufferedImage.TYPE_INT_ARGB);
Timer tim = new Timer(); TimerTask task;
public void init() {
ans = comupte();
JPanel pal = new JPanel(); JButton btn_s = new JButton("再スタート");
final JSpinner spn_l = new JSpinner(new SpinnerNumberModel(200, 100, 300, 50)),
spn_g = new JSpinner(new SpinnerNumberModel(10, 5, 20, 1)),
spn_m = new JSpinner(new SpinnerNumberModel(32, 8, 64, 8)),
spn_d = new JSpinner(new SpinnerNumberModel(45, 5, 90, 5));
pal.add(btn_s); pal.add(new JLabel("長さ")); pal.add(spn_l); pal.add(new JLabel("重力"));
pal.add(spn_g); pal.add(new JLabel("質量")); pal.add(spn_m); pal.add(new JLabel("角度")); pal.add(spn_d);
getContentPane().add(pal, BorderLayout.SOUTH);
btn_s.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
task.cancel();
l = ((Number) spn_l.getValue()).intValue(); g = ((Number) spn_g.getValue()).intValue() * 5;
m = ((Number) spn_m.getValue()).intValue(); d = ((Number) spn_d.getValue()).intValue();
double t = 2 * Math.PI * Math.sqrt(l / g);
task = new Task(); tim.schedule(task, 100, (int) t);
}
});
lab.setHorizontalAlignment(JLabel.LEFT); lab.setVerticalAlignment(JLabel.TOP);
lab.setIcon(new ImageIcon(img)); getContentPane().add(lab);
double t = 2 * Math.PI * Math.sqrt(l / g);
task = new Task(); tim.schedule(task, 100, (int) (t / 2));
}
0440>>392 単振り子 その2
NGNGint idx, csz, hcs;
Graphics2D cg; Rectangle prevR = new Rectangle(), allR = new Rectangle();
static final int HCEN = 300, VCEN = 0;
Task() {
cg = img.createGraphics(); cg.setBackground(new Color(240, 240, 255));
cg.clearRect(0, 0, img.getWidth(), img.getHeight()); cg.setColor(Color.black);
csz = (int) m; hcs = csz / 2;
double rad = Math.toRadians((int) (ans[idx++] * d));
int y = (int) (Math.cos(rad) * l);
int x = (int) (Math.sin(rad) * l) + HCEN;
cg.fillOval(x - hcs, y - hcs, csz, csz); cg.drawLine(x, y, HCEN, VCEN);
prevR.setBounds(x - hcs, y - hcs, csz, csz);
allR.setBounds((int) (HCEN - l - hcs), (int) (VCEN - l - hcs),
(int) (l * 2 + csz), (int) (l * 2 + csz));
lab.repaint();
}
public void run() {
cg.clearRect(prevR.x, prevR.y, prevR.width, prevR.height);
cg.setColor(cg.getBackground());
cg.drawLine(prevR.x + hcs, prevR.y + hcs, HCEN, VCEN);
cg.setColor(Color.black);
double rad = Math.toRadians((int) (ans[idx++] * d));
int y = (int) (Math.cos(rad) * l);
int x = (int) (Math.sin(rad) * l) + HCEN;
cg.fillOval(x - hcs, y - hcs, csz, csz); cg.drawLine(x, y, HCEN, VCEN);
if (idx == 100) { idx = 0; }
prevR.setBounds(x - hcs, y - hcs, csz, csz);
lab.repaint(allR);
}
}
0441>>392 単振り子 その3
NGNGdouble x = 1.0, v = 0, dt = 0.01, tmax = Math.PI * 2;
double[] k1 = new double[2], k2 = new double[2], k3 = new double[2], k4 = new double[2];
double[] ans = new double[100];
double next = tmax / 100, add = tmax / 100;
int idx = 0; ans[idx++] = x;
for (double t = 0; t < tmax; t += dt) {
k1[0] = dt * f1(t, x, v);
k1[1] = dt * f2(t, x, v);
k2[0] = dt * f1(t + dt / 2.0, x + k1[0] / 2.0, v + k1[1] / 2.0);
k2[1] = dt * f2(t + dt / 2.0, x + k1[0] / 2.0, v + k1[1] / 2.0);
k3[0] = dt * f1(t + dt / 2.0, x + k2[0] / 2.0, v + k2[1] / 2.0);
k3[1] = dt * f2(t + dt / 2.0, x + k2[0] / 2.0, v + k2[1] / 2.0);
k4[0] = dt * f1(t + dt, x + k3[0], v + k3[1]);
k4[1] = dt * f2(t + dt, x + k3[0], v + k3[1]);
x = x + (k1[0] + 2.0 * k2[0] + 2.0 * k3[0] + k4[0]) / 6.0;
v = v + (k1[1] + 2.0 * k2[1] + 2.0 * k3[1] + k4[1]) / 6.0;
if (t >= next) {
ans[idx++] = x; next += add;
}
}
return ans;
}
static double f1(double t, double x, double v) {
return v;
}
static double f2(double t, double x, double v) {
return (-x);
}
}
0442古代帝國富士皇朝総帥・伯壬旭
NGNG>>414
全部コピペしてコンパイル。
アプレットサイズは、600×400 にしてください。
0443デフォルトの名無しさん
NGNGgeometryがローカル変数なら、finalで宣言する。
0444383 420
NGNG鍵をラップしないで送るプログラムを自分で組んでみたのですが、
エラーが出てしまいます。コンパイルは通るのですが、
例外エラーがでてしまいます。何でなのでしょうか?
ちなみにサーバーとクライアントは別々のプログラムにしています。
クライアントから暗号化したデータを送り、サーバで複合化するように
しています。暗号化するデータはint型の5678です。
プログラムを上げるので直して下さい。
0445444 サーバ1
NGNGpublic static void main(String args[]) {
byte[] encAlgo = null, keyDate = null;
byte[] buf = new byte[1000];
try {
ServerSocket ss = new ServerSocket(5555);
Socket sc = ss.accept();
System.out.println(sc.getInetAddress() +"から接続を受け付けました");
OutputStream out = sc.getOutputStream();
DataInputStream in = new DataInputStream(sc.getInputStream());
PrintWriter out2 = new PrintWriter(sc.getOutputStream(), true);
BufferedReader in2 = new BufferedReader(new InputStreamReader(sc.getInputStream()));
int f = Integer.parseInt(in2.readLine());
//まずは暗号化していない普通のデータのやりとり
System.out.println(f + "と受け取りました。");
out2.println(1234);
//次に暗号化したデータの受け渡し
int size =in.read(buf);
encAlgo = new byte[size];
System.out.println("クライアントから" + encAlgo + "と受け取りました。");
int size2 =in.read(buf);
keyDate = new byte[size];
Key key = new SecretKeySpec(keyDate, "DES");
0446444 サーバ2
NGNGCipher cip = Cipher.getInstance("DES");
System.out.println("ka2");//どこまでプログラムが動いているかの確認
cip.init(Cipher.DECRYPT_MODE, key);
System.out.println("ka3");
byte[] decodeDate = cip.doFinal(encAlgo);
System.out.println(decodeDate);
out2.println(0101);
System.out.println("接続を切ります。");
out.close();
in.close();
sc.close();
ss.close();
} catch(IOException e) {
e.printStackTrace();
} catch(Exception e) {
System.out.println("error");
System.exit(0);
}
}
}
0447444 クライアント1
NGNGimport java.io.*;
import javax.crypto.*;
import javax.crypto.spec.SecretKeySpec;
import java.security.*;
public class MC {
public static void main(String args[]) {
byte[] sourceDate = null, encodeDate = null, decodeDate = null;
try {
Socket sc = new Socket("localhost", 5555);
OutputStream out = sc.getOutputStream();
DataInputStream in = new DataInputStream(sc.getInputStream());
PrintWriter out2 = new PrintWriter(sc.getOutputStream(), true);
BufferedReader in2 = new BufferedReader(new InputStreamReader(sc.getInputStream()));
KeyGenerator kg = KeyGenerator.getInstance("DES");
SecretKey key = kg.generateKey();
Cipher cip = Cipher.getInstance("DES");
cip.init(Cipher.ENCRYPT_MODE, key);
String date = "5678";
sourceDate = date.getBytes();
encodeDate = cip.doFinal(sourceDate);
System.out.println("サーバーに1234と送ります。");
0448444 クライアント2
NGNGout2.println(1234);
System.out.println(in.readLine());
//次に暗号化したデータの受け渡し
System.out.println("サーバーに暗号5678と送ります。");
out.write(encodeDate);
byte[] keyDate = key.getEncoded();
out.write(keyDate);
System.out.println(in.readLine());
out.close();
in.close();
sc.close();
} catch(IOException e) {
e.printStackTrace();
} catch(Exception e ) {
System.out.println("エラー");
System.exit(0);
}
}
}
0449444
NGNGラッピングしないでDESKeyを送るプログラムを作って頂けないでしょうか?
その際、暗号化するデータはint型でお願いします。
何度も何度もすみません。宜しくお願いします。
0450デフォルトの名無しさん
NGNGSystem.out.println("クライアントから" + encAlgo + "と受け取りました。");
int size2 =in.read(buf);
keyDate = new byte[size];
← ここに、System.arraycopy(buf, 0, keyData, 0, size); を入れればOK。
Key key = new SecretKeySpec(keyDate, "DES");
0451444
NGNGエラーメッセージが出てしまいました。
C:\so\MS2.java:29: シンボルを解決できません。
シンボル: 変数 keyData
場所 : MS2 の クラス
System.arraycopy(buf, 0, keyData, 0, size);
^
エラー 1 個
終了コード1で終了しました
0452444
NGNG私のスペルミスでした。
しかし、その1行をいれても、同じ例外エラーになってしまいます。
0453デフォルトの名無しさん
NGNGSystem.out.println("クライアントから" + encAlgo + "と受け取りました。");
int size2 =in.read(buf);
keyDate = new byte[size];
← ここに、System.arraycopy(buf, 0, keyDate, 0, size); を入れればOK。
Key key = new SecretKeySpec(keyDate, "DES");
0454444
NGNG/127.0.0.1から接続を受け付けました
1234と受け取りました。
クライアントから[B@1004901と受け取りました
kakuninn
ka2
ka3
error ←←←例外エラー
続行するには何かキーを押してください・・・
と例外エラーになってしまいます。
0455デフォルトの名無しさん
NGNG//次に暗号化したデータの受け渡し
int size =in.read(buf);
encAlgo = new byte[size];
System.out.println("クライアントから" + encAlgo + "と受け取りました。");
int size2 =in.read(buf);
keyDate = new byte[size];
を
//次に暗号化したデータの受け渡し
int size = in.readInt();
encAlgo = new byte[size];
in.read[encAlgo];
int size2 = in.readInt();
keyDate = new byte[size2];
in.read(keyDate);
とし、
System.out.println("サーバーに暗号5678と送ります。");
out.write(encodeDate);
byte[] keyDate = key.getEncoded();
out.write(keyDate);
を
System.out.println("サーバーに暗号5678と送ります。");
out.writeInt(encData.length);
out.write(encodeDate);
byte[] keyDate = key.getEncoded();
out.writeInt(keyDate.length);
out.write(keyDate);
としてみてください。
0456444
NGNGC:\so\MS.java:26: 文ではありません。
in.read[encAlgo];
^
エラー 1 個
終了コード1で終了しました
クライアントプログラムは
C:\Documents and Settings\takato\My Documents\kenkyu\so\MC.java:29: シンボルを解決できません。
シンボル: 変数 encDate
場所 : MC の クラス
out.writeInt(encDate.length);
^
C:\so\MC.java:32: シンボルを解決できません。
シンボル: メソッド writeInt (int)
場所 : java.io.OutputStream の クラス
out.writeInt(keyDate.length);
^
注: C:\so\MC.java は推奨されない API を使用またはオーバーライドしています。
注: 詳細については、-deprecation オプションを指定して再コンパイルしてください。
エラー 2 個
終了コード1で終了しました
とエラーメッセージが出てしまいました。
0457デフォルトの名無しさん
NGNGin.read[encAlgo]; → in.read(encAlgo);
out.writeInt(encDate.length); → out.writeInt(encodeDate.length);
OutputStream out = sc.getOutputStream();
↓
OutputStream out = new DataOutputStream(sc.getOutputStream());
0458デフォルトの名無しさん
NGNGin.read[encAlgo]; → in.read(encAlgo);
out.writeInt(encDate.length); → out.writeInt(encodeDate.length);
OutputStream out = sc.getOutputStream();
↓
DataOutputStream out = new DataOutputStream(sc.getOutputStream());
0459444
NGNGサーバプログラムはコンパイル通りました。
クライアントプログラムは
C:\so\MC.java:29: シンボルを解決できません。
シンボル: メソッド writeInt (int)
場所 : java.io.OutputStream の クラス
out.writeInt(encodeDate.length);
^
C:\so\MC.java:32: シンボルを解決できません。
シンボル: メソッド writeInt (int)
場所 : java.io.OutputStream の クラス
out.writeInt(keyDate.length);
^
注: C:\so\MC.java は推奨されない API を使用またはオーバーライドしています。
注: 詳細については、-deprecation オプションを指定して再コンパイルしてください。
エラー 2 個
終了コード1で終了しました
とまだエラーがでます。
0460デフォルトの名無しさん
NGNGOutputStream out = sc.getOutputStream();
DataInputStream in = new DataInputStream(sc.getInputStream());
↓
Socket sc = new Socket("localhost", 5555);
DataOutputStream out = new DataOutputStream(sc.getOutputStream());
DataInputStream in = new DataInputStream(sc.getInputStream());
0461デフォルトの名無しさん
NGNGconnectionが張られっぱなしかもしれないと予想します。
とりあえずリクエストにConnection: closeを付けてみたりするとか
レスポンスのContent-lengthでもチェックするとか
readがバッファより小さかったら諦めるとかその辺じゃないかなぁと予想。
とりあえず試すことです。
0462444
NGNGコンパイルは通りました。
しかし、例外エラーになって暗号を複合化できませんでした。
454に上げた症状とまったく同じです。
0463デフォルトの名無しさん
NGNG0464444
NGNG例外発生の行
System.out.println("ka2");//どこまでプログラムが動いているかの確認
cip.init(Cipher.DECRYPT_MODE, key);
System.out.println("ka3"); ←←この出力メッセージまでは表示されてます。
byte[] decodeDate = cip.doFinal(encAlgo); ←←多分ここで例外発生??
System.out.println(decodeDate);
例外クラス
} catch(Exception e) {
System.out.println("error"); ←←このエラーメッセージが表示されます。
System.exit(0);
}
0465デフォルトの名無しさん
NGNGどうもありがとうございます!
0466デフォルトの名無しさん
NGNG宿題では無いので大変申し訳ありません。)
Yahoo!GeocitiesでHPを作成したのですが、広告を表示させるフレームを指定したい。
そこで、HTML内に組み込むJava scriptを教えていただければと思います。
geoでは広告の形態には2種類あるのですが、
ttp://www.geocities.jp/power_seller_info/index.htm
自分の場合はこのページのような、縦型広告の形態です。
もしお答え頂けるようならお願いいたします。
0467デフォルトの名無しさん
NGNGマルチごくろうさま。
ほんとにわかってないのか釣りなのか知らないけど、マジレスしてみる。
「JavaとJavascriptは別物です。」
これを10回声に出して読んでください。
Java質問スレで散々>>1を読めって言われてたのに読んでないんですか?
JavaScriptの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc5.2ch.net/hp/
と書かれてましたが。
0468デフォルトの名無しさん
NGNG本気で答えが欲しいなら、ここで質問するはずが無い。
そしてオレは2人目の釣られた人。
0469プログラム板
NGNGここは同じJAVAでも、学校から出された課題、宿題を丸投げ依頼して、
そのプログラムを書いてもらう宿題スレッドです。
普通の質問は絶対にやめてください。質問してもこれからは完全スルーします。
回答が分かっててもです。質問してもレスは無いと思ってください。
(宿題、課題とその回答プログラムに関する質問はOKですが)
質問スレッドは↓でお願いします。
【初心者】Java質問・相談スレッド57【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1101077884/l50
質問は、この本スレでお願いします。ここには書かないでください。
0470デフォルトの名無しさん
NGNGから、double型で0.103という値を返すプログラムを教えてください。
自分で調べたところ、valueOfというのを見つけたのですが、
ラッパクラスがどうとか、よくわかりませんでした。
携帯からなのでコードはれません、ごめんなさい。
よろしくお願いします。
0471デフォルトの名無しさん
NGNGString str = "10.3";
Double d = Double.valueOf( str );
0472470
NGNGでも、欲しい値は0.103なんですよ。
これだと10.3のままですよね?
0473デフォルトの名無しさん
NGNG【初心者】Java質問・相談スレッド57【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1101077884/l50
でお願いします。
0474デフォルトの名無しさん
NGNG0475野田☆
NGNGどのようなプログラムを作ればいいのでしょうか?
よろしくお願いします。
0476デフォルトの名無しさん
NGNG0477デフォルトの名無しさん
NGNG0478470
NGNG無事動きましたので、これで提出できます。
本当に助かりました。
0479デフォルトの名無しさん
NGNG一つのビルに5個の会議室があるとか、もう少し具体的に条件を
書いてください。
0480デフォルトの名無しさん
NGNGttp://sparrow.math.ryukoku.ac.jp/~junta/edu/graphics/exercise/9.html
をルンゲクッタ法でといてください。
アプレットのサイズは600,600でおねがいします。
ホームページにあるのと同じ感じで動いて、スタートやストップ、値を変更したりするボタン設定はいりません。
ほぼサンプルどうりにお願いします。
ttp://sparrow.math.ryukoku.ac.jp/~junta/edu/graphics/note.pdf
の第9章を参考にしてください。
できるだけシンプルなものをおねがいします。
0481デフォルトの名無しさん
NGNG頭が悪いから
0482デフォルトの名無しさん
NGNG逆コンパイルして見るのは駄目なのか?
0483デフォルトの名無しさん
NGNGすいません逆コンパイルとは?
0484デフォルトの名無しさん
NGNG問題は1番だけ解いてもらえばいいです。
0485デフォルトの名無しさん
NGNG0486デフォルトの名無しさん
NGNG>>475が大学生ってことかな。
0487482
NGNGimport java.awt.*;
public class Kadai9_1 extends Applet
implements Runnable
{
public Kadai9_1()
{
th = null;
dt = 0.01D;
L = 2D;
M = 1.0D;
G = 1.0D;
}
double[] f(double d, double ad[])
{
double ad1[] = new double[ad.length];
double d1 = Math.sqrt(ad[0] * ad[0] + ad[1] * ad[1]);
ad1[0] = ad[2];
ad1[1] = ad[3];
ad1[2] = ((-G / M) * ad[0]) / (d1 * d1 * d1);
ad1[3] = ((-G / M) * ad[1]) / (d1 * d1 * d1);
return ad1;
}
public void start()
{
if(th == null)
{
th = new Thread(this);
th.start();
}
}
0488482
NGNG{
if(th != null)
{
th.stop();
th = null;
}
}
public void run()
{
int i = 0;
do
{
double d = (double)i * dt;
double ad4[] = new double[x.length];
double ad[] = f(d, x);
for(int j = 0; j < x.length; j++)
ad4[j] = x[j] + (dt * ad[j]) / 2D;
0489482
NGNGfor(int k = 0; k < x.length; k++)
ad4[k] = x[k] + (dt * ad1[k]) / 2D;
double ad2[] = f(d + dt / 2D, ad4);
for(int l = 0; l < x.length; l++)
ad4[l] = x[l] + dt * ad2[l];
double ad3[] = f(d + dt, ad4);
for(int i1 = 0; i1 < x.length; i1++)
x[i1] += (dt / 6D) * (ad[i1] + 2D * ad1[i1] + 2D * ad2[i1] + ad3[i1]);
repaint();
i++;
try
{
Kadai9_1 _tmp = this;
Thread.sleep(10L);
}
catch(InterruptedException interruptedexception) { }
} while(true);
}
int trans_x(double d)
{
return (int)(((d - -2D) / 4D) * (double)getSize().width);
}
0490482
NGNG{
return (int)(((2D - d) / 4D) * (double)getSize().height);
}
public void update(Graphics g)
{
paint(g);
}
public void paint(Graphics g)
{
setBackground(new Color(230, 255, 255));
g.drawString("第9回課題 T000000 龍谷 太郎", getSize().width - getFont().getSize() * 15, getFont().getSize());
g.fillOval(trans_x(x[0]) - 2, trans_y(x[1]) - 2, 3, 3);
}
static final double XMIN = -2D;
static final double XMAX = 2D;
static final double YMIN = -2D;
static final double YMAX = 2D;
Thread th;
double x[] = {
1.5D, 0.5D, 0.0D, -0.40000000000000002D
};
double dt;
double L;
double M;
double G;
}
0491482
NGNG簡単に言うと問題1で動いてるものと全く同じもの。
0492デフォルトの名無しさん
NGNGす、すげー!どうやったんすか?
0493デフォルトの名無しさん
NGNG読め。
0494デフォルトの名無しさん
NGNGfor 文を使って次のアプリケーションを作成してください。
1*1, 11*11, 111*111, 1111*1111, 11111*11111, 111111*111111 を計算してください。
0495デフォルトの名無しさん
NGNGString str="1";
long val=Long.parseLong( str );
System.out.println( val*val );
str = str + "1";
をfor文で5回まわせばいいのかな?
0496デフォルトの名無しさん
NGNG0497デフォルトの名無しさん
NGNG以下のようなクラスを作成し、コンパイル実行せよ。という課題で、
【型がStringクラスであるような_idと_nameという2つのフィールドを持つ。
なお、これらのフィールドはこのクラスのオブジェクト以外からはアクセス不能とする】
という指示の部分です(;´Д`)
ホント簡単な事でスミマセン・・・_| ̄|
0498デフォルトの名無しさん
NGNG0499デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?hl=ja&q=%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89+private%E4%BF%AE%E9%A3%BE%E5%AD%90+Java&lr=
0500デフォルトの名無しさん
NGNGおおぅ(゚Д゚;) どうもです。
0501デフォルトの名無しさん
NGNG>ホームページにあるのと同じ感じで動いて、スタートやストップ、
>値を変更したりするボタン設定はいりません。
ワラタ。つまり以前の解答が・・・w
0502Java Student
NGNGpublic class test4 {
public static int min(int x, int y){
if(x < y){
return x;
}else{
return y;
}
}
public static int min(String s, String t){
if(s.length() < t.length()){
return s.length();
}else{
return t.length();
}
}
public static void testMin(){
System.out.println(min(3, "hello"));
}
}
0503デフォルトの名無しさん
NGNGprintlnのかっこ内で呼び出すメソッド、min(int i, String s)は
存在しないから。
0504デフォルトの名無しさん
NGNGclass towNumber{
public static void main(String args[]){
for(int i = 1;i<=127;i=(i<<1)+1){
System.out.println(i*i);
}
}
}
0505デフォルトの名無しさん
NGNGttp://www.aoni.waseda.jp/ichiji/2004/second-term/prog-08-5.html
0506デフォルトの名無しさん
NGNG11+22+33をするプログラムを作りたいのですが、","の扱いに困っています。
どのようにして区切り文字を判断して、足すことができるようにするか教えてください。
0507M.B.
NGNG0508デフォルトの名無しさん
NGNGもう課題提出日を過ぎてるので、無駄だと思われますが・・・
0509お願いします!
NGNG内容を画面に出力しなさい。
もう全然わかりません。
0510デフォルトの名無しさん
NGNGttp://www.aoni.waseda.jp/ichiji/2004/second-term/prog-08-5.html
0511デフォルトの名無しさん
NGNGString dirName = "C:\\Tmp";
File dir = new File( dirName );
File[] files = dir.listFiles();
Arrays.sort( files, new Comparator() {
public int compare( Object o1, Object o2 ) {
File f1 = (File)o1;
File f2 = (File)o2;
return f1.getName().compareTo( f2.getName() );
}
} );
for ( int i = 0; i < files.length; i++ ) {
if ( files[i].isFile() ) {
BufferedReader reader = new BufferedReader( new FileReader( files[i] ) );
String line;
while ( ( line = reader.readLine() ) != null ) {
System.out.println( line );
}
reader.close();
}
}
0512デフォルトの名無しさん
NGNG0513デフォルトの名無しさん
NGNG問題
PixelViewerの機能を拡張するPixelDrawクラスを作成せよ。
PixelDrawの機能は以下の通り
1) drawRect四角形描画(左下点、幅、高さ、色を指定)
2) drawPointCircle円を点で描画(中心、半径、色を指定)
3) drawLine直線を描画(始点、終点、色を指定)
4) drawCircle円を描画(中心、半径、色を指定)
円の描画について
drawPointCircle-180度から180度まで1度刻みに円周の点を求め点を描画
drawCircle-180度から180度まで1度刻みに円周の点を求め点を直線で結んで描画
なお、クラスの動作を確認するためのプログラムは、PixelDrawTest.classとして提供されている。
従って、PixelDrawクラスのみを作成すれば良い。
コンパイルおよび動作確認は、PixelDraw.batを実行して行うこと。
0514513
NGNG0515513
NGNGPixelDrawクラス仕様
ファイル名
PixelDraw.java
フィールド
PixelViewer
コンストラクタ
public PixelDraw(
PixelViewer viewer// 描画を行う PixelViewer
)
メソッド
public void drawRect(
int row,// 四角形の左下点行位置
int col,// 四角形の左下点列位置
int width,// 四角形の幅
int height,// 四角形の高さ
int R,// 四角形の色の R 成分
int G,// 四角形の色の G 成分
int B// 四角形の色の B 成分
)
四角形を描画
public void drawPointCircle(
int row,// 円の中心の行位置
int col,// 円の中心の列位置
int r,// 円の半径
int R,// 円の色の R 成分
int G// 円の色の G 成分
int B// 円の色の B 成分
)
円を-180度〜180度まで1度刻みの点で描画
0516513
NGNGpublic void drawLine(
int rs,// 直線の始点の行位置
int cs,// 直線の始点の列位置
int re,// 直線の終点の行位置
int ce,// 直線の終点の列位置
int R,// 直線の色の R 成分
int G,// 直線の色の G 成分
int B// 直線の色の B 成分
)
直線を描画
public void drawCircle(
int row,// 円の中心の行位置
int col,// 円の中心の列位置
int r,// 円の半径
int R,// 円の色の R 成分
int G,// 円の色の G 成分
int B// 円の色の B 成分
)
円を-180度〜180度まで1度刻みの点をdrawLineで結んで描画
public PixelViewer getPixelViewer()
戻り値 PixelViewer
描画対象となっているPixelViewerを取得
0517デフォルトの名無しさん
NGNGimport javax.swing.*; import java.awt.*; import java.awt.event.*;
public class PreProblem2 extends JApplet {
private int num = 0;
public void init() {
JPanel pal = new JPanel();
JButton btn = new JButton("redraw");
final JTextField tfd = new JTextField("0");
tfd.setPreferredSize(new Dimension(50, 20));
pal.add(btn);
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
num = Integer.parseInt(tfd.getText().trim());
} catch (NumberFormatException e1) {
return;
}
repaint();
}
});
pal.add(tfd);
getContentPane().add(pal, BorderLayout.NORTH);
}
public void paint(Graphics g) {
super.paint(g);
int init = 1;
if (num >= 1 && num <= 5) {
init = num;
}
0518デフォルトの名無しさん
NGNGint x = 100;
int y = 50;
int width = 200;
int height = 200;
for (int index = init; index <= 5; index++) {
fillOval(g, index, x, y, width, height);
}
}
private void fillOval(Graphics g, int number, int x, int y, int width,
int height) {
int scale1 = number - 1;
int scale2 = 6 - number;
x = x + width / 2 * scale1 / 5;
y = y + width / 2 * scale1 / 5;
width = width * scale2 / 5;
height = height * scale2 / 5;
if (number == 1) {
g.setColor(Color.green);
} else if (number == 2) {
g.setColor(Color.yellow);
} else if (number == 3) {
g.setColor(Color.magenta);
} else if (number == 4) {
g.setColor(Color.pink);
} else if (number == 5) {
g.setColor(Color.blue);
}
g.fillOval(x, y, width, height);
}
}
0519デフォルトの名無しさん
NGNGPixelViewerが何なのか分からないとどうしようもない・・・
0520513
NGNGとくに>>519さん、レスしてくれて本当にありがとうございました。
確かに説明不足でしたね。一応自力で出来ました。
本当に皆さんありがとうございました。
0521デフォルトの名無しさん
NGNG(double S[] = S[640*480])
Sは0〜1までの実数値で、その間を0.001刻みで1000分割し
それぞれのS値のピクセル数を出力させるにはどのような書き方をすればよいでしょうか?
私は小数点の任意の位以下の切り捨て方がわからなかったので
まず得られたS値を1000倍し、intに型変換することで小数点第3位までを取り出すことにしました
(for count_S[] = 0;count_s[]<1000,count_s[]++)
0522デフォルトの名無しさん
NGNGJFrameを使っています。
親フレームにボタンを付け、ボタンを押すと子フレームを生成するようにしています。
また、その際に子フレームしか触れないようにモーダルにしています。
親フレームに付けたボタンにsetEnabled(false);で親フレームを編集不可にしてます。
子フレームを消したときにまた親フレームを編集できるようにしたいんです。
子フレームにもボタンを付けて、そのボタンにイベント処理でsetEnabled(true);
で、親フレームをまた編集できるようにソースを書いたのですが、うまくいきません。
わかるかたいらっしゃいますか?どうぞよろしくお願いします(;´Д`)!!
0523M.B.
NGNG前スレ
Java!宿題!
http://pc5.2ch.net/test/read.cgi/tech/1096959843/
の 339 を参照。
0524デフォルトの名無しさん
NGNGただ、その1は難しくて、その2が問題文として載っているのそのままで、うまくいきませんでした。
自分の説明不足でした。すいません。 継承してくるDrawCircle2は
ttp://www.aoni.waseda.jp/ichiji/2004/second-term/prog-07-2.htmlの真ん中らへん
にある演習7.1のとこにあるやつです。プログラムを参考にしつつ、問題に載っている円のやつの
プログラムを作る。のが課題になってます。 せっかくやってもらったのにすいません。
ttp://www.aoni.waseda.jp/ichiji/2004/second-term/prog-08-5.html
改めてお願いします。
0525226
NGNG227様、古代帝國富士皇朝総帥・伯壬旭様どうもありがとうございました。
あのプログラムを参考に勉強しようと思います。
またお世話になるかと思いますが、その時はよろしくお願いします。
0526M.B.
NGNG若者よ、
「次は回答する側で登場したいと思います。」
くらいのことは言っていいんだぞ。
0527デフォルトの名無しさん
NGNGの問題1について
(1)上記のプログラムにクイックソートで配列をソートするメソッドquickSort()を追加するとともにランダムなデータ
(fillRandomData()により初期化)を中心に実行時間を計測し、考察しなさい
(2)メソッドquickSortは2回の再帰呼び出しを行っているが2回目の再帰呼び出しを行わずに
繰り返しとして実現できる。このようにプログラムを変更せよ
(3)ヒープソートを実現するメソッドを上記のプログラムに追加しヒープソートの実行速度を測定しなさい
どうかよろしくお願いします。
0528M.B.
NGNG> 考察しなさい
> 測定しなさい
すでにプログラミングの問題ですらないぞw
0529名無し
NGNG機能って実現出来ますか?
0530デフォルトの名無しさん
NGNGpublic double f(double t,double u){
return t*u;}
public void run(String arg){
double N=Double.parseDouble(arg);
double h=1/N;
double u_init=1.0;
double t,u;
u=u_init;
t=0;
for(int k=0;k<=N;k++){
double k1,k2,k3,k4;
k1=h*f(t,u);
k2=h*f(t+h*0.5,u+k1*0.5);
k3=h*f(t+h*0.5,u+k2*0.5);
k4=h*f(t+h,u+k3);
double u_new=u+(k1+2*k2+2*k3+k4)/6;
u=u_new;
t+=h;}
double e=Math.exp(0.5);
u-=e;
if(u<0)
u*=-1;
System.out.println(u);}
public static void main(String[] args){
tec12_lun ex=new tec12_lun();
ex.run(args[0]);}}
一次四位四段のルンゲクッタ法のt=1での誤差評価のプログラムですが
これであってるでしょうか?自信なくて・・・
du(t)/dt=t*u(t) u(t)=exp(t*t/2) 0<=t<=1
argsには10,20,50,100・・・・・を入力
0531デフォルトの名無しさん
NGNGargsはステップ数の分母です
0532古代帝國富士皇朝総帥・伯壬旭
NGNG計測は、currentTimeMillis()を用いてやってください。
問題(1)の追加メソッド
static void quickSort(int[] data, int left, int right) {
if (left >= right) {
return;
}
int center = left + (right - left) / 2;
int num = data[center];
int idx = left;
data[center] = data[left];
for (int i = left + 1; i <= right; i++) {
if (data[i] < num) {
int swap = data[++idx];
data[idx] = data[i];
data[i] = swap;
}
}
data[left] = data[idx];
data[idx] = num;
quickSort(data, left, idx - 1);
quickSort(data, idx + 1, right);
}
↑の一番呼び出しは、quickSort(data, 0, data.length - 1); で。
dataは、int[] の配列データ。
0533古代帝國富士皇朝総帥・伯壬旭
NGNG問題(2)の追加メソッド
static void quickSortByLoop(int[] data) {
LinkedList list = new LinkedList();
int left = 0;
int right = data.length - 1;
while (true) {
if (left >= right) {
if (list.isEmpty())
return;
right = ((Integer)list.removeLast()).intValue();
left = ((Integer)list.removeLast()).intValue();
continue;
}
int center = left + (right - left) / 2;
int num = data[center];
int idx = left;
data[center] = data[left];
for (int i = left + 1; i <= right; i++) {
if (data[i] < num) {
int swap = data[++idx];
data[idx] = data[i];
data[i] = swap;
}
}
data[left] = data[idx];
data[idx] = num;
list.addLast(new Integer(idx + 1));
list.addLast(new Integer(right));
right = idx - 1;
}
}
0534>>527 問題(3)の追加メソッド
NGNGfor (int i = (data.length - 2) / 2; i >= 0; i--) {
int idx = i, src = data[idx], child = 0;
while (true) {
child = idx * 2 + 1;
if (child > data.length - 1) { break; }
if (child < data.length - 1) {
if (data[child] < data[child + 1]) { ++child; }
}
if (src > data[child]) { break; }
data[idx] = data[child];
idx = child;
}
data[idx] = src;
}
for (int i = data.length - 1; i > 0; i--) {
int swap = data[0]; data[0] = data[i]; data[i] = swap;
int idx = 0, src = data[idx], child = 0;
while (true) {
child = idx * 2 + 1;
if (child > i - 1) { break; }
if (child < i - 1) {
if (data[child] < data[child + 1]) { ++child; }
}
if (src > data[child]) { break; }
data[idx] = data[child];
idx = child;
}
data[idx] = src;
}
}
0535デフォルトの名無しさん
NGNG2 12 2 1 0 -3 0 0 0 0
1 2 13 2 1 0 -3 0 0 0
0 1 2 14 2 1 0 -3 0 0
A= -3 0 1 2 15 2 1 0 -3 0
0 -3 0 1 2 16 2 1 0 -3
0 0 -3 0 1 2 17 2 1 0
0 0 0 -3 0 1 2 18 2 1
0 0 0 0 -3 0 1 2 19 2
0 0 0 0 0 -3 0 1 2 20
1
-1
1
b= -1
1
-1
1
-1
1
-1
x(0)=b
収束判定‖x(k+1)-x(k)‖∞<10^-5
最大反復回数 100回
この時、連立一次方程式Ax=bの解を求めるJacobi法、Gauss-Seidel法のプログラムを作成せよ
という明日までの宿題です。どうかよろしくお願いします
0536デフォルトの名無しさん
NGNG0537デフォルトの名無しさん
NGNG書いてくれれば、プログラム回答率がアップするのだが・・・
0538535
NGNGA= a21 a22 a23
a31 a32 a33 に対して
0 0 0 a11 0 0 0 a12 a13
L= a21 0 0 D= 0 a22 0 U= 0 0 a23
a31 a32 0 0 0 a33 0 0 0 としたとき
Jacobi法
x(k+1) =−D^(−1){L+U}x(k)+D^(−1)b
Gauss-Seidel法
x(k+1) =−{L+D}^(−1)Ux(k)+{L+D}^(−1)b
という反復式で解xが求まります。
判りにくいですがD^(−1)、{L+D}^(−1)は逆行列です
0539>>535 Jacobi法、Gauss-Seidel法 その1
NGNGpublic static void main(String[] args) {
double[][] A = {
{11,2,1,0,-3,0,0,0,0,0},
{2,12,2,1,0,-3,0,0,0,0},
{1,2,13,2,1,0,-3,0,0,0},
{0,1,2,14,2,1,0,-3,0,0},
{-3,0,1,2,15,2,1,0,-3,0},
{0,-3,0,1,2,16,2,1,0,-3},
{0,0,-3,0,1,2,17,2,1,0},
{0,0,0,-3,0,1,2,18,2,1},
{0,0,0,0,-3,0,1,2,19,2},
{0,0,0,0,0,-3,0,1,2,20}
};
double[][] b = {
{1},
{-1},
{1},
{-1},
{1},
{-1},
{1},
{-1},
{1},
{-1}
};
0540>>535 Jacobi法、Gauss-Seidel法 その2
NGNGSystem.out.println("Jacobi法による行列xの解");
for (int y = 0; y < ans.length; ++y) {
for (int x = 0; x < ans[y].length; ++x) { System.out.print(ans[y][x] + " "); }
System.out.println();
}
System.out.println();
double[][] demo = multiple(A, ans);
System.out.println("(Jacobi法の解) Ax=");
for (int y = 0; y < demo.length; ++y) {
for (int x = 0; x < demo[y].length; ++x) { System.out.print(demo[y][x] + " "); }
System.out.println();
}
System.out.println();
System.out.println();
ans = gauss_seidel(A, b);
System.out.println("gauss_seidel法による行列xの解");
for (int y = 0; y < ans.length; ++y) {
for (int x = 0; x < ans[y].length; ++x) { System.out.print(ans[y][x] + " "); }
System.out.println();
}
System.out.println();
demo = multiple(A, ans);
System.out.println("(gauss_seidel法の解) Ax=");
for (int y = 0; y < demo.length; ++y) {
for (int x = 0; x < demo[y].length; ++x) { System.out.print(demo[y][x] + " "); }
System.out.println();
}
System.out.println();
}
0541>>535 Jacobi法、Gauss-Seidel法 その3
NGNGdouble[][][] dets = makeLUD(A);
double[][] L = dets[0], U = dets[1], D = dets[2];
double[][] x = new double[b.length][b[0].length];
for (int i = 0; i < b.length; ++i) { System.arraycopy(b[i], 0, x[i], 0, b[i].length); }
for (int cnt = 0 ; cnt < 100; ++cnt) {
double[][] ans1 = minus(D); ans1 = reverse(ans1);
double[][] ans2 = add(L, U); ans1 = multiple(ans1, ans2);
ans1 = multiple(ans1, x); double[][] ans3 = reverse(D);
ans3 = multiple(ans3, b); ans1 = add(ans1, ans3);
if(compare(ans1, x)) { x = ans1; break; }
x = ans1;
}
return x;
}
static double[][] gauss_seidel(double[][] A, double[][] b) {
double[][][] dets = makeLUD(A);
double[][] L = dets[0], U = dets[1], D = dets[2];
double[][] x = new double[b.length][b[0].length];
for (int i = 0; i < b.length; ++i) { System.arraycopy(b[i], 0, x[i], 0, b[i].length); }
for (int cnt = 0 ; cnt < 100; ++cnt) {
double[][] ans1 = add(L, D); ans1 = minus(ans1); ans1 = reverse(ans1);
ans1 = multiple(ans1, U); ans1 = multiple(ans1, x);
double[][] ans2 = add(L, D); ans2 = reverse(ans2); ans2 = multiple(ans2, b);
ans1 = add(ans1, ans2);
if(compare(ans1, x)) { x = ans1; break; }
x = ans1;
}
return x;
}
0542:>>535 Jacobi法、Gauss-Seidel法 その4
NGNGdouble[][] L = new double[src.length][src[0].length];
double[][] U = new double[src.length][src[0].length];
double[][] D = new double[src.length][src[0].length];
for (int a = 0; a < src.length; ++a) {
System.arraycopy(src[a], 0, L[a], 0, a);
System.arraycopy(src[a], a + 1, U[a], a + 1, src[a].length - 1 - a);
System.arraycopy(src[a], a, D[a], a, 1);
}
return new double[][][] {L, U, D};
}
static boolean compare(double[][] src, double[][] dst) {
double[][] ans = new double[src.length][src[0].length];
for (int y = 0; y < src.length; ++y) {
for (int x = 0; x < src[y].length; ++x) {
ans[y][x] = src[y][x] - dst[y][x];
}
}
for (int y = 0; y < src.length; ++y) {
for (int x = 0; x < src[y].length; ++x) {
if(Math.abs(ans[y][x]) >= 0.00001) return false;
}
}
return true;
}
0543>>535 Jacobi法、Gauss-Seidel法 その5
NGNGdouble[][] ans = new double[src.length][dst[0].length];
for (int z = 0; z < ans[0].length; ++z) {
for (int y = 0; y < ans.length; ++y) {
double num = 0;
for (int x = 0; x < ans[y].length; ++x) {
num += dst[y][x] * src[x][z];
}
ans[y][z] = num;
}
}
return ans;
}
static double[][] add(double[][] src, double[][] dst) {
double[][] ans = new double[src.length][src[0].length];
for (int y = 0; y < src.length; ++y) {
for (int x = 0; x < src[y].length; ++x) {
ans[y][x] = src[y][x] + dst[y][x];
}
}
return ans;
}
static double[][] minus(double[][] src) {
double[][] ans = new double[src.length][src[0].length];
for (int y = 0; y < src.length; ++y) {
for (int x = 0; x < src[y].length; ++x) {
ans[y][x] = -src[y][x];
}
}
return ans;
}
0544>>535 Jacobi法、Gauss-Seidel法 その6
NGNGdouble[][] ans = new double[src.length][src[0].length];
for (int a = 0; a < src.length; ++a) {
System.arraycopy(src[a], 0, ans[a], 0, src[a].length);
}
int ip = ans.length; double epsinv = 0.00001; int i, j, k; double t, b;
int[] l = new int[ip], m = new int[ip];
for (k = 0; k < ip; k++) {
m[k] = l[k] = k;
b = ans[k][k];
for (j = k; j < ip; j++) {
for (i = k; i < ip; i++) {
if (Math.abs(ans[j][i]) > Math.abs(b)) {
b = ans[j][i]; l[k] = i; m[k] = j;
}
}
}
if (Math.abs(b) < epsinv) { return ans; }
j = l[k];
if (j > k) {
for (i = 0; i < ip; i++) {
t = -ans[i][k]; ans[i][k] = ans[i][j]; ans[i][j] = t;
}
}
i = m[k];
if (i > k) {
for (j = 0; j < ip; j++) {
t = -ans[k][j]; ans[k][j] = ans[i][j]; ans[i][j] = t;
}
}
0545デフォルトの名無しさん
NGNG422ですけど
KadaiA1.java:8: java.lang.CharacterのisSpace(char) は (int) に適用できません。
if(Character.isSpace(i))
^
とでます;;
int i ってのは間違いないのでどう直していいかわかんないです。
0546デフォルトの名無しさん
NGNGisSpace(char i) じゃなくて
isSpace((char) i) が正解ぽ
あとこれだと空白文字「だけ」出力しちゃうんでない?
0547>>535 Jacobi法、Gauss-Seidel法 その7
NGNGif (i != k) { ans[k][i] /= -b; }
}
for (i = 0; i < ip; i++) {
for (j = 0; j < ip; j++) {
if (i != k && j != k) { ans[j][i] += ans[k][i] * ans[j][k]; }
}
}
for (j = 0; j < ip; j++) {
if (j != k) { ans[j][k] /= b; }
}
ans[k][k] = 1.0 / b;
}
for (k = ip - 2; k >= 0; k--) {
i = l[k];
if (i > k) {
for (j = 0; j < ip; j++) {
t = ans[k][j]; ans[k][j] = -ans[i][j]; ans[i][j] = t;
}
}
j = m[k];
if (j > k) {
for (i = 0; i < ip; i++) {
t = ans[i][k]; ans[i][k] = -ans[i][j]; ans[i][j] = t;
}
}
}
return ans;
}
}
0548古代帝國富士皇朝総帥・伯壬旭
NGNG上の7つのコードを全部コピペしてコンパイル。
敷き詰めて書いてるのでフォーマットしなおしてください。
0549デフォルトの名無しさん
NGNGとりあえずコンパイルしてみました。
>注: KadaiA1.java は推奨されない API を使用またはオーバーライドしています。
>注: 詳細については、-deprecation オプションを指定して再コンパイルしてください。
とでたので、-deprecation オプションを指定したら
KadaiA1.java:8: 警告: java.lang.Character の isSpace(char) は推奨されません。
if(Character.isSpace((char)i))
警告 1 個
とでました (´〜`)
警告だったので動かしてみたら・・・空白だけ出力されました
空白文字以外出力するにはどうすればいいでしょうか?
if(Character.isSpace((char)i))を偽にすればいいと思うのですが
クラスがif文に入るといまいちわからないです。
お願いします。
0550デフォルトの名無しさん
NGNG否定すればいいじゃない
0551デフォルトの名無しさん
NGNG暇なのでちょっと説明。型の話は置いといて、なるべく簡単に。
まず、if に続く括弧の中には、true か false のどちらかの値が入る。
trueなら直後の文を実行するし、
falseなら実行しない。
それから、
Character.isSpace((char)i)
という式は、
iが空白文字ならtrueという値に、
そうじゃなければfalseという値になる。
値の前に ! を付けると
true は false に、
false は true になる。
だから答えは…
あと、クラスが入ろうが入るまいが全く関係ないよ。
ifにクラスが入ると、じゃなくて
クラスそのものの扱い方があんまり分かってないんでない?
それから、警告が出るのは
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/Character.html
を見れば理由が書いてある。
読んでも >>422 には意味わからんかもしれないけど、どうすれば警告出なくなるかは分かるはず
0552デフォルトの名無しさん
NGNGども!いろいろ試行錯誤した結果。できました
if(!(Character.isWhitespace((char)i)))このようにしました。
最初はiのみが値なのかなぁと思ってたのですが
Character.isWhitespace((char)i))コレ全部で値なんですね
出力結果は見事空白がなくなって出力されました。
使い道があるのかビミョウですが
次の問題やってきます!
なんていうか閃いた時と動いた時の嬉しさがたまりませんね。
>>550 サソにここまで書かせてしまって閃いたって言うのもなんですが;;
0553デフォルトの名無しさん
NGNG( ttp://v.isp.2ch.net/up/39df3324c0ab.txt )
があったので、これを少し変えて「チェックを入れた後、ボタンを押すと集計して表示するプログラム」を作ろうと
思ってやってみたんですが
( ttp://v.isp.2ch.net/up/c0a1e4eb5399.txt )
example.java:21 シンボルを解決できません。
シンボル:メソッド addItemListener(example)
場所 : java.awt.Button のクラス
b.addItemListener(this);
エラー1個
というメッセージが出て上手くいきません。
正常に動くようにするにはどうすればいいんでしょうか?
0554デフォルトの名無しさん
NGNGそのプログラムを書いてもらう宿題スレッドです。
普通の質問は絶対にやめてください。お願いします。
(宿題、課題とその回答プログラムに関する質問はOKですが)
質問スレッドは↓でお願いします。
【初心者】Java質問・相談スレッド57【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1101077884/l50
質問は、↑の本スレでお願いします。ここには書かないでください。
0555デフォルトの名無しさん
NGNG0556M.B.
NGNG『2ちゃんねる』サブセットの掲示板を実装したとかいう
ネタを披露しようと思ったら、どうやら
そういう マターリ な雰囲気ではないらしいな
∧_∧
∧_∧ (´<_` ) いかにも回答者面して余裕かましてると
( ´_ゝ`) / ⌒i いいかげん嫌われるぞ兄者
/ \ | |
/ / ̄ ̄ ̄ ̄/ |
__(__ニつ/ IBM / .| .|____
\/____/ (u ⊃
0557デフォルトの名無しさん
NGNG0558M.B.
NGNGバッドな仕様なのではないだろうか。
できればスレ表示画面が更新されてほしいのだが。
∧_∧
∧_∧ (´<_` ) それは2ちゃんの広告収入とかに
( ´_ゝ`) / ⌒i 全然配慮してない発言だぞ兄者
/ \ | |
/ / ̄ ̄ ̄ ̄/ |
__(__ニつ/ IBM / .| .|____
\/____/ (u ⊃
0559デフォルトの名無しさん
NGNGhttp://chbox.com/goods/
0560デフォルトの名無しさん
NGNGあの仕様は広告を見せる為だったのか。勉強になりました。
0561M.B.
NGNGいや、そういってしまうと実も蓋もないのだが。orz
漏れも草の根 BBS のオーナー兼ホストをやっていて思うのだが、
「練達の書き手」というのは「のめりこみ」が激しいので
一つのスレに集中しがちなのだが、見識が広いので(←漏れがいうと
いかにも厭味だな)なるべく多くの板&スレで発言し、
盛り上げて欲しいのだ(それが広告収入につながる部分もあるわけだが)。
そのためにも板全体を見通してもらうというのは大事だと思う。
0562M.B.
NGNG∧_∧
∧_∧ (´<_` メ ) 言うことはそれだけかゴルァ
( #´_ゝ`) / ⌒i
/ \ | |
/ / ̄ ̄ ̄ ̄/ |
__(__ニつ/ IBM / .| .|____
\/____/ (u ⊃
0563ジョンソン
NGNG以下がゲームの内容のクラスなのですが、自分の担当部分はplayメソッドですので
そこの部分だけで構いません。どなたかよろしくお願いします。
//ゲーム開始(メインループ)
void play(){
プレイヤー1のクライアントに攻撃地点指定を要求(out1を使用)
プレイヤー1のクライアントから攻撃地点を取得(in1を使用)
bool attackHit = player2.checkDamage(<攻撃地点>);
if(attackHit){
プレイヤー1のクライアントに攻撃が当たったことを報告(out1を使用)
プレイヤー2のクライアントにダメージを食らったことを報告(out2を使用)
}else{
プレイヤー1のクライアントに攻撃が当たらなかったことを報告(out1を使用)
プレイヤー2のクライアントにダメージをくらわなかったことを報告(out2を使用)
}
player2.checkAllDeath(); // プレイヤー2の全滅判定
以上の処理をプレイヤー1と2を入れ替えて実行
以上の処理をどちらかが全滅するまで繰り返す
}
//もう一回やるか終了するか
//もう一回やるならtrue、終了ならfalse
bool replayOrEnd(){
}
0564M.B.
NGNG> Javaのネットワークプログラミングで、
> 魚雷当てゲームをグループで作ることになりました。
プレイ環境を明示しる。
でないと要求や報告の方法がわからん。
オープンで行なうのか LAN 環境下でプレイするのか。
判定などを行なうクライアントの下にサーバがぶら下がってるのか、
それともプレイヤーだけで構成されていて
全体を見るタスクが存在しなくてもいいのか。
プレイ状況は誰がどんなふうに見るのか。
LAN で乱打戦がありなら、まず戦場の情報をセットして戦闘に参加し、
攻撃側はブロードキャストで攻撃に関する情報を投げ、
各プレイヤーは被害状況を監視用のタスクに投げ、
監視用タスクはネットから見えるような形で戦況を表示する
(ただし観客用であり、プレイヤーはこの情報を利用してはならない)
というのが、スタンダードなやりかただと思うが。
0565M.B.
NGNG真面目に掲示板を作ろうと思うとけっこう大変だな
∧_∧
∧_∧ (´<_` ) ただいきあたりばったりに開発するのを
( ´_ゝ`) / ⌒i アジャイル手法とは呼ばないぞ兄者
/ \ | |
/ / ̄ ̄ ̄ ̄/ |
__(__ニつ/ IBM / .| .|____
\/____/ (u ⊃
0566M.B.
NGNG1)スレ表示用の Java サーブレットを書く。
2)駆動部を JSP として別立てし、そこに板ID とスレID を埋め込むようにする。
3)「スレ用のディレクトリを作成し、(2)の JSP を生成してそこにセットする」、
スレ立て用サーブレット(またはJSP)を書く。
4)板表示用サーブレット(またはJSP)index.* を書く。
5)板立て用の管理者向け Java アプリケーションを書く。
6)掲示板ホームページ用 HTML index.* を書く。
道は遠かった _| ̄|○
0567ジョンソン
NGNGサーバー内にゲームを処理するプログラムがあって、それにクライアント1と
クライアント2が接続します。クライアント1がどこを攻撃するか
を決めてそれをサーバーに送り、サーバーがそれを処理して当たったかどうかを
クライアント1,2に送るって感じですね。
0568デフォルトの名無しさん
NGNG0569デフォルトの名無しさん
NGNG(継承するDrawCircle2)↓
ttp://www.aoni.waseda.jp/ichiji/2004/second-term/prog-07-2.html
どなたかお願いします。 まだ間に合うので頼みます。
0570デフォルトの名無しさん
NGNG0571Java暦3日
NGNGのフォーマットで書かれたデータが与えられて
スタートとゴールが都市'1'で
全ての都市を巡回するルートのうち距離がなるべく小さくなるような
経路を求めるプログラムを提出しろとのことなんですが
誰かヘルプミー
1-2:1
1-3:2
1-4:3
2-3:4
2-4:5
3-4:6
1>4>3>2>1
の順で周ると距離は3+6+4+1=14です。
0572古代帝國富士皇朝総帥・伯壬旭
NGNGpublic class Problem2 extends DrawCircle2 {
public void init() {
super.init();
setBackground(Color.lightGray);
}
public void paint(Graphics g) {
int value = 5;
if (number >= 1 && number <= 5) {
value = 6 - number;
}
for (int i = value; i > 0; i--) {
int width = 50 * i;
int height = 50 * i;
int x = 200 - (width / 2);
int y = 180 - (height / 2);
if (i == 5) {
g.setColor(Color.green);
} else if (i == 4) {
g.setColor(Color.yellow);
} else if (i == 3) {
g.setColor(Color.magenta);
} else if (i == 2) {
g.setColor(Color.pink);
} else if (i == 1) {
g.setColor(Color.blue);
}
g.fillOval(x, y, width, height);
}
}
}
0573デフォルトの名無しさん
NGNG0574デフォルトの名無しさん
NGNGそのフォーマットで書かれたデータというのは
1-2:1
1-3:2
1-4:3
2-3:4
2-4:5
3-4:6
に対してだけなんですか?
それとも、そのフォーマットで書かれた様々なデータを
解析して、最短経路を示せるようにするプログラムを
作れとの事なのですか?
0575デフォルトの名無しさん
NGNG課題の条件を満たすために、敵からプレーヤーまでの最短距離である経路を見つけなければなりません。
画面は16×16マスで、プレーヤー、敵、ブロック、はしご、何も無い空間があります。
プレーヤーの座標、敵の座標、フィールドオブジェクトの位置関係が解る時、どうすれば最短距離を出せるのでしょうか?
以下、自分で考えたり用意したりしたこと。
up[i][j] = 1; //座標(i,j)から上に行く重みは1(行ける)
down[i][j] = 1000; //座標(i,j)から下に行く重みは1000(行けない)
right[i][j] = 1; //座標(i,j)から右に行く重みは1(行ける)
left[i][j] = 1; //座標(i,j)から左に行く重みは1(行ける)
あと最初全てのマスはtrueで、通った後falseを返すとか。
同じマスに通らずにプレーヤーの座標まで辿り着くルートを可能な限り出して、
その距離を比較し、最短距離の経路を配列で出せればいいのですが。
お願いします。
0576敵はロボット
NGNG課題の条件を満たすために、敵からプレーヤーまでの最短距離である経路を見つけなければなりません。
画面は16×16マスで、プレーヤー、敵、ブロック、はしご、何も無い空間があります。
プレーヤーの座標、敵の座標、フィールドオブジェクトの位置関係が解る時、どうすれば最短距離を出せるのでしょうか?
以下、自分で考えたり用意したりしたこと。
up[i][j] = 1; //座標(i,j)から上に行く重みは1(行ける)
down[i][j] = 1000; //座標(i,j)から下に行く重みは1000(行けない)
right[i][j] = 1; //座標(i,j)から右に行く重みは1(行ける)
left[i][j] = 1; //座標(i,j)から左に行く重みは1(行ける)
あと最初全てのマスはtrueで、通った後falseを返すとか。
同じマスに通らずにプレーヤーの座標まで辿り着くルートを可能な限り出して、
その距離を比較し、最短距離の経路を配列で出せればいいのですが。
お願いします。
0577M.B.
NGNGあいつら馬鹿だからホントに最短距離で来るぞ。
壁の向こうで待ってたりするし。
明らかに到達できないのに接近しようと
上から落っこってくる奴の頭を踏んづけて通らないと
クリアできない面とかあったはずだが。
(ちなみに百五十面すべてクリアした経験あり)
0578敵はロボット
NGNG課題用敵アルゴリズムを用意したいんです。
すんごい追ってくるスーパーエネミーを一体作成したくて。
本家は敵とプレーヤーの座標位置で近寄ってきますけど、
あくまで本家とは違うモノとしてお願いします。
上記のような経路の重みの情報を基に、
プレーヤーを最短距離で追うようなプログラム、お願いします。
0579デフォルトの名無しさん
NGNG>>240-244
に、作成した迷路の最短経路を求めるプログラムがある。
スタート地点(迷路の左上)を敵座標。ゴール地点(迷路の右下)を
プレイヤー座標と置き換えて読んでみるとか・・・
0580M.B.
NGNG「落ちる」「掘る」という要素があるので、
通常の迷路探索アルゴリズムは素直に適用できない。
まず推移的閉包を求めておいて、
プレイヤーがその中に入っていれば最短経路を通り、
そうでなければプレイヤーの脱出経路と推移的閉閉が
重なる点に移動するとかいった手段が必要と思われ。
推移的閉包を求める効率のいいアルゴリズムに関しては、
『プログラミング・セミナー』(共立出版)の、
『ちょっと珍しい算法の話』に記述あり。
0581M.B.
NGNGブロックにも掘れる奴と掘れない奴(「石」っつーのかな)があるので
「掘る」の場合でもちょっと工夫が必要。
なお、「見た目ブロックだが実際には何もない空間」っつー
ダミーブロックがあるので、「すんごい追ってくるスーパーエネミー」という
ことであれば、「引っかけ」という戦術的な要素も導入すると
面白いと思われ。
0582敵はロボット
NGNG解りました、一生懸命読んでみます。
理解できない部分があったら質問させて下さい。
というよりします。容赦なく。
>>580
推移的閉包、ですか…(な、なんだそれは!?)
明日、図書館行きますっ!
でも下に足場が無い落ちるマスは下方向に一方通行で、
プレーヤーが掘る穴については、無視でいいかな? とか考えていたんですけど。
そうしないと本当に敵から逃げられないし。
…中途半端にスーパーエネミーじゃないですね。
0583敵はロボット
NGNGあーうー、やることがだんだん増えていくー。
『敵にとって掘れるブロックも掘れないブロックも同じだろー』とか考えてたので。
0584M.B.
NGNGべつに難しい概念じゃないから安心しる。
ネットワーク理論で、「自分のいる地点から到達できる場所」のことを
すなわち、n 個の状態(位置)があるとして、
点 x から 点 y に移動できる(そういう通路がある)ということは、
n × n の boolean の配列 (x, y) が true であることで表される
(この配列を A としよう)。
で、任意の点 p から任意の点 q に到達できるかどうかを
表す配列 B を、この A から作り出す手続きが、
「推移的閉包を求めるアルゴリズム」なのだ。
0585デフォルトの名無しさん
NGNG0586M.B.
NGNG> 「推移的閉包」という。
の一行を適宜挿入せよ。
0587敵はロボット
NGNGn×nのマス目があって、
A:(x,y) = true ⇒行ける
B:(p,q) = true or false??
これをAをもって判断する?
これが推移的閉包を求めるアルゴリズム?
…今の俺にそれが可能なのだろうか。
いや、それより今はその『A』が行けるかどうか判断するので手一杯なのでは、俺は。
0588敵はロボット
NGNG0589デフォルトの名無しさん
NGNG0590>>571 その1
NGNGpublic class HW40 {
static class Town {
int myNo;
List nextList = new ArrayList(), distList = new ArrayList();
Town(int myNo) {
this.myNo = myNo;
}
public boolean equals(Object obj) {
if (!(obj instanceof Town))
return false;
return myNo == ((Town) obj).myNo;
}
}
static List townList = new ArrayList();
static List shortRoute;
static int shortDist = 1000;
static String text =
"1-2:1\n" +
"1-3:2\n" +
"1-4:3\n" +
"2-3:4\n" +
"2-4:5\n" +
"3-4:6";
0591>>571 その2
NGNGStringTokenizer st = new StringTokenizer(text, ":\n");
while (st.hasMoreTokens()) {
String token = st.nextToken(); String[] noText = token.split("-");
int no1 = Integer.parseInt(noText[0]); Town town1 = new Town(no1);
if (!townList.contains(town1)) {
townList.add(town1);
} else {
int idx = townList.indexOf(new Town(no1)); town1 = (Town) townList.get(idx);
}
int no2 = Integer.parseInt(noText[1]); town1.nextList.add(new Integer(no2));
Town town2 = new Town(no2);
if (!townList.contains(town2)) {
townList.add(town2);
} else {
int idx = townList.indexOf(new Town(no2)); town2 = (Town) townList.get(idx);
}
town2.nextList.add(new Integer(no1)); token = st.nextToken();
int no3 = Integer.parseInt(token); town1.distList.add(new Integer(no3));
town2.distList.add(new Integer(no3));
}
int idx = townList.indexOf(new Town(1)); Town start = (Town) townList.get(idx);
List route = new ArrayList(); route.add(new Integer(start.myNo));
move(start, route, 0);
System.out.print(((Integer) shortRoute.get(0)).intValue());
for (int i = 1; i < shortRoute.size(); i++) {
int no = ((Integer) shortRoute.get(i)).intValue(); System.out.print(" - " + no);
}
System.out.print("\n最短距離 " + shortDist);
}
0592>>571 その3
NGNGif (route.size() > townList.size() * 2) {
return;
}
block: if (town.myNo == 1) {
for (int i = 0; i < townList.size(); i++) {
Town prevTown = (Town) townList.get(i);
if (!route.contains(new Integer(prevTown.myNo))) {
break block;
}
}
if (dist <= shortDist) {
shortDist = dist;
shortRoute = route;
}
return;
}
for (int i = 0; i < town.nextList.size(); i++) {
int dis = ((Integer) town.distList.get(i)).intValue();
int no = ((Integer) town.nextList.get(i)).intValue();
int idx = townList.indexOf(new Town(no));
Town nextTown = (Town) townList.get(idx);
List nextRoute = new ArrayList(route);
nextRoute.add(new Integer(nextTown.myNo));
move(nextTown, nextRoute, dist + dis);
}
}
}
0593古代帝國富士皇朝総帥・伯壬旭
NGNG全部コピペしてコンパイル。
敷き詰めて書いてるのでフォーマットしなおしてください。
全部巡回して元に戻るって事で、ダイクストラとはちょっと違うのかと
思って普通の再帰にしました。(アルゴリズムの選択ミスだったらスマソ)
ちなみに、>>571の経路パターンだと
1>4>3>2>1 距離14
よりも
1 - 4 - 1 - 3 - 1 - 2 - 1
最短距離 12
となってしまいます・・・
0594M.B.
NGNG作業領域は 256 × 256、
計算量も n に比例だから、
ちょっとした画像処理程度の手間であって、
問題ないと思われ。
それに、プレイ開始前に計算して
テーブルで持っときゃいい話だから、
何時間かかろうが問題なし。
0595古代帝國富士皇朝総帥・伯壬旭
NGNGあと、都市経路のフォーマットは
都市A - 都市B : 距離(改行コード=\n)
・
・
としてください。
0596M.B.
NGNGスマソ 。 n の二乗に比例だったはず。
0597デフォルトの名無しさん
NGNG各都市は1回だけ訪問するような問題の気もする
巡回セールスマン問題みたいなものじゃないのかな?
0598デフォルトの名無しさん
NGNG4
|
3−2
|
1
0599デフォルトの名無しさん
NGNG自然対数を求めたいのですが、超高精度演算とやらで小数点以下100桁まで出力するプログラムを考えています。
この場合問題になるのがdouble型変数だとせいぜい十数桁までしか表示できません。
小数点以下100桁まで表示となると、どういう手法が考えられるのでしょうか?
よろしくお願いします。
0600デフォルトの名無しさん
NGNG0601デフォルトの名無しさん
NGNG宿題の内容が圧倒的にJavaのほうが上だと思うのですが、それはどういう風の吹き回しですか?
0602デフォルトの名無しさん
NGNG学校の先生の気分
0603599
NGNG多倍長だったかな・・
生意気なこと言うようで申し訳ないのですが、これで100,200,・・・10000桁とかでも拡張できるような
仕組みを考えていました。
こんなところをみてみたり、
ttp://www.pluto.ai.kyutech.ac.jp/plt/matumoto/pi_small/node31.html
本とかでは配列を使う手法などがあったのですが、どうもピンとこなくて。
0604599
NGNG全然違いました
ちょっと読んでみます。
すいません。。。
0605デフォルトの名無しさん
NGNG0606デフォルトの名無しさん
NGNG0607デフォルトの名無しさん
NGNG古代帝國富士皇朝総帥・伯壬旭さん。
ありがとうございました。
0608デフォルトの名無しさん
NGNG>BigDecimal
配列はなんか感覚的にしっくり来なくて。
ちょっとやってきてみます。
ありがとうございました。
0609敵はロボット
NGNGとりあえずはなんとか応用出来そうです。
どちらにしても明日『プログラミングセミナー』って本、探してみますけど。
0610デフォルトの名無しさん
NGNG1. EUCで書かれた"〜"がソースに含まれる
2. それをコンパイル
3. Windows上でSJISで"〜"を出力させようとすると化ける
EUCの"〜"をUnicodeに変換したものと、SJISの"〜"をUnicodeに変換したもが異なるのが原因のようですね。
「だったらソースを最初からSJISでコンパイルすればいいじゃん」
はい、その通りです。でも、今日出た指令では
1. OracleからEUCの文字列をJDBC経由で拾ってきて
(以下同じ)
DBの内容をいじることはできません。
「だったらEUCでコンパイルしてWindows側でEUCで出せばいいじゃん」
はい、そうなんですが、使っている帳票ミドルウェアの関係でSJIS以外利用できないのです。
扱う文字列をいちいちチェックして、地道に16進で置き換えるしかないのでしょうか・・・_| ̄|○
0611デフォルトの名無しさん
NGNG抽出できないのかな。
エラーが出てしまうんじゃ。
% jar -xf hogehoge.jar でダメ。
% jar -tf hogehoge.jar でみるとエラーのクラスは以上に長い。
質問の板が違っていたらゴメン。
0612デフォルトの名無しさん
NGNGWindows-31J
0613デフォルトの名無しさん
NGNGそのプログラムを書いてもらう宿題スレッドです。
普通の質問は絶対にやめてください。お願いします。
(宿題、課題とその回答プログラムに関する質問はOKですが)
質問スレッドは↓でお願いします。
【初心者】Java質問・相談スレッド57【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1101077884/l50
質問は、↑の本スレでお願いします。ここには書かないでください
0614敵はロボット1
NGNGコンパイルは通ったのですが、いざ組み込むと全員の動きが止まります。
どうやら自分で作ったgoPath()が原因のようなのですが、どうすればいいでしょうか?
あと最短経路でgoPath()を動かしたいのですが、ansList.get(index)をどのようにいじれば最短経路を出せるのかも教えてください。
ansList.get(index).length 、とかやったらエラーが出まくったので。
敵や味方、各クラスのmove()を同時に処理します。
public void move() {
ox = sprite.getPlanePosX(gos.ownPlnNo) / CELL; /*敵味方の座標位置*/
oy = sprite.getPlanePosY(gos.ownPlnNo) / CELL;
ex = sprite.getPlanePosX(gos.ePlnNo) / CELL;
ey = sprite.getPlanePosY(gos.ePlnNo) / CELL;
for (int i = 0; i < wall.length; ++i) {
for (int k = 0; k < wall.length; ++k) {
wall[i][k] = new Wall();
}
}
setwall();/*座標ごとの上に行けるか行けないかを設定するやつ*/
ansList.clear();
searchPath(ex, ey, ox, oy, new ArrayList());
goPath(0); //←原因
sprite.setPlaneView(plnNo, true);
}
0615敵はロボット2
NGNGPoint point = new Point(x, y);
if(pathList.contains(point)) return;
pathList.add(point);
if(x == p && y == q) { ansList.add(pathList); return; }
for(int i = 0; i < 4; ++i) {
switch (i) {
case NORTH:
if(!wall[x][y].north) searchPath(x, y - 1, p, q, new ArrayList(pathList)); break;
case SOUTH:
if(!wall[x][y].south) searchPath(x, y + 1, p, q, new ArrayList(pathList)); break;
case WEST:
if(!wall[x][y].west) searchPath(x - 1, y, p, q, new ArrayList(pathList)); break;
case EAST:
if(!wall[x][y].east) searchPath(x + 1, y, p, q, new ArrayList(pathList)); break;
}
}
}
void goPath(int index) {
List list = (List) ansList.get(index);
if(ex < ((Point)list.get(1)).x) sprite.setPlaneMov(plnNo, CELL, 0); //右に行く
if(ex > ((Point)list.get(1)).x) sprite.setPlaneMov(plnNo, -CELL, 0);
if(ey < ((Point)list.get(1)).y) sprite.setPlaneMov(plnNo, 0, CELL); //下に行く
if(ey > ((Point)list.get(1)).y) sprite.setPlaneMov(plnNo, 0, -CELL);
}
0616デフォルトの名無しさん
NGNG■天智天皇
――――――――
秋の田のかりほの庵の苫をあらみ
わが衣手は露にぬれつつ
――――――――
■持統天皇
――――――――
春すぎて夏来にけらし白妙の
衣ほすてふ天の香具山
〜〜〜〜〜〜〜〜〜〜
上記のテキストファイルを読み込み、ファイル名を天智天皇.txt、持統天皇.txt……
として中に歌の入ったファイルを作成せよ。
ファイル名が同じ場合はファイル名の最後に_01、_02と番号を振る。
よろしくです。
0617デフォルトの名無しさん
NGNGint idx = 0, minleng = Integer.MAX_VALUE;
for (int i = 0; i < ansList.size(); i++) {
if (((List)ansList.get(i)).size() < minleng) {
idx = i;
}
}
List pathList = (List) ansList.get(idx);
で、最短経路のリストpathListが出ます。
0618デフォルトの名無しさん
NGNGgoPathは、
まずsetPlaneMovを
Point prevPt;
void setPlaneMov(Point pt) {
if (prevPt != null) {
clearCharacter(prevPt); //ここで前座標のキャラクターイメージを消す
}
drawCharacter(pt); //ここで現座標にキャラクターイメージを書く
prevPt = pt;
}
として、
void goPath(int index) {
Point pt = (Point) pathList.get(index);
setPlaneMove(pt);
}
とした方がいいと思います。(goPathは、各タスクごとに味方キャラ、敵キャラ
と交互に呼び出される)
0619デフォルトの名無しさん
NGNGhttp://www.sankei.co.jp/news/041201/sha076.htm
濱野が人気のない公園に呼び出す(「町田を歩けなくしてやる」と脅迫して呼び出す)
↓
濱野が少女をレイプ(待ち伏せしてた仲間(笹川)と一緒に集団レイプの可能性も?)
↓
放心状態で抵抗不能の女の子を、濱野と笹川が(車で?)笹川の6畳1間のマンションへ運ぶ
↓
携帯メールを大量に送信し仲間を呼ぶ。
↓
実際にマンションに集合したのは20人。濱野ら到着の前に既に7、8人が待ち構える。
↓
見張りをつけて20人で集団レイプ(実際に強姦したのは15人。5人は見物)
↓
当然4人目で失神するも、ローションをつけて続ける(この辺りも常習性をにおわせる)
↓
その強姦の様子を携帯で撮影。画像が残る。
↓
妊娠or膣に大きな裂傷。
↓
PTSDのために、吐き気や眩暈、過呼吸などで苦しむ。登校拒否。
↓
不審に思った母親が事情を聞く。警察へ通報
0620M.B.
NGNGつまり仕様としては、
1)■で始まる行はファイル名
2)タブ、半角空白のみからなる行は空行を含めて無視
3)二文字以上の同一文字からなる行も無視
4)「■で始まる行」から、次の「■で始まる行」または
ファイル終端までがデータ。最初の「■で始まる行」までの
データは無視。
でいいのけ?
0621デフォルトの名無しさん
NGNG0622デフォルトの名無しさん
NGNG1)奇数番目に現れる「――――――――」の次の行がファイル名
2)空行は無視
3)偶数番目に現れる「――――――――」の次の行から空行まで
(またはファイルの終わりまで)がデータ
でおながいします。
0623M.B.
NGNG> 出題者は謝罪しる
>>622
仕様がうざいからヤダ。
「――――――――」の後に空白が入ったり、
'―' の個数が変わったり、
'―' の代わりに別の文字を使っただけで使い物にならなくなるような
再利用性の低いプログラムは書きとうない。
0624M.B.
NGNGC で書けばちょっと直しただけで CGI のプログラムになるし、
(Java だと java.exe に渡す引数だとか環境変数だとかの関係で
うまくいかない)演習の定番である detab にしろ entab にしろ cat にしろ、
ときどき思い出したように必要になる場面がある。
出題者は「実際に使える」ことに配慮して出題してほしいあるぞ。
0625☆その1
NGNG以下のプログラムを実行して、マイクから自分の声を吹き込むとwavファイルが生成されます。
このプログラムを加工して、出力した声が改変して(長くとか短くとかなんでもいいんですけど)
保存されるようにしないといけないのですが、さっぱりわかりません。
よろしくおねがいします。
import java.io.*;
import javax.sound.sampled.*;
public class Capture{
Capture capture = new Capture();
AudioInputStream audioInputStream;
AudioFormat format;
static String fileName = "untitled";
File file;
String errStr;
int frequency = 16000;
int bytesInFrameShift = 320;
public Capture() {
AudioFormat.Encoding encoding = AudioFormat.Encoding.PCM_SIGNED;
String signedString = "signed";
int sampleSize = 8;
boolean bigEndian = false;
int channels = 1;
0626☆その2
NGNG(sampleSize/8)*channels, frequency, bigEndian);
capture.start();
}
public void open() { }
public void close() { }
class Capture implements Runnable {
TargetDataLine line;
Thread thread;
public void start() {
errStr = null;
thread = new Thread(this);
thread.setName("Capture");
thread.start();
}
public void stop() {
thread = null;
}
0627☆その3
NGNGif ((errStr = message) != null && thread != null) {
thread = null;
System.err.println(errStr);
}
}
public void run() {
DataLine.Info info = new DataLine.Info(TargetDataLine.class, format);
if (!AudioSystem.isLineSupported(info)) {
shutDown("Line matching " + info + " not supported.");
return;
}
try {
line = (TargetDataLine) AudioSystem.getLine(info);
line.open(format, line.getBufferSize());
} catch (LineUnavailableException ex) {
shutDown("Unable to open the line: " + ex);
return;
} catch (SecurityException ex) {
shutDown(ex.toString());
return;
} catch (Exception ex) {
shutDown(ex.toString());
return;
}
0628☆その4
NGNGint frameSizeInBytes = format.getFrameSize();
byte[] data = new byte[bytesInFrameShift];
int numBytesRead;
int i = 0;
line.start();
try{
while (thread != null) {
if((numBytesRead = line.read(data, 0, bytesInFrameShift)) == -1) {
break;
}
if(i >= 5*frequency*1/bytesInFrameShift){
break;
}
out.write(data, 0, numBytesRead);
System.out.print("*");
i++;
}
0629☆その5
NGNGout.flush();
out.close();
byte audioBytes[] = out.toByteArray();
ByteArrayInputStream bais = new ByteArrayInputStream(audioBytes);
audioInputStream = new AudioInputStream(bais, format, audioBytes.length / frameSizeInBytes);
if (AudioSystem.write(audioInputStream, AudioFileFormat.Type.WAVE, file) == -1) {
throw new IOException("Problems writing to file");
}
}catch(FileNotFoundException e){
System.err.println("File doesn't exist.");
}catch(IOException e){
System.err.println("IO error occured.");
}
line.stop();
line.close();
line = null;
}
}
public static void main(String s[]) {
Capture Capture = new Capture();
}
}
長くてごめんなさい。。。
0630デフォルトの名無しさん
NGNG0631敵はロボット
NGNG上記を参考に以下のように修正しました。
Point prevPt;
void setPlaneMov(Point pt) {
if (prevPt != null) {
clearCharacter(prevPt); /*ここで前座標のキャラクターイメージを消す*/
}
drawCharacter(pt); /*ここで現座標にキャラクターイメージを書く*/
prevPt = pt;
}
void clearCharacter(Point pt){
sprite.setPlaneView(plnNo, false); //問答無用で消える。
}
void drawCharacter(Point pt){
int u = pt.x * CELL;
int t = pt.y * CELL;
sprite.setPlanePos(plnNo, u, t);//(u,t)の位置に書き込む。
}
0632敵はロボット
NGNGint idx = 0, minleng = Integer.MAX_VALUE;
for (int i = 0; i < ansList.size(); i++) {
if (((List)ansList.get(i)).size() < minleng) {
idx = i;
}
}
List pathList = (List) ansList.get(idx);
Point pt = (Point) pathList.get(index);
setPlaneMov(pt);
}
0633敵はロボット
NGNGだから一度基本的なところから質問させてください。
敵が(2,2)からプレーヤーがいる(5,5)に行くとき、
List pathList には
List pathList = [(2,2),(2,3),(3,3),(4,3),(4,4),(4,5),(5,5)]
という風に入るんですよね?
だから敵の一歩目は、
x座標が、(Point)pathList.get(1)).x
y座標が、(Point)pathList.get(1)).y
これで間違いないですか?
間違いないのなら、最初のgoPath()でも問題ないと思ってしまうのですが、
誰も動けなくなる理由が解らないです。動けよー。
0634敵はロボット1
NGNGimport javax.swing.*;
import java.awt.image.*;
import java.awt.*;
import java.util.List;
import java.awt.event.*;
public class Enemy3 extends GameObject {
static class Wall {
boolean north = true,
south = true,
west = true,
east = true,
mark= false;
}
public Enemy3(int plnNo, Sprite sprite, Queue keyQ, int x, int y,
GameObjects gos, int targetPlnNo) {
super(plnNo, sprite, keyQ, x, y, gos, targetPlnNo);
attribute = ENEMY;
sprite.setPlaneGrp(plnNo, 0, 4);
sprite.setPlanePos(plnNo, x, y);
}
0635敵はロボット2
NGNGstatic List ansList = new ArrayList();
static final int NORTH = 0,
SOUTH = 1,
WEST = 2,
EAST = 3,
CELL = 20,
HCELL = 10;
int ox, oy, ex, ey;
public void move() {
ox = sprite.getPlanePosX(gos.ownPlnNo) / CELL;
oy = sprite.getPlanePosY(gos.ownPlnNo) / CELL;
ex = sprite.getPlanePosX(gos.ePlnNo) / CELL;
ey = sprite.getPlanePosY(gos.ePlnNo) / CELL;
for (int i = 0; i < wall.length; ++i) {
for (int k = 0; k < wall.length; ++k) {
wall[i][k] = new Wall();
}
}
setwall();
ansList.clear();
searchPath(ex, ey, ox, oy, new ArrayList());
goPath(1);
sprite.setPlaneView(plnNo, true);
}
0636敵はロボット3
NGNGPoint point = new Point(x, y);
if(pathList.contains(point)) return;
pathList.add(point);
if(x == p && y == q) { ansList.add(pathList); return; }
for(int i = 0; i < 4; ++i) {
switch (i) {
case NORTH:
if(!wall[x][y].north) searchPath(x, y - 1, p, q, new ArrayList(pathList)); break;
case SOUTH:
if(!wall[x][y].south) searchPath(x, y + 1, p, q, new ArrayList(pathList)); break;
case WEST:
if(!wall[x][y].west) searchPath(x - 1, y, p, q, new ArrayList(pathList)); break;
case EAST:
if(!wall[x][y].east) searchPath(x + 1, y, p, q, new ArrayList(pathList)); break;
}
}
}
0637敵はロボット4
NGNGField1 fie = new Field1();
int field[][] = new int[16][16];
int stage = 1;
field = fie.stage(stage);
/*1=レンガ、2=石、3=ハシゴ*/
for(int x=1; x<15; x++){
for(int y=1; y<15; y++){
if(field[x][y] != 2){
wall[x][y].north = true;
}
if(field[x][y + 1] == 0 || field[x][y] == 1){
wall[x][y].south = true;
}
if((field[x - 1][y] == 0 || field[x - 1][y] == 1)
|| (field[x][y + 1] != 0 || field[x][y + 1] != 1 || field[x][y + 1] != 2 || field[x][y] != 2)){
wall[x][y].west = true;
}
if((field[x + 1][y] == 0 || field[x + 1][y] == 1)
|| (field[x][y + 1] != 0 || field[x][y + 1] != 1 || field[x][y + 1] != 2 || field[x][y] != 2)){
wall[x][y].east = true;
}
}
}
}
0638敵はロボット5
NGNGvoid setPlaneMov(Point pt) {
if (prevPt != null) {
clearCharacter(prevPt); /*ここで前座標のキャラクターイメージを消す*/
}
drawCharacter(pt); /*ここで現座標にキャラクターイメージを書く*/
prevPt = pt;
}
void goPath(int index) {
int idx = 0, minleng = Integer.MAX_VALUE;
for (int i = 0; i < ansList.size(); i++) {
if (((List)ansList.get(i)).size() < minleng) {
idx = i;
}
}
List pathList = (List) ansList.get(idx);
Point pt = (Point) pathList.get(index);
setPlaneMov(pt);
}
void clearCharacter(Point pt){
sprite.setPlaneView(plnNo, false);
}
void drawCharacter(Point pt){
int u = pt.x * CELL;
int t = pt.y * CELL;
sprite.setPlanePos(plnNo, u, t);
}
}
0639敵はロボット5
NGNG0640デフォルトの名無しさん
NGNGhttp://www.wikiroom.com/java/?%a5%bd%a1%bc%a5%b9%c5%bd%c9%d5%a4%b1
0641527
NGNGすいません、問題文をそのままよく考えもせずに書いてしまいました。
考察うんぬんはもちろん自分でやります。ツッコミサンクスです。
>>古代帝國富士皇朝総帥・伯壬旭様
これはそれぞれ SortableDataに追加すればいいんでしょうか?
そのまま追加するとエラーが出たので、頭にpublicをつけたのですが結果に反映
されてるのかいまいちわかりませんでした。
0642デフォルトの名無しさん
NGNG---a.txt---
あ
い
う
----------
があったとき、4行目から新しく書き込みする
ためにはどうしたらよいでしょうか?
どなたかサンプルプログラムを書いていただけるとうれしいです。
0643デフォルトの名無しさん
NGNGttp://www.google.co.jp/search?hl=ja&q=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E8%BF%BD%E5%8A%A0%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%81%BF+Java&lr=
ていうか
さっき質問スレで既存ファイルに追記するときはFileWriterで
第一引数にファイル名、第二引数にtrue
を入れるって言われてたじゃん
0644デフォルトの名無しさん
NGNGいっこうに綺麗になりません。なんでですか。
0645デフォルトの名無しさん
NGNG今時ジャバを使うような風呂釜使ってるおまえさんちが悪い。
さっさと釜ごと取り替えろ。
0646デフォルトの名無しさん
NGNG(1) クラスAddressの定義
このプログラムは、氏名と住所、電話番号が記録されている個人データを管理する。住所録リスト中の個人データは次のクラスAddressで定義する。
class Address {
private String name; /* 氏名 */
private String address; /* 住所 */
private String phone; /* 電話番号 */
public Address(String name, String address, String phone) { ... } /* コンストラクタ */
public int setName(String name) { ... } /* 氏名を変更 */
public int setAddress(String address) { ...} /* 住所を変更 */
public int setPhone(String phone) { ... } /* 電話番号を変更 */
public String getName() { ... } /* 氏名を取得 */
public String getAddress() { ... } /* 住所を取得 */
public String getPhone() { ... } /* 電話番号を取得 */
}
Addressの各メソッドは次に示す値を返す。
setName 0 正常終了したとき
setAddress 0 正常終了したとき
setPhone 0 正常終了したとき
-1 電話番号に数字とハイフン以外を使用したとき
getName 住所録中の名前
getAddress 住所録中の住所
getPhone 住所録中の電話番号
0647デフォルトの名無しさん
NGNGAddressBookは、住所録のリストをもつ。住所録リストは、各個人データのHashtable(ハッシュテーブル)として定義されている(HashtableのAPIについてはドキュメントを参照すること)。AddressBookは、次のクラスで表される。ただし、privateなメソッドは追加しても良い。
import java.util.Hashtable;
class AddressBook {
Hashtable book; /* 住所録 */
public AddressBook() { ... } /* 住所録を初期化し、空の住所録を作る */
public int insert(String name, String address, String phone) { ... } /* 個人データの登録 */
public int remove(String name) { ... } /* 個人データの削除 */
public int changeAddress(String oldname, String newname, String newaddress, String newphone) { ... } /* 個人データを変更 */
public Address getAddress(String name) { ... } /* nameで指定された個人データを返す */
public Address[] getAddress() { ... } /* 全個人データの一覧を返す */
}
AddressBookの各メソッドは次に示す値を返す。
insert 0 正常終了したとき -1 電話番号で数字とハイフン以外を使用した場合とき -2 住所録リストにある氏名で再び個人データを登録したとき
remove 0 正常終了したとき -3 住所録リストにない氏名が指定されたとき
changeAddress 0 正常終了したとき -1 電話番号に数字とハイフン以外を使用した場合とき -2 住所録リストにある氏名で新しい個人データを登録したとき -3 住所録リストにない氏名が指定されたとき
getAddress(String name) null 住所録リストにない氏名が指定されたとき
null以外 nameで指定された個人データ
getAddress() null 住所録が空の時
null以外 住所録にある全ての個人データの配列
0648デフォルトの名無しさん
NGNG課題5で作成した住所録管理システムのユーザインタフェース
とは何なのか・・・
0650デフォルトの名無しさん
NGNGアクセサメソッドのエラーを整数で返すからコンストラクタで使うと握りつぶされる。
どうせなら例外を投げるようにしろっての。
0651デフォルトの名無しさん
NGNGaの値を求めるプログラムを作成しなさい。
なお、a、bは0<a,0<b<1を満たす定数とする。
またaの値を使って
lim_[x→∞]{log_{2} {(x^2+ax+b)-(ax/2+b)} /log_{2} (x)
の極限値を求めるプログラムを作成せよ。
よろしくおねがいします。
0652646
NGNGありがとうございます。参考にさせてもらいますねん
0653646
NGNGありがとうございます。参考にさせてもらいますねん
0654デフォルトの名無しさん
NGNGプログラムじゃないとダメなの?
0655デフォルトの名無しさん
NGNGimport java.awt.*;
public class Kadai9_1 extends Applet implements Runnable {
final static double XMIN = -5.0, XMAX=5.0, YMIN=-5.0, YMAX=5.0;
int transX(double x) {
return (int)((x-XMIN)/(XMAX - XMIN)*getSize().width);
}
int transY(double y) {
return (int)((YMAX-y)/(YMAX - YMIN)*getSize().height);
}
double f1(double t, double vx, double x, double vy, double y) {
return vx;
}
double f2(double t, double vx, double x, double vy, double y) {
return -G*M*x/Math.pow(x*x+y*y,3/2);
}
double f3(double t, double vx, double x, double vy, double y) {
return vy;
}
double f4(double t, double vx, double x, double vy, double y) {
return -G*M*y/Math.pow(x*x+y*y,3/2);
}
Thread th = null;
double G=1, M=1;
double vx = 50, x = 5, vy = 50, y = 5;
0656デフォルトの名無しさん
NGNGpublic void start(){
if(th == null){
th = new Thread(this);
th.start();
}
}
public void stop(){
if (th != null) {
th.stop();
th = null;
}
}
public void run() {
while (true) {
double t;
double T = 1.0;
double N = 100;
double dt = T/N;
double k11,k12,k13,k14,k21,k22,k23,k24,k31,k32,k33,k34,k41,k42,k43,k44;
0657デフォルトの名無しさん
NGNGt = j * dt;
k11 = f1(t,vx,x,vy,y);
k12 = f2(t,vx,x,vy,y);
k13 = f3(t,vx,x,vy,y);
k14 = f4(t,vx,x,vy,y);
k21 = f1(t+dt/2.0, vx+dt/2.0*k11, x+dt/2.0*k12, vy+dt/2.0*k13, y+dt/2.0*k14);
k22 = f2(t+dt/2.0, vx+dt/2.0*k11, x+dt/2.0*k12, vy+dt/2.0*k13, y+dt/2.0*k14);
k23 = f3(t+dt/2.0, vx+dt/2.0*k11, x+dt/2.0*k12, vy+dt/2.0*k13, y+dt/2.0*k14);
k24 = f4(t+dt/2.0, vx+dt/2.0*k11, x+dt/2.0*k12, vy+dt/2.0*k13, y+dt/2.0*k14);
k31 = f1(t+dt/2.0, vx+dt/2.0*k21, x+dt/2.0*k22, vy+dt/2.0*k23, y+dt/2.0*k24);
k32 = f2(t+dt/2.0, vx+dt/2.0*k21, x+dt/2.0*k22, vy+dt/2.0*k23, y+dt/2.0*k24);
k33 = f3(t+dt/2.0, vx+dt/2.0*k21, x+dt/2.0*k22, vy+dt/2.0*k23, y+dt/2.0*k24);
k34 = f4(t+dt/2.0, vx+dt/2.0*k21, x+dt/2.0*k22, vy+dt/2.0*k23, y+dt/2.0*k24);
k41 = f1(t+dt, vx+dt*k31, x+dt*k32, vy+dt*k33, y+dt*k34);
k42 = f2(t+dt, vx+dt*k31, x+dt*k32, vy+dt*k33, y+dt*k34);
k43 = f3(t+dt, vx+dt*k31, x+dt*k32, vy+dt*k33, y+dt*k34);
k44 = f4(t+dt, vx+dt*k31, x+dt*k32, vy+dt*k33, y+dt*k34);
vx = vx+dt/6.0*(k11+2.0*k21+2.0*k31+k41);
x = x+dt/6.0*(k12+2.0*k22+2.0*k32+k42);
vy = vy+dt/6.0*(k13+2.0*k23+2.0*k33+k43);
y = y+dt/6.0*(k14+2.0*k24+2.0*k34+k44);
repaint();
0658デフォルトの名無しさん
NGNGth.sleep(10);
} catch (InterruptedException e) {}
}
}
}
public void paint(Graphics g) {
g.drawString("第6回課題 T000000 龍谷 太郎", getSize().width - getFont().getSize()*15, getFont().getSize());
g.fillOval(transX(x), transY(y), 10, 10);
}
}
0659デフォルトの名無しさん
NGNGの課題9_1をやってもらいたいのですが、
>>655
>>656
>>657
>>658
を修正してなおしてもらいたいです。かなりまちがっています。てゆーかまったくあってません。
ttp://sparrow.math.ryukoku.ac.jp/~junta/edu/graphics/note.pdf
ここもあるていど参考になるとおもいます。
ほぼサンプルどうりの動きとスピードになるように変数の値は適当にかえてください。
おねがいします。
0660571
NGNG名前の読み方がわかりませんが、
5分前に提出できました。
ありがとうございます。
10人くらい救われました。
こんな短いプログラムで最短経路が求まってしまうのに驚きです。
今はレポート書きと改良をやってます。
都市の数が10個くらいの時にもっと高速に計算する方法ってあるんでしょうか?
0661デフォルトの名無しさん
NGNG> 名前の読み方がわかりませんが、
ワラタ
俺も分からんけど。
0662デフォルトの名無しさん
NGNG0663デフォルトの名無しさん
NGNG0664デフォルトの名無しさん
NGNGhttp://zynekiller.hp.infoseek.co.jp/
0665デフォルトの名無しさん
NGNGpublic class Text extends Contents{
public Text(int i){
}
public Text(int i, int j){
}
}
このクラスをインスタンス化するのに適切な記述を全て選んでください。
Text t = new Text();
Text t = new Text(1);
Text t = new Text(1,2);
Text t = new Text(1,2,3);
Text t = (new Contents()).new Text(1);
お願いします
0666デフォルトの名無しさん
NGNGpublic class Outer{
public int a = 1;
private int b = 2;
public void method(final int c){
int d = 3;
class Inner{
private void innerMethod(int e){
}
}
}
}
innerMethodの内部において参照可能な変数を全て選択してください
a
b
c
d
e
これもお願いします
0667デフォルトの名無しさん
NGNG0668デフォルトの名無しさん
NGNGも踏まえてお願いします
0669デフォルトの名無しさん
NGNG定義されているコンストラクタならどれでも呼べるし、
定義されていないなら呼べるはずがない。
Text t = (new Contents()).new Text(1);はまったく意味不明。
よって答えは(ry
>>666
内側のスコープからは外側のスコープの変数は全部丸見え。
if ブロックだろうと内部クラスだろうと。
よって答えは(ry
0670デフォルトの名無しさん
NGNGそのハッシュテーブルの内容をテキストエリアに一覧として表示する、
方法を教えてください
0671デフォルトの名無しさん
NGNG>>695
を助けてください!
0672デフォルトの名無しさん
NGNGそれなら確か逆コンパイルしたソースで完全解答が出たはずだけど・・・
そのソースをちょっと改造すれば大丈夫なのでは?
0673敵はロボット
NGNGありがとうございます。
でも別件でまた来るかもしれないっす。
0674デフォルトの名無しさん
NGNGハッシュテーブルのキーはどうするの?
あとAWTでやるのかSwingでやるのかも書いてくれ
0675デフォルトの名無しさん
NGNGそれじゃだめなんです。ルンゲクッタほうをつかわないと。
課題提出のときに教授の質問に答えないとだめなんです。
どなたかお願いします。
0676デフォルトの名無しさん
NGNG文字列に「あいうえおあお」
とあった場合に、それぞれの文字列を一文字ずつカウントさせて
あ=2
い=1
う=1
え=1
お=2
hashmapなど使おうとしたのですが
なかなかうまくいきませんので教えてください。
0677670
NGNGハッシュテーブルのキーとは何のことでしょう・・・
すいません初心者なもので;
0678M.B.
NGNGいや、だからそれはプログラミングの問題ではないのだとorz
0679M.B.
NGNGHashMap のキーは Object なので、
for (int cnt = 0;cnt < str.length();cnt += 1) {
Integer key = new Integer((int)str.charAt(cnt));
// ここでごちゃごちゃ
// Integer だからたぶん add() メソッドかなんか使う
}
かなんかしる。
0680デフォルトの名無しさん
NGNGまだ習っていないものを作ると疑われるのと、自分で理解できないんです。すいません無茶いって、
>>655
>>656
>>657
>>658
に大体が書いてあるので、修正してなんとかやってもらえませんか?お願いします。
0681デフォルトの名無しさん
NGNGそこまでいってなくて
HashMapのputで
文字列を一つずつ読み込んでいって
あ→+1
い→+1
…
二回目のあ→+2
というのがよくわかりません
0682M.B.
NGNG私はあなたの説明がよくわかりません(´・ω・`)
0683ケン
NGNGgzipの解凍はできたのですが、tarファイルの展開ができません。
と言いますかやり方がわかりません。
いろいろ探したのですが見つかりませんでした。
JAVA初心者なので探し方も悪いのだと思いますが
なにとどご教授お願いします。
0684デフォルトの名無しさん
NGNG「二回目」が分からないのであれば、たぶんこういうこと
例えば "あ" を読み込んだら、
"あ" のキーで get して返ってきた値に 1 を足して
putし直す。
null が返ってきたら、1 を入れる。
Integerみたく作ったら変更できないオブジェクトでは
↑みたいにするしかないけど、
こんなクラスつくって
class Counter {
private int val;
public Counter() {
val = 1;
}
public void inc() {
val += 1;
}
public int get() {
return val;
}
}
もし "あ" のキーでnullじゃないのが返ってきたら、
返ってきた値を Counter 型にキャストして inc を呼ぶ。putとかはしない。
返ってこなかったら、new Counter() を putする。
個人的にはこっちがおすすめ。
というわけで、>>679 が省略した部分を書いてみた
0685デフォルトの名無しさん
NGNGなるほど
hashmapだけでやろうとしてました
考えたらクラスをもう一つ作った方が早いですね
ありがとうございます
0686デフォルトの名無しさん
NGNGそれがJavaの質問だと思っているなら氏んでね。
違うとわかってて質問しているなら消えてね。
0687デフォルトの名無しさん
NGNGjavaでtarばらすプログラム書きたいのかも知れんぞ。
0688デフォルトの名無しさん
NGNGttp://hccweb1.bai.ne.jp/~hcj64001/umjammer/text/d0030.html
0689デフォルトの名無しさん
NGNG俺はやってみたいが、残念なことに高校言ってないのと同じだからなぁ
二階微分方程式だっけ? 計算の仕方とかわかれば作ってみたいんだが
逆コンパイルで一応見てみるができれば数学の参考になるとこ教えて下さい
0690ケン
NGNG683は
JAVAのプログラム上で展開したいんです。
0691デフォルトの名無しさん
NGNGだから>>688のリンク先に
Javaのアーカイバのリンク集がある
0692ケン
NGNGありがとうございました。
参考にさせていただきます。
>>691
知ってはいたんですが、javaの掲示板てことで
私が言葉足らずになってしまったために
687様のようにある程度理解できない人がいたみたいなので
念のため書かせていただきました。
691様ご丁寧にありがとうございました。
0693デフォルトの名無しさん
NGNGこりゃ失礼。
0694デフォルトの名無しさん
NGNG0695デフォルトの名無しさん
NGNG0696デフォルトの名無しさん
NGNG文字列が
String[] a={"あい","うえ","お","かか","きき","こ"}
String[] b={"あい","け","お","こ","ちち","た"}
と二つあるとき,bに対してaの文字列を引いた文字列
だけを取得するためのサンプルプログラムをおせえてちょ−だい
この場合は、結果的に{"け","ちち","た"}のみになりまちょ
下にサンプルを書きます。しかしエラーが発生してしまいます。
Arrayの所です。どなたか正しく直してくださいまし・・・
public class www extends DefaultHandler {
public static void main(String[] argv) {
String[] a={"あ"};
String[] b={"あ","い","さ","し","す","か","そ"};
ArrayList k = new ArrayList(Arrays.asList(b));
k.removeAll(Arrays.asList(a));
String[] c = (String[])k.toarray(new String[k.size()]);
for(int i=0;i<c.length;i++){
System.out.println("key:"+c[i]);}
}
}
後は宿題掲示板の方で聴いて見ます。。ありがとです。
0697デフォルトの名無しさん
NGNG教えてもらったプログラムすらまともに打ち込めないなんて
0698M.B.
NGNG"こ" - "かか" がゼロになる理屈を教えてくれ。
正直、漏れにはさっぱりわからん。
たぶん漏れの頭が悪いせいなのだと思うが。
0699デフォルトの名無しさん
NGNG696 ではないが
bを文字列の集合と考えて
aの文字列の集合との差を求めたいんだと思うよ
0700M.B.
NGNGつまり世間では「差集合」とか「差分マージ」とかいうアレのことか。
そういう場合には通常ソートしてから処理するので、
配列や ArrayList ではなくて、
TreeMap かなんかで出題していただきたかった。
0701696
NGNGすみません。全然解らなくて
とりあえず教えていただいてから(動いてから)
勉強しようかと思っていまして・・
どなたかご存知でしたらお力を・・・
0702デフォルトの名無しさん
NGNG難しすぎて全然わからないんです。・゚・(ノД`)・゚・。 うゎぁ〜ん
助けてください。お願いしますo_ _)o ペコ
電話帳を作成しなさい。
電話帳に登録される情報は、
名前、登録、年齢、電話番号とする。
プログラムを起動すると、メニューが表示される。
メニューには「0:表示」、「1:登録」、「2:削除」、「9:終了」
がある。メニューは数字を入力することにより選択できる。
「0:表示」を選択すると、プログラムは登録されている情報を
一覧で表示する。このとき年齢の若い順に
情報が表示されるようにしなさい。
「1:登録」を選択すると、プログラムは情報の入力を促すメッセージを表示する。
情報は、名前、年齢、電話番号を一項目ずつ入力する。
「2:削除」を選択すると、プログラムは登録されている情報を一覧で表示して、
どの人の情報を削除するのか問うメッセージを表示する。
表示の順番は問わないが、各人毎にid番号をつけて表示すること。
ユーザはこのid番号を入力して削除する情報を指定する。
「9:終了」を選択するとプログラムは終了する。
ただし、プログラムを終了しても登録されている情報は保存されていて、
次に起動した時も同じ情報が表示されること。(保存はテキストメモに保存しておく)
☆続く☆ 次に仕様を書きます
0703デフォルトの名無しさん
NGNG仕様1 プログラムの起動は以下のようにする
java TelDirectory
仕様2 このプログラムの使い方は次のようにする
1,ユーザーがプログラムを起動する。
2,プログラムはメニューを表示する。
3,ユーザーはメニューを選択し、番号を入力する。
4,プログラムはメニューに応じた情報を表示し、ユーザに操作を促す。
5,ユーザーはメニューに応じた情報を入力する
6,プログラムメニューに応じて情報を操作し、メニュー画面に戻る。
仕様3 以下のエラーチェック・対策は必須とする。
・メニュー選択時に存在しないメニューを選択した場合、メッセージを表示して
メニュー画面に戻る
・「1:登録」時、名前、年齢、電話番号を入力しなかった場合、
もしくは年齢に数字以外の値を入力した場合、メッセージを表示して再度入力させる
・「2:削除」時、存在しないidを選択した場合、メッセージを表示して再度入力させる
・全ての操作において、何らかの理由で保存してあるデータの取得や
データの保存に失敗した場合はメッセージを表示して、メニュー画面に戻る。
仕様4 ソースコードには他人が読んで理解できるように
わかりやすいコメントをつけること。
仕様5 ソースコードはクラスごとにファイルを作成する。
一つのファイルに複数のクラスを記述してはいけない、
また、ファイル名とクラス名を同じにする事
0704デフォルトの名無しさん
NGNG> わかりやすいコメントをつけること。
0705>>703 その1
NGNGpublic class TelDirectory {
static class Member implements Comparable {
int id; String name; int age; String tel;
Member(String name, int age, String tel) throws Exception {
if (name.trim().length() == 0 || tel.trim().length() == 0)
throw new Exception();
this.id = data.size(); this.name = name.trim();
this.age = age; this.tel = tel.trim();
}
Member(String id, String name, String age, String tel) throws Exception {
this.id = Integer.parseInt(id); this.name = name;
this.age = Integer.parseInt(age); this.tel = tel;
}
public int compareTo(Object o) {
if (age < ((Member)o).age) return -1;
else if (age > ((Member)o).age) return +1;
else return 0;
}
public String toString() {
return (new DecimalFormat("0000")).format(id)
+ ": " + name + " " + age + "歳 Tel" + tel;
}
public String toFile() {
return (new DecimalFormat("0000")).format(id)
+ ": " + name + " " + age + "歳 Tel" + tel + "\r\n";
}
}
static Map data = new TreeMap();
static final String filename = "テキストメモ.txt";
0706>>703 その2
NGNGload();
boolean run = true;
while (run) {
run = menu();
}
}
static void out(String text, boolean feed) {
System.out.print(text);
if (feed) { System.out.println(); }
}
static String in(String text) throws IOException {
System.out.print(text);
return new BufferedReader(new InputStreamReader(System.in)).readLine();
}
static boolean menu() {
out("\nメニュー", true);
out("0:表示 1:登録 2:削除 9:終了", true);
int no;
try {
String line = in("入力=>"); no = Integer.parseInt(line);
} catch (Exception ex) {
out("メニュー入力が不正", true); return true;
}
switch (no) {
case 0: show(); break; case 1: entry(); break; case 2: delete(); break;
case 9: out("終了します", true); return false;
default: out("メニュー入力が不正", true);
}
return true;
}
0707>>703 その3
NGNGout("\n名簿表", true);
List list = new ArrayList(data.values());
Collections.sort(list);
for (int i = 0; i < list.size(); i++) {
out(list.get(i).toString(), true);
}
out("", true);
}
static void entry() {
while (true) {
try {
out("\n登録(enterで抜ける)", true);
String name = in("名前の入力=>");
if (name.length() == 0) break;
String aget = in("年齢の入力=>");
if (aget.length() == 0) break;
int age = Integer.parseInt(aget);
String tel = in("電話番号の入力=>");
if (tel.length() == 0) break;
Member mem = new Member(name, age, tel);
data.put(new Integer(mem.id), mem);
out(mem.toString() + "を登録", true);
save();
break;
} catch (Exception e) {
out("入力が不正", true); continue;
}
}
out("", true);
}
0708>>703 その4
NGNGwhile (true) {
try {
out("\n削除(enterで抜ける)", true); String idt = in("削除IDの入力=>");
if (idt.length() == 0) break;
int id = Integer.parseInt(idt);
Object flag = data.remove(new Integer(id));
if (flag != null) {
out(flag.toString() + "を削除", true); save();
} else {
out("そのIDは存在しない", true); continue;
}
break;
} catch (Exception e) {
out("入力が不正", true); continue;
}
}
out("", true);
}
static void save() {
try {
FileWriter w = new FileWriter(filename);
Iterator it = data.values().iterator();
while (it.hasNext()) {
w.write(((Member)it.next()).toFile());
}
w.close();
} catch (IOException e) {
out("ファイル書き込みエラー発生", true);
}
}
0709>>703 その5
NGNGtry {
if (!(new File(filename).exists())) {
return;
}
FileReader r = new FileReader(filename);
CharArrayWriter cw = new CharArrayWriter();
char[] buf = new char[1000];
int size = 0;
while ((size = r.read(buf)) != -1) {
cw.write(buf, 0, size);
}
r.close();
StringTokenizer st = new StringTokenizer(new String(cw.toCharArray()));
while (st.hasMoreTokens()) {
String token = st.nextToken();
int idx = token.indexOf(":");
String id = token.substring(0, idx);
String name = st.nextToken();
token = st.nextToken();
idx = token.indexOf("歳");
String age = token.substring(0, idx);
String tel = st.nextToken().substring(3);
Member mem = new Member(id, name, age, tel);
data.put(new Integer(mem.id), mem);
}
} catch (Exception e) {
out("データロードエラー発生", true);
}
}
}
0710デフォルトの名無しさん
NGNGどうしても解らなくて・・・
文字列が
String[] a={"あい","うえ","お","かか","きき","こ"}
String[] b={"あい","け","お","こ","ちち","た"}
と二つあるとき,bに対してaの文字列を引いた文字列
だけを取得するためのサンプルプログラムをおせえてちょ−だい
この場合は、結果的に{"け","ちち","た"}のみになりまちょ
下にサンプルを書きます。しかしエラーが発生してしまいます。
Arrayの所です。どなたか正しく直してくださいまし・・・
public class www extends DefaultHandler {
public static void main(String[] argv) {
String[] a={"あ"};
String[] b={"あ","い","さ","し","す","か","そ"};
ArrayList k = new ArrayList(Arrays.asList(b));
k.removeAll(Arrays.asList(a));
String[] c = (String[])k.toarray(new String[k.size()]);
for(int i=0;i<c.length;i++){
System.out.println("key:"+c[i]);}
}
}
0711デフォルトの名無しさん
NGNG君は心底間抜けなヤツだな。
toarray と toArrayが同じとでも思っているのか?
0712古代帝國富士皇帝総帥・伯壬旭
NGNGpublic static void main(String[] args) {
String[] a = {"あい","うえ","お","かか","きき","こ"} ;
String[] b = {"あい","け","お","こ","ちち","た"} ;
Set setA = new LinkedHashSet(Arrays.asList(a));
Set setB = new LinkedHashSet(Arrays.asList(b));
setB.removeAll(setA);
Iterator it = setB.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
}
0713古代帝國富士皇朝総帥・伯壬旭
NGNG全部コピペしてコンパイル。
敷き詰めて書いてるのでフォーマットし直してください。
0714デフォルトの名無しさん
NGNGありがとうございます。
コピペさせていただきました。
しかしやはり
エラーが起こってしまいます。
エラー内容は、
LinkedHashSetのシンボルが解決できない
Arraysのシンボルが解決できない
Iteratorのシンボルが解決できない
などです。もしかしたらすごい単純な所で引っ掛かっているのかもしれませんが
すみませんが宜しくお願いします。
0715デフォルトの名無しさん
NGNGimport java.util.*;
インポートぐらい自分でやれよ。
あなたね、もっともっと基本的なところからやったほうがいいよ。
大体何で>>710でDefaultHandler継承してんの?
まったくわかってないでしょ。
0716デフォルトの名無しさん
NGNG全く持ってすみません。。
ふがいない私に(TOT)
基本的なところから勉強し直します。
ご指導有難うございます。
0717デフォルトの名無しさん
NGNGだいたい4、5月が多いのに。
0718デフォルトの名無しさん
NGNG0719YM-2151 MSM6295
NGNGYMCAのロゴマークをJava Swingアプレットを使って描きなさい。
デキネェヨOTZ...nurupo........
0720kamema
NGNGサーバープログラムがクライアントプログラムから受け取ったら他のサーバープログラムに回せません。socketを使ってやっています。サーバプログラムを先に立ち上げ待ち状態にしています。
//実行結果
/*サーバの用意始めます
受信を待ちうけます
サーバ呼び出しました
サーバ稼動中
読み込んだメッセージはHello World
サーバスレッド呼び出し完了
IPとポートを指定する
sougou2-2
6666
クライアントスレッド呼び出し完了
OException main java.net.BindException: Address already in use: JVM_Bind
-- Press any key to exit (Input "c" to continue) --
*/
0721kamema
NGNGimport java.net*;
class revp2p2 {
public static void main (String args[]) {
try {
System.out.println("サーバの用意始めます");
while(true){
ServerSocket ss = new ServerSocket(5555);
System.out.println("受信を待ちうけます");
Socket socket = ss.accept();//クライアントから要求を受け取る
Server server = new Server (socket);
server.start();
System.out.println("サーバスレッド呼び出し完了");
System.out.println("IPとポートを指定する");
BufferedReader d = new BufferedReader(new InputStreamReader(System.in));
String ip = d.readLine();
int port = Integer.parseInt(d.readLine());
socket.close();
Client client = new Client(ip,port);
client.start();
System.out.println("クライアントスレッド呼び出し完了");
}
}
catch(IOException e){
System.out.println("IOException main "+e);
}
catch(Exception e){
System.out.println("Exception main "+e);
}
}
}
0722kamema
NGNGSocket socket;
Client client;
public Server(Socket socket) {
this.socket = socket;
}
public void start() {
System.out.println("サーバ呼び出しました");
try{
//debug
System.out.println("サーバ稼動中");
BufferedReader in = new BufferedReader(
new InputStreamReader(
socket.getInputStream()));
String message = in.readLine();
System.out.println("読み込んだメッセージは" + message);
socket.close();
in.close();
}
catch(Exception e){
System.out.println("Exception "+e);
}
}
}
0723kamema
NGNGString ip;
int port;
String message;
public Client(String ip, int port) {
this.message =message;
this.ip =ip;
this.port = port;
}
public void start(String message) {
try{
Socket socket = new Socket(ip,port);
DataOutputStream out = new DataOutputStream(socket.getOutputStream());
out.writeChars(message);
socket.close();
out.close();
}
catch(Exception e){
System.out.println("Exception "+ e);
}
}
}
0724kamema
NGNGimport java.net.*;
import java.io.*;
public class HelloWorldSocketClient {
public static void main(String[] args){
try{
// ソケットを生成
Socket socket = new Socket("sougou2-2", 5555);
// 出力ストリームを取得
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
// 入力ストリームを取得
BufferedReader in = new BufferedReader(
new InputStreamReader(
socket.getInputStream()));
// 「Hello World」をサーバーに送る
out.println("Hello World");
// 読み込んだデータを表示
System.out.println(in.readLine());
// 入出力ストリームを閉じる
out.close();
in.close();
// ソケットを閉じる
socket.close();
} catch(IOException e){
e.printStackTrace();
}
}
0725デフォルトの名無しさん
NGNG明日までにやらなくてはいけないので
何方か力を下さいお願いします。
文字列が
String[]a={"あ","い","う","え","お","か","き"}
String[]b={"1:あ","1:い","2:う","2:ん","3:た","か","き"}
この場合bの
�@「1:」のみの文字列「1:あ」「1:い」
�A「2:」のみの文字列「2:う」「2:ん」
�B「3:」のみの文字列「3:た」
�C「:」がない文字列「か」「き」
�@〜�Bは、「:」の右側の文字だけ抽出する
�@'文字列「あ」「い」
�A'文字列「う」「ん」
�B'文字列「た」
�C文字列「か」「き」
となる。
�@'〜�B'と�Cは、それぞれandでaの文字集合とを比較する。
比較した結果、�@'〜�B'と�Cの何れか一つでも一致するものがあれば
tureとなる。
・条件
bの文字列集合の「1:」等の数値は、nという数値の場合がある。「n:」(nは整数)
☆比較例として�@'と�A'を例にしてみる。
�@'の場合、「あ」「い」である。aの文字集合の中に「あ」「い」があるので
この場合一致していると見なす。
�A'の場合、「う」「ん」である。aの文字集合の中に「う」はあるが、「ん」は
ないので一致しないと見なす。
このようなプログラムです。どうぞ宜しくお願いします。
0726spaz
NGNG0727デフォルトの名無しさん
NGNG>>234-235にあるよ
0728デフォルトの名無しさん
NGNGランダムアクセスで文字列を読み込む方法誰か教えて!!
0729デフォルトの名無しさん
NGNG0730デフォルトの名無しさん
NGNGと身も蓋もないことを言ってみる
0731デフォルトの名無しさん
NGNGm9(^Д^)プギャーーーーー
どんなまずいことがおきたか報告待ってるよw
0732デフォルトの名無しさん
NGNG具体的な数式を書けばプログラミング回答率がアップするのだが・・・
0733デフォルトの名無しさん
NGNG問題
○○○○年、○○月、○曜日(その月の1日の曜日。数化したもの)を入力し、
2次元配列を利用してカレンダーを作成し6行7列の配列で出力せよ。
うるう年は28日とする。
前提として、自分が習った範囲(if do switch、while for 配列)を使って作成しないといけません。
ヒントだけでもお願いします…。
0734733
NGNG0735デフォルトの名無しさん
NGNG0736デフォルトの名無しさん
NGNG0737725
NGNG皆さん、宜しくです。。
難しくて・・・
0738デフォルトの名無しさん
NGNGすごく理解しようという気になれない問題文だ。
0739M.B.
NGNGこれ言っちゃうと差しさわりがあるように思うが
漏 れ も 禿 死 苦 そ う 思 う
0740JAVA初心者
NGNG符号ビットがたたないように、Cではunsigned を使用してましたがJAVAには
それがないのでどうすればいいのでしょうか?
0741725
NGNG>>739
すみません。わかりずらかったでしょうか?
やる気を損ねる問題文ですみません・・・
・・・
自分でも色々考えてはいるんです。しかしなかなか難しくて。
�@bの配列から「1:」となる文字列のみを抽出し⇒cの配列にいれて
その後にaとcを比較してOKならそのままブレイク
�Anoなら「2:」の文字列を抽出して�@を繰り返す
�B「数値:」(最大値)が無くなったところで終了
�C次に:の個数が0である文字列を探す。(つまりもともと数値:がついていないもの)
そしてaと比較・・・
一つでもOKがあれば、trueとなる。
しかしそれをプログラムに反映させようとすると、
難しいです。どなたかお力添えを・・
0742デフォルトの名無しさん
NGNG課題文そのものを見せてほしい。
0743デフォルトの名無しさん
NGNG0744M.B.
NGNGつーか「藻前は何がやりたいんだ」と出題者に問いたい。
0745デフォルトの名無しさん
NGNGテキストファイルには任意の個数の数値が保存されています。
数値は1行に1つあります。
このファイルを読み込み、配列に置きたいんです。(最終的にはそれを使って計算します)
ファイルの読み込み自体教えてもらえなかったので、何をしたらいいのかもわかりません。
使うソフトはeclipse3.0です。
0747デフォルトの名無しさん
NGNGごっめーん、おれ Java 書くとき eclipse 使ってないんだよねー
0748725
NGNG了解しました。
問題は、aの文字列集合とbの文字列集合の比較です。
比較の結果真偽を決めます。
またaの文字列集合とbの文字列集合は、固定された集合ではありません。
変更される事も有ります。
下の例は、aの文字列集合とbの文字列集合の例を記述しています。
次に例題を踏まえ説明します。
aの文字列集合には、以下のような文字列が入っています。
String[]a={"あ","い","う","え","お","か","き"}
bの文字列集合には,以下の文字列が入っています。(今は例として下のようになっているが、別の場合もある)
String[]b={"1:あ","1:い","2:う","2:ん","3:た","か","き"}
bの文字列集合には,
「数値:文字列」または「文字列」の2通りが存在します。(数値は、整数の何れか)
「数値:」は、andを示すIDのようなものになっています。
「数値:」がないただの文字列同士もandとなります。
例:bの文字列集合だと、「あ」と「い」がandの一つとなります。「1:」がandのIDとなっている。
つまりbの文字列集合の意味は、以下のようになります。
(「あ」and「い」)or(「う」and「ん」)or「た」or(「か」and「き」)
これとaの文字列集合を比較します。
このときの比較条件は、一つの条件でもクリアしていれば、trueとなります。
この場合aの文字列集合に「あ」and「い」が成立しているのでtureです。
これで如何でしょうか?問題文が解りやすくなったでしょうか?
これにてお願い致します。また問題文について解らないことがあったら仰って下さい。
宜しくお願いします。
0749デフォルトの名無しさん
NGNGすまん、もう答えを書いといた。
動作が違ってたら直すから言ってくれ。
>>745
ほらよ。
http://www.wikiroom.com/java/?%a5%bd%a1%bc%a5%b9%c5%bd%c9%d5%a4%b1
0750749
NGNGいきなり間違ってたので直した。
main の中に boolean allIndexContained があるのは間違い版。
boolean someIndexContained があるのが訂正版。
0751745
NGNGありがとうございました。
いろいろ足りなくてすみませんでした。
もしこの先質問することがあったら気をつけます。
0752725
NGNGありがとうございます。。
実行してみた結果、ですが
static String[] a = {"cat", "dog", "bird", "fish", "turtle", "sneak"};
static String[] b = {"2:ああ", "2:あs", "1:きd", "fish"};
このように変更して結果を出したらfalseになってしまいました。
この場合「fish」が入っているのでtureになります。
どうやら、すべてのbの文字列集合が一致していないとtureにならない仕組みになっているようです。
0753デフォルトの名無しさん
NGNGその不具合は修正済みです。
0754725
NGNGそしたら今度は、
static String[] a = {"cat", "dog", "bird", "fish", "turtle", "sneak"};
static String[] b = {"2:ct", "2:dg", "1:brd", "fih", "human"};
全く一致しているものがないのにtureになってしまったのです。。
やはり難しいのでしょうか・・
0755デフォルトの名無しさん
NGNGちょっとは自分でも直してみようって気はないのか?
0756デフォルトの名無しさん
NGNGあれれ・・・ちっと待って
0757725
NGNGほんとに有難うございます。。親身になってくださって・・
感謝ですう。。
0758デフォルトの名無しさん
NGNGおっしゃ、直った(はず)。
http://www.wikiroom.com/java/?%a5%bd%a1%bc%a5%b9%c5%bd%c9%d5%a4%b1
0759725
NGNGすごいです!!もう完璧です。。
有難うございます。。758さんが作って下さった。プログラムを例に
勉強します。。ありがtぽ(ToT)
すごい人だよ〜ほんとに
0760デフォルトの名無しさん
NGNGJSPなどで画面上に開くたびに最新のファイル名を表示させて
そこにリンクをはっつけて
押下するとそれぞれのファイルの処理に飛ばせたいのですが
ファイル名をリスト化させるのはなんとか出来るのですが、
それをJSPなどに読み込ませて一覧に出すのができません
教えてください
0761デフォルトの名無しさん
NGNG図形は難しくなくて良い。[パラメータで制御(倍率) 倍率(拡大・縮小)を指定する]
-----------------
こういう問題なのですが、
自分で作ったら以下のようになりました。
こういった図形の拡大・縮小の問題はこんな感じで作ればいいのでしょうか?
ttp://up00.homelinux.com/up/trash-box/contents.jsp?file=20041210090437010.txt
0762講師
NGNG0763デフォルトの名無しさん
NGNGjspから、ただファイル名を出力すればいいのでは・・・
あと、それぞれのファイルの処理に飛ばすとは
そのJSPかサーブレットを実行するとの事ですか?
0764デフォルトの名無しさん
NGNGソースコードにタブを使わないで下さい
0765M.B.
NGNGTomcat のインストールと JSP の動作確認は成功しとるのか?
JSP が一本動けばあとは一本道のはずだが……
ついでに言っとくと下手に WEB-INF の下のファイルに触ろうとすると、
例外が発生して、いいかげんに作ったプログラムだと
Tomcat ごと落ちるが。どこのファイルに触ろうとしている?
0766デフォルトの名無しさん
NGNG2次方程式y=ax^2+bx+cの解を求めるプログラムを作成せよ。
解は判別式D=b^2-4acを用いて判断し以下のように表示すること。
・2実根ならば2つの解を表示する
・重根ならば重根であることを示す。説明とともに解を1つ表示する。
・2虚根であることを表示する。解は不要
D=Math,sqrt(a+b);
a+bの結果の平方根を求めDに代入する。
なおa,b,cはDouble型の変数である。
というものなのですが、正直さっぱりです。違う学科の友人にも聞いてみましたが
全然わからんとのことで・・・。
ヒントでもいいのでよろしくお願いします。
0767M.B.
NGNGpublic class P {
public static void main( String [] args ) throws Exception {
double a = 1.0;double b = - 4.0;double c = 3.0;
double D = b * b - 4 * a * c;
do { // 分岐のためのダミー
if (D < 0.0) { // 虚根
System.out.println("虚根。");break;
}
if (D == 0.0) { // 重根
double r = - b / (2.0 * a);
System.out.println("重根: " + r);break;
}
// default
double r = - b / (2.0 * a);
System.out.println(
" " + ((- b + Math.sqrt(D))/ (2.0 * a)) +
", " + ((- b - Math.sqrt(D))/ (2.0 * a)));
} while (false);
}
}
0768デフォルトの名無しさん
NGNG> ヒントでもいいのでよろしくお願いします。
× Math,sqrt(a+b);
○ Math.sqrt(a+b);
0769M.B.
NGNG> // default
の次の、
> double r = - b / (2.0 * a);
は不要。
0770デフォルトの名無しさん
NGNGD = b*b - 4*a*c の符号によって場合分け。
D < 0 なら「2虚根です」と表示。
D == 0 なら x = b*b/(2*a) を計算して「重根 x = ...」と表示。
D > 0 なら x1, x2 を解の公式で計算して「2実根 x1 = ... x2 = ...」と表示。
終了。
0771デフォルトの名無しさん
NGNG0772M.B.
NGNG……だそうだ。知ってたか弟。
∧_∧
∧_∧ (´<_` ) 死者を鞭打つことに
( ´_ゝ`) / ⌒i 痛痒を感じないか兄者?
/ \ | |
/ / ̄ ̄ ̄ ̄/ |
__(__ニつ/ IBM / .| .|____
\/____/ (u ⊃
ヽ(`Д´)ノ ウワァァァン
0773デフォルトの名無しさん
NGNG数学なら問題の作り方も簡単だから出してるのだろうが、これは
コーディングよりも数学の力だけが要求されるから、プログラミングの
学習に全然なってないと思うのだがね。
0774デフォルトの名無しさん
NGNGありがとうございます。これを見て勉強したいと思います。
全然わからなかったorz
0775デフォルトの名無しさん
NGNGIBMのノートももうすぐなくなりますね。
ハードディスク部門の売却も意外だったけど、
これからはハードでは儲からない時代なのかな。
0776デフォルトの名無しさん
NGNGpowerメソッドを定義し、mainではpowerを使って、
2つの数値x,yをキーボードから入力し, xのy乗を表示する
プログラムを作れ。
実行例:
xxx>java K1
x? 2
y? 3
8
お願いします!
0777デフォルトの名無しさん
NGNG半角・全角が混ざった文字列で半角76文字分の箇所に改行を入れるには
どうしたらいいのでしょうか?
0778デフォルトの名無しさん
NGNGunicodeではやりにくいようなので一度sjisなりeucなりに変換してからチェックするのがいいかと
0779デフォルトの名無しさん
NGNG自力で出来たので大丈夫です。
応援ありがとうございました!
aにはIDを代入する。(6桁)
除算演算子と剰余演算子を使い、bにはaの上3桁が、cには下3桁が代入されるようにする。
char型の変数をzとし、IDの下3桁が40以下なら"A"、41以上なら"B"を代入する。
ただし上3桁を確認し、123ではない場合には"B"となるようにする。
char型変数の結果を使って、「あなたはクラス○です」と表示させる。(○はAかB)
更に、char型変数の結果をチェックし、「教室はROOM○です。」(○は1か2)と表示させる。(AはROOM1,BはROOM2)
上の条件でIDが 124010の場合と、1230481の場合の結果を表示させなさい。
public static void main(String args[]) {
int a,b,c;
a = 124010;//ID(6桁)の代入
b = a???;//aの上3桁を表示させる計算
c = a???;//aの下3桁を表示させる計算
//IDの確認
System.out.println("IDは"+a);
System.out.println("ID上3桁は"+b);
System.out.println("ID下3桁は"+c);
//IDを確認して、zにAかBを代入
if (? ? ?){
z = 'A';
} else {
z = 'B';
}
//クラス分けの表示
System.out.println("あなたはクラス"+ z +"です。");
//zを確認して、教室を表示
if (? ? ?) {
System.out.println("教室はROOM1です。");
} else {
System.out.println("教室はROOM2です。");
}
}
}
課題がでました。
どなたか教えて下さい。
0784デフォルトの名無しさん
NGNGc = a % 1000;
上三桁(aは三桁以上なのが前提):
b = a;
while(b >= 1000)
b /= 10;
0785デフォルトの名無しさん
NGNG「JAVAで風呂釜が綺麗になるそうですが」
「JAVAって死亡遊戯に出てきたベァスケボー選手ですよね」
0787デフォルトの名無しさん
NGNG2つ目の条件式は、zが'A'と等しい
ここまで言ってもわからん?
0788デフォルトの名無しさん
NGNG>>780の条件だとcが下3桁だからcが40以下かつbが123
じゃない?
0790M.B.
NGNGこのスレでは >>1 にあるように、
> ・ウゼェ問題設定と屑コードの穴埋め問題は徹底糾弾 出題者は謝罪しる
ということになっておる。
> char型の変数をzとし、IDの下3桁が40以下なら"A"、41以上なら"B"を代入する。
とか言うておるが、文字列で比較すると「050」<「40」だったりするのだ。
本来「0-9の文字からなる長さ6の文字列」であるべきものを、
整数に置きかえてから処理しようなどという愚劣な問題を出す香具師が
プログラミングを教えていることに漏れは怒りを感じる。
0791M.B.
NGNG> IBMのノートももうすぐなくなりますね。
国産機なので、なんら問題なし
∧_∧
∧_∧ (´<_` ) それより OS/2 を
( ´_ゝ`) / ⌒i 復活させてほしいよな兄者
/ \ | |
/ / ̄ ̄ ̄ ̄/ |
__(__ニつ/日本IBM / .| .|____
\/____/ (u ⊃
0792ナナ
NGNG非常に難しく、どうすればよいのかが解らないのです。。
例えば
---あ.xml----
<a>
<b>
<c>
</c>
</b>
<d>
</d>
</a>
------------
特定のタグ例えば<c>の下に
--
<k>
<g>あああ</g>
</k>
--
を追加することは出来るでしょうか?
このような特定のタグを指定して
追加するプログラムを作成するためには、どうすればよいのか教えてください。
また、特定のタグ名を指定してその要素名を変更する事はできるでしょうか?
例えば
<g></g>を<年齢></年齢>に変更するためにはどうすればよいのでしょうか?
おしえてくらはい。。
0794デフォルトの名無しさん
NGNG0795伯壬旭
NGNGサンプル
static void appendAndRename() throws Exception {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new FileInputStream("あ.xml"));
Element root = doc.getDocumentElement();
NodeList list = root.getElementsByTagName("c");
Node node = list.item(0);
Node child1 = doc.createElement("k");
Node child2 = doc.createElement("g");
Node child3 = doc.createTextNode("あああ");
child2.appendChild(child3);
child1.appendChild(child2);
node.appendChild(child1);
list = root.getElementsByTagName("g");
node = list.item(0);
node = doc.renameNode(node, node.getNamespaceURI(), "年齢");
FileOutputStream out = new FileOutputStream("newあ.xml");
DOMSource src = new DOMSource(root);
StreamResult dst = new StreamResult(out);
Transformer tfm = TransformerFactory.newInstance().newTransformer();
tfm.transform(src, dst);
out.close();
}
0796ナナ
NGNGありがとうございます。
>>793
>>794
すみません。ずっと考えていたんですが、結局無理でして・・このような質問するなら
宿題の方に言って下さいと言われたので、ここの書き込みをしてしまった次第です。
もう一つ質問です。
要素名の変更のrenameNodeメソッドだけどうしてもシンボルを解決できない
というエラーメッセージが出てしまいます。
どこかのパッケージにあるのでしょうか?
このエラーを解決するにはどうすればよいか教えてください。
0797デフォルトの名無しさん
NGNG0798デフォルトの名無しさん
NGNGShape sh = Rectangle.union(Rectangle)
0799カナ
NGNG1. ファイルの一覧データを生成し、ファイルpex2.txt に書き出すプログラムを定義しなさい。ソースファイルとファイルpex2.txt を提出しなさい。
条件:
(1) main メソッドを含むクラス名はDirList、指定したファイルに文字列を書き出すクラスのクラス名はDirWriter とする。その他のクラス構成は自由とする。
(2) main メソッドの第一引数は一覧を生成するディレクトリ名、第二引数は出力ファイル名とする。
(3) パッケージを作成しているので、ディレクトリが深くなっているところも辿って一覧とする。
一覧は指定したディレクトリ名をルートとする木構造を幅優先の順序で表示する。以下に例を示す。
探索中にディレクトリ名を保持するためにQueue を利用せよ。
実行例:
Directory: src
BoardExample はディレクトリです。
ClockExample はディレクトリです。
Equivalence.java
examination はディレクトリです。
ExceptionTest.java
Exercise.java
...
0800カナ
NGNGDirectory: BoardExample
Applet はディレクトリです。
Board.java
Constant.java
Event はディレクトリです。
Event2 はディレクトリです。
Position.java
Standard はディレクトリです。
Directory: ClockExample
AnalogClock.java
(4) pex2.txt の先頭に、コンパイルのコマンドラインならびに実行のコマンドラインの文字列を含めよ。
ヒント:
指定したdirname でディレクトリの一覧を求めるには
File dir = new File(dirname);
String[] dirlist = dir.list();
またはFile[] dirlist = dir.listFiles();であるが、得られるオブジェクトの型が違うので注意する。
また、オブジェクトがディレクトリであるか否かを判定するメソッドはisDirectory() である。(これはFile 型オブジェクトに適用することができる)
0801デフォルトの名無しさん
NGNGしばし待たれよ
0802デフォルトの名無しさん
NGNGorg.w3c.dom.Documentをインポートしてくださいませ。
お願いします・・・m(__)m
0803ナナ
NGNGインポートしているんですけが、やはりエラーが起こってしまいます。。
下に全体のプログラムを記述します。もしかしたら単純なミスかもしれませんが
宜しくお願いします。←(どうしても解らなくて)
import javax.xml.parsers.*;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import java.io.*;
import java.util.*;
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
import javax.xml.transform.dom.*;
import org.w3c.dom.*;
import org.w3c.dom.Document.*;
public class f {
>>795さんが記述してくださったプログラム
}
0804デフォルトの名無しさん
NGNGimport javax.xml.transform.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;
import org.w3c.dom.*;
import java.io.*;
いんぼーとはこれでいいはずなんですがね・・・
renameNodeは、JDK1.5で追加された新メソッドかもしれません・・・
JDK1.5をインストールしてくださいませ・・・
0805ナナ
NGNG有難うございます。。
JDK1.5は、何処にあるのでしょうか?
SUNのホームページに言ったのですが、英語だらけで・・
JDK1.5のインストール方法などのホームページがありましたら
それもあわせて教えてくださいな。。
0807カナ
NGNG様、ありがとうございました!!
無事コンパイルし、実行することができました。
2時間以上もかけて考えて頂いて本当に感謝しています。
本当にありがとうございましたm(_ _)m
0808デフォルトの名無しさん
NGNG「思考速度が遅いんだよカスが」と言ってるように聴こえる漏れは人間不信
0809sage
NGNGいや、単純に>>801->>806まで2時間程あっただけで
勝手にそう解釈しちゃいました。
私なんて課題出されてから1週間以上悩んでいたのに全く解けなかったですし
・・・って釣られてしまったのでしょうか。。。
0810ナナ
NGNGインストールしました!!
しかし,急に動かなくなってしまいました。
解らないよ・・
コンパイルさえ出来なくなってしまいました・・実行も・・
0811デフォルトの名無しさん
NGNG0812M.B.
NGNGおとなしく 1.4.2_06 かなんかに戻すんだな。
ベータと格闘して悪戦苦闘するのが趣味、というならともかくも、
ダウンロードにて手こずるような素人が
最新バージョンに手を出すのは剣呑。
0813ナナ
NGNG有難うございました。再び直しました・・
となると結局・・renameNode問題が残ってしまいます・・
どうすればいいのだろう・・・
何度もすみません。。
0814デフォルトの名無しさん
NGNG0815デフォルトの名無しさん
NGNG子ノードを削除して、追加すればどうですか。
0816古代帝國富士皇朝総帥・伯壬旭
NGNG追加はこうして
static void append() throws Exception {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new FileInputStream("あ.xml"));
Element root = doc.getDocumentElement();
NodeList list = root.getElementsByTagName("c");
Node node = list.item(0);
Node child1 = doc.createElement("k");
Node child2 = doc.createElement("g");
Node child3 = doc.createTextNode("あああ");
child2.appendChild(child3);
child1.appendChild(child2);
node.appendChild(child1);
FileOutputStream out = new FileOutputStream("あ2.xml");
DOMSource src = new DOMSource(root);
StreamResult dst = new StreamResult(out);
Transformer tfm = TransformerFactory.newInstance().newTransformer();
tfm.transform(src, dst);
out.close();
}
0817古代帝國富士皇朝総帥・伯壬旭
NGNGその後の、改名はこうしてください。
static void rename() throws Exception {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new FileInputStream("あ2.xml"));
Element root = doc.getDocumentElement();
NodeList list = root.getElementsByTagName("g");
Node node = list.item(0);
Element el = doc.createElement("年齢");
NamedNodeMap map = node.getAttributes();
for (int i = 0; i < map.getLength(); i++) {
el.setAttributeNode((Attr)map.item(i));
}
NodeList child = node.getChildNodes();
for (int i = 0; i < child.getLength(); i++) {
el.appendChild(child.item(i));
}
node.getParentNode().replaceChild(el, node);
FileOutputStream out = new FileOutputStream("あ3.xml");
DOMSource src = new DOMSource(root);
StreamResult dst = new StreamResult(out);
Transformer tfm = TransformerFactory.newInstance().newTransformer();
tfm.transform(src, dst);
out.close();
}
0818デフォルトの名無しさん
NGNG入力された文字を表示する表示ウィンドウ、文字を入力する入力ウィンドウの
2つのウィンドウを持ったアプリケーションを考える。起動直後は表示ウィンドウが表示される
が文字は何も表示されていない。
表示ウィンドウにある「新規入力」ボタンを押すと、
入力ウィンドウが表示される。
この入力ウィンドウにはテキストを入力するところと反映ボタンがある。
テキストを入力し、「反映」ボタンををおすと入力ウィンドウは閉じ、
表示ウィンドウに入力した文字が反映され表示されるようなアプリケーションを作りなさい。
(仕様1)プログラムの起動は以下のようにする。
java GUINote
(仕様2)このプログラムの使い方は次のようにする
1.ユーザーがプログラムを起動する。
2.プログラムは表示ウィンドウを表示する。
3.ユーザーは「新規登録」ボタンを押す。
4.プログラムは入力ウィンドウを表示する。
5.ユーザーは入力ウィンドウに文字を入力し「反映」ボタンを押す。
6.プログラムは入力ウィンドウを閉じ、表示ウィンドウに入力された
文字を表示する。
7.ユーザーはウィンドウ右上の閉じる(×)をクリックする。
8.プログラムは表示ウィンドウを閉じて終了する。
0819デフォルトの名無しさん
NGNGMQやJMSぽいシステムを作れと言われたんですが
どうすればいいか悩んでいます
僕自身の設計としては
・受け取り側のデータベースサーバに命令となる情報(コマンドクラスオブジェクトでもいいかも)を入れる
・受け取り側はそれをバッチで定時処理する
0820デフォルトの名無しさん
NGNG面白そうな問題なので、もう少し具体的に環境、条件を書いてください。
0821デフォルトの名無しさん
NGNG環境といっても2台のWindowsマシンがあって
LAN経由でいいのでって言う話です
DBは別に何でもいいけど(ていうかDBの案は自分が出したので特に問題としては制限決められていない)
また、これを使って何がしたいっていうわけでもないので(問題には決まっていない)
つまりは非同期に何かをやるっていう話です
インターフェース的にはvoid execute()見たいなのが一個あればよい感じです
なので送信者にはエラーがあったかどうかは(その時点では)わからなくていい
単純に、送った命令を受信側が処理するみたいな
で、メッセージ(メッセージオブジェクトとでもいうのか)の置き場所は
どちらでもいいのです
で、コンテナを利用しないっていうのはAPサーバとかTomcatとかああいうものを利用しないということで
ひつようならそういうものも自分で作れと言うことです
で、僕の場合はそういうサーバ的なものはちょっと作る自身があんまり無いので
DBサーバを利用しようかなと思ったのです(他の人はメールサーバ使う奴もいるらしい)
ソケットで待ち構えていてもいいのですが非同期なので
結局どこかに置いておかなければならないので、ついでだからDBに入れちゃおうと・・・
この問題としてはそういったある意味フレームワーク的なものを作れと言う方向のようで
そうなってくると当然汎用性をもたせるようなクラス設計をしていかないと
高得点は望めないと思います
で、こういう設計で出来るんですかね?
オブジェクトをDBから取り出してクラスロードするのがめんどくさそう(ていうか自分の技術的にできるのか不安)
DBに値だけいれて、処理側で取り出すって言う手もありますが
前述のような汎用性というものがなくなるような気がして点数低くなりそうです
0822spaz
NGNG0823ナナ
NGNG古代帝國富士皇朝総帥・伯壬旭さん
なんとかできました。色々有難うございます。
もう一つだけ質問なのですが、ちょっと同じような質問です。
---あ.xml----
<愛 id=1>
<b>
<c>
</c>
</b>
<愛 ID=2>
</愛>
</愛>
------------
特定のタグの属性の下に
--
<k>
<g>あああ</g>
</k>
を記述することは出来ますでしょうか。
例えば、愛の属性の1を指定してその下に記述したり
愛の属性の2を指定してその下に記述したり
などです。宜しくお願いします。。
0824デフォルトの名無しさん
NGNG>>727
0825デフォルトの名無しさん
NGNG0826デフォルトの名無しさん
NGNG0827古代帝國富士皇朝総帥・伯壬旭
NGNGstatic void selectionAppend() throws Exception {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new FileInputStream("あ.xml"));
NodeList list = doc.getElementsByTagName("愛");
for (int i = 0; i < list.getLength(); i++) {
Node node = list.item(i);
if (!(node instanceof Element))
continue;
String value = ((Element)node).getAttribute("ID"); //ここで対象属性名を指定し
if (value != null && value.equals("2")) { //ここで対象属性値を指定する
Node child1 = doc.createElement("k");
Node child2 = doc.createElement("g");
Node child3 = doc.createTextNode("あああ");
child2.appendChild(child3);
child1.appendChild(child2);
node.appendChild(child1);
}
}
FileOutputStream out = new FileOutputStream("あ2.xml");
DOMSource src = new DOMSource(doc.getDocumentElement());
StreamResult dst = new StreamResult(out);
Transformer tfm = TransformerFactory.newInstance().newTransformer();
tfm.transform(src, dst);
out.close();
}
0828古代帝國富士皇朝総帥・伯壬旭
NGNGimport javax.swing.*; import java.awt.*; import java.awt.event.*;
public class GUINote {
public static void main(String[] args) {
final JFrame frame = new JFrame();
JPanel pal = new JPanel(new GridLayout(2, 1, 16, 16));
pal.setBorder(BorderFactory.createEmptyBorder(16, 16, 16, 16));
final JTextField lab = new JTextField(40);
lab.setEditable(false); lab.setBackground(Color.white); pal.add(lab);
JButton btn1 = new JButton("新規入力");
btn1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
final JDialog dlg = new JDialog(frame, true);
JPanel pal = new JPanel(new GridLayout(2, 1, 16, 16));
pal.setBorder(BorderFactory.createEmptyBorder(16, 16, 16, 16));
final JTextField tfd = new JTextField(40); pal.add(tfd);
JButton btn2 = new JButton("反映");
btn2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
lab.setText(tfd.getText());
dlg.dispose();
}
});
pal.add(btn2);
dlg.getContentPane().add(pal); dlg.setLocationRelativeTo(frame);
dlg.pack(); dlg.setVisible(true);
}
});
pal.add(btn1);
frame.getContentPane().add(pal); frame.pack(); frame.setVisible(true);
}
}
0829デフォルトの名無しさん
NGNGできれば問題文をコピペしてください。
0830デフォルトの名無しさん
NGNGすいません
わかりづらいとは思いますが
口頭での出題だったのです
もし、理解できないところがあれば聞いてください(としか言いようがありませんが・・・)
0831ナナ
NGNGすみません後もう一つ問題が発覚してしまいました。(何度もすみません)
>>823の問題ですが
<k>
<g>あああ</g>
</k>
この追加するタグ群に特定の属性を記述したいのです。
例えば
<k>
<g ID=3>あああ</g>
</k>
というような感じです。
setAttributeを書き加えようとしたのですが、エラーがを起こってしまいました。
(私の記述方法がまずい可能性が大)
createElementで作成したタグに属性をくっつける方法を教えて下さいな。
また<g>あああ</g>の「あああ」の部分のみを削除することはできるでしょうか?
0832デフォルトの名無しさん
NGNG課題10を解いてください。
ttp://sparrow.math.ryukoku.ac.jp/~junta/edu/graphics/note.pdf
の第10章を参考にしてください。
よろしくお願いします。
0833デフォルトの名無しさん
NGNGstatic void addAttrAndDeleteText() throws Exception {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new FileInputStream("あ2.xml"));
NodeList list = doc.getElementsByTagName("g");
Element el = (Element)list.item(0);
el.setAttribute("ID", "3");
list = el.getChildNodes();
for (int i = 0; i < list.getLength(); i++) {
if (list.item(i).getNodeType() == Node.TEXT_NODE) {
el.removeChild(list.item(i));
break;
}
}
FileOutputStream out = new FileOutputStream("い2.xml");
DOMSource src = new DOMSource(doc.getDocumentElement());
StreamResult dst = new StreamResult(out);
Transformer tfm = TransformerFactory.newInstance().newTransformer();
tfm.transform(src, dst);
out.close();
}
0834デフォルトの名無しさん
NGNG龍谷はダメ学生しかおらんな。
0835デフォルトの名無しさん
NGNG方法を考えているんですが、上手くいきません。良い方法がありましたら助言お願いします。
※xmlFile1、xmlFile2はそれぞれ
・xmlFile1
<a>
<b id="1"></b>
<b id="2"></b>
</a>
・xmlFile2
<a>
<b id="3"></b>
</a>
となっていて、処理後に
<a>
<b id="3"></b>
<b id="1"></b>
</a>
のようなファイルをxmlFile2として保存することを目標としています。
xmlFile1は処理後も元のままです。
0836835
NGNGファイルを両方開いて該当するタグをappendChildでコピーしているのですが、xmlFile2が
更新されませんでした。
public void insertOtherTag(String xmlFile1, String xmlFile2, String chkNum[]){
try{
//xmlFile1の展開
FileReader objFR=new FileReader(xmlFile1);
BufferedReader objBR=new BufferedReader(objFR);
InputSource objSrc=new InputSource(objBR);
DOMParser objPrs=new DOMParser();
objPrs.parse(objSrc);
Document objDoc=objPrs.getDocument();
Element objRoot=objDoc.getDocumentElement();
NodeList clnNod=objRoot.getChildNodes();
//xmlFile2の展開
FileReader objFR2=new FileReader(xmlFile2);
BufferedReader objBR2=new BufferedReader(objFR2);
InputSource objSrc2=new InputSource(objBR2);
DOMParser objPrs2=new DOMParser();
objPrs2.parse(objSrc2);
Document objDoc2=objPrs2.getDocument();
Element objRoot2=objDoc2.getDocumentElement();
0837835
NGNG//該当タグのみコピーしてxmlFile2に追加
for(int i=0;i<chkNum.length;i++) {
Node addNode=clnNod.item(Integer.parseInt(chkNum[i])).cloneNode(true);
objRoot2.appendchild(addNode);
}
OutputFormat objOF=new OutputFormat(objDoc2);
objOF.setEncoding("Shift_JIS");
FileWriter objFW=new FileWriter(xmlFile2);
BufferedWriter objBW=new BufferedWriter(objFW,10);
XMLSerializer objXS=new XMLSerializer(objBW,objOF);
objXS.asDOMSerializer();
objXS.serialize(objDoc2.getDocumentElement());
objBW.close();
}catch(Exception e) {
e.printStackTrace();
}
}
0838デフォルトの名無しさん
NGNGSAXだと簡単にできそう。
0839デフォルトの名無しさん
NGNGエッチだな
0840デフォルトの名無しさん
NGNGエッチだと思った理由を原稿用紙1枚以上にまとめて提出。明日9:00までな。
0841古代帝國富士皇朝総帥・伯壬旭
NGNGこうしてみてください。
static void move() throws Exception {
DocumentBuilderFactory fac = DocumentBuilderFactory.newInstance();
DocumentBuilder db = fac.newDocumentBuilder();
Document doc1 = db.parse(new FileInputStream("xmlFile1.xml"));
NodeList list = doc1.getElementsByTagName("b");
Node target = null;
for (int i = 0; i < list.getLength(); i++) {
if (((Element)list.item(i)).getAttribute("id").equals("1")) {
target = list.item(i);
break;
}
}
Document doc2 = db.parse(new FileInputStream("xmlFile2.xml"));
list = doc2.getElementsByTagName("a");
if (target != null && list.getLength() > 0) {
DOMSource src = new DOMSource(target);
DOMResult dst = new DOMResult(list.item(0));
Transformer tfm = TransformerFactory.newInstance().newTransformer();
tfm.transform(src, dst);
}
FileOutputStream out = new FileOutputStream("xmlFile2.xml");
DOMSource src = new DOMSource(doc2.getDocumentElement());
StreamResult dst = new StreamResult(out);
Transformer tfm = TransformerFactory.newInstance().newTransformer();
tfm.transform(src, dst);
out.close();
}
0842デフォルトの名無しさん
NGNGそれはプログラミングの問題と言うより、数学の問題だからね・・・
自分にとってはムズすぎ
0843ナナ
NGNG一定の場所を指定しているので、複数<g>がある場合は、対応が出来ないわけです。
つまり古代帝國富士皇朝総帥・伯壬旭 さんが作成してくださったプログラム。
static void selectionAppend() throws Exception {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new FileInputStream("あ.xml"));
NodeList list = doc.getElementsByTagName("愛");
for (int i = 0; i < list.getLength(); i++) {
Node node = list.item(i);
if (!(node instanceof Element))
continue;
String value = ((Element)node).getAttribute("ID");
if (value != null && value.equals("2")) {
Node child1 = doc.createElement("k");
Node child2 = doc.createElement("g");
//↑この<g>のタグにcreateElementと同時に属性を追加したいのです
//この特定の<g>は、特定の愛の下にあるので、仮にあ.xmlに<g>のタグが
//たくさんあっても、ピンポイントでこの<g>に属性を追加できることになります。
Node child3 = doc.createTextNode("あああ");
child2.appendChild(child3);
child1.appendChild(child2);
node.appendChild(child1);}}
FileOutputStream out = new FileOutputStream("あ2.xml");
DOMSource src = new DOMSource(doc.getDocumentElement());
StreamResult dst = new StreamResult(out);
Transformer tfm = TransformerFactory.newInstance().newTransformer();
tfm.transform(src, dst);
out.close();}
度々すみませんがどうぞ宜しくお願い致します。
0844ボタンを使ったゲーム
NGNG縦6つ×横5つの、30個のボタンを(長方形にくっつけて)作成して
ボタンのラベルは、1〜30の数字でランダムにつけて
1から順番に、30まで押すゲームの、アプレットを作りたいです。
(間違えて違うボタンを押した時はmissを数えて表示したいです)
(あとで時間制限などを加えてゲーム制を出そうと思ってます)
自分の実力は、ボタンやテキストフールドが作れるくらいです
長方形なるように作成したり、ラベルをランダムに付けたりする所が
できないです。お手数ですが宜しくお願いしますm(_)m
0845かばさん
NGNG#include <math.h>
#define DIM6
#define TIMES8
void inv (double mat[2][2]);
void iterate(double t, double y[DIM]);
void func(double t, double x[DIM], double f[DIM]);
void poincare(double t, double r, double x[DIM]);
double h = 2.0 * M_PI / 120.0;
double r = 50;
double X, Y, Z;
int main(void)
{
int n, i, l;
double x[DIM], u, v;
double pqrs[2][2], tmp[2];
double init[TIMES][2];
scanf("%lf", init[0]);
scanf("%lf", init[0]+1);
0846古代帝國富士皇朝総帥・伯壬旭
NGNGimport java.awt.*; import java.awt.event.*; import javax.swing.*;
import java.util.*; import java.util.List; import java.util.Timer;
public class HW46 extends JApplet {
static final int HOR = 5, VER = 6;
JPanel pal1 = new JPanel(new GridLayout(HOR, VER, 4, 4));
JLabel lab = new JLabel();
JButton btn = new JButton("開始");
int hit, miss, sec;
public void init() {
for (int i = 0; i < HOR * VER; i++) {
JButton b = new JButton(String.valueOf("?"));
b.setFont(new Font("Dialog", 0, 20));
b.setEnabled(false); pal1.add(b);
}
JPanel pal2 = new JPanel();
lab.setOpaque(true); lab.setBackground(Color.white);
lab.setPreferredSize(new Dimension(300, 20));
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
btn.setEnabled(false);
game();
}
});
pal2.add(lab); pal2.add(btn);
((BorderLayout) getContentPane().getLayout()).setVgap(8);
getContentPane().add(pal1);
getContentPane().add(pal2, BorderLayout.NORTH);
}
0847古代帝國富士皇朝総帥・伯壬旭
NGNGvoid game() {
ActionListener al = new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (sec == 0) return;
JButton b = (JButton) e.getSource();
if (b.getText().equals(String.valueOf(hit + 1))) { b.setEnabled(false); ++hit; }
else { lab.setText("残り時間" + sec + "秒 ミス" + ++miss + "回"); }
}
};
pal1.removeAll(); List list = new ArrayList();
for (int i = 0; i < HOR * VER; i++) {
JButton b = new JButton(String.valueOf(i + 1));
b.setFont(new Font("Dialog", 0, 20)); b.addActionListener(al); list.add(b);
}
Collections.shuffle(list);
for (int i = 0; i < HOR * VER; i++) pal1.add((JButton) list.get(i));
pal1.validate(); sec = HOR * VER; miss = 0; hit = 0; Timer tim = new Timer();
tim.schedule(new TimerTask() {
public void run() {
if (sec == 0) {
if (hit == HOR * VER) { lab.setText("ゲームクリア ミス" + miss + "回"); }
else { lab.setText("時間切れ ミス" + miss + "回"); }
cancel(); btn.setEnabled(true);
} else {
lab.setText("残り時間" + --sec + "秒 ミス" + miss + "回");
}
}
}, 0, 1000);
}
}
0848古代帝國富士皇朝総帥・伯壬旭
NGNGアプレットサイズは、横400、縦300にしてください。
>>843
Node child2 = doc.createElement("g");
の下に
child2.setAttribute("ID", "3");
を挿入してください。
0849古代帝國富士皇朝総帥・伯壬旭
NGNGvoid game() {
final Timer tim = new Timer();
ActionListener al = new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (sec == 0) return;
JButton b = (JButton) e.getSource();
if (b.getText().equals(String.valueOf(hit + 1))) {
b.setEnabled(false); ++hit;
if (hit == HOR * VER) {
lab.setText("ゲームクリア ミス" + miss + "回"); tim.cancel(); btn.setEnabled(true);
}
} else { lab.setText("残り時間" + sec + "秒 ミス" + ++miss + "回"); }
}
};
pal1.removeAll(); List list = new ArrayList();
for (int i = 0; i < HOR * VER; i++) {
JButton b = new JButton(String.valueOf(i + 1));
b.setFont(new Font("Dialog", 0, 20)); b.addActionListener(al); list.add(b);
}
Collections.shuffle(list);
for (int i = 0; i < HOR * VER; i++) pal1.add((JButton) list.get(i));
pal1.validate(); sec = HOR * VER; miss = 0; hit = 0;
tim.schedule(new TimerTask() {
public void run() {
if (sec == 0) {
lab.setText("時間切れ ミス" + miss + "回"); cancel(); btn.setEnabled(true);
} else {
lab.setText("残り時間" + --sec + "秒 ミス" + miss + "回");
}
} }, 0, 1000);
} }
0850844
NGNG激しくありがとうございますm(_)m
まさにこれです。感謝です。
0851名無しさん
NGNGいろいろ例文を探してみたのですが、
ここでも
http://www.hellohiro.com/jspdb.htm
ここでも
http://www.javadrive.jp/servlet/schedule/18/
コネクションの開放の所で最後にnofityAll()を使っているのですが、
これをつけないとどういう風にまずいのでしょうか。
0852デフォルトの名無しさん
NGNGどこかでwait()を使ってる訳でもないし・・・・
しかし、プロが書くコードだから何か意味があるに違いない。
とりあえず、notifyAll()を外して実行して結果を確かめてみるとか。
0853ナナ
NGNGです。自力で何とかしようとしたのですが、未だ出来ずです。
すみませんが何方か宜しくお願いします。
0855ナナ
NGNGこちらこそ、すみません。ありがとうございます。
問題文と条件きっちり書きます。
---あ.xml----
<愛 id=1>
<b></b>
<c>
<愛 id=2>
<b></b>
<c>null</c>
</愛>
</c>
</愛>
<愛 id=3>
<b></b>
<c>null</c>
</愛>
------------
特定の<愛>及び属性の下位にある<c>下に
--
<愛 id=5>
<b></b>
<c>null</c>
</愛>
を挿入します。この時、挿入される場所<c>にはnullという文字列がある場合があります
のでその文字列を削除します。
例題は、次に書きます。
0856ナナ
NGNG例えば、愛の属性の1を指定してすると、以下のように追加されます。
<愛 id=1>
<b></b>
<c>
<愛 id=2>
<b></b>
<c>null</c>
</愛>
<愛 id=5>
<b></b>
<c>null</c>
</愛>
</c>
</愛>
<愛 id=3>
<b></b>
<c>null</c>
</愛>
この場合は、挿入される場所の<c>にはnull文字列が無かったのですが
idが3を指定していれば、<c>の下にnull文字列があるので、この場合は、削除して追加します。
こうすることによって、生成されたXMLをもう一度利用し<愛>の5の下にも追加できるようになります。
こんなものを創りたいのです。どうぞ宜しくお願いします。
0857古代帝國富士皇朝総帥・伯壬旭
NGNGtry {
Element elm = makeInsertedElement(); //ここで挿入タグを作って
insertElement(elm, "1"); //ここでcを保持する愛のidを指定して、それを挿入する。
} catch (Exception e) {
}
}
static Element makeInsertedElement() throws Exception {
DocumentBuilderFactory fac = DocumentBuilderFactory.newInstance();
DocumentBuilder db = fac.newDocumentBuilder();
Document doc = db.newDocument();
Element el1 = doc.createElement("愛");
el1.setAttribute("id", "5");
Element el2 = doc.createElement("b");
Element el3 = doc.createElement("c");
Text text = doc.createTextNode("null");
el3.appendChild(text);
el2.appendChild(el3);
el1.appendChild(el2);
return el1;
}
0858
NGNGDocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new FileInputStream("あ.xml"));
NodeList list = doc.getElementsByTagName("c");
for (int i = 0; i < list.getLength(); i++) {
Node node = list.item(i);
Node parNode = node.getParentNode();
if (parNode.getNodeType() != Node.ELEMENT_NODE) continue;
Element par = (Element) parNode;
String val = par.getAttribute("id");
if (par.getNodeName().equals("愛") && val != null && val.equals(value)) {
NodeList child = node.getChildNodes();
for (int k = 0; k < child.getLength(); k++) {
if (child.item(k).getNodeType() == Node.TEXT_NODE) {
node.removeChild(child.item(k));
}
}
DOMSource src = new DOMSource(elm);
DOMResult res = new DOMResult(node);
Transformer tfm = TransformerFactory.newInstance().newTransformer();
tfm.transform(src, res);
}
}
FileOutputStream out = new FileOutputStream("あ2.xml");
DOMSource src = new DOMSource(doc.getDocumentElement());
StreamResult dst = new StreamResult(out);
Transformer tfm = TransformerFactory.newInstance().newTransformer();
tfm.transform(src, dst);
out.close();
}
0859質問
NGNGimport java.applet.*;
import java.awt.Image;
public class Test extends Applet {
Image im[] = new Image[4];
public void init() {
im[0] = getImage(getDocumentBase(), "a.gif");
im[1] = getImage(getDocumentBase(), "b.gif");
im[2] = getImage(getDocumentBase(), "c.gif");
im[3] = getImage(getDocumentBase(), "d.gif");
}
public void paint(Graphics g) {
double x = Math.PI * 0;
double y = 200 - Math.sin(x);
for (int i=0; i<4; i++){
g.drawImage(im[i], 100 * x, y, this);
x += Math.PI * 1/4 ;
}
}
}
という画像をsinカーブ上に並べる プログラムを作成したのですが、コンパイルすると、
0860質問
NGNGシンボル:メソッド drawImage (java.awt.Image,double,double,Test)
場所 : java.awt.Graphics の クラス
g.drawImage(im[i],100 * x,y,this);
^
エラー1個
というエラーがでてしまいます。どこがおかしいのでしょうか?
0861デフォルトの名無しさん
NGNGを
g.drawImage(im[i], (int) 100 * x, (int) y, this);
としてください。
あと、ここは宿題スレなので質問は隣の質問スレでお願いします。
0862ナナ
NGNGできました!!うれしいです。
0863007
NGNGじゃんけんゲームを作れという支持がありました。
まずユーザーフォームは以下のとおりです。
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| じゃんけんゲーム |
| |
| あなた | ̄ ̄ ̄ ̄ ̄ ̄| |
| ○ぐう ○ちょき ○ぱー |じゃんけん | |
| | | |
|  ̄ ̄ ̄ ̄ ̄ ̄ |
| |
| | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| |
| コンピュータ | Label9 | |
|  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ |
| | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| |
| 結 果 | Label10 | |
|  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ |
| | ̄ ̄ ̄ ̄ ̄| | ̄ ̄ ̄ ̄ ̄| | ̄ ̄ ̄ ̄ ̄| |
| あなたは | Label11 | 勝 | Label12 | 敗 |Label13 |引き分け |
|  ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ |
| |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0864007
NGNGコードの流れとしましては…
◎ユーザーフォームで自分の手を(ぐう、ちょき、ぱー)を選んでクリックする。
自分の手を選ぶときはオプションボタンを押します。
◎「じゃんけん」と書いたのがコマンドボタンです。これを押してコンピュータとじゃんけんします。
◎コンピュータが手(ぐう、ちょき、ぱー)を選ぶ。これは乱数を使えと指示が
ありました。これはLabel9に表示させます。
◎勝ち負けの判定をする。
「勝ち」「負け」「引き分け」の表示をLabel10に
「何勝」「何敗」「何引き分け」の表示をLabel11と12と13に表示させます。
オプションボタンのぐう・ちょき・ぱー
のどれかを選んでコマンドボタンで作ったじゃんけんのボタンを押しても
コンピュータの手と勝ち・負け・引き分けの結果が出ません。
あと何度EndSelectを打ってもSelectCaseに対するEnd Selectが無いみたいなことが出て、
最後にいっぱいEndSelectがありますが、あれだけ打ってやっとエラーが出なくなりました。
それもおかしいですか?
一応自分でできるところまでは頑張りました。
何かまちがっていたらよろしくお願いします。
また説明不足でしたらまた言いますので何かヒントください。
よろしくお願いいたします。
0865007
NGNGOption Explicit
Private Sub CommandButton1_Click() 'じゃんけんボタンをクリック
Dim intJibun As Integer '自分の手
Dim intComputer As Integer 'コンピュータの手
'3つのオプションボタンの値(Valueプロパティ)を調べる
CommandButton1.Value = OptionButton1.Value
CommandButton1.Value = OptionButton2.Value
CommandButton1.Value = OptionButton3.Value
'コンピュータの手を乱数で選ぶ
Dim strJanken(1 To 3) As String
Dim intNo As Integer
strJanken(1) = "ぐう"
strJanken(2) = "ちょき"
strJanken(3) = "ぱー"
Randomize
intNo = Int(3 * Rnd() + 1)
0866007
NGNG'勝ち負けの判定をする
Select Case intJibun '自分の手
Case "1" '自分はぐう
Select Case intComputer 'コンピュータの手
Case "1" 'コンピュータはぐう
Label9.Caption = "ぐう" '自分がぐうコンピュータがぐう
Label10.Caption = "引き分け" '=引き分け
Case "2" 'コンピュータがちょき
Label9.Caption = "ちょき" '自分がぐうコンピュータがちょき
Label10.Caption = "勝ち" '=勝ち
Case "3" 'コンピュータがぱー
Label9.Caption = "ぱー" '自分がぐうコンピュータがパー
Label10.Caption = "負け" '=負け
End Select
Select Case intJibun
Case "1" '自分はちょき"
Select Case intComputer 'コンピュータの手
Case "1" 'コンピュータはぐう
Label9.Caption = "ぐう" '自分がちょきコンピュータがぐう 'コンピュータの手を表示
Label10.Caption = "負け" '=負け '勝ち負けの表示
Case "2" 'コンピュータはちょき
Label9.Caption = "ちょき" '自分がちょきコンピュータがちょき
Label10.Caption = "引き分け" '=引き分け
Case "3" 'コンピュータはぱー
Label9.Caption = "ぱー" '自分がちょきコンピュータがぱー
Label10.Caption = "勝ち" '=勝ち
End Select
0867007
NGNGSelect Case intJibun
Case "1" '自分はぱー
Select Case intComputer 'コンピュータの手
Case "1" 'コンピュータはぐう
Label9.Caption = "ぐう" '自分がぱーコンピュータがぐう
Label10.Caption = "勝ち" '=勝ち
Case "2" 'コンピュータはちょき
Label9.Caption = "ちょき" '自分がぱーコンピュータがちょき
Label10.Caption = "負け" '=負け
Case "3" 'コンピュータはぱー
Label9.Caption = "ぱー" '自分がぱーコンピュータがぱー
Label10.Caption = "引き分け" '=引き分け
End Select
End Select
End Select
End Select
End Sub
長くなってすいません
0868デフォルトの名無しさん
NGNG0869デフォルトの名無しさん
NGNGjavaのコードはそこまでわかりやすくない
0870デフォルトの名無しさん
NGNGこんなぐちゃぐちゃなフォームが作れるヤシがいたらお目にかかりたい
0872デフォルトの名無しさん
NGNG0873デフォルトの名無しさん
NGNG解説本の例のまちがい
0874デフォルトの名無しさん
NGNGつーか、>>832はプログラミングの問題というより数学の問題だからね。
数式が理解できればコーディングは簡単なのだが。
こういう数学問題は、出題者にとっては一番ラクだが、
プログラミングの力はつかないよ。
0875デフォルトの名無しさん
NGNG│ ■ │
│ │
│ ■ ■ │
│ │
│ │
│ ■ │
└──────────┘
縦にY軸(、横に
0876875
NGNG┌──────────┐
│ ■ │
│ │
│ ■ ■ │
│ │
│ │
│ ■ │
└──────────┘
上はWIDTH*HEIGHTの大きさをもつ画像で
左上を原点として縦にY軸(下方向に正)、横にX軸(右方向に正)をとって
それぞれの■(これはドットの連結領域で形は様様)の中心座標をとり、
Y軸方向の差が+-5ピクセル以内のものを対になっているものとみなし
対になっていないものを消去する
これはどんな記述すればいいでしょうか?
とでるのですがわかりますか?
ttp://data.uploda.net/anonymous/etc1/dat5/upload18360.txt
0878デフォルトの名無しさん
NGNGとでもしておけ。もしくはデフォルト値突っ込んでおけ。
ありがとうございます!
どこにデフォルトを入れたらいいのでしょうか?
0881デフォルトの名無しさん
NGNG0882881
NGNG0884881
NGNGelse if の if は無駄(上のifの逆だからelseで十分)
(ifが入っていることでコンパイラがえらいこっちゃしてる)
if(b == 123){
うんぬん
}else if(b != 123){
かんぬん
}
というのを
if(b == 123){
うんぬん
}else{
かんぬん
}
と書けばいい
うんぬんのところも同じ。多分これで警告は出ない。
というか、ソース消しちゃったら、丸ごとかけないわ…。
でもこれでも初期化されてませんとでますが・・・
ttp://data.uploda.net/anonymous/etc1/dat4/upload18364.txt
0886デフォルトの名無しさん
NGNGのif分が余計なんだってば
0887デフォルトの名無しさん
NGNGchar x=' ';
宣言時に空白を入れればいい
すいません!勘違いしてました!
今直してみたのですが、それでも初期化されてない可能性があるとでます。
0889デフォルトの名無しさん
NGNGとりあえず>>887でもやっておけばでないだろうと思うから気になるならそれで。
0890デフォルトの名無しさん
NGNGint a,b,c;
a = 124010;//ID(6桁)
b = a/1000;//上3桁を表示する計算
c = a%1000;//下3桁を表示する計算
char x;
//IDを確認してxにAかBを代入する。
if (b == 123){ //上3桁が123かどうか
if (c <= 40){ //下3桁が40以下
x = 'A';
} else { //下3桁が41以降なら
x = 'B';
}
} else { //上3桁が123じゃなかったら
x = 'B';
}
//クラス分けの表示
System.out.println("あなたはクラス" + x + "です。");
//xを確認して教室を表示する。
if (x == 'A') {
System.out.println("教室はROOM1です。");
} else if (x == 'B'){
System.out.println("教室はROOM2です。");
}
ずっとひっかかってた部分が解けました。
これで実家に帰れる〜(⊃_;)
みなさん協力してくれてありがとう!これからはしかっり自分でします!
0892spaz
NGNG0893デフォルトの名無しさん
NGNG解いた。
0894デフォルトの名無しさん
NGNGこれをもっと直接的にかけないでしょうか?
エスケープしないで直接目的とする漢字(亜、瑤)を使って
表現したいんですが。
0895デフォルトの名無しさん
NGNG計算値を出力する電卓のプログラムを作成せよ。
ただし、 低機能な電卓と同様に 演算子 *, / と +, - の優先順位は対等とする。
また、/ は整数除算の演算子とし、 余分な空白などの不正な入力に対して配慮する必要はない。
なお、 読み込んだ値を計算式内で直接利用するために、
手続き read で読み込んだ整数値を関数値として返す関数 getnumber を作成し、
これを利用したプログラムとすること。
た す け て
た す け て
0896デフォルトの名無しさん
NGNGマルチポストする奴は助けない
0897896
NGNG0898デフォルトの名無しさん
NGNGここは、JAVAの宿題スレッドです。
JAVA以外と思われる質問はスルーしますので、そのつもりでいてください。
0899デフォルトの名無しさん
NGNGなんつって!プププ
0900デフォルトの名無しさん
NGNGの学生です。逆コンパイルでもいいので、やってもらえませんか?勝手な要望ですがどなたかおねがいします。
0901デフォルトの名無しさん
NGNGでなきゃ、教授に聞くとか。ためにならんぞ。でなきゃ、こんな単位落としちゃえ。
0902デフォルトの名無しさん
NGNG0903デフォルトの名無しさん
NGNG数式の説明をしてくれれば何とか・・・
0904デフォルトの名無しさん
NGNGあの数式なんですけど、学科の人もまったくわかってないんです。授業をサボってるわけでもありません。とりあえずルンゲクッタ法をつかってやれって感じなんです。
0905デフォルトの名無しさん
NGNGいんちきして解答を作るより友人を作る方が有意義ではないか?
0906デフォルトの名無しさん
NGNGこれで頑張ってください。
--------------------------------------------------------------------
原子がM個あって、
原子N(N=2,...,M-1)に関して初期条件で位置と速度、加速度が与えられている
とすると
# 原子1・原子Mは、速度=0 加速度=0 に固定
WHILE(TRUE){
□□
□□FOR 原子2 TO 原子M-1{
□□□□原子Nの加速度(t) = 定数 * ( 原子N-1の位置(t) - 2 * 原子Nの位置(t) + 原子N+1の位置(t) );
□□}
□□FOR 原子2 TO 原子M-1{
□□□□原子Nの速度(t+Δt) = 原子Nの速度(t) + 原子Nの加速度(t);
□□□□原子Nの位置(t+Δt) = 原子Nの位置(t) + 原子Nの速度(t+Δt);
□□□□
□□□□点を描画(原子Nの位置(t+Δt));
□□}
□□
□□t = t+Δt;
}
これをAppletにすればよし。
Appletができなければ、CSVに吐いて、Excelでグラフにしても
おもしろいのでは?(むしろそっちの方がおもしろかも)
0907デフォルトの名無しさん
NGNGいんちきを人に頼むなよ。そういうことなら自分でやれば?
ちなみにjadしてみたが、俺には何のことかわからん。。
0908906
NGNG>あの数式なんですけど、学科の人もまったくわかってないんです。
>授業をサボってるわけでもありません。
それは問題ですな
課題の段階でプログラム一歩手前の漸化式になっているのに・・・
0909デフォルトの名無しさん
NGNGいやいや友人はいますので。
>>907
いんちきもなにも、そのまま提出したら他人がやったのバレバレですし、意味もないです。
模範解答を見ながら理解して、自分で作りなおすと書き込みました。
ここの基本ルールには反してないとおもいますが。
0910デフォルトの名無しさん
NGNGだ・か・ら・ぁ。
そういうのでいいんだったら、自分で逆コンパイルして書き直せばってこと。
0911カオル
NGNGTestQueue,例外クラスは分かるのですが、Queueのクラスが分かりません。
1. キューのリングバッファによる実装と例外処理を定義しなさい。
キューの基本操作は、enqueue、dequeueの2つである。
enqueue はObject 型のデータをキューに追加する操作であり、
dequeueは一番先にenqueue されたObject 型のデータを取り出す操作である。
リングバッファとは、つぎのようなデータ構造である。大きさがN の配列と、
先頭を示すインデックスhead と最後尾を示すインデックスtail を用意する。
リングバッファに含まれているデータには順序があり、head で示される位置から
tail で示される位置までデータが入っている。
head == tail の状態はキューが空であることを表す。
インデックスhead を1つ先に進めるには、mod 演算(Java では%演算子)を使ってつぎのように表す。
head = (head +1) % N;
また、インデックスtail を1つ先に進めるにはつぎのように表す。
tail = (tail +1) % N;
0912カオル
NGNG・キューのクラス名はQueue、テストプログラムのクラス名はTestQueue とする。
・コンストラクタはキューをデフォルトサイズ(=10)で生成するものと、
サイズを与えて生成するものの2 種類を定義する。
・キューのクラスはキューの先頭の要素を取り出すメソッドtop()と
キューが空であるかを判定する(真偽値を返す)メソッドisEmpty()をもつ。
・Stack の例外処理にならい、例外クラス(OverflowException,UnderflowException)を定義し、
実装に依存しない例外処理を定義する。
OverflowException はキューがいっぱいになっている場合に、
UnderflowException はキューが空になっている場合に禁止される操作を行うことによって
発生する例外である。これらの例外はそれぞれenqueue, dequeue メソッドが投げるものとする。
これらの例外クラスはまとめてException パッケージに入れる。
テストプログラムにおいて例外が生じた場合は例外の状態を表示し、さらにキューの状態を表示する。
・パッケージ名はNov25 とし、この中に上述のException パッケージ、
Queueクラス、TestQueue クラスを置くものとする。
・TestQueue の内容はつぎのとおりである。
�@ サイズ4 のキューを生成する。
�A キューの初期状態を表示する。
�B 以下の操作を行う。
enqueue("a"), enqueue("b"), enqueue("c"), dequeue(),
enqueue("d"), dequeue(), enqueue("e")
�C キューの状態を表示する。
0913sage
NGNG最悪退学になってしまいます!ネタではありません!真剣です!
どうか力を貸してください!!
よろしくお願いします!
宿題詳細↓(英語)←もしわからなければ和訳します。
ttp://www.geocities.jp/freestyler1127/CS131JAVAPrj3FA04.doc
ttp://www.geocities.jp/freestyler1127/CS131JAVAPrj4FA04.doc
ttp://www.geocities.jp/freestyler1127/CS131JAVAPrj5FA04.doc
ttp://www.geocities.jp/freestyler1127/CS131JAVAPrj6FA04.doc
それぞれ別の宿題です。本当にどうかよろしくお願いします!
0914913 改め FreeStyler
NGNG決して他人まかせで終わらせるつもりではありません。
もし自分の力で出来たらまた報告します。
0915デフォルトの名無しさん
NGNG0916デフォルトの名無しさん
NGNGA. 【初心者】Java の宿題はここで答えます part2【歓迎】
B. Javacoの中の人がJavaの宿題に答えます part2
C. 【実は】長老がJavaの宿題に答えます part50【雑談】
0917デフォルトの名無しさん
NGNGhtmlかtxtにして和訳しておくれよ。
読む気がしないよ。
0918デフォルトの名無しさん
NGNG0919デフォルトの名無しさん
NGNG電卓を作れ。
小数点の計算は必要ない。
GUIプログラミングを大活用しろ。
ボタンは1,2,3,4,5,6,7,8,9,0,+,-,×,÷,C,=
ググりまくったけどいまいちぴったりなのがないし、過去スレ見れないしお助けくdふぁさい。
0920デフォルトの名無しさん
NGNG長すぎじゃ。
0921デフォルトの名無しさん
NGNG【上級者】The Thredo of Java Proglamingu Homewark【が回答】
0922デフォルトの名無しさん
NGNG0923カオル
NGNGできました。
お騒がせしました(深々礼)
0924デフォルトの名無しさん
NGNG突然なんですが、この式をstatementにするにはどうやって記述すればいいでしょうか?
rate*(1+rate)N
payment = ━━━━━━━━━
((1+Rate)N-1)
ちなみにNの部分は自乗です。
どうもわからないのでよろしくお願いします。
0925デフォルトの名無しさん
NGNGMath.pow(1 + rate, N) - 1;
0926デフォルトの名無しさん
NGNG<宿題>
file1とfile2をそれぞれ行で読んで、file1にfile2と異なる行があるときは
file1に書き込め。(file2にはfile1にない行があってもいい)
というものです。ひとつのクラスのメイン文の中で解決できるようにお願いします。
わかりにくいですかね。文章が。
0927デフォルトの名無しさん
NGNGimport java.io.*;
import java.util.*;
public class HW48 {
public static void main(String[] args) {
try {
BufferedReader r1 = new BufferedReader(new FileReader("file1.txt"));
BufferedReader r2 = new BufferedReader(new FileReader("file2.txt"));
Set set = new TreeSet();
String line;
while ((line = r1.readLine()) != null)
set.add(line);
while ((line = r2.readLine()) != null)
set.add(line);
r1.close();
r2.close();
BufferedWriter w = new BufferedWriter(new FileWriter("file1.txt"));
Iterator it = set.iterator();
while (it.hasNext())
w.write((String) it.next() + "\r\n");
w.close();
} catch (Exception e) {
System.out.println("エラー発生");
}
}
}
0928デフォルトの名無しさん
NGNG早速助けてくださってありがとうございます。
ですが、うまく作動しませんでした。
file2は、どんどん更新されていくので、file1のほうにfile2にはあって
file1にないものだけを書き込んでいきたいのです。
上のプログラムだと、コピーはできるのですが、file2が更新されて新しい行が追加されるときに
反応しないみたいです。
どうかお願いします。
0929デフォルトの名無しさん
NGNGfile1.txtが
aaaaaaaaaa
bbbbbbbbbb
cccccccccc
で
file2.txtが
aaaaaaaaaa
xxxxxxxxxx
bbbbbbbbbb
だと
file1.txtが
aaaaaaaaaaa
bbbbbbbbbbb
ccccccccccc
xxxxxxxxxxx
となるようにしたのですが・・・
その後file2に、zzzzzzzzzzzzzzzの行が入っても
file1にzzzzzzzzzzzzzzzが追加されるはずなのですが・・・
0930デフォルトの名無しさん
NGNG私が間違えていました。すみません!
ありがとうございました!本当に助かります。
こんなにシンプルなプログラムでいいなんて感動です。
私がやったときはwhile文を二回繰り返すようなのでぐちゃぐちゃだっただけに
とてもありがたいです!
本当にありがとうございました!!!
0931デフォルトの名無しさん
NGNG自分でやってみたのができなかったのでやはりお願いします。
今のプログラムなんすが、ソートせずにそのまま新しい行をfile1の上でも下でもいいので追加していくには
どうすればよいのでしょうか?
重ね重ねすみません。
0932デフォルトの名無しさん
NGNGSet set = new TreeSet();
を
Set set = new LinkedHashSet();
としてください。
0933デフォルトの名無しさん
NGNGありがとうございます!すごいはやいですね!
932さんがいるうちに宿題やってしまおうと思います(汗)。
ありがとうございます!
0934>>919 その1
NGNGpublic class HW47 extends JFrame {
static long value;
static final int MAXP = 12;
static boolean numFlag = true;
static char opeFlag;
static JLabel label = new JLabel("0"); static JPanel pal = new JPanel(new GridLayout(4, 4, 8, 8));
static ActionListener ne = new Number(), oe = new Operator(), ee = new Equal(), ce = new Clear();
public static void main(String[] args) {
JFrame frame = new JFrame();
((BorderLayout)frame.getContentPane().getLayout()).setVgap(8);
JButton[] btn = new JButton[16];
ActionListener[] als = new ActionListener[] { ne, ne, ne, oe, ne, ne,
ne, oe, ne, ne, ne, oe, ne, ce, ee, oe, ce };
String[] btnLabel = { "7", "8", "9", "/", "6", "5", "4", "*", "3", "2", "1", "−", "0", "C", "=", "+" };
for (int i = 0; i < btnLabel.length; ++i) {
btn[i] = new JButton(btnLabel[i]);
btn[i].addActionListener(als[i]);
btn[i].setFont(new Font("Dialog", 1, 20));
pal.add(btn[i]);
}
frame.getContentPane().add(pal);
Box box = Box.createHorizontalBox();
label.setFont(new Font("Dialog", 1, 20));
label.setMaximumSize(new Dimension(1000, label.getPreferredSize().height));
label.setPreferredSize(new Dimension(200, label.getPreferredSize().height));
box.add(label); JButton acb = new JButton("AC"); acb.addActionListener(ce);
acb.setFont(new Font("Dialog", 1, 15)); box.add(acb);
frame.getContentPane().add(box, BorderLayout.NORTH);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack(); frame.setVisible(true);
}
0935>>919 その2
NGNGopeFlag = 0;
value = 0;
numFlag = true;
label.setText(text);
Component[] cs = pal.getComponents();
for (int i = 0; i < cs.length; ++i) cs[i].setEnabled(false);
}
static class Number implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (opeFlag == 0) value = 0;
StringBuffer sb = new StringBuffer(label.getText());
if (numFlag) sb.delete(0, sb.length());
numFlag = false;
String text = sb.insert(sb.length(), ((JButton) e.getSource()).getText()).toString();
if (text.length() > MAXP) { error("エラー(桁あふれ)"); return; }
label.setText(text);
}
}
static class Operator implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (opeFlag != 0) ee.actionPerformed(e);
if (label.getText().startsWith("エラー")) return;
opeFlag = ((JButton) e.getSource()).getText().charAt(0);
value = Long.parseLong(label.getText());
numFlag = true;
}
}
0936>>919 その3
NGNGpublic void actionPerformed(ActionEvent e) {
if (((JButton) e.getSource()).getText().equals("C")) {
if (numFlag) return;
} else {
opeFlag = 0; value = 0;
Component[] cs = pal.getComponents();
for (int i = 0; i < cs.length; ++i) cs[i].setEnabled(true);
}
numFlag = true; label.setText("0");
}
}
static class Equal implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (numFlag || opeFlag == 0)
return;
long num = Long.parseLong(label.getText());
switch (opeFlag) {
case '+': value += num; break;
case '−': value -= num; break;
case '*': value *= num; break;
case '/': value /= num; break;
}
if (String.valueOf(value).length() > MAXP) {
error("エラー(桁あふれ)"); return;
}
label.setText(String.valueOf(value));
numFlag = true; opeFlag = 0;
}
}
}
0937デフォルトの名無しさん
NGNG0938デフォルトの名無しさん
NGNG0939M.B.
NGNG【神は】Java の宿題で困っている奴に
思いつきで蜘蛛の糸とか垂らしてみるスレ【見ている】
0940デフォルトの名無しさん
NGNG0941M.B.
NGNG0942M.B.
NGNG0943デフォルトの名無しさん
NGNGそのファイルの名前を指令行の引数に指定すると、
ファイル中の数値の合計、最大値、最小値を求めて
出力するプログラムを作ってください。
Numbers.txtの中身
21
23
50
3
23
50
2
90
231
42
どなたかお願いします!
0944デフォルトの名無しさん
NGNG名簿ファイルには、テストを受けたか否かに関係なく、
授業を選択している人の名前すべてが各行に1人分ずつ書いてあります。
これら二つのファイルが与えられた時に、 授業を選択している人
全員のテスト状況を示したファイルを書き出すプログラムを作ってください。
テストを受けた人については名前の後ろにその点数を書き,
テストを受けてない人については名前の後ろに(点数の代わりに)"ABSENT"と書いてください。
成績ファイルの名前は指令行の第1引数に、 名簿ファイルの名前は指令行の第2引数に、
書き出すファイルにつける名前は指令行の第3引数に, それぞれ指定するようにしてください。
import java.io.*;
import java.util.*;
public class Seiseki {
public static void main(String[] args ) {
0945デフォルトの名無しさん
NGNGtry {
FileReader fr = new FileReader(args[0]);
BufferedReader br=new BufferedReader(fr);
Hashtable students=new Hashtable(); // 名前をキー、得点を値として格納
while (true) {
String line=br.readLine();
if (line==null) break;
StringTokenizer st=new StringTokenizer(line);
??? // 名前と得点を切り出し、studentsに格納
}
br.close();
FileReader fr2 = new FileReader(args[1]);
BufferedReader br2=new BufferedReader(fr2);
FileWriter fw=new FileWriter(args[2]);
PrintWriter pw=new PrintWriter(fw);
0946デフォルトの名無しさん
NGNGString line=br2.readLine();
if (line==null) break;
String score=(String)???; // 名前をキーとして、得点を取り出す
if (score==null) score="ABSENT";
pw.println(line+" "+score);
}
pw.close();
br2.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
???部分の穴埋めおねがいします
0947デフォルトの名無しさん
NGNG一つ目の???は
students.put(st.nextToken(), st.nextToken());
次は
students.get(line);
0948デフォルトの名無しさん
NGNG0949デフォルトの名無しさん
NGNG課題5におけるHumanクラスのメンバ変数を、Swingで作成したウィンドウに表示するDisplayHumanクラスを作成せよ。
但し、最低限、次の条件を満たすこと。この条件を満たしていれば、
アプリケーションの見た目や動作は各自が趣向を凝らしても良い。
・表示するインスタンスは1つのみでよい。表示方法は自由だが、なるべく個々のデータが分かり易くなるよう工夫すること。
・Humanクラスのインスタンスの作成については、クラスのメンバ変数をテキストファイルで用意し、
それを読み込んで作成すること。
テキストファイルの名前およびファイル内部の記述形式は自由に設定してよいが、
各自が作成しているHumanクラスのメンバ変数のすべてをデータとして記述しておくこと。
・Humanクラスとは別に作成するクラスは一つにまとめても良いし、複数に分かれても構わない。
・プログラム内の重要な箇所には処理内容のコメントをなるべく詳しく記述すること。
【ヒント】
テキストファイルを読み込んで、その中身を取り出す処理には StringTokenizer クラスが利用できる。
0950デフォルトの名無しさん
NGNG課題5 Human.java
public class Human{ //
protected String m_name; //
protected byte m_age; //
protected byte m_weight;
protected int m_height;
public Human(String name) {
m_name =name;
m_age = 0;
m_weight = 0;
m_height = 0;
}
public Human(String name, byte age){
m_name = name;
m_age = age;
m_weight = 0;
m_height = 0;
}
0951デフォルトの名無しさん
NGNGm_age = age;
}
public void setWeight(byte weight) {
m_weight = weight;
}
public void setHeight(int height) {
m_height= height;
}
public String getName(){ //
return m_name;
}
public byte getAge(){ //
return m_age;
}
public byte getWeight(){ //
return m_weight;
}
public int getHeight(){
return m_height;
}
public void printProfile(){
System.out.println(m_name);
System.out.println(m_age);
System.out.println(m_weight);
System.out.println(m_height);
}
}
0952デフォルトの名無しさん
NGNGpublic class DisplayHuman extends JFrame{
public static void main(String arg[]){
DisplayHuman win = new DisplayHuman();
win.setSize(400.200);
win.setVisible(true);
win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
DisplayHuman()
super("Swingによるwindow表示のサンプル");
}
public void paint (Graphics g){
super.paint(g);
g.drawString("Hello, World!!", 150, 100);
}
}
0953デフォルトの名無しさん
NGNG1.まずダイアログボックス内にあるユーザーネームとパスワードを
テキストエリア内に入力し、ログインボタンをおしてログインします。
2.新しいダイアログボックスが現れ、
そこには新しいダイアログボックスを作るためのテキストエリアがあります。
そのテキストエリアは
-----------------------------------------------------------------------------
・Title [ ] //新しいダイアログボックスのタイトル(タイトルバー内に表示)
・Width [ ] //ダイアログボックスの横幅を指定
・Height[ ] //ダイアログボックスの縦幅を指定
・X [ ] //X座標、ダイアログボックス表示位置を指定
・Y [ ] //Y座標、ダイアログボックス表示位置を指定
・Resize[ ] //Trueかfalseか
・Clear [ ] //CLEARボタン、何に使うのかよくわからないのですが、なくてもいいです。
・Exit [ ] //EXITボタン、何に使うのかよくわからないのですが、なくてもいいです。
-----------------------------------------------------------------------------
JLabelを使ってTitleやweight, Heightなどを表示させてください。
テキストエリア内に入力した後にOKボタンを押すと
指定したとおりのダイアログボックスが新しく現れます。
というプログラムです。
どうかよろしくお願いします。
0954>>949 その1
NGNGimport java.io.*; import java.util.*;
public class DisplayHuman extends JFrame {
JLabel name = new JLabel(), age = new JLabel(), ht = new JLabel(), wt = new JLabel();
Map map = new TreeMap();
public static void main(String[] args) {
DisplayHuman wnd;
try {
wnd = new DisplayHuman();
wnd.pack();
wnd.setVisible(true);
} catch (Exception e) {
System.out.println("エラー発生");
}
}
0955>>949 その2
NGNGStreamTokenizer st = new StreamTokenizer(new InputStreamReader(new FileInputStream("human.txt")));
st.eolIsSignificant(true);
st.whitespaceChars(',', ',');
Human hm = null; int count = 0;
while (st.nextToken() != StreamTokenizer.TT_EOF) {
if (st.ttype != StreamTokenizer.TT_EOL) {
switch (count++) {
case 0: hm = new Human(st.sval); break;
case 1: hm.setAge((byte) st.nval); break;
case 2: hm.setHeight((int) st.nval); break;
}
} else {
hm.setWeight((byte) st.nval);
map.put(hm.getName(), hm); count = 0;
}
}
JPanel pal1 = new JPanel(new GridLayout(4, 1, 4, 4)), pal2 = new JPanel(new GridLayout(4, 1, 4, 4));
pal1.add(new JLabel("名前")); pal2.add(name);
pal1.add(new JLabel("年齢")); pal2.add(age);
pal1.add(new JLabel("身長")); pal2.add(ht);
pal1.add(new JLabel("体重")); pal2.add(wt);
0956>>949 その3
NGNGcbx.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Human hm = (Human) map.get(cbx.getSelectedItem());
name.setText(hm.getName()); age.setText("" + hm.getAge());
ht.setText("" + hm.getHeight()); wt.setText("" + hm.getWeight());
}
});
JPanel pal3 = new JPanel(); pal3.add(new JLabel("人員リスト")); pal3.add(cbx);
Component[] cp = pal1.getComponents();
for (int i = 0; i < cp.length; i++) {
cp[i].setForeground(Color.blue);
cp[i].setFont(new Font("Dialog", 0, 20));
}
cp = pal2.getComponents();
for (int i = 0; i < cp.length; i++) {
cp[i].setFont(new Font("Dialog", 0, 20));
cp[i].setPreferredSize(new Dimension(200, 20));
((JLabel)cp[i]).setBorder(BorderFactory.createLoweredBevelBorder());
((JLabel)cp[i]).setHorizontalAlignment(JLabel.CENTER);
}
((BorderLayout)getContentPane().getLayout()).setHgap(8);
((BorderLayout)getContentPane().getLayout()).setVgap(8);
getContentPane().add(pal3, BorderLayout.SOUTH);
getContentPane().add(pal1, BorderLayout.WEST);
getContentPane().add(pal2);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
0957古代帝国富士皇朝総帥・伯壬旭
NGNGデータファイルは、human.txtです。
フォーマットは
田中,20,170,60
鈴木,15,160,50
佐藤,25,180,70
, と 改行で区切ってください。
0958デフォルトの名無しさん
NGNGやってくださってありがとうございます。
すいませんが
DisplayHuman.java:56: シンボルを解決できません。
シンボル: メソッド setPreferredSize (java.awt.Dimension)
場所 : java.awt.Component の クラス
cp[i].setPreferredSize(new Dimension(200, 20));
^ とエラーで出てしまうんです。
どうしたらなおりますか?
0959デフォルトの名無しさん
NGNGDisplayHuman.java:56: シンボルを解決できません。
シンボル: メソッド setPreferredSize (java.awt.Dimension)
場所 : java.awt.Component の クラス
cp[i].setPreferredSize(new Dimension(200, 20));
^ここです
0960デフォルトの名無しさん
NGNGcp[i].setPreferredSize(new Dimension(200, 20));
を
((JLabel)cp[i]).setPreferredSize(new Dimension(200, 20));
としてみてください。
0961>>953 その1
NGNGpublic class HW50 {
static final String name = "tanaka", pass = "ango";
public static void main(String[] args) {
final JFrame dlg = new JFrame();
JPanel pal1 = new JPanel(), pal2 = new JPanel(), pal3 = new JPanel();
final JTextField tfd = new JTextField(10);
final JPasswordField pfd = new JPasswordField(10);
pal1.add(new JLabel("名前")); pal1.add(tfd);
pal2.add(new JLabel("パス")); pal2.add(pfd);
JButton btn = new JButton("入力");
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (tfd.getText().equals("tanaka") && new String(pfd.getPassword()).equals("ango")) {
new MyFrame(dlg.getX(), dlg.getY());
dlg.dispose();
} else {
JOptionPane.showMessageDialog(dlg, "名前とパスが一致しない");
tfd.setText(""); pfd.setText("");
}
}
});
pal3.add(new JLabel("名前:tanaka パス:ango ")); pal3.add(btn);
dlg.getContentPane().setLayout(new BoxLayout(dlg.getContentPane(), BoxLayout.Y_AXIS));
dlg.getContentPane().add(pal1); dlg.getContentPane().add(pal2);
dlg.getContentPane().add(pal3); dlg.pack();
dlg.setDefaultCloseOperation(JDialog.EXIT_ON_CLOSE); dlg.setVisible(true);
}
}
0962>>953 その2
NGNGMyFrame(int locx, int locy) {
JPanel pal1 = new JPanel(), pal2 = new JPanel(), pal3 = new JPanel();
final JTextField title = new JTextField(10);
final JSpinner x = new JSpinner(new SpinnerNumberModel(0, 0, 800, 32)),
y = new JSpinner(new SpinnerNumberModel(0, 0, 600, 32)),
w = new JSpinner(new SpinnerNumberModel(300, 50, 800, 32)),
h = new JSpinner(new SpinnerNumberModel(200, 50, 600, 32));
final JCheckBox resize = new JCheckBox("resize");
pal1.add(new JLabel("title")); pal1.add(title); pal1.add(resize);
pal2.add(new JLabel("X")); pal2.add(x); pal2.add(new JLabel("Y")); pal2.add(y);
pal2.add(new JLabel("width")); pal2.add(w); pal2.add(new JLabel("height")); pal2.add(h);
JButton ok = new JButton("入力");
ok.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String tt = title.getText();
boolean flag = resize.isSelected();
int vx = ((Number)x.getValue()).intValue();
int vy = ((Number)y.getValue()).intValue();
int vw = ((Number)w.getValue()).intValue();
int vh = ((Number)h.getValue()).intValue();
JDialog dlg = new JDialog(MyFrame.this, tt, false);
dlg.setBounds(vx, vy, vw, vh); dlg.setResizable(flag); dlg.setVisible(true);
}
});
pal3.add(ok);
getContentPane().setLayout(new BoxLayout(getContentPane(), BoxLayout.Y_AXIS));
getContentPane().add(pal1); getContentPane().add(pal2); getContentPane().add(pal3);
pack(); setLocation(locx, locy);
setDefaultCloseOperation(JDialog.EXIT_ON_CLOSE); setVisible(true);
}
}
0963M.B.
NGNG呼ばれる class が static でないとまずい理由とかあるのだろうか
∧_∧
∧_∧ (`<_´ ) 質問は別スレでね兄者
( ´_ゝ`) 〈 ⌒i
/ \ / | |
/ / ̄ ̄ ̄ ̄/ |
__(__ニつ/ IBM / .| |____
\/____/ (u っ
0964デフォルトの名無しさん
NGNG0965デフォルトの名無しさん
NGNG�@問題文は自己省略せずに、直接全部貼り付けてください。
�A数学問題は何々法でせよだけでなく、その解を出す数式を
具体的に詳細に説明してください。
ただ、数学問題の回答率は低いです・・・。
�B宿題&課題をそのまま丸投げするのが、一番好ましい提示法です。
�C宿題&課題とその回答プログラムに対する質問はOKですが、
それ以外の質問はここではしないでください。
あと、他言語の課題もやめてください。
�Dもし自分の提示課題に対する回答プログラムが返って来たら、
動いた動かなかった位の返レスをお願いします。
0966ttttt
NGNG1, 生年月日を入力したら、年齢を表示する
2, 上の年齢計算プログラムに、未来の日付、0 月、13 月および 2 月 30 日などあり得ない日付が入力されたときは、エラーを表示し再入力を促すプログラムに変更せよ。
なおある年月が何日あるかの判定は、結構面倒です。具体的には、
2 月は優先順位の高い順に西暦が
400 で割り切れる年は 29 日
100 で割り切れる年は 28 日
4 で割り切れる年は 29 日
上記以外は 28 日
です。
2 月以外の 1〜7 月は
奇数月は 31 日
偶数月は 30 日
8〜12 月は
奇数月は 30 日
偶数月は 31 日
となっている。この部分を自分で作るのはちょっと難しいので、次の関数を使用すればよい。
function LeapYear( month, year ){//ある年、月の日数を返す関数
if( month == 2 )return 28 + !( year%400 ) - !( year%100 ) + !( year%4 );
else if( month > 7)return 31 - month%2;
else return 30 + month%2;
}
//この下は呼び出しと結果表示の例
day = LeapYear( 2, 2000 );//2000 年 2 月の日数
document.write( day );
3, 上の LeapYear 関数で、何故ある年、次の日数を計算することが出来るか、関数の行っている処理を詳細に述べることにより説明せよ。
「!(〜)」の意味は、詳細は省きますが〜の部分が「0 なら 1」「0 でなければ 0」になります。
0967ttttt
NGNGある日数以上なら、月を増やす処理が必要になるが、
その時の日数の取得には、LeapYear 関数を使えばよい。
時間の計算をした結果、例えば 100 日後といった非常に大きな日数後の日付計算が必要になった時、一回の計算では上手くいかない。
何故なら日数は年、月によって変化するので % による余り算も使えないため。そこで for 文や while 文といった繰り返しの処理を上手く使うこと。
0968デフォルトの名無しさん
NGNGとりあえず出題者に死ねって言っといて。
0969ttttt
NGNG0970デフォルトの名無しさん
NGNGできました。
どうもありがとうございました。
0971デフォルトの名無しさん
NGNG1.プログラムの書き方が死ぬほど汚いから。
2.日本語が死ぬほどヘタクソだから。
3.解説文で死ぬほど重大な間違いをしているから。
0972デフォルトの名無しさん
NGNG0973デフォルトの名無しさん
NGNG0974デフォルトの名無しさん
NGNGテンプレはここ(最新のものに更新済み)↓
http://www.wikiroom.com/java/?%a5%b9%a5%ec%ce%a9%a4%c6%cd%d1%a5%c6%a5%f3%a5%d7%a5%ec#content_1_1
0975デフォルトの名無しさん
NGNGimport java.awt.*;
import java.awt.event.*;
public class Kadai12 extends Applet implements MouseListener, MouseMotionListener {
int doX, doY;
int angX = 30, angY = 30;
Tetrahedron data = new Tetrahedron();
public void init() {
addMouseListener(this);
addMouseMotionListener(this);
}
public void mousePressed(MouseEvent e) {
doX = e.getX();
doY = e.getY();
}
public void mouseDragged(MouseEvent e) {
angX += e.getY() - doY;
angY += e.getX() - doX;
doX = e.getX(); doY = e.getY();
repaint();
}
0976デフォルトの名無しさん
NGNGpublic void mouseReleased(MouseEvent e){}
public void mouseEntered (MouseEvent e){}
public void mouseExited (MouseEvent e){}
public void mouseMoved (MouseEvent e){}
public void paint(Graphics g) {
g.drawString("第12回課題 T000000 龍谷太郎",
getSize().width - getFont().getSize()*15, getFont().getSize());
setBackground(new Color(230,255,255));
for (int i = 0; i < data.x.length; i++) {
drawPG(g, data.x[i], data.y[i], data.z[i], 250, 300);
}
}
public void drawPG(Graphics g, double x[], double y[], double z[],
int xp, int yp) {
double a = angX * Math.PI/180.0;
double b = angY * Math.PI/180.0;
double x1, y1, z0;
int xx[] = new int[x.length];
int yy[] = new int[x.length];
0977デフォルトの名無しさん
NGNGdouble cosA = Math.cos(a), cosB = Math.cos(b);
for (int i = 0; i < x.length; i++) {
x1 = x[i]*cosB + z[i]*sinB;
z0 = -x[i]*sinB + z[i]*cosB;
y1 = y[i]*cosA - z0*sinA;
xx[i] = xp + (int)Math.rint(x1);
yy[i] = yp - (int)Math.rint(y1);
}
g.drawPolygon(xx, yy, x.length);
}
}
class Tetrahedron {
final double L=80;
/* 以下で座標を定める */
double x[][] = {{0,0,L,L},{0,0,L/2},{L,L/2,L},{0,0,L,L},{0,0,L/2},{L,L,L/2}};
double y[][] = {{0,0,0,0},{0,0,Math.sqrt(3)*L/2},{0,Math.sqrt(3)*L/2,0}
,{2*L,2*L,2*L,2*L},{2*L,2*L,Math.sqrt(3)*L/2,0},{2*L,2*L,Math.sqrt(3)*L/2,0}};
double z[][] = {{0,L,L,0},{0,L,L/2},{0,L/2,L},{0,L,L,0},{0,L,L/2},{0,L,L/2}};
}
0978デフォルトの名無しさん
NGNG0979デフォルトの名無しさん
NGNGこのスレッドは終了。
以後の課題は次スレで。
0980デフォルトの名無しさん
NGNG□□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□
□□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□
□■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□
□□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□
□□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□
□□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□
□□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□
□■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□
□□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□
□□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□
□□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□
□■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□
□■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□
0981デフォルトの名無しさん
NGNG試してみたかったのじゃな。
次スレはどこじゃ。
0982デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1100565043/
レス数が950を超えています。1000を超えると書き込みができなくなります。