ログインしてさらに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を使えばなんとかできそうなものなんですけど、使わないとなると全然検討がつかなくて。
助けてください!!

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

コメント(28)

IF文使ってできるなら、switch文使えばOK?
IF文使ってはいけないんです。
なので、switch文も駄目なんです。
わざわざすみません。
JOptionPaneを使えばできると先生に言われたんですが、どうしたらよいのかさっぱりです><
どうでもいいけどプログラムはcuiなの?GUIなの?
JOptionPaneってGUIのコンポーネントだよ?
いわゆるメッセージボックスとかYES/NO/RETRYとかの
入力の機能あるやつ。
>やけねこさん
まだ始めたばっかりで良く分からないのですが、多分GUIだと思います。
メッセージボックスが出てきて数字とか、文章が入力されるものです。
上のような感じで出てくるんですが・・・
ダイアログびボックスはどのプログラム言語でも同じような感じだけど、選んだ結果が定数(整数型)で帰ってくるんだよねぇ。
javaのGUI詳しくないから具体的にはかけないけど
If(JOptionPane(引数たち) == 返り値の定数){
  処理;
}
って具合にif使うと思うんだけどなぁ。
さらに返り値を配列の要素番号にすればif使わずに集計はできるね。


ちなみにこの問題を先生が出した意図がよくわからんが
HashMapで、t=〜、h=〜を集計して、その数でカウントしちゃだめですかね?
やり方がややこしくなるだけな気もしますが・・・。
「IF」を使うな....
ということは,講義の内容を踏まえて作成しろという意図があると思います.

該当する講義では何を習ったんですか?
意表を付いてfor文を使ってみるとか(笑)

int i = 2;

for(;i==2;){
処理
break;
}
>おちくん
そうですねぇ
そうじゃないとifを使うなの意味がわかりませんw
>さぼてんDXさん
JFrameもSwingもだいぶ先の章で習うようになってました。
一応教科書は読んでみたのですが、よく理解できません・・・
でもJOptionPaneの使い方がなんとなく分かった気がします。
どうもありがとうございました。

>やけねこさん
そうなんです、いつもは授業に沿った宿題なんですが、突然出された宿題で、びっくりしています。
返り値の定数を使ってやってみます。
ありがとうごぜいました。
>tmrさん
三項演算子って何ですか?
すみません、本当に始めたばっかりで全く分からないんです。


>のぶさん
t、とhを集計する方法だとJOptionPaneを使わないことになると思うんですが・・
それとも、JOptionPaneで集計する方法を私が知らないだけかもしれませんが。
本当にすみません。

>おちくんさん
その日の授業はJOptionPaneの説明が主でした。
なので、JOptionPaneを使うって事しか分かりません。

>rayさん
forを使ったやり方はまだ習ってないので分からないんです。
すみません。
おそらく同じ問題が
Javaの課題丸投げコミュであったので。
http://mixi.jp/view_bbs.pl?id=10521955&comment_count=5&comm_id=1017129

ここの#2
ぴょんぴょんさんのコメントがヒントになると思います。

そちらではGUIには触れられていませんが
入力部分を含めエラー処理、入力チェックなど無しで
30行ぐらいで出来ますね。
(他の方々のヒントを参考にしたのですが、、、笑)
わかりました.
まず,JOptionPaneに裏と表のボタンを用意します.
で,それぞれのボタンを押したら,内部で表と裏の回数をカウントさせるint型変数を1増加させます.
8回入力を確認したら,それらの変数を使ってパーセンテージを計算し,例にあるような出力をすればOK.

プログラムは自分で作ってください.
習っている範囲でできるはずです.
コメントを下さった皆様本当にありがとうございましたm(__)m
皆さん本当に素晴らしいですね。
授業を受ければどうにかなると思っていた自分が何て浅はかだったか思い知らされました。
ですが,今まで理解できないでいた事が何となくなんですが,分かった気がしました。
本当に感謝致します。
>しのぶさん
(Javaの課題丸投げ)コミュ全く同じ問題です。珍しく日本人が2人いるんです^^
これを投稿した人は同じクラスの人なんです。
一人で2つのコミュに投稿するのはどうかと思い二人で別々のコミュに投稿させてもらいました。

