■掲示板に戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 最新50

JAVA神様 かざっさま

1 :アヌス : 2009/01/27 18:37
投稿できなくなってしまったので、新しいスレッドにもう一度貼りますです。

何文字かのstringを受け取ってその文字列の真ん中2文字だけをreturnで返したいのです。文字が奇数の場合は右よりの2文字です。
例) 
middleTwo("abcd") → "bc"
middleTwo("abcde") → "bc"
文字列は必ず2文字以上あると前提しますです。

それともう一つ。取得した数字が奇数ならfalse偶数ならtrueを返すプログラムです。
例)
isEven (24) → true
isEven (25) → false

どうやらこれは、2つのメソッド(真ん中の文字プログラムと、奇数偶数プログラム)をクラスTwoMethodsに書いて、
それぞれのメソッドに、テストメソッドをクラスTwoMethodsTestに書く、というものらしいのですが、プログラムを貼ります。
しかいしくつか抜けてるところがあってそれをコンプリートしなきゃいけないみたいです。



このクラスは、Stringsといくつかの基本となるタイプを処理するメソッドをテストするための2つのメソッドのテストが記されている(日本語がおかしい・・・汗)
import static org.junit.Assert.*;
import org.junit.Test;

public class TwoMethodsTest {
@Test
public void testMiddleTwo() {

//ここにTwoMethodsオブジェクトが要ります//

TwoMethods myFuns = new TwoMethods();

//middleTwoメソッドをテストするための4つのケース//
assertEquals("bc", myFuns.middleTwo("abcd"));
assertEquals("bc", myFuns.middleTwo("abcde"));
assertEquals("23", myFuns.middleTwo("12345"));
assertEquals("pu", myFuns.middleTwo("Computers"));
assertEquals("to", myFuns.middleTwo("to"));
assertEquals("is", myFuns.middleTwo("antidisestablishmentarianism"));
}
//もう一つのテストメソッドを以下に
}

ここからテストされるメソッドのクラス
public class TwoMethods {
public String middleTwo(String arg) {
return "TBA"; //ここのメソッドを変えなければならないようです。
}
//もうちょっといくつかのメソッドを以下に
}

おそらくエラーが出るそうです。JUnit 4はbuild pathにないからだとか。だからJUnit 4をbuild pathに加えないといかんとかなんとか・・・
JUnit testとして実行する。でもassertionはパスしない(赤いバーになる)。
だからTwoMethods.middleTwo(String)を修正する必要があると・・・

次は奇数か偶数かのメソッド。テストメソッドはTwoMethodsTest.javaへ、isEvenメソッドはTwoMethods.javaへ。そして新しいTwoMethodsを作る必要があります。

public boolean isEven(int number)
@Test
public void testIsEven() {
TwoMethods myFuns = new TwoMethods();
assertTrue(myFuns.isEven(24));

//ここにあといくつかassertionを加えたいのです。
assertFalse(myFuns.isEven(25));
みたいな感じでいいのかな。多分他のケースも加えないといかんのかな。

}
自分でも書いてて理解できん・・・。かざっさん、この意味わかる・・・?


2 :大和 : 2009/01/27 18:55
1000までいかないなんてひさしぶりだなあ
スレたてどうもです!


3 :大和 : 2009/01/27 19:02
真ん中の2文字を切り取るプログラムは,
length() メソッドを使いそうだなあ。

奇数ならfalse偶数ならtrueを返すプログラムは,
単純に計算処理をすれば良さそうかな!

ちょっと夕ご飯食べてくるね。
19時40分まで待ってねごめんね。



4 :アヌス : 2009/01/27 19:16
そうなんだよね。length()で文字数はかって2で割ったところの2文字を返せばいいだけだよね。
理解できないところは、テストメソッドとか、テストメソッドはTwoMethodsTest.javaへ行ってisEvenメソッドはTwoMethods.javaへ行くってのがサッパリです
テストされるメソッドのクラスに、length()を使った処理をするんだろうけど、ならテストメソッドって一体・・・?
普通に全部一緒にかけばいいと思うのになんでいちいちテストメソッドとかなんとか・・・と頭がこんがらがってしまっています・・・
上のソースが理解できない・・・


5 :大和 : 2009/01/27 19:59
テストメソッドはね!
本当にただ単に結果がちゃんと正しい結果が出るか,
テストしてるだけなんだ。

つまり,
テストメソッドがなくても,
プログラム2つとも動作します!

テストメソッドはプログラムのコードが完成したら,
あとでつけ足して,で動作確認するためのコードなんです。
テストメソッドがあろうとなかろうと,プログラムは動作するんですね。
だから今は,



// 現段階では不要なコードのため,コメントアウト。
// import static org.junit.Assert.*;
// import org.junit.Test;
//
// public class TwoMethodsTest {
//
//     // isTwo() のコード書き終わるまで,こいつはお預け。
//     @Test
//     public class testMiddleTwo {}
//     // isEven() のコード書き終わるまで,こいつはお預け。
//     @Test
//     public void testIsEven() {}

public class TwoMethods {
    public String middleTwo(String arg) {
        return "TBA"; // ここのメソッドを変えなければならないようです。→大和:了解。
    }

    public boolean isEven(int number) {
        return; // true か false を返せばいいね。
    }
}


まず土台はこんな感じかな!


