【Java編】 学校の宿題は俺にやらせろ 【Java編】

このエントリーをはてなブックマークに追加
>>937
そのimport文はいらないだろ。
>>936はどのクラスのメソッドかが知りたかったんじゃないか?
943デフォルトの名無しさん:03/09/29 18:31
質問させて下さい。
まだJAVAを勉強し始めて間もないんですが、
BigIntegerなるものを使って『xのn乗』を計算するプログラムを書くことになりました。
以下のアルゴリズムが与えられています。


入力:底・x、指数・n、法・m
出力:xのn乗 (mod m)

1. p←x、y←1

2. n>0の間繰り返し
  
  (a)nが偶数のとき:
   2a-1. n←n/2
   2a-2. p←pの2乗 (mod m)

  (b)nが奇数のとき:
   2b-1.  n←n−1
   2b-2.  y←p×y  (mod m)

3. 繰り返し終了

4. 戻り値としてyを返す

『modPow』とゆうメソッドを使うのではないかというのはわかるんですが、
どんな具合にプログラムを書いたらよいのかわからず悩んでいます。
どなたかわかる方がいらっしゃいましたら教えていただけませんでしょうか・・・。
よろしくお願いします。
944デフォルトの名無しさん:03/09/29 19:50
マルチポストウザイ。
>>943
Math.pow(x.n);
946克弥:03/09/30 14:49
一番大きな四角形のサイズを変えると、内側の四角形も自動的に小さくするプログラムを作りたいのですが、このプログラムだと実行は出来るのですが、フレーム自体を移動させたりすると変な線が勝手に出てきたりします。もっと良い方法があったら教えてください。
あと、四角形のサイズが変わるとそのサイズにあわせてボタンが移動するやり方を教えて頂けませんか?
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class zemi123Frame extends JFrame{
public zemi123Frame(){
setSize(1030,770);
Container contentPane=getContentPane();
contentPane.add(new zemi123Panel());
}
}

public class zemi123{
public static void main(String[] args)
{
JFrame frame=new zemi123Frame();
frame.show();
}
}
947克弥:03/09/30 14:53
class zemi123Panel extends JPanel
{ public zemi123Panel(){

setLayout(null);
Button b1=new Button("PRINT");
add(b1);
b1.setBounds(50,50,50,50);
}
public void paintComponent(Graphics g){
int x1,x2,x3,x4,x5,x6,y1,y3,y4,y5,y6;
x1=25;
y1=5;
x2=999;
double y02=(x2-x1)*3/4+y1;
int y2=(int)y02;
x3=x1+20;
x4=x2-20;
y3=y1+15;
y4=y2-15;
x5=x1+36;
x6=x2-36;
y5=y1+27;
y6=y2-27;
948克弥:03/09/30 14:55
つづき
g.drawLine(x1,y1,x2,y1);
g.drawLine(x1,y1,x1,y2);
g.drawLine(x2,y1,x2,y2);
g.drawLine(x1,y2,x2,y2);
g.drawLine(x3,y3,x4,y3);
g.drawLine(x3,y3,x3,y4);
g.drawLine(x4,y3,x4,y4);
g.drawLine(x3,y4,x4,y4);
g.drawLine(x5,y5,x6,y5);
g.drawLine(x5,y5,x5,y6);
g.drawLine(x6,y5,x6,y6);
g.drawLine(x5,y6,x6,y6);
}

}
949デフォルトの名無しさん:03/10/02 00:39
エクセルで作ったCSV形式のデータベースをJAVAで読み込むには
どのようなプログラムを書けばいいか教えてもらえませんか
ふつーに入出力+文字列処理すれば。つかそれはデータベースじゃなくてデータな。
データベースとよんでも間違いではありません。
CSVのJDBCドライバだって存在するんだし。
このスレの趣旨とまったく正反対な書き込みになるのですが、
どなたか、Javaの課題をくれませんか?
Javaの本読んで一応まだまだ知識浅いですが覚えたつもりです。
しかし何か作ろうと思ってもいい課題が思いつかなくて。
で、とりあえずここでもらった課題でどんどん拡張していければと思います。

