2016-05-29 9 views
1

私は初心者で、問題に近づく方法を考え出すことができません(質問が不明な場合はご容赦ください)。寿命を計算する範囲内の数字を調べる

長寿賃金率、勤続年数に基づいて計算される: <10=0 10 but <15 = 0.015 15 but <20 = 0.0225 20 but <25 = 0.325 >=25 = .0450

は私がサービスとの開始の年の指定範囲内の長寿の給与の合計金額を計算する必要がありますサービスの終了年。

たとえば、私が11年間のサービスから始まり、18年間のサービスで終了した場合、給料に「10 but <15」の料金を乗算して加算する必要があります。ケース、15-11=4)を入力し、給与に"15 but <20"のレートを掛け、その範囲の年数を掛けます(この場合は20-18=2)。

これはどのように構造化するのかよくわかりません。私はif/elseifステートメントの無謀な数を行うことができますが、私はより良い方法が必要であることを知っています。誰かが私を一般的な方向に向けることができたら(ある範囲内の数字を調べて価値を返す方法があるのでしょうか)、私は感謝します。

答えて

1

アルゴリズムについて言えば、まずそれを解くことから始めます(コンピュータではなく、ステップで実行してください)。

解決方法を明確にする必要がある回数だけ実行します。

例えば、11〜18年(包括的)シナリオのために、あなたが得るでしょう:

year 11; 0.015 
    year 12; 0.015 
    year 13; 0.015 
    year 14; 0.015 
    year 15; 0.0225 
    year 16; 0.0225 
    year 17; 0.0225 
    year 18; 0.0225 

合計長寿賃金は(* 0.015 4)+(* 0.0225 4)= 0.15

ですあなたの数字で細部まで細心の注意を払うようにしてください(20〜24年の範囲に投稿した図0.325はおそらく0.0325です)。

プログラミングを開始する前に、正しい答えがいくつかのテストケースのように見えることを非常に確信する必要があります。そうすれば、プログラムの結果が正しいことを確認できます。

コードを書くために、あなたが行くことができる二つの方法はおそらくあります

  1. は、ループでそれを書く:

    for ($x = 11; $x <= 18; $x++) { 
        (some if/then statements) 
    } 
    
  2. 各範囲の年の数を計算し、掛けます結果。あなたは、少なくとも最小値と最大値関数を使用する必要があります。

    $totalpay = 0; 
    $totalpay += 0.015 * (you figure out the number of years in 10 to 14 years range); 
    $totalpay += 0.0225 * (you figure out the number of years in 15 to 19 years range); 
    etc 
    

これは最初の年のコンピュータのプログラミング演習のように見えます。あなたに実用的なソリューションを提供するのではなく、自分で書く方法を説明することを好みます(エクササイズの利点を得るため)。

+1

ありがとうございます!はい、それは最初の1年間のプログラミング演習のように見えますが、私は学校ではなく、自分で何か役に立つものを見つけようとしています。 – whiterabbit

関連する問題