C言語のマクロ関数(#define)を使って営業担当者の給与を計算するプログラム
問題
あるノートパソコン製造会社では、営業担当者に対して以下のような月次報酬ポリシーを設けています。
- 最低基本給:3,000.00
- パソコン1台販売ごとのボーナス:200.00
- 月間売上総額に対するコミッション:5%
ノートパソコンの価格は常に変動するため、毎月月初にその月の販売価格が固定されることになっています。
解決方法
ボーナスおよびコミッションを求めるためのロジックは以下の通りです。
bonus = BONUS_RATE * quantity ;
commission = COMMISSION * quantity * price ;
総支給額(グロス給与)は、次の式で計算できます。
総支給額 = 基本給 + (販売台数 × ボーナス単価)
+ (販売台数 × 販売価格) × コミッション率
サンプルコード
以下は、#defineによるマクロ定義を使用して営業担当者の給与を計算するCプログラムです。
#define BASIC_SALARY 3000.00
#define BONUS_RATE 200.00
#define COMMISSION 0.05
main(){
int quantity ;
float gross_salary, price ;
float bonus, commission ;
printf("number of items sold and their price\n") ;
scanf("%d %f", &quantity, &price) ;
bonus = BONUS_RATE * quantity ;
commission = COMMISSION * quantity * price ;
gross_salary = BASIC_SALARY + bonus + commission ;
printf("\n");
printf("Bonus = %6.2f\n", bonus) ;
printf("Commission = %6.2f\n", commission) ;
printf("Gross salary = %6.2f\n", gross_salary) ;
}
実行結果
このプログラムを実行すると、次のような出力が得られます。
Number of items sold and their price
20 150000
Bonus = 4000.00
Commission = 150000.00
Gross salary = 157000.00
この例では、販売台数が20台、販売価格が150,000であるため、ボーナスは「20 × 200 = 4,000」、コミッションは「0.05 × 20 × 150,000 = 150,000」となり、総支給額は「3,000 + 4,000 + 150,000 = 157,000」と計算されます。
#defineは、定数に分かりやすい名前を付けるためのプリプロセッサディレクティブです。コンパイルの前にマクロ名が定義値へと置き換えられるため、基本給やボーナス率などの報酬条件が変更になった場合でも、定義部分を修正するだけで対応でき、プログラムの可読性とメンテナンス性が大きく向上します。
-
グラフのエッジカバー(辺被覆)を求めるC++プログラムの解説
グラフの頂点数 n が与えられたとき、そのグラフのエッジカバー(辺被覆)を計算するのが本記事のテーマです。エッジカバーとは、グラフのすべての頂点を覆うために必要な最小の辺の数を見つける問題を指します。 エッジカバーとは 例として、頂点数 n = 5 のグラフを考えてみましょう。グラフは次のようになります。 このグラフのエッジカバーは 3 です。つまり、3本の辺を選ぶことで、5つの頂点すべてを覆うことができます。 次に、頂点数 n = 8 の場合を見てみましょう。 この場合のエッジカバーは 4 になります。 入出力例 入力: n = 5 出力: 3 入力: n = 8 出力: 4 計算の
-
Pythonで正四面体の表面積を計算するプログラム(√3×a²の公式)
本記事では、正四面体の表面積を求める問題の解き方とそのアプローチについて詳しく解説します。 問題文 正四面体の一辺の長さが与えられたとき、その正四面体の表面積を求める必要があります。 正四面体とは 正四面体(Tetrahedron)とは、三角形を底面としたピラミッドのような形状の立体図形です。4つの三角形の面(側面に3つ、底面に1つ)と、4つの頂点(角)を持つ立体オブジェクトです。 計算式 一辺の長さを a とすると、正四面体の表面積は次の公式で求められます。 表面積 = √3 × a² この公式をもとに、以下のように面積を計算する関数を定義します。 サンプルコード import math