6 :大和 : 2009/01/27 20:48
あ なんか土台だけ作っちゃえばもうみさきっさんできそうな予感が(’’
一応もうちょっと書いてみるね。



真ん中の2文字を切り取るプログラム

1. 引数で取得した String 型変数「arg(仮に「abcdef」とする)」の,真ん中2文字(「cd」)を取得する。
 1.1. 「1.」で取得した値を length() で文字数(「6」)を調べる。
 1.2. 文字数を 2 で割り,商を求める(結果は 3)。
 1.3. 「1.」で取得した値に,substring(「2.2. で求めた値 - 1」, 「2.2. で求めた値」) する。
  →この場合,「"abcdef".substring((3 - 1), 3)」と同義。

2. 「1.3.」で取得した値を return する。



奇数ならfalse偶数ならtrueを返すプログラム

1. 引数で取得した int 型変数「number」,奇数か偶数か判断する。
 1.1. 「1.」で取得した値を 2 で割り,余りを求める。
 1.2. 余りが 0 なら true に,1 なら false とする。

2. 「1.2.」で取得した値を return する。


7 :アヌス : 2009/01/27 20:33
いえ、すみません・・・ちょと頭の整理ができてなくて・・・
全体のプログラムではどのようになるんでしょうか・・・

コード書き終わったらテストメソッドを作るのか・・・。多分今回の課題ではやはりテストも作らないといけないのかな。
かざっさん、この場合のテストメソッドの作り方も聞いていいですか?


8 :アヌス : 2009/01/27 20:35
普通に真ん中の文字を返すとか異数偶数のプログラムを組むってんならすごいシンプルですぐできるんだけど、テストとか新しいのがまざった瞬間 いみわからんくなってしまう・・・
応用きくようにしないとダメだな・・・ショボン


9 :大和 : 2009/01/27 21:00
>>7,8
了解!
テストメソッドとプログラムのメソッドは,完っ璧に切り離して考えていいよ!
つまり,今はテストメソッドの事は,100%忘れちゃってください。

真ん中メソッドと偶奇メソッドの,
2つのメソッドを作る事だけ,考えてくれればいいよ!

真ん中メソッドと偶奇メソッドを完成させるまで,
テストメソッドは ま っ た く 関与してきません。
作ったあとにはじめて関与します。
これは作ったあとに,その意味がわかるはず^ω^。

なので今は,
「@Test ってなに・・・?」
「TwoMethods myFuns = new TwoMethods() ってなに・・・?」
「assertEquals("bc", myFuns.middleTwo("abcd")) ってなに・・・?」
とか,一切考えなくて大丈夫!

テストメソッドに関係する全ての事柄を,今は一切考えずに作ってくれて大丈夫だよ!


10 :大和 : 2009/01/27 21:02
テストメソッドも作るのが,今回の課題みたいだねー。
コードが出来上がったらテストメソッドを作ってみましょう!

なあに,テストメソッド作りはじめたら,ああこういう事だったのねってすぐわかるはずさ。
まずは,今は2つのプログラム作ってくれて大丈夫だよー。


11 :大和 : 2009/01/27 21:07
よし風呂だ。
みさきっさんコーディング頑張ってみてー(´∀`)。
テストメソッドは100%考えなくてオッケー!


12 :ねこみみ : 2009/01/27 22:08
かざっさんがんばって勉強したなぁ。

早くコンテンツ作ろうぜ!




13 :大和 : 2009/01/28 01:18
ありがとうー。
でもみんなにはまだまだ足元にも及ばんからね!
みんなに感謝しつつもっと精進します!
ゆくゆくは,いや近いうちに他の言語にも手を伸ばしてみないとね!


14 :アヌス : 2009/01/28 05:01
簡単に作ったけど、これでいいですよね?

public class TwoMethods {
public String middleTwo(String arg) {

int a = arg.length();
int b = a % 2;
String st = str.substring(b-1, a);

return st;
}



public boolean isEven(int number) {

int a = number % 2;
if(a==0)
return True;
else
return False;
}
}

間違ってたら教えてください。
そしてここでテストはどのように作るのでしょうか・・・


15 :大和 : 2009/01/28 08:27

public class TwoMethods {
    public String middleTwo(String arg) {
        int a = arg.length();
        int b = a % 2;
        String st = arg.substring((b - 1), b);

        return st;
    }

    public boolean isEven(int number) {
        int a = number % 2;
        if (a == 0)
            return true;
        else
            return false;
    }
}


細かいとこの指摘ですが,こんな感じかな!
あとは完璧ですね!


16 :大和 : 2009/01/28 09:19

import static org.junit.Assert.*;
import org.junit.Test;

public class testTwoMethods {

    @Test
    public void testMiddleTwo() {
        TwoMethods myFuns = new TwoMethods();

        assertEquals("bc", myFuns.middleTwo("abcd"));
        assertEquals("bc", myFuns.middleTwo("abcde"));
        assertEquals("23", myFuns.middleTwo("12345"));
        assertEquals("pu", myFuns.middleTwo("Computers"));
        assertEquals("to", myFuns.middleTwo("to"));
        assertEquals("is", myFuns.middleTwo("antidisestablishmentarianism"));
        assertEquals("ゃん", myFuns.middleTwo("カトちゃんペッ!"));


    @Test
    public void testIsEven() {
        TwoMethods myFuns = new TwoMethods();

        assertTrue(myFuns.isEven(24));
        assertTrue(myFuns.isEven(-128));
        assertFalse(myFuns.isEven(25));
    }
}



これがテストクラスだよー。

実はこれ,「テストクラス」とか「テストメソッド」なんてかっこいい名称がついているけど,
普通のクラスやメソッドと大差ない,ただの「クラス」と「メソッド」なんだ。

「JUnitというテスト動作確認ツール」で動作させるために,
普通の「クラス」をちょっと 改 変 し た だ け のただのクラスなのです。

テストクラスで不明な箇所があったら何なりと聞いてね!


17 :大和 : 2009/01/28 09:18
>>1
> しかいしくつか抜けてるところがあってそれをコンプリートしなきゃいけないみたいです。

>>14のコードで完璧です。
実装メソッドの抜けてるところは,これでコンプリートしましたね!
テストクラスも,みさきっさんが提示してくれたやつ(>>16)で,もうこれでコンプリートです。
もうこれで十分ですが,
まだテストケースを追加したいなら追加してもおk!


> このクラスは、Stringsといくつかの基本となるタイプを処理するメソッドをテストするための2つのメソッドのテストが記されている(日本語がおかしい・・・汗)

大丈夫です。ちゃんと理解できる文章ですよ。


> public class TwoMethods {
> public String middleTwo(String arg) {
> return "TBA"; //ここのメソッドを変えなければならないようです。
> }

もう変え終わりましたね。おつかれさま。


> おそらくエラーが出るそうです。JUnit 4はbuild pathにないからだとか。だからJUnit 4をbuild pathに加えないといかんとかなんとか・・・
> JUnit testとして実行する。でもassertionはパスしない(赤いバーになる)。
> だからTwoMethods.middleTwo(String)を修正する必要があると・・・

>>16ので,再度テストをかけてみてください。
今度は赤いバーが出ないで全部緑のバーになるはずです!


> public boolean isEven(int number)
> @Test
> public void testIsEven() {
>     TwoMethods myFuns = new TwoMethods();
>     assertTrue(myFuns.isEven(24));
>
> // ここにあといくつかassertionを加えたいのです。
> assertFalse(myFuns.isEven(25));
> みたいな感じでいいのかな。多分他のケースも加えないといかんのかな。

みたいな感じで完璧です!
testIsEven() の目的は,isEven() から return されてくる値が「偶数」か「奇数」かを,調べる事です。
なので,この 24 と 25 だけで完璧だよー。



テストメソッドに関する書き込みは以上です。
みさきっさんさすが。
ここどうなってるの?って箇所があったらどんどんまた聞いてくださいね。


18 :アヌス : 2009/01/28 17:53
実行の手順ですけど、テストメソッドと本体は一緒に実行するん?それともテストだはテストだけで?

import static org.junit.Assert.*;
import org.junit.Test;

public class testTwoMethods {

@Test
public void testMiddleTwo() {
TwoMethods myFuns = new TwoMethods();

assertEquals("bc", myFuns.middleTwo("abcd"));
assertEquals("bc", myFuns.middleTwo("abcde"));
assertEquals("23", myFuns.middleTwo("12345"));
assertEquals("pu", myFuns.middleTwo("Computers"));
assertEquals("to", myFuns.middleTwo("to"));
assertEquals("is", myFuns.middleTwo("antidisestablishmentarianism"));
assertEquals("ゃん", myFuns.middleTwo("カトちゃんペッ!"));


@Test
public void testIsEven() {
TwoMethods myFuns = new TwoMethods();

assertTrue(myFuns.isEven(24));
assertTrue(myFuns.isEven(-128));
assertFalse(myFuns.isEven(25));
}
}

これだけで実行するのか・・・それとも

import org.junit.Test;

public class testTwoMethods {

@Test
public void testMiddleTwo() {
TwoMethods myFuns = new TwoMethods();

assertEquals("bc", myFuns.middleTwo("abcd"));
assertEquals("bc", myFuns.middleTwo("abcde"));
assertEquals("23", myFuns.middleTwo("12345"));
assertEquals("pu", myFuns.middleTwo("Computers"));
assertEquals("to", myFuns.middleTwo("to"));
assertEquals("is", myFuns.middleTwo("antidisestablishmentarianism"));
assertEquals("ゃん", myFuns.middleTwo("カトちゃんペッ!"));


@Test
public void testIsEven() {
TwoMethods myFuns = new TwoMethods();

assertTrue(myFuns.isEven(24));
assertTrue(myFuns.isEven(-128));
assertFalse(myFuns.isEven(25));
}
}

public class TwoMethods {
public String middleTwo(String arg) {
int a = arg.length();
int b = a % 2;
String st = arg.substring((b - 1), b);

return st;
}

public boolean isEven(int number) {
int a = number % 2;
if (a == 0)
return true;
else
return false;
}
}

こうやって実行するのか・・・それとも本体をテストメソッドに挿入しなきゃいけないとか・・・

本体の
public class TwoMethods {
public String middleTwo(String arg) {
int a = arg.length();
int b = a % 2;
String st = arg.substring((b - 1), b);

return st;
}

public boolean isEven(int number) {
int a = number % 2;
if (a == 0)
return true;
else
return false;
}
}

にはimportとかがないけど・・・


19 :アヌス : 2009/01/28 18:37
ていうか、

public class TwoMethods {
public String middleTwo(String arg) {
int a = arg.length();
int b = a % 2;
String st = arg.substring((b - 1), b);

return st;
}

public boolean isEven(int number) {
int a = number % 2;
if (a == 0)
return true;
else
return false;
}
}

このプログラムではどうやってStringのargの値を取得するん?キーボード入力でもないし、初期化してるわけでもないし・・・

テストメソッドと本体とではnew TwoMethodsってのが共通してるけど、これでargのやりとりしてるん・・・?
テストと本体どうやって組み合わせて実行するかが・・・


20 :大和 : 2009/01/28 20:21
>>7
TwoMethodsTest クラスから,TwoMethods クラスの2つのメソッドを呼び出すんだー。
なので,テストメソッドだけ呼び出せばいいよ!



>>8
>このプログラムではどうやってStringのargの値を取得するん?キーボード入力でもないし、初期化してるわけでもないし・・・

例えばこれ!

TwoMethods myFuns = new TwoMethods();
assertEquals("bc", myFuns.middleTwo("abcd"));

テストクラスから,middleTwo() を呼び出しているよ!
呼び出すと同時に,引数で文字列「abcd」を渡しているね。
で,呼び出された middleTwo() で,渡されてきた引数の値を変数 arg で受け取るんだ。

メソッドを呼び出す: myFuns.middleTwo("abcd");
呼び出されたメソッド: public String middleTwo(String arg) {}
文字列「abcd」が渡され,middleTwo() の引数内で宣言された変数 arg に渡される。


>テストメソッドと本体とではnew TwoMethodsってのが共通してるけど、これでargのやりとりしてるん・・・?
>テストと本体どうやって組み合わせて実行するかが・・・

やりとりしてるのは↓太文字の部分!

TwoMethods myFuns = new TwoMethods();
assertEquals("bc", myFuns.middleTwo("abcd"));
assertEquals("bc", myFuns.middleTwo("abcde"));
assertEquals("23", myFuns.middleTwo("12345"));
assertEquals("pu", myFuns.middleTwo("Computers"));
assertEquals("to", myFuns.middleTwo("to"));
assertEquals("is", myFuns.middleTwo("antidisestablishmentarianism"));
assertEquals("ゃん", myFuns.middleTwo("カトちゃんペッ!"));

今回は,テストメソッドから本体を呼び出します!
いつもは main() メソッド使っていたけどね!
説明よくわからないとこがあったら,遠慮なくどんどん教えてねー。


21 :大和 : 2009/01/29 00:43
おしねよ!
また明日の朝!


22 :アヌス : 2009/01/29 01:48
なるほど!じゃぁ 実行するときは

import static org.junit.Assert.*;
import org.junit.Test;

public class testTwoMethods {

@Test
public void testMiddleTwo() {
TwoMethods myFuns = new TwoMethods();

assertEquals("bc", myFuns.middleTwo("abcd"));
assertEquals("bc", myFuns.middleTwo("abcde"));
assertEquals("23", myFuns.middleTwo("12345"));
assertEquals("pu", myFuns.middleTwo("Computers"));
assertEquals("to", myFuns.middleTwo("to"));
assertEquals("is", myFuns.middleTwo("antidisestablishmentarianism"));
assertEquals("ゃん", myFuns.middleTwo("カトちゃんペッ!"));


@Test
public void testIsEven() {
TwoMethods myFuns = new TwoMethods();

assertTrue(myFuns.isEven(24));
assertTrue(myFuns.isEven(-128));
assertFalse(myFuns.isEven(25));
}
}

public class TwoMethods {
public String middleTwo(String arg) {
int a = arg.length();
int b = a % 2;
String st = arg.substring((b - 1), b);

return st;
}

public boolean isEven(int number) {
int a = number % 2;
if (a == 0)
return true;
else
return false;
}
}

この表記でいいの?


23 :anusu : 2009/01/29 05:35
daigaku kara sitsurei simasu

nihongo utenakute...

test method ha konna kannji desuka

import static org.junit.Assert.*;
import org.junit.Test;

public class TwoMethodTest {
@Test
public void testMiddleTwo() {
TwoMethod myFuns = new TwoMethod();

assertEquals("bc", myFuns.middleTwo("abcd"));
assertEquals("bc", myFuns.middleTwo("abcde"));
assertEquals("23", myFuns.middleTwo("12345"));
assertEquals("pu", myFuns.middleTwo("Computers"));
assertEquals("to", myFuns.middleTwo("to"));
assertEquals("is", myFuns.middleTwo("antidisestablishmentarianism"));
assertEquals("ta", myFuns.middleTwo("mountaindew"));
}

@Test
public void testIsEven() {
TwoMethod myFuns = new TwoMethod();

assertTrue(myFuns.isEven(24));
assertFalse(myFuns.isEven(25));
}
}

de,honntai ha

public class TwoMethod {

public String middleTwo(String arg) {
int a = arg.length();
int b = a / 2;
String st = arg.substring(b-1, b+1);

return st;
}

public boolean isEven(int number) {
int a = number % 2;
if (a == 0)
return true;
else
return false;
}

korede midori ni narimasitayo!

int b = a % 2;
String st = arg.substring((b - 1), b);

kokoga tigaimasita

int b = a / 2;
String st = arg.substring(b - 1, b+1);

korede ugokimashitayo!

aragatou kazassann!


24 :大和 : 2009/01/29 07:47
10時にレスしますね。
おお動いた?!よかったー!


25 :アヌス : 2009/01/29 08:13
ある時、父さんが家にロボットを連れてきた。
そのロボットは特別で、ウソをついた人の顔をひっぱたくって言う物騒な代物らしい。
そんなある日…。
僕は学校から帰宅するのがかなり遅くなってしまった。
すると父がこう尋ねてきた。
「どうしてこんなに遅くなったんだ?」
僕は答えた。
「今日は学校で補習授業があったんだよ」
すると驚いたことに、ロボットが急に飛び上がり、僕の顔をひっぱたいた。
父は言った。
「いいか、このロボットはウソを感知して、ウソついた者の顔をひっぱたくのさ。さあ、正直に言いなさい」
そして父がもう一度聞いてきた。
「どうして遅くなったんだ?」
僕は本当のことを言うことにした。
「映画を見に行ってたんだ」
父はさらに聞いてきた。
「なんの映画なんだ?」
「十戒だよ」
これに反応して、ロボットがまた僕の顔をひっぱたいた。
「ごめんなさい…父さん。実を言うと『Sexクイーン』ってのを見てたんだ」
「何て低俗な映画を見てるんだ、恥を知れ!いいか、父さんがお前くらいの頃は、そんな映画を見たり態度が悪かったことなんて無かったんだぞ」
するとロボットはきつい一発を父に食らわせた。
それを聞いていた母が、キッチンから顔を覗かせるとこう言った。
「さすが親子ね、あなたの子だけあるわ」
母も顔をひっぱたかれた。


26 :アヌス : 2009/01/29 10:02
  (  ゚д゚ )
  |   |         チャリーン
  U _ U        __lヽ,,lヽ
   〉 ) 〉).        | |Θ|(    )
  | ̄ ̄ ̄| ̄ ̄|_ |_|_|と   i
  |___|__|_|  |_|  しーJ




  ∧_∧
  .( ゚д゚ )>>1乙
  |   |
  U _ U        __lヽ,,lヽ
   〉 ) 〉).        | |Θ|(    )
  | ̄ ̄ ̄| ̄ ̄|_ |_|_|と   i
  |___|__|_|  |_|  しーJ



  ∧_∧
  (  ゚д゚ )
  |   |
  U _ U        __lヽ,,lヽ
   〉 ) 〉).        | |Θ|( ゚д゚ )
  | ̄ ̄ ̄| ̄ ̄|_ |_|_|と   i
  |___|__|_|  |_|  しーJ


27 :大和 : 2009/01/29 12:33
おおちゃんと出来たんだね!
よかったよかった〜。
またJavaの問題でたら気軽に言うてください!
私もいい経験になるからありがたいです。


28 :アヌス : 2009/01/29 13:19
       ..|
       |く(  )ゝ   だ・る・ま・さ・ん・が・
       | (  )       こ・ろ・ん・
       |_ノ_|____

   (  )
  ノ( )ヽ        (  )
   ハ         ノ( )ヽ
 彡             ハ
        (  )        ミ
      ノ( )ヽ
       ハ
       l.l.l






       |
       |く(゚д゚)         だ
       | (  ノ`l
       |_ノ_|____

   (゚д゚)
   ノl L         (゚д゚)
   ハ          ノ )、
                ハ
        (゚д゚)
       ( L'
       ハ


29 :アヌス : 2009/01/29 13:20
      (;´Д`)   シコシコシコシコ
    _(ヽηノ_
      ヽ ヽ






      ( ゚д゚ ) !
    _(ヽっノ_
       ヽ ヽ






      ( ゚д゚ )   シコシコシコシコ
    _(ヽηノ_
      ヽ ヽ


30 :アヌス : 2009/01/29 13:20
ありがとうございますです! 
明日かあさってあたりにまた質問させてください!



31 :アヌス : 2009/01/29 19:04
       ____(;゚;;)    ∧∧ (;゚;;)
   __/ ∧_∧ (;゚;;)(;゚;;)\(´・ω・`)丿
  / //_(´・ω・)(;゚;;)(;゚;;)(;゚;;)\ /     みかん食べる〜?
 〈  〈※(  つ ______ \           おいし〜よ〜♪
  \ ~と( ※ ※ ※ ※ ※ ※ヽ\
   \ \⌒ ※  ※ ※ ※ ※ ※ ヽ \
     \ `ー──o(´・ω・`)o──‐‐'  \
      ゝ、, ____________〉


32 :大和 : 2009/01/29 23:30
じゃんじゃんどうぞ!


33 :大和 : 2009/01/29 23:31
眠い!ねるー^q^


34 :アヌス : 2009/01/30 19:19
文字列で大文字小文字の変化の問題がでてきてしまい困っています。
文字列はやっぱ苦手だなぁ・・・

かざっさん。いくつか例題をのせますのでちょっと見てくれませんか。今回もテストメソッドがいるんだよね。。。
booleanとテストメソッドの作り方もちょっといまいちなのです・・・

0:
public boolean isLeapYear(int year)

うるう年ならtrue、違えばfalseを返します。うるう年は、4年に一度だから4で割り切れるかどうかですが、1世紀の最後の都市はうるう除外します
それと400で割り切れる必要もあります。
2000年はうるう年でも2100年は違います。


isLeapYear(2008) return true
isLeapyear(2009) return false
isLeapYear(2100) return false
isLeapYear(2400) return true

今回のプログラム(10個)も前のと同じように一つのクラスControlFunに書き、テストメソッドControlFunTestを作ります

import static org.junit.Assert,*;
import org.junit.Test;
import java.util.Scanner;

pubilc class ControlFunTest{

@Test
public void testIsLeapyear(){
ControlFun myFun = new ControlFun();
assertTrue(myFun, isLeapYear(2008));
assertFalse(myFun, isLeapYear(2009));
assertFalse(myFun, isLeapYear(2100));
assertTrue(myFun, isLeapYear(2400));
}
//残り(9つ)のテストメソッド
}

ここからプログラム本体
import java unit.Scanner;

public class ControlFun{
public boolean isLeapYear(int year){
//ここに足りない部分を補う
return false
}
//残り(9つ)のメソッド
}


35 :アヌス : 2009/01/30 18:21
1:

文字列を半分に分けて、最初の半分の文字列と後半の文字列と入れ替えます。そしてその後、最初の半分の文字列を全部小文字に、後半の文字列を大文字に変えます。

halfAndHalf("x2y4abcd")→ "abcdX2Y4"
halfAndHalf("AbcDef")→ "defABC"
halfAndHalf("Hello")→ "lloHE"
halfAndHald("U of A")→ "F aU O"

もし文字列が奇数の場合は、Helloの例のように、真ん中の小文字のlを一番始めにもってきます。

public String halfAndHalf(String str)


36 :アヌス : 2009/01/30 18:29
2:
public String firstOf3Strings(String a, String b, String c)

3つの文字から、一番小さい文字を返します。大文字は小文字より小さく、一番小さいのは”A”です。


firstOfStrings("c", "b", "a") return "a"
firstOfStrings("B", "B", "B") return "B"
firstOfStrings("B", "B", "A") return "A"
firstOfStrings("ma", "Ma", "ma") return "Ma"
firstofStrings("a ", "a ", "a") return "a"

テストメソッドはこうなりますよね
@Test
public void testFirstOf3Strings(){
ControlFun myFun = new ControlFun();
assertEquals("First", myFun.firstOf3Strings("Third", "Second", "First"));
//assertをもっと・・・



37 :アヌス : 2009/01/30 19:19
3:
public String season(int month, boolean inNorthernHemisphere)

もしbooleanがinNorthernHemisphere(北半球)ならTrue。!inNorthernHemisphere(南半球)ならFalse。

その月の四季を返します。

{12月、1月、2月}
北半球→"Winter"
南半球→"Summer"

{3月、4月、5月}
北→"Spring"
南→"Fall"

{6月、7月、8月}
北→"Summer"
南→"Winter"

{9月、10月、11月}
北→"Fall"
南→"Spring"


season(12, true) return "Winter"
season(12, false) return "Summer"
season(3, true) return "Spring"
season(3, false) return "Fall"


38 :アヌス : 2009/01/30 18:45
4:

public int caughtSpeeding(int speed, boolean isBirthday)

車で走っていて、スピードの取締りをしているパトカーがいるとします。
60k以下で走ればキップ=0、61k〜80kで走るとキップ=1、81k以上で走るとキップ=2を切られ、そのキップの値を返します。
ただしもしその日が誕生日(True)なら、5kまでスピードをあげてもOKです


caughtSpeeding(60, false) return 0
caughtSpeeding(65, false) return 1
caughtSpeeding(65, true) return 0


39 :アヌス : 2009/01/30 18:48
5:
public String reverseString(String arg)

ここでは、文字列を逆さまにして返します。


reverseString("") return""
reverseString("1") return "1"
reverseString("1234") return "4321"
reverseString("racecar") return "racecar"


40 :アヌス : 2009/01/30 19:04
6:
public int firstNints(int n)

与えられた数字nまでの数字を1から順に足して結果を返します


firstNints(1) return 1
firstNints(2) return 3 (1+2=3)
firstNints(5) return 15 (1+2+3+4+5=15)

これはforループを使います


41 :アヌス : 2009/01/30 19:04
7:
public int factorial(int n)

6の階乗版です。値の階乗を返します


factorial(1) return 1
factorial(2) return 2 (1*2=2)
factorial(3) return 6 (1*2*3=6)
factorial(4) return 24 (1*2*3*4=24)

これもforループを使います


42 :アヌス : 2009/01/30 18:58
8:
pubilc int sumInScanner(Scanner stream)

キーボードからいくつかの数字(スペース付で)をstreamにうけとり、すべての数字を足し返します。

テストメソッドはこんな感じですかな

@Test
public void sumInScanner(){
Scanner stream = new Scanner("1 2 3");
assertEquals(6, sumInScanner(stream));
}


43 :アヌス : 2009/01/30 19:03
9:
public double maximInScanner(Scanner stream)

streamにいくつかの数字があり、その中から一番デカい数字を返します。
テストメソッドはこんな感じでしょうか

@Test
public void testMaximInScanner(){
Scanner stream = new Scanner("1.0 -2.0 7.5 -3.0 0.5");
assertEquals(7.5, maximInScanner(stream), 1e-12);

しかし1e-12ってのがよくわかりません・・・汗


44 :アヌス : 2009/01/30 19:24
文字列などの変化で結構つっかかっていますです。
10個もメソッドつくらないかんのですが、もしわかるものがあれば教えてくださいです。
あとで、またわからないとこの詳細を書くです


45 :大和 : 2009/01/30 21:12
なるほど〜。
処理の流れは大体わかるんだけど,
どんなコード使えば・・・って事だよね多分。

問い10それぞれに使う核のコードを紹介していくね。
23時までにレスするねー。


46 :大和 : 2009/01/30 21:20
今回もテストクラスは,まず100%忘れておいて,
ホンチャンのクラスだけに集中して,作っていきましょうー。
テストクラス作るのはあとでやりましょう。
慣れてきたらホンチャンクラス作りながらテストクラスも作っていいですよ!


47 :大和 : 2009/01/31 10:18
問い0:

if (キーボード入力された値 % 400 == 0 || (キーボード入力された値 % 4 == 0 &&
    キーボード入力された値 % 100 != 0)) {
    return true;
} else {
    return false;
}

400で割り切れる値,もしくは
4で割り切れてかつ100で割り切れる値でないなら,
true を return する処理(わかりづらいね・・・)。

条件1:OK! 400 % 400 = 0
条件2:条件判定されず
条件3:条件判定されず
結果:400年は true

条件1:NG! 240 % 400 = 0 じゃない
条件2:OK! 240 % 4 = 0
条件3:OK! 240 % 100 = 0 じゃないからOK!
結果:240年は true

条件1:NG! 1300 % 400 = 0 じゃない
条件2:OK! 1300 % 4 = 0
条件3:NG! 1300 % 100 = 0 なのでNG!
結果:1300年は false

条件1:NG! 3 % 400 = 0 じゃない
条件2:NG! 3 % 4 = 0 じゃない
条件3:条件判定されず
結果:3年は false

こんな感じ!条件判定がややっこしいね・・・。



問い1:

文字列の真ん中のインデックスを求める。
"ABCED".length() → 「5」
5 / 2 → 5文字の真ん中のインデックスの値は 2 である。


文字列を切り取る。
"Kakitama".substring(0, 6) → 「Kakita」
"ABCEDF".substring(3) → 「EDF」


文字列を真ん中で分ける。
"Japan".substring(0, 真ん中のインデックスの値) → 「ja」
"Japan.substring(真ん中のインデックスの値)" → 「pan」


文字を全部小文字に。
"JAVA".toLowerCase() → 「java」

文字を全部大文字に。
"java".toUpperCase() → 「JAVA」



問い2:

この処理はおそらく,Arrays.sort() と compareTo() を使うと思います。
・・・!?    問い2は結構わかりにくいコードになるな!
わかりにくいコード=人に説明しにくいコード。
これはコード全部書いたほうが良いかな。



問い3:

わからない箇所があったらどこの処理でコーディングしづらいか言ってね!



問い4:

これもわからない箇所があったらどこの処理でコーディングしづらいか言ってね!



問い5:

一番最後のインデックスの値を一回一回切り取っていくって繰り返し処理だね。

文字列「ABCD」→D切り取る→変数AにD格納→C切り取る→変数AがDC→B切り取る→みたいな!
これも不明なようだったら言ってね!サンプルコード書くねー。



問い6:

これは大丈夫そうかな!?



問い7:

これも大丈夫そうかな!?



問い8:

これは以前作ったプログラムに似ているね。
それを参考にすれば出来そうかな?
わからない箇所があったら遠慮なく言ってね!



問い9:

「1e-12」ですが,Javaでの指数表記みたいだね!

Java 入門 | 基本データ型のリテラル
http://www.nextindex.net/java/literal.html

↑のサイトによると,1E-12は 1*10^(-12) って事なのかな?
ごめんこれはよくわからないから確証はないです!

このプログラムも問い8に似ているね。
stream にある文字列を数字に分解して,それぞれの数字を比較する,
って処理かな!
これもちょっと処理が長くなりそうかな・・?
わからない箇所があったらまたは全部わからない場合は遠慮なく言ってください!


48 :大和 : 2009/01/31 01:37
よし寝る!


49 :アヌス : 2009/01/31 07:57
ひえーーー
こんがらがってきた

すいません説明が悪かったです。うるう年の問題は、普通4年に一度なので4で割り切れる年なのですが、
世紀末の年だけ計算の仕方を変えるということです。
世紀末は当然100で割り切れないといけないのですが、うるう年は4年に一度なので、4×100ってことで400で割り切れる必要があると。
つまり世紀末のうるう年は400年に一度ってことですね。

だから世紀末の例で、400や800や2000はうるう年。しかし300や100や2100はちがう、ということですな


50 :大和 : 2009/01/31 08:17
       \ │ /
   ピカッ  _  。 _
       Å  / 丶 ウェーハハハハ!
   ヽ<ヽ`∀´>ノ、  邪悪なるものよ消えろニダ!
    / (   ) \
    んヘU Uヽ..〜'


 サ----
     Å:. ..
   ヽ<ヽ`A:: .. . . ウワァァ
    / (   ):... .. .
    んヘU Uヽ .. .


51 :大和 : 2009/01/31 08:19
>>49
了解!


52 :大和 : 2009/01/31 10:25
>>47の 問い0 を更新しました!


53 :アヌス : 2009/01/31 19:02
他のJAVAの課題やってて時間かかった・・・
ようやくこっちに移れるですよ・・・多すぎる・・・

2のプログラム、JAVAで配列まだやってなくてショボーンなんだよね・・・
booleanって頭がいたくなる

うあひゃあああああああああ


54 :アヌス : 2009/01/31 20:48
     (゚д゚ )  ≡≡≡
    O┬Oc )〜 ≡≡≡
    (*)ι_/(*) ≡≡≡


     ( ゚д゚ ) ! ≡≡≡
    O┬Oc )〜 ≡≡≡
    (*)ι_/(*) ≡≡≡


         ( ゚д゚ )
        O┬O
        ( .∩.|
         ι| |j::...
            ∪::::::


55 :アヌス : 2009/01/31 20:48
..           ''';;';';;'';;;,.,    ドドドドド ・・・
             ''';;';'';';''';;'';;;,.,   ドドドドドドドド・・・
              ;;''';;';'';';';;;'';;'';;;
             ;;'';';';;'';;';'';';';;;'';;'';;;
          vymyvwymyvymyvy、
      ヽ(゚д゚)vヽ(゚д゚)yヽ(゚д゚)v(゚д゚)っ
 ⊂( ゚д゚ ) と( ゚д゚ ) 〃ミ ( ゚д゚ )っ ( ゚д゚ )つ
   ゝηミ ( ゚д゚ )っ ミ) ⊂( ゚д゚ ) .(彡η r
    しu(彡η r⊂( ゚д゚ ) .ゝ.η.ミ) i_ノ┘
.       i_ノ┘  ヽ ηミ)しu
           (⌒) .|
            三`J


56 :アヌス : 2009/01/31 20:50
                        ┌─────────────────┐
                        |     ヽ(゚д゚)vヽ(゚д゚)yヽ(゚д゚)v(゚д゚)っ .|
                        |⊂( ゚д゚ ) と( ゚д゚ ) 〃ミ ( ゚д゚ )っ ( ゚д゚ )つ
          .(^ヽ(^Y´゙i'´),-‐、 |  ゝηミ ( ゚д゚ )っ ミ) ⊂( ゚д゚ ) .(彡η r'. ..|
        (`ーァ'"´ ̄ ̄`゙ヽ<'´|   しu(彡η r⊂( ゚д゚ ) .ゝ.η.ミ) i_ノ┘  .!
         .,,-‐-.l′ ( ゚д゚ )  ゙i-─、      i_ノ┘  ヽ ηミ)しu            |
       ゙ー-‐,|  /(  )ヽ  |-=ニ.          (⌒)              |
       / ,二二^7 _  .__/`Zィヽ、      `゙、ー‐--,
       / ,二二"/ ./ / "ァ r┬゙'i、>    _,ニ=-< .r-' ̄-ァ
     ./ ,二二"/ ./ .-、 .|゙ヤ7'ニ、 .゙、.,,-─-.、 .゙-─、 ゙i .7 ,r,=-─ァ
     "ァ ,r┐r''__/__,n、゙-' .)ヽ二,-^'1 .(7 ∧ .゙i  ,r' _ノ /__/、-ニ゙ー'__
    にン /_,ニノ    ゙ー-"     ゙ー-'´-ン  "‐'´       ゙ー二./
                       ∩  (\    /)
           ⊂ヽ゚д゚ )ヽ  ( ゚д゚ )ノ ))) \( ゚д゚ )/  ( ゚д゚ ) ミ
 lll ノ( ゚д゚ )ヽ lll  `ヽ  ヽ' ))  ( 二つ     |   |   γ 二つ つ
  ミ、_つ とノ彡    ノ   ノ   ノ 彡ヽ    |   |    {   (
   (_( ̄)_)      し' ⌒J   (_ノ ⌒゙J     し ⌒J    ヽ,_)ヽ,_)


57 :大和 : 2009/02/01 12:34
!?
ごめんー問い2 Arrays.sort() は使わないや!
compareTo() だけだったー使うのは。
ちょっと書いてみよう。


58 :アヌス : 2009/02/01 13:16
ええええええええええええええええええええええええええええ


59 :アヌス : 2009/02/01 13:18
まず0のプログラムから

import java unit.Scanner;

public class ControlFun {
public boolean isLeapYear(int year){

if(year%400==0 || (year%4==0 && !(year%100==0))){
return true;
}else{
return false;
}
}
   //残り9つのプログラムをここに・・・
}


60 :アヌス : 2009/02/01 15:56
かざっさん!もし俺のプログラムで間違いとかこう直したほうがもっとわかりやすいとかあったら 教えてください!
なんか俺のパソコンで コードが実行できなくてちゃんと動くかわからないんだ・・・


61 :アヌス : 2009/02/01 13:39
問題:1

public String halfAndHalf(String str){

int i=str.length();

String a=str.substring(0, i/2);
String b=str.substring(i/2, i);

String c = b.toUpperCase();
String d = a.toLowerCase();

String result = c + d;

return result;
}


62 :アヌス : 2009/02/01 15:29
問題2はこれで 動くかな・・・?

public String firstOf3Strings(String a, String b, String c){

 if(a.compareTo(b)<0 || a.compareTo(b)==0){
     if(a.compareTo(c)<0 || a.compareTo(c)==0){
       return a;
     }
     else if(a.compareTo(c)>0){
       return c;
     }
 }
 else if(b.compareTo(a)<0){
     if(b.compareTo(c)<0 || b.compareTo(c)==0){
       return b;
     }
     else if(b.compareTo(c)>0){
        return c;
     }
 }
}


63 :アヌス : 2009/02/01 15:59
かざっさん!問題3と4なんですが、booleanが意味わからんのです・・・
四季をreturnで返すのに、booleanがtrueかfalseってどういう意味ですか・・・
trueとfalseを返すんじゃないんだよね・・・このプログラム

4も同じですよね。変数に誕生日の日がはいるんだろうけど、どうやってtrueかfalseって判断・・・?

かざっさんこれ組めますか・・・?


64 :大和 : 2009/02/01 16:44
>>62
ああごめんなさい!作ってないから動くかわかりませんが,
考え方はそんな感じで良いと思います!
さすがみさきっさん。

>>63
ちょっと作ってみます!


65 :アヌス : 2009/02/01 16:57
お願いします!


66 :アヌス : 2009/02/01 17:10
問題5 これで動くかな・・・

public String reverseString(String arg){

int i = arg.length();
String a = "";
while(i<0){
char b = arg.charAt(i);
i --;
String reverse = String.valueOf(b);
a = a + reverse;
}

return a;
}


67 :アヌス : 2009/02/01 17:15
6:

public int firstNints(int n){

int i, j=0;

for(i=0;i<=n;i++){
j += i;
}
return j;
}


68 :大和 : 2009/02/01 17:19
作ってみました!ごめんなさい動作確認してません!
間違ってたら修正してやってください^q^。

問い3

public String season(int month, boolean inNorthenHemisphere) {
    if (month == 12 || 1 <= month <= 2) {
        if (inNorthernHemisphere) {
            return "Winter";
        } else {
            return "Summer";
        }
    } else if (3 <= month <= 5) {
        if (inNorthernHemisphere) {
            return "Spring";
        } else {
            return "Fall";
        }
    }
}



問い4

public int caughtSpeeding(int speed, boolean isBirthday) {
    if (isBirthday) {
        if (speed <= 65) {
            return 0;
        } else if (65 < speed <= 85) {
            return 1;
        } else if (85 < speed) {
            return 2;
        }
    } else {
        if (speed <= 60) {
            return 0;
        } else if (60 < speed <= 80) {
            return 1;
        } else if (80 < speed) {
            return 2;
        }
    }
}

もしくは

public int caughtSpeeding(int speed, boolean isBirthday) {
    if (isBirthday) {
        speed -= 5;
    }

    if (speed <= 60) {
        return 0;
    } else if (60 < speed <= 80) {
        return 1;
    } else if (80 < speed) {
        return 2;
    }
}



すみません!どっちもコード書いただけで,動作確認していません。
動くかわかりませんごめんなさーい。


69 :アヌス : 2009/02/01 17:22
問2のプログラムだけど、なんかString型の値を返さないといけないとかってエラーでた・・・
if文の中で返しちゃいけないの・・・?

if文が終わったプログラムの最後に返さないといけないの・・・?



70 :大和 : 2009/02/01 17:33
夕飯買って来るね!

>>66,67
動作確認していませんが,どっちもこれで動くと思うよ!
考え方はまさにこれでオッケーです!
姑の小言みたいですが,

public int firstNints(int n) {
    int j = 0;

    for (int i = 0; i <= n; i++) {
        j += i;
    }
    return j;
}

これでも動くはずだよ!動作確認していませんが・・!^q^;


71 :アヌス : 2009/02/01 17:29
あー、booleanって if文の条件が真か偽かってことなのか


72 :アヌス : 2009/02/01 17:38
夕飯いってらっしゃい!

>>69の質問ですが、問3と問4のプログラムでも同じエラーが・・・

問2
firstOf3Strings(String a, String b, String c){

問3
season(int month, boolean inNorthernHemisphere){

問4
caughtSpeeding(int speed, boolean isBirthday){

この3つの下に赤線のエラーが・・・
このメソッドは結果を返さないといけない、と表示されました・・・
if文の中で返してるんだけど・・・最後の}の前で返さないといけないの・・・?
でもそうするとプログラムかわらない? ええ・・・こういうエラーみたことあります?


73 :アヌス : 2009/02/01 18:05
問8はこれで いいかな?
キーボードから数字をString型で受け取り、それぞれの数字をスペースのあるところで判断して切り取り、
int型に直して全て足す。

public int sumInScanner(Scanner stream){

int result = 0;

stream = new Scanner(System.in);
String index = stream.nextLine();
StringTokenizer str = new StringTokenizer(index, " ");

while(str.hasMoreTokens()) {
int indexInt = Integer.parseInt(str.nextToken());

result += indexInt;
}

return result;
}


74 :アヌス : 2009/02/01 18:18
最後の問9で、数字をキーボードからString型で受け取りそれぞれを分解してint型に直してそれぞれの大小を比較しようと思うのですが、(問8とまったく一緒)

stream = new Scanner(System.in);
String index = stream.nextLine();
StringTokenizer str = new StringTokenizer(index, " ");

 while(str.hasMoreTokens()) {
int indexInt = Integer.parseInt(str.nextToken());

ここでindexIntに切り取ったそれぞれの数字が格納されてると思うんだけど、どうやったらそれぞれの数字の大小を比較できますか?
変数が複数あれば、たとえば変数aの値と変数bの値を比較というだけで簡単だけど、この場合変数はindexIntだけ・・・しかもそのただ1つだけの変数に比較したい数字が全部格納されてて・・・
これはどうすれば・・・


75 :大和 : 2009/02/01 19:04
>>72
おおおごめんー!
問い2と問い3は「returnされない」可能性があるからエラー出たんだ!

if 内に return 書くなら,if, else if, else
どれに分岐しても return されるようにしないとだめだったんだー。
一番最後の else if を else に変えてみてください!

お風呂!


76 :アヌス : 2009/02/01 19:57
うお。if文はelseで終わらせないといかんのか・・・
でもそうすると問2がelseでは終わらせられないんですけど・・・ショボーン

public String firstOf3Strings(String a, String b, String c){

 if(a.compareTo(b)<0 || a.compareTo(b)==0){ //aがbより小さい あるいはaがbと一緒
   if(a.compareTo(c)<0 || a.compareTo(c)==0){ // aがcより小さいあるいはcと一緒
     return a; // aが一番小さいからaを返す
   }
    else if(a.compareTo(c)>0){ // cの方がaより小さい
    return c; // cを返す
    }
 }
 else if(b.compareTo(a)<0){ // bの方がaより小さい
   if(b.compareTo(c)<0 || b.compareTo(c)==0){ // bの方がcより小さい あるいは一緒
    return b; // bを返す
    }
    else if(b.compareTo(c)>0){ // cの方が小さい
     return c; // cを返す
    }
 }
}


else if(b.compareTo(a)<0){ を else にすると、aとbが比較できない・・・


77 :アヌス : 2009/02/01 20:01
 if(a.compareTo(b)<0 || a.compareTo(b)==0){ //aがbより小さい あるいはaがbと一緒
   if(a.compareTo(c)<0 || a.compareTo(c)==0){ // aがcより小さいあるいはcと一緒
     return a; // aが一番小さいからaを返す
   }
    else if(a.compareTo(c)>0){ // cの方がaより小さい
    return c; // cを返す
    }
 }
 else{ //ここをelseに変えて 動く・・・かな?
   if(b.compareTo(c)<0 || b.compareTo(c)==0){ // bの方がcより小さい あるいは一緒
    return b; // bを返す
    }
    else if(b.compareTo(c)>0){ // cの方が小さい
     return c; // cを返す
    }
 }
}

それと、compareTo()は自動的に大文字のほうが小文字より小さいと判断してくれるん・・・?


78 :アヌス : 2009/02/01 20:08
あれ・・・?かざっさんの問3と問4は最後のelseに変えただけでエラー消えたのに、俺の問2は・・・エラー赤線きえない・・・
このメソッドはstring型の結果を返さないといけません・・・ってa、b、c返してるじゃん・・・
なんでえええええええええええええええええ


79 :アヌス : 2009/02/01 20:13
問2と問9でつまづきました・・・


80 :大和 : 2009/02/01 22:54
問い2は else に変えただけじゃダメっぽそうだねorz。
問い9はどうしたもんかなー。
2と9はちょっと考えないとコード思いつかなそうだ・・@@;。
2も9も考えたいんだけど・・もう眠くて頭が。
明日は夜まで隼人板来れないんだ!
ごめんよー肝心な時に力になれなくてーー。
ちょっと自力で頑張ってみてください!


81 :大和 : 2009/02/01 22:55
朝と昼に書き込めたら書き込みます!


82 :アヌス : 2009/02/02 09:41
public String firstOf3Strings(String a, String b, String c){

if(a.compareTo(b)<0 || a.compareTo(b)==0){
if(a.compareTo(c)<0 || a.compareTo(c)==0){
return a;
}
else{
return c;
}
}
else if(b.compareTo(a)<0){
if(b.compareTo(c)<0 || b.compareTo(c)==0){
return b;
}
else{
return c;
}
}
else{
return c;
}
}


最後にelseを加えてみたんだが・・・。
多分a、b、cがどんな文字入ってても最後のelseには分岐しないようにしたつもりなんだけど・・・



83 :アヌス : 2009/02/02 12:19
かざっさんの問3のプログラムを変えたのですが

public String season(int month, boolean inNorthernHemisphere){

if (month == 12 || month ==1 || month == 2) {
if (inNorthernHemisphere) {
return "Winter";
} else {
return "Summer";
}
} else if(month == 3 || month == 4 || month == 5 ){
if (inNorthernHemisphere) {
return "Spring";
} else {
return "Fall";
}
}else if(month == 6 || month == 7 || month == 8){
if (inNorthernHemisphere) {
return "Summer";
} else {
return "Winter";
}
}else{
if (inNorthernHemisphere) {
return "Fall";
} else {
return "Spring";
}
}
}

これのテストはどう作ればいいんでしょうか。booleanのところがエラーです・・・
12月の北半球(True)はWinterなのでそれをテストしようと以下のようにassertしたんだけどエラでるんです

@Test
public void testseason(){
ControlFun myFuns = new ControlFun();

assertEquals("Winter", myFuns.season("12", " "));

ここなんですけど、" "のところはなにを入れれば・・・TrueとかinNorthernHemisphereを入れても赤線エラーが・・・
booleanはどうやってテストするんですか・・・?


84 :アヌス : 2009/02/02 15:19
最後のプログラムはこんな感じかな

public double maximInScanner(Scanner stream){

stream = new Scanner(System.in);
String index = stream.nextLine();
StringTokenizer str = new StringTokenizer(index, " ");

double resultDbl = Double.parseDouble(str.nextToken());

while(str.hasMoreTokens()) {
double compareDbl = Double.parseDouble(str.nextToken());
if (resultDbl < compareDbl ){
resultDbl = compareDbl;
}
}
return resultDbl;
}


85 :アヌス : 2009/02/02 16:45
自己解決しました・・・
あとは実行させてちゃんと動くかどうか試すだけ・・・
お世話かけました〜!


86 :アヌス : 2009/02/02 17:00
ちょっと 貼らせてください あとで大学でコピペしやすいように

import java.util.Scanner;
import java.util.StringTokenizer;

public class ControlFun {

//program1
public boolean isLeapYear(int year){

if(year%400==0 || (year%4==0 && !(year%100==0))){
return true;
}else{
return false;
}
}
//program2
public String halfAndHalf(String str){

int i;

i=str.length();

String a=str.substring(0, i/2);
String b=str.substring(i/2, i);

String c = b.toUpperCase();
String d = a.toLowerCase();

String result = c + d;

return result;
}

//program3
public String firstOf3Strings(String a, String b, String c){

if(a.compareTo(b)<0 || a.compareTo(b)==0){
if(a.compareTo(c)<0 || a.compareTo(c)==0){
return a;
}
else{
return c;
}
}
else if(b.compareTo(a)<0){
if(b.compareTo(c)<0 || b.compareTo(c)==0){
return b;
}
else{
return c;
}
}
else{
return c;
}
}


//program4
public String season(int month, boolean inNorthernHemisphere){

if (month == 12 || month ==1 || month == 2) {
if (inNorthernHemisphere) {
return "Winter";
} else {
return "Summer";
}
} else if(month == 3 || month == 4 || month == 5 ){
if (inNorthernHemisphere) {
return "Spring";
} else {
return "Fall";
}
}else if(month == 6 || month == 7 || month == 8){
if (inNorthernHemisphere) {
return "Summer";
} else {
return "Winter";
}
}else{
if (inNorthernHemisphere) {
return "Fall";
} else {
return "Spring";
}
}
}

//program5
public int caughtSpeeding(int speed, boolean isBirthday){

if (isBirthday) {
speed -= 5;
}

if (speed <= 60) {
return 0;
} else if (60 < speed && speed <= 80) {
return 1;
} else{
return 2;
}
}

//program6
public String reverseString(String arg){

int i = arg.length();
String a = "";
while(i<0){
char b = arg.charAt(i);
i --;
String reverse = String.valueOf(b);
a = a + reverse;
}

return a;
}

//program7
public int firstNints(int n){

int i, j=0;

for(i=0;i<=n;i++){
j += i;
}
return j;
}

//program8
public int factorial(int n){

int i, j=0;

for(i=0;i<=n;i++){
j *= i;
}
return j;
}

//program9
public int sumInScanner(Scanner stream){

int result = 0;

stream = new Scanner(System.in);
String index = stream.nextLine();
StringTokenizer str = new StringTokenizer(index, " ");

while(str.hasMoreTokens()) {
int indexInt = Integer.parseInt(str.nextToken());

result += indexInt;
}

return result;
}

//program10
public double maximInScanner(Scanner stream){

stream = new Scanner(System.in);
String index = stream.nextLine();
StringTokenizer str = new StringTokenizer(index, " ");

double resultDbl = Double.parseDouble(str.nextToken());

while(str.hasMoreTokens()) {
double compareDbl = Double.parseDouble(str.nextToken());
if (resultDbl < compareDbl ){
resultDbl = compareDbl;
}
}
return resultDbl;
}
}


87 :アヌス : 2009/02/02 17:04
import static org.junit.Assert.*;
import org.junit.Test;
import java.util.Scanner;

public class ControlFunTest {
@Test
public void testisLeapYear(){
ControlFun myFuns = new ControlFun();

assertTrue(myFuns.isLeapYear(2008));
assertFalse(myFuns.isLeapYear(2009));
assertFalse(myFuns.isLeapYear(2100));
assertTrue(myFuns.isLeapYear(2400));
}

@Test
public void testhalfAndHalf(){
ControlFun myFuns = new ControlFun();

assertEquals("abcdX2Y4", myFuns.halfAndHalf("x2y4abcd"));
assertEquals("defABC", myFuns.halfAndHalf("AbcDef"));
assertEquals("lloHE", myFuns.halfAndHalf("Hello"));
assertEquals("f aU O", myFuns.halfAndHalf("U of A"));
}

@Test
public void testfirstOf3Strings(){
ControlFun myFuns = new ControlFun();

assertEquals("First", myFuns.firstOf3Strings("Third", "Second", "First"));
assertEquals("Ma", myFuns.firstOf3Strings("Ma", "ma", "ma"));
assertEquals("a", myFuns.firstOf3Strings("c", "b", "a"));
assertEquals("A", myFuns.firstOf3Strings("A", "C", "B"));
assertEquals("a", myFuns.firstOf3Strings("a ", "a ", "a"));
}

@Test
public void testseason(){
ControlFun myFuns = new ControlFun();

assertEquals("Winter", myFuns.season(12, true ));
assertEquals("Summer", myFuns.season(6, true));
assertEquals("Winter", myFuns.season(8, false));
assertEquals("Spring", myFuns.season(11, false));
}

@Test
public void testcaughtSpeeding(){
ControlFun myFuns = new ControlFun();

assertEquals("0", myFuns.caughtSpeeding(60, false));
assertEquals("1", myFuns.caughtSpeeding(65, false));
assertEquals("0", myFuns.caughtSpeeding(65, true));
assertEquals("1", myFuns.caughtSpeeding(85, true));
assertEquals("2", myFuns.caughtSpeeding(81, false));
}

@Test
public void testreverseString(){
ControlFun myFuns = new ControlFun();

assertEquals("", myFuns.reverseString(""));
assertEquals("1", myFuns.reverseString("1"));
assertEquals("1234", myFuns.reverseString("4321"));
assertEquals("racecar", myFuns.reverseString("racecar"));
}

@Test
public void testfirstNints(){
ControlFun myFuns = new ControlFun();

assertEquals("15", myFuns.firstNints(5));
assertEquals("3", myFuns.firstNints(2));
assertEquals("1", myFuns.firstNints(1));
}

@Test
public void testfactorial(){
ControlFun myFuns = new ControlFun();

assertEquals("24", myFuns.factorial(4));
assertEquals("6", myFuns.factorial(3));
assertEquals("2", myFuns.factorial(2));
assertEquals("1", myFuns.factorial(1));
}

@Test
public void testsumInScanner(){
ControlFun myFuns = new ControlFun();

Scanner stream = new Scanner("1 2 3");
assertEquals(6, myFuns.sumInScanner(stream));
}

@Test
public void testmaximInScanner(){
ControlFun myFuns = new ControlFun();

Scanner stream = new Scanner("1.0 -2.0 7.5 -3.0 0.5");
assertEquals(7.5, myFuns.maximInScanner(stream), 1e-12);
}

}



88 :大和 : 2009/02/03 02:16
今日は疲れました。
みさきっさんうまくいったかな。
自己解決しましたね。さすが。
今日はお役に立てなくて失礼でした。
眠いーねるぅー。


89 :ねこみみ : 2009/02/03 05:49
プログラムもコンフィグもデバックが一番力つくよなぁ。


90 :アヌス : 2009/02/03 06:04
うおおお
エラーが・・・


91 :anusu : 2009/02/03 09:32
karimasu

import java.util.Scanner;
import java.util.StringTokenizer;

public class ControlFun {

// This method returns leap year.
public boolean isLeapYear(int year) {

if (year % 400 == 0 || (year % 4 == 0 && !(year % 100 == 0))) {
return true;
} else {
return false;
}
}

// This method returns a new string that has the upper case version of
// the first half of the argument at the end and the lower case version of
// the half of the argument at the beginning.
public String halfAndHalf(String str) {

int i;

i = str.length();

String a = str.substring(0, i / 2);
String b = str.substring(i / 2, i);

String c = a.toUpperCase();
String d = b.toLowerCase();

String result = d + c;

return result;
}

// This method returns a reference to the string that is not greater then
// the other two.
public String firstOf3Strings(String a, String b, String c) {

if (a.compareTo(b) < 0 || a.compareTo(b) == 0) {
if (a.compareTo(c) < 0 || a.compareTo(c) == 0) {
return a;
} else {
return c;
}
} else {
if (b.compareTo(c) < 0 || b.compareTo(c) == 0) {
return b;
} else {
return c;
}
}
}

// This method returns the current season in that hemisphere.
public String season(int month, boolean inNorthernHemisphere) {

if (month == 12 || month == 1 || month == 2) {
if (inNorthernHemisphere) {
return "Winter";
} else {
return "Summer";
}
} else if (month == 3 || month == 4 || month == 5) {
if (inNorthernHemisphere) {
return "Spring";
} else {
return "Fall";
}
} else if (month == 6 || month == 7 || month == 8) {
if (inNorthernHemisphere) {
return "Summer";
} else {
return "Winter";
}
} else {
if (inNorthernHemisphere) {
return "Fall";
} else {
return "Spring";
}
}
}

// This method returns 0 if the speed is 60 or less, returns 1 if speed is
// between 61 and 80, returns 2 if speed is 81 or more. Unless it is your
// birthday on that day, speed can be 5 higher in all cases.
public int caughtSpeeding(int speed, boolean isBirthday) {

if (isBirthday) {
speed -= 5;
}

if (speed <= 60) {
return 0;
} else if (60 < speed && speed <= 80) {
return 1;
} else {
return 2;
}
}

// This method returns a reference to a string that is the reverse order of
// the argument.
public String reverseString(String arg) {

int i = arg.length();
String a = "";
while (i > 0) {
char b = arg.charAt(i - 1);
i--;
String reverse = String.valueOf(b);
a = a + reverse;
}

return a;
}

// This method returns the sum of the first n integers.
public int firstNints(int n) {

int i, j = 0;

for (i = 0; i <= n; i++) {
j += i;
}
return j;
}

// This method returns n factorial.
public int factorial(int n) {

int i, j = 1;

for (i = 1; i <= n; i++) {
j = j * i;
}
return j;
}

// This method returns the sum of all integers.
public int sumInScanner(Scanner stream) {

int result = 0;

stream = new Scanner(System.in);
String index = stream.nextLine();
StringTokenizer str = new StringTokenizer(index, " ");

while (str.hasMoreTokens()) {
int indexInt = Integer.parseInt(str.nextToken());

result += indexInt;
}

return result;
}

// This method returns the largest number found.
public double maximumInScanner(Scanner stream) {

stream = new Scanner(System.in);
String index = stream.nextLine();
StringTokenizer str = new StringTokenizer(index, " ");

double resultDbl = Double.parseDouble(str.nextToken());

while (str.hasMoreTokens()) {
double compareDbl = Double.parseDouble(str.nextToken());
if (resultDbl < compareDbl) {
resultDbl = compareDbl;
}
}
return resultDbl;
}

}


92 :anusu : 2009/02/03 09:33
import static org.junit.Assert.*;
import org.junit.Test;
import java.util.Scanner;

public class ControlFunTest {

@Test
public void testisLeapYear() {
ControlFun myFuns = new ControlFun();

assertTrue(myFuns.isLeapYear(2008));
assertFalse(myFuns.isLeapYear(2009));
assertFalse(myFuns.isLeapYear(2100));
assertTrue(myFuns.isLeapYear(2400));
}

@Test
public void testhalfAndHalf() {
ControlFun myFuns = new ControlFun();

assertEquals("abcdX2Y4", myFuns.halfAndHalf("x2y4abcd"));
assertEquals("defABC", myFuns.halfAndHalf("AbcDef"));
assertEquals("lloHE", myFuns.halfAndHalf("Hello"));
assertEquals("f aU O", myFuns.halfAndHalf("U of A"));
}

@Test
public void testfirstOf3Strings() {
ControlFun myFuns = new ControlFun();

assertEquals("First", myFuns
.firstOf3Strings("Third", "Second", "First"));
assertEquals("Ma", myFuns.firstOf3Strings("Ma", "ma", "ma"));
assertEquals("a", myFuns.firstOf3Strings("a", "b", "c"));
assertEquals("B", myFuns.firstOf3Strings("B", "B", "B"));
assertEquals("A", myFuns.firstOf3Strings("A", "A", "C"));
assertEquals("T", myFuns.firstOf3Strings("Z", "Z", "T"));
assertEquals("B", myFuns.firstOf3Strings("R", "a", "B"));
assertEquals("A", myFuns.firstOf3Strings("A", "a", "G"));
assertEquals("A", myFuns.firstOf3Strings("B", "A", "F"));
assertEquals("a", myFuns.firstOf3Strings("a", "z", "a"));
assertEquals("A", myFuns.firstOf3Strings("a", "A", "a"));
assertEquals("A", myFuns.firstOf3Strings("b", "A", "a"));
assertEquals("a", myFuns.firstOf3Strings("a ", "a ", "a"));
}

@Test
public void testseason() {
ControlFun myFuns = new ControlFun();

assertEquals("Winter", myFuns.season(12, true));
assertEquals("Summer", myFuns.season(12, false));
assertEquals("Spring", myFuns.season(3, true));
assertEquals("Fall", myFuns.season(3, false));
assertEquals("Summer", myFuns.season(6, true));
assertEquals("Winter", myFuns.season(6, false));
assertEquals("Fall", myFuns.season(10, true));
assertEquals("Spring", myFuns.season(10, false));
}

@Test
public void testcaughtSpeeding() {
ControlFun myFuns = new ControlFun();

assertEquals(0, myFuns.caughtSpeeding(60, false));
assertEquals(1, myFuns.caughtSpeeding(65, false));
assertEquals(0, myFuns.caughtSpeeding(65, true));
assertEquals(1, myFuns.caughtSpeeding(85, true));
assertEquals(2, myFuns.caughtSpeeding(81, false));
}

@Test
public void testreverseString() {
ControlFun myFuns = new ControlFun();

assertEquals("", myFuns.reverseString(""));
assertEquals("1", myFuns.reverseString("1"));
assertEquals("1234", myFuns.reverseString("4321"));
assertEquals("racecar", myFuns.reverseString("racecar"));
}

@Test
public void testfirstNints() {
ControlFun myFuns = new ControlFun();

assertEquals(15, myFuns.firstNints(5));
assertEquals(3, myFuns.firstNints(2));
assertEquals(1, myFuns.firstNints(1));
}

@Test
public void testfactorial() {
ControlFun myFuns = new ControlFun();

assertEquals(24, myFuns.factorial(4));
assertEquals(6, myFuns.factorial(3));
assertEquals(2, myFuns.factorial(2));
assertEquals(1, myFuns.factorial(1));
}

@Test
public void testsumInScanner() {
//ControlFun myFuns = new ControlFun();

Scanner stream = new Scanner("1 2 3");
assertEquals(6, sumInScanner(stream));
}

@Test
public void testmaximumInScanner() {
//ControlFun myFuns = new ControlFun();

Scanner stream = new Scanner("1.0 -2.0 7.5 -3.0 0.5");
assertEquals(7.5, maximumInScanner(stream), 1e-12);
}

}


93 :anusu : 2009/02/03 09:34
Testcase: testsumInScanner took 0.016 sec
Caused an ERROR
No line found
java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Scanner.java:1516)
at ControlFun.sumInScanner(ControlFun.java:149)
at ControlFunTest.testsumInScanner(ControlFunTest.java:113)

Testcase: testmaximumInScanner took 0 sec
Caused an ERROR
No line found
java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Scanner.java:1516)
at ControlFun.maximumInScanner(ControlFun.java:165)
at ControlFunTest.testmaximumInScanner(ControlFunTest.java:121


94 :anusu : 2009/02/03 09:35
The following hint(s) may help you locate some ways in which your solution and your testing may be improved:

No line found (10 occurrences)

symptom: java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Scanner.java:1516)
at ControlFun.sumInScanner



95 :anusu : 2009/02/03 09:35
148 1 stream = new Scanner(System.in);

149 1 String index = stream.nextLine();

150 0 StringTokenizer str = new StringTokenizer(index, " ");

151
152 0 while (str.hasMoreTokens()) {

153 0 int indexInt = Integer.parseInt(str.nextToken());

154
155 0 result += indexInt;

156 }
157
158 0 return result;

159 }
160
161 // program10
162 1 public double maximumInScanner(Scanner stream) {

163
164 1 stream = new Scanner(System.in);

165 1 String index = stream.nextLine();

166 0 StringTokenizer str = new StringTokenizer(index, " ");

167
168 0 double resultDbl = Double.parseDouble(str.nextToken());

169
170 0 while (str.hasMoreTokens()) {

171 0 double compareDbl = Double.parseDouble(str.nextToken());

172 0 if (resultDbl < compareDbl) {

173 0 resultDbl = compareDbl;

174 }
175 }
176 0 return resultDbl;

177 }
178 }



96 :anusu : 2009/02/03 09:36
saigo 2tu no program ga error okimasu...


97 :anusu : 2009/02/03 11:41
/* This class has ten unrelated method that process primitive types and
Strings, most requiring selective and repetitive control structures.
* programmer: Misaki Kakita
* Section leader: Matt Swatzell
* Created on Feb 02, 2009
*/

import java.util.Scanner;

public class ControlFun {

// This method returns leap year.
public boolean isLeapYear(int year) {

if (year % 400 == 0 || (year % 4 == 0 && !(year % 100 == 0))) {
return true;
} else {
return false;
}
}

// This method returns a new string that has the upper case version of
// the first half of the argument at the end and the lower case version of
// the half of the argument at the beginning.
public String halfAndHalf(String str) {

int i;

i = str.length();

String a = str.substring(0, i / 2);
String b = str.substring(i / 2, i);

String c = a.toUpperCase();
String d = b.toLowerCase();

String result = d + c;

return result;
}

// This method returns a reference to the string that is not greater then
// the other two.
public String firstOf3Strings(String a, String b, String c) {

if (a.compareTo(b) < 0 || a.compareTo(b) == 0) {
if (a.compareTo(c) < 0 || a.compareTo(c) == 0) {
return a;
} else {
return c;
}
} else {
if (b.compareTo(c) < 0 || b.compareTo(c) == 0) {
return b;
} else {
return c;
}
}
}

// This method returns the current season in that hemisphere.
public String season(int month, boolean inNorthernHemisphere) {

if (month == 12 || month == 1 || month == 2) {
if (inNorthernHemisphere) {
return "Winter";
} else {
return "Summer";
}
} else if (month == 3 || month == 4 || month == 5) {
if (inNorthernHemisphere) {
return "Spring";
} else {
return "Fall";
}
} else if (month == 6 || month == 7 || month == 8) {
if (inNorthernHemisphere) {
return "Summer";
} else {
return "Winter";
}
} else {
if (inNorthernHemisphere) {
return "Fall";
} else {
return "Spring";
}
}
}

// This method returns 0 if the speed is 60 or less, returns 1 if speed is
// between 61 and 80, returns 2 if speed is 81 or more. Unless it is your
// birthday on that day, speed can be 5 higher in all cases.
public int caughtSpeeding(int speed, boolean isBirthday) {

if (isBirthday) {
speed -= 5;
}

if (speed <= 60) {
return 0;
} else if (60 < speed && speed <= 80) {
return 1;
} else {
return 2;
}
}

// This method returns a reference to a string that is the reverse order of
// the argument.
public String reverseString(String arg) {

int i = arg.length();
String a = "";
while (i > 0) {
char b = arg.charAt(i - 1);
i--;
String reverse = String.valueOf(b);
a = a + reverse;
}

return a;
}

// This method returns the sum of the first n integers.
public int firstNints(int n) {

int i, j = 0;

for (i = 0; i <= n; i++) {
j += i;
}
return j;
}

// This method returns n factorial.
public int factorial(int n) {

int i, j = 1;

for (i = 1; i <= n; i++) {
j = j * i;
}
return j;
}

// This method returns the sum of all integers.
public int sumInScanner(Scanner stream) {

int result = 0;

while (stream.hasNextInt()) {
int indexInt = stream.nextInt();

result += indexInt;
}

return result;
}

// This method returns the largest number found.
public double maximumInScanner(Scanner stream) {

double resultDbl = stream.nextDouble();

while (stream.hasNextDouble()) {
double compareDbl = stream.nextDouble();
if (resultDbl < compareDbl) {
resultDbl = compareDbl;
}
}
return resultDbl;
}

}



98 :anusu : 2009/02/03 11:42
/* This class has @Test method for the all ten method in ControlFun.java.
* programmer: Misaki Kakita
* Section leader: Matt Swatzell
* Created on Feb 02, 2009
*/

import static org.junit.Assert.*;
import org.junit.Test;
import java.util.Scanner;

public class ControlFunTest {

@Test
public void testisLeapYear() {
ControlFun myFuns = new ControlFun();

assertTrue(myFuns.isLeapYear(2008));
assertFalse(myFuns.isLeapYear(2009));
assertFalse(myFuns.isLeapYear(2100));
assertTrue(myFuns.isLeapYear(2400));
}

@Test
public void testhalfAndHalf() {
ControlFun myFuns = new ControlFun();

assertEquals("abcdX2Y4", myFuns.halfAndHalf("x2y4abcd"));
assertEquals("defABC", myFuns.halfAndHalf("AbcDef"));
assertEquals("lloHE", myFuns.halfAndHalf("Hello"));
assertEquals("f aU O", myFuns.halfAndHalf("U of A"));
}

@Test
public void testfirstOf3Strings() {
ControlFun myFuns = new ControlFun();

assertEquals("First", myFuns
.firstOf3Strings("Third", "Second", "First"));
assertEquals("Ma", myFuns.firstOf3Strings("Ma", "ma", "ma"));
assertEquals("a", myFuns.firstOf3Strings("a", "b", "c"));
assertEquals("B", myFuns.firstOf3Strings("B", "B", "B"));
assertEquals("A", myFuns.firstOf3Strings("A", "A", "C"));
assertEquals("T", myFuns.firstOf3Strings("Z", "Z", "T"));
assertEquals("B", myFuns.firstOf3Strings("R", "a", "B"));
assertEquals("A", myFuns.firstOf3Strings("A", "a", "G"));
assertEquals("A", myFuns.firstOf3Strings("B", "A", "F"));
assertEquals("a", myFuns.firstOf3Strings("a", "z", "a"));
assertEquals("A", myFuns.firstOf3Strings("a", "A", "a"));
assertEquals("A", myFuns.firstOf3Strings("b", "A", "a"));
assertEquals("a", myFuns.firstOf3Strings("a ", "a ", "a"));
}

@Test
public void testseason() {
ControlFun myFuns = new ControlFun();

assertEquals("Winter", myFuns.season(12, true));
assertEquals("Summer", myFuns.season(12, false));
assertEquals("Spring", myFuns.season(3, true));
assertEquals("Fall", myFuns.season(3, false));
assertEquals("Summer", myFuns.season(6, true));
assertEquals("Winter", myFuns.season(6, false));
assertEquals("Fall", myFuns.season(10, true));
assertEquals("Spring", myFuns.season(10, false));
}

@Test
public void testcaughtSpeeding() {
ControlFun myFuns = new ControlFun();

assertEquals(0, myFuns.caughtSpeeding(60, false));
assertEquals(1, myFuns.caughtSpeeding(65, false));
assertEquals(0, myFuns.caughtSpeeding(65, true));
assertEquals(1, myFuns.caughtSpeeding(85, true));
assertEquals(2, myFuns.caughtSpeeding(81, false));
}

@Test
public void testreverseString() {
ControlFun myFuns = new ControlFun();

assertEquals("", myFuns.reverseString(""));
assertEquals("1", myFuns.reverseString("1"));
assertEquals("1234", myFuns.reverseString("4321"));
assertEquals("racecar", myFuns.reverseString("racecar"));
}

@Test
public void testfirstNints() {
ControlFun myFuns = new ControlFun();

assertEquals(15, myFuns.firstNints(5));
assertEquals(3, myFuns.firstNints(2));
assertEquals(1, myFuns.firstNints(1));
}

@Test
public void testfactorial() {
ControlFun myFuns = new ControlFun();

assertEquals(24, myFuns.factorial(4));
assertEquals(6, myFuns.factorial(3));
assertEquals(2, myFuns.factorial(2));
assertEquals(1, myFuns.factorial(1));
}

@Test
public void testsumInScanner() {
ControlFun myFuns = new ControlFun();

Scanner stream = new Scanner("1 2 3");
assertEquals(6, myFuns.sumInScanner(stream));
}

@Test
public void testmaximumInScanner() {
ControlFun myFuns = new ControlFun();

Scanner stream = new Scanner("1.0 -2.0 7.5 -3.0 0.5");
assertEquals(7.5, myFuns.maximumInScanner(stream), 1e-12);
}

}



99 :anusu : 2009/02/03 12:22
できた!


100 :アヌス : 2009/02/03 17:07
StringTokenizerは使うなって教授に言われた・・・
Scannerにもともとその機能はあるらしい
Scanner使えるな


101 :大和 : 2009/02/03 22:57
おおそりゃ知らなかった!
勉強になるなあ。
まだまだ私も精進せねば!


102 :アヌス : 2009/02/04 03:27
杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー
  杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー
 杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー
  ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏
   ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏
   ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏
  杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー
  杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー
 杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー


103 :アヌス : 2009/02/04 03:27
コニア画コニア画コニア画コニア画コニア画コニア画
コニア画コニア画コニア画コニア画コニア画コニア画

画アニコ画アニコ画アニコ画アニコ画アニコ画アニコ
画アニコ画アニコ画アニコ画アニコ画アニコ画アニコ

コニア画コニア画コニア画コニア画コニア画コニア画
コニア画コニア画コニア画コニア画コニア画コニア画


104 :ねこみみ : 2009/02/05 20:14
あらされとる


105 :アヌス : 2009/02/06 17:22
         ____
        / 、, ヽ
     ,, -┬ | ^  ^ |┬,-、
   / ,-、,-(:|lこHこl|;)ー--、  ほっほっほっほっほっほっ
    |/|,゙,l| ,,┴ー.vー┴、   ヽ
  /  __|、|/'v'T'~^~Tヽl\   \ ワシを呼んだかのう?
  |   {_Ξ}   ヽ,,,,,,/    \|   |
  \___/T'|'    | ''' |     |  /
     | l゚|     |┿|     |/
     | |l|     |┿|     |┤
    | |'|     |┿|     |┤
     |,__|゙|__,l人l_______|/
      | |,|          |
     `|'|          /
      l|、____λ__/
      !  v    v