( v / 't' )を使って考えて見ます。
(Javaの課題丸投げ)コミュの鳥取ループさんのプログラミングは実行できるのですが,GUI使ってないので,それをどうにか(v/'t')で処理すればできそうな気がしてきました。


>みわさん
色んなサイトがあるんですね。
インターネットで検索したら膨大な量のサイトが出てきてどれを見たらいいのかいっつも迷ってしまうんです。
2個目のサイトはすごく分かりやすいですね。
授業ではあまり理解できてなかった言葉が分かりました。
でも初期値を0で行うというのは全然思いつきませんでした。
さっそく試してみたいと思います。
ありがとうございました。


>おちくんさん
やっぱり,JOptionPaneの中でカウントさせないといけないんですね。
試してみたんですけど,なかなかうまくいかなくて・・・
でも途中までは合ってるみたいなので,もう少し書き直してみます。
GUIでhかtを入力させると仮定した場合

String str = JOptionPane.showInputDialog(null, " coin toss enter either 'h' for heads ot 't' for tails. ");

char v = str.charAt(0);
result[v / 't']++;

これで一回分数えられるでしょう。
(ほぼ答えになっちゃいますが、
明日までに調べて出来る課題とは思えないので、、、)
後はfor文で何とか。

JOptionPaneのなかでカウントさせるとなると
2つのボタンを用意してって結構難しいプログラムを書かないといけないと思うのですが。
イベント処理とか、継承とか。
授業でそういうのやりました?
if文勉強して無い段階ではちょっと考えにくいな〜と、思ってみたり、、、
追記
事前に配列は準備してください。

int[] result = new int[2];
すみません.JOptionPaneの性質を勘違いしてました.
内部で...てのはちょっと無理がありますね.

やり方としては,8回 まわるfor文の中で
JOptionPane.showOptionDialogを呼び出して,
その戻り値が,ボタンによって0または1になると考えたとき,
その戻り値を足していけば,最終的にh またはtの数がわかりますね.

入力後とに出力で出力で h とか tとかを出したい場合は,
str[]={"h","t"}
とか宣言しておいて,
戻り値が 0だったら hを出力,1だったらtが出力できると思います.

First, Second とかも配列に格納しておいて,
count[]={"First","Second", ....}
forのカウント回数で呼び出せば,お望みの出力がでると....

これなら,ifいらないですよね.
int codeH = 'h';
int codeT = 't';

int flagH = (codeH&4)/4;
int flagT = (codeT&4)/4;

System.out.println("flagH = "+flagH+" : flagT = "+flagT);

というのを考えてみましたが、課題丸投げコミュのぴょんぴょんさんの回答が美しいですね。if文使ってはいけないというのはなかなか面白い制限でしたね。
>しのぶさん
イベント処理,継承,どちらもまだ習ってないです。
実はIF文もJOptionPane習った時少し教科書の説明をしてくれただけなので,実はあまり分かってません・・・


>tmrさん
三項演算子の説明ありがとうございます。
少しずつですが使えるようになればと思います。


>おちくんさん
やっぱりJOptionPaneは内部で計算できないんですか?
わざわざ追記のコメントありがとうございます。


>rayさん
私も早く難しい問題を解くのが楽しくなりたいです。
今はまだ,宿題の度に焦ってばっかりです・・・



コメントを下さった皆様本当にお世話になりました。
おかげ様で今日の授業までになんとか提出する事ができました。
本当にありがとうございました。

ログインすると、残り8件のコメントが見れるよ

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

Java質問&情報提供サイト 更新情報

Java質問&情報提供サイトのメンバーはこんなコミュニティにも参加しています

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