【C言語】第10章第2回:簡易計算機プログラム
C言語を使って、四則演算ができる簡易計算機を作成します。本記事では、基本的な入力処理から条件分岐、エラー処理までを学びます。
0. 記事の概要
この記事を読むメリット
- 入力処理の基礎理解:ユーザーからのデータ入力を処理する方法を学びます。
- 条件分岐の実践:選択肢に応じた異なる動作を実装できます。
- エラー処理の基本:プログラムの安全性を向上させるスキルを習得します。
この記事で学べること
- ユーザー入力処理の基本
- 四則演算の実装
- エラー処理の基礎
1. 簡易計算機の基本設計
1.1 計算機の機能
この計算機では、次の四則演算を実行できます。
- 加算 (+)
- 減算 (-)
- 乗算 (*)
- 除算 (/)
1.2 必要なプログラム構造
以下の要素を実装します。
- ユーザー入力(2つの数値と演算子)
- 条件分岐による演算処理
- エラー処理(0による除算の回避など)
2. コード例と詳細解説
2.1 基本コード例
#include <stdio.h>
int main() {
double num1, num2, result;
char operator;
printf("簡易計算機へようこそ!\n");
printf("例: 5 + 3\n");
printf("式を入力してください(数値 演算子 数値): ");
scanf("%lf %c %lf", &num1, &operator, &num2);
switch (operator) {
case '+':
result = num1 + num2;
printf("結果: %.2lf\n", result);
break;
case '-':
result = num1 - num2;
printf("結果: %.2lf\n", result);
break;
case '*':
result = num1 * num2;
printf("結果: %.2lf\n", result);
break;
case '/':
if (num2 != 0) {
result = num1 / num2;
printf("結果: %.2lf\n", result);
} else {
printf("エラー: 0で割ることはできません。\n");
}
break;
default:
printf("エラー: 無効な演算子です。\n");
break;
}
return 0;
}
動作解説
- ユーザー入力:`scanf`で数値と演算子を取得します。
- 条件分岐による計算:`switch`文を使用して演算子に応じた計算を実行します。
- エラー処理:0で割る操作を回避する条件を設定しています。
3. 練習問題
以下の課題に挑戦して、簡易計算機を拡張してみましょう。
- 累乗(^)を追加して、数値を任意の指数で計算できるようにしてください。
- 連続計算を可能にし、「q」で終了する機能を追加してください。
- 無効な入力(例:文字列)の処理を追加して、安全性を高めてください。
4. 練習問題の解答と解説
問1の解答例
#include <stdio.h>
#include <math.h>
int main() {
double num1, num2, result;
char operator;
printf("累乗機能付き簡易計算機へようこそ!\n");
printf("例: 2 ^ 3\n");
printf("式を入力してください(数値 演算子 数値): ");
scanf("%lf %c %lf", &num1, &operator, &num2);
switch (operator) {
case '+':
result = num1 + num2;
printf("結果: %.2lf\n", result);
break;
case '-':
result = num1 - num2;
printf("結果: %.2lf\n", result);
break;
case '*':
result = num1 * num2;
printf("結果: %.2lf\n", result);
break;
case '/':
if (num2 != 0) {
result = num1 / num2;
printf("結果: %.2lf\n", result);
} else {
printf("エラー: 0で割ることはできません。\n");
}
break;
case '^':
result = pow(num1, num2);
printf("結果: %.2lf\n", result);
break;
default:
printf("エラー: 無効な演算子です。\n");
break;
}
return 0;
}
このプログラムでは、累乗(`^`)機能を追加し、数学ライブラリの`pow`関数を使用しています。
5. まとめ
本記事では、簡易計算機の作成手順を解説しました。プログラムを拡張して、より高度な機能を追加してみましょう。