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

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

Javaの課題丸投げコミュのif-else文の宿題なんですが・・・

  • mixiチェック
  • このエントリーをはてなブックマークに追加
はじめまして。
学校の宿題で、どうしてもわからない問題があるのでどなたかに力を貸していただけたらと思っています。

2つの会社(JnJ, Intel)は次のようarrayをもっている。
double[ ] jnj = {60, 15, 10, 1};
double[ ] intel = {25, 40, 45, 2};
( * [0] = initial stock price
* [1] = P/E ratio,
* [2] = earnings growth forcast
* [3] = beta value)

FedfundsというMethodを作成し、
もしbeta value = 2なら
New stock price = original stock price - (original stock price * ((change in the fed funds * 0.20)/100))
という計算をし、
もしbeta value = 1なら
New stock price = original stock price - (original stock price * ((change in the fed funds * 0.10)/100))
という計算をしなさい。

出力とプログラムのサンプルです↓
http://spot.colorado.edu/~kaplan/econ4838/Unit5/Unit5.html

よろしくおねがいします。

コメント(5)

冒頭部分はこんな感じかな?と思うのですが、定かではありません・・・


import java.text.*; // For formatting numbers
import javax.swing.*;
public class Stocks {

double[]jnj = {60, 15, 10, 1};
double[]intel = {25, 40, 45, 2};
double price =0;

//Method Fedfunds
public void fedfunds(double x1){

if (jnj[3]==2){
price = jnj[0]-(jnj[0]*((x1*0.20)/100));
}else{
price = jnj[0]-(jnj[0]*((x1*0.10)/100));
}
}
//Method GDPgrowth
public void GDPgrowth (double x2){

if(jnj[3]==1){
price = jnj[0] + (jnj[0]*(x2*0.0));
}else{
price = jnj[0] + (jnj[0]*(x2*0.03));
}

}
/*
Here is the main part of the progam
methods are already declared above
*/
クラスの設計がさっぱり想像できません。最初に問題を読んだときにはオブジェクト指向っぽくないと感じて全部クラスメソッドにしてしまうイメージを持ちました。

だけど普通はたとえばCompanyクラスがarrayフィールドとFedfundsを持ち、jnj,intelはそのインスタンスになるんじゃないかと思います。それにしてはフィールドが配列になっているのがダサダサで、New stock priceをどんな持ち方をするのか不明ですけど。まぁ[4]がNew stock priceになるのでしょうね。

クラスの設計を提供してください。そうじゃないと全く的はずれな回答になるように思います。
それから、それぞれの定義をきちっと出してください。出力例を見て、小町算すればわかるかもしれないけど、それは筋が違います。仕様を出してもらってそれに対してプログラムするのが大事です。

New stock price:これは以下の2つが定義されればわかります。
original stock price:? initial stock priceのことですか?
change in the fed funds:?

original stock priceもchange in the fed fundsも与えられた要素、'initial stock price', 'P/E ratio,', "earnings growth forcast', 'beta value'で表現できるはずです。それがないとプログラム組みようがありません。それさえわかれば2で聞いたことは実装方法の違いということになります。
<前提>問題文しか読んでません。
class Stock {
private double initialStockPrice;
private double peRatio;
private double earningGrowthForcast;
private double betaValue;

public Stock(double[] initialDatas) {
initialStockPrice = initialDatas[0];
peRatio = initialDatas[1];
earningsGrowthForcast = initialDatas[2];
betaValue = initialDatas[3];
}

public double fedFunds(double changeInTheFedFund) {
double ratio;
if (betaValue == 1.0) {
ratio = 0.2;
} else if (betaValue = 2.0) {
ratio = 0.1;
} else {
ratio = 0.0;
}
return initialStockPrice - (initialStockPrice * ((changeInTheFedFund * ratio) / 100.00));
}
}
<問題点>
既にTDaさんがご指摘の部分以外で、問題文自体に
1)お金の問題にdoubleを使用している
2)double[]の初期化を整数で行っている
3)method fedfundsのbetaValueが1.0か2.0以外の場合が未定義
という問題があります。
また、複数形は配列に使用するというのが一般的な命名規約です。
by 岩清水
書いてみたので一応コードをさらしておきます。ただし全くJavaっぽくないコードです。出題がああいう感じだとこんなコードになっても、文句いえないかなーと敢えて書いたようなコード。


public class Hoge {
// フィールド
/** * [0] = initial stock price
* [1] = P/E ratio,
* [2] = earnings growth forcast
* [3] = beta value */
static double[] jnj = {60, 15, 10, 1};
static double[] intel = {25, 40, 45, 2};

public static void main(String[] args) {
System.out.println("Intel's original Stock Price \\" + Fedfunds(intel));
System.out.println("JnJ's original Stock Price \\" + Fedfunds(jnj));

}

public static double Fedfunds(double[] array) {
// 仕様不明に付き算出方法は適当
if (array[3] == 2) {
return array[0]-(array[0]*((array[1]*0.20)/100));
} else if (array[3] == 1){
return array[0]-(array[0]*((array[1]*0.10)/100));
} else {
// とりあえず0を返す
return 0.0;
}
}
}

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

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

Javaの課題丸投げ 更新情報

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

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