106 :大和 : 2009/02/07 01:56
なつかしいAAだw


107 :アヌス : 2009/02/07 07:37
http://www.nicovideo.jp/watch/1231411233

クソワロタwwwwwwwアホダキメェwww


108 :アヌス : 2009/02/07 12:39
お前が車を避けたら事故が起こらなかったんだよ。
ブレーキ踏んだけど、車は直ぐに停まらないんだよ。
停まらない車が悪いんだ。

それから、雨で視界が悪かったんだよ。
雨の日にお前が出歩かなきゃ良かったんだ。

酒?飲ませた店と同僚が悪いんだよ。
付き合いは断れないだろう。
男ならわかるだろう?

お前がちゃんと注意していたら避けられたんだよ。
俺、悪くないよ。

雨の日の朝、青信号を普通に渡っていて跳ねられた俺が
運転者から後日、言われた言葉ににてるなw


109 :アヌス : 2009/02/08 15:49
かざっさん!今プログラムやっててテストメソッド作ってて最初のラインに
import org.junit.test;
import java.util.scanner;
をいれたんだけど、org.junit.testとjava.util.scannerに赤線はいってしまうんですよ。。。
Junit4は追加したのに・・・
解決方法しりませんか?


110 :アヌス : 2009/02/08 16:29
それと、配列の問題やってるんだけど、例えば、配列にいくつかの文字列が入ってて、
各配列の文字数を数えて、変数lenより大きい文字列の入った配列はいくつあるか調べるんですが

例)
stringLongerThan({"a","ab","abc"},0) 3つ全ての配列の文字列の文字数は0よりでかいから3を返す
stringLongerThan({"a","ab","abc"},2) 2より大きい文字数の文字列はabcのみだから1
stringLongerThan({"a","ab","abc","abcd","abcde","abcdef","abcdefg"},3) 3より大きい文字数の文字列は"abcd","abcde","abcdef","abcdefg"の4つだから4


以下のように組んだんだけど、strのところに黄色い線がはいるのです・・・このやり方ダメかな?

流れとしては、例えばstringLongerThan({"a","ab","abc"},2)これを解くとして、
最初の配列"a"の文字数を数え、1文字だからこれは2より小さく無視。
次の配列"ab"の文字数は2.これは2より大きくないから無視。
最後の配列"abc"の文字数は3。2よりデカイからOK。
よって最後の配列1個だけが2よりでかい文字数だったので、1を返します。

できてないかな・・・?Eclipseインスコしたのに実行できないんだ・・・

public int stringsLongerthan(String[] array, int len){

int result2=0;

for(int i=0;i int result1=0;
for(int j=0;j String str=array[i].substring(j, j+1);
result1 ++;
}
if(result1>len)
result2++;
}
return result2;
}


111 :アヌス : 2009/02/08 16:10
それと、配列の中にいくつか文字があって、同じ文字が2つ連続してるのが何回あるかを返します


numberOfPairs({"a", "b", "c"}) ダブりはない→0
numberOfPairs({"b", "a", "a", "b"}) bは連続してない。aが1回連続してる→1
numberOfpairs({"a", "a", "a"}) aが2回連続してる→2
numberOfPairs({"a", "a", "b", "b"}) aが1回、bが1回連続してる→2


以下のようにくんだんだけど、最初のpublic int numberOfPairs(String[] array){に赤線が入って、このメソッドはint型の結果をreturnしなければいけないってでるんだ。最後にreturnしてるんだけど・・・

public int numberOfPairs(String[] array){

int result=0;

for(int i=0;iif(i+1==array.length){
break;
}else if(array[i]==array[i+1]){
result++;
}
}
return result;
}




112 :アヌス : 2009/02/08 16:19
文字列の配列で、例えば({"and", "there", "goes", "another"})なんてのが入ってて、anotherと同じ文字列はあるかどうか調べるときに、

for(int i=0;i if(array[i]=="another")
return true
}

なんていうふうに比較してってもいいん?


113 :アヌス : 2009/02/08 17:12
>>111の赤線は解決しました。しかし>>112でも聞いたけど、文字列の比較ってarray[i]==array[i+1]でいいのかな・・・?


114 :アヌス : 2009/02/08 21:12
はじめString型の配列arrayがあり、配列の最後の要素を削除する場合、

String[] temp = new String[array.length-1]; //一時配列tempを準備して、その配列の要素数をarrayより1つ少なくする。
array = temp; //元の配列arrayに代入

これだけで できますか?

配列arrayの内容が({"A","B","C","D"})の場合 → ({"A","B","C"})こういう結果にできますか?上の表記で


115 :アヌス : 2009/02/08 22:27
>>109も解決しました

>>112のように 配列の中の文字列の比較と
>>114の配列の削除を教えてもらえますか




116 :アヌス : 2009/02/08 22:57
コッコ


117 :大和 : 2009/02/08 23:07
>>114
動作確認してないので間違えていたらごめんね。

>はじめString型の配列arrayがあり、配列の最後の要素を削除する場合、
>
>String[] temp = new String[array.length-1]; //一時配列tempを準備して、その配列の要素数をarrayより1つ少なくする。
>array = temp; //元の配列arrayに代入
>
>これだけで できますか?
>
>配列arrayの内容が({"A","B","C","D"})の場合 → ({"A","B","C"})こういう結果にできますか?上の表記で

String[] array = new String[3];
array[array.length - 1] = null;

でどうかな?エラー吐いたら教えてねー。


118 :大和 : 2009/02/08 23:23
>>112
そうそうまさにそんな感じ!
こういう場合は for をよく使うねー。

for (int i = 0; i < array.length; i++) {
    if ("another".equals(array[i])) {
        return true;
    }
}

String を比較する時は equals() を使うなんてどうでしょ?


119 :アヌス : 2009/02/09 01:28
なるほど、こんなやりかたが。
equals()はarray[i]=="another"とまったく同じ意味?


120 :アヌス : 2009/02/09 01:31
配列の中にある文字列の文字数を数えるときもlengthを使えばいいん?

for(int i=0;i int len = array[i].length();
}

こんな感じに


121 :アヌス : 2009/02/09 01:49
charも同じですか?

for(int i=0;i if(array[i]=='a' || array[i]=='e' || array[i]=='i' || array[i]=='o' || array[i]=='u' || array[i]=='A' || array[i]=='E' || array[i]=='I' || array[i]=='O' || array[i]=='U')


122 :大和 : 2009/02/09 05:02
>>113
大体同じ意味なんですが,ちょっと違いがありますね。

String 型や Integer 型などの参照型の比較が equals()
int 型や char 型などの基本型の比較が ==
だった気がします。間違ってたらごめんね!

>>114
そうそう!配列の時が length
配列の要素数を数えてくれるはずです。たしか!

>>115
char 型は基本型(int, double, char, booleanなど)なので,
== でOKですね!多分!


123 :大和 : 2009/02/09 05:03
早く起きすぎた。
二度寝しよう・・。


124 :アヌス : 2009/02/09 09:43
なるほど。ならequals()にかえたほうがいいのかな

ところでInteger型とint型の違いとはなんでしょう・・・?


125 :大和 : 2009/02/09 15:36
int 型変数と Integer 型変数の違いは,
オブジェクトを参照できるかできないか!です!

int 型変数は 1 とか 100 などの基本型しか代入できません。
×int i = new Integer(); // オブジェクトはむりぽ
×int i = new TwoMethods(); // オブジェクトはむりだお(^ω^)


Integer 型変数は Integer 型オブジェクトを参照できます!
○Integer i = new Integer();

int i = 25; // 25 はオブジェクトではありませんね。
Integer ier = new Integer(25); // 25 という値を持ったオブジェクトを new してますね!


説明になってるだろうか・・。


126 :アヌス : 2009/02/09 15:51
おおなるほど!十分にわかりますですよ!


127 :アヌス : 2009/02/09 16:00
プログラムは全部くんだんですけど(まだ実行してない。)、テストメソッドで赤線エラーが出てしまうのです・・・
たとえば、>>110の問題で、プログラムは以下のように組みました

public int stringsLongerThan(String[] array, int len){

int result = 0;

for(int i=0;i if(array[i].length()>len);
result ++;
}
return result;
}

これのテストメソッドは以下のように組んだんだけど、

public int teststringsLongerThan(){
ArrayFun cf = new ArrayFun();

String[] a1 = {"a","ab","abc"};
String[] a2 = {"a","ab","abc"};
String[] a3 = {"a","ab","abc","abcd","abcde","abcdef","abcdefg"};

assertEquals(3, cf.stringsLongerThan(a1, 0));
assertEquals(1, cf.stringsLongerThan(a2, 2));
assertEquals(4, cf.stringsLongerThan(a3, 3));
}

最初のラインのteststringsLongerThan()に赤線エラーが出てしまいます。
このメソッドはint型の結果を返さないといけない、と表示されます・・・
実はすべてのメソッドにまったく同じエラーがでるんだ・・・
テストメソッドでreturnする必要ないよね・・・?ちゃんとプログラム本体でintの値返してるんだけど・・・


128 :アヌス : 2009/02/09 16:17
あともう一つ、テストメソッドでエラーがでるんだ。問題は、

public char[] replaced(char[] array, char oldChar, char newChar)

配列arrayの中にある文字の中から、oldCharと同じ文字があるかどうか調べ、あったらそれをnewCharの文字と入れ替える、というものです

例)
replaced({'A','B','C','D','B'}, 'C', 'L') 配列の中にCがあるのでそれをLと入れ替える→ return{'A','B','L','D','B'}
replaced({'n','n','n'}, 'T', 'n') 配列の中にTはないので入れ替えない→ return{'n','n','n'}

プログラムは以下のように組みました

public char[] replaced(char[] array, char oldChar, char newChar){

for(int i=0;iif(array[i]==oldChar)
array[i]=newChar;
}
return array;
}

テストメソッドは、以下のように

@Test
public char[] testreplaced(){
ArrayFun cf = new ArrayFun();

char[] a1 = {'A', 'B', 'C', 'D', 'B'};//元の配列
char[] a2 = {'n', 'n', 'n', 'D', 'n'};//元の配列
char[] a3 = {'n', 'n', 'n'};//元の配列

char[] a4 = {'A', 'B', 'L', 'D', 'B'};//入れ替えた後の配列
char[] a5 = {'T', 'T', 'T', 'D', 'T'};//入れ替えた後の配列
char[] a6 = {'n', 'n', 'n'};//入れ替えた後の配列

assertEquals(a4, cf.replaced(a1, 'C', 'L'));
assertEquals(a5, cf.replaced(a2, 'n', 'T'));
assertEquals(a6, cf.replaced(a3, 'T', 'n'));
}

assertEqualsに赤線エラーがでてしまうのですよ・・・。
このタイプのAssertでのassertEquals(Object, Object)は、(int[], void)に適切じゃないと・・・

これは一体どういう意味なのでしょうか・・・?俺assertEqualsのやり方まちがえてる・・・?


129 :アヌス : 2009/02/09 18:48
配列のテストメソッドのassertって普段と違うん・・・?


130 :大和 : 2009/02/09 19:36
ただいまー。
詳しい原因を調べたいから,
>>110のコードをeclipseで動かしてみるね。


131 :大和 : 2009/02/09 20:56
>>127はちゃんと動くね。大丈夫みたいだよー。

public class ArrayFun {

public static void main(String[] args) {
ArrayFun cf = new ArrayFun();

String[] a1 = {"a","ab","abc"};
String[] a2 = {"a","ab","abc"};
String[] a3 = {"a","ab","abc","abcd","abcde","abcdef","abcdefg"};

System.out.println(cf.stringsLongerThan(a1, 0));
System.out.println(cf.stringsLongerThan(a2, 2));
System.out.println(cf.stringsLongerThan(a3, 3));
}

public int stringsLongerThan(String[] array, int len) {

int result = 0;

for (int i = 0; i < array.length; i++) {
if (array[i].length() > len) {
result ++;
}
}
return result;
}
}


JUnit入れてないから main() で動作確認しちゃったけど,
JUnitで動作確認できるように修正してちょっと動かしてみてー。


132 :大和 : 2009/02/09 21:26
>>128だけど,原因は何故かわからないなあ・・。
「JUnit 配列」で検索かけたら.verによっては配列の比較できない,みたいなのが出てきたけど,
原因は不明です・・。

JUnit 配列 - Google 検索:
http://www.google.co.jp/search?hl=ja&q=JUnit+%94z%97%F1


133 :アヌス : 2009/02/09 23:12
ありがとうです!ちょっとティーチャーにきいてみます!


134 :大和 : 2009/02/09 23:14
あい!ありがとう!


135 :anusu : 2009/02/10 09:40
ゃばい!!! 大和さん!! たすけてえ!!!動かないよー!!!


136 :anusu : 2009/02/10 09:44
5 tu no program ga ugokanai...


137 :アヌス : 2009/02/10 11:31
10個のうち5つがなぜか エラーおきます。。。知恵をお菓子下さい!!!


138 :アヌス : 2009/02/10 11:55
つーか先公んとこ行ったら今日は忙しくて微塵も時間がないとか行って追い払われたし・・・アノヤロウ
締め切りあと24時間・・・明日は実験があってマジで時間ないのです・・・


139 :アヌス : 2009/02/10 12:18
>>131
試してみました!できましたよ!ありがとうです!


140 :アヌス : 2009/02/10 18:28
2つほどプログラムが動かないのです・・・
問題はソートです。この問題の場合、配列の中から最大値と最小値を探し、最小値を配列0に、最大値を配列の最後に移動します。その2つ以外の数字の順番は変えません。
例)
{4,3,2,0,1,2} 最小値は0、最大値は4なので→{0,3,2,1,2,4}
{4,3,2,1} → {1,3,2,4}
{1,3,2,4,} → {1,3,2,4}

