[BASICのはじめ方] Part20: 簡易電卓プログラムの作成

BASIC

これまでに学んだ知識を使って、簡単な計算ができる電卓を作ってみましょう!

はじめに 💡

このプロジェクトでは、ユーザーが入力した2つの数値に対して、足し算、引き算、掛け算、割り算のいずれかを行うシンプルな電卓プログラムを作成します。 これまでに学んだ INPUT, PRINT, IF...THENSELECT CASE などの基本的な命令を組み合わせて作ることができます。 完成すれば、自分で作ったプログラムが実際に計算してくれる達成感を味わえますよ 🎉

電卓の基本的な仕組み 🤔

簡易電卓の動作は、次のステップで考えられます。

  1. プログラムが開始したら、ユーザーに1つ目の数値を入力してもらう。
  2. 次に、ユーザーに2つ目の数値を入力してもらう。
  3. どの計算(+, -, *, /)を実行したいか、ユーザーに選択してもらう。
  4. 選択された計算方法に従って、2つの数値を計算する。
  5. 計算結果を画面に表示する。

今回は、これらのステップを順番に実行するプログラムを作成します。エラー処理(例えば、0で割る場合など)も少し加えてみましょう。

BASICコード例 (QBasic/FreeBASIC風) 💻

以下に、簡易電卓のサンプルコードを示します。QBasicやFreeBASICで動作することを想定しています。

' 簡易電卓プログラム
CLS ' 画面をクリア

DIM num1 AS SINGLE
DIM num2 AS SINGLE
DIM choice AS STRING
DIM result AS SINGLE

PRINT "簡易電卓へようこそ!"
PRINT "--------------------"

' 1つ目の数値を入力
INPUT "1つ目の数値を入力してください: ", num1

' 2つ目の数値を入力
INPUT "2つ目の数値を入力してください: ", num2

PRINT
PRINT "どの計算をしますか?"
PRINT "  + : 足し算"
PRINT "  - : 引き算"
PRINT "  * : 掛け算"
PRINT "  / : 割り算"
INPUT "記号を入力してください (+, -, *, /): ", choice$

PRINT "--------------------"

' 入力された記号に応じて計算を実行
SELECT CASE choice$
    CASE "+"
        result = num1 + num2
        PRINT num1; " + "; num2; " = "; result
    CASE "-"
        result = num1 - num2
        PRINT num1; " - "; num2; " = "; result
    CASE "*"
        result = num1 * num2
        PRINT num1; " * "; num2; " = "; result
    CASE "/"
        ' 0での割り算を防ぐ
        IF num2 = 0 THEN
            PRINT "エラー: 0で割ることはできません! 🚫"
        ELSE
            result = num1 / num2
            PRINT num1; " / "; num2; " = "; result
        END IF
    CASE ELSE
        PRINT "エラー: 無効な記号が入力されました。 😥"
END SELECT

PRINT
PRINT "計算を終了します。"
END

コードの解説 📝

  • DIM … AS SINGLE: num1, num2, result という変数を単精度浮動小数点数型 (SINGLE) で宣言しています。これにより、小数点を含む数値も扱えます。
  • DIM choice AS STRING: choice$ という変数を文字列型 (STRING) で宣言しています。ユーザーが入力する演算記号 (+, -, *, /) を格納します。
  • CLS: 画面の内容を消去します。
  • PRINT: メッセージや結果を画面に表示します。
  • INPUT “メッセージ”, 変数: メッセージを表示し、ユーザーからの入力を待って、指定された変数に格納します。
  • SELECT CASE 変数: 変数の値に応じて、処理を分岐させます。
    • CASE 値: 変数の値が指定した「値」と一致する場合に、その下の処理を実行します。
    • CASE ELSE: どのCASEにも一致しなかった場合に実行されます。
  • IF num2 = 0 THEN … ELSE … END IF: 割り算の場合、割る数 (num2) が0かどうかをチェックし、0であればエラーメッセージを表示し、そうでなければ計算を実行します。
  • END: プログラムの実行を終了します。

試してみよう! & 発展させよう!🚀

このコードを実際にあなたのBASIC環境(QBasic, FreeBASICなど)で入力し、実行してみてください。 正しく動作するか確認しましょう。

さらに、このプログラムを改良することもできます。例えば:

  • 計算を繰り返せるように、ループ処理 (DO...LOOP など) を追加する。
  • 入力された演算記号が正しいか、より厳密にチェックする。
  • 三角関数 (SIN, COS) や累乗 (^) など、他の計算機能を追加する。
  • サブルーチン (SUBFUNCTION) を使って、コードを部品化し、読みやすくする。

ミニプロジェクトは、学んだことを応用し、プログラミングの楽しさを実感する絶好の機会です。ぜひ挑戦してみてください!💪

参考情報 🌐

さらに詳しい情報や他の例を探す場合は、以下のキーワードで検索してみてください。

  • QBasic calculator example
  • FreeBASIC calculator tutorial
  • BASIC programming simple calculator

(注意: 検索結果には、この記事で扱っているシンプルな BASIC 以外の言語(Visual Basic, C++, JavaScript など)の例も含まれることがあります。)

コメント

タイトルとURLをコピーしました