トラック
/
Elixir
Elixir
/
演習
/
フリーランスの料金
フリーランスの料金

フリーランスの料金

学習演習

はじめに

整数

Elixirには、整数と浮動小数点数の2種類の数値があります。

整数は、小数部分のない数です。

integer = 3
# => 3

浮動小数点数

浮動小数点数は、小数点以下の桁が1つ以上ある数です。64ビット倍精度浮動小数点形式を使います。

float = 3.45
# => 3.45

数値の扱い

IntegerモジュールとFloatモジュールには、これらの型を扱うための便利な関数が用意されています。基本的な算術演算子は、Kernelモジュールで定義されています。

変換

整数と浮動小数点数は、1つの計算式の中で混ぜて使えます。式の中で浮動小数点数を使うと、結果も必ず浮動小数点数になります。

2 * 3
# => 6

2 * 3.0
# => 6.0

ただし、割り算では、整数だけを使っても結果は必ず浮動小数点数になります。

6 / 2
# => 3.0

浮動小数点数を整数に変換するには、trunc/1で小数部分を切り捨てます。

説明

この演習では、フリーランサーがプロジェクトマネージャーとやり取りできるよう、コードを書きます。日額と月額の料金をすばやく計算するためのいくつかのユーティリティを用意するのが、ここでの課題です。割引を指定して適用することもできます。

まず、フリーランサーとプロジェクトマネージャーの間で、いくつかのルールを決めておきます。

  • 日額は時給の8倍です。
  • 1か月は請求可能な22日とします。

フリーランサーは、日額に割引を適用することがあります(たとえば、最も忠実な顧客や非営利の顧客向けです)。

割引は、パーセンテージを表す小数として扱います。たとえば25.0(25%)です。

1. 時給から日額を計算する

daily_rateという関数を実装しましょう。この関数は、時給を入力として受け取り、日額を計算します。契約では、1日は請求可能な8時間と定められています。

FreelancerRates.daily_rate(60)
# => 480.0

返される日額は小数にします。

2. 割引後の価格を計算する

割引後の価格を計算するapply_discount関数を実装しましょう。

FreelancerRates.apply_discount(150, 10)
# => 135.0

返される値は常に小数とし、一切丸めないようにします。

3. 時給と割引から月額を計算する

割引後の月額を計算するmonthly_rate関数を実装しましょう。時給と、パーセントで表した割引の2つを入力として受け取ります。

FreelancerRates.monthly_rate(77, 10.5)
# => 12130

返される月額は、最も近い整数に切り上げます(天井をとります)。

4. 予算、時給、割引から、まるまる働ける日数を計算する

予算、時給、割引を受け取り、それで何日分まるまる働けるかを計算するdays_in_budget関数を実装しましょう。

FreelancerRates.days_in_budget(20000, 80, 11.0)
# => 35.1

返される日数は、小数点以下1桁に切り捨てます(床をとります)。

GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
Elixir Exercism

フリーランスの料金を始める準備はできましたか?

Exercismに登録すれば、58個のコンセプト168個の演習、そして本物の人間によるメンタリングとともに、Elixirを学んでマスターできます。すべて無料です。