流れとしては、まず最小値を探し、そのインデックスを保存しておき、それを元に配列0に移動させる。最大値も同様にして、配列の一番後ろに移動させる。

public void sortOfSort(int[] array) {

int count_min = 0;
int min = array[0];

for (int i = 1; i + 1 < array.length; i++) { // 最小値を求める
if (min > array[i + 1]) {
min = array[i + 1];
count_min++; // 数字が入れ替わるたびにカウント。その数字が最小値のインデックス
}
}

int count_max = 0;
int max = array[0];

for (int j = 1; j + 1 < array.length; j++) { // 最大値を求める
if (max < array[j + 1]) {
max = array[j + 1];
count_max++; // 同様に最大値のインデックス
}
}

for (int k = count_min; k - 1 >= 0; k--) { // 最小値を配列の一番前へ
int temp_min = array[k - 1];
array[k - 1] = array[k];
array[k] = temp_min;
}

for (int l = count_max; l + 1 < array.length; l++) { // 最大値を配列の一番後ろへ

int temp_max = array[l + 1];
array[l + 1] = array[l];
array[l] = temp_max;
}
}

どこが間違っているかわかりますか?


141 :アヌス : 2009/02/10 18:30
もう一つはこれでつ・・・

問題)
配列の中の数字で、偶数を全て奇数の前にもって行きます
例)
{1,0,1,0,0,1,1} → {0,0,0,1,1,1,1}
{3,3,2} → {2,3,3,}
{2,2,2} → {2,2,2}

流れとしては、まず奇数の数を数えます。これは何回シフトするから知るためです。
配列0から奇数を探し、あればそれを一番最後の配列へとシフトします。
奇数を探す作業が一度終わっても、まだシフトさせないといけない奇数があるかもしれないので(奇数が連続で並んでる場合)、最初に数えた奇数の数分だけちゃんとシフトするようにします。

public void evensLeft(int[] array) {

int odd=0;

for (int i = 0; i < array.length; i++) {
if(array[i]%2!=0)
odd++; //奇数の個数
}
while (odd>0) { //奇数の分シフトさせる
for(int j=0;j if (array[j] % 2 != 0) { //奇数があった!
for (int k = j + 1; k < array.length; k++) { //その奇数を一番最後に移動
int temp = array[k];
array[k] = array[k - 1];
array[k - 1] = temp;
}
odd--; //奇数のカウントを1減らす
}
}
}
}

これ、やっぱ奇数が連続してる場合、最初の奇数は後ろに行くけど、次の奇数が後ろにいかずに取り残されるみたいで・・・
{3,3,2} の場合、{3,2,3}こうなってしまうのです・・・
わかりますかこれ・・・?


142 : : [ここ壊れてます]
[ここ壊れてます]


143 : : [ここ壊れてます]
[ここ壊れてます]


144 : : [ここ壊れてます]
[ここ壊れてます]


145 : : [ここ壊れてます]
[ここ壊れてます]


146 : : [ここ壊れてます]
[ここ壊れてます]


147 : : [ここ壊れてます]
[ここ壊れてます]


148 :アヌス : 2009/02/10 19:07
やべーー
なんで順番が違うんだ・・・配列移動しない・・・


149 :アヌス : 2009/02/10 21:09
>>140は、はじめから最小値が配列0、最大値が配列の最後にある{1,3,2,4,}の例のときだけエラーを起こす・・・


150 :アヌス : 2009/02/10 21:45
>>141は奇数が連続してる場合やっぱ奇数が左に残ってしまう・・・


151 :大和 : 2009/02/11 01:03
いま沖田産業
よしちょっとやってみよう


152 :大和 : 2009/02/11 03:23
むむむ。>>140はいろいろ付け足すコードがあるっぽいです。
>>140さりげなく難しいねw


153 :大和 : 2009/02/11 03:59
おおこれでちゃんと動いてるはず。
各コードがどう動いてるか確認してみてください。
細かいところは動作確認してないから,間違ってるとこあるかもしれません。
間違ってるとこあったら直しちゃってください。



public class SortOfSort {
    public static void main(String[] args) {
        int[] array = {4, 0, 2, 5, 1, 2, 7};
        sortOfSort(array);
    }
    public static void sortOfSort(int[] array) {

        int counter = 0; // 言葉の説明じゃわかりにくいだろうから,実際に println で出力させてどう動いてるか確認してみてね!
        int count_min = 0;
        int min = array[0];

        // 最小値を求める
        for (int i = 1; i < array.length; i++) {
            if (min > array[i]) {
                min = array[i];
                count_min++; // 数字が入れ替わるたびにカウント
                count_min += counter; // 最小値のインデックスが格納されています
                counter = 0;
                continue; // continue は break と似た処理を行います
            }
            counter++;
        }
        counter = 0; // 次の for 文でまた使うので,0 に戻しておく

//        System.out.println(counter); // 動作確認したければしてくれお(^ω^)
//        System.out.println(count_min);
//        System.out.println(min);
//        System.out.println();

        int count_max = 0;
        int max = array[0];

        // 最大値を求める
        for (int i = 0; i + 1 < array.length; i++) {
            if (max < array[i + 1]) {
                max = array[i + 1];
                count_max++;
                count_max += counter; // 同様に最大値のインデックス
                counter = 0;
                continue;
            }
            counter++;
        }

//        System.out.println(counter); // 動作確認したければしてくれお(^ω^)
//        System.out.println(count_max);
//        System.out.println(max);
//        System.out.println();

        // 最小値を配列の一番前へ
        for (int i = count_min; i - 1 >= 0; i--) {
            int temp_min = array[i - 1];
            array[i - 1] = array[i];
            array[i] = temp_min;
        }

//        System.out.println(array[i]); // 動作確認したければしてくれお(^ω^)
//        System.out.println();

        // 最大値を配列の一番後ろへ
        for (int i = count_max; i + 1 < array.length; i++) {
            int temp_max = array[i + 1];
            array[i + 1] = array[i];
            array[i] = temp_max;
        }

//        System.out.println(array[i]); // 動作確認したければしてくれお(^ω^)
//        System.out.println();

        // 配列が整列されているか調べる
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }

    }
}



154 :大和 : 2009/02/11 04:07
脳内コンパイルできれば作る手間省いてアドバイスできるんだろうけど,
一回一回作らないとどこを修正すればいいか今の私じゃ見当つかないや。
コード見ただけでどこがおかしいかわかる人ってすごいなあ・・。
>>141は眠いので出来ませんでした。。おやすみい。


155 :アヌス : 2009/02/11 13:29
昨日は朝6時過ぎまでこれと格闘してた・・・でも結局できんかったよ・・・
今日大学終わって速攻で帰ったのがついさっき、夜7時過ぎ。締め切りが夜10時だったので、それから取り組んでなんとかできました・・・
参考になりました!ありがとうございます。

今回のでまなんだことは、配列をもう一つよういして、それに代入していく、ということですね。そっちのほうが簡単でいいことがわかった


156 :アヌス : 2009/02/11 13:28
明日大学でプリントしないといけないので、ちょっと借ります

/* This class has ten unrelated method that process primitive types, strings, and array.
* programmer: Misaki Kakita
* Section leader: Matt Swatzell
* Created on Feb 10, 2009
*/

import java.util.ArrayList;

public class ArrayFun {

// This method returns true if the sum of all array elements is greater than
// sum.
public boolean sumGreaterThan(double[] array, double sum) {

double result = 0;

for (int i = 0; i < array.length; i++) {
result += array[i];
}

if (result > sum) {
return true;
} else {
return false;
}
}

// This method returns the number of vowels which could be the letters
// 'a', 'e', 'i', 'o', or 'u' in either upper case or lower case.
public int numberOfVowels(char[] array) {

int result = 0;

for (int i = 0; i < array.length; i++) {
if (array[i] == 'a' || array[i] == 'e' || array[i] == 'i'
|| array[i] == 'o' || array[i] == 'u' || array[i] == 'A'
|| array[i] == 'E' || array[i] == 'I' || array[i] == 'O'
|| array[i] == 'U')
result++;
}
return result;
}

// This method returns the number of times a pair occurs in array.
public int numberOfPairs(String[] array) {

int result = 0;

for (int i = 0; i < array.length - 1; i++) {
if (array[i] == array[i + 1]) {
result++;
}
}
return result;
}

// This method returns the number of Strings with a length greater than len.
public int stringsLongerThan(String[] array, int len) {

int result = 0;

for (int i = 0; i < array.length; i++) {
if (array[i].length() > len)
result++;
}
return result;
}

// This method returns the number of element in an array of Strings that
// equals valueToFind.
public int howMany(String[] array, String valueToFind) {

int result = 0;

for (int i = 0; i < array.length; i++) {
if (valueToFind.equals(array[i]))
result++;
}
return result;
}

// This method modifies the parameter array to place the larger at index n-1
// and the smallest integer at array[0].
public int[] sortOfSort(int[] array) {

int min = array[0];
int max = array[0];
int min_index = 0;
int max_index = 0;

for (int i = 0; i < array.length; i++) {
if (min > array[i]) {
min = array[i];
min_index = i;
}
if (max < array[i]) {
max = array[i];
max_index = i;
}
}

int[] new_array = new int[array.length];

if (min_index == array.length - 1 && max_index == 0) {
int temp = array[min_index];
array[min_index] = array[max_index];
array[max_index] = temp;

return array;
} else {
new_array[0] = min;
new_array[array.length - 1] = max;
int count = 1;
for (int i = 0; i < array.length; i++) {
if (min_index != i && max_index != i) {
new_array[count] = array[i];
count++;
}
}

return new_array;
}
}

// This method modifies the parameter array so it still contains the exact
// same numbers as the given array, but rearranged so that all the even
// numbers come before all the odd numbers.
public int[] evensLeft(int[] array) {

ArrayList gusu = new ArrayList();
ArrayList kisu = new ArrayList();

for (int i = 0; i < array.length; i++) {
if (array[i] % 2 == 0) {
gusu.add(new Integer(array[i]));
} else {
kisu.add(new Integer(array[i]));
}
}
gusu.addAll(kisu);

for (int i = 0; i < gusu.size(); i++) {
array[i] = (gusu.get(i)).intValue();
}

return array;
}

// This method modifies array so it is left shifted n times.
public int[] shiftNTimes(int[] array, int numShifts) {

for (int i = 0; i < numShifts; i++) {
for (int j = 0; j < array.length - 1; j++) {
int temp = array[j + 1];
array[j + 1] = array[j];
array[j] = temp;
}
}
return array;
}

// This method returns a new char[] that is a copy of array with all
// occurrences of oldChar replaced by newChar.
public char[] replaced(char[] array, char oldChar, char newChar) {

char[] array2 = new char[array.length];

for (int i = 0; i < array.length; i++) {
if (array[i] == oldChar)
array2[i] = newChar;
else
array2[i] = array[i];
}
return array2;
}

// This method returns a new String[] that is a copy of array with the first
// occurrence of strToRemove in array not included(if found).
public String[] oneRemoved(String[] array, String strToRemove) {

int i = 0, j = 0, l = 0, count = 0;
String[] array2 = new String[array.length - 1];

for (int k = 0; k < array.length; k++) {
if (strToRemove.equals(array[k])) {
l++;
}
}

if (l != 0) {
while (i < array.length) {
if (strToRemove.equals(array[i]) && count == 0) {
i++;
count++;
} else {
array2[j] = array[i];
i++;
j++;
}
}
}
if (l == 0)
return array;
else
return array2;
}

}


157 :アヌス : 2009/02/11 13:31
* This class has @test method for the all ten method in arrayFun.java.
* Programmer: Misaki Kakita
* Section leader: Matt Swatzell
* Created on Feb 10, 2009
*/

import static org.junit.Assert.*;
import org.junit.Test;

