はじめに
この実験では、C プログラミングを使用して台形の面積を計算する方法を学びます。この実験では、台形の 2 つの平行な辺の長さと高さを読み込み、次に以下の公式を使用して面積を計算する手順を扱います。面積 = 0.5 × (a+b) × h。プログラムはユーザーに必要な値を入力するように求め、その後、台形の面積を計算して表示します。
2 つの平行辺と高さを読み込む
このステップでは、C プログラミングで台形の面積を計算する準備として、台形の 2 つの平行辺の長さと高さを読み込む方法を学びます。
まず、台形の面積計算のための新しい C ファイルを作成しましょう。
cd ~/project
nano trapezoid_area.c
次に、平行辺の長さと高さを読み込むための以下のコードを追加します。
#include <stdio.h>
int main() {
float side1, side2, height;
// 1 つ目の平行辺の長さを入力するよう促す
printf("1 つ目の平行辺の長さを入力してください:");
scanf("%f", &side1);
// 2 つ目の平行辺の長さを入力するよう促す
printf("2 つ目の平行辺の長さを入力してください:");
scanf("%f", &side2);
// 高さを入力するよう促す
printf("台形の高さを入力してください:");
scanf("%f", &height);
// 入力値を確認するために表示する
printf("1 つ目の辺:%.2f\n", side1);
printf("2 つ目の辺:%.2f\n", side2);
printf("高さ:%.2f\n", height);
return 0;
}
プログラムをコンパイルして実行します。
gcc trapezoid_area.c -o trapezoid_area
./trapezoid_area
実行例:
1つ目の平行辺の長さを入力してください: 5
2つ目の平行辺の長さを入力してください: 7
台形の高さを入力してください: 3
1つ目の辺: 5.00
2つ目の辺: 7.00
高さ: 3.00
説明
- 辺の長さや高さは、小数を含むため
floatを使用しています。 printf()を使用して、ユーザーに入力を促しています。scanf()を使用して、ユーザーが入力した浮動小数点数を取得しています。- 入力値を表示することで、正しく取得できたことを確認しています。
面積 = 0.5*(a+b)*h を計算する
このステップでは、公式:面積 = 0.5 × (a+b) × h を使って台形の面積を計算する C プログラムを修正します。
既存のファイルを開いてコードを更新します。
cd ~/project
nano trapezoid_area.c
以前のコードを以下の実装に置き換えます。
#include <stdio.h>
int main() {
float side1, side2, height, area;
// 1 つ目の平行辺の長さを入力するよう促す
printf("1 つ目の平行辺の長さを入力してください:");
scanf("%f", &side1);
// 2 つ目の平行辺の長さを入力するよう促す
printf("2 つ目の平行辺の長さを入力してください:");
scanf("%f", &side2);
// 高さを入力するよう促す
printf("台形の高さを入力してください:");
scanf("%f", &height);
// 台形面積の公式を使って面積を計算する
area = 0.5 * (side1 + side2) * height;
// 計算された面積を表示する
printf("台形の面積:%.2f\n", area);
return 0;
}
プログラムをコンパイルして実行します。
gcc trapezoid_area.c -o trapezoid_area
./trapezoid_area
実行例:
1つ目の平行辺の長さを入力してください: 5
2つ目の平行辺の長さを入力してください: 7
台形の高さを入力してください: 3
台形の面積: 18.00
説明
- 計算された面積を格納するための新しい変数
areaを追加しました。 - 式
0.5 * (side1 + side2) * heightは台形の面積を計算します。 printf()は小数点以下 2 桁で計算された面積を表示します。- この計算は標準的な台形面積の公式:A = 0.5(a+b)h を使用しています。
面積の表示
このステップでは、ユーザーエクスペリエンスを向上させるために、書式設定された出力とエラー処理を追加して、台形面積計算プログラムを強化します。
既存のファイルを開いてコードを更新します。
cd ~/project
nano trapezoid_area.c
以前のコードを以下の実装に置き換えます。
#include <stdio.h>
int main() {
float side1, side2, height, area;
// 入力検証
printf("台形面積計算機\n");
printf("-------------------------\n");
// 1 つ目の平行辺の長さを入力するよう促す
printf("1 つ目の平行辺の長さを入力してください:");
if (scanf("%f", &side1) != 1 || side1 <= 0) {
printf("エラー: 1 つ目の辺の入力値が無効です。\n");
return 1;
}
// 2 つ目の平行辺の長さを入力するよう促す
printf("2 つ目の平行辺の長さを入力してください:");
if (scanf("%f", &side2) != 1 || side2 <= 0) {
printf("エラー: 2 つ目の辺の入力値が無効です。\n");
return 1;
}
// 高さを入力するよう促す
printf("台形の高さを入力してください:");
if (scanf("%f", &height) != 1 || height <= 0) {
printf("エラー: 高さの入力値が無効です。\n");
return 1;
}
// 台形面積の公式を使って面積を計算する
area = 0.5 * (side1 + side2) * height;
// 結果の書式設定された出力
printf("\n台形計算結果:\n");
printf("-----------------------------\n");
printf("1 つ目の辺: %.2f\n", side1);
printf("2 つ目の辺:%.2f\n", side2);
printf("高さ: %.2f\n", height);
printf("面積: %.2f 平方単位\n", area);
return 0;
}
プログラムをコンパイルして実行します。
gcc trapezoid_area.c -o trapezoid_area
./trapezoid_area
実行例:
台形面積計算機
-------------------------
1つ目の平行辺の長さを入力してください: 5
2つ目の平行辺の長さを入力してください: 7
台形の高さを入力してください: 3
台形計算結果:
-----------------------------
1つ目の辺: 5.00
2つ目の辺: 7.00
高さ: 3.00
面積: 18.00 平方単位
説明
- 無効な入力を防ぐための入力検証を追加しました。
- 見出しと明確なラベルで出力の書式設定を改善しました。
- 不正な入力タイプに対するエラー処理を追加しました。
- すべての入力パラメータと計算された面積を含む説明的な出力を含めました。
- 浮動小数点数を小数点以下 2 桁で表示するために
%.2fを使用しました。
まとめ
この実験では、最初に printf() と scanf() 関数を使って台形の 2 つの平行辺の長さと高さを読み取る方法を学びました。次に、公式:面積 = 0.5 × (a+b) × h (ここで、a と b は平行辺、h は高さ) を使って台形の面積を計算しました。最後に、計算された面積をコンソールに表示しました。



