■掲示板に戻る■ 全部 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使えるな


267 KB
続きを読む

掲示板に戻る 全部 次100 最新50
名前: E-mail (省略可) :

read.php ver2.4 2005/04/13