public class ArrayFunTest {

@Test
public void testsumGreaterThan() {
ArrayFun af = new ArrayFun();

double[] a1 = { 1.1, 2.2, 3.3 };

assertEquals(true, af.sumGreaterThan(a1, 4.0));
assertEquals(false, af.sumGreaterThan(a1, 6.6));
}

@Test
public void testnumberOfVowels() {
ArrayFun af = new ArrayFun();

char[] a1 = { 'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U', 'x',
'z' };
char[] a2 = { 'y', 'Y' };
char[] a3 = { 'a', 'X', 'a' };

assertEquals(10, af.numberOfVowels(a1));
assertEquals(0, af.numberOfVowels(a2));
assertEquals(2, af.numberOfVowels(a3));
}

@Test
public void testnumberOfPairs() {
ArrayFun af = new ArrayFun();

String[] test = new String[3];
test[0] = "a";
test[1] = "b";
test[2] = "c";
assertEquals(0, af.numberOfPairs(test));

String[] test2 = new String[4];
test2[0] = "b";
test2[1] = "a";
test2[2] = "a";
test2[3] = "b";
assertEquals(1, af.numberOfPairs(test2));
}

@Test
public void teststringsLongerThan() {
ArrayFun af = new ArrayFun();

String[] a1 = { "a", "ab", "abc" };
String[] a2 = { "a", "ab", "abc", "abcd", "abcde", "abcdef", "abcdefg" };

assertEquals(3, af.stringsLongerThan(a1, 0));
assertEquals(1, af.stringsLongerThan(a1, 2));
assertEquals(4, af.stringsLongerThan(a2, 3));
}

@Test
public void testhowMany() {
ArrayFun af = new ArrayFun();

String[] a1 = { "A", "a", "A", "a" };
String[] a2 = { "And", "there", "goes", "another" };
String[] a3 = { "And", "there", "goes", "other" };

assertEquals(2, af.howMany(a1, "A"));
assertEquals(1, af.howMany(a2, "another"));
assertEquals(0, af.howMany(a3, "Not Here"));
}

@Test
public void testsortOfSort() {
ArrayFun af = new ArrayFun();

int[] a1 = {4, 3, 2, 0, 1, 2};
int[] a2 = { 4, 3, 2, 1 };
int[] a3 = {1, 3, 2, 4};

int[] a4 = {0, 3, 2, 1, 2, 4};
int[] a5 = { 1, 3, 2, 4 };
int[] a6 = {1, 3, 2, 4,};

int[] result1 = af.sortOfSort(a1);
int[] result2 = af.sortOfSort(a2);
int[] result3 = af.sortOfSort(a3);

for (int i=0;iassertEquals(a4[i], result1[i]);
}

for (int j = 0; j < result2.length; j++){
assertEquals(a5[j], result2[j]);
}

for (int k = 0; k < result3.length; k++){
assertEquals(a6[k], result3[k]);
}
}

@Test
public void testevensLeft() {
ArrayFun af = new ArrayFun();

int[] a1 = { 1, 0, 1, 0, 0, 1, 1 };
int[] a2 = { 2, 2, 2 };
int[] a3 = { 3, 3, 2};

int[] a4 = { 0, 0, 0, 1, 1, 1, 1 };
int[] a5 = { 2, 2, 2 };
int[] a6 = { 2, 3, 3};

int[] result1 = af.evensLeft(a1);
int[] result2 = af.evensLeft(a2);
int[] result3 = af.evensLeft(a3);

for (int i = 0 ; i < result1.length ; i ++ ){
assertEquals(a4[i],result1[i]);
}

for(int k=0; kassertEquals(a5[k],result2[k]);
}

for(int j=0; jassertEquals(a6[j],result3[j]);
}

}

@Test
public void testshiftNTimes() {
ArrayFun af = new ArrayFun();

int[] a1 = { 1, 2, 3, 4, 5, 6, 7 };
int[] a2 = { 1, 2, 3, 4, 5, 6, 7 };
int[] a3 = { 1, 2, 3 };

int [] a4 = { 4, 5, 6, 7, 1, 2, 3 };
int [] a5 = { 1, 2, 3, 4, 5, 6, 7 };
int [] a6 = { 3, 1, 2 };

int[] result1 = af.shiftNTimes(a1, 3);
int[] result2 = af.shiftNTimes(a2, 0);
int[] result3 = af.shiftNTimes(a3, 5);

for (int i = 0 ; i < result1.length ; i ++ ){
assertEquals(a4[i],result1[i]);
}

for (int j = 0; j < result2.length; j++){
assertEquals(a5[j],result2[j]);
}

for(int k=0; kassertEquals(a6[k],result3[k]);
}
}

@Test
public void testreplaced() {
ArrayFun af = new ArrayFun();

char[] a1 = { 'A', 'B', 'C', 'D', 'B' };
char[] a2 = { 'n', 'n', 'n', 'D', 'n' };
char[] a3 = { 'n', 'n', 'n' };

char[] a4 = { 'A', 'B', 'L', 'D', 'B' };
char[] a5 = { 'T', 'T', 'T', 'D', 'T' };
char[] a6 = { 'n', 'n', 'n' };

char[] result1 = af.replaced(a1, 'C', 'L');
char[] result2 = af.replaced(a2, 'n', 'T');
char[] result3 = af.replaced(a3, 'T', 'n');

for (int i = 0 ; i < result1.length ; i ++ ){
assertEquals(a4[i],result1[i]);
}

for (int j = 0; j < result2.length; j++){
assertEquals(a5[j],result2[j]);
}

for(int k=0; kassertEquals(a6[k],result3[k]);
}
}

@SuppressWarnings("deprecation")
@Test
public void testoneRemoved() {
ArrayFun af = new ArrayFun();

String[] a1 = { "A", "B", "C", "D", "B" };
String[] a2 = { "A", "BB", "CCC", "DDD", "B" };

String[] a3 = { "B", "C", "D", "B" };
String[] a4 = { "A", "BB", "CCC", "DDD", "B" };
String[] a5 = { "A", "C", "D", "B" };

assertEquals(a3, af.oneRemoved(a1, "A"));
assertEquals(a4, af.oneRemoved(a2, "NotHere"));
assertEquals(a5, af.oneRemoved(a1, "B"));
}




158 :大和 : 2009/02/11 18:01
無事期限までに間に合ったみたいだね。良かったよかった。


159 :アヌス : 2009/02/11 19:12
締め切り1時間前になんとかおわりますた・・・


160 :大和 : 2009/02/11 21:46
おつかれさんでした!


161 :ねこみみ : 2009/02/12 22:06
これでAだ


162 :アヌス : 2009/02/13 11:40
おいおい
JAVAのプログラムは毎週出るんだぜ・・・
今も新しいのが出てる・・・来週の火曜までだ・・・
他の課題もあるのに・・・

しかも来週試験ですよ、JAVAの


163 :アヌス : 2009/02/14 20:31
かざっさん。privateというのはマクロみたいなものですか?いまいち、通常の変数の定義とprivateでの定義の違いがわからないのです
privateでの、他のクラスとの関係とか・・・

あと、コレクションってわかりますか?
コンピュータのメモリが記憶できるだけのフロートの数をストアできる空のコレクションを作らないといけないんですけど、コレクションてのがよく理解できなくて・・・
例として、

public DescriptiveStatistics()


publich int size() //コレクションのサイズ。このオブジェクトに追加された要素の数を返す

public void addInOrder(double nNumber)
// nNumberをコレクションに追加。必要条件としてコンピュータはnNumberを足すのに十分なメモリを持っているとする。必要なら配列を増やす。
@param nNumberは、ラウンディングせず、このオブジェクトに追加するためのdatumである。

public double get(int index)
// 与えられたインデックスでの要素をゲッツ
@param 返されるための要素のインデックス





と、このようにメソッドが合計10個あるんだけど、コレクションがよくわからなくてどう組めばいいのかがわからないのです・・・
あとパラメータとかdatumとか・・・わかりますか?


164 :アヌス : 2009/02/14 18:37
AVに出演した妊婦がインタビュー中に意識を失って死亡

http://changi.2ch.net/test/read.cgi/ms/1234520845/l50x

warosu www


165 :大和 : 2009/02/15 12:08
すみませんマシンを新しくしてIDEとか,
何も入れてない状態なので動作確認できませんので,
間違ってたらすみません。

private ってのはアクセス権限のレベルの事です!
public が一番アクセス権限軽くて,デフォルト→protected→private と重くなっていきます。
private は「どのクラスからもアクセスできない」権限レベルっす。

例えば,



例1
public class A {
public static void main(String[] args) {
B instanceB = new B();
instanceB.testMethod();
}
}
public class B {
public testMethod() {
System.out.println("クラスBにアクセスしました。");
}
}



例2
public class A {
public static void main(String[] args) {
B instanceB = new B();
instanceB.testMethod();
}
}
public class B {
private testMethod() {
System.out.println("クラスBにアクセスしました。");
}
}


どうですか?動作確認していないので動かなかったらごめんですが,
例1はクラスBにアクセスできてますが,例2はアクセスできていなくないですか?
これが private と 他のアクセスレベルとの違いですー。


166 :大和 : 2009/02/15 12:13
コレクションは Map とか List の事だねー。
コレクションとは「オブジェクト」を格納する配列みたいなものです。
配列は int 型とか char 型を格納しますが,コレクションは「オブジェクト」を格納するっす!


167 :大和 : 2009/02/15 12:23
>>163
@param は Javadoc に載る項目名っすね!
他には @return とか @author とかあったはずっす。
@param は「//」と同類だと思ってください。あってもなくてもプログラム動作します。
「//」のコメントつけようがつけないが,プログラム動きますよね。それと同類っす。

datum は data と同義語らしいす!
詳しくは↓をご参照くだされ。
http://dictionary.goo.ne.jp/search.php?MT=datum


168 :アヌス : 2009/02/15 12:41
例2では、赤線のエラーがでてコンパイルできないですね


169 :アヌス : 2009/02/15 12:52
B instanceB = new B();
instanceB.testMethod(); ←特にこのつなげ方は・・・?

これって一体どういう意味なんでしょう。
クラスBで public testMethod() こうしてるのは、testMethodをクラスAで定義してクラスBで呼び出してる・・・?


170 :アヌス : 2009/02/15 12:46
オブジェクトっていうのがいまいちなんですが、オブジェクトって配列本体のことじゃない・・・?
本にはそんなこと書いてあったんだけど、
オブジェクトを格納するってどういう意味でしょうか・・・


171 :大和 : 2009/02/15 12:49
こんな感じかなあ(’’。
あ!適当に書いてるので間違えてるかも!間違ってたら暫時直してー。

public DescriptiveStatistics()

/**
* コレクションのサイズ。このオブジェクトに追加された要素の数を返す
*/
publich int size() {
return [コレクションの「総要素数」を int で返す];
}

/**
* nNumberをコレクションに追加。必要条件としてコンピュータはnNumberを足すのに十分なメモリを持っているとする。必要なら配列を増やす。
* @param nNumberは、ラウンディングせず、このオブジェクトに追加するためのdatumである。
*/
public void addInOrder(double nNumber) {
// ArrayList を使うのは間違いない。ただ nNumber の意味が不明瞭
ArrayList list = new ArrayList();
list.add([nNumber?それともnNumber分だけ list.add() を記述しろ?]);
}

/**
* 与えられたインデックスでの要素をゲッツ
* @param 返されるための要素のインデックス
*/
public double get(int index) {
/*
* !?重大なヒントが出ましたね。
* コレクションからの取得方法は「インデックスで取得しろ」とあります。
* つまりコレクションは Map じゃなくて List を使えって事ですね。
* Map は「キーワード」で要素を取り出し,List は「インデックス」で要素を取り出すのです。
*/

// get() の処理の流れ
// [1]addInOrder() で作成した ArrayList から要素を取得し,
// [2]格納されたDouble型の値を double 型にキャストし,
// [3]キャストした double 型を return する。
}

こんな感じ・・かなあ。間違ってる箇所あったら暫時直してね!


172 :大和 : 2009/02/15 13:13
>>168
だよね!意図どおりに動いてくれたか。よしよし。



>>169
あ,ごめーん。ちょっとややこしくしちゃったかも。

testMethod(); だけでもひょっとしたらエラーにならないかも。

えっとね!「B instanceB = new B();」と「instanceB.」は,
別クラスのメソッド・変数にアクセスする際のお作法っす!



>>170
そうそう!!合ってますあってます。
「配列」は「基本型の値」を格納してくれる「オブジェクト」です。
「コレクション」は「オブジェクト」を格納してくれる「存在」です。
配列とコレクションの違いはこんな感じ(わかりにくいね・・)。
配列とコレクションの共通点は「いくつもの要素をまとめて格納させれる事」だよ!
配列とコレクションの役割・使い道はほとんど同じだと思ってくれていいよー。

実際にオブジェクトを格納してみましょうか。

// String 型オブジェクト格納しますね。
ArrayList list = new ArrayList();
list.add("柿田岬");
list.add("今を時めく18歳です");
list.add("趣味はリアル格ゲーです");

変数 list にインデックス「0」に「柿田岬」。インデックス「1」に今を・・って感じで格納されています。



あ・・・。これ書いてて気づきましたが,
これもうワンステップ複雑にしたコレクションの使い方かも・・。
ちょっともう一回>>163の雛形見直します。


173 :アヌス : 2009/02/15 13:10
すいません・・・。ごちゃ混ぜになっちゃった。
少しずつ確認させて下さい

かざっさんの例だと、クラスAからBにアクセスするんだよね?

B instanceB = new B();

これは、まずアクセスしたいクラス名(B)を書いて 変数(instanceB)を書いてnew B()とアクセスしたいクラスを書く・・・?

instanceB.testMethod();

これは、アクセスしたいクラスのメソッド(testMethod())を、クラスAで定義した変数(instanceB)とくっつけて書いたってこと・・・?

構造がわかりずらひ・・・


174 :大和 : 2009/02/15 13:17
>>173
そうそう!これは「他クラスにアクセスする」際のお作法です。

[アクセスしたいクラス名] [変数名] = new [アクセスしたいクラス名]();
[↑の変数名].[アクセスしたいクラスのメソッド名];

です!これがJavaでのお作法ですー。
いえいえ,わからないとこはじゃんじゃん文章化すると良いですから,
どんどんわからないとこは書いてください。


175 :アヌス : 2009/02/15 13:24
なるほど。
[アクセスしたいクラス名] [変数名] = new [アクセスしたいクラス名]();
[↑の変数名].[アクセスしたいクラスのメソッド名];
これは公式として 覚えるしかないのですね・・・

>>163のサイズを返すところで、返すにはreturnを使うのかな・・・。化すんだから当然だと思うんだけど、
ネットで調べてもなんか・・そういう例がなくて・・・



176 :アヌス : 2009/02/15 13:34
今回の課題では、全部で10個のpublicをpublic DescriptiveStatstics()に書かないといかんのですが、
>>163のように、size、 addInOrder、 getのほかに、 average、 max、 min、 range、 median、 standardDeviatioon(数式を使って計算)とあります。
でもこれって、全部一つのクラスに書くんだよね・・・

public class DescriptiveStatstics(){
public DescriptiveStatistic(){
public int size(){
public void addInOrder(double nNumber)
public double get(int index){
public double max(){
public double min(){
public double range(){
public double median(){
public double standardDeviation(){

という感じですね。だから他のクラスにアクセスする必要は・・・あ、もしかしてこれをテストするためのテストメソッドのクラスにアクセスするっていみなのか・・・


177 :大和 : 2009/02/15 13:34
>>175
そうそう合ってるよ!
「void」がついてないメソッドはすべて,「必ず」return させます。

int size() {} とか
boolean isNotNull() {} とかは必ず return します!


178 :アヌス : 2009/02/15 13:35
>>174
ありがとうございますです!
最初のいくつかのメソッドだけちょっと書いてみます。


179 :大和 : 2009/02/15 13:38
ああそうかーなるほどね!
他のメソッド名見てなんとなく全体像わかりました。
となると,やっぱりさっき私が書いた雛形はちょっと部分部分で間違ってるなあ。
がんばって!わからない事が生じたらまた書き込んでねー。


180 :大和 : 2009/02/15 13:41
>>176
そうそうすべてひとつのクラスに書くねー。
だから他のクラスにアクセスする必要はないね。
でもテストクラス作ったら,テストクラスからこのクラス呼び出す時に必要になるね。
がんばってねー(´ω`)。


181 : : [ここ壊れてます]
[ここ壊れてます]


182 : : [ここ壊れてます]
[ここ壊れてます]


183 : : [ここ壊れてます]
[ここ壊れてます]


184 : : [ここ壊れてます]
[ここ壊れてます]


185 : : [ここ壊れてます]
[ここ壊れてます]


186 : : [ここ壊れてます]
[ここ壊れてます]


187 :アヌス : 2009/02/16 17:34
できたけどエラーが一個でる・・・


188 :大和 : 2009/02/17 05:10
まじか・・
あれもう出来あげちゃったのか


189 :アヌス : 2009/02/17 05:34
最後のメソッドがなんかおかしい。テストメソッドは全部ちゃんと動いてるのに、
ネットで提出したら配列[1.0, 2.0, 3.0]でエラーとかなんとか・・・
[1.0, 2.0, 3.0]はテストメソッドで既にためして ちゃんと動いてるんだが・・・
教授にメールしてみよう


190 :大和 : 2009/02/17 06:08
謎だねえ・・。
わからない時はもう人に聞いちゃったほうがいいね!


191 :アヌス : 2009/02/17 18:57
別のメソッドで求めた配列の平均値を最後のメソッドでも使うためにprivateで定義して、引っ張ったんだけど、これがいかんかったみたいで。
最後のメソッドでもう一度平均値を求めたら100%になった。
しかしprivateで定義して、平均メソッドから最後のメソッドに平均値を直接引っ張って使ってもテストメソッドでは問題なかったんだが・・・
なんなんだ・・・一体・・・


192 :アヌス : 2009/02/18 15:49
かざっさん。もしstringに"U of A"と文字列があったら、charAt(1)にヒットするのは、Uとoの間のスペースになるん?


193 :アヌス : 2009/02/18 19:03
かざっさん。
String型の配列の文字列を、インデックス0から順に、char型の配列のインデックス0からの文字と比較したいんだけど

String str = "abcd"
char chars = {'a', 'b', 'c', 'd'};

これはインデックス0から順に比べたらまったく同じ文字が同じインデックスにあることになるけどこういうことってできる?

int j =0;

for(int i=0;i<5;i++){
String c = str.substring(i, i+1);

if(c.equals(chars[i])) ←つまりstringとcharを比較する場合、これでできる?
j++;

}

if(j==5)
return true;
else
return false;


194 :大和 : 2009/02/18 23:46
>>192
そうそう半角スペースがヒットするよ!

>>193
equals() は String 型の値が同じかどうか見るんだー。
char[i] を1回ずつ String型にキャスト(型変換)して,
それからなら出来るはずだよ!

if(c.equals(String.valueOf(chars[i]))←こんな感じだろうか!


195 :アヌス : 2009/02/19 18:51
かざっさん。これだけで→String.valueOf(chars[i]) charをStringに変換してることになるの?


196 :アヌス : 2009/02/19 18:54
それとindexOfなんだけど、

String s = "U of Arizona";と定義した場合、

assertEquals(5, s.indexOf("Arizona")); って通る? sには、インデックスの5番目からArizonaって文字が始まってるからOKなん?
indexOfも、最初の文字はインデックス0から数えるん?




197 :アヌス : 2009/02/19 18:56
それと、assertEquals(0, s.indexOf("U of A")); だったら通らない?
sの中の文字列では、U of Aって文字はインデックス0から始まってるけど・・・


198 :アヌス : 2009/02/19 19:05
もう一つ質問が。hasNext()なんだけど

targetの整数が、scannerの中にいくつあるか調べるために、

Scanner scanner= "1 2 3 4 1 2 3 1 6";
int target;
int count=0;

while(scanner.hasNext()){
if(scanner.nextInt==target)
count++;
}
return count;


このhasNext()の働きがよく理解できないんだ・・・
もしtargetが1なら、scannerの中には1が3つあるから、countが3になるはずなんだけど、
scanner.hasNext()こうすると、scanner.nextIntの中にはインデックス0の数字が代入されてtargetと比較されるってこと?
それともインデックスではなく、自動的に数字が検索されてscanner.nextIntの中に数字が代入されるん?
hasNext()がよくわからないのです・・・


199 :アヌス : 2009/02/19 19:11
またごめん。

もしint型の配列を用意したら、
int a[];
a[i]="";
こういうふうに、int型の配列にスペースはいれられる?スペースって文字扱いになるんだっけ?ならいれられない?

ていうか、"" ←これだとStriingじゃないと無理なのかな。''←これだとchar型のスペース?

int型の配列にスペースをいれる場合、配列をスキップすればいいのかな?

for(int i=0;i<=11;i+=2)
a[i]=1;

こうすれば配列aには、{1 1 1 1 1 1} こういうふうに、数字の間の配列にスペース入れられる?


200 :大和 : 2009/02/20 00:01
>>195
そうそう!
char c = String.valueOf(chars[i]);
↑これだとおそらく型の不一致でエラーでるはず!
つまりもう String 型にちゃんとなってるのだね。

>>196
indexOf() はインデックス 0 から数え始めるから,
U of Arizona
012345

だもんで 5 が返ってくるね!たぶん!

>>197
assertEquals(0, s.indexOf("U of A"));
0 と 0 でイコールなはず!これで緑バーになるはず!


201 :大和 : 2009/02/19 22:49
ちと風呂さ!


202 :大和 : 2009/02/20 10:27
>>198
hasNext() はどうだったかなー(’’。
たしか true を返すんだ。要素の中身がまだある場合に。
格納されてる要素を一つひとつ見てってあれば true,
もうなければ false を返す boolean 型メソッドだなんだ。
ちょっと説明しづらいなこれは!
「java hasNext」でググってみて!これは解説サイトのほうがわかりやすいと思うー。

>>199
そうそうー。スペースは文字扱いだから入れられないね!
""だと String 型になるね〜。
配列 a には {1, 0 ,1, 0 ,1, 0 ,1, 0 ,1, 0 ,1} こう格納されるかな!
int 型の場合の初期値は 0 なんだー。String 型は null だねー初期値。


203 :アヌス : 2009/02/20 13:40
うお
配列スキップしたら0が入るのか・・・何もいれてないから空白かと思った
int 型の配列にスペースなんてきにしたことなかったな・・・


204 :アヌス : 2009/02/20 13:44
ありがとう!かざっさん!!!!


205 :大和 : 2009/02/20 22:51
いえいえ!


206 :アヌス : 2009/02/21 08:04
JAVAの試験だったんですけどね、最後の問題でバカな配列のシフトをしてしまいました・・・
最後の問題点数デカいのに・・・あぁ、・・・オワタ・・


207 :アヌス : 2009/02/21 08:04
   _ρ_
  / ⊥ \
  |____|
  ‖∧ ∧¶  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ( ゚∀゚)/ <  ○○○
   /  /    \_____________
  〈  (
  ∫ヽ__)
    U U
  | ̄ ̄ ̄ ̄|
  \__人__/


208 :大和 : 2009/02/21 10:46
よくがんばった!
あとは結果を待つのみよ〜。


209 :アヌス : 2009/02/24 12:29
ドラゴンボールwwww実写映画ホントにやるのかwww知らなかったwww
http://aromablack5310.blog77.fc2.com/blog-entry-3102.html

ワロタwwwカメハメ波wwww


210 :アヌス : 2009/02/25 20:27
http://panlifeblog.up.seesaa.net/pan/sittori_pinepan.jpg

しっとりパイパンだよ!!!


211 :アヌス : 2009/02/28 17:07
かざっさん。ジョンコンウェイって人が作ったJAVAのgame of lifeって 知ってる?


212 :アヌス : 2009/02/28 17:19
かざっさん。finalって修飾子の使い方ってわかる?なんか・・・よく理解できなくて・・・


213 :大和 : 2009/03/01 07:20
>>211
は,はじめてきいた!

>>212
final はね!変数を,定数にしたい時使うよー。
マジックナンバーとかべた書きって聞いたことあるかなあ。
それを防ぐときに使うんだ定数はー。

円の面積を求めるコード
「3.14」という数は何があっても絶対不変(定数)の数字だから,
べた書きせず,定数を用いたほうが良い。

× 半径 * 2 * 3.14;


final int PI = 3.14;
半径 * 2 * PI;


214 :アヌス : 2009/03/01 11:37
つまり、3.14の意味がわかりずらいからPIってやったほうが、いいってこと?
その値を変えたいとき、複数の値を変えないといけないかもしれないから、マクロ定数のようにやれば、
一度の変更ですむとか。

しかし、それだと単に int PI = 3.14;ってやればいいような気も・・・
final int PI = 3.14とint PI = 3.14の違いってなんでしょう・・・?


215 :アヌス : 2009/03/01 13:33
あれ・・・finalって#defineと一緒・・・?


216 :アヌス : 2009/03/01 14:51
interfaceとimplementsってわかる?これらはfinalとはまったく違う・・・?


217 :大和 : 2009/03/01 15:10
>>214
そうそう!
あと final は勝手に値を変えられなくなるんだー。
勝手に値を書き換えられなくなるよー。

double pi = 3.14;
pi = 3;
// エラーになりません。

final double PI = 3.14;
PI = 3;
// コンパイルエラーが発生します!


>>215
#define って C での定数なんだねー。一緒っぽいっす!

>>216
interface と implements は final とまったく別物だよ!

interface は一言で class のでっかバージョンみたいなもの。
implements はそのでっかい class を宣伝するときに使う言葉なんだー。
こんな使い方をします↓。

class [クラス名] implements [インターフェース名]


218 :アヌス : 2009/03/01 15:16
public interface アナル{

public class アヌス implements アナル{

こんな感じですか。クラスよりデカいということは、クラスを定義する前にinterfaceを定義するってことかな
てことは、interfaceの中にはいくつかのクラスをいれられるってこと?


219 :大和 : 2009/03/01 15:29
>>218
イメージ合ってますあってます!
クラスを定義する前に interface を定義しなければなりません。

あ,interface の中で定義するのは「クラス」ではなく「メソッド」が定義できます。
ごめんね。クラスのでっかいバージョンじゃなくて,親戚みたいな感じって言えば良かったです。
詳しくは↓を参考にしてみてくださいー。

Java講座 [インタフェース、interface]
http://www.site-cooler.com/java/j2se/10_01.htm


220 :アヌス : 2009/03/01 15:29
かざっさん。javaにwraparoundってある?


221 :大和 : 2009/03/01 15:41
>>220
!?
wraparound か。はじめて聞く単語だ。調べてみたけど概念なのだねこれ。
処理可能な範囲の最後まで達したら最初に戻ること,か〜。
このものずばりを体現できるメソッドってあるのか,私にはわからないけど,
for とか if とかメソッド組み合わせれば実現できなくなさそだねー。


222 :アヌス : 2009/03/01 15:46
なるほど。ラップアラウンドするためのなにかがあると思ったんだけど、自分で工夫しないといけないのか。
ありがたう!かざったん!!!


223 :大和 : 2009/03/01 16:07
いえいえ!^ω^


224 :アヌス : 2009/03/01 18:47
かざっさん。String型の配列って、なにも入れなかったら""が入ってるんだっけ?


225 :大和 : 2009/03/01 19:18
あ String 型だと null だねー。
ちなみに int 型は 0 だよ!


226 :アヌス : 2009/03/01 19:22
とすると、配列spaceになにも入ってないって確認するには、

space[row][col].equals(null)

これでいけますよね?


227 :アヌス : 2009/03/01 19:23
で、なにか入ってる配列に、ブランクを入れたい場合、

space[row][col]=null;

これで、その配列にはブランクだけ入ってることになるよね?


228 :大和 : 2009/03/01 19:31
お,いいねーその「ブランク」って言葉。
知らなかった単語だ。もらいました。

>>226
あ!String 型変数ならそれで大丈夫だけど,
配列だとどうだったかなー。
ちょっと調べてみます。

>>227
ああそうそうー null を代入すればいいよ。
配列 space はこれで空っぽです。


229 :大和 : 2009/03/01 19:37
>>228
こんなんあったー。
Arrays クラスの equals() を使うとできるっぽい?ですー。

こんな感じかな
// 配列 space が null なら if 文内の処理を実行します
if (Arrays.equals(space, null)) {}

配列の比較
http://www.ne.jp/asahi/hishidama/home/tech/java/array.html#h2_array_equals


230 :大和 : 2009/03/01 19:38
風呂!


231 :アヌス : 2009/03/01 20:05
if(Arrays.equals(space[row][col], null)
こうすると、nullとはできないって赤線エラーがでる・・・


232 :大和 : 2009/03/01 20:48
じゃだめかー。
他に配列比較できる方法あるかねー。


233 :アヌス : 2009/03/01 20:51
space[row][col].equals(null)

これじゃ できないってこと・・・ですか・・・?


234 :アヌス : 2009/03/01 22:18
2次元配列で、space[10][10]と定義したわけです。インデックスは0〜9になるわけですけど。

今、space[3][0]とspace[3][9]に"O"をいれたわけです。printでちゃんと格納されてると確認しました
ここで、space[3][9]の配列の隣どおしになっている配列全てを見て、"O"が入ってる配列がいくつあるかを調べたいのです
ちなみに、もし方形で簡単に書いたらこんな感じの図になりますのです。

[0][0]..................
[1][0]..................
[2][0]..................[2][8],[2][9],[2][0]
[3][0]..................[3][8],[3][9],[3][0]
[4][0]..................[4][8],[4][9],[4][0]

上でみてわかると思うけど、インデックス0と9はつながっているものとします。だから隣通しになるのです。

space[3][0]にも"O"を入れたから、space[3][9]の周りで"O"が入ってる配列はspace[3][0]だけになります。space[3][9]自身にも"O"は入ってるけど、自身はカウントしません。

なので、space[3][9]の周りの配列をfor文でまわして、

for(int j=nCols-2;j<=nCols-1;j++){
for(int i=row-1;i<=row+1;i++){
if(space[i][j].equals("O"))
count++;

これで調べようとおもったんだけど、実行すると、NullPointerExceptionってエラーがそのif文のところにでるんだ・・・
もしif(space[row][col].equals("O"))っていうふうにiとjをやめるとパスするんだけど、なんでか意味がわからなくて・・・
これっていったいなんでしょう・・・

ちなみに、nColsは縦の配列の大きさで、nRowsは横の配列の大きさで、rowとcolはテストメソッドから引っ張ってくる配列のインデックスです。
上の例では、nColsとrowしかでてないけど・・・
配列の大きさは縦も横は10なので、nCols=10、space[3][9]の周りの配列をしらべたいから、row=3、col=9になります

なので実際のfor文は
for(int j=8;j<=9;j++){ //[2][0],[3][0],[4][0]以外の6つの配列の検索
for(int i=2;i<=4;i++){
if(space[i][j].equals("O"))
count++;
}
}

for(int i=2;i<=4;i++){ //縦のインデックスが0の配列の検索→[2][0],[3][0],[4][0]
if(space[i][0].equals("O"))
count++;
}
count=count-1; //自身もカウントしてるから1引く
}

こんな感じになるのです


235 :アヌス : 2009/03/01 22:23
あ、空っぽでまだ 配列の中身定義してないからか・・・汗

あああああああああああ
だからif(space[row][col].equals("O"))
だと平気なのか。すでに"O"をいれてるから・・・

ええええ。じゃぁどうやって・・・検索すれば・・・


236 :アヌス : 2009/03/01 22:34
かざっさん。例えば、space[2][8]になにも定義してない状態でif(space[2][8].equals("O"))って比較できないの・・・?

なにも定義しなかったらnullになるんじゃ・・・


237 :アヌス : 2009/03/01 22:52
はじめに、すべての配列の要素に””を入れて解決しますた・・・


238 :大和 : 2009/03/02 18:50
おおおうまくいったみたいでよかった


239 :アヌス : 2009/03/02 21:24
なんか間違いとかでる・・・
プログラム自体はうごくのに・・・WebCatに送信したらエラーがたんまり・・・

かざっさん。これおかしい・・・?

public boolean cellAt(int row, int col){
if(space[row][col].equals("O"))
return true;
else
return false;
}

テストメソッドからrowとcolを受け取って実行するんだけど、与えられた2時限配列の中に"O"があればtrue、なければfalseをかえすんだけど・・・
これで動くよね・・・?実際動いてるのに。。。WebCatがエラー返してきやがる・・・
比較がわるいの・・・?これ・・・


240 : : [ここ壊れてます]
[ここ壊れてます]


241 :大和 : 2009/03/03 04:56
ローカルでは動いてるのにWebcatってので動かすとエラーになるのかあ。
なんでだろうねえ・・。


242 :アヌス : 2009/03/03 17:17
100%ゲットしたああああああああああああ!!!
やったああああああああ

マジつかれた もうしぬ


243 :アヌス : 2009/03/03 17:19
俺のテストメソッドでは、ある2つのメソッドを必ず実行しないと期待通りの結果にならなくて、
Webcatでは、1つのメソッドだけで期待通りの結果になることを要求していたらしいのです
今日TAに聞いた・・・

てことで、内1つのメソッドをまたやりなおし(スゲー長くなったけど)、結果できました!!!


244 :アヌス : 2009/03/04 22:57
かざっさん。interface インターフェース名 このってどういう意味ですか?


245 :アヌス : 2009/03/04 23:45
それと、throwsってなんですか・・・?


246 :大和 : 2009/03/05 12:30
>>244
ジェネリクスだよー。
型を限定できます。

>>245
例外を宣伝する際に使う言葉だよー。
クラスやメソッドのあとにつけます。
class A throws Exception {}
public methodA throws Exception() {}



247 :アヌス : 2009/03/05 14:41
型を限定とは・・・?もし(E anal)ってできるの・・・?


248 :大和 : 2009/03/06 17:59
List nameList = new ArrayList();

って感じだね〜。
この場合 String 型しか格納できなくなります。
Integer 型格納しようとするとコンパイルエラーになるよー。


249 :アヌス : 2009/03/07 12:29
http://parasitestage.dip.jp/Page/MediaView.aspx?ID=28713


250 :アヌス : 2009/03/07 12:30
かざっさん!ちょっとまって!整理するっす!


251 :大和 : 2009/03/08 09:17
がんばって!


252 :アヌス : 2009/03/09 14:53
JAVAやる時間が マジでない・・・しかし期限が・・・マジで今回やばいっス!!!
なにやっていいのか理解できん・・・


253 :アヌス : 2009/03/09 15:51
かざっさん。今回の課題の一部のメソッド(throwとObject[])についてききたいっす!
今回はなんか、Abstract Data Typesなんてのやるみたいなんだけど、意味わかんないのですよ。知ってます?
配列の中の優先順位がどうのこうのって・・・

今回インターフェース使うんだけど、こんな感じ↓

public interface PriorityList {

配列の要素のサイズを返す 
public int size();

もし配列になにも入ってなければ(size=0なら)trueを返す
public boolean isEmpty();

もし可能なら、与えられた配列のインデックスにelの値を入れる。もし配列のサイズを超えたら、IligalArgumentExceptionをthrowsする。
例)もしサイズが3なら、可能なインデックスの値は、0、1、2、3である
public void insertElementAt(int index, E el) throws IligalArgumentException;

↑これがよくわからんのですけど、サイズが3ならインデックスは2までだけど、もしインデックスが3になったらどうやってIligalArgumentExceptionをthrowsするんでしょうか・・・


もし可能なら、与えられたインデックスの要素への参照を返す(?)。配列の外ならIlligalArgumentExceptionをthrows
例)この場合、サイズが3なら可能なインデックスは0、1、2である
public E getElementAt(int index) throws IlligalArgumentException;

もし可能なら与えられたインデックスの要素を消す。もしインデックスが配列の外ならIlligalArgumentExceptionをthrowsする
public void removeElementAt(int index) throws IlligalArgumentException;

もし可能なら、与えられたインデックスの要素の中身とその隣(index+1)の要素をスワップする。配列の外ならIlligalArgumentExceptionをthrowsする
インデックスsize()-1の要素のpriorityが一番低ければスワップせんでよし
public void lowerPriorityOf(int index) throws IlligalArgumentException;

     
もし可能なら与えられたインデックスの要素と隣(index-1)の要素をスワップする。インデックス0の要素のpriorityが一番高ければスワップでせんでよし
インデックスが配列の外ならIlligalArgumentExceptionをthrows
public void raisePriorityOf(int index) throws IlligalArgumentException;

Objectの配列の中にある要素のコピーを全て同じ順番で返す。もしなにもなければ、new Object[0]を返す
public Object[] toArray();

もし可能なら与えられたインデックスの要素をリストの最後に移動する。与えられた要素が最後のインデックスならやらんでよし。
インデックスが配列の外ならIlligalArgumentExceptionをthrows
public void moveToLast(int index) throws IlligalArgumentException;

もし可能なら与えられたインデックスの要素をリストの最初に移動する
インデックスが配列の外ならIlligalArgumentExceptionをthrowsする
public void moveToTop(int index) throws IlligalArgumentException;

}

ほとんどにthrows IligalArgumentException;がついてるのです。


254 :アヌス : 2009/03/09 17:00
IlligalArgumentExceptionのテストメソッドはこんな感じらしい・・・です・・・
もしインデックスが配列のサイズを1超えたら↓

@Test(expected = IlligalArgumentException.class)
public void testInsertThrowsAnException(){
ArrayPriorityList list = new ArrayPriorityList();
list.insertElementAt(0, "1st");
list.insertElementAt(1, "2nd");
list.insertElementAt(2, "3rd");
}


255 :アヌス : 2009/03/09 16:18
で、本体ですが、
public class ArrayPriorityList implements PriorityList {

private Object[] data;
private int size;

public ArrayPriorityList() {
data = new Object[20];
size = 0;
}

public int size(){
return size;
}

public boolean isEmpty(){
boolean bltemp;
if(size==0){
bltemp=true;
}else{
bltemp=false;
}
return bltemp;
}

このinsertElementAtメソッドでは配列にelを入れるわけだけど、インデックスが配列のサイズを超えたら IlligalArgumentExceptionをどのようにthrowsすればいいんでしょうか・・・
public void insertElementAt(int index, E el){

if(sizedata[index]=el;
size++;
}
}

public void insertElementAt(int index, E el) throws IligalArgumentException{
っていうふうに書かないといけない・・・の?


256 :アヌス : 2009/03/09 16:01
それと Object[] data; って、タイプはなにになるんですか?
これで配列の中身を確認するには、どうすんでしょう・・・
文字列ならnullとかequalとか、整数なら単に0と比べるだけでいいし・・・


257 :アヌス : 2009/03/09 21:40
このIlligalArgumentExceptionは新しいクラスで定義しなきゃいけないの?

これをどこでどのように定義すればいいのかがわからないのです・・・


258 :アヌス : 2009/03/09 16:35
ちなみに、配列のには優先順位があって、インデックス0はインデックス1より優先され、インデックス1はインデックス2より優先順位があるということです
このPriorityListでは、どんなタイプでもあり得る要素のたった一つのタイプのコレクションをストアする・・・らしいんだけど・・・


259 : : [ここ壊れてます]
[ここ壊れてます]


260 :大和 : 2009/03/09 21:54
待ってね。
こりゃ少し読まないと。


261 :大和 : 2009/03/09 21:55
その前に風呂入ってきまーす。


262 :大和 : 2009/03/09 22:00
おいおいなんだこれ。
ジェネリクスとかやらせるなんてオーバーペースすぎやせんかこれ。
他の科目と並行してこんなんやらされてるのか。これは大変だよ。

と,その前に風呂です。


263 :アヌス : 2009/03/09 22:35
ジェネクリトリス!?


264 :アヌス : 2009/03/09 22:40
ぇーー・・・大変て・・・マジですか・・・
マジでJAVAやる時間ないのに・・・どうしよう・・・実はもう一つあるんだよね・・・JAVAの課題
マジ頭おかしいよあのヤロウ


265 :アヌス : 2009/03/09 22:43
だいたい何したいプログラムなのかよくわからんからテストメソッドもどう組めばいいのか・・・
ADTってなんやねん。
マジでIlligalArgumentExceptionとかthrowとかどう書いたらのいいのか わからない・・・


266 :大和 : 2009/03/09 23:26
戻りました。

うんw。
ドラクエ3に例えると,
アリアハンの周りでスライムちみちみ狩ってたら突然キメラ出てきたぐらいの難易度ですよ。
はい。わかりづらい例えですね。

わかった!
何するプログラムなのか,とどんなコード書けばいいのか,
という観点からレスしていきます。
ちょっと考えさせてね。
この間は他の課題やるなりしちゃっててください。

今日寝るまでに100%なり中途半端なりどちらになろうと必ずレスします。
1時までにはレスします。


267 :アヌス : 2009/03/09 23:28
おおお
かざったああああん!!
ありがたああう!!!


268 :大和 : 2009/03/10 08:05
abstract data typeとは

抽象データ型
http://ja.wikipedia.org/wiki/抽象データ型

データを操作するメソッドを集合させた記述,を指すみたいです。
なるほど。これはまさに,インターフェースそのものですね。



public interface PriorityList について

インターフェース PriorityList を実装するクラスは,以下のメソッドを具象化しましょう。

必ず作れ?の課題
public int size(); // 配列の要素数を返します
public boolean isEmpty(); // 配列が空なら true を返します

出来たら作れ?の課題
public void insertElementAt(int index, E el) throws IligalArgumentException; // 配列のインデックス index に el を代入します
public E getElementAt(int index) throws IlligalArgumentException; // 配列インデックス index の値を取得します
public void removeElementAt(int index) throws IlligalArgumentException; // 配列インデックス index の値を消去します
public void lowerPriorityOf(int index) throws IlligalArgumentException; // 配列インデックス index の値と ++index の値を入れ替えます
public void raisePriorityOf(int index) throws IlligalArgumentException; // 配列インデックス index の値と --index の値を入れ替えます
public Object[] toArray(); // 配列 Object をコピーします
public void moveToLast(int index) throws IlligalArgumentException; // 配列インデックス index の値をインデックス最後尾に移し変えます
public void moveToTop(int index) throws IlligalArgumentException; // 配列インデックス index の値をインデックス最前に移し変えます


以上,合計10メソッドを製造しましょう。



例外処理とは

以下のように,例外が発生するコードを try で囲むことを指します。
例外が発生した時のみに動作するコードを catch で囲みます。

class MathException{
  public static void main (String[] args) {
    try {
      int x = 10 / 0; // 0で除算は例外が発生する
    } catch (ArithmeticException e) {
      System.out.println("0で除算はできません。");
    }
  }
}




※まだこの記事は編集します。これにどんどん付け足していきます。


269 :アヌス : 2009/03/10 12:07
かざっさん!すみません。少々訂正が

IlligalArgumentExceptionはIllegalArgumentExceptionの間違いです・・・
tryやcatchのクラスはいらないみたい


270 :アヌス : 2009/03/10 12:12
あとremoveElementAt(int index)メソッドは、削除する配列より右の配列の要素すべてを、左にシフトして削除するみたい
インデックス3の要素を消したかったら、インデックス4を3に、5を4に、6を5に・・・って感じ


271 :アヌス : 2009/03/10 12:10
public E getElementAt(int index)はインデックスの中の要素の参照を返すらしいので、

return (E)data[index]

これでいけますか?


272 :アヌス : 2009/03/10 12:13
public void insertElementAt(int index, E el)のメソッドでは、インデックスが配列の大きさを超えたら、配列の最後にもう一つインデックスを加えるらしいです。だから
growArray();
ってやればいいのかな


273 :アヌス : 2009/03/10 15:14
少しだけどやってみたんですが、insertElementAtメソッドは、

public void insertElementAt(int index, E el) throws IllegalArgumentException{

if(size<0 || size>=data.length){
throw new IllegalArgumentException();
}
if(size==data.length){
growArray();
}
if(sizedata[index]=el;
size++;
}
}

1:現在のインデックスを表すsizeがインデックスの大きさを超えたら、IllegalArgumentExceptionをthrowする
2:sizeがdata.lengthと一緒になったらgrowArray()へ
3:data[index]に要素を代入


274 :アヌス : 2009/03/10 15:17
配列にインデックス1つ追加するメソッド

private void growArray(){

Object[] temp = new Object[size + 1];

for (int i = 0; i < size; i++) {
temp[i] = data[i];
}
data = temp;
}


275 :アヌス : 2009/03/10 15:18
与えられたインデックスの中の要素の参照を返すメソッド

public E getElementAt(int index) throws IllegalArgumentException{

if(size<0 || size>=data.length){
throw new IllegalArgumentException();
}
return (E)data[index];
}

これで、あってる・・・かな?


276 :アヌス : 2009/03/10 15:48
与えられたインデックスの中の要素を消すメソッドですが

public void removeElementAt(int index) throws IllegalArgumentException{

if(size<0 || size>=data.length){
throw new IllegalArgumentException();
}
for(int i=index;idata[i] = data[i+1];
}
}

for文で、インデックスの右側の要素を全て左にシフトする。結果目的のインデックスの中身がindex+1の中身になって消される


277 :アヌス : 2009/03/10 17:22
lowerPriorityOfメソッドですが、

public void lowerPriorityOf(int index) throws IllegalArgumentException{
Object temp;

if(size<0 || size>=data.length){
throw new IllegalArgumentException();
}
temp = data[index];
data[index] = data[index+1];
data[index+1] = temp;
}

1:sizeがインデックスを超えたら IllegalArgumentExceptionをthrow
2:与えられたindexの要素とindex+1の要素をスワップする


278 :アヌス : 2009/03/10 17:24
raisePriorityOfメソッドですが、

public void raisePriorityOf(int index) throws IllegalArgumentException{
Object temp2;

if(size<0 || size>=data.length){
throw new IllegalArgumentException();
}
temp2 = data[index];
data[index] = data[index-1];
data[index-1] = temp2;
}

上と同様に、与えられたindexとindex-1の要素をスワップ


279 :アヌス : 2009/03/10 17:29
moveToLastメソッドは

public void moveToLast(int index) throws IllegalArgumentException{

if(size<0 || size>=data.length){
throw new IllegalArgumentException();
}
data[data.length-1] = data[index];
}

上記のように与えられたインデックスの要素を配列の最後に移動
問題には、リストの最後にって書いてあるけど、リストって配列のこと・・・?


280 :アヌス : 2009/03/10 17:31
moveToTopメソッドは

public void moveToTop(int index) throws IllegalArgumentException{

if(size<0 || size>=data.length){
throw new IllegalArgumentException();
}
data[0] = data[index];
}

与えられたインデックスの要素をリストの最初のに持っていく。これもリストって配列???最初ならインデックス0にってこと・・・?


281 :アヌス : 2009/03/10 17:37
・・・とやったんだけど、これでいいの・・・?これはスゲー大変ってかざっさん言ってたけど、なら俺のやったのじゃできてないってこと・・・?

あ、あと配列の中の全部の要素のコピーを順番を変えずに返すObject[] toArray()をかかなければいけないんだけど・・・


282 :アヌス : 2009/03/10 20:11
Object[] toArray()ですけど、

public Object[] toArray(){
Object[] copy = new Object[data.length];

if(size==0){
   ここがよくわからんのです。
}else{
for(int i=0;icopy[i] = data[i]; 配列を新しい配列copyにコピーする
}
return copy;
}
}

配列のコピーは上のやり方でいいのかな。で、もし配列に何もなければnew Object[0]を返すって書いてあるんだけど、
new Object[0]って、新しい配列のインデックス0の要素を返すってこと?
つまりif文の中はreturn (Object[]) copy[0]; になるの・・・?
それとも元々の配列data[0]?

これをテストする場合は、どうかけば・・・もしreturn new Object[0];とそのまんまで書くと、
配列にはなにも入ってないんだから、assertEquals("null",list.toArray());ってやろうとしたんだけど、結果はnullじゃなく、[Ljava.lang.Object;@194df86 だと、わけのわからない値が・・・

return (Object[]) copy[0];にしたら、NullPointerExceptionとエラーが・・・


283 :アヌス : 2009/03/10 20:31
>>275での、与えられたインデックスの中の要素の参照を返すってのもスゲー心配でして・・・
return (E)data[index]; これでいいのかな・・・

そうするとこれのテストメソッドは、
assertEquals("中身", list.getElementAt(index));
でいいの・・・?でもこれって参照を返すっていうのかな・・・普通に中身を返してるだけのような・・・


284 :大和 : 2009/03/10 22:11
ただいまあ。
おおおすごい。いつのまにかもうそんな進めたんですね。


285 :大和 : 2009/03/10 22:16
>>281
いやー量が多くて大変かと思ったけど,
一つ一つのメソッドはそんなに大したことなかったね。
私が尻込みしちゃっただけですね。


286 :大和 : 2009/03/10 22:34
あ。まずいあんな大見得切っておいて今更ですが,
クラスのジェネリクスはまだやったことないから,

クラスのジェネリクスが混じってるとわけわかんないや。
調べてからじゃないとちょっと意見できそうにないです。
ごめんよー。


287 :アヌス : 2009/03/10 22:22
ジェネリスクとは・・・?


288 :アヌス : 2009/03/10 22:23
てかマジで時間ない・・・
このJAVA、まだ終わりじゃないんだよね・・・
これ 終わっても もう一つJAVAの課題でてるんだ・・・


289 :大和 : 2009/03/10 22:35
とか <> で囲んである記述のことだよー。


290 :アヌス : 2009/03/10 22:42
この課題で、なんかもう一つクラスを作れって でてるんだ。これも意味がわからないんだけど、

PriorityListの中のエレメントとしてオブジェクトMovieを追加し、クラスMovieを実行せよ。ただしこのクラスは2つの引数と2つのメソッドtoStringとgetTitleを持っている。

これは、例えば各家庭に配送される映画のキューの優先順位の変更を表すクラス・・・だとか。

質問なんだけど、
PriorityListは>>268の通りのインターフェース。これに2つの引数を持ったMovieを追加。以下の通り↓

public interface PriorityList {

public int size();
public boolean isEmpty();
public void insertElementAt(int index, E el) throws IllegalArgumentException;
public E getElementAt(int index) throws IllegalArgumentException;
public void removeElementAt(int index) throws IllegalArgumentException;
public void lowerPriorityOf(int index) throws IllegalArgumentException;
public void raisePriorityOf(int index) throws IllegalArgumentException;
public Object[] toArray();
public void moveToLast(int index) throws IllegalArgumentException;
public void moveToTop(int index) throws IllegalArgumentException;
public void movie(E el, int a);
}

そして次にMovieクラスを作ってその中にtoStringとgetTitleメソッドを作ると思うんだけど、本体のArrayPriorityListの中のオブジェクトもインターフェースにあんのに、Movieだけを他のクラスとして作るとエラー起こすんだ・・・
インターフェースの中にあるオブジェトは、全部同じクラス(この場合ArrayPriorityList)の中に作らないといけないの?

でもMovieクラスは2つのメソッドを持ってるから・・・ArrayPriorityListクラスの中に新しいMovieクラスは作れないよね・・・?
意味が・・・わからないのですが、なんかわかりますか?


291 :アヌス : 2009/03/10 22:51
ちなみに、Movieクラスのテストメソッドは以下のようです

@Test
public void testGetters(){ // 引数1、映画のタイトル. 引数2、星率1〜5 →星とは*のことです
Movie m1 = new Movie("The Matrix Revolutions", 4);
Movie m1 = new Movie("The Load of the Rings, Return of the King", 5);
Movie m1 = new Movie("Click", 2);


assertEquals("The Matrix revolutions", m1.getTitle());
assertEquals("The Load of the Rings, Return of the King", m2.getTitle());
assertequals("Click", m3.getTitle());

assertEquals("The Matrix revolutions *****", m1.getTitle());
assertEquals("The Load of the Rings, Return of the King ****", m2.getTitle());
assertequals("Click **", m3.getTitle());
}


292 :アヌス : 2009/03/10 22:53
あ、*ならインターフェースの中でpublic void movie(E el, int a);ってやっちゃいけないのかな。
この場合E elが映画のタイトルだろうし、もう一つの引数は*にあったタイプにしないといかんのか・・・ならint aはダメかな
*ってキャラクターだっけ?


293 :アヌス : 2009/03/10 23:16
MovieクラスをArrayPriorityListクラスの中にprivateで作ってって・・・意味ないよな・・・privateにしても・・・

いみわかんねええええええええええええええええええええ


294 :大和 : 2009/03/11 10:56
>>290
Movieクラスを他のクラスとして作成するとエラー出ちゃうのかあ。
ぱっと思いついたのは,HAS-A関係かなあと。
自信ないですが・・。

HAS-A関係とは「・・・は・・・を持っている」っていうクラス同士の関係を表すことですね。
オブジェクト指向のいくつかある概念の,一概念です。HAS-A関係とは。

「野球選手クラスは,バットクラスを持っている」とか,
「優先順位リストクラスは,映画クラスを持っている」とかです。

例えば・・・。

class BaseballPlayer {
  private Bat myBat;

  BaseballPlayer() {
    myBat = new Bat();
  }

  void useBat();
}

class Bat {
  void useBat() {
    System.out.println("バットを振りました");
  }
}


BaseballPlayer クラスのフィールドに Bat 型の変数を宣言します。
コードの記述は↑みたいな感じ(だったはず)です。

あ!でも適当に思いついたこと書いてるだけなので,
間違ってる可能性のほうが高いです。
うまくいかなかったら即行見切りつけて別の方法模索しちゃってください++。


295 :大和 : 2009/03/11 04:57
この問題はありがたいなあ。
私が知らなかったことたくさん含んでいるから勉強になります。
もう眠いから寝よう・・。おやすみなさいー。


296 :大和 : 2009/03/11 10:56
>>294
ああ,全然関係ないですねこれ。
スルーしちゃってください。


297 :大和 : 2009/03/11 12:57
うーん。ちょっとでかいプログラムになるとお役に立てそうにないですね。
やること多いプログラムになると,ちゃんと時間かけて考えないと正しいこと言えないのに,
今はその余裕がないから適当なことしか言えないという状態です。
できる範囲で書き込みますが,私は役に立たないと思って動いちゃってください。


298 :アヌス : 2009/03/11 21:51
どうやらMovieはとやって新しいクラスで作るらしい・・・
今日明日試験あって、JAVAやる時間が明日の試験終わってからの1日しかなく、それで2つもプログラムが・・・終わるか・・・
まぁやってみます・・・
なんかもうめんどくなってきた・・・


299 :大和 : 2009/03/12 00:17
忙しすぎだwww
アメリカの大学は入るの簡単出るの大変ってのは本当だったかー。


300 :アヌス : 2009/03/12 06:19
Nodeとかthisってわかる?


301 :アヌス : 2009/03/12 06:35
http://www.nicovideo.jp/watch/sm5539227

これ作ったヤツ神wwww


302 :大和 : 2009/03/12 07:02
Node は初めて聞いたなあ。
this は自オブジェクトの参照を表してるよ。

class BaseballPlayerBean {
  private String name;
  void outputName() {
    System.out.println(this.name); // println(name); でも動くよ
  }
}



303 :アヌス : 2009/03/12 22:32
もう一つの課題は、内容はまったく同じなんだけど、リンクを使ってやれとかなんとか
リンク構造って知ってる?


304 :大和 : 2009/03/13 08:22
リンク構造ってのも聞いたことないねえ。役に立てなくてごめんよー。


305 :アヌス : 2009/03/14 17:23
1つ目のJAVAは期限内に終わったんだけど、2つ目は無理だった。意味がわからん
てか2つ目は締め切りの1日前にやりはじめたからね・・・


306 :アヌス : 2009/03/14 17:27
2つ目は、1つ目と内容は一緒なんだけど、やり方がちがくて、配列っぽいけど配列じゃないものを使う
例えばインデックスに文字を入れるたび、Nodeクラスにアクセスして入れて、次のインデックスの内容も入れて、次のインデックスにリンクさせる
リンクされた文字が次のインデックスの文字になる・・・みたいな


307 :アヌス : 2009/03/14 17:26
ノードクラスはこんな感じ

private class Node{
private E data;
private Node next;

public Node(E element){
data = element;
next = null;
}

public Node(E element, Node link){
data = element;
next = link;
}
}


308 :アヌス : 2009/03/14 17:27
これが文字を入れてるメソッド

public void insertElementAt(int index, E el) throws IllegalArgumentException{

if(index<0||index>size) {
throw new IllegalArgumentException();
}

if(size==0){
first = new Node(el);
size++;
}else if(index==0){
Node temp = first;
first = new Node(el, temp);
size++;
}else{
Node ref = first;
for(int i=0; iref = ref.next;
}
Node temp = ref.next;
ref.next = new Node(el, temp);
size++;
}
}



309 :アヌス : 2009/03/14 17:28
リンクのさせ方がサッパリわからん


310 :アヌス : 2009/03/14 20:03
http://youtube-spot.com/archives/4015.html

このじいさんハンパねぇ


311 :アヌス : 2009/03/14 20:25
http://www.youtube.com/watch?v=7VFW3JzmpII

オリンピックでやるらしいですよ!!!


312 :アヌス : 2009/03/16 04:55
JAVA やっと終わった・・・
リンク構造嫌い


313 :アヌス : 2009/03/17 05:18
http://www.nicovideo.jp/watch/nl6354334

ヒロユキとホリエモンwwwww共演wwwww


314 :アヌス : 2009/03/20 17:39
今大会WBCでは日本韓国は2勝2敗の引き分けですね


315 :ねこみみ : 2009/03/21 22:37
かざっさん!JAVAのサイト作ろうぜ


316 :大和 : 2009/03/22 13:50
>>314
もしかしたらもう一回やりそうです・・


317 :大和 : 2009/03/22 13:51
Javaのサイト作りましょう
研修内容が薄くなってきて暇になってきましたし


318 :大和 : 2009/03/22 14:44
>>313
これは面白いなw
実名バンバン出してるぞw いいのかこれww


319 :大和 : 2009/03/22 16:48
桜の開花宣言出ましたよ


320 :ねこみみ : 2009/03/22 18:48
OPENPNEはむずかしいので

サーバサイドスクリプトを利用した
TOMCATサーバでリアルタイムに
文字が表示されるチャットサイトなんてどうでしょうか。

サーバはこちらで用意できます〜

ご検討のほどよろしくお願いします^^


321 :大和 : 2009/03/22 22:36
>>320
OpenPNEかー。こんなのあったんですね。初めて知りました。
アプリケーションサーバ用意できるんですか!すごいな!
やり甲斐ありそうですね。

やってみましょう。
未熟なのでどこまでお役に立てるかわかりませんが,やってみましょう。


322 :ねこみみ : 2009/03/22 23:11
桜がもう咲くか・・・・

ヒーターグローブ売ろうとおもったけど
今売れなさそうだなぁ・・・
がっくし・・・


かざっさん
じゃーサーバはLINUXベースでいいですか?
開発環境なんてコンテンツファイルをどこに置くか程度で
windows2003serverだろうがXPだろうがNTだろうが
アップロードの仕方がわかれば一緒かと!

今伝えられる仕様

OS LINUX REDHAT4か5(とりあえず安定している4で)
ミドルウェア(サーバソフトウェア)
apache2
java(調べてみないとわからないけどJDKあたり?)
tomcat(これもよくわからないので調べます)
vsftpd(ftpサーバ、ファイルアップロード用)

開発言語に必要なソフトなら入れます
perl,php,namazu,など

JAVA,TOMCATは推奨バージョンが無ければ
適当に最新を入れます。

サーバができるまではクライアントで作り始めててください。




323 :大和 : 2009/03/23 07:50
ようし。わかりました。

もうあっという間に4月ですね。
ヒーターグローブ良いね。
冬は本当に指が辛くてあったら良いなと思ってたよ。


324 :大和 : 2009/03/23 09:58
またあとで書き込みますね。


325 :アヌス : 2009/03/23 10:34
テレビでWBCやってますよ
今4回の日本の攻撃
2−6でかってるね。

勝った方が決勝にいって韓国と戦う。まさか韓国がベネズエラに8点差で勝つとは・・・

しかしもし日本がアメリカに勝ったら、この大会で予選含めて日本は韓国と5回も戦うことになるんだな・・・
バカみたい・・・


326 :アヌス : 2009/03/23 12:17
ダルビッシュが9回のおさえやってるwww


327 :大和 : 2009/03/23 18:36
日本勝ったねー!9-4です!
家帰ったらニコ動かようつべで動画で確認してみよう!


328 :アヌス : 2009/03/24 08:41
さてさてあと2時間ほどで韓国戦
5回って ありえねぇよなぁ・・・


329 :大和 : 2009/03/24 10:19
やばい球場チョンばっかw
完全アウェイだなあ。


330 :アヌス : 2009/03/24 10:35
さぁテレビ中継はじまりましたね


331 :アヌス : 2009/03/24 10:41
イチローうちましたね早速


332 :アヌス : 2009/03/24 10:42
こっちwww韓国側の選手紹介で実況全然韓国人の名前いえてないwww
ところどころつっかかってるwww
韓国人の名前は難しいって言ってますね。反対に日本人の名前は簡単そうだ


333 :大和 : 2009/03/24 10:43
イチローいきなり打ったね!
一番最初に打つって重圧の中よく打ったよ。


334 :大和 : 2009/03/24 10:44
まじかww
韓国の観客気まずかったろうなあw


335 :アヌス : 2009/03/24 10:55
いやテレビの実況者の発音がね・・・

てか結局無得点・・・


336 :アヌス : 2009/03/24 10:55
いわくまかピッチャーは


337 :アヌス : 2009/03/24 11:00
ナイスピッチだった


338 :アヌス : 2009/03/24 11:00
実況もCMもイチローと松坂のことばかりだな・・・
他の選手の名前はあまり出ず、韓国側の名前は一切でないw


339 :大和 : 2009/03/24 11:02
テレビかw
WBCこっちもTBSでやってるけど,パチンコのCM多すぎてワロタ
蒼穹のファフナーってパチンコがあるんだそうで,もう名前覚えてしまった。


340 :アヌス : 2009/03/24 11:02
城島の名前もたまにでるな。メジャーにいるしなぁ


341 :大和 : 2009/03/24 11:02
実況は日本寄りかw
韓国カワイソス^q^


342 :大和 : 2009/03/24 11:06
岩隈いいね。
変化球5つぐらい盛ってるから狙い球絞りにくいよ。
スライダーカーブシュートフォークチェンジアップ


343 :アヌス : 2009/03/24 11:11
また2アウト2塁1塁・・・さあどうなる


344 :大和 : 2009/03/24 11:11
また得点圏に進んだな。
2塁岩村か。足速いぞ。


345 :アヌス : 2009/03/24 11:11
てか1巡したのか


346 :アヌス : 2009/03/24 11:12
イチローwwwwwwww


347 :大和 : 2009/03/24 11:12
早いね。まだ2回表だよ。
それだけ日本が打ってるってことだね。


348 :大和 : 2009/03/24 11:13
ボテローwwwwwww


349 :アヌス : 2009/03/24 11:13
ピッチャーイチローと同じ背番号だし


350 :アヌス : 2009/03/24 11:14
岩クマの立ち上がりなかなか いいキガスル
このままおさえてくれればいいが


351 :大和 : 2009/03/24 11:15
でも日本のほうが出塁できてるね。
これを続けていけば必ず得点できるよ。
前このピッチャーと対戦した時は出塁すらままならなかった。


352 :大和 : 2009/03/24 11:17
韓国はアレだ。ホームラン狙ってくる。狙い球絞ってる。
だから凡退しててもいきなりホームラン,とか結構あるんだ。

甘い球投げたら一発打たれる危険大だけど,
高めに球浮かなければ大丈夫。
岩隈なら高めに浮かないだろう。


353 :アヌス : 2009/03/24 11:17
地元人も結構見に来てるんだな


354 :アヌス : 2009/03/24 11:17
なかなか安定してるピッチだ


355 :大和 : 2009/03/24 11:18
日本対勧告とか絶対客入らないだろうなあ・・とか思ったけど,
結構アメさん見に来てくれてるね。
ありがたい。


356 :アヌス : 2009/03/24 11:19
一発屋か韓国は
今の日本のお笑い界だな


357 :アヌス : 2009/03/24 11:20
CMが電化製品でLG紹介されてた
次の回 韓国なにかありそう


358 :大和 : 2009/03/24 11:22
ちょw
岩隈はやいよw
こっち10分間ニュースやってる間に,
もう韓国の攻撃終わって日本の攻撃になってるw


359 :大和 : 2009/03/24 11:24
これがあるんだ日本には!!
全員足速いんだよ日本はwww

内野安打ゲットwww


360 :アヌス : 2009/03/24 11:25
城島ってはやいのかな


361 :アヌス : 2009/03/24 11:26
青木いいいいいいいいいいいいいいいいい


362 :アヌス : 2009/03/24 11:26
ちょwwwwwセカンドwwwwwライナーなのに取れなかったwww


363 :アヌス : 2009/03/24 11:28
4番なら4番らしく振っちゃいなさい城島


364 :大和 : 2009/03/24 11:28
ここで凡退しちゃダメだぞ城島。


365 :大和 : 2009/03/24 11:30
城島の足でもゲッツーにならんかったか!
ボテボテのゴロだったのが幸いしたね!


366 :大和 : 2009/03/24 11:31
Yeahhhhhhhhhhhhhhh!!!


367 :大和 : 2009/03/24 11:32
韓国の一塁選手デブすぎだろww
スリムなら今のゴロダイブすれば取れたぞw
デブだからダイブできねーんだろうなwww


368 :アヌス : 2009/03/24 11:34
先制点かつ満塁か


369 :アヌス : 2009/03/24 11:35
ここでホームラン打ったら神ですね


370 :大和 : 2009/03/24 11:35
やばい栗原三振しないでくれ。


371 :大和 : 2009/03/24 11:35
いま3回表

日本1-0韓国
1死満塁


372 :大和 : 2009/03/24 11:36
あーあ


373 :アヌス : 2009/03/24 11:36
今の球フルなよおおおおおおおおおおおおおおおお


374 :アヌス : 2009/03/24 11:37
前かがみになってまで 振る球じゃないだろ。。。・・・


375 :大和 : 2009/03/24 11:37
まだ三振のほうが良かったわw
栗原クソだな


376 :アヌス : 2009/03/24 11:38
せっかくのチャンスをバカな1フリで棒にフリました


377 :大和 : 2009/03/24 11:39
しかし満塁まで走者貯めれた
1回も1塁2塁
2回も1塁2塁まで貯めた

この試合まだまだチャンスあるよ!


378 :大和 : 2009/03/24 11:40
やばい!岩隈ほんとに球低めにしか行かない。
これまずホームラン無理だ。

韓国一発が狙えなかったらなんもできねえww


379 :大和 : 2009/03/24 11:41
一発狙いをやめて,
コツコツ当ててくる方針に切り替えてくるかもしれんなこれは!


380 :アヌス : 2009/03/24 11:42
すげー低いのストライクに取るな・・・あのアンパイア


381 :大和 : 2009/03/24 11:42
ははははw
岩隈マジで打たれる雰囲気ないわw


382 :アヌス : 2009/03/24 11:42
韓国側なかなか塁にでないな


383 :大和 : 2009/03/24 11:43
あの低めのフォークボール
絶対ボールだよね今のwww

しかしストライク判定で三振
ラッキーラッキー

さっきの栗原のアンラッキーが,これで帳消しだ。


384 :大和 : 2009/03/24 11:44
韓国3回裏終わってまだノーヒットですよ。
岩隈の低めに集める制球に,手も足も出てない。


385 :大和 : 2009/03/24 11:45
相手のピッチャー3回終わってもう74球だぞwww
どんだけ球放ってるんだよw


386 :アヌス : 2009/03/24 11:46
もう3巡かwwwww


387 :大和 : 2009/03/24 11:47
ははは
イチローが打席立ったら大ブーイングだw

韓国クソ発言たくさんしてるから韓国人イチロー大嫌いなんだろうなw


388 :大和 : 2009/03/24 11:47
4回表でもう3巡目とかやばいなww


389 :アヌス : 2009/03/24 11:48
イチロー調子よくないな


390 :大和 : 2009/03/24 11:48
まじで,
今日の岩隈なら2点だけあれば勝ち計算できるな。

あと1点ほしい。


391 :大和 : 2009/03/24 11:49
4回表はあっさり3者凡退したね。
片岡と岩村は良い当たりだった。惜しい。


392 :アヌス : 2009/03/24 11:54
なんかピッチャーも守りもかなり安定してる
攻撃も結構いい
しかしイチローが・・・


393 :大和 : 2009/03/24 11:54
岩隈まじぱないな。
本当の本当に低めに制球してる。

こりゃ大振りは無理だ。
コツコツ当てていくしか無理だな。単打狙いしかない。


394 :アヌス : 2009/03/24 11:55
実況も岩クマをほめてますね


395 :アヌス : 2009/03/24 11:55
おお うたれた


396 :大和 : 2009/03/24 11:56
そうそう。
こういう高めの球しか打てない。勧告は。
低めに集めていれば危険は低い。


397 :大和 : 2009/03/24 11:57
>>394
ホホウ(`ω´


398 :アヌス : 2009/03/24 11:59
うおwww
今のびびったwwww


399 :大和 : 2009/03/24 11:59
やべー
この豚良い打ち方するな
豚だけど


400 :大和 : 2009/03/24 12:00
>>398
ねw
すごい良い弾道だったからかなり怖かった。
フェンス近くまで飛んだしね。侮れないな。


401 :大和 : 2009/03/24 12:05
ほんとこの試合出塁できてるな日本は。
まだ得点の香りがするよ。


402 :大和 : 2009/03/24 12:07
ベースボールで話そうw

後ろに色々な国の言葉で出てたの何かなと思ってたら,
そういう意味だったのか。


403 :大和 : 2009/03/24 12:07
イチローの隣にいる川崎www
川崎はしゃぎすぎワロタw


404 :アヌス : 2009/03/24 12:09
ピッチャーノックアウト
ノーアウト3塁いぃぃぃ


405 :大和 : 2009/03/24 12:12
5回表
日本1-0韓国

無死3塁1塁


406 :大和 : 2009/03/24 12:13
ここで1点でも入ったら,
相当有利になるよ。

2点リードしてれば,
今日の日本ならかなり安心して見れる。


407 :アヌス : 2009/03/24 12:14
なんて球振ってんだよ城島wwwwww


408 :大和 : 2009/03/24 12:14
なに今の振り方wwwwww


409 :大和 : 2009/03/24 12:14
女の子みたいな振り方で笑ってしまたw


410 :アヌス : 2009/03/24 12:15
オイオイ3塁にランナーいるんだからこのチャンス殺すんじゃないぜ・・・


411 :アヌス : 2009/03/24 12:16
なwにwやwっwてwんwだwwwwwwwww


412 :大和 : 2009/03/24 12:16
おいおい。
ここでミスが出たよ。


413 :アヌス : 2009/03/24 12:17
まったく・・・なんなんださっきのは・・・


414 :大和 : 2009/03/24 12:17
ひどいな。
無死1塁3塁を活かせなかったのは。

どうひっくり返っても1点入る場面だったのにw


415 :大和 : 2009/03/24 12:18
落ち込まなければ良いが。
気を取り直して頑張ってもらいたい!


416 :大和 : 2009/03/24 12:19
おいおいw。


417 :アヌス : 2009/03/24 12:19
はいったwwwwww


418 :アヌス : 2009/03/24 12:19
一発屋wwwwwwwww


419 :大和 : 2009/03/24 12:19
チャンスを活かさないからこうなる。

人生と一緒だね。


420 :アヌス : 2009/03/24 12:20
低いたまも 見切られたか


421 :大和 : 2009/03/24 12:20
一発狙いだよ。韓国は。
高めの球しか狙ってこない。

連打はないから大丈夫。
一発だけに気をつけてほしいね!


422 :アヌス : 2009/03/24 12:20
韓国を勢いづかせてはイカン


423 :大和 : 2009/03/24 12:22
今の球は高いところから,低めに落ちる変化球だったね。

高めにきたから変化球がきた,
って見切ったんだろうな。

敵ながらよく打った。


424 :大和 : 2009/03/24 12:22
そうそう。
まだ負けているわけじゃないもんな!!


425 :アヌス : 2009/03/24 12:23
ふじかわ すげーーーーーwww


426 :大和 : 2009/03/24 12:23
やべーーー!!!
攻撃のミスを帳消しにしてくれた!!


427 :アヌス : 2009/03/24 12:24
振り出しにもどって6回


428 :大和 : 2009/03/24 12:26
今のすごいプレイだよ。
本当に。

2塁打のライナーゴロをスライディングキャッチ,
難しいショートバウンドを難なく捕球!!
その座ったままの大勢で2塁へストライク返球。

結果2塁でタッチアウトwwwww

今のは超ファインプレイだよ!!


429 :アヌス : 2009/03/24 12:25
しかしさっきの守備はすごかった
よく取って投げた


430 :大和 : 2009/03/24 12:26
韓国がホームラン打ったショックも,
今のプレイで吹っ飛んじゃったよ。


431 :アヌス : 2009/03/24 12:27
韓国「お!2塁イケル!」

日本「アウトッスよwwwざまぁwww」

韓国「・・・」


432 :大和 : 2009/03/24 12:27
韓国はもうエースピッチャーを引き摺り下ろした。

あとは雑魚と抑えのエースだけだ。

これは得点チャンスが更に上がったと言えるぞ。


433 :大和 : 2009/03/24 12:28
>>431
球場の日本韓国のファンまさにそんなんだったろうねww


434 :アヌス : 2009/03/24 12:34
王さんがうつった

伝説のスラッガーって解説者がいってる

オーサーン


435 :大和 : 2009/03/24 12:40
一塁の韓国走者走る気まんまんだなw
刺したれ城島。


436 :アヌス : 2009/03/24 12:43
頭おさえとるwwwww


437 :大和 : 2009/03/24 12:43
三振ゲッツー最高や!


438 :アヌス : 2009/03/24 12:43
ヘルメット割れてるwwww
やべぇww


439 :アヌス : 2009/03/24 12:48
イチローwwww


440 :大和 : 2009/03/24 12:48
イチローさん最高や!


441 :アヌス : 2009/03/24 12:50
今度はチャンスを生かしましたね


442 :大和 : 2009/03/24 12:50
中島さん最高やあああ!!


443 :アヌス : 2009/03/24 12:53
城島wwwwダメじゃんwwwwwwww
4番じゃねえええ


444 :大和 : 2009/03/24 12:59
しまった
見入ってしまうよ


445 :アヌス : 2009/03/24 13:14
3点はいった


446 :大和 : 2009/03/24 13:15
2点差になったぞー!?


447 :アヌス : 2009/03/24 14:46
9回のダルビッシュ起用はアホだろうwwww
あんのじょう3点目取られて延長だしwwww

日本が勝ったのはイチローのおかげですね
さすがイチロー!


448 :アヌス : 2009/03/24 14:47
まぁこれくらいのドラマがあったほうが面白いんだろうけど、勝ったからいえる言葉ですね


449 :アヌス : 2009/03/24 14:47
しかし城島 マジで うんこwwwww


450 :大和 : 2009/03/24 23:04
WBC優勝おめでとーーーーーー!!!!!!


451 :大和 : 2009/03/26 12:37
ユダっさん。
Javaアプレットでチャットページを作ろうかと思います。
機能は最小機能で。
いろいろ作り方調べてみよう。


452 :アヌス : 2009/03/26 13:40
JAVAでマインスイーパー作れだって・・・
うんこ・・・


453 :アヌス : 2009/03/26 13:40
静電気やばい
なに触ってもバチッってくる。マジで怖い。てか痛い


454 :ねこみみ : 2009/03/26 21:51
了解です。

開発するJAVAのバージョンを教えてくださいな。

可能なら最新を入れて対応してください。
であればこちらもあわせやすいので!

以上よろちく!


455 :大和 : 2009/03/27 00:36
>>452
そんなこと出来るのか!?

>>453
こっちは静電気シーズンもう終わりそうです・・
そっちはまだシーズン中かあ。

>>454
Javaは5.0か6.0で作る予定ですよー。
最新なら6.0ですね。
では6.0で作ります。


456 :ねこみみ : 2009/03/27 21:27
りょーかい。問題があったら報告します。


457 :ねこみみ : 2009/03/27 22:18
今日タイヤ買いに行ったんだが
作業所が込んでてやってもらえなかった。

後日予約せいとのこと。

おいおいおいおいおいおい

ありえねぇよ・・・


458 :アヌス : 2009/03/28 18:18
静電気マジでやべぇwww
金属製のドアの取っ手さわったら火花散ったwwwwありえんwwww


459 :アヌス : 2009/03/28 20:40
かざっさん。booleanで質問があるんだけど、
マインスイーパーをデザインしてんだけど、あるメソッドで

public MineSweeper(boolean[][] boardWithMinesSetAsTrue)

ってのがあるんだけど、このメソッドの目的は、地雷がある所はtrue、ないところは falseでゲームボードをセットするらしいのです。
つまりボードの全てのマスはその周りにいくつ地雷があるかがわかるようにすると。。。

これboolean[][]ってなってるけど、どうしたらええん?
boolean[][]にはx軸y軸の変数ないし・・・boolean[][] boardWithMinesSetAsTrueってなってるのがよくわからんのです・・・
boardWithMinesSetAsTrueってこの2次元配列のこと・・・?
boardWithMinesSetAsTrue[][]みたいにしろってこと・・・?

(boolean[][] boardWithMinesSetAsTrue)こういう表記みたことありますか?



460 :大和 : 2009/03/29 12:46
>>459

>これboolean[][]ってなってるけど、どうしたらええん?

なるほど。
「boolean[][] boardWithMinesSetAsTrue」って変数。
これにマインスイーパの図面が格納されてるんだね。


// 例えば縦7マス横7マスのマインスイーパを宣言,初期化。
boolean[][] boardWithMinesSetAsTrue = new boolean[7][7];

↓図化するとこんな感じ。黒がtrue(爆弾マス)で白がfalse(安全マス)と捉えてね。
□■□□□□□
□□□□□□■
□□■■□□□
■□□□□■□
□□■■■□□
■□□□■□■
■□□□□■□

boolean[][] boardWithMinesSetAsTrueにはそういう値が格納されてるんじゃないかなあ。



>boardWithMinesSetAsTrueってこの2次元配列のこと・・・?

二次元配列のことだね〜。
boardWithMinesSetAsTrueは変数名っです。



>public MineSweeper(boolean[][] boardWithMinesSetAsTrue)こういう表記みたことありますか?

引数にboolean[][]型の変数を渡しているねー。

class KakitaIchizoku {
  // 引数に柿田一族の全氏名を渡しています。
  public KakitaIchizoku(String[][] name);
}
とか

class HayatoItaThreadCount {
  // 引数に隼人板のスレッド数を渡しています。
  public HayatoItaThreadCount(int[][] count);
}
って書き方も出来るよ〜。


461 :大和 : 2009/03/29 12:23
NAP'sに寄ると毎回作業中1時間待ちな罠。
町田行くついでにオイル交換してもらおうと2回寄ったことがあるけど,
毎回作業中だった。
人気なのかなあそこ。


462 :大和 : 2009/03/29 12:20
溝の口の駐輪場にスペイシー置いといたら,
ミラー盗まれた!!
7000円もしたのに。

ヒドスorz・・。


463 :大和 : 2009/03/29 12:21
もう盗まれたくないため盗難防止ってパーツを買いました。
もう盗ません。
3000円もしたけど盗まれるよりましだあ。


464 :大和 : 2009/03/29 12:22
>>458
誰か充電してたんじゃないか!?そのドアノブに!
まあそれはないよね。
すごい地だなカリフォルニアってとこはw


465 :アヌス : 2009/03/29 13:19
いや、アリゾナっす・・・汗・・・


466 :アヌス : 2009/03/29 15:51
マインスイーパーのゲームボードをセットするのに

boolean[][] boardWithMinesSetAsTrue = new boolean[7][7];

として7×7のボードをセットして、これは↓のメソッドの中で定義するのかな?
public MineSweeper(boolean[][] boardWithMineSetAsTrue)
このメソッドでは、爆弾をセットするわけだけど、

□■□□□□□
□□□□□□■
□□■■□□□
■□□□□■□
□□■■■□□
■□□□■□■
■□□□□■□

これをどうしたらセットできるのかな・・・
テストメソッドからboardWithMineSetAsTrueの値を受け取るんだよね?
でもboardWithMineSetAsTrueはboolean型の配列?だからどう定義したら・・・
普通booleanはtrueかfalseを入れるんだよね。
てことはboardWithMineSetAsTrue[][] = true?




467 :アヌス : 2009/03/29 13:58
配列に爆弾をセットしたいのに、
public MineSweeper(boolean[][] boardWithMineSetAsTrue)
これにはx軸y軸の変数がないから爆弾をセットできないのでは・・・


テストメソッドから受け取るのはtrueが入ってるboardWithMineSetAsTrue?

例えば上の図の例でいくと、boardWithMineSetAsTrue[1][0]とboardWithMineSetAsTrue[7][1]に爆弾があるから
まずこの2マスに爆弾をセットしようとすると

public MineSweeper(boolean[][] boardWithMineSetAsTrue){

boardWithMineSetAsTrue[1][0] =
boardWithMineSetAsTrue[1][7] = 

いやいや。。。trueが爆弾があるって意味だから・・・

・・・マジで意味がわからな・・・い

1) 配列に爆弾をセットするにはどうしたらいいのか。配列=trueにすればいいと思うんだけど
boardWithMineSetAsTrue[1][0] = true こんな感じで。
配列のx軸y軸といった具体的な数値を指定するのはテストメソッドなわけで・・・でもそれをテストメソッドから受け取る引数がなくて・・・

2)これbooleanだからboardWithMineSetAsTrueの中にtrueがあるんん?でもそうするとboardWithMineSetAsTrue[1][0] = trueのやり方は間違ってるよね・・・

マジでpublic MineSweeper(boolean[][] boardWithMineSetAsTrue)の意味がわからんです・・・


468 :アヌス : 2009/03/29 14:07
かざっさん。(boolean[][] boardWithMinesSetAsTrue)の使い方教えてもらえますか。

class HayatoItaThreadCount {
  // 引数に隼人板のスレッド数を渡しています。
  public HayatoItaThreadCount(int[][] count);
}

これでも、count[][] にするのはわかるけど、x軸y軸をどうしていするのか、countは配列の変数名でも、どうやってテストメソッドとコンタクトするのか・・・


boardWithMinesSetAsTrueはゲームボードの配列の変数名だから
boardWithMinesSetAsTrue[][] = true
ってやるのかな。

if(boardWithMinesSetAsTrue[?][?]=true){
boardWithMinesSetAsTrue[?][?] = 爆弾?
}

でも爆弾ってboolean型じゃないから・・・


469 :アヌス : 2009/03/29 15:50
マインスイーパーでは、マスに爆弾のほかにその回りにいくつ爆弾があるかを表す数字も入れないといけなくて、
ゲームボードのboardWithMinesSetAsTrue[][]がboolean型だと、別のメソッドのpublic MineSweeper(int rows, int columns, int numberOfMinesToBePlaced)では、

配列にint型のnumberOfMinesToBePlacedを入れないといけないんだけど、そうすると型があわずにいれられないんですよね・・・。

boolean型の配列は爆弾をセットするメソッドだけにしか使わないのかな。
でもそうすると他のメソッドで使う配列の名前は・・・
boardWithMinesSetAsTrueの名前変えると別の配列になっちゃうから爆弾はセットされてない配列になってしまうのでは・・・


470 :大和 : 2009/03/29 16:18
お〜なるほどお。


471 :大和 : 2009/03/29 16:23
boardWithMineSetAsTrue って日本語でどういう意味だろう?

さっきはわかってないまま適当に答えちゃったw。
すみません英検5級なので英語変数名とか,さっぱりっす!


472 :大和 : 2009/03/29 16:40
一応
□■□□□□□
□□□□□□■
□□■■□□□
■□□□□■□
□□■■■□□
■□□□■□■
■□□□□■□
をコードにしてみると,

boolean[][] boardWithMinesSetAsTrue = {
  {true, false, false, false, false, true, false}, // row of 1
  {true, false, false, false, true, false, true}, // row of 2
  // といった具合に7まで作ります。
}

マインスイーパ図面の作成って,
こんなイメージかな?って思ったんだけど,違うかもしれないね。

図のイメージにするとこんな感じ〜↓。

http://www.javaroad.jp/images/array6.gif">


473 :アヌス : 2009/03/29 16:35
trueとしてセットされた爆弾のボード みたいな


474 :アヌス : 2009/03/29 16:48
メソッドは3つだけなんだ

爆弾をセットするpublic MineSweeper(boolean[][] boardWithMineSetAsTrue)

爆弾がいくつあるかを示す数字をセットするpublic MineSweeper(int rows, int columns, int numberOfMinesToBePlaced)

マスをクリックして判断する public click(int row, int column)

どれも配列使うんだよね・・・。
1つ目のメソッドではboolean型の配列で、2つ目ではint型のnumberOfMinesToBePlacedを配列に入れるから配列はint型になるんだよね・・・
そうすると各配列で使う配列が変わる・・・?それじゃ爆弾とかセットしても使う配列が違うんじゃ・・・意味ないような・・・


475 :アヌス : 2009/03/29 16:42
boolean[][] boardWithMinesSetAsTrue = {
  {true, false, false, false, false, true, false}, // row of 1
  {true, false, false, false, true, false, true}, // row of 2
  // といった具合に7まで作ります。
}

これって2次元をあらわすん?


476 :アヌス : 2009/03/29 16:46
こんな感じでは ダメなんかね

public MineSweeper(boolean[][] boardWithMineSetAsTrue){

boardWithMineSetAsTrue = new boolean[5][6];

boardWithMineSetAsTrue[0][0] = true;
boardWithMineSetAsTrue[1][0] = false;
boardWithMineSetAsTrue[2][0] = false;
boardWithMineSetAsTrue[3][0] = false;
boardWithMineSetAsTrue[4][0] = true;
boardWithMineSetAsTrue[0][1] = true;
boardWithMineSetAsTrue[1][1] = false;
boardWithMineSetAsTrue[2][1] = false;
boardWithMineSetAsTrue[3][1] = false;
boardWithMineSetAsTrue[4][1] = false;
boardWithMineSetAsTrue[0][2] = true;
boardWithMineSetAsTrue[1][2] = true;
boardWithMineSetAsTrue[2][2] = true;
boardWithMineSetAsTrue[3][2] = false;
boardWithMineSetAsTrue[4][2] = false;
boardWithMineSetAsTrue[0][3] = false;
boardWithMineSetAsTrue[1][3] = false;
boardWithMineSetAsTrue[2][3] = true;
boardWithMineSetAsTrue[3][3] = false;
boardWithMineSetAsTrue[4][3] = false;
boardWithMineSetAsTrue[0][4] = false;
boardWithMineSetAsTrue[1][4] = false;
boardWithMineSetAsTrue[2][4] = false;
boardWithMineSetAsTrue[3][4] = true;
boardWithMineSetAsTrue[4][4] = false;
boardWithMineSetAsTrue[0][5] = false;
boardWithMineSetAsTrue[1][5] = false;
boardWithMineSetAsTrue[2][5] = true;
boardWithMineSetAsTrue[3][5] = true;
boardWithMineSetAsTrue[4][5] = false;

}


477 :大和 : 2009/03/29 16:44
>>473
おお〜!サンキューっす!

>>475
>472の画像みたいに二次元配列になるっすー。

>>476
大丈夫!それも合ってますよ!
そのコードでもコンパイルできるっすー。


478 :大和 : 2009/03/29 16:45
なるほど。メソッドは3つだけなのだね。


爆弾をセットするpublic MineSweeper(boolean[][] boardWithMineSetAsTrue)

爆弾がいくつあるかを示す数字をセットするpublic MineSweeper(int rows, int columns, int numberOfMinesToBePlaced)

マスをクリックして判断する public click(int row, int column)


479 :アヌス : 2009/03/29 16:48
でも配列の名前boardWithMineSetAsTrueなんですよね・・・
そうすると他のメソッドではどういう名前で配列を使えば・・・

boardWithMineSetAsTrueをpublic MineSweeper(boolean[][] boardWithMineSetAsTrue)メソッドの外でprivateとして定義しないと いかんのかな・・・


480 :アヌス : 2009/03/29 16:49
でもそうするとなんでpublic MineSweeper(boolean[][] boardWithMineSetAsTrue)ではわざわざboolean[][] boardWithMineSetAsTrueなんて定義されてんだろ・・・


481 :アヌス : 2009/03/29 16:51
テストメソッドからなにか受け取るんじゃないかなって 思ったんだけど・・・


482 :大和 : 2009/03/29 16:52
遅くなりましたが,

>>468
>(boolean[][] boardWithMinesSetAsTrue)の使い方教えてもらえますか。

()は引数だね。
引数でboolean型の二次元配列boardWithMinesSetAsTrueをもらってるんだよ。

outputName("Kakita"); // メソッド呼び出します。

public void outputName(String name) {
  System.out.println(name);
}

と同じだよ。
メソッド呼び出し時に値をつけて呼び出して,
で呼び出し先で,その値を何かしらの処理をするんだろうね。

boolean型の二次元配列をもらって,
このMineSweeperメソッドで何かするんでしょうね!


483 :大和 : 2009/03/29 16:54
>>480-481
boolean[][] boardWithMineSetAsTrue にはもう何か値が入ってそうだね。


484 :アヌス : 2009/03/29 17:02
ちょっとまってくらさい。二次元配列をもらうのはわかるんだけど、
それってテストメソッドからもらうんだよね?
でもさ、(boolean[][] boardWithMinesSetAsTrue)ってboolean[][]って書いてあるだけど、座標がわからないよ・・・
つまり、
テストメソッドでは
list.MineSweeper(boardWithMineSetAsTrue[0][0]);
こうしろってこと?
でそのテストメソッドから座標00を受け取って、MineSweeperメソッドでその座標の配列にtrueを入れる・・・?いやでもそうするとfalseをいれる場合は・・・?

boolean[][] boardWithMinesSetAsTrueに値を入れるというのは、trueかfalseが入ってるってことだよね、booleanだから。
しかしやはり値を入れるっていっても配列だから座標が・・・わからなくて・・・


485 :大和 : 2009/03/29 17:00
爆弾がいくつあるかを示す数字をセットするpublic MineSweeper(int rows, int columns, int numberOfMinesToBePlaced)

はさ,例えば
□■□□□□□
□□□□□□■
□□■■□□□
■□□□□■□
□□■■■□□
■□□□■□■
■□□□□■□

boolean[0][1]の安全マスなら,周りの爆弾2個でしょ?

メソッドの呼び出しは,
MineSweeper(0, 1, 2);
って感じになるのかな=。



486 :大和 : 2009/03/29 17:04
>>484
テストメソッドから二次元配列をもらうとしたら


boardWithMineSetAsTrue = new boolean[5][6];
boardWithMineSetAsTrue[0][0] = true;
boardWithMineSetAsTrue[1][0] = false;
boardWithMineSetAsTrue[2][0] = false;
boardWithMineSetAsTrue[3][0] = false;
boardWithMineSetAsTrue[4][0] = true;
boardWithMineSetAsTrue[0][1] = true;
boardWithMineSetAsTrue[1][1] = false;
boardWithMineSetAsTrue[2][1] = false;
boardWithMineSetAsTrue[3][1] = false;
boardWithMineSetAsTrue[4][1] = false;
boardWithMineSetAsTrue[0][2] = true;
boardWithMineSetAsTrue[1][2] = true;
boardWithMineSetAsTrue[2][2] = true;
boardWithMineSetAsTrue[3][2] = false;
boardWithMineSetAsTrue[4][2] = false;
boardWithMineSetAsTrue[0][3] = false;
boardWithMineSetAsTrue[1][3] = false;
boardWithMineSetAsTrue[2][3] = true;
boardWithMineSetAsTrue[3][3] = false;
boardWithMineSetAsTrue[4][3] = false;
boardWithMineSetAsTrue[0][4] = false;
boardWithMineSetAsTrue[1][4] = false;
boardWithMineSetAsTrue[2][4] = false;
boardWithMineSetAsTrue[3][4] = true;
boardWithMineSetAsTrue[4][4] = false;
boardWithMineSetAsTrue[0][5] = false;
boardWithMineSetAsTrue[1][5] = false;
boardWithMineSetAsTrue[2][5] = true;
boardWithMineSetAsTrue[3][5] = true;
boardWithMineSetAsTrue[4][5] = false;

list.MineSweeper(boardWithMineSetAsTrue);


かなあ・・。テストメソッドで二次元配列を作っちゃって,
その二次元配列が代入されてる変数「boardWithMineSetAsTrue」を渡す。
って感じになるのかなあ。


487 :アヌス : 2009/03/29 17:06
つまりボードをセットするのはテストメソッドでってこと?そうすると、テストメソッドから変数「boardWithMineSetAsTrue」を受け取った
public MineSweeper(boolean[][] boardWithMineSetAsTrue)メソッドではなにをすれば・・・


488 :アヌス : 2009/03/29 17:08
確かにかざっさんの言うとおり、変数「boardWithMineSetAsTrue」をテストメソッドから受け取るんだと思う。

で、public MineSweeper(boolean[][] boardWithMineSetAsTrue)ではゲームボードをセットアップしろって書いてある。
でもテストメソッドですでにセットアップしてしまってるような・・・

boardWithMineSetAsTrue = new boolean[5][6];
boardWithMineSetAsTrue[0][0] = true;
boardWithMineSetAsTrue[1][0] = false;
boardWithMineSetAsTrue[2][0] = false;
boardWithMineSetAsTrue[3][0] = false;
boardWithMineSetAsTrue[4][0] = true;
boardWithMineSetAsTrue[0][1] = true;
boardWithMineSetAsTrue[1][1] = false;
boardWithMineSetAsTrue[2][1] = false;
boardWithMineSetAsTrue[3][1] = false;
boardWithMineSetAsTrue[4][1] = false;
boardWithMineSetAsTrue[0][2] = true;
boardWithMineSetAsTrue[1][2] = true;
boardWithMineSetAsTrue[2][2] = true;
boardWithMineSetAsTrue[3][2] = false;
boardWithMineSetAsTrue[4][2] = false;
boardWithMineSetAsTrue[0][3] = false;
boardWithMineSetAsTrue[1][3] = false;
boardWithMineSetAsTrue[2][3] = true;
boardWithMineSetAsTrue[3][3] = false;
boardWithMineSetAsTrue[4][3] = false;
boardWithMineSetAsTrue[0][4] = false;
boardWithMineSetAsTrue[1][4] = false;
boardWithMineSetAsTrue[2][4] = false;
boardWithMineSetAsTrue[3][4] = true;
boardWithMineSetAsTrue[4][4] = false;
boardWithMineSetAsTrue[0][5] = false;
boardWithMineSetAsTrue[1][5] = false;
boardWithMineSetAsTrue[2][5] = true;
boardWithMineSetAsTrue[3][5] = true;
boardWithMineSetAsTrue[4][5] = false;

こういうふうに・・・


489 :大和 : 2009/03/29 17:08
>>487
そう。そうなるよね。
あ,これ意外とシンプルなソースなのかな。ちょっと待ってね。


490 :大和 : 2009/03/29 17:18
class MineSweeper {

  private boolean[][] boardWithMineSetAsTrue;

  public MineSweeper(boolean[][] boardWithMineSetAsTrue) {
    this.boardWithMineSetAsTrue = boardWithMineSetAsTrue;
  }

  public MineSweeper(int rows, int columns, int numberOfMinesToBePlaced)
    // んんー?このint型変数3つを使ってどんな処理をするんだろ・・。
  }

  public click(int row, int column) {
    // さてここもどんな処理をさせるか。
  }
}


適当に考えたので間違ってるかもしれません。あしからず^q^。
でも,大枠はたぶんこんな感じかなあと。


491 :大和 : 2009/03/29 17:20
>>488
だよねえ・・。
>490のコードだとたった1行だけなんだよね・・。
public MineSweeper(boolean[][] boardWithMineSetAsTrue) の処理するコード・・。


492 :大和 : 2009/03/29 17:20
あ,ちょっと夕飯買ってくるねー。
17:40までには帰りますね。


493 :アヌス : 2009/03/29 17:21
すいません・・this.boardWithMineSetAsTrue = boardWithMineSetAsTrue;これは一体どういう意味でしょうか?

clickメソッドはちょっと特別なので上の2つができたらやるです

2つ目のメソッドは、・・・int型のnumberOfMinesToBePlacedを与えられた配列に入れるわけで、でも配列はboolean型だからあわないよね・・・?


494 :大和 : 2009/03/29 17:54
>>493
this.board...のほうはprivateのほうを指して,
board...のほうは引数のほうを指してるんだよー。

メソッドの外の変数と,メソッドの中の変数が,
同じ変数名のときにthis.を使うんだよー。


495 :大和 : 2009/03/29 18:03
ってことは新しく「周りの爆弾数を把握する二次元配列」も作らないとだめなのかなあ。

int[][] 名前;
を作らないとだめなのかな。


496 :アヌス : 2009/03/29 18:09
しかし爆弾セットしたboolean型の配列と
爆弾の数をセットするint型の配列・・・

これだと・・・配列が2つできて・・・


497 :アヌス : 2009/03/29 18:11
それとも配列は使わないでやるのか・・・?テストメソッドから受け取るx軸y軸の値だけを使って・・・


498 :アヌス : 2009/03/29 21:09
ああああああああああああああああああああああああああああああああああああああああああああああああああああああ!!!!!!!
まさかのミステイク!!!!!


499 :ねこみみ : 2009/03/29 22:57
2個ともぱくれたのかよ。

ありえねぇ・・・

近所のスポーツバイクのミラーもぬすまれたよ。
げんちゃのノーマルミラーが置いてあったから
明らかにそいつらが犯人だよなぁ・・・

バイクにアラームつけておいたほうがいいよ。
なりっぱなしになればみんなに見られるから。

ユーロミラーかっこいいもんなぁ^






500 :アヌス : 2009/03/30 12:15
かざっさん。
テストメソッドで
@Test
public void testMineSweeper(){

boolean[][] boardWithMineSetAsTrue = new boolean[5][6];

boardWithMineSetAsTrue[0][0] = true;
boardWithMineSetAsTrue[1][0] = false;
boardWithMineSetAsTrue[2][0] = false;
boardWithMineSetAsTrue[3][0] = false;
boardWithMineSetAsTrue[4][0] = true;

というふうに爆弾いれてboardWithMineSetAsTrueをpublic MineSweeper(boolean[][] boardWithMineSetAsTrue)メソッドに渡して

private (何型かわからな) gameboard;

public MineSweeper(boolean[][] boardWithMineSetAsTrue){

gameboard = boardWithMineSetAsTrue;

}

public MineSweeper(int rows, int columns, int numberOfMinesToBePlaced){

gameboard[rows][columns] = numberOfMinesToBePlaced;

}

とやっても、boolean型とint型で型があわずに配列にいれられないからどうしたらいいんだと 聞いてみたら、
gameBoardはGameSqaureオブジェクトの配列だといわれたんだけど・・・
意味わかる?


501 :大和 : 2009/03/30 12:30
変数gameboardはint[][]型じゃないかな!


502 :大和 : 2009/03/30 12:40
>>499
せっかくユダっさんに取り付けてもらったのに。
まったくひどい人だよ。後進国民みたいなことしやがって。

バイクにアラームか!
それは考え付かなかったよ。検討してみます。
助言ありがとう。

ユーロミラーかっこいいっす!
また買い直したミラーもユーロミラーにしちゃいました。


503 :アヌス : 2009/03/30 13:45
やはりオブジェクトと配列の違いがよくわからん
オブジェクトの配列っていわれても

int[][] gameboardと定義してもbooleanのboardWithMineSetAsTrueはどうしたらいいのかがよくわからんし・・・


504 :アヌス : 2009/03/30 13:56
インスタンス変数ってprivateで定義した変数のことだよね?


505 :アヌス : 2009/03/30 14:36
gameboardはgamesqaureオブジェクトの配列

gamesqaureは以下の5つのインスタンス変数を持っている。

int row
int column
int mines
boolean flagged
boolean visible

つまり・・・gameboardとgamesqaureはどうしたら定義できるんでしょうか・・・


506 :アヌス : 2009/03/30 22:31
if文で何もしない場合ってなにすればいいんだっけ・・・breakじゃないよね・・・

if(){
何もしない ←ここ・・・
}else if(){
とある処理
}else{
とある処理
}


507 :ねこみみ : 2009/03/30 22:49
アラームつけてからいたずらされてないっす。
デモうるさいけどね。びびるし。できれば純正がいいけど
乾電池でうごくやつとかもあるからそういうのをリモコンで
制御できるやつでいいと思う!

JOGとかだと安く売ってるんだけどねぇ。中国製のも7000円
位であるな。駅とかにとめるとき限定で使うならぜんぜんいいかも。

ウインカーも連動できるからかっけぇよ


508 :大和 : 2009/03/31 02:55
>>503
だよね・・。
int[][]型配列とboolean[][]型配列で2個できちゃう。


>>504
インスタンス変数はね,static修飾子じゃない変数のことだよー。
○インスタンス変数 public int age;
○インスタンス変数 private String name;
×static変数or静的変数 public static String address;


>>505

gameboardはgamesqaureオブジェクトの配列 か!!

じゃあ
GameSquare[] gameboard;
こうだ!

GameSquare型の配列gameboardだ。
配列の器ひとつひとつにオブジェクトが格納されるんだ。
なるほどそういうことか。


>>506
何もしないなら何も記述しなくてもいいんじゃない!
return; ってのもあるけど,これだとメソッド自体が処理終了しちゃうから違うなこりゃ。


509 :大和 : 2009/03/31 02:57
>>507
バイク アラームで検索して調べてみるよ。
ありがとう。
安くて7000円か。それぐらいなら予算内だ。
盗まれるよりましだもんね。私の購入検討してみます。


510 :アヌス : 2009/03/31 08:11
つまり以下のように定義して↓

private GameSquare[][] gameboard;

といってもこうするとGameSquareに赤線がでるんですよ。
1、GameSquareのインターフェースを作るか
2、GameSquareのクラスを作るか
3、GameSquareのパラメーターを作るか
って選択肢がでる。GameSquareなんてインターフェースとクラスは課題にないからパラメーターになるのかな・・・
クリックしたらジェネリクスがでてきた・・・

public class MineSweeper implements MineSweeperModel{

private GameSquare[][] gameboard;

ジェネリクスあってるの・・・?でもこれ、テストメソッドからどうGameSquare受け取れば・・・

public MineSweeper(boolean[][] boardWithMineSetAsTrue){
このメソッドではboolean型でやっぱ↓こうやると型が違っうってエラーがでるし・・・
gameboard = boardWithMineSetAsTrue;

}

public MineSweeper(int rows, int columns, int numberOfMinesToBePlaced){

ここもint型であわなくて・・・
gameboard[rows][columns] = numberOfMinesToBePlaced;

}

gameboardをnew生成する・・・んだよね・・・?しかしどこで・・・
intとかStringじゃない型の配列ってどう扱えばいいんでしょう・・・
配列の一つ一つにオブジェクトを格納って、オブジェクトってなんだっけ・・・


511 :anus : 2009/03/31 10:40
ジェネリクス ja nai...
GameSquare class wo tsukuranaito ikenainoka...


512 :大和 : 2009/03/31 11:35
なるほど。Beanクラスを作るんだね。
Beanクラスとは:値を保存するためだけのクラス

public class GameSquare {
  private int row;
  private int column;
  private int mines;
  private boolean flagged;
  private boolean visible;

  public void setRow(int row) {
    this.row = row;
  }

  public int getRow() {
    return row;
  }
}

といった具合に,5つのインスタンス変数に対して,getterメソッドとsetterメソッドを作ってあげると。


513 :anus : 2009/03/31 11:59
kazasan

bakudan wo random ni iretai no desuga doushitara iideshou

public MineSweeper(int rows, int columns, int numberOfMinesToBePlaced){

kono method ha, numberOfMinesToBePlaced no kazudake bakudan wo gameboard ni random ni irerurashiinodesu

}

random tte douyarundeshou...


514 :大和 : 2009/03/31 13:52
Mathクラスのramdom()メソッドが使えそうかな?


// 0から99の値をランダムで表示するコード
public class ExNumber13 {
  public static void main(String[] args) {
    int randomNumber = (int) (Math.random() * 100);
    System.out.println(randomNumber);
  }
}

ramdom()メソッドとは:0.0以上1.0未満の値の中から,ランダムな値を算出します。


515 :大和 : 2009/03/31 12:15
ちょいと昼ごはん!
アリゾナは今は夜9時ぐらいかな。


516 :anus : 2009/03/31 12:17
haidesu

ima yoru 9ji desuyo-


517 :anus : 2009/03/31 13:55
demo fairetu ni randamu ni ireru wakede...

randamu ni suru atai ha doreni suru beki darou
x to y?


518 :大和 : 2009/03/31 14:32
爆弾をランダムにセットしたいわけだね。
座標xにランダムでどこか。座標yにランダムでどこか
で,座標x, yにランダムでどこかにセットされる,というわけか。

boardWithMineSetAsTrue[ランダム][ランダム] = true;
ってことかねえ。


519 :大和 : 2009/03/31 14:30
変数numberOfMinesToBePlaced に代入された値ぶんだけ,
爆弾をセットするというわけか。


520 :anus : 2009/03/31 14:38
sounanodesu!

zahyou wo random ni suruniha .....

tabun rows to columns ha tate to yoko wo teigi siteru to omou

moshi rows=8, columns=8 nara gameboard ha 8x8 no sikaku ni naru


521 :大和 : 2009/03/31 14:58
なるほど!
rowとcolumnはマインスイーパの図面の大きさを決める変数か!

int rows = 8;
int columns = 8;

int x = (int) (Math.random() * rows);
int y = (int) (Math.random() * columns);

boardWithMineSetAsTrue[x][y] = true;

適当に書いてみたけど,ランダムに爆弾セットしようとすると,
こんな感じかなあ・・?間違ってるかもわからん!


522 :アヌス : 2009/03/31 15:06
public MineSweeper(int rows, int columns, int numberOfMinesToBePlaced)メソッドでは、boardWithMineSetAsTrueは使わないで
privateで定義したGameSquare[][] gameboardを使うと思う

public MineSweeper(int rows, int columns, int numberOfMinesToBePlaced){

for(int i=0;iint x = (int) (Math.random() * rows);
int y = (int) (Math.random() * columns);

gameboard[x][y].GameSquare(x, y, true); ←x, y, trueをGameSquareクラスのGameSquareコンストラクタに渡す。
}

かな・・・



523 :アヌス : 2009/03/31 15:15
GameSquareに赤線がでた・・・

gameboard[x][y] = new GameSquare(x, y, true);にしたら なおったけど、

別のコンストラクタのpublic MineSweeper(boolean[][] boardWithMineSetAsTrue)メソッドで すでにnew で生成してるのに
なんでまた 生成しなきゃいけないんだろ・・・


524 :アヌス : 2009/03/31 15:20
MineSweeperクラスには2つの MineSweeperコンストラクタがあるんだ

 public MineSweeper(boolean[][] boardWithMineSetAsTrue)



public MineSweeper(int rows, int columns, int numberOfMinesToBePlaced)

で、今回こういう風にプログラムしたんだけど


public MineSweeper(boolean[][] boardWithMineSetAsTrue) {

gameboard = new GameSquare[5][6];

for (int i = 0; i < 5; i++) {
for (int j = 0; j < 6; j++) {
if (boardWithMineSetAsTrue[i][j] == true) {
gameboard[i][j] = new GameSquare(i, j, true);
} else {
gameboard[i][j] = new GameSquare(i, j, false);
}
}
}
}

public MineSweeper(int rows, int columns, int numberOfMinesToBePlaced) {

for(int i=0;iint x = (int) (Math.random() * rows);
int y = (int) (Math.random() * columns);

gameboard[x][y] = new GameSquare(x, y, true);
}
}


どっちのコンストラクタもGameSquareクラスにアクセスするんだ。
2つのコンストラクタでgameboard[x][y] = new GameSquare(x, y, true)を2度も生成してるけど・・・いいのかな・・・?


525 :大和 : 2009/03/31 22:34
new GameSquare(x, y, なんちゃら)の生成は,
2度しないで,1回だけで良いんじゃないかな!

ってあれ?なんかこんがらがってきちゃった。

public MineSweeper(boolean[][] boardWithMineSetAsTrue) {}
の boolean[][] boardWithMineSetAsTrue は,
どのマスに爆弾がセットされてるかを表す配列なんだっけ。

配列GameSquare[][]も,
どのマスに爆弾がセットされてるかを表す配列なんだっけ。

あれ?ってことは,
「どのマスに爆弾がセットされてるかを表す配列」が2個あるってことになるのかな・・?


526 :大和 : 2009/03/31 22:56
そうだ。話は変わりますが,

>gameboardはgamesqaureオブジェクトの配列
>gamesqaureは以下の5つのインスタンス変数を持っている。
>int row
>int column
>int mines
>boolean flagged
>boolean visible

↑だから,

ex)
GameSquare gs = new GameSquare(); // GameSquareオブジェクトをnewして,変数gsに代入しています。
gs.setRow(2); // x軸2マス目
gs.setColumn(3); // y軸3マス目
gs.setMines(0); // 周辺の爆弾数0個
gs.setFlagged(false); // 今旗を立てているか否か
gs.setVisible(false); // 今マスが開いているか否か

GameSquare[][] gamesquare = new GameSquare[rows][columns]; // 全マス数だけの配列を生成しておきます。
gamesquare[row][column] = gs; // GameSquare型変数gsを格納します。


↑これを全マス分繰り返す?

もしかしてGameSquare型配列のイメージはこんなイメージなのだろうか?
でも間違ってるかもしれません。


527 :アヌス : 2009/04/01 00:14
コンストラクタを2つ用意する理由は、なんか自分で自由に爆弾を配列に配置する

public MineSweeper(boolean[][] boardWithMineSetAsTrue) {}

と、ランダムに配置する場合の

public MineSweeper(int rows, int columns, int numberOfMinesToBePlaced) {

がいるみたいなのです

だからpublic MineSweeper(boolean[][] boardWithMineSetAsTrue) {}では、テストメソッドで自由にtrueと falseを使って配置。これを元に残りの全部のメソッドをテストする

public MineSweeper(int rows, int columns, int numberOfMinesToBePlaced) ではただランダムに配列に格納するためだけのコンストラクタで、
テストメソッドからは1度だけこれをコールすればいいみたいです


528 :アヌス : 2009/04/01 00:16
実は作らないといけないメソッド全部で12個あった。
11個はできたけど残りの一個がよくわからん

toggleってスイッチだよね・・・


529 :アヌス : 2009/04/01 00:19
実は他にスタッククラスってのも作らないといけなくて、

スタッククラスを呼ぶたびにGameSquareの中のインスタンス変数をアップデートしてGameSquare自体をスタックに乗せる。というめんどくさいことをしないといかんみたいです・・・

全部で7つかな。クラスは


530 :大和 : 2009/04/01 00:39
>>527
おお。
ユーザが爆弾セットする用と,プログラム側で爆弾セットする用で,
コンストラクタ2つ用意してたんだね。
ならnew GameSquare()を2つ記述しても大丈夫だね。
ユーザ用,ランダム用どっちか1つしか呼び出されないから!


>>528
toggle: 同じ操作をするたびに、二つの状態が交互に現れる機構。

むむ。なんかわかりにくい意味が辞書調べたら出てきた。
点滅電球を点灯させる。A)点灯する。B)消灯する。A)点灯する・・以後ABの繰り返し。
↑こういうことかな・・?


>>529
Stackクラスを使うんだー。何にどうやって使うんだろうね〜。
クラス7つもあるのか!!
こりゃ複雑だ。ひとつひとつやっていきましょ!


531 :大和 : 2009/04/01 00:40
よし寝る!


532 :アヌス : 2009/04/01 05:31
どうやら右クリックと左クリックをスイッチするためのメソッドらしい
いやしかし・・・


533 :ねこみみ : 2009/04/01 19:24
今日リアタイヤ変えた。

やっほーい


534 :アヌス : 2009/04/01 21:42
かざっさん!二次元配列の長さを求めるのってどうすればいいの!?

public MineSweeper(boolean[][] boardWithMineSetAsTrue)メソッドで、
テストメソッドから2次元配列boardWithMineSetAsTrueを受け取っても、x軸y軸の値がわかるようにしたいんだ。
テストメソッドでxyは定義したけど、↓こんな感じで
boardWithMineSetAsTrue[5][6]

でもpublic MineSweeper(boolean[][] boardWithMineSetAsTrue)ではその大きさが表示されないんだ

boardWithMineSetAsTrue[][].lengthじゃだめだよね?2次元だし・・・
xとyの値をそれぞれわかるようにするにはどうすればいいでしょう


535 :大和 : 2009/04/01 22:20
おつ!


536 :大和 : 2009/04/01 22:23
>>534
ちょっと美しくないかもだけど,

boolean[][] boardWithMineSetAsTrue = new boolean[5][6];
int xLength = boardWithMineSetAsTrue[0].length; // X軸の長さ,6が代入されます。
int yLength = boardWithMineSetAsTrue.length; // Y軸の長さ,5が代入されます。


こうだと出来るだろうか(’’?


537 :アヌス : 2009/04/01 22:27
boolean[5][6]だと
xが5でyが6じゃない・・・?


538 :アヌス : 2009/04/01 22:44
おお!確かに表示された!ありがたう!


539 :大和 : 2009/04/02 16:43
私もタイヤの溝減ってないか帰ったら調べてみよう。


540 :大和 : 2009/04/03 00:28
バイクカバー買おう!
チェーンロックが通せるタイプのものを買おう。


541 :ねこみみ : 2009/04/03 21:08
タイヤもカバーもヤフオクが安い。

俺サイズ1個大きいのかっちゃったんだよねぇ。100−125cc用。

まぁいいかヵ。また買うのめんどいし。


542 :大和 : 2009/04/03 22:10
なに!?
私は100-125cc用のカバーが欲しいんだ。

チェーン通す穴開いてるタイプのカバーなら,
差額分私が払って(100-125ccタイプのほうが高いもんね),
50cc用カバー買って交換したいぐらいだよ。


543 :大和 : 2009/04/04 02:24
プロ野球開幕しました。
巨人は広島にぼこられてました。

  +        ____    +
     +   /⌒  ⌒\ +
  キタ━━━//・\ ./・\\━━━!!!!
   +   /::::::⌒(__人__)⌒:::::\  +
       |  ┬   トェェェイ     | 
    +  \│   `ー'´     /    +
    _|\∧∧∧MMMM∧∧∧/|_
    >                  <
     /  ─ /  /_ ──┐ヽ|  |ヽ  ム ヒ | |
   Χ   ─ / / ̄ /   /  | ̄| ̄ 月 ヒ | |
  ノ   __ノ   _ノ   \   / | ノ \ ノ L_い o o


544 :大和 : 2009/04/03 22:12
いつみてもこのAAイラっとするなw


545 :大和 : 2009/04/04 02:26
カープ・・
http://up2.viploader.net/pic2d/src/viploader2d547859.jpg


546 :ねこみみ : 2009/04/04 07:40
JAVAはこっちに書くんだ

何も書き込めなくなる

http://dky.pecori.jp/mt/8810/index.html#3


547 :大和 : 2009/04/04 09:45
おおうすまねえ!
次からそっちに書くよ。


548 :大和 : 2009/04/04 09:47
今日テポドンが秋田上空を通過しますよ。


549 :大和 : 2009/04/04 10:14
テポドンの飛来速度だと3-4分で日本を通過する。

[1]1分以内に発射の煙硝反応を米軍の軍事衛星が捕捉
[2]瞬時に軍事衛星から防衛省に伝達
[3]瞬時に防衛省から政府官邸へ伝達
[4]1-2分で政府官邸から政府情報伝達システム[Em-Net]を用い,各地方自治体・報道機関へ伝達(この時点で既に日本上空通過ww)
[5]3-5分で地方自治体・報道機関から国民に伝達

国民が発射に気づくまでには最短でも「5分」かかるそうな。
つまり,
国民が気づいた頃には既に太平洋に着弾(3-4分で日本上空通過)してる頃なんだそうなww

つまり我々はテポドンのことを気にしてもしょうがない,
いつもどおり生活してろってことですね。


550 :アヌス : 2009/04/04 10:16
彼風呂中、携帯のメール見てたら電話かかってきて出ちゃった。名前が美江になってて はぁ〜?(怒)
でたら落ち着いた声の女。

私「もしもーし」
美江「もしもしー。あれ?○○の携帯よね?」
私「そうだけど何?今シャワーあびてますが。」
美江「あらーそう…またかけなおすわね。」
私「あの、おたく○○とどうゆう関係?」
美江「母です」
私「…」


551 :大和 : 2009/04/04 10:59
喧嘩ごしの女も悪いけど母親を名前で登録してる男も終わってるなあw


552 :大和 : 2009/04/04 13:07
まずい今日の夜は雨か
それまでにバイクカバー買ってこよう。


553 :アヌス : 2009/04/04 13:55
テポドンが俺の肛門に撃ち込まれた


554 :大和 : 2009/04/04 14:12
http://dky.pecori.jp/8810/su/src/up88100415.jpg">
フジテレビさん
なんすか上のアイコンはw


555 :ねこみみ : 2009/04/04 19:54
かざっさん
ちゃっとはできたかね


556 :大和 : 2009/04/05 00:04
すみませぬ。
いいサンプルは見つけたのですがまだ時間がなくてとっかかってないっすorz・・。


557 :大和 : 2009/04/05 00:04
とっかかったら2-3日で出来ると思うっすー。


558 :アヌス : 2009/04/05 12:33
かざっさんwwwウィニーっすかwwwww


559 :大和 : 2009/04/06 00:40
これはやばいよねw


560 :アヌス : 2009/04/07 04:42
        ヾ  /    < 仮面ライダー555が>
       ,. -ヤ'''カー、   /Y⌒Y⌒Y⌒Y⌒Yヾ
 ー―ァ  /r⌒|:::|⌒ヾ
   _ノ オ{(  |0|  )} オオオォォォォ!!!!!
     __,ヽ,ヾ,_|V|,_ノ、/ ,r-,,=
    ,゛==ゝ_ViV_ノ~i/ 〃 `ー―-、
    /  /⌒`//´⌒c/^^^ ))))))))))
 ,,―イ  {ー''"~{ {~゛`ー`/'`'~/ー--―'
))   ,./ゝ_/∧ゝ_ノ  ノ
 ー''"  |ロ  ロ    |
 人,_,人,_,人,_,人,_,
< >>555ゲットだ>


561 : : [ここ壊れてます]
[ここ壊れてます]


562 :大和 : 2009/04/08 02:53
550ですよ!!


563 :大和 : 2009/04/08 02:48
コミュニケーション力は大事ですね。


564 :大和 : 2009/04/08 02:56
ともさんともさん。

あなたはまだそんな「仕様書」を書いているんですか?〜ダメダメ「仕様書」の改善提案書

って本がお薦めです。


565 :大和 : 2009/04/08 02:50
いや,むしろ皆におすすめですね。
国語力を解説してる章は皆も参考になるかもです。


566 :大和 : 2009/04/08 02:50
こりゃ700までいかないですね。


567 :大和 : 2009/04/08 02:50
だがそれも良しかなまた人生。


568 :大和 : 2009/04/08 02:52
今アリゾナは正午0時です。
Arizona is twenteen o'clock now.

はいすみません。超適当に英文化しました。
英検すら持ってないのでこんなもんです。


569 :大和 : 2009/04/08 02:53
エンジニアなら英語も出来るようになっとかんといけんね。
勉強せんと。


570 :アヌス : 2009/04/08 12:42
英語なんてウンコですよ


571 :大和 : 2009/04/08 12:43
やばい。桜超散ってる。新春が終わる。


572 :アヌス : 2009/04/08 12:43
  / ̄ ̄ ̄ ̄//7/7          _  _            _
   ̄ ̄ ̄ ̄  ̄  ̄     / ̄\  / | / |    / ̄ ̄ ̄7  《 ̄》 / ̄/
 / ̄ ̄ ̄ ̄ ̄ ̄/    /  /\ \l_ノ l_ノ     ̄ ̄/ /  /  ̄ //  /
  ̄ ̄ ̄l  | ̄ ̄    /  /  \ \ r´ ̄ ̄`ヽ / /   / | ̄/  `7 ∧
      |  二二二二l |  /    \ \  ̄ ̄二l V く  / ノ /  人 /_/ |
 <\___| /┌ーーー┐  ̄      \ \   \___/\  ̄_/  /  / \_ノ
  `ーーー‐′  ̄ ̄ ̄|│           ̄          ̄     ̄
         /\_//
         `ーーー′


573 :大和 : 2009/04/08 12:43
>>570
出来る人が言うと説得力があるぜ。


574 :アヌス : 2009/04/08 12:43
                              糸売
                          ---------------
                          制作・著作 NHK


575 :アヌス : 2009/04/08 13:32
俺の英語なんて・・・ウンコですよ・・・


576 :大和 : 2009/04/08 21:38
意思疎通なんて伝わればいいんですよ。問題なし!


577 :大和 : 2009/04/08 21:38
3つの伏せられた紙コップA〜Cのうちどれか1つにコインが入っている。
どの紙コップにコインが入っているかを知っている友人が,
「どれにコインが入っているか当てたら1万円あげよう」
と言ったので、勘を頼りにAと答えた。
すると,友人はCの紙コップを持ち上げてCにはコインが入っていないことを示し,
今ならBに変更しても良いと言ってきた。

さて,答をBに変更すべきか,それともAのままにしておくべきか?



↓答えはこちら。

モンティ・ホール問題
http://realwave.blog70.fc2.com/blog-entry-63.html


578 :大和 : 2009/04/08 21:39
この答えを18世紀の人が既に解答してたなんてすごいねえ。

さて風呂!


579 :アヌス : 2009/04/08 21:47
俺は確立に縛られない男だぜ?


580 :ねこみみ : 2009/04/08 21:54
ちょっとづつサーバつくってるけど規制がきびしくてつくりにくい。


581 :大和 : 2009/04/09 01:18
そう切り返したか!


582 :大和 : 2009/04/09 01:22
こっちもチャットのサンプル見つけましたが,
まだコード眺め中です。
Jarファイルがステップ数60kもあるお・・。

寝る!


583 :大和 : 2009/04/09 15:53
しまった。
チェーンロックうちのホイールに通らない太さのもの買ってしまった・・。orz

なんという下調べちょんぼ!


584 :大和 : 2009/04/09 17:27
あ,良いこと思いついたぞ。


585 :ねこみみ : 2009/04/09 22:04
細くてながいのがいいよ。鉄柱とかにむすべるから。


586 :大和 : 2009/04/10 06:32
うむ!
次は細いの買うよ!


587 :アヌス : 2009/04/10 09:40
太くて長いのがいいんだよ!ヒィヒィいわしたれ!


588 :アヌス : 2009/04/10 09:41
>>583のちょんぼがちんぽに見えてしまいましたので・・・つい


589 :アヌス : 2009/04/11 05:07
 ___
/ || ̄ ̄|| ∧_∧
|.....||__|| (     )  どうしてこうなった・・・
| ̄ ̄\三⊂/ ̄ ̄ ̄/
|    | ( ./     /
 ___
/ || ̄ ̄|| ∧_∧
|.....||__|| ( ^ω^ )  どうしてこうなった!?
| ̄ ̄\三⊂/ ̄ ̄ ̄/
|    | ( ./     /

 ___ ♪ ∧__,∧.∩
/ || ̄ ̄|| r( ^ω^ )ノ  どうしてこうなった!
|.....||__|| └‐、   レ´`ヽ   どうしてこうなった!
| ̄ ̄\三  / ̄ ̄ ̄/ノ´` ♪
|    | ( ./     /

 ___        ♪  ∩∧__,∧
/ || ̄ ̄||         _ ヽ( ^ω^ )7  どうしてこうなった!
|.....||__||         /`ヽJ   ,‐┘   どうしてこうなった! 
| ̄ ̄\三  / ̄ ̄ ̄/  ´`ヽ、_  ノ    
|    | ( ./     /      `) ) ♪
                   ___
             ♪ ∩/ || ̄ ̄||♪ ∩∧__,∧
               _ ヽ|.....||__|| 7 ヽ( ^ω^ )7 どうしてこうなった!
               /`ヽJ   ,‐┘/`ヽJ   ,‐┘   どうしてこうなった! 
| ̄ ̄\三  / ̄ ̄ ̄/  ´`ヽ、_  ノ   ´`ヽ、_  ノ
|    | ( ./     /      `) ) ♪    `) ) ♪


590 :大和 : 2009/04/11 11:55
ワロスwww


591 :アヌス : 2009/04/11 16:40
かざっさん。JAVAの再帰わかる?


592 :大和 : 2009/04/11 20:25
おー再帰って概念なんだね。
forループとはまたちょっと違うんだね。

今はじめて知ったからわからないから調べてみよう。
覚えておいたほうがよさそうだ。


593 :アヌス : 2009/04/11 20:44
再帰で組み合わせを作ってるんだけど、

高校の数学でやったコンビネーションのC。

例)4C2 → 物が4個あってそこから2個取る組み合わせ

4×3 ÷ 2×1 = 6 通り

文字で表すと、A B C D と4つ文字があってそこから2つ取る組み合わせ → AB AC AD BC BD CD と 計算どおり6通りになる

public static int combinations(int n, int k){

return combinations(n-1, k-1) + combinations(n-1, k) ←再帰はこれでできるとか言うんだけど、意味がワカランのです。これを一体どう組み合わせの計算とあわせるのかが・・・

}


594 :大和 : 2009/04/11 22:25
引数はint nとint kかあ。
n個からk個抜き取る,ってことかな?

public static int combinations(int n, int k) {
  // ここに何か処理書けってことなのかなあ
  return combinations(n-1, k-1) + combinations(n-1, k);
}



595 :mmm : 2022/10/09(日) 02:55:43 ID:GpEp6gFk
こ、このスレは・・・!!!!


596 :mmm : 2022/10/09(日) 02:56:22 ID:GpEp6gFk
結構1000行ってないスレあるのですねぇ


597 :大和 : 2022/10/09(日) 11:32:50 ID:yH35D7mU
13年前wwwww
みさきっさんがアメリカの大学で課題大量すぎて地獄体験してた頃ですな・・!
なつかしいですのう


598 :大和 : 2022/10/09(日) 11:34:08 ID:yH35D7mU
うわー再起処理とか
いまなら即答できるのに,当時わからなくて強がった意見しとりますなw
これは恥ずかしいw ですがいい思い出ですなあ


599 :mmm : 2022/11/13(日) 16:07:11 ID:QPEhnDqI
こちらは…


600 :mmm : 2022/11/13(日) 16:07:22 ID:QPEhnDqI
600!!!


601 :大和 : 2022/11/13(日) 16:40:37 ID:JNDYFsm.
ふふ!


602 :mmm : 2022/12/30(金) 19:40:54 ID:5PeOfDG.
こちらのスレも1000までいかすべきか!?


603 :mmm : 2022/12/30(金) 21:04:40 ID:5PeOfDG.
いやー
今年スレが4つ?ほど1000いきましたなぁ


604 :mmm : 2022/12/30(金) 21:05:39 ID:5PeOfDG.
風呂入る前に軽く筋トレですな〜


605 :大和 : 2022/12/31(土) 00:04:52 ID:sKkuCcWQ
1000いきましたね!すばらしい!


606 :大和 : 2022/12/31(土) 00:05:43 ID:sKkuCcWQ
年末年始のスーパーや商業施設はにぎやかで楽しいですなあ〜


607 :大和 : 2022/12/31(土) 00:06:27 ID:sKkuCcWQ
株!!ともさんの専門領域!
ともさん最近隼人板に来ませんなあ。どうしているのやら・・!?


608 :横浜隼人さん : 2022/12/31(土) 00:07:35 ID:sKkuCcWQ
もう年金はあてにできませんね!
私は死ぬまで何かしらの仕事する覚悟で今後いきますわ!
髪は死んだ!年金は死んだ!


609 :大和 : 2022/12/31(土) 00:08:18 ID:sKkuCcWQ
ウィスキーマスター!


610 :大和 : 2022/12/31(土) 00:09:21 ID:sKkuCcWQ
明日は6時起きで朝食作らねば・・!
寝てから6時間は起きられないからそろそろ寝ねば・・!


611 :大和 : 2022/12/31(土) 00:10:16 ID:sKkuCcWQ
むむ このスレはなぜか名前欄が書き込むたびに空欄になってしまうのう
他は一度書き込めば名前欄の値がキープされるのに
明日みてみよう


612 :mmm : 2022/12/31(土) 00:25:44 ID:AqzCXr0g
https://www.youtube.com/watch?v=F3Yq-S9KNck

白鵬杯で現れた天才相撲少年


613 :mmm : 2022/12/31(土) 00:26:09 ID:AqzCXr0g
むむ
たしかに名前が空白になる!


614 :mmm : 2022/12/31(土) 00:55:29 ID:AqzCXr0g
このスレと動画規制されるまでスレは消してリセットするです!?
2023年新しいスレ!


615 :mmm : 2022/12/31(土) 00:56:44 ID:AqzCXr0g
あと・・・1日・・・で・・・2022年が・・・


616 :大和 : 2022/12/31(土) 06:52:13 ID:sKkuCcWQ
最後どうやって残ったかわからない・・!
すごい!


617 :大和 : 2022/12/31(土) 06:53:06 ID:sKkuCcWQ
それが一番手間ない対応方法ですな!
よしこれら名前がうまく動かない2スレはスレッドストップにしてしまおう!


618 :大和 : 2023/01/14(土) 14:28:50 ID:.q1Dq61E
書き込みが自動削除されるかテステス


619 :大和 : 2023/01/14(土) 14:30:12 ID:.q1Dq61E
よしよし (=゚ω゚)
さらに2日経過済みであることを検知しての自動削除をテステス


620 :大和 : 2023/01/14(土) 14:30:59 ID:.q1Dq61E

間違えたこうかな?


621 :大和 : 2023/01/14(土) 14:31:44 ID:.q1Dq61E
ヨシッ!



267 KB
新着レスの表示

掲示板に戻る 全部 次100 最新50
名前: E-mail (省略可) :

read.php ver2.4 2005/04/13