ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Javaの課題丸投げコミュの助けてください

  • mixiチェック
  • このエントリーをはてなブックマークに追加
はじめまして。

Javaのクラスをとって3週間くらになるんですけど、まったく授業についていけません。
宿題も締め切り越えてだしちゃってるくらいです・・

今回の宿題は「コイン投げ」なんですが
8回までコインを投げて、表が出たら"h"、裏が出たら"t"と入力してそれぞれhの数とtの数の合計とそれぞれが出る確率を出すプログラムを書けっていうものなんです

形としてたこんな感じ↓↓

For each coin toss entereither 'h' for heads ot 't' for tails.

First toss: h
Second toss: t
Third toss: t
Fourth toss: h
Fifth toss: t
Sixth toss: h
Seventh toss: t
Eight toss: t

Number of heads: 3
Number of tails: 5
Percent heads: 37.5
Percent tails: 62.5

と出るようにしたいんです。
しかも、先生からの条件で「IF」を使うなとのことです
IFを使えばなんとかできそうなものなんですけど、使わないとなると全然検討がつかなくて。
助けてください!!

実はこれ明日が締め切りだったりします・・汗。
でも、すっきりしたいので何かアイディアお願いします

コメント(9)

遠いところからはるばるお疲れ様です。
ifを使わないなら配列やswitchや例外を活用する手があります。
以下のような感じでどうでしょう?

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Test2 {
static final String[] NUMBERS = { "First", "Second", "Third", "Fourth",
"Fifth", "Sixth", "Seventh", "Eighth" };

public static void main(String[] args) throws Exception {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
System.out
.println("For each coin toss entereither 'h' for heads ot 't' for tails. ");
int heads = 0, tails = 0;
for (int i = 0; i < NUMBERS.length; ++i) {
System.out.print(NUMBERS[i] + " toss: ");
System.out.flush();
String c = in.readLine();
try {
switch (c.charAt(0)) {
case 'h':
++heads;
break;
case 't':
++tails;
break;

default:
throw new Exception();
}
} catch (Exception e) {
System.out.println("Enter 'h' or 't'!");
--i;
continue;
}
}
System.out.println("Number of heads: " + heads);
System.out.println("Number of tails: " + tails);
System.out.println("Percent heads: " + (double) heads
/ (double) NUMBERS.length * 100.0);
System.out.println("Percent tails: " + (double) tails
/ (double) NUMBERS.length * 100.0);
}
}
(デブネコ@0 さん)
> 先生からの条件で「IF」を使うなとのことです

if を使うなというのは不思議な指示ですね。(まあ、課題だからしょうがないか..)。

因みに、ヒントですが、

-- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< --
public class x {

public static void main(String[]args) {
char v;

v = 'h';
System.out.println ( v / 't' );

v = 't';
System.out.println ( v / 't' );
}
}
-- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< --

の実行結果がどうなるか考えてみましょう。そして、その出力される値を配列の添字として利用すれば...

# それとも 「?: 演算子」が問題なのかなぁ..
public class Hoge {
  static final double TRY_COUNT = 8;
  static final String[] NUMBERS = new String[]{
    "First",
    "Second",
    "Third",
    "Fourth",
    "Fifth",
    "Sixth",
    "Seventh",
    "Eight"
  };
  static final String[] RESULT = new String[]{"h", "t"};
  public static void main(String[] args) {
    System.out.println("For each coin toss entereither 'h' for heads ot 't' for tails.");
    int[] sum = new int[2];
    for (int i = 0; i < 8; i++){
      int result = toss();
      System.out.println(NUMBERS[i]+":"+RESULT[result]);
      sum[result]++;
    }
    System.out.println("count:"+TRY_COUNT);
    System.out.println("Number of heads: "+sum[0]);
    System.out.println("Number of tails:"+sum[1]);
    System.out.println("Percent heads:"+sum[0]/TRY_COUNT);
    System.out.println("Percent tails:"+sum[1]/TRY_COUNT);
  }
  public static int toss(){
    return (int)(Math.random() * 2);
  }
}
>鳥取ループさん
ありがとうございます!!
すごい実行したことが実行できてる!当たり前ですけど・・汗
このまま提出したい勢いですけど、いくつか自分の知らないのがあるのでちゃんと教科書読んで自分のコードでかいてみます♪
本当にありがとうございます!(人´∀`)

>ぴょんぴょんさん
授業でまだプリミティブタイプとStringぐらいしかやってなくてまだIFとかやってないんです。この前の授業では扱ったですけども。
配列の添字・・?演算子・・?
英語でなんていうんだろう(。-`ω-)ンー
がんばります!!
ヒントありがとうございます♪

>なかのさんさん
アイディアありがとうございます!


なんとなくですけど、本当になんとなくですけど、見えてきました!
なんだかプログラミングできる人ってすごいんだなぁってあらためて思っちゃいます(。・ω・)(。-ω-)ぅんぅん
実は、ラッキーなことについさっきクラスがキャンセルになって締切日が2日後に延びました☆今度はちゃんと締切日までに提出することができるかもしれません!
ご協力に本当に感謝します! (>ω<)
英語でプログラミングの勉強から始めるのは大変そうですねぇ。

配列 = array
添字 = index
演算子 = operator

だと思います。たぶん。笑
>しのぶさん
あ、それなら馴染みあります!w
日本語にするとやたら難しい雰囲気になるんですねぇ

プログラミングのクラスはちょっと興味があったから取ったんですけど、興味本位で取るクラスじゃないこと実感しました・・汗
あ、じゃあ僕もこっちで。笑

import javax.swing.JOptionPane;

public class JOptionPaneTest {

static final String[] NUMBERS = new String[] { "First", "Second", "Third",
"Fourth", "Fifth", "Sixth", "Seventh", "Eight" };

static final double TRY_COUNT = NUMBERS.length;

public static void main(String[] args) {
int result[] = new int[2];

for (int i = 0; i < TRY_COUNT; i++) {
String str = JOptionPane.showInputDialog(null, NUMBERS[i]
+ " coin toss enter "
+ "either 'h' for heads ot 't' for tails. ");

char v = str.charAt(0);

result[v / 't']++;
}

System.out.println("count:" + TRY_COUNT);
System.out.println("Number of heads: " + result[0]);
System.out.println("Number of tails:" + result[1]);
System.out.println("Percent heads:" + result[0] / TRY_COUNT);
System.out.println("Percent tails:" + result[1] / TRY_COUNT);

}
}

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Javaの課題丸投げ 更新情報

Javaの課題丸投げのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。