★★ Java の宿題ここで答えます Part 60 ★★
>>245 >全ての色の全ての部位(6×4=24種類)をペイントで用意はしました
「リソースの無い丸投げには興味ありません。
仕様、リソース、テスト環境のある丸投げだけこのスレに来なさい!」
ハルヒ厨とか言わずに少しマターリしようぜ?
248 :
217:2007/02/02(金) 15:52:07
package untitled3;
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JComboBox;
import java.awt.*;
import javax.swing.JLabel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JTextArea;
import javax.swing.JEditorPane;
import javax.swing.event.AncestorEvent;
import javax.swing.event.AncestorListener;
public class Frame1 extends JFrame {
String a[] = {"黒", "白", "灰", "赤", "緑", "茶", };
String b[] = {"黒", "白", "灰", "赤", "緑", "茶", };
String c[] = {"黒", "白", "灰", "赤", "緑", "茶", };
String d[] = {"黒", "白", "灰", "赤", "緑", "茶", };
JPanel contentPane;
JComboBox jComboBox1 = new JComboBox(a);
JComboBox jComboBox2 = new JComboBox(b);
JComboBox jComboBox3 = new JComboBox(c);
JComboBox jComboBox4 = new JComboBox(d);
JLabel jLabel1 = new JLabel();
JLabel jLabel2 = new JLabel();
JLabel jLabel3 = new JLabel();
JLabel jLabel4 = new JLabel();
249 :
217:2007/02/02(金) 15:54:04
public Frame1() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(null);
setSize(new Dimension(400, 300));
setTitle("フレーム タイトル");
jComboBox2.setBounds(new Rectangle(19, 114, 85, 19));
jComboBox1.setBounds(new Rectangle(18, 49, 86, 19));
jComboBox1.addActionListener(new Frame1_jComboBox1_actionAdapter(this));
jComboBox3.setBounds(new Rectangle(20, 177, 85, 20));
jComboBox4.setBounds(new Rectangle(21, 241, 85, 20));
jLabel1.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));
jLabel1.setText("アウター");
jLabel1.setBounds(new Rectangle(20, 20, 70, 19));
jLabel2.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));
jLabel2.setText("インナー");
jLabel2.setBounds(new Rectangle(20, 81, 67, 20));
jLabel3.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));
jLabel3.setText("ズボン");
jLabel3.setBounds(new Rectangle(22, 148, 49, 19));
jLabel4.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));
250 :
217:2007/02/02(金) 15:55:25
jLabel4.setText("靴");
jLabel4.setBounds(new Rectangle(24, 213, 52, 20));
contentPane.setFont(new java.awt.Font("Dialog", Font.PLAIN, 6));
contentPane.add(jComboBox3);
contentPane.add(jComboBox1, null);
contentPane.add(jComboBox4);
contentPane.add(jLabel1);
contentPane.add(jLabel4);
contentPane.add(jLabel3);
contentPane.add(jComboBox2, null);
contentPane.add(jLabel2);
}
public void jComboBox1_actionPerformed(ActionEvent e) {
}
}
class Frame1_jComboBox1_actionAdapter implements ActionListener {
private Frame1 adaptee;
Frame1_jComboBox1_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jComboBox1_actionPerformed(e);
}
}
251 :
217:2007/02/02(金) 15:59:47
長くなってすみません、とりあえず途中まで出来ているのはこんな感じです・・・
っていってもフレームの中にコンボボックスが4つあるだけって感じなのですが
それと補足で、JBuilderを使ってプログラム作成しています。
どなたかわかる方、本当によろしくお願いしますm(_ _)m
>>217みたいにせっかくもらったレス(
>>247)を無視する奴って時々出てくるな。
なんでそんな事するんだろう?
印象悪くするだけで何もメリット無いと思うんだが。
プログラムなら書いてやるが、絵はてめーで用意しろ。
めんどくせーし
>>217はアホだから無視していいよ。
長いソースを晒す場合のアップローダの意義も分からず、
質問者が用意して当然の画像等も出さない真正アホ。
前から思ってたけど
『丸投げ』の意味がわかってない依頼者が多いね
ここのルールがわかってないのにちゃっかり利用しようとする奴が多い
♪ ∧,_∧
(´・ω・`) )) 金曜日が終わる〜
(( ( つ ヽ、 明日は土曜日〜
〉 とノ )))
(__ノ^(_)
259 :
デフォルトの名無しさん:2007/02/02(金) 17:55:26
豆座流豆群まだぁ−?
♪ ∧,_∧
(´・ω・`) )) 今日は念願の期間限定プッチンプリンを食べるぞ
(( ( つ ヽ、 ・・・400gがこんなにあるとは^^;
〉 とノ )))
(__ノ^(_)
261 :
109:2007/02/02(金) 20:53:25
>>109です 再投稿します
【 課題 】@横並びの3つの画像を下にスクロールさせる
Aスクロールをストップさせるボタンを画像の下につける
【 期限 】2月5日(月)
【 Ver 】1.4.2
【 補足 】
画像の名前は Slot A.jpg Slot B.jpg Slot C.jpg でお願いします。
もう期限がギリギリなので、期限内になにとぞよろしくお願いします。
本当にお願いします。
テンプレは前の方が簡潔で良かったんじゃね?
必須要項も一つで済んだし
昔の回答者の方がいろいろ優しかった希ガス
>>262 昔は今のような複雑な仕様の問題が少なかったのではないだろうか?
前のテンプレだと最近の課題に対応できてないような気がする。
>261
';,(´ε`)ブッ
期限のびたの?
2日あれば自分でデキルンじゃない?
♪ ∧,_∧ ♪ ∧,_∧ ♪ ∧,_∧ ♪ ∧,_∧
(´・ω・`) )) (´・ω・`) )) (´・ω・`) )) (´・ω・`) ))
(( ( つ ヽ、 (( ( つ ヽ、 (( ( つ ヽ、 (( ( つ ヽ、
〉 とノ ))) 〉 とノ ))) 〉 とノ ))) 〉 とノ )))
(__ノ^(_) (__ノ^(_) (__ノ^(_) (__ノ^(_)
>>266 何、マルチだと
前スレのルーレットソース修正して貼ってやろうかと思ったけど、やーめた
>>262 依頼者には簡潔でよかったかもしれんが回答者側には詳細を最初から要求している今のテンプレの方がいいと思う。
とはいえきちんと守られているわけではない現状では後付質問やエスパーが不要ではないが。
形式的にテンプレが守られていたとしても仕様が不明瞭なものがあるくらいなのにこの程度のテンプレは埋めてもらっても悪くなかろうて。
マルチや期限切れでない宿題はないのか
静かな良い週末だ
そういや数年前、やたら精力的に回答して
スレをソースコードで埋め尽くしてた常連がいたな。
271 :
230:2007/02/03(土) 06:41:36
>>243,246
ありがとうございました。
お二人の書いてくれたソースをもとに動くようになり無事に提出する事ができました。
272 :
261:2007/02/03(土) 07:44:03
ちょっと待ってください
マルチじゃないです。ここしか来てません
>273 ・・・⊂ミ⊃^ω^ )⊃ アウアウ!!
275 :
261:2007/02/03(土) 11:51:24
>>273 だから266か他の人が書き込んだんでしょ
そんなに人を陥れたいんですか?
私はマルチではありません。どうか宿題をお願いします。
276 :
267:2007/02/03(土) 12:13:13
>>275 ここは2chだぞ
個人を特定できるIDが付与されるなら信用はできるけど
何にも証拠がないので、本物か偽者か見分けるのが難しい
ゆえに、今回はスルーするわ
>>276 「今回は」ってことは、もう一回投稿したら
やってもらえますかね?
(同じ内容をあんまり投稿すると邪魔に思われそうなので、これで最後にします)
【 課題 】@横並びの3つの画像を下にスクロールさせる
Aスクロールをストップさせるボタンを画像の下につける
【 期限 】2月5日(月)
【 GUI 】制限なし
【 Ver 】1.4.2
マルチはスルーされるのは知ってました。
だから2chでは誰が見るか分からないのに、そんな危険な橋は渡りません。
278 :
768:2007/02/03(土) 12:27:48
>>275 感じ悪いレスだな。
もし
>>275の言うように本当に他人が書き込んだとしても、
>>273にはそれがわからないわけだ。
単にマルチしていると誤解してるだけで、陥れようとかそういう意図は273には無かったかもしれない。
にもかかわらず「そんなに人を陥れたいんですか?」と決めつけてしまうのはどうかと思う。
もうひとつ。
陥れるも何も、そもそも宿題は自分でやるべき事だろう。
他人にやってもらえなくなったからって、それについて文句をつけるのは間違いだ。
他人が自分の為に動いて当然って考えが見えてどうにも不愉快。
279 :
278:2007/02/03(土) 12:30:20
おっと、
>>278の名前欄は無視してくれ。
>「今回は」ってことは、もう一回投稿したら やってもらえますかね?
他人が自分の為に動いて当然って考えが見えてどうにも不愉快。
要はできないんですね(プッ
>>278 ごめんなさい
273だけじゃなくて見てる人全体に言ったつもりでした。
それと陥れるというのは、やってもらえないからだけではなく、
自分が発言していないことを発言したと誤解されたくなかっただけです。
>>282 ありがとうございました。自分なりにやってみます。
でもよろしければ、どなたかお願いします。
たぶん僕にはできませんから。
プログラマーもやめたほうがいいよ。にんげんも病めた方がいいお=^∀^)
ここに宿題書くと他スレに書き込まれてマルチ扱いされるでFA?
怖かったらトリでもつけて質問すれば?
261がマルチだろうとマルチを騙られたにしても真実は関係ない。
実際に存在するレスから各回答者が判断するだけだ。
マルチでも構わんっていう回答者だっているかもしれんしな。
依頼者は少しでもリスクを減らしたいならトリップを付けるべき。
トリップ推奨とかどんどんC/C++宿題スレと似てくるなあ。
まあ、向こうの方が歴史あるからな。
言語は違え、宿題スレは宿題スレだから、似た傾向になるのは仕方ないかも。
窮屈な方向に進むのは褒められたことではないけど。
>>283 >たぶん僕にはできませんから。
普通こういう場合って、単位落としていいんじゃないかと思うが・・・
態度によっては・・・、とした場合も態度も最悪だしなぁ・・・・
291 :
デフォルトの名無しさん:2007/02/05(月) 06:08:30
>>291 解凍してもバイナリファイル1つだけだったよ・・・
【 課題 】JAVAアプレットをアプリケーションでも動かす
【 形態 】Javaアプリケーション(main()で開始)/2. Applet
【 GUI 】1. AWT Swing
【 期限 】2月7日
【 Ver 】java version "1.5.0_06"
【 補足 】前に質問した者ですが、アプリケーションを作るまではできたのですが起動まではしてくれません
すいませんがお願いします
>>293 何で投げっぱなし・・・
どう悪いから起動しないとかかいといたほうがいいだろ・・・
って、そんな気が利くほどのヤツなら自分でエラー見ながら出来てるか・・・
296 :
デフォルトの名無しさん:2007/02/05(月) 22:14:25
>>296 public class A {
public static void main(String[] args) throws java.io.IOException {
java.io.BufferedReader in = null;
try {
in = new java.io.BufferedReader(new java.io.FileReader("(ファイル)"));
int n = Integer.parseInt(in.readLine());
double[] a = new double[n];
double min = Double.MAX_VALUE, max = Double.MIN_VALUE, mean = 0.0, var = 0.0;
for (int i = 0; i < n; i++) {
a[i] = Double.parseDouble(in.readLine());
if (a[i] < min) min = a[i];
if (a[i] > max) max = a[i];
mean += a[i] / n;
var += a[i] * a[i] / n;
}
var -= mean * mean;
java.util.Arrays.sort(a);
double med = n % 2 == 0 ? (a[n / 2 - 1] + a[n / 2]) / 2 : a[n / 2];
System.out.println("最小値 " + min);
System.out.println("最大値 " + max);
System.out.println("平均値 " + mean);
System.out.println("中央値 " + med);
System.out.println("分散 " + var);
} finally {
if (in != null) in.close();
}
}
}
300 :
296:2007/02/06(火) 01:01:10
無事実行できました。ありがとうございました。
>>301 かもね。直接ソートしてみたけど、やっぱり56.77が中央値っぽい。
誤りかどうか判断の最終責任はプログラムを受け入れる依頼者にってことで。
実行例があるとプログラムを作りやすいけど、
それに誤りが含まれてるとプログラミングと違うところで悩んでしまう。
>>296 すまん。ソース間違ってる。
double min = Double.MAX_VALUE, max = Double.MIN_VALUE, mean = 0.0, var = 0.0;
は、
double min = Double.MAX_VALUE, max = -Double.MAX_VALUE, mean = 0.0, var = 0.0;
だ。例のファイルは正数ばっかりだから答が誤ってるわけではないけど。
負数が入ったデータだとバグが丸分かりになる。
>>303 >負数が入ったデータだと
負数ばかりが入ったデータだと
305 :
デフォルトの名無しさん:2007/02/06(火) 03:12:32
はじめまして。
【 課題 】ユーザから与えられたクエリーをクエリー文字列に変換し、3つのサーチエンジン(goo,excite、BIGLOBE)に
検索をかけ、それぞれのヒット数を表示するプログラム。
【 形態 】スレッドを使用したいのですが・・・。面倒なら結構です。
【 GUI 】2. Swing(レイアウトは適当で結構です)
【 期限 】2月7日昼1時まで
【 Ver 】1.4.2
どうぞ宜しくお願いします。
>>305 補足資料として、もう一度自分で調べなおしてみた結果は公開しないの?
ちょ、おま、さっきのあっちでの質問はその前振りか!?
それとも同じ課題出された奴らか・・・
やっぱ、丸投げより自分で考えてるあっちのヤツを応援したいから、こっちはスルーすることにしよう
308 :
305:2007/02/06(火) 03:35:41
>>306 えっと、書き込むのは今回が初めてなので・・・307の言うとおり、
どうやら私と同じ問題を出されたようですね。
>>307 私も自分で考えてぐぐったりしているのですが、どうも思いつかず
こちらに書き込ませて頂きました。
甘えて申し訳ありません!
仕事ならまだしも、その他でVer1.4.2使う(学ぶ)のはいかがなものなんでしょう?
SE6.0正式リリースされて数ヶ月経つのに・・・
という事で、1.4.2以下はパス
【 課題 】JformattedTextFieldを利用し、時計の形態で入力できるようにする
【 形態 】1. Javaアプリケーション
【 GUI 】2. Swing
【 期限 】2月8日
【 Ver 】java version "1.5.0_06"
【 補足 】課題の説明が上手く出来ず申し訳ないです。下記のソースで補足します
import java.util.Date;
import java.text.SimpleDateFormat;
import javax.swing.Box;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.text.MaskFormatter;
public class FormatClock {
public static void main(String[] args) throws Exception {
Box form = Box.createVerticalBox();
//@
JFormattedTextField birthdayField = new JFormattedTextField(new SimpleDateFormat("HH:mm:ss"));
birthdayField.setValue(new Date());
form.add(birthdayField);
//A
JFormattedTextField phoneField = new JFormattedTextField(new MaskFormatter("##:##:##"));
phoneField.setValue("12:34:56");
form.add(phoneField);
JFrame frame = new JFrame("FormatClock");
frame.getContentPane().add(form);
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
@とAを両立させたいのですがどのようにすればいいのでしょうか?
>>310-311 @とAを両立したいとは、片方の時間が修正されたら、
もう片方の時間も同じにしたいということなのかな?
何をどう両立したいのか詳しく書かないと誰もやってくれないよ
>>310 機種依存文字使うなよー
// (1)
JFormattedTextField birthdayField = new JFormattedTextField(new SimpleDateFormat("HH:mm:ss"));
new MaskFormatter("##:##:##").install(birthdayField); <== コレ
birthdayField.setValue(new Date());
form.add(birthdayField);
314 :
313:2007/02/06(火) 15:57:33
あ、そーいう解釈もあったな
>>312 とりあえず、
・ 入力値はHH:mm:ssに限定
・ キーは数字のみ受け付ける
という点を両立させてみた。
>>312 すいません、確かに見直すと意味分からないですね…
@では入力できる数字の範囲が時計に準じてる(秒だったら0〜59)機能と
Aの字数制限が設定されている機能を併せたモノを作りたい、という意味です
>>313 >"##:##:##"
のことでしょうか?
これはMaskFormatterクラスの任意の有効な数字を指定する#を使いましたので
文字化けではないです
多分@とかAの事を言ってるんだと思うぞ。>機種依存文字
そうなんですか
@とAは場所を示すためだけに付けたのですが、普通にコメントにしておけば良かったです
すみません
@やAはUnicodeに入っているからJavaで正しく扱えば問題は起きない
Javaは動いている環境デフォルトの文字コード→Unicodeへのマッピングをちゃんと持っている
仕事で使うときは、Windows-31Jとかを活用するんだよー
機種依存文字という名称は問題を正しく表していないので気をつけて〜
未だ、機種依存文字が・・・、と言ってるJava技術者は気をつけてね♥
# フォントにグリフが無いのはまた別の問題ね
# V2C使ってるオレは勝ち組!
>>318 お前は馬鹿か?このスレで使われてる文字セットは何なのか言ってみろ
>>318 多分Java関係無くて、BBSで使うなって事だと思うぞ。>機種依存文字使うなよー
後、
>>313の 「<== コレ 」も意図が伝わってないような気がする。
多分「ここに注目!」とか「こうすれば両立できる!」って事だと思うが。
>>310は理解してるのかな?
>>320 すいません
>>321さんの言うように勘違いしていました
>>313の部分を追加してみたのですが、変化が無いようです
2のように入力時に2桁ずつしか入力出来ないようにしたいのですが…
何度もすいません
>>319 Shift_JISといいつつWindows-31Jだと思う。
ちなみに、MacOSXでもWindowsでも、このスレの丸数字は普通に見えるよ。
SafariでもFirefoxでも大丈夫。
今、丸数字が見れない環境って何だろ?
>>325 そんな感じです!
あとWindowsの「日付と時刻のプロパティ」の時計のように
25時や63分のような数字を入力できない(キーを押しても表示されない)
ようにしたいのです
本当に説明下手ですいません
どんどん仕様が加えられていくな。
性質の悪いクライアントに当たった感じだ。
>>315の説明を解りやすくしようと思って書いたのですが…逆効果でしたかね…
>>328 仕様変更でなく最初からそういう機能が必要だったのなら
最初に依頼する時に分かりやすく説明してくれていればよかったけどね
一番いいのは問題文を自分で解釈して説明せずに原文のまま出すことだけど
口頭で伝えられたのでこんな解りにくい説明になってしまいましたが、もうちょっと推敲するべきでした
みなさんを混乱させてしまい申し訳ないです
332 :
あい:2007/02/07(水) 17:28:40
>>331 こ、これです!!
ありがとうございます!
付き合って下さった皆様方、本当にありがとうございました
そしてご迷惑をおかけしました
334 :
デフォルトの名無しさん:2007/02/08(木) 23:01:05
【 課題 】txtファイルに書かれた値(商品コード、工場コード)を読み取る→
その値からデータベースを検索→
結果をcsvファイルで出力。
txtファイル読み込みクラス、CSVファイル出力クラス、DB接続クラス、DB検索クラスは
それぞれ別ファイルで作成する。
[資料]
/*------DBテーブル構成-------------*/
★商品テーブル
*商品コード *商品
01 テレビ
02 ラジオ
03 掃除機
04 洗濯機
05 冷蔵庫
★生産工場
*工場コード *工場名
11 東京
12 神奈川
13 埼玉
14 千葉
15 茨城
【 形態 】1.Javaアプリケーション(main()で開始)
【 GUI 】4・制限なし
【 期限 】2月14日・午前10時
【 Ver 】1.5.0_09
【 補足 】課題内容の説明が不十分ですが、よろしくお願いいたします。
> 334
>【 補足 】課題内容の説明が不十分ですが、よろしくお願いいたします。
不十分だと思う課題の説明をこの【 補足 】の項でしてくれよ。。。
「よろしくお願いいたします」とかどーでもいーからさー。。
336 :
デフォルトの名無しさん:2007/02/09(金) 09:38:27
del パス名
で指定したファイルを削除するプログラムってどう作ればいいですか??
>>334 足りない情報を確認してみようか
1. DBを使うと書いているが、DBの種類(*1)はなんでもいいのか?
2. txtファイルに書かれた値(商品コード、工場コード)の形式(値区切り)は何か?
3. 2の値は各1種類以内なのか複数あるのか?
*1 一部DBには、属性名にバイト文字(日本語)が使えない場合がある
339 :
334:2007/02/09(金) 11:07:11
>335
>338
ご指摘ありがとうございます。
1、DBはAccessを使用
2、値区切りは「行区切り」
3、各値は1種類
です。
340 :
デフォルトの名無しさん:2007/02/09(金) 13:24:14
【 課題 】魚眼画像を平面画像(平面透視投影画像)に変換せよ。
【 形態 】1. Javaアプリケーション(main()で開始
【 GUI 】2. Swing
【 期限 】提出期限2/13なので12日位、11日だとかなり助かります。。
【 Ver 】java version "1.5.0_06"
【 補足 】丸投げです。。だいぶ厳しいのでよろしくお願いします。。
341 :
338:2007/02/09(金) 13:46:39
>>339 >1、DBはAccessを使用
( ゚д゚ )!? Access95買って以来VerUpしてないな・・・パスだなこりゃ
>>340 これは画像処理専門にしている方じゃないと厳しいね
Java画像処理専門技術者はかなり少ないと思うよ
前スレでも同じ内容上がっていたけど、みんな素通りだったから今回も無理じゃない
>>340 魚眼画像のサンプルと、画像変換の式(魚眼→平面画像の座標変換式)を提示すれば、
回答される期待値は上昇すると思われ。変換式はまさにテンプレの用語欄で説明するべきこと。
344 :
デフォルトの名無しさん:2007/02/09(金) 15:39:40
>>344 これOpenCV?
そのまんまじゃ書き換えられないから、Canvasとかに書き出してGraphics取り出せば。
java2dとかでググってみて。
>>346 全部書くの面倒だからヒントだけ。
st.nextToken() をもう一回やると "write" の次の単語が取り出せるので、
それに対して stat を行う。
stat が Linux の stat コマンドのことだとすると、Runtime.exec() で
stat コマンドを実行してしまった方が楽だ。あとはその出力を拾って
out.print() に渡すだけ。
【 課題 】繰り返し二乗法
【 形態 】1. Javaアプリケーション(main()で開始)/
【 期限 】2/11
【 Ver 】java version "1.5.0_10"
【 用語 】
例)325^30(mod 23)の計算。
30を2進数表示 30=11110(2)
325^2,325^4,325^8,325^16を計算
325^2 =105625 ≡9
325^4 ≡92 =81 ≡12
325^8 ≡122 =144 ≡6
325^16 ≡62 =36 ≡13
325^30mod23を計算
325^30 =325^16×325^8×325^4×325^2
≡13×6×12×9
=78×108
≡9×16
=144
≡6
【 補足 】用語にあるような動作をして結果を出力するプログラムを書けというのが課題です。
宜しくお願いします。
>>348 public class A {
public static void main(String[] args) {
long n = 325;
long e = 30;
long m = 23;
System.out.println(n + "^" + e + "(mod " + m + ") = " + java.math.BigInteger.valueOf(n).modPow(java.math.BigInteger.valueOf(e), java.math.BigInteger.valueOf(m)));
/*System.out.println(n + "^" + e + "(mod " + m + ") = " + modPow(n, e, m));*/
}
/*private static long modPow(long n, long e, long m) {
long p = n % m;
long q = 1;
while (e > 0) {
if (e % 2 != 0) {
q *= p;
q %= m;
}
e /= 2;
p *= p;
p %= m;
}
return q;
}*/
}
例示された325の冪乗計算の途中がおかしいような。結果は合っているけど。
325^a(mod m) = ((325^(a/2)(mod m))^2)(mod m)を利用。例えば、23を法として、325≡3、325^2≡3*3≡9、325^4≡9*9≡12、...
ビットが立ってる桁も順番に掛け算するたびにmodを求めている。
>>347 ありがとうございます、少し考えてみます。
353 :
デフォルトの名無しさん:2007/02/10(土) 21:21:44
【 課題 】五目並べの盤面とPASSボタン、RESETボタンを作成せよ。(ボタンはSwingを使って作成すること)
【 形態 】2. Applet
【 GUI 】2. Swing
【 期限 】2007/02/11
【 Ver 】java version "1.5.0_04"
【 補足 】盤面はできているのですがマウスをボタンのところに持っていかないとボタンが表示しません。
できればアプレットを立ち上げたと同時にボタンも表示したいです。
途中までのソースを
>>353に貼ります。
354 :
353:2007/02/10(土) 21:24:00
間違いました354と355と356に貼ります
/*
<applet code="Gomoku_swing_2.class" width=400 height=380>
</applet>
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Gomoku_swing_2 extends JApplet implements MouseListener,ActionListener{
int n = 8; //盤面のマス目
int num = 9; //石を置く場所のマス目
int stone[] = new int[81]; //石の状況(0:黒、1:白、2:なし)
int square = 16; //マス目の幅
int turn; //順番(0:黒、1:白)
int margin = 120; //端まで行かないように余裕をとる
int delt = 5; //余白
int rad = 10; //石の直径
int num_b; //黒石の数
int num_w; //白石の数
boolean place; //石が置けるかどうか
boolean flag; //ゲームが終了かどうか
int you; //ユーザーの石(0:黒、1:白)
boolean win = false; //前のゲームは勝ちかどうか
Dimension d; //表示領域
Container cnt = getContentPane();
JButton BT[] = new JButton[2];
355 :
353:2007/02/10(土) 21:24:33
public void init(){
int i,j;
d = getSize();
for(i=0;i<81;i++){
stone[i]=2;
}
stone[0] = 0;
stone[8] = 1;
stone[72]= 1;
stone[80]= 0;
//ボタンを配置
BT[0] = new JButton("PASS");
BT[1] = new JButton("RESET");
cnt.setLayout(new BorderLayout());
cnt.add(BT[0],BorderLayout.SOUTH);
cnt.add(BT[1],BorderLayout.NORTH);
BT[0].addActionListener(this);
BT[1].addActionListener(this);
addMouseListener(this);
}
356 :
353:2007/02/10(土) 21:25:59
public void paint(Graphics g){
int i,j;//カウンタ
int k; //マスの番号
int xx,yy;//マスの座標
//バックを黒に塗る
g.setColor(Color.red);
g.fillRect(0,0,d.width,d.height);
//盤面の描画
g.setColor(Color.white);
g.fillRect(margin,margin,n*square,n*square);
g.setColor(Color.black);
for(i=0;i<num;i++){
g.drawLine(i*square+margin,margin,i*square+margin,n*square+margin);
g.drawLine(margin,i*square+margin,n*square+margin,i*square+margin);
}
357 :
353:2007/02/10(土) 21:28:08
//石の描画
for(i=0;i<num;i++){
yy = i * square + margin;
for(j=0;j<num;j++){
xx = j * square + margin;
k = i * num + j;
if(stone[k] == 0){
g.setColor(Color.black);
g.fillOval(xx-delt,yy-delt,rad,rad);
}
if(stone[k] == 1){
g.setColor(Color.white);
g.fillOval(xx-delt,yy-delt,rad,rad);
}
}
}
}
}
>353-357
init()でボタンを描画した後に、paint(Graphics)で背景を赤で上書きしてるから、
ボタンが見えなくなっているのが原因。
対症療法的でいいのなら
g.setColor(Color.red);
g.fillRect(0, 0, d.width, d.height);
の後ろに
BT[0].paintImmediately(0, 0, BT[0].getWidth(), BT[0].getHeight());
BT[1].paintImmediately(0, 0, BT[1].getWidth(), BT[1].getHeight());
と書けばいい。
できればコンパイルできることを確認してからソースを貼ってくれ。
長くなりそうならうpろだ使えば良いし。
359 :
353:2007/02/10(土) 22:05:39
>>358さま
ありがとうございます。
そして申し訳ございませんでした。
360 :
353:2007/02/10(土) 22:13:28
>>358さま
ところで対症療法的と書きましたが、本来は別の方法を使うのですか?
361 :
358:2007/02/10(土) 22:25:53
>360
paintImmediately()ってあくまでも簡易的なやり方だと個人的には思ってて
ちゃんとやるなら設計から見直した方が良いでしょ、ってこと。
今回のだと、背景を描画してからボタンを描画すればわざわざ緊急描画する必要ないし。
362 :
デフォルトの名無しさん:2007/02/11(日) 00:13:55
>>345 CV・・・ですね!アドバイスありがたなのですが・・・わかんないっす↓
363 :
348:2007/02/11(日) 00:27:19
>>351 解答ありがとうございます。
ただ私事で申し訳ないのですが、親類が交通事故に遭いドタドタしてしまって動作が確認できていません。
提出期限も延ばしていただいたので、明日確認したいと思っています
あと少し気になったのですが、コメントアウトになっているのはどういう意味なんでしょうか?
>>363 もちろんシャレ。
コメントアウトしている部分(二つ目のprintlnとmodPowメソッド)の方が本質部分。
コメントアウトされていない一つ目のprintlnの方は、答え合わせ用に入れてある。
課題に必要ではないと思うのでこっちは消して、コメントアウトされた方を復活して。
課題では求められていなさそうなのでBigInteger#modPowと違って負の指数には非対応。
【 課題 】WEB住所録
【 形態 】WEBアプリケーション
【 期限 】2/15
【 Ver 】java version "1.5.0_10"
【 用語 】
JSP、サーブレット、JAVAビーンズをつかって、住所、氏名、電話番号を登録できるWEB住所録を作成せよ
【補足 】サーバーはトムキャットを使いますが、
どんなサーバーでも動く簡単なもので結構です。
よろしくお願いします
>365
2点確認したいことが。
1. 住所録というからには登録だけじゃなくて、その情報を閲覧できた方がいいんだけど
そこまでは求められてますか?
2. データベースは使わなくていいの?
367 :
デフォルトの名無しさん:2007/02/11(日) 14:11:38
>>365 ちょっと待てw
tomcatはサーブレットコンテナとかのインフラだろうがサーバーはどうせapacheだろ。
そこら辺の曖昧性を解決した上で訳の分からん事言い出す前に
>>366を埋めろw
#ところで最近cern httpd見ないね最近のNCSA基いapacheは高速でセキュアなの?
期限 レス番号
---------------------------
2/12
>>340 (C++版サンプルソースあり)
2/14
>>334 (Access95はあるが、CD-ROMどっかいった)
2/15
>>365 (>366氏がハリキッテおります)
>>367 www パソコン
----------------------
cern httpd ネクスト PC
apache IBM PC
IIS アップル PC
370 :
365:2007/02/11(日) 16:18:29
>>366 閲覧もお願いします。
データベースは使わなくて結構です。
本当に簡単なものでいいので…
>>367 スイマセン…少し勘違いしてました
371 :
デフォルトの名無しさん:2007/02/11(日) 19:35:32
初心者すぎてすれ違いかもしれませんが、お願いします
【 課題 】
/* 誕生日ごとの正座を表示する */
import java.io.*;
public class Horoscope2 {
public static void main(String[] args) throws IOException{
BufferedReader r =
new BufferedReader(new InputStreamReader(System.in));
System.out.println("何月生まれですか?");
String s1 = r.readLine();
int month = Integer.parseInt(s1); /* 月 */
System.out.println("何日生まれですか?");
String s2 = r.readLine();
int day = Integer.parseInt(s2); /* 日 */
switch(month){ /* 生まれた月をチェックする */
case 1:
if(day >=1 && day <=19){ /* 生まれた日をチェックする */
System.out.println("あなたの星座は山羊座です。");
System.out.println("Personality.YAGI");
}
else{
System.out.println("あなたの星座は水瓶座です。");
System.out.println("Personality.MIZUGAME");
}
break;
372 :
デフォルトの名無しさん:2007/02/11(日) 19:36:49
続き
以下case12まで省略
case12;
if(day >=1 && day <=19){ /* 生まれた日をチェックする */
System.out.println("あなたの星座は山羊座です。");
System.out.println("Personality.YAGI");
}
else{
System.out.println("あなたの星座は水瓶座です。");
System.out.println("Personality.MIZUGAME");
}
break;
のようなプログラムのとき実行した時
「Personality.******」の部分に文章が表示されるように
するため
class Personality{
static String ****** = "文章"; ←case1に対応
以下省略
static String ****** = "文章"; ←case12に対応
}
のようなPersonalityのクラスにまとめて簡単にして
文章を呼び出そうとしたんですが
実際実行すると
「Personality.******」と表示されて
本当は「文章」させたかったのにうまく出来なくて??困っています
わかりにくくてすみません
というか私自身何もわからないので・・・
>>396 ああ、IBM-PCがまともになった揚げ句ネクストが経営不振になった訳ね・・・
何かNeXT-cubeの上でWWWじゃなくてwww走らせたくなってきたじゃねーかバーローw
#Stay hungry, stay foolish.
371
○ System.out.println(Personality.MIZUGAME);
× System.out.println("Personality.MIZUGAME");
↑ダブルクォートはいらない。
あと
>>1を参考に環境を書きましょう。
375 :
sage:2007/02/11(日) 21:27:24
>>374 環境はeclipeでした、以後気をつけます。
どうもありがとうございました。
テンプレ無視するやつは放っておこうよ
質問スレとの棲み分けもあるし
期限 レス番号
---------------------------
2/12
>>340 2/14
>>334 >>373 新一 = コナンなんだぜwww
379 :
365:2007/02/12(月) 00:43:00
>>377 ありがとうございます!
少し質問なんですが、このWEBアプリケーションを実行するフォルダの構造はどのようにすればいいのでしょうか?
ほとんど理解してなくてすみません・・・
>>364 動作確認させて頂きました、ありがとうございます
ただ、値を大きくして実行すると(4〜5桁以上)正確な答えが出力されないのは何故なんでしょうか?
多分longintの範囲内に収まってると思うのですが…
プログラム11行目のqが1のままreturnされてしまうみたいです
無知で申し訳ありません
>>380 どういう値を使うと誤答する?
n = 1234567;
e = 8901234;
m = 5678901;
とかでも問題なかったけど。
q*=p;とp*=p;でオーバーフローの可能性があり、pとqは上限をmで抑えられている。
longは18桁までのあり得る整数を全て表現できたと記憶してるので、
mが9桁までなら計算の途中でオーバーフローはしないと思う。
383 :
377:2007/02/12(月) 07:36:04
>379
Tomcat入れてるんだったらサンプルアプリを参考にすれば?
申し訳ないがそこまで面倒見れない。
自分の環境にtomcat入れてるのとは違うかもしれないからフォロー入れとくとIT厨な奴らがそこらへんで自身満々に解説してるからググってみれば?
IBMかどっかもapach+tomcatでwebアプリ環境構築の解説をしてた気がする。
385 :
365:2007/02/12(月) 20:59:34
調子に乗ってすみません。
自分のPCにトムキャット入っていないので今日学校で実行してきました。
本当にありがとうございました
期限 レス番号
---------------------------
2/14
>>334
387 :
デフォルトの名無しさん:2007/02/13(火) 01:51:03
次のプログラムがあります これにEMPLOYEEクラスを定義して以下の実行結果になるようにしてください。DESCRIPTIONメソッドはSTATICメソッドです。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
this is program enployee date . have fun!
no :1
name :tanaka
no :0
name :no name
no :5
name :yamada
388 :
デフォルトの名無しさん:2007/02/13(火) 01:52:06
下記に追加して完成しなさい。
class Person{
public static void main(String args[]{
Employee.description();
system.out.println();
Employee emp1= new Employee(1, "tanaka");
emp1.print();
System.out.println();
Employee emp2 = new Employee();
emp2.print();
System.out.println();
emp2.changeDate(5, "yamada")
emp2.print();
}}
class Employee{
private int no;
private String name;
static void description(){
【 形態 】1. Javaアプリケーション
【 GUI 】GUIではありません。
【 期限 】今日の朝15時までです。
【 Ver 】java version "1.5.0_04"
【 用語 】なしです。
【 補足 】いま調べながら、勉強しています。よろしくおねがいします。
>>387-388Employeeを↓に変更する。
class Employee {
private int no;
private String name;
//デフォルトコンストラクタ
Employee() {
this.no = 0;
this.name = "no name";
}
//コンストラクタ
Employee(int pNo, String pName) {
this.no = pNo;
this.name = pName;
}
static void description() {
System.out.print("this is program enployee date . have fun!");
}
void changeDate(int pNo, String pName) {
this.no = pNo;
this.name = pName;
}
void print() {
System.out.println("no :" + this.no);
System.out.print("name :" + this.name);
}
}
390 :
デフォルトの名無しさん:2007/02/13(火) 03:35:41
>>389ありがとうございました!!
391 :
387:2007/02/13(火) 10:26:43
課題:コマンドプロンプトの
コマンド:dir、cd、del、mkdir、ren、type、exit
上記を実行できるプログラムを作成せよ。
一応作ってみたんですが、まったくうまくいきません・・・
お手本等作っていただけたら幸いです。
期限は今日の夕方。
JAVAで、main()で始まります。
Runtime.getRuntime().exec("dir")
Runtime.getRuntime().exec("cd")
Runtime.getRuntime().exec("del")
(略
393 :
387:2007/02/13(火) 11:21:53
Runtimeですか
情報ありがとうございます。
394 :
387:2007/02/13(火) 11:45:04
391ですが、java.io.IOException: CreateProcess: dir error=2
at java.lang.Win32Process.create(Native Method)
at java.lang.Win32Process.<init>(Win32Process.java:67)
at java.lang.Runtime.execInternal(Native Method)
at java.lang.Runtime.exec(Runtime.java:566)
at java.lang.Runtime.exec(Runtime.java:428)
at java.lang.Runtime.exec(Runtime.java:364)
at java.lang.Runtime.exec(Runtime.java:326)
at pack.pack2.hghghghg.main(hghghghg.java:22)
Exception in thread "main"
このエラーはどういった意味でしょうか。
395 :
デフォルトの名無しさん:2007/02/13(火) 12:02:18
>>394 dirは内部コマンドなため、Runtimeでは直接実行できないので、
cmd /c dir
のように実行する必要あり。
>>387 頭を使った形跡が見えないしょーもない質問だったからネタで答えたら、本気でやったのか。
dir とか del とかは cmd.exe 組み込みだからファイルとしては存在しねーよ。
"cmd /c dir" とかやっとけ。 つーかこれ、javaの話じゃねーけどな。
で、恐らくその課題は、こーいうことをやれと言っているのではない。
やっることjava殆ど関係ねーし
>>391 いまこそjdk6の真価が問われる時!
つrhino
てかjrunscriptでtype以外実装済み。
こう言うことを環境非依存で手軽にする為のscripting framework apiだ
作法に従ってエンジン呼び出しちまいなYO!
#マジレスするとテンプレ埋めてから頭使え
勉強がてらマジでscripting+rhinoで書いてやろうかと思ったが夕方までなのね・・・orz
#LiveConnectでコマンド実装してJSCompiler通してmainでスクリプトエンジン取得してdefineClass()しちゃダメかね?w
ま、アレだ。
Fileクラスのjavadocでも読めと。
質問スレみたいな流れだな
最近
だったら少なくともテンプレを無視するやつは相手にするなよ
精々質問スレへの誘導くらいにしておかないといくらでもつけあがるぞ
>>397 exitが入ってる段階で、それは使うのかな、と思ったけどな。
>>402 それは質問スレに迷惑が・・・・・
>>403 >>397じゃないが俺も始めはそう思ったがコマンド実行って時点で少なくとも
インタプリタ書く訳だからそのインタプリタの後始末やって
System#exit(int)呼び出せって事だと解釈したけど。
cmd呼び出したんじゃwin以外無視になる。
Javaやってそれは幼稚過ぎる。
最近どうも講師が馬鹿なのか生徒が話理解出来てないだけなのか
判断出来ないレスが多くてどうも書きたいと思うコードがないな。不明点が多過ぎる。
exitなんてコマンドがあるからアプレットじゃないのは分かるが・・・
>>404 いや、しかし、dirって、思いっきりwindowsじゃ・・・・
あと、exitは、思うにJavaのexitではないと思う・・・
問題のはじめに「コマンドプロンプトの」って付いてるし
講師のレベルに関して疑問がある点については同意。
その講師に合わせられるかが問題かもw
なんでみんなそんなに親切なんだ
>>405 >dir、cd、del、mkdir、ren、type、exit
がメインで”コマンドプロンプト”はそれに掛かる説明的な修飾だと思った。
それかDOS窓で実行出来るって前提が暗示されててCUIで書けって事かと。
>上記を実行できるプログラムを作成せよ。
の部分は同じ動作をしろって解釈したな。
でなきゃバッチやシェルスクリプト書けば良いだけだし。
だって、普段鯖側がどうとか言ってるくせに鯖すら用意しねえ専門講師がUnix系コマンドが直に出てくるとは思えんし、
winはOSがいい加減なマウント・アンマウントを内部でやってるだけなのにlinux教えるとマウントUZEE!とか言う生徒にunixの話は分からんだろうし。
つーか専門なんてマイコンが高くて手が出せなかった時代の遺物だぞ?あの時代ならBASIC+アセンブリだから技術も(ry)
>dir、cd、del、mkdir、ren、type、exit
この程度ならIO習ってりゃjava.io.Fileのjavadoc読みながら出来るから
>>391が本当にさわりしか習ってないならプロセス呼び出し、
次段階のIOの締め位まで習ってるなら自分で入力拾えって事でFAだろうな。
まあ、RPNの話じゃないから言語インタプリタ実装は絶対にないだろう。
ここまで情報がないと消去法しかない訳でw
生徒から見れば仕様も実装も自分でやるからその為にはまず、
お前の頭ん中見せろ!って思うだろうな講師に。そうやって現実を知って絶望してる奴も居るだろうし。
PLとweb関係の講師は酷いの多いぞ。
↑
長い言い訳にしか見えんが・・・
>>407も教師向きではないな・・・
昔の自慢話をするタイプ
まぁ、ともかく・・・
exitをFileで実現する方法・・・オレに教えてください><
new java.io.File("cmd.exe"){void exit(){try{new ProcessBuilder(getName(),"/k","exit").start().waitFor();}catch(Exception e){}}}.exit();
つーかさ、コマンドを実行しろって課題なの?
同じ動作をjavaで実現しろって課題なの?
>>410 > 実行できるプログラムを作成せよ
ってことだから字義通りなら実行できればそれでいいと採れる。
でもまあ同じ動作をするものをWindowsのコマンドを使わずにJavaで実現しろってことだろうね。
del *.*の代わりにjava del *.*とするとか。
dir、del、mkdir、ren、type
に関してはFileクラスで何とかなりそうだけど、
cd、exit
はシェルをJavaで作って、その上で動作するコマンドとして実装しないとだめな気が。
> java SimpleCmd
$ cd hoge
$ del *.*
$ exit
>
みたいな。
どっちにしても、テンプレも埋めてないし、期限も切れてるし、議論もそろそろ収束させるべきかと。
412 :
411:2007/02/14(水) 18:13:13
typeはFileというよりストリームだね、使うのは。
>>411 WSHが屑だからって何故かJavaで実装しちゃった代替シェルがあったな・・・
て言うか質問者が投げっ放しで放置プレイかますから一向に話が進まないし
まだ宿題の時期じゃないから投下されたネタで話すしかないよなぁ
【 課題 】
以下のような賭をすることを考えます.
開始時の所持金をA円とします.
目標とする金額をB円とします.
さいころを投げて偶数の場合は1円を獲得,奇数の場合は1円を失います.
所持金が目標額のB円に到達すれば賭は終了,
また所持金が0になった場合は破産で終了とします.
数学的な考察をすると,この賭の期待値はA円となります.
つまり,何回もこの賭を続けていると,成功したり破産したりしますが,
平均すると元の所持金しか得られないということです.
また,勝ち負けまでに投げるさいころの回数の平均は,(B-A)×Aとなります.
たとえば,開始時の所持金をA=8円,目標額をB=10円とすると,
勝つ確率は8割,1ゲームあたり平均すると(10-8)×8=16回,
さいころを投げることになります.
このことは,賭をしても儲からない,ことを意味していますね.
このことを確かめるプログラムを作成しなさい.
415 :
414:2007/02/15(木) 01:44:04
条件
メソッド
以下のメソッドを作成すること.
void startGame() ゲームを開始し,指定回数繰り返す
void doOneGame() 破産,目標額に達するまでの1ゲームを実行する
int getNumber() キーボードから数値を読み込むメソッド
int rollDice() さいころをふるメソッド
void main() main
先頭部分
プログラムの先頭部分は以下のようにすること.
先頭のコメント部分は指示に応じて書き換えること.
/*
プログラムの簡単な説明を記述する
作成者指名および作成日付を書く
*/
import java.io.*;
public class MoneyGame {
// 変数を宣言,クラス全体で有効,オブジェクトの状態を表す
int targetMoney; // 目標額
int currentMoney; // 現在の所持金
int startMoney; // 最初の所持金
int totalGame; // ゲームの回数
int totalDice; // 全体で何回さいころをなげたか
int totalWin; // 勝ったゲーム数
BufferedReader br; // キーボードからの入力用
void startGame(){
416 :
414:2007/02/15(木) 01:44:43
入出力例
入力および出力例は以下を参考にすること.
$ java MoneyGame
さいころゲームスタート
目標額を入力==> 10
最初の所持金を入力==> 8
何回繰り返しますか==> 1000
◎◎2回で目標額を達成しました!!
◎◎2回で目標額を達成しました!!
◎◎4回で目標額を達成しました!!
◎◎4回で目標額を達成しました!!
●●18回で破産しました!!
◎◎18回で目標額を達成しました!!
◎◎20回で目標額を達成しました!!
略
1ゲームあたりさいころを投げた回数の平均:16.562
勝利した割合:0.789
417 :
414:2007/02/15(木) 01:49:34
プログラムの書き方
インデントに注意すること.
わかりやすいコメントを書くこと.
入力のエラーなどをチェックし,適切なメッセージを出力すること.
たとえば負の数は入力できない,最初の所持金と目標額の大小関係など.
プログラムを使う人の立場になって,工夫すること.たとえば,
メッセージをわかりやすく興味を引くようにする.
入力値が間違っていたらすぐ終了しないで,適切な値が入力されるまで,
入力受付を繰り返す.
終了時に,もう一度ゲームするかを問い合わせる.
【 形態 】 Javaアプリケーション
【 期限 】2/20
【 Ver 】javac 1.5.0_10
【 補足 】最早何から手を付けていいのかさえわかりません(´・ω・`)
一応javaの課題なのですが、ここがスレ違いでしたら申し訳ないです。
すれ立てるまでもない質問・Java質問スレッドと迷ったのですが。
差し支えなければしかるべきところを教えてください。
【 課題 】
大学のある学科の授業時間割のクラス図を作れ。ただし次の要求条件を満たすものとする。
(a) この学科は複数の学年から構成されている
(b) 祝祭日以外の月曜から金曜の一日は時限に分割される。
(c) 各学年にはその学期に行うべき授業科目が決まっている。
(d) 各授業科目には担当の教官が決まっている。
(e) 各授業にはそれを受講する学生の人数に合った大きさの教室を割り当てる必要がある。
(f) 教官によっては何らかの都合で授業を行えない時限があらかじめわかっているので、
それと競合しないように時間割を組まなければならない。
(g) プログラミング実習を行う授業は計算機室で行う。したがってこの種の授業は競合してはならない。
【 期限 】2月15日夜
よろしくお願いします。
>>418 これは、Java自体関係ないぞ
クラス図 = UMLあたりだろ
板違い
>>414 その課題決定的に間違ってるのは事象が賭けじゃなくて日本の富くじって事だな。
賭け(パチンコやカジノ)は元々期待値が変動するかルール理解してプレイすれば操作可能だ。
しかも課題は長期的に見れば所持金が±0になるのを証明しろって問題なのに実際にやってることはただのシミュレート。
更にPL関係なく中学の証明の問題。
これここでやる事じゃないと思うんだけど・・・Javaで実装しろって課題なら何でもありなの?>>all
#因みに日本の宝くじの期待値は常に掛け金の48%固定だから。証明も糞もなかったりする。
>>421 このことを証明しなさいとは言っていないわけで、
モンテカルロ法で確かめてみなさいってことでは?
>>417の注意書きからすると数学の証明でなく、
プログラムを書くことを主な目的にしている気がする。
Javaでしか実装できない問題というのはあまり思いつかないので、
Javaで書けという課題は基本的にJavaの課題と言ってもいいんじゃないかな。
もちろん、やるやらないは自由だし、何をもってJavaの課題とするかは個人の判断だと思う。
アップローダにあげればよさそうな長文を何レスにもわたって書いている段階で俺はパスしているが。
>>422 なるほど、逆にJavaじゃ物理乱数吐けないもんな。
>>414 >>何から手を付けていいのかさえわかりません
課題に乱数というキーワード・やってる事が明らかにシミュレートと来たらモンテカルロ法しかないぞ。
1)ユーザーがとんでもない繰り返し回数入力しないように制限を設ける。この場合はMT法だとウマーw
2)制限を設けずに準乱数を使う
のどちらかだと講師感激だなw
どっちにしてもうpろだ使おうぜ?
#知り合いとカルドセプト・サーガのバグの話で上位ビットとろうが下位ビットとろうが
疑似乱数なんて所詮残化式って言い放ったら揉めた・・・
何か間違えたのかと思ったらzanになってたのねw一発で変換できなかったのでzen・ka・sikiて打ったつもりだった・・・
428 :
デフォルトの名無しさん:2007/02/18(日) 03:14:53
会社の研修で課題を出されており、困っています。
どなたか、教えていただけると有難いです。
[課題]
入力した整数値をもとに1から入力した値の合計を求めて出力するプログラムを作成
*整数値以外(文字含)を入力した場合はメッセージを出力し、再度、整数値の入力を求めること。
*合計の出力の後に処理を終了するかメッセージを表示し、入力を求めること。
(「1」が入力されたら処理を終了し、「1」以外が入力されたら再度、整数値の入力を求めること。)
*入力される整数値は、6ケタまでとする。それ以上は、エラーメッセージを表示し、再度入力を求めること。
という上記課題を、会社の研修で渡されました。
try〜catchを使わず、mainメソッドのみでソースをつくることは可能でしょうか?
私、Javaの研修を始めて2週間程度でして、全然わかっていません・・・。
何をどうすればどうなるかも良く分からないので、出来れば詳しい解説等教えていただけると幸いです。
宜しく御願いします。
ここは、ソフトウェア開発に携わらないけど
単位の関係上しかたがなく履修した学生専用(嘘)です。
それ以外(特に仕事上)の方は、会社や自分のためになりません。
自力で頑張りましょう。
(クグってもわからないと事を質問スレで聞くことは何の問題もありません)
>>430 マルチなのか、429を見て行ったのか微妙だが、そのまま貼り付けてるから99%マルチ乙
しかし、くぐってもわからないことを質問スレで聞いても良いとはあるけど、全てかよ
Javaの解説サイトなんて山ほどあるだろうに
研修の仕方に問題があるのか、研修を受ける人間の頭に問題があるのか。
どちらだとしても理解できない旨を素直に講師に告げるべき。
理解させるための研修なんだから、まともな研修プログラムならちゃんと対応してくれる。
2ちゃんねるで俄仕込みの情報をもらって研修で格好付けようとしても
>>428も会社も誰も得をしない。
433 :
デフォルトの名無しさん:2007/02/18(日) 14:26:01
428です。
すいませんでした。趣旨違いだったようです。
やはり、自力でということなんですね・・・
会社の研修は、講師がいません・・・
DVDの必要なところを見た後、今回の課題を渡されました。
プログラムを始めて学ぶ初心者ですが、研修には疑問を持つばかりです・・・
お忙しいところ、すいませんでした。
俺なら時給2000円くらいで雇われてやるのに
>>433 履修の選択を間違ったにせよ必修だったにせよ、イヤイヤやってる学生ならいざ知らず、
これからプログラミングで食ってく気なら、ある程度のことは自力で解決できる力を養っておいた方がいいよ。
研修ビデオだけから学習するんじゃなく、書籍を読んだりネット検索したり、自分から積極的に知識を仕入れて技術を磨かないと。
それとも主業務は別のところにあってプログラミングはメインじゃないのかな。それだとちょっと同情するかも。
436 :
デフォルトの名無しさん:2007/02/18(日) 22:14:48
428&433です。
一応、書籍の購入し、ネットでも自習は行っています。
ただ、今回の課題のみどうしても分からず、つい書込みをしてしまいました。
すいませんでした。
研修終了後の業務は、開発になるのか別の業務なのかは決まっていません・・・
研修は2月一杯で終了予定です・・・
437 :
デフォルトの名無しさん:2007/02/18(日) 22:27:45
428さんへ
僕もわかりません。
割と良くあるのかもしれないがいい加減な会社だな
DVDで研修・・・ありえねー、発声練習ビデオじゃないんだから(^ω^;)
うちが初めて入社した会社は、研修期間約5ヶ月ありましたよ。
メインはJavaだけど、その他にHTML・CSS・JavaScript・SQLなどを研修したな〜
Javaも単体・アプレット・JSP・Servlet・フレームワーク(Struts)などがあった。
・
・
・
まぁ、これだけやっても初めての業務にはあまり役に立たなかったんだけどね><
3キャリア対応携帯サイト開発だったので・・・
440 :
デフォルトの名無しさん:2007/02/18(日) 23:58:29
428です。
DVDは、誰が見てもこれで覚えろと言うのは無理だとよく言います・・・
本社にあったのを、コピーして送ってもらった物だったみたいです・・・
・・・かなりいい加減な会社と言えるのでしょうか?・・・
442 :
デフォルトの名無しさん:2007/02/19(月) 12:03:16
>>441様
428&440です。
ありがとうございます。
紹介していただいたサイト等を見ながら独学でがんばってみます。
もし私などが、質問等をしたい場合にはどの板に書き込みをすればよいのでしょうか?
444 :
デフォルトの名無しさん:2007/02/19(月) 14:47:53
428です。
すいませんでした。
何か質問したいことがあったら、質問スレに行きます。
どうもありがとうございました。
>>444 どんな質問が来るか、wktkしながら待ってるよ。
入社したヤツに一律最低限覚えさせたい頭の無い上が決めた研修なんだろうな。
応対を見ている限りどう見ても、開発より接客向き。
ただ、開発現場の苦労は知っておいて欲しい。
それだけは学んでいただければ研修の意味はあったと・・・・
>441@ITのJavaTipsがいいね
wikiつくろうかな
いつの間にか雰囲気がスレタイの「Java の宿題ここで答えます」から
「プロにならない方の Java の宿題ここで答えます」になりつつある。。。
いゃ、良いことだと思うけどね
450 :
デフォルトの名無しさん:2007/02/20(火) 20:51:18
提出期限は2/28です。お願いします、まったく分かりません。
問題数は?
_(数字をキーボードから入力できるように)
問題番号1
5×6=?(1〜9のランダムな数字の掛け算)
答えは?
30(数字をキーボードから入力できるように)
正解
問題番号2
1×9=?
8(数字をキーボードから入力できるように)
間違い
・
・
・
・
問題の個数は_個です。
正しかったのは 〜個です
正解率は〜%でした。 というプログラムです。
>>450 潔く諦めろ。
↑
ちゃんと読めるか? もし読めないならなおのことスッパリ諦めなさい。
454 :
デフォルトの名無しさん:2007/02/21(水) 01:23:01
「ルール無視は回答無視の刑」だって〜笑える
自分の力でやったわ。あんたの力をかりなくて本当に良かったわ〜
454は、>1読まない = 説明もろくに読まないで、文句を言う低レベル人間でFA
正しくは
能力不足につき回答不能のときは解答無視の刑
です
458 :
デフォルトの名無しさん:2007/02/21(水) 05:26:28
最近このスレ馬鹿ばっかだねw
一遍、さらしてみる?(AAry
それじゃまるで以前は賢かったみたいじゃないか
このスレ、閉鎖でいいんじゃねw
さらに正しくは、
1. プログラム能力不足につき解答不能で回答無視
2. プログラム能力はあるが、アホくさいので回答無視
3. プログラム能力はあるが、>1無視は回答しない ←今回は、コレに該当
プログラムで飯食う方は、ここ利用しないし、して欲しくもない。
現状、しかたがなく単位履修した学生のためにあるような感じになっている。
この前に現れた、初代スレ立て主の主旨とだいぶ変わってきてるし、閉鎖でいいと思うだが・・・
462 :
デフォルトの名無しさん:2007/02/21(水) 10:53:52
閉鎖、閉鎖!!
初代スレ立て主の主旨とか
スレ立てただけで支配者気取りかよ
>>463 あなたは何に怒ってるんでしょうか?
この前現れた初代スレ立て主の書き込み見てきましたが、
支配者気取りな書き込みなんてしていませんよ。
呆れてるんだお
スレ立て人間の主旨と違うから閉鎖とかいう発想にw
スレ立てた人の主旨なんてどうでもいいけど、
実際、学生春休みだから宿題投稿ない時点で、閉鎖状態なのがワロス
>>465 発想は、個人それぞれ
その発想に対する意見も、個人それぞれ
ループするので、この話題は終了にしないか
そもそも宿題をやってあげること自体が本人のためにならないんじゃないか?
と、正論を書いてみるテスト。
最近このスレ需要と供給が一致してないよ。
というよりターゲット層外してるというか。
勿論需要は回答者ね。
ゲームとサーバーサイドはこの板苦手じゃね?
特にJavaでゲームは普通やらんし、Javaでサーバーサイドって職グラマだろうし。
JavaゲーってたらCPだろうけどJ2MEになるしな・・・
最近は良く同人連中がCPに流れてるけど元は
ツクールかNスク・吉里吉里使ってた連中だから専門外だし。
需要も供給もズレてるね。
#
>>1無視と情報小出しは止めようぜ?
後は丸投げと投げっぱなしの違いが理解出来る奴だけレスしろって
そろそろテンプレ入れた方がよくね?
それか神がかったエスパー常駐の必要があると思うんだがw
なーなー誰か過去ログ全部保存してるやついね?
勉強したいんだが
471 :
デフォルトの名無しさん:2007/02/21(水) 19:02:12
閉鎖の声が上がっていますが、閉鎖しないで下さい。
私は、何度かこのスレで質問したことがあり、
そのおかげで自力では解決できなかった問題も解決できました。
初心者の場合は、プログラミングに悩むことも多いと思います。
みなさんの高い能力で彼らの後押しをしてあげて下さい。
そんな自作自演には乗りません
>>469 ゲームは苦手(そもそも作る事がないから知識ゼロ)だが、
サーバーサイドは、問題ないお
J2MEも、3D系以外はなんとかできるお
Java の宿題ここで答えます
改め
変態回答者がズバリ言うわよ
>>474 変態1号ですw
世界名作劇場 レ・ミゼラブル 少女コゼットを よ ろ し く !!
476 :
475:2007/02/21(水) 20:19:52
今日は放送日ではありません
>>471 そういう用途なら初心者質問スレでいいんじゃない?
このスレが無くなれば、そういう受け皿にもなるよ・・・
丸投げするヤツは、排除されるだろうけど
>>470 ●持ってるから落とせないことはないけど、数が多すぎて面倒。
みみずん検索あたりで探せない?
それでどうしても抜けてるとこがあるなら補完してもいいよ。
480 :
デフォルトの名無しさん:2007/02/22(木) 20:17:05
突然すみません。お願いしたいものがあります
【 課題 】Javaなどを用いて、クーンズ(coons)の1次曲面を表現せよ
【 形態 】Javaアプリケーション(曲面が表現できてれば何でもいいらしいです
【 期限 】今週中。どんなに遅くとも週明けまでです
【 Ver 】実行できませんでした
【 用語 】クーンズのパッチ:クーンズが考案した自由曲面の表現方法の一種。パッチの連続で曲面全体を表現するもの。
【 補足 】
曲面も線もまったく任意で何でもいいらしいです。
一例を画像でうpしときます。こんな感じの曲面をjavaで表現したいのですが、どうにもうまくいきません
ttp://www.rupan.net/uploader/download/1172142893.jpg
「パッチ」って何よ?
平面の最小単位のことです
単に任意の微小な平面を敷きつめて曲面を近似するという話なのかと
思ったのだが、最小ってことは何か必然的に決まってくる計算が可能
なんだよね。
そこまで厳密なものではないです
曲面のような近似でも充分だと思います
CADか
NURBSとかBezieでいいじゃん
488 :
470:2007/02/23(金) 02:59:27
>>478 質問スレは一杯出てくるけど
宿題スレは全然出てこないなぁ・・
プログラム技術の中で「java」「宿題」「丸投げ」
とかで検索してみたんだけど何か間違ってるかな?
そういや前にサーブレットをj2meでビルドしようとした奴がいたが世の中にはEnhydraMEって言うものがあったりするんだよな・・・
モバイルXMLはもう実現したも同然だな。
【 課題 】日付、商品番号、単価、数量を入力し金額(TAX込み)
を出力させるプログラムを作れ。
【 形態 】1
【 GUI 】2
【 期限 】3月3日まで。
【 Ver 】 java version "1.5.0_11"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_11-b03)
Java HotSpot(TM) Client VM (build 1.5.0_11-b03, mixed mode)
設計書も書かなければいけないのでだいぶきびしい状態です。
(設計書のほうも全然かけていませんが…)
なのでみなさまのお力をお借りできたら幸いです。
モバイルXML繋がりで、SVG Basic はどうなるんだろう・・・
493 :
470:2007/02/23(金) 23:06:01
>>489 あーありがとー
質問スレのほうもまとめたんだね
大半は消えちゃってるかぁ
残念
494 :
デフォルトの名無しさん:2007/02/23(金) 23:44:10
【 課題 】追加書きされていて、ローテーションされているファイル(file,file1,file2)
を最新情報から10件づつ表示するプログラムを作れ。
【 形態 】1. Javaアプリケーション(main()で開始)
【 期限 】2007/2/27 10時
【 Ver 】 java version "1.3.1_19"
>>492 JSR-226がMIDP2.1に取り込まれたよ
なあ思ったんだけどテンプレの Verてプログラムを動かすために必要なランタイムのヴァージョンだよな?
どう見てもテメーらの実行環境書いてるだけだと思うんだが。勘違いしてるのか?
【requirements】の方が曖昧性を解決できないか?
副作用として必須ランタイムverだけじゃなくて必須ライブラリやその他必須要件もここにぶち込む事が出来ると思うが。
最低、要求するランタイムverだけ埋めれば良いんだし。
>>497 そんなことが分かるヤツは自分でクリアしてるっつーのw
499 :
デフォルトの名無しさん:2007/02/25(日) 16:05:53
【 課題 】Appletの領域内(500×500)の色を塗りなさい
【 形態 】2. Applet
【 GUI 】2. Swing
【 期限 】2007/02/26
【 Ver 】java version "1.5.0_04"
【 用語 】
【 補足 】以下にソースを貼ります。うまく画面の描画ができません。
/*<applet code="Paint_exe.class" width=500 height=500>
</applet>*/
import java.awt.*;
import javax.swing.*;
public class Paint_exe extends JApplet {
public void init(){
Container cnt = getContentPane();
JComponentEx2 jc = new JComponentEx2();
cnt.setLayout(new FlowLayout());
cnt.add(jc);
}
}
class JComponentEx2 extends JComponent {
public JComponentEx2(){
}
public void paintComponent(Graphics g){
g.setColor(Color.red);
g.fillRect(0,0,500,500);
}
}
>>499 JComponentEx2に↓のメソッドを追加
public Dimension getPreferredSize(){
return new Dimension(500, 500);
}
あとpaintComponent(Graphics g)の先頭でsuper.paintComponent(g);を呼び出したほうが無難
【 課題 】プログラム中の穴を埋め実行出来るようにする
【 形態 】1. Javaアプリケーション
【 GUI 】1. AWT
【 期限 】出来るだけ今日(月曜)中
【 Ver 】java version "1.5.0"
【 補足 】JAVAで簡単なエディタを作成する問題です
穴埋め問題のアイウエオカキとBは答えを見て埋めましたがエラーが出て実行出来ません
実行出来るようにしないといけないのですがお手上げ状態です
問題全文
1.上記プログラムをパッケージ化したい。パッケージはmytoolパッケージのサブパッケージでmyEditorとしたい。
プログラムの1行目にどのように指定をすればよいか。また、コンパイル、実行はどのように行えばよいか。コマンドを記述せよ。
プログラム:
コンパイル:
実行:
2.BにはFileNewメニューに新規作成というイベント処理を追加しなければならない。以下の仕様でプログラムを記述せよ。
@FileNewメニューが選択されたら、テキストエリアの内容をクリアする。
Aエディタ最下のラベルに"NewFile"と記述する。
1は手付かずです
2は27〜32行目に回答を丸写ししました
ソースです
http://www.uploda.org/uporg707719.txt
>>501 ヒントあげるよ。徹夜でフレームワーク書いてたんで生き抜きにやった。
ソースが酷かったんでリファクタリングしたんでそのままは使えない。
まあ、テキストの模範回答コピペしてばれるよりマシだと思う。
正直ソース見てどこが虫食いか解らなかったw
ttp://www.uploda.org/uporg707778.jar.html MyEditor.jarに改名して
javaw -jar MyEditor.jar
で実行可能になってる。詳細はソースとマニフェスト読んでくれ。
報告よろ
マルチの濡れ衣着せられたけど単位取ったぜクズめら・・・!
てめーら全員チンポ取れちまえ!
ボンバヘッ!
504 :
デフォルトの名無しさん:2007/02/26(月) 10:40:56
厨のくせにちゃんとsageてるじゃないか。
えらいなぁ。
晒し上げw
480です
結局自分でやったぜ
このスレ住人口だけ達者で案外使えねー!www
ボンバヘッ!
>>480 俺が貴様のソースを吟味してやるよ
ソースだせやソース
>>505 よくやった、これからも自分の力でやりましょう。
なので、二度とここには来ないでくださいね(・∀・)
1匹ほど害虫が沸いているな。まだ夏には早いだろうに・・・
あっ、今年は温暖だったから早く出てきてしまったのねw
啓蟄は3月6日だっけ?
>>501 ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29231 課題1を含めて、コンパイルに通るようにはした。修正部分は//<<<を行末に入れてる。
起動と課題2の動作は確認したが、面倒だから動作チェックはしていない。
課題1は1行目を見れ。
コンパイルは、ソースファイルをカレントディレクトリに置いた状態なら、
javac -d . Test2.java
その後の実行は、
java -cp . mytool.myEditor.Test2
大量のコンパイルエラーは一気に解消しようとせず最初に出たエラーから一つずつ地道に潰していけば最後には無くなる。
変な分かち書きや{}のアンバランス等、ケアレスミスが多いので、
その辺りをサポートしてくれるソースエディタを使うとかプログラミング環境を改善したほうがいいかもしれん。
511 :
510:2007/02/26(月) 16:36:39
> 面倒だから動作チェックはしていない
プログラム全体の、って意味ね。
512 :
510:2007/02/26(月) 16:41:13
すまん、Uぷするときにコピーをミスった。
最後の}がないや。102行目にクラス定義を閉じる}を入れておいて。
514 :
501:2007/02/26(月) 17:10:38
>>511-512 書かれた通りコンパイルしてみたら実行出来ました
順番で遅くなってしまうと思いますが、ソースを見て勉強させて頂きます
お手数をお掛け致しました、ありがとうございました
>>510 俺のリファクタリング前と同じだ。
元ソースコード読破・バグフィックス・仕様実装・テスト・リファクタリング・テスト・非jarでの実行・ビルド・jarでの実行の全てを試してるから
>>510のソースも問題ないと思うよ。
>>513 回答から丸移しするときのタイポが殆どだから移す前に落ち着け。
コンパイル方法なんて正直、利用するコンパイラ・ビルドツール・IDEで違うから別として
スタンドアロンアプリを実行する方法は
>>502と
>>510で網羅されてるからjavacのマニュアル読んで確認すればおk。
#リファクタリングする時無名クラスをファクトリ挟むか内部クラスに持ってくるかが一番悩んだw
↑時間の表示が悪いですね
正確には21:00でした、申し訳ないです
518 :
デフォルトの名無しさん:2007/02/27(火) 20:25:37
516はもう時間終了?
上見るとあと30分だけど本人現れるのか?これ
2/26だからオワタんじゃない?
間違えました....2/27です...
なんどもなんども申し訳ないです...
もうすでに取り込んでくださっている方がいらっしゃたら
繰り返して悪いのですが
どなたか
>>516をお願いできないでしょうか?
>>516 正直Java3dはやったことがないけど適当にいじってみよう
>>525 IDがないのでわかりませんが
>>523の方ならありがとうございました
引き続きやってみます
528 :
デフォルトの名無しさん:2007/03/04(日) 22:48:45
どうしてもつくれないアルゴリズムがあるので助けてください
1円〜999円のお買い物をするときに
はらう硬貨の枚数とお釣りの硬貨の枚数の和が最小になる払いかたで
払う金額と持っている硬貨枚数がいかなるときでも対応できるアルゴリズムがわかりません
1000円札は1枚は持っています
硬貨は1.5.10.50.100.500です。お札は1000のみです
すみませんマジお願いします
>>528 質問なら質問スレへ行け、と書こうとしたが、質問スレから来たのか。
本当にJavaプログラミングの宿題なら、
>>1を読んでテンプレを埋めろ。
質問を見る限りアルゴリズムを知りたいということでJavaと関係なさそうだが。
アルゴリズムが知りたいということなら、動的計画法を最初のキーワードにして調べていけ。
汚しスマソ
アルゴリズムはむりそうなので全探索します
全探索だってアルゴリズムだ
探索空間が小さいなら全探索でも悪くない選択
532 :
デフォルトの名無しさん:2007/03/05(月) 20:04:35
課題)以下の質問
質問1)
テキストファイルに書かれた数字を配列にいれるにはどうすればいいの?
hoge.txtは以下のとおり
12
34
56
78
ってかいてあって、java hoge.txtと実行すると
配列aa[0]〜aa[3]に上から順に数字が入るようにしたい。教えて
質問2)
配列に入った数値a[0]=12, a[1]=34, a[2]=56, a[3]=78を
nag.txtに順番に
12
34
56
78
と書き込みをしたい。どうすればできるの。一つでもいいから誰か教えて
形態)コマンドプロンプトからの単なるcui
533 :
デフォルトの名無しさん:2007/03/05(月) 20:32:24
マルチだ−w
いちおう質問スレでこちらへ行けと言われて、そのあとこっちに書いてるからマルチじゃないと思うけど
テンプレに従ってないからこっちでは回答したくないな
535 :
デフォルトの名無しさん:2007/03/05(月) 21:01:26
import java.io.*;
public class Q532_1{
public static void main(String args[]) {
String aa[] = new String[4];
BufferedReader in = null;
try {
if(in == null)
in = new BufferedReader(new FileReader(args[0]));
String s;
int i = 0;
while((s = in.readLine()) != null) {
aa[i] = s;
i++;
}
} catch(Exception e){
} finally { try {in.close();} catch(Exception e) {}}
}
}
というかいちいちマルチとか騒ぐ奴が馬鹿。
なぜマルチがダメなのか教えてテンプレ埋めろと言えば良いだけ。
マルチマルチ言ってる奴は本人もなぜマルチがダメなのか分かってない。とにかくテンプレ埋めて出直せ
>>535 > ってかいてあって、java hoge.txtと実行すると
を満たしてない。 package hoge; class txt {} しないと。
>>536 では、なぜマルチはいけないのですか?
代表して説明してください。
yahoo知恵袋や教えて!gooに
類似した質問がいっぱいある
ここにマルチする方々も納得できる内容で
536氏自身の言葉でお願いします。
マルチプルタイタンパー
>>541 (^ω^;) < マルチはマルチでも、商法の方ですか
>543
はい、私はボブです。
>>545 536氏以外、釣られちゃダメですよ^^; アッー!
547 :
デフォルトの名無しさん:2007/03/06(火) 12:55:32
548 :
デフォルトの名無しさん:2007/03/06(火) 14:11:33
【 課題 】チャートにそってGUIのJavaアプリケーションをデザインし、
仕様通りに動くようにせよ。
チャート:
ttp://up.rgr.jp/src/up8958.jpg 仕様:JMenuBarのOpenを選択した時、テキストファイルを読み込み、JList objectに文字を出力させる。
※読み込むテキストファイルは何が書かれていても問題ありません。
JTextAreaに文字を入力し、「追加」ボタンを押したら、JList objectにその文字が追加される。
JList objectにある文字を選んで、「削除」ボタンを押したら、JList objectから文字が削除される。
JMenuBarのSaveを選択した時、現在のJList objectにある文字を保存出来るようにする。
JMenuBarのExitを選択した時、プログラムを終了させる。
【 形態 】1. Javaアプリケーション(main()で開始
【 GUI 】2. Swing
【 期限 】3月7日
【 Ver 】java version "1.5.0_11"
【 補足 】EclipseのVisual Editorを使用してデザインをする。
先週の金曜からやっているのですが、デザインとプログラムが上手くいかず
まったく先へ進みません。途中までやった書いたソースでエラーなしで動く物を置いておきますが、
丸投げでよろしくお願いします。
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29240
549 :
548:2007/03/06(火) 15:50:37
と思ったら今見れるな。503エラー出てたんだが。
552 :
548:2007/03/06(火) 18:21:52
>>550 550さん、ありがとうございます。
JTextArea、JButton、JListの動作は確認したのですが、
JMenuBarのOpenとSaveが動作しませんでした。(自分のPCでしか動かしていないのですが)
テキストファイルを開いても読み込まれず、同じく保存をしても出力されませんでした。
>>552 おおスマン。
actionPerformed内の chooser.getSelectedFile().getName() の.getName()を消してくれ。
chooser.getSelectedFile().getName()));
↓
chooser.getSelectedFile()));
2カ所あるから2カ所とも修正すればちゃんと動くはず。
554 :
548:2007/03/06(火) 18:54:59
>>553 動作確認しました。
本当にありがとうございました。
【 課題 】タイピングプログラム(英文のみ)の作成。
文章を隔行表示し、その行の一段下の空白行にカーソル(*などの記号であれば何でも可)を表示。
カーソル上の文字を正しく打つとカーソルは右に移動、間違えたときは移動せず。
表示行の右端にてenterキーを押すことで下の空白行に移動する。1ページ分終了で次ページへ。
2分間でタイムアウトし、打鍵にかかった時間、打った単語数、打った文字数、1秒あたり打った単語
数、1秒あたり打った文字数、キーを押した合計回数、正解率を表示する。
【 形態 】1. Javaアプリケーション(main()で開始)
【 期限 】3月11日
【 Ver 】java version "1.5.0_09"
【 補足 】たとえば次のような画面になります。
-----------------------------------------------------------------------------------------
You must be surprised to receive this unexpected letter from me.
*
This is the first time that I have written to you. I represent ABC Electronics Co., Ltd.,
You'll be surprised to get a letter from a stranger.
------------------------------------------------------------------------------------------
文章を隔行表示し、一文字正確に打鍵するとカーソルが右に移動し、行末enterキーで次の空白行です。
テキストは外部からの読み込み方式で実行時にテキストファイルを指定する形となります。
上記の仕様を満たしていれば、ウィンドウの形式等は自由とのことです。
丸投げでよろしくお願いします。
>>555 これはコンソールアプリでなくGUIを使うということでいいのかな?
もしそうだとすると、GUIは何を使うか指定する必要がある。
557 :
555:2007/03/07(水) 00:42:14
>>556 GUIについての説明不足でした。大変申し訳ありません。
補足させていただきます。
【 GUI 】基本的にはAWTおよびSwingでお願いします。
説明不足で申し訳ありませんでした。よろしくお願いします。
また、何か不備があればご指摘ください。
連書きスレ消費すみません。
【課題提示用テンプレ】 の内容に変更がありましたので、報告させていただきます。
教官が日付を勘違いしており、11日は休日であるため、
【 期限 】3月12日
に変更になりました。もし、すでに取り組まれている方がいらっしゃいましたら大変ご迷惑をお掛けしました。
引き続きよろしくお願いします。
ここで宿題を聞いてる人は、プログラマよりもSE、ANの方が適してそう。
仕様を丁寧に書いて、回答者の方々がそれを製作し、納入(提出)するといった流れなので。
お前等、情報と一緒に経営学を勉強して、中小企業診断士の資格取ったらいいぞ。
スレ汚しスマソ
ANってアナリスト?
似非Eになるのがオチ
563 :
デフォルトの名無しさん:2007/03/07(水) 22:38:29
>>550 【 課題 】タイピングプログラム(英文のみ)の作成。
【 形態 】1. Javaアプリケーション(main()で開始)
【 GUI 】AWTおよびSwing
【 期限 】
【 Ver 】java version "1.6.0"
【 補足 】
>>550さんの問題を解きながらJavaプログラムの勉強をしています。
プログラムは一応完成したのですがかなり汚く見苦しいです。
そして、いろいろと不具合が出ています・・・
たとえば
1.スペースキーを押すとスタートボタンが押されたことになる
(マウスクリックしたときだけ動作するようにしたい)
2.float型を表示しようとしたとき、なぜか小数点以下の数字が0から動かない。
今後の勉強のために「ここの部分がだめだめだねぇ〜、○○の勉強をもっとしたほうがいいよ」など
ご教授お願いします or2
下にソースコードを置いた場所のurlを乗せます。main()はQ555.javaにあります。
使い方は同じフォルダにText0.txt, Text1.txt, Text2.txt, Text3.txt・・・・
を置いてください。ファイルを順に読んでいきます。
そして下のStartボタンを押したらスタートします。
ttp://yoshitake052.web.fc2.com/JavaLink/Q/Q555.zip 長文失礼しました
>>563 とりあえずこっちで動作確認しようとしたらこんなエラーが。
解消の指摘お願いします。
Q555.java:8: Q555 は同名のパッケージと競合します。
public class Q555 extends Applet implements Runnable, ActionListener, KeyListene
r {
^
Q555.java:18: Infor にアクセスできません。
クラスファイル .\Infor.class は不正です。
クラスファイルのバージョン 50.0 は不正です。47.0 であるべきです。
削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。
Infor infor;
^
エラー 2 個
565 :
563:2007/03/07(水) 23:53:19
>>563 Javaのヴァージョンが1.4以下ではありませんか?
今ちょっと調べてみるとそのエラーは1.5以上のバージョンを入れると解消されるみたいです・・・
念のため私のversionと同じ1.6.0を入れて見てくださいm(。_。;))m ペコペコ…
566 :
564:2007/03/08(木) 00:25:02
>>565 java version "1.6.0"を入れたのですがjavac Q555.javaを実行すると次のようなエラーが出ますね…。
Q555.java:21: シンボルを見つけられません。
シンボル: クラス Typing
場所 : Q555 の クラス
Typing typing;
^
Q555.java:54: シンボルを見つけられません。
シンボル: クラス Typing
場所 : Q555 の クラス
typing = new Typing();
^
エラー 2 個
実行の仕方を示してもらえませんか?
私自体Javaを勉強中なのでなんともいえませんが、数字の問題はやはり型のせいかと思います。
double型などを試してみてはどうでしょうか。具体的なアドバイスが出来なくてすみません。
567 :
563:2007/03/08(木) 00:38:28
>>564 >Q555.java:21: シンボルを見つけられません。
シンボル: クラス Typing
これはTypingクラスが見つけられないことを示しています。
ダウンロードしたファイルの中にTyping.javaはありませんか?
ありましたらそれをコンパイルした後にQ555.javaをコンパイルしてQ555.classを実行してみてください
568 :
564:2007/03/08(木) 01:01:45
動きました。どっちが答える側か分からないですね…orz
自分のところでは小文字でtyping.javaとなっていたので、気づきませんでした。
正解率のところですが、float型をint型で割っているためではないでしょうか。
569 :
563:2007/03/08(木) 01:23:18
float 正解率;
int タイプした数;
int 正解した数;
正解率 = (float)(正解した数/タイプした数);
正解率を見てみるとこのようにキャストしている・・・
でもこれってワイドニング変換で大丈夫なのでは?と・・・
思っていたのですが・・・
これが原因でした。下のようにキャストをしなおすと治りました^^
>正解率 = (float)(正解した数/タイプした数);
正解率 = (float)正解した数/(float)タイプした数;
>>564さんありがとうございます
570 :
563:2007/03/08(木) 01:38:26
今分かっているだけの不具合部分の
1.スペースキーを押すとスタートボタンが押されたことになる
(マウスクリックしたときだけ動作するようにしたい)
は「フォーカスのやり方がおかしいのでは?」と自分で思っているので
ちょっとフォーカスについて勉強しようと思うのですが・・・
いいホームページが見つかりません(/へ;)しくしく..
フォーカスの実装部分を詳しく載せているサイトをご存知の方は教えてはいただけないでしょうか?
>>563 アプレットビューアじゃうごかね・・・
AWTにSwingコンポーネント使うのは潜在的によくない。あとSwingの描画モデル破壊しまくってる。
コンパイル済みのだと問題ないんだけど、自力でビルドし
試してみたら俺はクラスロード時にInforクラスが見つけられないんだけどなんでだろう?
ところでSwing慣れてる連中に聞きたいんだけどUI委譲モデルに従わず、かつ自分の子コンポーネントを完璧に自力で描画するなら
praintとかupdateをsuper.XXX呼ばずにpaintComponetを使わずにオーバーライドして良いんだっけ?
572 :
564:2007/03/08(木) 01:44:15
>>563 あとは仕様にのっとれば、タイムアウトの後、結果表示という流れと思われます。
そのあたりをつめていただければ大丈夫かと思われます。
573 :
563:2007/03/08(木) 01:55:22
>>571 アプレットヴューアでは動きましたよ?
htmlファイルを作って実行されましたでしょうか?
ちなみにQ555.htmlファイルを作った場合の実行コマンドは下のようになります。
appletviewer Q555.html
それとも・・・
htmlファイルを作ってコマンド形式での起動ではなく
Internet Explorerなどで起動しようとしてますか?
その場合は・・・たしかに起動はしますが動きませんね・・・
次のようなエラーがでますね・・・
java.security.AccessControlException: access denied (java.io.FilePermission Text0.txt read)
ファイルの読み込みに失敗していますね・・・
アプレットとアプリケーションでのファイルの読み込みが違うからかな?
ごめんなさい or2
574 :
563:2007/03/08(木) 02:15:10
>> 571
>Swingの描画モデル破壊しまくってる。
描画モデルの破壊が起きないようにAWTに統一しました^^
見た目はちょっと悪くなってしまいましたが・・・
ttp://yoshitake052.web.fc2.com/JavaLink/Q/Q555.zip ↑改正版
>AWTにSwingコンポーネント使うのは潜在的によくない
Swingを使用するのはこれが初めてだったので知りませんでしたor2
ありがとうございます^^
他にSwingやAWTを使用するにあたって注意することなどはありますか?
>>571 > ところでSwing慣れてる連中に聞きたいんだけどUI委譲モデルに従わず、かつ自分の子コンポーネントを完璧に自力で描画するなら
> praintとかupdateをsuper.XXX呼ばずにpaintComponetを使わずにオーバーライドして良いんだっけ?
日本語でおk
もうちょいわかりやすく言ってくれ
どこが問題?こう言うこと?
>praintとかupdateをsuper.XXX呼ばずに>paintComponetを使わずにオーバーライドして良いんだっけ?
praintとかupdateをsuper.praintやsuper.update等関連するSwingの描画メソッド呼ばずに、かつpaintComponetを使わず、praintとかupdateをオーバーライドして中で自分の子コンポーネント面倒見れば良いんだっけ?
577 :
563:2007/03/08(木) 23:54:27
Javaアプリケーションなのになんでアプレット使うんだろう
両方で動作するようにしたいのか?
プログラムがプリミティブすぎる・・
>>579 学習中ということだし、アプレットから入った初学者じゃないのかね?
まだアプレットしか作ったことないとか。
すまんすまん。577ではFrameを使ってるね。
ということは、
> 【 形態 】1. Javaアプリケーション(main()で開始)
を見落としてるか、勘違いしてるか。
まあ、アプレット→アプリケーションはその逆より難しくないから、いいのかも。
583 :
582:2007/03/09(金) 04:01:14
というか、今ソース見たら、ちゃんとアプリケーションとアプレット両対応になってたw
元々両対応で行くつもりっだったんじゃない?
アプリケーション側の初期化処理が不完全くさかったし・・・破棄コードも見当たらないしね。
なぜか意味なくtransientついた変数あるのにシリアライズID付けてなかったり、いわゆるアクティブレンダリングはしてなかったり、イベントハンドラで処理してたり、
ゲームっぽい組み方は出来てんのに
javaの作法が出来てない所をみると他言語経験者じゃない?
C/C++とjavaの両方教える所あるよ
585 :
563:2007/03/09(金) 19:51:57
>>584 C、C++、VRMLを少しだけかじっていました・・・
>アプリケーション側の初期化処理が不完全くさかったし・・・破棄コードも見当たらないしね。
>なぜか意味なくtransientついた変数あるのにシリアライズID付けてなかったり、いわゆるアクティブレンダリングはしてなかったり、イベントハンドラで処理してたり、
何を言っているのかまだ私には分かりませんor2
明日あたりにこのあたりを中心に勉強をしてみようと思います
>javaの作法
今ちょっと検索をかけてみたらJavaの本や10万以上もする授業や別の掲示板での質問くらいしかひっかかりませんでしたor2
作法について書かれているホームページや良い書籍を紹介してもらえないでしょうか?
出来ればホームページの紹介を優先的に・・・
>>581 実際に組んだプログラムはアプレットを4〜5個(簡単なものも含め)つくり、
アプリケーションは・・・これが始めて・・・ですね
初めて取り組むのには難しすぎたのかな?
ちょっと反省しています or2 でしゃばったまねをしてすいません
>>580 >プログラムがプリミティブすぎる・・
これってプリミティブ型(?=intなど基本データ?)の使いすぎってことかな?
まだまだ知識が足りないもので・・・
今日の深夜あたりにList,Set,Map,Iteratorインタフェースについて勉強をしてこのプログラムをよりよくしていくつもりです
>>579 はい
>>578 sageって・・・あまり書き込むなってことですか?
長文失礼しました
>>585 >sageって・・・あまり書き込むなってことですか?
スレをあげないでという事だと思いますよ。
>>585 メールアドレス欄に"sage"と入れて書き込む。
大丈夫、その素地ならこのスレの大抵の住人より地力はあるはず。
揚げ足取りにはめげないで頑張って。
588 :
デフォルトの名無しさん:2007/03/10(土) 01:46:57
【 課題 】以下のようなCSVファイル(下記参照)を用意し、ファイルを読み込んでyyyymmdd.txtというファイルに5科目合計を求め、合計点の降順にソートして出力しなさい。
1.ファイル読み込み時にエラーチェックをする。
(a)入力された点数が数値かどうか(b)入力された点数が0から100点の範囲内か(c)ファイルIOエラー(入力ファイルオープンエラー、出力ファイル書き込みエラー等)
2.java.ioパッケージ丸ごとのインポートは行なわず必要なクラスのみインポートする
3.人数や科目が増えた場合にもコード修正なしに実行可能にするArrayListを使用
4.わかりやすいコメントを下記の要領で記述
(a)ヘッダコメント(b)各クラスヘッダコメント(c)各メソッドコメント
----------(参照)CSVファイル-- ----(yyyymmdd.txt)--------------
名前,国語,数学,社会,理科,英語 ⇒ 順位 名前 国語 数学 社会 理科 英語 合計
山田一朗80,80,78,60,75 出⇒ 1 山田一郎 80 80 78 60 75 373
山田次郎40,12,50,37,89 力⇒ 2 山田四郎 85 95 65 57 58 360
山田三郎60,38,45,68,40 例⇒ 3 山田五郎 90 95 55 45 72 357
山田四郎85,95,65,57,58 で⇒ 4 山田三郎 60 38 45 68 40 251
山田五郎90,95,55,45,72 す⇒ 5 山田次郎 40 12 50 37 89 228
科目合計 355 320 293 267 334 1569
【 形態 】Javaアプリケーション(main()で開始)
【 GUI 】コマンドプロンプトで表示します
【 期限 】解答希望日:3月11日(日) 20時まででお願いいたします。
【 Ver 】java version "1.5.0_05"
【 補足 】課題丸投げです。申し訳ありません。
色々資料見て自力で何とか頑張ったのですがわかりませんでした。
本当にすいませんがよろしくお願いします。
590 :
デフォルトの名無しさん:2007/03/10(土) 13:40:12
588です!
589さんありがとうございます!!
わざわざやって頂いて本当に申し訳ないんですが、コンパイルする時にどれを実行していいのかわかりません!
JAVA初心者なもので、できたらで良いのですがもう少し簡単に1つのメモ帳にまとめて書けたりできますでしょうか?
やってもらった分際で本当にすいません!!
>>590 一応必要な情報は全部入ってるはずなんやけどな・・・
jarは実行可能なので
java -jar hogehoge.jar 読むファイル 結果ファイル
で実行できるし、
jarを展開したらソースが入ってるからそれからコンパイルし直したり修正も出来る。
メインクラスは、展開したらでてくるMANIFESTにかかれているよ。
時間はあるからガン( ゚д゚)ガレ〜
クラスは三つ出てくるけど、必要なのは二つ。一つはテストクラス。
もうjdk6のjavadoc日本語版リリースされてるよ
594 :
デフォルトの名無しさん:2007/03/11(日) 00:32:12
590です!591、592さんありがとうございます!
jarファイルは展開できました!
コマンドプロンプトでMainとResultの2つをコンパイルすればいいということでしょうか?
javac Main.javaでコンパイルしたところエラーが6個出てしましました・・・。
後javac Result.javaでコンパイル通りましたが実行でjava Resultでいんでしょうか?
NOClassDefFoundError:Result〜というエラーがでてしました。
無知すぎて本当にすいません!!
>>593 >【 Ver 】java version "1.5.0_05"
だから。
jarくらいなら大丈夫だけどね。
>>594 間違いです。
教科書の索引の「パッケージ」「クラスパス」あたりを調べてみましょう。
コンパイル対象のクラス2つは合っているはず。
あと、マニフェストファイルも覗いてみましょう、と
>>595 次は、
「MANIFEST.MFをダブルクリックすると、開くアプリケーションがないと
怒られました」
かな。
597 :
563:2007/03/12(月) 00:45:23
>>550 今こんな感じで進めて行ってますがこんな感じでいいですか?
ttp://yoshitake052.web.fc2.com/JavaLink/Q/Q555.zip 素人制作のためソースコードがかなり汚くなっていますが・・・
それと、仕様書では行末でEnterキーを押すことにより次の行に移るようにせよとのことですが・・・
これを実際にやってみたのですが見にくく分かりにくかったので次のように変えました。
行末には勝手に'↓'を付け加えるようにして、'↓'にきたらEnterキーを押すことにより次の行に移るように変えました。
この仕様が不満でしたら書き込みお願いしますor2
598 :
563:2007/03/12(月) 00:57:50
書き忘れ
もし、'↓'を透明にしたいのでしたら下の行をTypingクラスの96行と97行の間に付け加えてください。
if(st.charAt(i-sNumSum) == '↓')graphics.setColor(new Color(0, 0, 0, 0));
599 :
555:2007/03/12(月) 03:34:10
>>597様
お疲れ様です。
仕様を満たして作成していただき、本当にどうもありがとうございました。
>>564では具体的なアドバイスが出来ていなくてすみません。
行末の記号につきましては現状のままで結構です。
欲を言えば、小数部分は小数点以下2桁が望ましいかと思います。
もし、お時間がございましたら、各クラスの大まかな役割を示したreadmeファイルを付けていただけるとありがたいです。
あと、各プログラムのJAVAファイル(Q555,Typing,Infor1,Infor2)等を一つにまとめるには、単に一つのJAVAファイルにコピペすればよろしいのでしょうか?
最後に色々と注文をつけてしまい申し訳ありません。
レポ作成等がありますので、次に書き込めるのは13日になってしまうと思われますが、上の注文に関しては12日までということはありませんので、よろしくお願いします。
600 :
563:2007/03/12(月) 13:27:36
>>555 >欲を言えば、小数部分は小数点以下2桁が望ましいかと思います。
実装しました
>各クラスの大まかな役割
Q555: フレームを作ったりボタン、Typingクラス、Inforクラス等を置いたりしてるだけ。ここにmain()あり。
Typing: このクラスはキー入力やファイルの読み込み文字の表示などをさせている。
Infor: タイピングの情報を受け取ってそれを計算して表示させるだけ。
Infor2: Inforを継承させて結果の表示にバーを表示しないようにしただけ。
>各プログラムのJAVAファイル(Q555,Typing,Infor1,Infor2)等を一つにまとめるには、単に一つのJAVAファイルにコピペすればよろしいのでしょうか?
説明するのはめんどくさいので1つのファイルにまとめました。(ちなみにただ単純にコピペしただけではエラーが出るはずです)
でもこれってまとめてもいいものなの?分けたほうが分かりやすくていいのでは?
ttp://yoshitake052.web.fc2.com/JavaLink/Q/Q555_2.zip
見るに耐えない
うぜーーーーーーーーー
603 :
555:2007/03/13(火) 01:22:26
>>600(563)様
期限までに作成してくださり、本当にありがとうございました。
また、細かい仕様にも満たしていただけ、素晴らしいものになっていると思います。
こちらで確かに動作を確認いたしました。
度々の質問で恐縮なのですが、打鍵時間を色々変更して計測せよと言われたので、
打鍵時間を2分から変更したいのですが、その場合、
public final int limitTime = 120;をpublic final int limitTime = 180;
等に変更しても打鍵時間が120分のまま変わりませんでした。
他に変更すべき点ございますでしょうか。
最後に色々to
質問させていただくというのは大変申し訳ないと思いますが、よろしくお願いします。
604 :
555:2007/03/13(火) 01:24:09
>>603 120分→120秒です。スレ消費スミマセンでした。
定数、変数があっちゃこっちゃに散らばってるからそうなるんだよ
マジックナンバー使いまくりなのもよくないかと
606 :
555:2007/03/13(火) 01:44:24
>>605様
アドバイス通り、protected final int restTime = 120;
のほうも変更してみたところ、打鍵時間を変更することができました。
どうもありがとうございました。
607 :
563:2007/03/13(火) 03:47:08
そろそろor2をNGワードにしようと思う
妙な自己主張はやめてくれ
609 :
563:2007/03/13(火) 12:54:00
>>608 不快にさせて申し訳ありません
次からはNGワードを使わないようにします
>>609 むしろ逆
お前はどんどん使え
そうしたらお前のレスを読まなくて済むからな
611 :
デフォルトの名無しさん:2007/03/16(金) 15:53:32
【 課題 】下記の出力するテキストファイルのファイル名を日付表示にする。⇒text.txtを現在日付(2007036.txt)
public class Writedown {
public static void fileWrite(ArrayList<ArrayList<String>> WriteArrayList) {
try {
File txt = new File("text.txt"); /*出力するファイル*/
BufferedWriter bw = new BufferedWriter(new FileWriter(txt));/*追記モード*/
for(int i = 0; i < WriteArrayList.size(); i++){
ArrayList<String> list = WriteArrayList.get(i);
if(i == 0){
bw.write((list.size() - 3));
}
for(int j = 0; j < list.size(); j++){
if(j > 0){
bw.write("\t");
}
if(list.get(j).toString().equals("名前")){
list.remove(j);
list.add(j,"名前");
}
}
bw.close();
} catch (IOException e) {
System.out.println("ファイルオープンエラー");
}
}
}
【 期限 】解答希望日:3/17(日)23時
【 Ver 】java version "1.5"
【 補足 】課題丸投げです。長々とすいません!
File txt = new File("text.txt");
↓
File txt = new File(new SimpleDateFormat("yyyyMMdd.'txt'").format(new Date()));
613 :
デフォルトの名無しさん:2007/03/18(日) 13:13:07
611です。
612さんありがとうございます。
後はimport java.text.DateFormat;とimport java.text.SimpleDateFormat;を追加すればよいですか?
sage推奨?
大昔は知らないが最近のスレの
>>1近辺でsage推奨の注意書きがあったことはなかったと思う。
だから別にsage推奨とかではないとは思うが、あがっていてもいいことはあまりない気がする。
スレ順位に関係なく、見てる人間はそれなりにチェックしてるだろうから、
ageて注意を促そうとすることはあまり効果がないと思われ。
まあ、自分のレスはsageるけど、ageられていても俺は特に気にはしないが。
616 :
デフォルトの名無しさん:2007/03/20(火) 21:40:28
【 課題 】Iteratorを使い、文字列をリストに詰め替え、最後に文字列(”Winter”)を追加せよ。
�ArrayList array=new ArrayList();�
��
��array.add("Spring");
��array.add("Summer");
��array.add("Autumn");
��
��ArrayList array2=new ArrayList();�
��
��for(Iterator it=array.iterator();it.hasNext();){
���String str=(String)it.next();
���System.out.println("array:"+str);
���array2.add(it);������
���System.out.println("array2:"+str);
【 期限 】3月22日
【 Ver 】java version "1.4"
【 補足 】リストの詰め替えまでは理解出来たのですが、詰め替え後にリストの最後に
文字列を追加する処理の記述がわかりませんでした。
最後に
array2.add("Winter");
課題の内容も意味不明だが
List array=new ArrayList();
// init array is sniped
List array2=new ArrayList();
for(Iterator it=array.iterator();it.hasNext();){
array2.add(it.next());
}
array2.add("Winter");
で最後に"Winter"が追加されるが、それでいいのか?
詰め替えって標準語なのか?
詰め替えは標準語だろう。
でも、このコンテクストで使って、やりたいことを伝えているかとなると微妙だな。
詰め替えるって元の場所から取り出して別の場所に入れ直すってイメージがあるから、
array2にaddするだけじゃなくarrayの方からremoveしないといけないんじゃないか?
課題の意図としては多分リストの要素をコピーするって意味だろうとは思うけど。
何故かスタックをせっせと詰め換えてるデュークが頭過った・・・org
まあ期限が今日だからドボンか・・・
でも、まぁ、ある程度理解しているなら完全にダメという訳でもあるまい。
理解してて
>>616はないだろ。
ブロッキングキューを必死こいてpopしようとして悩んでるデュークが頭の中に・・・
誰だ変なもんインスタンス化したのはw
ブロッキングキューはあってもリングキューないよね。特殊過ぎるか。
>>619の解釈が正しいとすれば
>Iteratorを使い、文字列をリストに詰め替え
ってのは高度だよな(moveだとすれば)
どうやってやればいいかわからん
624 :
デフォルトの名無しさん:2007/03/23(金) 01:59:18
詰め換えってんだからビューやミラーでは無いわな。
しかし、「文字列をリストに詰め替え」
そのソース文字列が例文に何処にも無いんだが・・・
リテラルがいきなり出てきてるのは例文だから?
Iteratorがコピー元とコピー先を持ってれば良い?
今まさにこの>Iteratorを使い、文字列をリストに詰め替え
をxmlに対し可能にするAPI作ってるがこのIteratorの事をCrawlerって呼んでる。
xmlをフラットに走査してビューを作れるんだぜ?
さ あ 、 講 師 が 馬 鹿 か 俺 ら が 馬 鹿 か ! ?
>>623 Iteratorを使っての要素の移動だとすればこうじゃね。
for (Iterator it = array.iterator(); it.hasNext(); ) {
Object o = it.next();
it.remove();
array2.add(o);
}
array2.add("Winter");
626 :
625:2007/03/23(金) 05:50:18
for文の中身はこれの方がすっきりするね。徹夜で頭が働いてないや。
array2.add(it.next());
it.remove();
627 :
デフォルトの名無しさん:2007/03/25(日) 20:35:37
【 課題 】Zipファイルの中にあるJavaコードを書き換えて、
以下の仕様通りに動作するJava GUIプログラムを完成させよ。
1.Startボタンをクリックした時に、JPanel内のオブジェクトを動作させ、
ボタンの表示を「Stop」に変更させよ。また、Stopボタンをクリックした時に、
JPanel内のオブジェクトの動作を停止させ、ボタンの表示を「Start」にするようにせよ。
2.JPanel内のオブジェクト(ボール)がJPanelの壁にぶつかった時、跳ね返るようにせよ。
3.JFrameのタイトル部分に日付(時計)を表示させよ。※毎秒、時間が経つように設定せよ。
4.JPanel内のオブジェクト(ボール)はスレッドを使用し、別々に
動作するようにせよ。※sleepメソッドを使用する。
5.動作の途中結果をコンソール画面に表示させよ。
※例えばプログラムの反復処理が200の場合、20毎にその結果を表示させる。
また、反復処理の回数と途中処理チェックをユーザーが設定出来るようせよ。
6.オブジェクト(ボール)の数をユーザーが設定出来るようにせよ。
7.スレッドの動作ステータスをプログレスバーを使用し、
どれくらいで処理が終わるのかユーザーに分かるようにせよ。
【 形態 】1. Javaアプリケーション(main()で開始)
【 GUI 】2. Swing
【 期限 】3/27
【 Ver 】1.5.0_11
【 補足 】仕様の通りに組むのですが、自分でGUIのデザインだけは終わらせておきました。
処理サンプル図を見ていただけたら、分かり安いと思われます。
GUIデザイン、処理サンプル図:
ttp://www.uploda.org/uporg746765.jpg.html GUI完成Zipファイル:
ttp://www.uploda.org/uporg746763.zip.html 配布されたZipファイル:
ttp://www.uploda.org/uporg746759.zip.html 丸投げでよろしくお願いします。
4,5,6,7は見た目以上の試練だな。
ソースコード読んだらオフスクリーン管理自分でやってゲームループ回した方がすっきりしそうだ。
描画フローは一本化したいなぁ・・・。
629 :
627:2007/03/26(月) 04:54:23
630 :
627:2007/03/26(月) 22:22:41
627です。
もし、途中まででも良いので終わらせているのであれば、
そのコードを戴けないでしょうか?
628さんの言う通り、4以降やっていないのでも大丈夫です。
気が向いたらやってやるかな・・
632 :
627:2007/03/26(月) 22:47:33
>>631 ありがとうございます。
自分でもやってはいるのですが、GUIでのプログラムに慣れておらず、
試行錯誤しているうちに、ひとつの終わらないまま提出期日が迫っているので…。
visual editorか・・
634 :
627:2007/03/27(火) 00:15:22
>>633 はい。Visual Editorを使用しています。
反復処理とは一体何を指すのか?
637 :
627:2007/03/27(火) 05:15:19
>>635 イタレーションの事です。分かりにくくて申し訳ありません。
>>636 ありがとうございます。早速、提出しようと思います。
本当にありがとうございました。
>>637 あーiterationのことか。
じゃあ間違ってるかな。
要するに各スレッドのiterationの合計が反復回数なわけだ?
まあもう提出してしまったみたいだからいいか
宿題スレなんてあるなんて凄いです。
問1
パラメータから得た値をnとして、2のn乗を求めて表示してください。
nの上限は62として、63以上が入るとメッセージを表示するようにしてください。
int型だと2の30乗までになってしまいます。
って問題なんですけど
import java.io.*;
public class kadai13{
public static void main(String[]args)throws IOException{
@
int i=1;
long a=2;
while(i<myAnswer){
a*=2;
i++;
}
if(myAnswer<=62){
System.out.println("2の"+myAnswer+"乗は"+a+"です。");
}else if(myAnswer>=63){
System.out.println("2の2乗までしか計算できないよ。");
}
}
}
この@のところに
int a=Imterger.parse Int(args[0])
ってのを使って解かなければならないんですが
分かる方教えてください。
>640
改行多いっていわれたので2分割しました。
POSTしたcgiにだろw
>>644 ブラウザです。
書き込もうとしたら改行多いから書き込めないっていわれました。
で、すぐ2分割した方を書き込もうとおもったら
連投はできない。しばらくたってから。みたいなこと言われたんで
まってたらその間に違う人が書き込んでしまったんです。
>>646 質問スレじゃないんだからテンプレ使えと、、、、わかれよそんぐらい
>>639 public class kadai13 {
public static void main(String[] args) {
try {
int a = Integer.parseInt(args[0]);
if(a <= 62) {
System.out.println("2の" + a +"乗は"+ Math.pow(2, a) +"です。");
}
else System.out.println("2の2乗までしか計算できないよ。");
}catch (NumberFormatException e) {
System.err.println("数字を渡せ!");
}
}
}
650 :
デフォルトの名無しさん:2007/03/30(金) 09:43:36
【 課題 】入力された複数の数値(数列)の合計値を計算する
【 形態 】Javaアプリケーション(main()で開始)
【 GUI 】制限なし
【 期限 】3月30日一杯
【 Ver 】コンソールでjava -versionを実行し、その結果を貼ります。 《必須》
【 用語 】数学用語、専門用語の意味、説明を書きます。 《あれば必須》
【 補足 】クラス図を以下に記します。
BootStrap 起動クラス
public static void main(args[]) mainメソッド:合計計算クラスを使い、
引数の数列を合算する
CalcSum 合計計算クラス
public void exec (String seq)
private int calc (String seq) execメソッド:calcメソッドを使って数列を合計し、
OutputAnswerクラスを使って結果を出力する
calcメソッド:数列の合計を計算する
OutputAnswer 計算結果出力クラス
private int answer answerメンバ:計算結果
public void setAnswer(int answer)
public void display() setAnswerメソッド:計算結果をanswerにセットする
displayメソッド:計算結果を画面表示する
急な質問ですみません。
651 :
デフォルトの名無しさん:2007/03/30(金) 10:23:30
ジャバでさ、コマンドライン引数で取得したargs[0]ってString型じゃん?それをintにしたいんだけどどうしたらいいかね?
英字の名称がカタカナなのと全角なのは流石だな。
高校の頃に固有名詞くらい正式に書けるようになれって言われなかったか。
何はともあれスレ違い乙
>>650 import java.util.StringTokenizer;
class BootStrap {
public static void main(String[] args){
StringBuffer seqBuf = new StringBuffer();
for(int i = 0; i < args.length; i++){
seqBuf.append(args[i] + " ");
}
CalcSum calcSum = new CalcSum();
calcSum.exec(seqBuf.toString());
}
}
class CalcSum {
public void exec (String seq){
OutputAnswer outputAnswer = new OutputAnswer();
outputAnswer.setAnswer(calc(seq));
outputAnswer.display();
}
private int calc (String seq){
StringTokenizer stringTokenizer= new StringTokenizer(seq);
int sum = 0;
while(stringTokenizer.hasMoreTokens()){
sum += Integer.parseInt(stringTokenizer.nextToken());
}
return sum;
}
}
class OutputAnswer {
private int answer;
public void setAnswer(int answer){this.answer = answer;}
public void display(){System.out.println(answer);}
}
655 :
650:2007/03/30(金) 11:59:25
>>653さん
早速のレスありがとうございます。
コンパイルして実行してみると入力とは関係無しに出力され結果が0になってしまいます。
どうすれば解決するでしょうか?
【 課題 】
http://www.uploda.org/uporg758735.txt 3問ありますorz
【 形態 】Javaアプリケーション
【 GUI 】AWTのみ
【 期限 】4/4まで
【 Ver 】java version "1.6.0"
Java(TM) SE Runtime Environment (build 1.6.0-b105)
Java HotSpot(TM) Client VM (build 1.6.0-b105, mixed mode, sharing)
【 補足 】タートルグラフィックスの問題です。
java初心者で、期限に間に合わなそうなので依頼しにきました。
厚かましくも3問もありますが、よろしくお願いします!
>>651 Integer.parseInt(args[0]);
>>656 >java初心者で、期限に間に合わなそう
画面に点を打てて数学関数使える言語なら何でも出来るぞ。
精もない言い訳してる暇があったら高校やり直せ。
ゆとり世代じゃなけりゃ中学で基礎は習ってる。
入力を何処から拾うかと、亀をどう描くかと亀の移動速度が無いように見えるけど?
>>657 初質でとうに解決済みだから見てないと思う。
講師が居るおまいらが羨ましい。漏れは4ヶ月javaやってるが先生はずっと参考書。
一人でやってみて気付いたが、教えてくれる人が居るって恵まれてるよ。
丸投げは何も教えてない件について。
それに気づくのは本人じゃなくて後に就職した先の先輩や上司・・・
しかも、講義の内容を理解してないからここで投げるという。
専門生オソロシスw
>>659 このスレでタダで専門と同じ勉強が出来るじゃないか?
ここは教育機関じゃないし
そんな人間をそれに気づく前に就職させた側に問題がある
フィルターをかける手間を惜しんでリスクを背負うことを選択した結果だ
採用担当と配置後の直接の職場とは違うだろうから使えなくて上司が泣くのはかわいそうだが
そういうのは採用担当に使えんやつは採るなってねじこむしかないな
>>656 > Turtle は整数の座標でしか動けない。
とか
> 亀の色を変えるのは,亀のkameColor 変数に代入します。線の色を変えるのには,
> setColor メソッドを使います。
とかを見てると、整数座標系で動くタートルグラフィックスのライブラリが出題者から示されていて、
それを使ってプログラムを組めっていうことのように思えるんだけど。
もしそうなら、そのライブラリも提供してくれないと。
それとも、そういう風にタートルグラフィックスシステムも作れっていうことかな?
でも、タートル色はフィールドへの代入で線色はセッターメソッドを使うとか、いやーんな仕様だね。
とりあえず質問者は亀さんグラフィックスライブラリをどっかにあげるべし。
指定されてる奴があるだろ?
(kameColorでググるとそれらしいのが見つかるが)
664 :
659:2007/04/02(月) 20:33:52
でも先生が居たらいたで、漏れも出された課題をこういう所で丸投げしてるんだろうなぁ。
667 :
デフォルトの名無しさん:2007/04/03(火) 05:34:11
669 :
656:2007/04/03(火) 07:25:15
670 :
668:2007/04/03(火) 07:38:19
ごめん。視野角の定義を勘違いしていたみたい。
望遠鏡を覗いたときの中心から星の角度をθとすると,θ<φのときにだけ望遠鏡から見えるとする。
ってなってた。
//* このθが視野角φの半角より小さければ視野に収まっている
* このθが視野角φより小さければ視野に収まっている
//if (φ / 2 > Math.acos((sx[i] * tx + sy[i] * ty) / (Math.hypot(sx[i], sy[i]) * Math.hypot(tx, ty)))) {
if (φ > Math.acos((sx[i] * tx + sy[i] * ty) / (Math.hypot(sx[i], sy[i]) * Math.hypot(tx, ty)))) {
//double angle = Math.atan2(ty, tx) - φ / 2;
double angle = Math.atan2(ty, tx) - φ;
//angle = Math.atan2(ty, tx) + φ / 2;
angle = Math.atan2(ty, tx) + φ;
の4ヶ所を修正して
データの読み込み方法が補足のやり方とは違っちゃってるね。
BufferedReader + StringTokenizerを使う場合は、、
Scanner#nextDoubleの代わりにDouble.parseDouble(st.nextToken())、
Scanner#nextIntの代わりにInteger.parseInt(st.nextToken())でいけるんじゃないかな。
672 :
656:2007/04/03(火) 10:16:03
>>667 授業で何やってんの?
サーバとの通信?それともアプレット作るだけ?
アカウントの認証は本当に処理しなきゃいけない?てかベーシック認証?
1)鯖と通信するのか?
2)するならどのような方法で行うのか?
3)なんか資料や必要な物が他にあるだろ?
4)あんなでっち上げ画像なんの役にも立たんから抜けてる所は自分で補完しろ。
#アプレットやろうと思ったら環境ナス・・・
674 :
667:2007/04/03(火) 16:36:43
>>673 授業では前期の方でJavaの基礎をやった後、簡単なアプレットを作って、
最後の課題で本格的なアプレットを作れといった流れです。
リサーチもかねて、簡単なコンセプトを配布されただけで後は自分で調べろといった感じです。
本格的な認証は必要ないと思います。ただ、ユーザーのデータベースにあるIDとパスが通れば、
ログインさせる流れです。
1)サーバーと通信します。
2)仮想サーバーを作って、そこにユーザーがアクセスするという形です。
アパッチで仮想サーバーを自分のPCに作っています。実際にWebには公開しないと思うので、ひとつのマシンでやり取りを完結します。
つまり、多数ブラウザを開いて一人で複数アカウントを作ってログインして、きちんと動作していれば大丈夫です。
3)資料、画像は自分で図書館や書店で調べろ・用意しろと言われました…。他に必要な物があるなら自分で補完しろとの事です。
4)どうしてもアプレットで無理なら、サーブレットでやっても良いとの事です。
>>674 >3)資料、画像は自分で図書館や書店で調べろ・用意しろと言われました…。
なら言われた通りに不足分埋めてテンプレの【 補足 】を埋めろ。
>Javaアプレットを使用し、ゲームを作りなさい。
>ゲームの詳細・仕様は配布したイメージファイルを参考にしなさい。
だけじゃ不足してる。その不足分を補完するのが【 補足 】だ。
補完するのはお前の仕事だ。
>【 補足 】特にありません。丸投げでよろしくお願いします。
じゃないだろ。
何で足りん分は自分で考えて自分で用意しろって前提で課題が出てるか分かるか?
#ちょっと待て最近、使えねSEとそいつのせいで仕事出来ねぇPGの図になってるぞ。
丸投げの定義を
>>1~のテンプレに追加した方がよくね?
ループしてるぞこの話。
676 :
667:2007/04/03(火) 18:12:22
>>675 分かりました。補足・素材を用意して出直してきます。
少々お待ちください。
678 :
656:2007/04/03(火) 19:36:16
>>677 ありがとうございます!
自分で解こうとしても、半日かけても1問も解けなかったりするのですが
ここの人たちは仕事早いしツンデレだったり、ホントすごいです!
問題Cの最初の移動方向は好きなように設定して
良いかと思います。
問題の指示通り動けば良いみたいなので。
問題文流れてしまったようなので別のうpロダに再うp
したので、どなたか問題Cをお願いします。。。
http://up.spawn.jp/file/up13102.txt
>>678 なんか誰もやってないっぽいんでいまさらながら見てみたけど。。
ライブラリいらね・・あまりに糞過ぎる
これは確かにやる気が失せる
ってか俺はもう投げた
680 :
677:2007/04/04(水) 01:21:32
>>678 つんでれうんぬんは置いておいて、実際のところ問題Cまで手を出す暇はない。
「示しなさい」のところの簡単な手がかりを出しとく。でも、今はこれが精一杯。
正しくやろうとすると、例えば、内部判定の場合、
判定する点からの線分と辺とが重なってたり頂点を通ってたりする場合を考えないといけないとか、
いろいろ特別な場合について考慮しないといけないんだけど。がんばってくれ。
Q. 亀が檻の中にいるのかいないのか求める計算方法を外積を使って示しなさい。
A.
檻の辺がとる最大X座標は限定されているので
亀の位置からX軸に平行で檻の頂点のX座標の最大値よりも大きいX座標をもつ点までの線分を考え
その線分と檻の各辺との交点が奇数個であれば内部、偶数個であれば外部と判定する
交点があるかどうかの判定は
亀から線分の端点へのベクトルをA
亀から檻の辺の両端点へのベクトルをB、C
外積A×Bと外積A×Cの符号が異なれば交点をもつと判断する
Q. 亀が檻にぶつかったときに,次にどの方向に動くのか求める計算方法を示しなさい。
A.
檻の頂点がとる座標の最大最小値は限定されているので
現在の亀の位置から亀の移動方向で確実に檻の外にある点までの線分を考える
この線分と檻の各辺との交点をそれぞれ問題Bの亀の軌跡とハードルの交点を求める方法で求める
もし線分が2辺と交わるのなら、それは檻の角でぶつかったことになる
この場合は亀の移動方向を180度回転させる(移動方向ベクトルの符号を反転させる)
さもなければ亀は檻内部にいるので1辺との交点しかないはず
その辺がX軸の正の方向となす角をα
ぶつかる前の亀の移動方向とX軸の正の方向とのなす角をθ
衝突後の亀の移動方向とX軸の正の方向とのなす角は 2 * α - θ となる
まあ、ミニミニ衝突判定ライブラリを書かなきゃいけないからね。
あのクソ亀公使って・・・あれはやる気なくす。
javadoc見て酷い設計だと思ったが。
ソースコード見て絶句した。
あの本、素人向けでライブラリ作るんじゃなくて
既存ライブラリ使う所から始めるんだってさ。
恐いものみたさに見てしまった
以前同じような問題を解いた
>>686 有難うございます!助かりました。
大いに参考にさせてもらいます!
【 課題 】1.レベル1(直線発生アルゴリズム)
直線式を用いて(100,100)から(600,300)の2次元座標点を結ぶ直線と、(100,100)から(300,600)の点を結ぶ直線を描画する。直線の色は視覚可能な色であれば任意とする。JavaのPolylineなど直線描画関数を使用しない。
2.レベル2(3次元デプスキューイング・アルゴリズム)
(100,100,0)から(600,300,100)の3次元座標点を結ぶ直線を描画する際、z値の座標値を輝度と見なしてz=0の点の輝度を0(最小値)、z=100の点の輝度を255(最大値)として描画する。直線の色は視覚可能な色であれば任意とする。
【 形態 】2. Applet
【 期限 】4月26日
【 補足 】1はたぶん
package Ex1;
import java.applet.Applet;
import java.awt.Graphics;
public class level1 extends Applet {
public void paint(Graphics g) {
g.drawLine(100, 100, 600, 300);
g.drawLine(100, 100, 300, 600);
}
}
だと思うのですがどうでしょうか?
2はまったくわかりません
>>689 それがよくわからんのです。
使わないとしたら、どのようにすれば?
直線式というのが気になりますよね。
>>688 drowLineってここで言ってる直線描画関数なんじゃ?
y=ax+bみたいな式を作ってしてループでぐりぐりまわしてちまちま点を打っていけ
ととれるんだけど…
>>691 なるほど。
そういう用語とか調べてはいるのですが、よくわからないもので。
forを使うのですか?
drawLine等を使わないとなると、
for文で回して1ピクセルごとに直線の座標を計算して点を打っていくんだが、
残念なことにGraphicsには点を打つメソッドがない。
幅と高さが1の四角形の中を塗りつぶす等で代用するか、
画像バッファとして配列等を用意して、それに画素値を入れて行き、
最後にバッファの内容を画像として表示するかのどちらかだな。
Imageを使う手法は習ってる?
あと、問題2の方の座標系は左上が原点でX,Y座標が右、下方向で、
Z座標が画面に垂直な方向ということでいいの?
>>693 丁寧にありがとうございます。
たぶん一番初めの問題なので、それほど高度なことはしないと思います。
Imageを使う手法わかりません。
問い2はそうであると思います。
すまん。プログラムを見れば分かると思うけど、直線の式は、
y = y1 + (y2 - y1) / (x2 - x1) * (x - x1)
x = x1 + (x2 - x1) / (y2 - y1) * (y - y1)
の間違いね。
なんで大学とかって基礎(if文だのfor文だの)一通り教えたらGUIに走るのかな。
そんなのは必要になったときに自習でなんとかなるんだから、もっとOOPを教えるべき。
そりゃ見た目派手で眺める分には楽しいし、
数字の羅列や意味の分からないプログラミング理論を教えられるより、
プログラムによって計算機に何かさせているという実感が沸くからじゃないかね。
もちろん、今後こっち方面で仕事したいとかいう人間は、
GUIが必要になったときに自習で何とかして、OOPとかの基本を教えられるべき人間なんだろうけど。
そういう人間ばかりじゃないと思うから。
本当に必要なのはOOPなんかじゃない論理的な思考だよ。
どんなことも論理的に考え、論理的に理解出来る姿勢。
ある事を知っているということは重要じゃない。
↑にはもちろん、知らない事があったら
ブチ切れるより前に自分で調べるという姿勢も含みます。
まあ
>>688はCGの授業らしいからグラフィクス関係が出てこないと看板に偽りありだけどね
やる気のある奴ならOOPくらい自習で何とかなるよ。
しかし抽象的概念が先っていうのはやる気でねぇよ。
703 :
デフォルトの名無しさん:2007/04/16(月) 12:06:55
【 課題 】一定の幅と高さをもつボードがある。図のようにボード上には左上隅を原点とする座標
系(x 座標、y 座標)が定義されているとする。この時、つぎの条件を満たすように二
辺の長さとボード左上の位置を表す座標をもつ長方形をボード上に配置するプログラ
ムを作成せよ。座標系の単位はピクセル。
【 形態 】1. Javaアプリケーション(main()で開始)
【 GUI 】4. 制限なし
【 期限 】4月17日13時ぐらいまで
【 補足 】自分でやってもどうしてもわからなかったので丸投げです
期限が近くてごめんなさい・・・
でも一応自分でも今努力中です
補足には続きがあります
704 :
デフォルトの名無しさん:2007/04/16(月) 12:09:27
703の補足の続き
1) 配置に関する以下の操作を行うことができる。各操作の名前は以下の通りである。
a) 幅、高さ、左上の位置(x座標、y座標)を与えて長方形を作成する。create
b) 長方形R を指定して、Rを現在位置から指定したx方向の距離x0,y方向の距
離y0b だけ移動する。move
c) 長方形R を指定して、指定した幅の倍率mx(>1)で幅を、高さの倍率my(>1)で
高さをそれぞれ拡大する。倍率は有限小数で与えるものとする。expand
d) 長方形R を指定して、指定した幅の倍率mx(0<mx<1)で幅を高さの倍率
my(0<my<1)で高さをそれぞれ縮小する。倍率は有限小数で与えるものとする。
shrink
e) 長方形R を指定して削除する。delete
f) ボード上の長方形をすべて削除する。deleteAll
g) 2 つの長方形R1 とR2 を指定し、R1 とR2 の重なり部分を抽出し、新たな長方
形R3 として配置する。intersect
(2) その他に次の操作を行うことができる。
a) ボードの状態を表示する。displayBoard
ここで「ボードの状態を表示する」とはボード上にあるすべての長方形の属性(幅、
高さ、x 座標、y 座標)を表示するということ。
b) 配置に関する操作を終了する。 exit
(3) ユーザはキーボード(標準入力)から(1)の操作名と必要なデータを入力し、プ
ログラムが結果のボード上のデータ(どの位置にどの長方形が配置されている
か)を標準出力に出力する。このプログラムは以下のように使用することができ
る。
a) ユーザは起動時にボードの大きさ(幅と高さ)を設定する。
b) 起動すると、操作一覧が表示される。
c) ユーザは操作を選択し、要求されるデータを入力する。
d) 操作の実行が終了すると、操作一覧に戻り、exit が実行されるまで操作を選
択することができる。
さらに続きます
705 :
デフォルトの名無しさん:2007/04/16(月) 12:11:03
704の続き
(6) クラス構成に関する条件:
RectangleEditor:mainメソッドをもつクラス
Rectangle:長方形のクラス
Board:長方形を配置するボードのクラス
Command: ユーザからの入力を受け取り、長方形に対する操作を呼び出し、ボー
ドの状態を更新するクラス
標準入力からの入力ならびに標準出力への出力クラスをInput およびOutputと
して、それぞれ以下のインターフェースを実装する。
public interface InputIF {
public abstract double input();
}
public interface OutputIF {
public abstract void write(Board b);
public abstract void write(String s);
}
10 20 30 40 50 60
10
20
30
40
50
60
だそうです・・・この1.2.3.6を今回はやるそうです
よろしくお願いします
707 :
デフォルトの名無しさん:2007/04/16(月) 16:17:09
>>706 同志がいたんですね・・・ご指摘ありがとうございます
708 :
688:2007/04/17(火) 00:39:27
>>699 遅れましたが、ありがとうございました。
if (Math.abs(dx) > Math.abs(dy)) {
for (int x = x1; x != x2; x += sx) {
double y = y1 + (double) dy / dx * (x - x1);
setPixel(g, x, y);
}
} else {
for (int y = y1; y != y2; y += sy) {
double x = x1 + (double) dx / dy * (y - y1);
setPixel(g, x, y);
}
と途中にあったのですが、これが点をひとつずつずらしていっているという作業なのですか?
今までforはfor(int a=0;a<10;a++)のような簡単のものしか扱った事しかないので、
理解に苦しんでいます、
>>708 sx(sy)はx1>x2(y1>y2)なら-1、x1<x2(y1<y2)なら1が入ってるから、
x(y)がx1(y1)から始まればx(y)座標を1ずつ変化させて、
最終的にx2(y2)に到達してx!=x2(y!=y2)が不成立となりループが終了する。
710 :
688:2007/04/17(火) 11:52:43
>>709 1の問題を自分なりにわかりやすく解いてみたのですが、線が点線のようになってしまいます。
なにが足りないのでしょうか?
package Ex1;
import java.applet.Applet;
import java.awt.Graphics;
public class level1 extends Applet {
public void paint(Graphics g) {
drawLine1(g, 100, 100, 600, 300);
drawLine2(g, 100, 100, 300, 600);
}
private void drawLine1(Graphics g, int x1, int y1, int x2, int y2) {
for (int y = y1; y < y2; y += 1) {
double x = x1 + (double) (x2 - x1) / (y2 - y1) * (y - y1);
setPixel(g, x, y);
}
}
private void drawLine2(Graphics g, int x1, int y1, int x2, int y2) {
for (int x = x1; x < x2; x += 1) {
double y = y1 + (double) (y2 - y1) / (x2 - x1) * (x - x1);
setPixel(g, x, y);
}
}
private void setPixel(Graphics g, double x, double y) {
g.fillRect((int) x, (int) y, 1, 1);
}
}
【 課題 】以下のプログラムを作成せよ。
(1)スタックと演算子順位を使った構文解析により、中置記法の式を後置記法に変換するプログラム。
(オペランドはa〜zの一文字とする)
(2)中置記法の式を後置記法に変換し、スタックを使ってその後置記法の式を計算するプログラム。
(オペランドは整数または実数)
後置記法に変換するアルゴリズム:
初期設定:スタックに'$'だけを積む
以下を繰り返す
(1)次の入力記号aiを読む(入力記号がなかったら'$'を読んだことにする)
(2)aiがオペランドなら、それをそのまま出力
(3)aiが'('なら、それをスタックに積む
(4)aiが')'なら、最初に出てくる'('までスタックから降ろす(オペレーターは出力する)
(5)aiが'$'なら、'$'までをスタックから降ろし(オペレーターは出力する)、処理を終了
(6)その他の場合(aiはオペレーター。そのときスタックのトップがbであるとする)
bがオペレーターでありprec(b)>=prec(ai)である間(precは演算子順位を返す関数)
bをスタックから下ろして出力する。
bがオペレーターでないか(bは'('か'$')、prec(b)<prec(ai)なら、aiをスタックに積む
prec(+)=prec(-)=1
prec(*)=prec(/)=2
問題の例:
中置記法 a*b+c → 後置記法 ab*c+
中置記法 d-(e+f*g) → 後置記法 defg*+-
【 形態 】1. Javaアプリケーション
【 期限 】4/20(金) 23:00まで
【 Ver 】java version "1.6.0_01"
丸投げですがよろしくお願いします。
>>710 惜しい!
drawLine1はy軸を基準に1ドットずつ描画してるだろう。
だけど、引数をみるとx軸の線の方がy軸より長い。
だからdrawLine1はy軸が1増えるたびに、x軸の一定距離の描画をすっぽかしている。
もう答えは分かるだろう。
713 :
688:2007/04/17(火) 20:22:28
714 :
712:2007/04/17(火) 22:58:02
>>713 課題はクリアしてるし、これで提出しても最低でも良(優良可不可)、学校によっては優をとってもおかしくないと思う。
でも、線は太くなるだろう。
まだ時間があるなら極めるも良し、このまま寝るも良し。
ただ、さっきのソースの方が今回のソースより惜しかった。
715 :
688:2007/04/17(火) 23:29:18
>>714 ありがとうございます。
とりあえず他の授業のレポートも残っているので、これで切り上げます。
色々とありがとうございました
1,2,3,…,nの和・積を表示されるプログラムを作りたいのですが、わかりません。教えて下さい。
たとえば7を入力すると、
1+2+3+4+5+6+7=28
1*2*3*4*5*6*7=5040
という風になります。
【形態】CPad for Java2 SDK
【期限】4月24日午後0時
【補足】計算はできているのですが、1+2+3+…1*2*3*,の部分ができない状態です。
??
>>718 「
>>1を1文ずつ良く読め。テンプレに従って書け。」ということ
守らないとスルーされるから(−人
>>711 ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29329 //////////--**++**-- "ファイル名"
で各ファイルに分解してくれ。
設計せずにてきとーに書いたので、かなりいい加減なコードだ。
正しい入力にはたぶん正しく応答すると思うが、
誤り処理の仕様が書かれてなかったので、誤った入力は無視したり例外を投げたりてきとー。
中置記法の式の与え方も書いていなかったので、コマンドライン引数で与える形にした。
(1)の実行はjava InfixNotationTranslator "a*b+c"みたいに。
(2)の実行はjava Calc 1.5+3/2みたいに。
空白文字は無視するし、複数のコマンドライン引数に分けて与えると空白を挿入して連結する。
字句解析器に渡す入力はReaderにしてるので、
入力がファイルとかコンソールとかなら今のStringReaderをそういう入力にすれ。
722 :
688:2007/04/19(木) 21:49:43
【 課題 】
1.レベル1(スクロールバーによる回転)
直線が互いに直行するメッシュ図(碁盤の目の模様)を描画し、スクロールバーにより、メッシュを360度回転せよ。
メッシュは2次元図形でよい。またメッシュの色や数(>4)は任意とする。
2.レベル2(3次元メッシュ)
メッシュを3次元で描画し、3軸のスクロールバーを用いて3次元で回転する。回転中心はメッシュの中央とする。
3.レベル3(デプスキュー)
課題2において、z軸の値を輝度(色)と見なしz値が遠方を輝度が弱く、手前を強い映像を描画し、これを3軸のスクロールバーで回転せよ。メッシュは細かくするのが好ましい。
4.レベル4(透視変換)
課題3のメッシュに透視変換(z値でx、y軸を除算)を加えて描画せよ。
【 形態 】2. Applet
【 期限 】4月3日
【 補足 】
スクロールバーは作れたのですが、メッシュがいまいちわかりません。
直線を組み合わせて作るだろうということはわかるのですが。。。
>>722 1本の直線の描き方は分かってきたんだから、
メッシュは線分を複数描けばすむじゃないか。
ところで、これも標準のAPIを使わず自前の直線描画メソッドを使うの?
回転したときの線分の両端の座標の計算はJavaの宿題じゃなくて数学の宿題だな。
座標変換の式を質問者が補足で説明した方がいい。
なんにせよ、しめきりまで少なくともまだ1年近くあるんだし、もう少し自分でがんばれw
>>723 あれ?AffineTransform使わないの?
725 :
688:2007/04/20(金) 01:12:56
>>723 ちょww
5月3日ですorz
直線をforループで等間隔に並べていけばおkってことですか?
APIとは?
>>724 前回の出題レベルを見るにAffineTransformは使っちゃいけないんじゃないか?
それに3次元に対応できないし。座標変換は自分で書けってことだと思うが、どうよ?
>>722 Java3Dとかでも使っていいってこととは思わないんで。
>>725 > 直線をforループで等間隔に並べていけばおkってことですか?
原理的にはそう。
「標準のAPIを使わず自前の直線描画メソッドを使うの?」って聞いたのは、
drawLineとかのJavaで最初から用意されている直線描画用のメソッドは使ってもいいのかどうかってこと。
前回は点を打って直線にするメソッドを自前で作ったから。
標準で用意されたどのメソッドまで許されるのかとかは、AffineTransformは使えないの?とかも含め、
どの程度の縛りがあるのかは授業を受けている人間でないと分からない。
728 :
688:2007/04/20(金) 20:52:39
>>726 drawlineは前回のものを使うそうです。
それとlength = (width > height ? height : width) / 3;
の?って始めてみたのですが、どういう意味があるのですか?
>>728 三項演算子
条件式?値1:値2
条件式の評価結果がtrueなら値1、falseなら値2を返す
値の代わりに処理も記述可能(複雑な処理だと可読性が下がるのであまりお勧めしない)
if〜elseを一行にまとめたようなものとでも思ってくれい
730 :
デフォルトの名無しさん:2007/04/22(日) 00:04:57
【 課題 】
int型の要素を持つsourceを0,2,4,6,....16,18で初期化しint型の配列要素aliasを宣言し、sourceと同じ配列要素を確保する。
aliasにsourceを代入する。 int型の配列変数targetを宣言し、sourceと同じ配列要素数を確保する。
sourceのそれぞれの要素をtargetの要素に繰り返し文によりコピーする。
aliasのそれぞれの要素を10倍する(10倍したものをaliasに代入)しsourceの要素、targetの要素をそれぞれ表示
【 形態 】1. Javaアプリケーション(main()で開始)
【 期限 】提出期限は月曜です。
【 補足 】 プログラムは作って、コンパイルは出来るように なったんですが、表示が上手くできません
class FirstClass04{
public static void main(String args[]) {
int source[]={0,2,4,6,8,10,12,14,16,18};
int alias[]= new int[10];
alias=source;
int target[]=new int[10];
for(int i=0; i<10; i++) {
target[i]=source[i]; }
for(int j=0; j<10; j++) {
alias[ j]=alias[ j]*10; }
System.out.println("sourceの要素");
for(int g=0; g<10; g++) {
System.out.println("source[ j]"); }
System.out.println("targetの要素");
for(int k=0; k<10; k++) {
System.out.println("target[i]");
}}}
System.out.println("source["+j+"]="+source[j]);
面倒だから読んでないんだがjでいいのか?
>>730 System.out.printlnで表示するときに""で囲むのは囲まれたものを文字そのものとして表示するとき
変数の内容を表示するときは""で囲わずそのまま書く
public class FirstClass04 {
public static void main(String[] args) {
int[] source = {0, 2, 4, 6, 8, 10, 12, 14, 16, 18};
int[] alias = new int[source.length];
alias = source;
int[] target = new int[source.length];
for (int i = 0; i < source.length; i++) target[i] = source[i];
for (int j = 0; j < alias.length; j++) alias[j] = alias[j] * 10;
System.out.println("sourceの要素");
for (int g = 0; g < source.length; g++) System.out.println(source[g]);
System.out.println("targetの要素");
for(int k = 0; k < target.length; k++) System.out.println(target[k]);
}
}
733 :
デフォルトの名無しさん:2007/04/22(日) 14:24:38
【 課題 】オセロの盤面を作成せよ《必須》
【 形態 】1. Javaアプリケーション(main()で開始)
【 GUI 】2. Swing
【 期限 】2007/4/22
【 Ver 】java version "1.5.0_10"
【 補足 】以下のソースのプログラムを起動したときにオセロの盤面が表示されません。
フレームを最大化などにすると、ようやく表示されます。
コンポーネントの作成順序が間違っているのでしょうか?
734 :
733:2007/04/22(日) 14:29:18
以下がコンポーネントを作成しているメソッドになります。
public void init_view(){
cnt = getContentPane();
cnt.setLayout(new BorderLayout());
JPanel jp[] = new JPanel[2];
jp[0] = new JPanel(new GridLayout(8,8));
jp[1] = new JPanel(new FlowLayout());
for(int i=0;i<8;i++){
for(int j=0;j<8;j++){
jl[i][j] = new JLabel();
jl[i][j].setBorder(new LineBorder(Color.black,3));
jp[0].add(jl[i][j]);
}
}
jb[0] = new JButton("PASS");
jb[1] = new JButton("EXIT");
jb[2] = new JButton("RESET");
jp[1].add(jb[0]);
jp[1].add(jb[1]);
jp[1].add(jb[2]);
jp[0].setBackground(Color.green);
jp[1].setBackground(Color.black);
cnt.add(jp[0],BorderLayout.CENTER);
cnt.add(jp[1],BorderLayout.SOUTH);
}
736 :
デフォルトの名無しさん:2007/04/22(日) 18:39:45
【 課題 】 複素数のクラス(Complex)を考える.複素数は「もの」として考えると,
実部の値と虚部の値という性質を持つ必要があり,実部や虚部の値を取り出す機
能が最低限必要である.
コンストラクタ:
実部と虚部を引数として初期化
フィールド:
実部の値及び虚部の値を持つために,realNum 及び imagNum を用意
メソッド:
toString()メソッドは,「2.3+4.2i」等と表示を行うためのメソッド(詳細は次週)
getReal()メソッドは,複素数の実部の値を返す
getImaginary()メソッドは,複素数の虚部の値を返す
以下の SecondClass01.java を完成して,実行しなさい.
【形態】1. Javaアプリケーション(main()で開始)
【 期限 】2007/4/23まで
737 :
デフォルトの名無しさん:2007/04/22(日) 18:41:04
これが問題です。
class SecondClass01{
public static void main(String args[]){
Complex complex01 = new Complex(2.5, 4);
Complex complex02 = new Complex(4, -2);
System.out.println("The first complex = " + complex01);
System.out.println("The second complex = " + complex02);
System.out.println("Re(" + complex01 + ") = " + complex01.getReal());
System.out.println("Im(" + complex01 + ") = " + complex01.getImaginary());
}}
class Complex {
double realPart;
double imagPart;
public Complex(double r, double i){
realPart = r;
imagPart = i;}
public double getReal(){
// ここを完成させる}
public double getImaginary(){
// ここを完成させる }
public String toString(){
StringBuffer sb = new StringBuffer().append(realPart);
if (imagPart >= 0.0)
sb.append('+');
return sb.append(imagPart).append('i').toString();
}}
738 :
デフォルトの名無しさん:2007/04/22(日) 18:47:22
732の方ありがとうございました。
【 課題 】
730と同じ問題で、実行後どうしてそのような表示結果が得られるかを
変数の参照方法などに注意して詳しく説明しなさい.
【 期限 】明日までです
739 :
デフォルトの名無しさん:2007/04/22(日) 19:18:25
ソースを一行ずつみていって、メモリへの格納内容を見ていけばいいんじゃない?
741 :
733:2007/04/22(日) 19:54:51
>>735 setBoundsでもうまく行きません。
お願いします。今日中にやらないと間に合いません。
742 :
デフォルトの名無しさん:2007/04/22(日) 20:37:21
今日中?朝マックまで12時間はあるだろ?
>>744 setVisibleを最後にもってきたらちゃんと表示された
そりゃそうだろうな
激しくすれ違いなんだが、
次の2の補数表現で表された2進数を10進数を直せ。
0111 1111 1111 1111 1111 1101 0011 0011
>>748 1111 1111 1111 1111 1111 1101 0011 0011
?
>>747 最上位ビットが0ってのが,いまいち解せんのですが
33ビットの二進数だと考えて、つまり
1 0111 1111 1111 1111 1111 1101 0011 0011
↑
ここに符号があって、値部分を32ビットで表現してる
ものだと解釈すれば、それを10進数で表現したものは
-2147484365
になると思います。
一方、
>>749さんのように解釈し、「2の補数なので符
号ビット部分は1だけど、
>>747では符号ビットを除い
て示した(ただしつい最上位ビットも0と書いてしまった)
のだと見れば、それを10進数で表現したものは
-717
じゃないでしょうか。
しかし、ここはJavaスレですし、Javaらしく「intは符号
付き32ビット」と考えれば
>>747の数値は正の値という
ことになり
>>748にあるように、10進数での表現は
2147482931
だと思います。
どれが正解かわかんねw
>>751 まあ問題文の日本語の助詞からして狂ってるから
分かるわけないな。
753 :
デフォルトの名無しさん:2007/04/23(月) 22:27:31
重い課題投下してもいいでしょうか・・・
【 課題 】フレーム上で画像を選択して読み込み、その画像を閾値(しきいち)をつかって二値化するプログラムを作成せよ。
まずフレームのメニューから画像を読み込み、さらにメニューから閾値を入力するダイアログを表示させる。
そのなかに用意したテキストボックスに閾値を入力して決定すると、あらたなフレームに二値化された画像が表示される。
【 形態 】1. Javaアプリケーション(main()で開始)
【 GUI 】1. AWTのみ(フレームを使う)
【 期限 】4月25日(水)午後5:30迄
【 Ver 】java version "1.5.0_11"
【 用語 】
●閾値(しきいち)
閾値というのは各画素の明るさをあらわす一定の基準値であり、
画像の各画素値が0〜255の濃度で表されるため、これを閾値の範囲として定める。
●二値化
二値化とはこの場合前述の閾値を使って、画像を黒と白の二つの値に変換することである。
例えば閾値100であるならば濃度値100以上は黒それ以下は白というように。
※モノクロ画像に変換するということではない。
【 補足 】全然わかりづらいと思うので、ペイントで書いてみました。
http://www.uploda.org/uporg785109.png たくさん数式が必要なんでしょうけどわかりません;
プログラム上でRGBにマスク?をかけてモノクロ画像にしてから濃度値を取り、
二値処理を行うってことでいいんでしょうか。全然的外れなこと言ってたらごめんなさい;
ここまでの少ない情報量で作れるかたいらっしゃらないでしょうか?
どうかよろしくお願いします。
RGBから明るさへはjava.awt.Color.RGBtoHSBで変換できるので、
そこからB成分だけ貰えばいい。
訂正 →HSB表現に変換できるので
UI作るのめんどうなのでヒントだけ。
756 :
デフォルトの名無しさん:2007/04/23(月) 23:01:36
>>755 ありがとうございます。
自分でも頑張ってみます。
758 :
デフォルトの名無しさん:2007/04/24(火) 06:52:46
759 :
デフォルトの名無しさん:2007/04/24(火) 06:53:15
760 :
デフォルトの名無しさん:2007/04/24(火) 06:53:22
761 :
デフォルトの名無しさん:2007/04/24(火) 06:53:24
じゃあ俺がやるよ!!!
764 :
デフォルトの名無しさん:2007/04/24(火) 06:54:17
・・・俺もやろうかな
765 :
デフォルトの名無しさん:2007/04/24(火) 06:54:49
766 :
デフォルトの名無しさん:2007/04/24(火) 06:55:03
767 :
デフォルトの名無しさん:2007/04/24(火) 06:55:12
768 :
デフォルトの名無しさん:2007/04/24(火) 06:55:20
769 :
デフォルトの名無しさん:2007/04/24(火) 06:55:33
770 :
デフォルトの名無しさん:2007/04/24(火) 06:55:59
772 :
デフォルトの名無しさん:2007/04/24(火) 06:56:29
773 :
デフォルトの名無しさん:2007/04/24(火) 06:56:56
774 :
デフォルトの名無しさん:2007/04/24(火) 06:57:57
777 :
デフォルトの名無しさん:2007/04/24(火) 10:03:05
780 :
753:2007/04/24(火) 18:39:48
>>779 うおおおおおおおおおおおおおっ!!!!!!!
ありがとうございます!!!動作確認しました!
すげええええ!今感動でちょっと泣いてますマジで。
完璧です。
てきとーだなんてとんでもない。
細かいとこに気遣いを感じるプログラムですよ!
俺のプログラムなんて元画像の大きさに合わせてフレームの大きさ変えることすら出来ないんですもん。
俺の説明不足なのにコメントまでつけていただいて・・・
さっき帰宅したものですから、
お返事が遅れてしまって申し訳ありませんでした。
本当にありがとうございました。恩に着ます;;
781 :
デフォルトの名無しさん:2007/04/24(火) 21:24:10
流れ嫁よ糞が
782 :
753:2007/04/24(火) 22:15:30
>>757からの流れには、俺もこれはもうだめかな・・と思ったね。
プログラム板あなどりがたし。
朝の10時から暇な奴だな
鈴木高弘は火曜晩は暇なのか?
毎週火曜日晩になると無茶な暴れ方をするな。
785 :
688:2007/04/25(水) 00:22:03
>>727 亀レスですが、g.drawlineつかってよいそうです
うpしてもらったのを参考に自分なりに作り直しているのですが、直接座標指定(100とか200)
してしまうと回転はしなくなってしまうのですか?
回転しなくてあせってます泣
786 :
688:2007/04/25(水) 01:08:04
逆に数値を指定しないと、画面にメッシュが表示されません。。。
作り直したものも示さずに誰が答えられるんだ?
お前の頭の中はオープンソースなのか?
ソースを出したからといって答えてくれるとも限らんが
例えばLevel1
public void paint(Graphics g) {
Point p1 = rotateZ(50, 200);
Point p2 = rotateZ(250, 200);
drawLine(g, p1.x, p1.y, p2.x, p2.y);//(50,200)-(250,200)を回転した線
p1 = rotateZ(100, 50);
p2 = rotateZ(100, 250);
drawLine(g, p1.x, p1.y, p2.x, p2.y);//(100,50)-(100,250)を回転した線
}
アプレットのサイズは線が見える程度はないと当然見えんよ
この問題昔やったな・・・。
789 :
688:2007/04/26(木) 00:52:20
>>787 なんとかできました。
ありがとうございます。
参考にしながらlevel3まで来たのですが、少々複雑になってきたので、g.drawlineを使った場合
を教えていただけないでしょうか?
>>789 せっかく直線描画ルーチンを実装したのに、面倒な方向が好きなやつだね。
Level3,4をどうしてもGraphics#drawLineで描画したいっていうのなら、
zL,zHを、z<=zLで黒(最小輝度)、z>=zHで白(最大輝度)になるようなz座標の値として、
Foo3CanvasやFoo4Canvasの
private void drawLine(Graphics g, int x1, int y1, int z1, int x2, int y2, int z2)
の中身を、
点(x1,y1,z1)と点(x2,y2,z2)を通る直線と、平面z=zLとの交点(Px,Py,zL)、平面z=zHとの交点(Qx,Qy,zH)を求めて、
Graphics2D g2 = (Graphics2D)g;
g2.setPaint(new GradientPaint(Px, Py, Color.black, Qx, Qy, Color.white));
g2.drawLine(x1, y1, x2, y2);
で線分を描画するようにすれば、できるような気がする。
z=zLやz=zHに平行な直線の時は交点が求められないけれど、
このときは直線全体が同じz座標の値だから、その値に応じた色をsetColorして単一色の線分を描くだけ。
これで、setPixelとsetLuminanceが不要になる他は変更せずにすむ。
z座標と各点の色との対応関係はGradientPaintによるグラデーション描画の実装に依存するけれど。
まあsetPixel内でfillRectでピクセルを塗るかわりに、
Graphics#drawLineで一点だけの直線を引いてもGraphics#drawLineを使ったことにはなるね。
791 :
688:2007/04/26(木) 10:40:47
>>790 詳しくありがとうございます。
まだイロイロと聞きたいことあり、聞きたいのですが、ここに自分の晒すと
同じ学校のほかの生徒がコピペしてしまうかもしれないので、もしよかったらメールで教えていただけませんか?
[email protected]
>>791 アダルトサイトに登録しておいた。
っていうのはジョークとして、おまいの専属家庭教師になれと?
お 断 り だ 。
793 :
688:2007/04/27(金) 09:03:50
>>792 そうですか。。
せめて、うpしたのを添削してほしかったわけですが。。。
>>793 ネタじゃなかったのか。馬鹿だなお前さん。
>>793 添削って、、、それをするのが学校だろw
池戸さん怒るぞ
>>796 ( ^ω^) …
(⊃⊂)
⊂(^ω^)⊃ セフセフ!!
ミ⊃⊂彡
法政…?いやまさかな
>>791 ここに投げたこと自体はまあアレなんだが、
出てきたものを自分なりに咀嚼して再構築しようとしているのはいいことだと思って付き合っただけで、
ひとが晒したソースを自分が参照するのはよしとするが、
自分のソースがひとに参照されるのは気に入らんなどという二重基準な方針には付き合わんよ。
このスレはソースが出てくれば幸運、アフターサービスはレアケースくらいの感じだ。
せっかく学校に授業料を払ってるんだから疑問は先生に聞いて解決しる。
【 課題 】
フィボナッチの数列は以下の漸化式で表される。
f1 = 1, f2 = 1
fi = fi-1 + fi-2 (i >= 3)
f1 から f10 を計算し表示せよ。さらにその和を求めよ。
またプログラム作成にはWhile 文を使え。
【 形態 】1. Javaアプリケーション(main()で開始)
【 GUI 】4. 制限なし
【 期限 】 2007/04/29 PM01:00 まで
【 Ver 】java version "1.5.0_11"
【 用語 】特になし
【 補足 】丸投げです。よろしくお願いします。
>>800 public class Fibonacci{
public static void main(String[] args){
int[] f=new int[11];
int i,sum;
sum=0;
i=1;
while(i<=10){
if(i>=3){
f[i]=f[i-1]+f[i-2];
}else{
f[i]=1;
}
System.out.println("f(" + i + ")=" + f[i]);
sum+=f[i];
i++;
}
System.out.println("フィボナッチ数の合計 = " + sum);
}
}
>>801 こんなに早くありがとうございます。
非常に助かりました。
【 課題 】リマソンの描画
【 形態 】Applet
【 GUI 】制限なし
【 期限 】来週の月曜日まで
【 Ver 】java version "1.6.0"
【 補足 】丸投げです。静止画でいいんでよろしくお願いします。
r=b+acosθ
* a=bのとき「カージオイド」
これ数1じゃないか?
805 :
デフォルトの名無しさん:2007/04/29(日) 09:58:42
【 課題 】重複しない配列を作れ
【 形態 】Javaアプリケーション(main()で開始
【 GUI 】制限
【 期限 】火曜日
【 Ver 】
【 補足 】
※要素が重複しない一つの配列を作れではありません。
要素が重複しないn!個の配列を列挙する問題です。
たとえば要素数が3なら
{1,2,3},{1,3,2},{2,1,3},{2,3,1},{3,1,2},{3,2,1}
を表示したいわけです。nは比較的小さな数(n<8くらいまで)で計算量が膨大にならない程度でかまわいません。
>>805 圧縮したので少しパスタ
public class Main {
public static void main(String[] args) {
int n = 4; //要素数.設定方法は任す
int[] a = new int[n];
for (int i=0; i<n; i++) a[i] = i+1;
while (true) {
System.out.print("{ ");
for (int i=0; i<n; i++) System.out.print(a[i]+" ");
System.out.println("}");
int k=n-2, l=n-1, w;
while (k>=0 && a[k]>a[k+1]) k--;
if (k<0) break;
while (a[k]>a[l]) l--;
w = a[k]; a[k] = a[l]; a[l] = w;
l=n;
while (++k<--l) {
w = a[k]; a[k] = a[l]; a[l] = w;
}
}
}
}
, '"´  ̄` 、 /Z
___,. --- . / / イ i ヽ ヾイ
,.-‐'´ , ヽ. .' 〃 /||!|. l .い
. /亅 ノ / ト、 i i./|/ !ハl i| | iト′
{ { / 〈. / ! \_ ,r┐ | ルfホ. l!≦小! ! リ
. ヽヽ ヽ ___、__,⊥ } |i ヽ_l l | tリ , {tリ ! !v
ヽゝ{__ _/ !! `ヽ.| l、 r‐‐、 `゜ | /ノ
`¨ぃこヱ孑' ぃ| !ヽ._ ノ ,..|v'´ ぱんち
`ー―---‐、¬¬-、_ / ,'ー-、_、Z¨´_}}|(う、
冫こ__ラーV /| } } ̄ !厂フ′
809 :
805:2007/04/30(月) 02:30:27
>>807 ありがとうございました。こんな質問にも答えてくださって感謝です。
810 :
デフォルトの名無しさん:2007/04/30(月) 19:57:59
【 課題 】class SquareCode {
public int area(String tmpWidth, String tmpHeight){
int width = Integer.parseInt(tmpWidth);
int height = Integer.parseInt(tmpHeight);
int answer = width * height;
return answer;
}
}
上記のSquareCodeクラスを継承して、更にarea()メソッドをオーバーライドした
TriangleCodeクラスを定義して下さい。
【 形態 】1. Javaアプリケーション(main()で開始)
【 GUI 】4. 制限なし
【 期限 】5月1日
【 Ver 】java -version"1.4.2"
【 補足 】諸事情により動作確認は明日の夜になりそうです。
,. --―…、
/ /:. \
./ /::::::::::. ヽ
‘ー--一'´ \:::::::. ',
ヽ:::::. !
/⌒丶 ,. .-.''.´ . .',:::: |` 丶、
/ !:::::..\/ . . . . . \.L__ l. . . \
| |――/. /、 . . . . . . .ヽ . ヽ . . . .ヽ
| j /. ./ \.ヽ . . . . .'., . . . . . . .',
| / |. . l \_. . . . ',. . . . . . ..|
| / |:.._l ´\ . . . . !. . . . . . .|
l / .|´.l _ ,r7jヽ,. .:.r ‐、 . . ...|
|_,ノ |. .!イト、 弋:ソ!. ..| 〉 . .:.|
|.小 ヾ' , , , |:!. |! イ. . . ..|
|. |..ハ''' |リ!.|l . !. . . . |
|. | |. ヽ、,-_ _ -' ''|.!ヽ.|:.. . . .|
|. | |! . . ._ -' |l ヽ:.:. . .|
|._| > '' |! ', . ...|
__r‐'7 ̄!. !:. .:.|
,r=―フ/ | | _ ,, -- !:. .:.|
/__/ | l l _. - ' /l. . .|
_r''厂\ ! ! l '' / !i . !
// \ | !:人 / i i:リ
./| ヽ_ ヽ!个‐' / i i
| .! \ __/l / /
∨\ / /_l / /
. | \rへ _/ヽー ' ∨ /
>>810 コード見ても何したいのかさっぱりわかんねw
Triangleだと引数足りないからオーバーライドは無理じゃね?w
>>812 簡単に高さ×底辺/2で三角形の面積を出すように、再定義するだけなら、ひきすうは十分でない?
?な所も有るけど気にするだけ無駄ですよ。
>>810 public class TriangleCode extends SquareCode{
public int area(String tmpWidth, String tmpHeight){
int width = Integer.parseInt(tmpWidth);
int height = Integer.parseInt(tmpHeight);
int answer = width * height/2;
return answer;
}
}
814 :
潮吹きたい人この指留まれ〜♪:2007/04/30(月) 21:58:47
all-inone-eclipse でjava練習中ですが
for 文で無限ループになりました。
eclipseでデバッグではなく実行で走っていますが
アプリをどうやって終わらせてるのでしょうか?
eclipse自体はキー入力とかできますが
これってアプリ単独で終了はできないですか?
eclipseごと終了ですか?
今動いていますが、javaw.exeのメモリが増えていますが
だれか〜〜 おせ〜て
おせ〜〜てくれくれ君です
返事が早いか、どこかで異常終了するのが早いか
寝てしまうかか。。。
815 :
デフォルトの名無しさん:2007/04/30(月) 22:27:13
開発やめたら早いよ
>>814 コンソールを表示しているペインに赤い×印のボタンはないかね?
スレ違いなやつを相手にするなって
精々誘導するぐらいにしとかないとノイズが増えるぞ
818 :
デフォルトの名無しさん:2007/04/30(月) 23:00:09
【 課題 】2進数を10進数に変換するプログラムを作れ。
【 形態 】1. Javaアプリケーション(main()で開始
【 GUI 】4. 制限なし
《GUIの課題の場合必ず選択》
【 期限 】期限ナシ。
【 補足 】Java初心者の自分でやってみようと思った課題です。
とりあえず、1101と具体的な数字を10進数に直そうと思いました。
自分なりに作ってみました。ですが、実行してみると、733になってしまいました。
ドコが問題でしょうか?どなたか、初心者に優しい解説をヨロシクお願いします。
public static void main(String[] args) {
String x = "1101"; //2進数を文字列として入力
int a[] = new int [4]; //配列は4つ
double y = 0;
for(char i=0; i<4; i++){
a[i] = x.charAt(i); //配列a[i]に一つずつ2進数の各位を代入する
y = (double)(y + a[i]*(Math.pow(2, (3-i))));
}
System.out.println(y);
}
819 :
潮吹きたい人この指留まれ〜♪:2007/04/30(月) 23:06:13
814です
放置していたらwindowsが重くなって制御できなくなってきたので
eclipseごと落しました。
>>815,816 さんありがとうございます
なにしろポンコツプログラマですので。JAVAできるかな。。。
>コンソールを表示しているペインに赤い×印のボタンはないかね?
ありがとうございます。
再実行させて、×押すとアプリが終了しました。
for ループ内でprint文入れてましたから、Ctrl+C相当なのですね
では、と言うわけで print 文コメント化して実行させましたら
X入力がききません。またwindowsXPがめっちゃ重くなって
javaw.exe がcpu 食っていますが。。。
これはどうやってとめるんだろうか。。。
教えてくれくれ君ですが
教えて〜〜〜
a[i]に入ってるのはchar(文字コード)であって数値ではない。
関係ないけど、一度ずつしか使ってないし配列に入れる意味ないよ。
>>818 いろいろ直したいプログラムですが、とりあえずドコが問題かといえば
a[i] = x.charAt(i); //配列a[i]に一つずつ2進数の各位を代入する
この行です。このであなたがやりたいと思っていることは、たぶん
a[i] = x.charAt(i) - '0';
という処理だと思います。
>>813 どうせ変な問題だし回答も変な方がいいんじゃまいか?
public class TriangleCode extends SquareCode {
public int area(String tmpWidth, String tmpHeight) {
return super.area(tmpWidth, tmpHeight) / 2;
}
}
とか
【 課題 】
ガソリン使用量や走行距離に着目して, 自動車の振る舞いを模倣するクラス Car をプログラミングせよ. Carが主たる機能(メソッド)は以下の通りである.
● int fuel(int x) 自動車にあるxリットルの燃料を給油を 試みることができる. タンクの量は有限(簡単のためタンク容量は30リットルに固定)なので, 実際に給油できるのはxリットル以下で, その量が返り値として得られる.
● int odometer() 自動車にその時点での走行距離(キロメートル)を問い合わせることができる.
● void efficiency(int x) 自動車の燃費を設定することができる(xキロメートル/リットル). 燃費は正整数の値を必ずインスタンス毎に設定すること.
● int drive(int x) 自動車をxキロメートル運転することを試みる. 燃料残量によって実際に運転できる距離は変わる. 実際に運転できた距離は返り値として返される.
【 形態 】1. Javaアプリケーション(main()で開始)/
【 GUI 】1. AWTのみ/2. Swing/3. SWT/4. 制限なし/ 5. その他(明記すること)
《GUIの課題の場合必ず選択》
【 期限 】5月3日までにお願いします。
【 Ver 】java version "1.4.2_12"
Carクラスのmainメソッドは以下のような内容にして, このクラスの振る舞いが正しいか否かの動作チェックをせよ.
// Carクラスの振る舞いのテスト
public static void main(String[] args) {
Car sedan=new Car();
Car wagon=new Car();
sedan.efficiency(20); // セダンならリッター20キロ
wagon.efficiency(9); // ワゴンは9キロしか走れない
sedan.fuel(50); // 双方,50リットル給油しようと試みるが,実際には30しか入らない
wagon.fuel(50);
sedan.drive(100); // 100キロ走ろうとする
System.out.println(sedan.odometer()); // 実際,走れた距離を表示
sedan.drive(200); // 200キロ走ろうとする
System.out.println(sedan.odometer()); // 実際,走れた距離を表示
wagon.drive(100); // 100キロ走ろうとする
System.out.println(sedan.odometer()); // 実際,走れた距離を表示
wagon.drive(200); // 200キロ走ろうとする
System.out.println(sedan.odometer()); // 実際,走れた距離を表示
}
よろしくお願いします。
825 :
810:2007/04/30(月) 23:39:10
826 :
デフォルトの名無しさん:2007/04/30(月) 23:43:45
>>820 ご回答ありがとうございます。
確かに一度しか使っていないので配列使う必要ないですね。
配列を使わない場合、
y = (double)(y + x.charAt(i)*(Math.pow(2, (3-i))));
みたいに書けば、配列必要ないですね。非常に勉強になりました。ありがとうございます。
ただ、この場合も結果は733になってしまいますが・・・
charをintに変えるには、
(int)(x.charAt(i))
みたいにするんですか?実行してみても結果は変わらなかったのですが・・・
文字列を数字として認識させるにはどうしたらいいのでしょうか?
>>821 ご回答ありがとうございます。
突っ込みどころ満載のプログラムですよね・・・orz
確かに、821さんのようにプログラムを書き換えると正しい答えが出ました。
非常に勉強になります。ありがとうございます。
ただ、
a[i] = x.charAt(i) - '0'
の意味が分からないのですが、どういう意味でしょうか?
「xのi番目の数から0を引いた数をa[i]に代入する」
といった意味でしょうか?
かなりの初心者なモノで、質問ばかりで申し訳ないです。
>>826 どちらかというと質問スレ向けっぽい気もするけど
a[i] = x.charAt(i) - '0';
は各文字コードと'0'との差を取る意味
javaで使ってる文字コードは'0','1','2'...の順序に並んでいるので
数字と'0'との差を取ると数になる
(int)(x.charAt(i)) は文字コードをint型に変換しているだけなので'0'が0になるわけではない
a[i] = Character.getNumericValue(x.charAt(i));
てのもあるのでAPIドキュメントを見てみるのもいい
828 :
デフォルトの名無しさん:2007/04/30(月) 23:56:10
>>827 ご回答ありがとうございました。
何となくですが、分かったかもしれないです。
非常に助かりました。ありがとうございます。
スレ違いで申し訳ないです。
でも、非常に勉強になりました。
ありがとうございました。
829 :
827:2007/04/30(月) 23:58:54
ごめん
a[i] = Character.digit(x.charAt(i), 10);
でもいいや
>>828 ソースがほとんどできあがっていて
思い通りに動かない原因が特定できないくらいなら
質問スレで聞いても十分だと思う
そのときは宿題とか課題とかは伏せておいたほうが無難かも
830 :
デフォルトの名無しさん:2007/05/01(火) 00:06:06
>>829 分かりました。
これからは、質問スレで聞いてみようと思います。
本当にお手上げな学校の課題が出た場合は、
こちらのスレも利用するかもしれないので、
その際はヨロシクお願いします。
ありがとうございました。
仮想化とは対象物を不完全ながらもその性質や姿を模倣し現出させることだ。
対して抽象化は、対象物のある特徴的な側面を抽出し概念化することだ。
仮想化で抽象化の技術が使われることはあるだろうが、その逆は考え難い。
コンピュータを使い、扇風機やコタツを抽象化することはできても、仮想化する
ことはできないのだ。少なくとも今の技術では無理だ。コンピュータがその姿形
を変えることはできないのだから。コンピュータが仮想化できるものは、コンピュー
タそのものが直接扱うものだけだ。例えば、仮想メモリ、仮想ネットワーク、仮想
マシン、仮想キーボードといったものだ。
抽象化した結果表現されるものは、設計者が想定した概念やイメージだ。しかし、
実在するものそのものではなく、人が考えたものであるために、このイメージは
非常に脆く、不安定だ。外部からの影響をもろに受け、形を変え易い。個々人が
持つイメージの些細な相違から認識のずれが生じ易い。扇風機の使い方は人に
よって異なることはないが、人がイメージしたものは、その生成から、破棄に至る
まで、非常に不安定な状態になり易い。それを防ぐには、イメージそのものをなる
べく強固なものにし、インターフェースに一貫性と整合性をもたせ、外因による影響
を受けに難くく、壊れ難くするための技術を見につけ、理解を深めておくしかない。
>>823 public class Car{
final int fullFuel=30;
private int tank=0,mileage=0,run=0;
public int fuel(int x){
int empty=fullFuel-tank;
if(empty>x){tank+=x;return x;}
tank=fullFuel;return empty;
}
public int odometer(){return run;}
public void efficiency(int x){mileage=x;}
public int drive(int x){
int ad=tank*mileage;
if(ad>x){tank=tank-x/mileage;run+=x;return x;}
tank=0;run+=ad;return ad;
}
}
833 :
潮吹きたい人この指留まれ〜♪:2007/05/01(火) 09:33:51
>>817 すまません、どこかに誘導してください〜〜♪
ちなみに、タスクマネジャーからjavaw.exeの
プライオリティを下げると、
eclipseの操作がなんとかできますね。。。
834 :
デフォルトの名無しさん:2007/05/01(火) 10:18:24
天国に行ってこい!
835 :
潮吹きたい人この指留まれ〜♪:2007/05/01(火) 10:41:19
塩吹いて〜♪ あ、極楽極楽www ねっちょりちんぽが欲しい〜〜www
836 :
デフォルトの名無しさん:2007/05/01(火) 10:45:33
売ってるよ
837 :
初心者:2007/05/02(水) 15:46:57
【 課題 】一文字入力し、大文字A〜Zならば”大文字”と、小文字a〜zならば”小文字”と表示させよ。
【 形態 】Javaアプリケーション
【 GUI 】制限なし
【 期限 】明日
【 Ver 】コンソールでjava -version1.4.1_03
【
public class test{
public static void main(String[] args){
int c=0;
try{
java.io.InputStreamReader r = new java.io.InputStreamReader(System.in);
c = r.read();
}catch(java.io.IOException e){}
if('a'<=c&&c<='z')System.out.println("小文字です");
else if('A'<=c&&c<='Z')System.out.println("大文字です");
}
}
839 :
初心者:2007/05/02(水) 16:45:24
838ありがとうございました。
質問なのですが、一回実行して終わるのではなく何回も実行できるようにするには
どうすればよいのでしょうか??
a
小文字
A
大文字
のように続けてしたいのですが。
while(true)
841 :
子羊:2007/05/02(水) 19:44:43
【 課題 】二つの数字x,yをキーボードから入力し、最大公約数とxからyの合計を求める。
【 形態 】Javaアプリケーション
【 GUI 】なし
【 期限 】明後日
【 Ver 】1.5.0_11
【 補足 】丸投げでお願いします。
842 :
デフォルトの名無しさん:2007/05/02(水) 22:12:03
public class Max {
843 :
サブリミナル・キッドやっちゃん:2007/05/02(水) 22:25:44
class GCDTest {
public static int gcd(int n,int m){
int r=n%m;
if(r==0) return m;
else return gcd(m,r);
}
public static int kaijo(int n,int m) {
int s;
int i1;
for (i1 = 1; n <= m; i1++)
s *= (double)i1;
return s;
}
public static void main(String[] args){
BufferedReader r =
new BufferedReader(new InputStreamReader(System.in)
int x=Integer.parseInt(r.readLine());
int y=Integer.parseInt(r.readLine());
System.out.println(x+"と"+y+"の最大公約数は"+gcd(x,y)+"です");
System.out.println(x+"から"+y+"の合計は"+kaijo(x,y)+"です");
}
}
844 :
サブリミナル・キッドやっちゃん:2007/05/02(水) 22:29:50
class MaxXYAndXYGCD {
public static int gcd(int n,int m){
int r=n%m;
if(r==0) return m;
else return gcd(m,r);
}
public static int kaijo(int n,int m) {
int s;
int i1;
for (i1 = 1; n <= m; i1++)
s *= i1;
return s;
}
public static void main(String[] args){
BufferedReader r =
new BufferedReader(new InputStreamReader(System.in)
int x=Integer.parseInt(r.readLine());
int y=Integer.parseInt(r.readLine());
System.out.println(x+"と"+y+"の最大公約数は"+gcd(x,y)+"です");
System.out.println(x+"から"+y+"の合計は"+kaijo(x,y)+"です");
}
}
>>841
846 :
デフォルトの名無しさん:2007/05/02(水) 22:35:03
>>845 おお!俺間違ってた。適当やっちゃったよー
847 :
子羊:2007/05/03(木) 22:01:26
841の問題で最大公約数と合計を別のソースでプログラムするにはどういった事をすればよいでしょうか??
848 :
デフォルトの名無しさん:2007/05/03(木) 22:54:08
つ【検索しる】
849 :
子羊:2007/05/04(金) 08:20:24
【 課題 】4桁以内の正の整数を二つ以上入力し、入力された数の最大値、最小値を求め、さらに何件目
の入力かを表示させよ。ただし5桁以上もしくは負の数が入力されたら終了とする。
【 形態 】Javaアプリケーション
【 GUI 】なし
【 期限 】明後日
【 Ver 】1.4.0_03
【 補足 】丸投げでお願いします。 連続で申し訳ないです・・
852 :
851:2007/05/04(金) 23:07:43
【 補足 】後々の追加で申し訳ないです。。
長方形には条件がつきます。。
(1) 長方形とボードに色をつける。
" ボードの色はwhite とする。
" 長方形の色として指定できる色は以下の通りである。
- red
- blue
- yellow
- gray
(2) 長方形に対する配置の機能の内intersect を以下のように拡張する。
" 重なり部分の色を以下の規則でマージして、色を決定する。
- 色の組み合わせが同じであればgray とする。
- 色の組み合わせが yellow とblue ならば、green とする。
- 色の組み合わせが red とyellow ならば、orange とする。
- 色の組み合わせが red とblue ならば、magenta とする。
- その他の場合は cyan とする。
(3) 長方形は色が異なってもボード上で同じ幅、高さ、位置をもつ場合は同一の長方形とみなす。
853 :
デフォルトの名無しさん:2007/05/04(金) 23:35:49
【 課題 】キーボードから数値を入力します。入力された数値が奇数であるならば、
奇数です。と表示し、処理を終了します。
偶数であるならば入力された数値から100までの偶数の合計を求めよ。
【 形態 】Javaアプリケーション
【 GUI 】なし
【 期限 】明後日
【 Ver 】1.4.0_03
【 補足 】丸投です。
>>851 5時間ももたないところにうpされてもな
856 :
851:2007/05/05(土) 00:50:26
待ってる間にじっくり考えても終わってるだろ
859 :
851:2007/05/05(土) 12:24:22
>>858 す、すごい・・・。
今回は色付き対応させ、アプレットを作るといった形です。
説明不足で申し訳ないです。。わざわざコメントまでつけて頂いて。。
本当にありがとうございました。
860 :
デフォルトの名無しさん:2007/05/05(土) 19:09:11
861 :
860:2007/05/05(土) 19:39:39
865 :
デフォルトの名無しさん:2007/05/05(土) 23:56:01
メインHDDが8ケ月以内に故障するらしいのですが、どうしたらいいですか?
問おう、
ttp://nijibox.ohflip.com/futabafiles/001/src/sa15141.txtの何処が仕様か!?
総理、納得のいく回答をお願いします。
さて、専門の課題って仕様とか言って実装の断片を箇条書きにして
最後に謎の出力結果を張り付けるだけの
イミフが多いよね。どうしろと?
>・その値は配列の初期化時に与えられるものとする。
その初期化方法とタイミングを考えるのがお前だろ糞講師。
>>862 1)得点の最小値と最大値。
2)score[]をどのタイミングでどうやって初期化するのか。(受験者の点数を何処から取って来るかに関係)
が、最低限決まってないとどうしようもない。
よろしく。
2)はプログラムの使用方法左右するんでそこら辺も考慮。
受験者数が可変とか言ってんのにその得点がハードコーディングってのは考え難いよね?
なんか俺間違ってる?
862出ちゃったのね・・・orz
>>864 ありがとうございます。
参考にさせてもらいました。
【 課題 】
下記は九九を計算するプログラムの製作途中のものである。
コンパイルは正常終了するが実行時にエラーが出ることが分かっている。
このプログラムの問題点を指摘し、正しく修正すること。
なお、修正箇所は必要最小限にすること。
public class Calc99{
public static void main(String[] args){
String[][] cell = new String[9][];
for(int j = 1; j <= 9; j++){
for(int i = 1; i <= 9; i++){
cell[j][i] = " " + Integer.toString(j * i);
}
}
for(int j = 1; j <= 9; j++){
for(int i = 1; i <= 9; i++){
System.out.print(cell[j][i]);
}
System.out.println();
}
}
}
【 形態 】 Javaアプリケーション
【 期限 】 5/6 17:00
【 Ver 】 特になし
【 補足 】
連休前に出されたのですが今まで放っぽってました。
5/7 10:00 からの授業で提出しますので今日中に解答頂けると有難いです。
>>870 3行目
String[][] cell = new String[9][];
↓
String[][] cell = new String[10][10];
クラス名がC99に見えたぜ
874 :
■■■質問@■■■:2007/05/06(日) 19:11:15
【 課題 】
1: // ドルと円の換算プログラム
2:
3: import java. io. * ;
4:
5: public class dollyen {
6: public static void main( String arg[] ) throws IOException {
7: BufferedReader keyln = new BufferedReader (
8: new InputStreamReader ( System.in ) ) ;
9: double r = 112.0, d, y;
10:
11: System. out. print ( “ ドルの金額(終了は 0)> “ ) ;
12:
13: d = new Double( keyln. readLine() ). doubleValue() ;
14: while ( d > 0.0 ) {
15: y = r * d ;
16: System. out. println( d + “ ドルは ” + y + “ 円です “ ) ;
17: System. out. print( “ ドルの金額(終了は 0) > “ ) ;
18: d = new Double( keyln. readLine() ) .doubleValue() ;
19: }
20:
21: } }
875 :
■■■質問A■■■:2007/05/06(日) 19:11:51
《実行結果》
C : \jp>javac dollyen. java
C : \jp>java dollyen
ドルの金額(終了は 0 ) > 100
100.0 ドルは11200.0円です
ドルの金額(終了は 0) > 50
50.0 ドルは5600.0円です
ドルの金額(終了は 0) > 0
C : \jp>
《問題》
上記のプログラムを温度摂氏(C)を入力して
華氏(F)を出力するものに変更しなさい。
C 0 100
F 32 212
【 形態 】多分Javaアプリケーションです
【 GUI 】?
【 期限 】火曜日まででお願いします(><)
【 Ver 】?
【 補足 】○投げですすいません。宜しくお願い致しますm(__)m
877 :
■■■質問■■■:2007/05/06(日) 19:47:47
>>876 レス有り難うございます。
華氏→摂氏の換算式は C=(F-32)x5/9 です!
>>875 ↓行頭の全角スペースは半角に直すこと。
import java.io.*;
public class dollyen {
public static void main(String[] args) throws IOException {
BufferedReader keyln =
new BufferedReader(new InputStreamReader(System.in));
double f, c;
System.out.print("温度摂氏(終了は0)> ");
f = new Double(keyln.readLine()).doubleValue();
while (f > 0.0) {
c = (f - 32) * 5 / 9;
System.out.println("華氏(F)" + c + "度です。");
System.out.print("温度摂氏(終了は0)> ");
f = new Double(keyln.readLine()).doubleValue();
}
}
}
879 :
878:2007/05/06(日) 20:44:41
>>878の間違えて摂氏と華氏(fとc)が逆だった。
まぁ式直すだけだから自分で直してくれ。
880 :
■■■質問■■■:2007/05/06(日) 21:07:59
>>878さん有り難うございます!!<(__)>
fとcを入れ替えるのは、
c = (f - 32) * 5 / 9;のところだけ
でおkですか!?
881 :
デフォルトの名無しさん:2007/05/06(日) 22:42:25
>>868 863です。問題なく動作いたしました。ありがとうございました。
【 課題 】
俗に「Javaにはポインタは存在しない」と云われているが、
実行時に NullPointerException が発生することがあるのはなぜか?
50字以内で説明せよ。
【 期限 】月曜日中
【 補足 】色々語ることが多すぎて50字に収まりません(><)
>>882 Javaの言語仕様でポインタが扱えないだけで内部の実装ではポインタを使ってるから。
で良いんじゃない?
う〜ん、説明も何もソースコード公開されてるんだが。
>色々語ることが多すぎて50字に収まりません(><)
根本的に突っ込み所のある課題だから仕方ない。
たぶんお前さんは間違ってない。
885 :
デフォルトの名無しさん:2007/05/06(日) 23:22:38
【課題】
例えばコマンドプロントにjava 154 54 12 250
と入力したら
250
154
54
12と出力されるプログラムを記述せよ。
class big{public static void main(String[] args){
int a = 0;int b = args.length-1;
a=Integer.parseInt(args[a]);b=Integer.parseInt(args[b]);
String tmp;
while(a<b){
tmp=args[a];
args[a]=args[b];
args[a]=tmp;
a++; b--;
for(int i=0; i< args.length; i++)
System.out.println("大きい順に並びます");
System.out.println(""+args[ i ]+""); } } }
【 形態 】 Javaアプリケーション
【 期限 】 5/7 9:00まで
【 Ver 】 特になし
【 補足 】 連休前に出題され書いてみたのですが正しく動作されなくて全く分かりません。急ですがお願いします。
>>885 なにこれ
課題は引数を降順にしろってことだよな
で、おまいさんのプログラムを修正しろってことか?
それともそれ無視していいのか?
887 :
デフォルトの名無しさん:2007/05/06(日) 23:35:20
>>887 修正する部分のほうが修正されていない部分よりも圧倒的に多くなる気がする。
それは修正というべきものなのか疑問だ。
class big{
public static void main(String[] args){
java.util.Arrays.sort(args, new java.util.Comparator<String>() {
public int compare(String o1, String o2) {
return Integer.valueOf(o1).compareTo(Integer.valueOf(o2));
}
});
System.out.println("大きい順に並びます");
for(String arg : args) System.out.println(arg);
}
}
java 154 54 12 250と入力しても動かないけどな。
java big 154 54 12 250
>>882 NullPointerExceptionってのは単に例外のクラス名がそういう名前のだけ。
自分で発生させることもできるし。
throw new NullPointerException("ぬるぽ");
>>890 catch (NullPointerException e) {
System.err.println("ガッ");
}
自己撞着orz...
>>887 元のをできるだけ残してみた。でも構成からして違うし。
class big{
public static void main(String[] args){
String tmp;
for(int i=0; i<args.length; i++){
for (int j=i; j<args.length; j++){
if (Integer.parseInt(args[i]) < Integer.parseInt(args[j])) {
tmp=args[i];
args[i]=args[j];
args[j]=tmp;
}
}
}
System.out.println("大きい順に並びます");
for(int i=0; i< args.length; i++) System.out.println(""+args[ i ]+"");
}
}
154てクラス名はさすがに使えないからjava 154 54 12 250で実行ネタは難しいな。
>>888 大きい順か。
× return Integer.valueOf(o1).compareTo(Integer.valueOf(o2));
○ return -Integer.valueOf(o1).compareTo(Integer.valueOf(o2));
895 :
デフォルトの名無しさん:2007/05/07(月) 00:27:14
【 課題 】
CSVファイルからのデータ検索ページを作成しなさい。
また、HTMLファイルのフォームから送られてきた文字列を検索の条件に使用し、結果をJSPを使い<table>で出力しなさい。
なお検索結果が
一戸建て,2LDK,東京都
一戸建て,2LDK,埼玉県
であるならば、
一戸建て,2LDK,東京都
-,-,埼玉県
と表示しなさい。
[使用するCSV]
一戸建て,2LDK,東京都
一戸建て,2LDK,埼玉県
一戸建て,3LDK,埼玉県
マンション,3K,北海道
マンション,4K,大阪府
【 形態 】1.
【 GUI 】4. 制限なし
【 期限 】5月8日までによろしくお願いします
【 Ver 】java version "1.5.0_11"
【 補足 】
ttp://www.iis.u-tokyo.ac.jp/~susaki/envinfo/jsp_csvfile.html#form_reg ↑を参考にCSVの検索はなんとかなりそうなんですが、検索結果の置換(?)がまったくわかりません。。。
よろしくお願いします。。。。
>>896 前行の結果を持っていて、前行と同じだったら"-"を出力させるようにすればいいんじゃないかな?
899 :
のん:2007/05/08(火) 14:55:21
【 課題 】ファイルを読み取り、各タブ文字をスペース文字に変換し、その出力を別のファイルに書き込むアプリケーションを作成せよ
(入出力 バッファ付き文字アプリケーション)
【 形態 】Javaアプリケーション(main()で開始
【 GUI 】制限
【 期限 】明日
【 Ver 】
【 補足 】
なにとぞよろしくお願いいたします。
宿題です。できません。
2ちゃんの方々の力を少し分けてください。
>>899 import java.io.*;
public class Expand {
public static void main(String[] args) throws IOException {
if (args.length != 2) { System.err.println("java Expand infile outfile"); return; }
int expand = 8; // TAB width
BufferedReader in = null;
BufferedWriter out = null;
try {
in = new BufferedReader(new FileReader(args[0]));
out = new BufferedWriter(new FileWriter(args[1]));
String s;
while ((s = in.readLine()) != null) {
StringBuilder sb = new StringBuilder(s);
int index = 0;
while ((index = sb.indexOf("\t", index)) != -1) {
sb.setCharAt(index, ' ');
for (int i = index % expand + 1; i < expand; i++) sb.insert(index, ' ');
}
out.write(sb.toString());
out.newLine();
}
} finally {
if (in != null) in.close();
if (out != null) out.close();
}
}
}
あー、expandコマンドを作れって意味にとったけど、
もし単純にタブ1文字ををスペース1文字にに置き換えるだけという意味だったなら、
int expand = 1; // TAB width
にすれば動作的にはそうなる。無駄処理がいっぱいあることにはなるが。
もし
>>903の意味なら、
>>902の外側のwhileループ内の、
StringBuilder sb = new StringBuilder(s);
int index = 0;
while ((index = sb.indexOf("\t", index)) != -1) {
sb.setCharAt(index, ' ');
for (int i = index % expand + 1; i < expand; i++) sb.insert(index, ' ');
}
を取っ払って、次の2行を、
out.write(s.replace('\t', ' '));
out.newLine();
に。
各タブ文字って書いてあるけど垂直タブは?
普通に考えりゃ各タブ文字って各種のタブ文字って意味じゃなく
ファイルに現れた各々のタブ文字についてって意味だろw
ハードタブからソフトタブに書き換えろ。
って言えばほかに解釈のしようが無いのにね。
言葉を知らんのは不便だなぁ。
Java・・・いつのまに1.6なんて出やがった
気づかなかったよママン(´・ω・`)
【 課題 】立方体を定義し、
スクロールバーを用いてXY平面上の45度の軸の周りを回転する映像を描画する
【 形態 】Applet
【 期限 】木曜日まで
【 Ver 】わかりません
【 補足 】立方体とを回転させることまではできたのですが、45度傾かせることができません。
よろしくお願いします
>>910 >【 Ver 】コンソールでjava -versionを実行し、その結果を貼ります。 《必須》
>立方体を定義し
既存ライブラリの有無。
>スクロールバー
スライダーじゃなくて?
>回転する映像を描画する
正四面体モデリングしてアニメつけてavi吐いてJMFで描画!俺って頭イイ!!
さて、今のままじゃ永遠に回答は来ないわな。
>>912です。
アカウントクラスの問題のところで最初の変数がnextCustIDとなっていますが
実際はnextAcctNoです。失礼しました。
>>911 すいません。
再度。
【 課題 】
スクロールバーを用いてXY平面上の45度の軸を中心に回転する立方体を描画する
【 Ver 】1.5.0
スクロールバーを動かすと立方体が回転します。
回転の中心は立方体の中心です。
わかりずらくてすいません。
C/C++スレにあるようなうpロダの需要ってある?
あるなら作ろうと思うんだが。
ソースポストネット、手軽に投稿できるのはいいんだがログがずっと残るから
ひょんな事からばれてパアという事になりかねん気がしてきた。
917 :
デフォルトの名無しさん:2007/05/09(水) 18:18:55
【 形態 】1. Javaアプリケーション(main()で開始)
【 GUI 】4. 制限なし
【 期限 】 2007/05/10 AM9:00 まで
【 Ver 】java version "1.5.0_11"
【 用語 】特になし
【 補足 】丸投げです。よろしくお願いします。
微分方程式
d^2y/dt^2-μ(1-y^2)dy/dt+y=0, 0≦t≦10
y(0)=2,dy/dt(0)=0,μ=1として上の微分方程式
を数値的に解き、dy/dt(t)をグラフ表示しなさい。
また、分かりやすく説明しなさい。
918 :
デフォルトの名無しさん:2007/05/09(水) 18:27:41
【 形態 】1. Javaアプリケーション(main()で開始)
【 GUI 】4. 制限なし
【 期限 】 2007/04/29 PM01:00 まで
【 Ver 】java version "1.5.0_11"
【 用語 】特になし
【 補足 】丸投げです。よろしくお願いします。
微分方程式
d^2y/dt^2-μ(1-y^2)dy/dt+y=0, 0≦t≦10
を考える。
y(0)=2, dy/dt(0)=0,μ=1として微分方程式を数値的に解き、
dy/dt(t)をグラフ表示しなさい。また、分かりやすく説明しなさい。
物理のお勉強ですか?
微分・積分とはまた、これぞ高校生!って内容だな。
ナツカシス
【 課題 】文字列の最初の10文字と最後の10文字とを表示するプログラム
【 形態 】Javaアプリケーション
【 GUI 】制限なし
【 期限 】今日
【 Ver 】
【 補足 】 最初の10文字までの方まではできましたが最後の10文字がわからないです
class 10Chars{
public static void main(String args[]){
String s ="One Two Three Four Five Six Seven";
String substring = s.substring(0,10);
System,out,println(substring);
}
}
>>921 ヒント: String.length() メソッド
>>921 最初の10文字までの方もできてないじゃん
コンパイル通らねえ
そんなお前にはこれでいいだろう
public class Chars10 {
public static void main(String[] args) {
String s ="One Two Three Four Five Six Seven";
String substring = s.substring(0,10);
System.out.println(substring);
while (s.length() > 10) s = s.substring(1);
System.out.println(s);
}
}
924 :
921:2007/05/09(水) 23:09:48
ネットワークプログラミングが課題で出たのですが解りません。
誰か助けて頂けないでしょうか。
問1 次を実行した結果を書きなさい
サーバー1
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#define PORT 8427
int main(int argc, char* argv[]){
struct sockaddr_in server;
struct sockaddr_in client;
int s_wait;
int s_connect;
int client_len;
unsigned char* client_addr;
char buf[128];
bzero((char *)&server, sizeof(server));
server.sin_addr.s_addr = htonl(INADDR_ANY);
server.sin_family = AF_INET;
server.sin_port = PORT;
if((s_wait = socket(AF_INET, SOCK_STREAM, 0)) == -1){
fprintf(stderr, "サーバへのソケットが生成できません。 \n");
exit(1);
}
if(bind(s_wait, (struct sockaddr*)&server, sizeof(server)) == -1){
fprintf(stderr, "ソケットにサーバを設定できませんでした。 \n");
exit(1);
}
if((listen(s_wait, 5)) == -1) {
fprintf(stderr, "待ち行列が設定できません。 \n");
exit(1);
}
client_len = sizeof(client);
if((s_connect = accept(s_wait, (struct sockaddr *)&client, &client_len)) < 0) {
fprintf(stderr, "サーバに接続を要求できません。 \n");
exit(1);
}
if((close(s_wait)) == -1) {
fprintf(stderr, "ソケットディスクリプタをクローズできません。 \n");
exit(1);
}
client_addr = (unsigned char*)&(client.sin_addr.s_addr);
printf("connected to %d.%d.%d.%d.",
client_addr[0], client_addr[1], client_addr[2], client_addr[3]);
sprintf(buf, "HELLO, %d.%d.%d.%d!.",
client_addr[0], client_addr[1], client_addr[2], client_addr[3]);
if((write(s_connect, buf, strlen(buf))) == -1) {
fprintf(stderr, "ソケットへデータを書き込めません。 \n");
exit(1);
}
if((close(s_connect)) == -1) {
fprintf(stderr, "ソケットディスクリプタをクローズできません。 \n");
exit(1);
}
}
>>928 すいませんでした
cにいけばいいですか?
【 課題 】1、 計算機イプシロンを求めるプログラムを組め。
@ 倍精度(double)
A 単精度
【 形態 】1. Javaアプリケーション
【 期限 】来週の木曜日
【 Ver 】1.5.0
【 補足 】お願いします。
>>932 float ef = 1; while (ef + 1 > 1) ef /= 2; ef *= 2;
double ed = 1; while (ed + 1 > 1) ed /= 2; ed *= 2;
System.out.println("float: " + ef + ", double: " + ed);
System.out.println("1.0f: " + Integer.toHexString(Float.floatToRawIntBits(1)));
System.out.println("1.0f + eps: " + Integer.toHexString(Float.floatToRawIntBits(1 + ef)));
System.out.println("1.0: " + Long.toHexString(Double.doubleToRawLongBits(1)));
System.out.println("1.0 + eps: " + Long.toHexString(Double.doubleToRawLongBits(1 + ed)));
System.out.println("float: " + (float)StrictMath.pow(2, -23) + ", double: " + StrictMath.pow(2, -52));
935 :
デフォルトの名無しさん:2007/05/10(木) 23:31:02
【 課題 】インターネット時代の暗号技術―噂の公開鍵を作ってみよう―
【 形態 】 Javaアプリケーション(main()で開始)
【 GUI 】制限なし
【 期限 】5月末まで
【 用語 】平分:元データ、人間が(第三者も)読むことが出来る
暗号文:第三者に解読不可能な形式に変換されたデータ
暗号化:平分を暗号化する処理
複合化:暗号文を平分に変換する処理
鍵:暗号化、複合化に必要なパラメタ
【 補足 】
公開鍵のしくみ
1番簡単な例だとインターネットを用いて商業活動などを行うとき、たとえばクレジットカードの
番号が知れ渡って悪用される危険を犯したい人はいません。
しかし本や航空券の購入などには便利です。普通、家や金庫の鍵は、所有者や所有者が開けることを許した人が鍵を持ちます。
その場合、不屈性された鍵を普通は直接手渡します。ところがインターネットではそのようなことは出来ません。
そこで考えられたのが閉める鍵と開ける鍵を別々にするという方法です。
そのように分けると閉めるための鍵はネット上で誰でも使えるようにしておいて開けるための鍵は自分だけが知っていればいいわけです。
暗号のための鍵をインターネットでやり取りするという矛盾を抱えるひつようがなくなります。
例
A氏の秘密鍵は1234,公開鍵はABCD, B社の秘密鍵は6789,公開鍵はVXYZ
A氏がB社から物を買う。→他の人には知られないよう自分のクレジットカードの番号を送りたい。
(1) A氏はB社の公開鍵VXYZを使って自分のクレジットカードの番号を暗号にしてB社にメールで送る。
(2) 受け取ったB社は自社の秘密鍵(非公開)6789で複合化します。
(3) 誤ってコレが悪意のあるCさんに誤送されたりクラッキングされてもB社の公開鍵では
複合化できないのでB社の秘密鍵が漏れない限り安全
*今回の課題*
上記のアルゴリズムに従って公開鍵と秘密鍵を生成するプログラムを作って生成してください(きちんと関数わけすること)
これらの鍵を使って暗号化、複合化を行うプログラムも作って結果を確認してください。
暗号化と複合化は同じ関数で引数が異なるだけというのはアルゴリズムを見ればわかると思います。(なるべくコメントをつけておくこと)
>>935 特許庁→RSA暗号技術ゲッツ→Javaで書く→タイホーwww
つーか、こんな問題出す奴は馬鹿にも程があるな。
>>935 public class HogeCode {
private static java.util.Random r = new java.util.Random();
public static byte[] generateKey() {
byte b; do { b = (byte)r.nextInt(); } while (b == -128);
return new byte[]{b, (byte)(-b)};
}
public static byte code(byte text, byte key) {
return (byte)(text + key);
}
public static void main(String[] args) {
byte[] key = HogeCode.generateKey();
System.out.printf("公開鍵: %d, 秘密鍵: %d%n", key[0], key[1]);
byte[] 元の文 = "Hogeほげ".getBytes();
byte[] 暗号文 = new byte[元の文.length];
byte[] 復号文 = new byte[元の文.length];
System.out.print("元の文: "); for (byte b : 元の文) System.out.print(b + ","); System.out.println("\"" + new String(元の文) + "\"");
for (int i = 0; i < 元の文.length; i++) 暗号文[i] = HogeCode.code(元の文[i], key[0]); // 公開鍵で暗号化
System.out.print("暗号文: "); for (byte b : 暗号文) System.out.print(b + ","); System.out.println("\"" + new String(暗号文) + "\"");
for (int i = 0; i < 暗号文.length; i++) 復号文[i] = HogeCode.code(暗号文[i], key[1]); // 秘密鍵で復号化
System.out.print("復号文: "); for (byte b : 復号文) System.out.print(b + ","); System.out.println("\"" + new String(復号文) + "\"");
for (int i = 0; i < 暗号文.length; i++) 復号文[i] = HogeCode.code(暗号文[i], key[0]); // 公開鍵で復号化
System.out.print("公開鍵で復号: "); for (byte b : 復号文) System.out.print(b + ","); System.out.println("\"" + new String(復号文) + "\"");
}
}
あとは公開鍵や暗号文から秘密鍵や平文を知るのが難しいアルゴリズムをいかに見つけるかだが
それは商売のネタになるくらいなのでがんばってくれ
>>940 間違ってはないがそういう問題じゃないよな暗号化って、むしろ
>>941 だからメチャクチャなんだよな
>>935の課題って。
ところでそろそろ次スレだね
いや、たぶん
> 上記のアルゴリズムに従って
ってあるくらいでアルゴリズムは提示されていて
それを質問者が出していないだけだと思ったんだが
単に既にあるアルゴリズムの実装とそのテストが課題だと思う
>>940はもちろんシャレだよ
944 :
デフォルトの名無しさん:2007/05/11(金) 06:26:07
>単に既にあるアルゴリズムの実装とそのテスト
それこそ、もしかしたら本当に
>>398だなw
アメリカなんかじゃ保護されたアルゴリズムは輸出制限掛かってたくらいなのに。
ミスった。
>既にあるアルゴリズムの実装とそのテスト
てぶぶんは同意だからそれがないとどうしようもないなぁ。
あと、
>>938だね
普通にRSAじゃないのかな。
実装するのにシンプルでパブリックドメインで。