ちなみに、アプレット、swingなどのグラフィック関係、
サーブレット、JSPなどJ2EE関係はなしでお願いします。

J2SEで、できる範囲でお願いします。
>>952

設問 (1)
指定されたファイルを読んで、そのファイルに含まれている行数と
文字数(byte数)を表示する。

設問 (1)が簡単すぎるなら・・・。

設問 (2)
指定されたファイルを読んで、そのファイルがプログラミング言語Java
のコンパイル単位として正当なものであるかどうかをチェックする。
Javaのソースファイルを自動整形するソフト作ってみ。
設定とか細かくできなくて良いから。
動作サンプルはこの辺の使ってみれ。
http://sourceforge.net/project/showfiles.php?group_id=2319&release_id=79468
http://www.linux.or.jp/JM/html/GNU_indent/man1/indent.1.html
955952:03/10/02 23:22
>>953
設問1の行数を表示するメソッドがわからない・・・。
文字数ははわかるんですが。

>>954
サンプル落としてみたけど、c(c++?)のソースだったんでさっぱり
つまり、何らかの理由でソースファイルに改行とかインデントが行われてなかったと仮定して
それを見やすくするようにするソフトを作ってみれと言うことでしょうか?

やっぱりまだソフト作るのにははやすぎかな。(;´д`)
956デフォルトの名無しさん:03/10/03 01:02
アプレット作らにゃならんはめになったんだがよ。学校ではツール使ってやってるのね。卑怯にも。
で、オレはそのツールの扱いを覚えるのが面倒っていうか自分でコーディングしたいっていうか
例えばボンクラどもはWebページ一つ作るにしたってHomePageBuilderとかDreamWeaverとかで楽して作ろうとするけど
俺は手書きでやっちゃうような人だからさ。ちょっと困ってるんだけども。
アプレットのレイアウトとかってCSS使えるの?俺は軟弱ものの使うツールには頼らんよ。だからさ。手書きの悲哀っていうか……
そういうのがあるわけだからいろいろ教えてくれ
957956:03/10/03 01:21
すみません。なにか勘違いしていました。
とりあえずこのまましばらく林晴比古先生の本で勉強しますのでなにかあればその時に……
>>956
レイアウトはレイアウトマネージャの仕事だ。
http://www.google.co.jp/search?q=Java+%83%8C%83C%83A%83E%83g%83%7D%83l%81%5B%83W%83%83&ie=Shift_JIS&hl=ja&lr=

標準ライブラリの出来合いのやつから選んで設定するか
気に入らなければ自作も出来る。が、それは初心者にはちと酷かもしれん。

>で、オレはそのツールの扱いを覚えるのが面倒っていうか自分でコーディングしたいっていうか

殊勝な心掛けだがかなり勝手が違うぞ
HTML+CSSの知識は全く役に立たないと思った方がいい。

JavaはGUIがまだ手書きしやすい言語ではあるが。
>>951
それは微妙だな。CSVはアクセスの効率化とか考えてないから、その意味で直接のデータベース性は低い。
オッパイ吸わせてください
961デフォルトの名無しさん:03/10/04 15:59
JAVAの基礎も分からん奴はApplet始める前に
java.langパッケージを徹底的にやれ。
CSV用のJDBCドライバなんてあったのか・・・
>>962
一応、java.sql.Driverクラス実装すれば
相手がリレーショナルデータベースだろうとなんだろうと関係ないのではないか?
準拠しているかどうかのboolean返す関数にfalseでも返すようにしておけば誰が作っても
一応JDBCドライバにはなる。
ちょっと前にXMLファイル用のJDBCドライバあったしね
964デフォルトの名無しさん:03/10/07 00:47
ジャンケンゲームのアプレット作らにゃならんのだがよくわからんのでおまいら教えろ
>>964
難しいな。
グー・チョキ・パーの三つの選択肢があるわけだが、
こういった場合、心理学的には一番「出しやすい手」を選ぶ可能性が高い。
簡単に言えば「ジャンケン開始ボタン」の(物理的な)最近位置にある手を選ぶ可能性が高い。

具体的には画面が

[ゲーム開始]
  [グー]  [パー]  [チョキ]

のようになっていた場合、[グー]を選ぶ確率が高い、ということだ。
これは重要だから覚えておこう。

また、連続でジャンケンさせる場合、人間だと大まかに分けて
「同じ手を連打するタイプ」「常に変えるタイプ」の2種類がいるが、
これを早めに判別して思考ルーチンを切り替える必要がある。

こういったところに気をつければ強いジャンケンゲームが作れるだろう。
健闘を祈る。
皆さん、お久しぶりです。
以前このスレで数当てゲームのヒントを頂いていた者です。
たしか七月下旬頃だったと思うのですが、過去ログを漁ってみてもなぜか自分の書き込みが見あたらず、改めてご挨拶させていただいているしだいで御座います。
じつはあれをアプレット化しなければならなくなってしまい、それなりに困っているのですが、どうすれば(・∀・)のかよくわからないのでお前ら、教えて下さい。
とりあえず本で勉強した限りではウィンドウ部品の使い方、組み込み方などは理解したのですが、そこに以前作ったゲームをいかにして組み込むかとなると困ってしまいます。
単純なゲームとはいえどそれなりに長い&複雑なソースですし、アプレットの際には使えないっぽの仕様満載なので一筋縄ではいきません。
とりあえずゲームの概要を説明しますので、お前らちょっと暇つぶし代わりにサクッと作ってみて下さいっつーかヒント下さい。

・システムが1〜9までの数字をランダムに設定。その数を当てる
・ハズレの場合には正解がそれより大きい値か小さい値かを吐き出す
・正解するまで続ける
・当たったときには"(・∀・)/オメデトウ"
・"もう一度遊ぶ"みたいなボタンがあるといいな
967デフォルトの名無しさん:03/10/07 15:20
>>966
できた。
ここにソース貼るの?
969デフォルトの名無しさん:03/10/07 21:19
>>968
まぢですか?
それじゃあここにコピーしてペーストして下さい
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
970970:03/10/07 21:28
<HTML><BODY><APPLET CODE="Main2.class" WIDTH="600" HEIGHT="400"></APPLET></BODY></HTML>

import java.applet.Applet; import java.awt.*; import java.awt.event.*;
public class Main extends Applet implements ActionListener {
private TextArea ta; private TextField tf; private Game game;
public void init() { ta = new TextArea(); ta.setEditable(false);
tf = new TextField(); tf.addActionListener(this); setLayout(new BorderLayout());
add(ta, BorderLayout.CENTER); add(tf, BorderLayout.SOUTH); game = new Game();
game.createBingoNumber(); ta.append(game.msgStart+game.ls); }
public void actionPerformed(ActionEvent e) { String str;
str = tf.getText(); str = game.challenge(str);
ta.append(str); tf.setText(""); } }
class Game { private int min = 0; private int max = 9; private int bingo;
public String ls = System.getProperty("line.separator");
public String msgStart = "数を当てれや。ヒント:"+min+"以上"+max+"以下";
private String msgLoose = "はずれw";
private String msgMore = "もっとでかい";
private String msgLess = "もっとちぃさい";
private String msgBingo = "(・∀・)/オメデトウ";
private String msgError = "え?それ数なのか?";
public void createBingoNumber() { bingo = (int)(Math.random()*(max-min+1)+min); }
public String challenge(String str) { int i; try {
i = Integer.parseInt(str); } catch (NumberFormatException e) {
return msgError+ls; }
if (bingo == i) { createBingoNumber(); return i+" "+msgBingo+ls+msgStart+ls;
} else if (bingo > i) { return i+" "+msgLoose+" "+msgMore+ls;
} else { return i+" "+msgLoose+" "+msgLess+ls; } } }
971 :03/10/07 21:30
972970:03/10/07 21:32
ごめん。最初の行で示しているHTML内のMain2.classはMain.classの間違い。
あと、「もう一度遊ぶ?」みたいなボタンは無い。永遠に遊べ。な感じ。
インデントはわざと崩した。多分「改行が多すぎます」って怒られるだろうから。
>>972
ちょっと難しいクラス&メソッド使いすぎかなと思われます(ぉ)
もっと簡単にできないんでしょーか
っていうかお前ら、どうやってJavaを勉強しましたか?
難しいと思ってソース読まないなら、一生マスターできない。
何処がわからないか聞けば、誰か教えてくれるかも。
975:03/10/07 22:52
は?バカかお前
ソース読まない?何言ってんの?
まるで白痴だな
977デフォルトの名無しさん:03/10/07 23:11
チン  ☆  マチクタビレター  ☆ 
       チンチン           マチクタビレター ♪
           ♪   ☆ チチン
    ♪                .☆   マチクタビレター
        ☆ チン   〃  ∧_∧  ヽ        / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
          ヽ   ___\(・∀・ ) /\_/ <  >>970の改訂版マダー?
        チン    \_/⊂    つ    ‖    \__________
           / ̄ ̄ ̄ ̄ ̄ ̄ ̄/|     ‖  
        |  ̄  ̄ ̄ ̄ ̄ ̄ ̄:| :|   /|\ 
        |             |/ 

>>966
後出しで、
>ちょっと難しいクラス&メソッド使いすぎかなと
こんなこと言われてもな・・・

使っていいクラスおしえろ

>>978
あなたが初級者だった頃に戻ってプログラミングしてみてください
980デフォルトの名無しさん:03/10/08 02:02
チン  ☆  マチクタビレター  ☆ 
       チンチン           マチクタビレター ♪
           ♪   ☆ チチン
    ♪                .☆   マチクタビレター
        ☆ チン   〃  ∧_∧  ヽ        / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
          ヽ   ___\(・∀・ ) /\_/ <  マダー?
        チン    \_/⊂    つ    ‖    \__________
           / ̄ ̄ ̄ ̄ ̄ ̄ ̄/|     ‖  
        |  ̄  ̄ ̄ ̄ ̄ ̄ ̄:| :|   /|\ 
        |             |/ 


981970:03/10/08 02:26
何をどう変えて欲しいのか具体的な要望があればまた書くかも知れませんが、
これ以上簡単にすれって言われても、Appletだと、ちょっと難しい気がします。

私には難しいです。
>>981
もうすこし簡単なクラス&メソッドのみで構成できないでしょうか
僕の持ってる新Java言語入門という本には載ってないクラス&メソッドばかりなものですから……
というか……あの授業つまんねぇよなぁ……
その本にはアプレットの解説は載ってるのか?
19章 アプレットを作る

っつーかほんとに初歩のことしか書いてないので……
>>970の使ってるようなクラス&メソッドは書いてません
いかにも素人っぽいクラスとかを使って欲しいんですが……
もう寝ます。
っていうかもういいです
お前らはほとんど役に立ちませんでした
つか、>>970のソースって十分基本的なクラスだけで作られてる気がするが。
986デフォルトの名無しさん:03/10/08 04:30
おいらは970じゃないが、
970のソースは十分、初心者チックに書かれているぞ。
それ以上、「初級者だった頃に戻って」ってなったら、
単に汚いor間違ったコードに書き直されるような気が・・・w

内容からすると、5回目くらいの授業で受けそうなレベルだね。
だってあの林晴比古先生の書いた本に載ってねーんだもん
十分プロ仕様だよプロ仕様
もういい、お前らは死ね
つまらん厨房に引っかかった970の無念に乾杯
989デフォルトの名無しさん:03/10/08 10:19
Javaマスターになりたいのですがどうすればなれますか?
>>989
必要なもの:油性マジック

方法:自分の今着ている服に、他人に見えるように「Javaマスター」と書く。
   「Javaマスター」と書かれた服を着て、なるべく人の多い場所を歩く。
次スレ立ちますた
移動してね★
http://pc2.2ch.net/test/read.cgi/tech/1065599192/