はじめに
プログラミングをしていると、計算結果やユーザーが入力した文字など、様々な「値」を一時的に保存しておきたくなります。そんな時に使うのが「変数」です。変数は、データ(値)を入れておくための名前付きの箱のようなものです。📦
BASICでは、主に数値や文字列といった種類のデータを扱います。どの種類のデータを入れるかに応じて、変数の「型」(データ型)が決まります。今回は、BASICにおける変数と、基本的なデータ型である数値と文字列について学んでいきましょう!
変数とは?
変数は、プログラムの中でデータを記憶しておくための「名前付きの場所」です。例えば、`Score` という名前の変数を用意して、そこにゲームの得点を保存したり、`PlayerName$` という名前の変数にプレイヤーの名前を保存したりできます。
変数を使うことで、同じ値を何度も書く手間が省けたり、計算の途中結果を覚えておいたり、プログラムを分かりやすくすることができます。
変数の名前の付け方(命名規則)
変数には好きな名前を付けることができますが、いくつかのルールがあります。一般的なBASICのルールは以下の通りです(処理系によって多少異なる場合があります)。
- 最初の文字はアルファベットでなければなりません。
- 名前に使えるのは、基本的にアルファベットと数字です。(一部のBASICではアンダースコア `_` なども使えます)
- BASICの命令(`PRINT`, `INPUT`, `IF` など)と同じ名前は使えません。
- 変数名の大文字と小文字は区別されないことが多いです。(`myname$` と `MyName$` は同じ変数とみなされる)
- 長すぎない、分かりやすい名前を付けるのがおすすめです。
⚠️ 注意: 変数名のルールは、使っているBASICの種類(QBasic, FreeBASIC, N88-BASICなど)によって細かく異なる場合があります。
データ型:数値と文字列
変数には、どのような種類のデータを入れるかを示す「データ型」があります。BASICで最もよく使われる基本的なデータ型は「数値」と「文字列」です。
数値型 (Numeric Types) 🔢
数値を扱うためのデータ型です。計算に使われます。数値型には、さらにいくつかの種類があります。
- 整数型 (Integer): 小数点を含まない数(例: `10`, `-5`, `0`)。比較的メモリ使用量が少なく、計算も速い傾向があります。扱うことができる数値の範囲が決まっています。
- `INTEGER` (%): 通常の整数。
- `LONG` (&): より大きな範囲の整数。
- 浮動小数点数型 (Floating-point): 小数点を含む数(例: `3.14`, `-0.5`, `123.45`)。非常に大きな数や非常に小さな数も扱えますが、誤差を含むことがあります。
- `SINGLE` (!): 単精度浮動小数点数。
- `DOUBLE` (#): 倍精度浮動小数点数。より高い精度で小数を扱えます。
どの数値型を使うかは、扱いたい数値の範囲や精度によって選びます。
文字列型 (String Type) 🔡
文字の並び(文章や単語など)を扱うためのデータ型です。文字列は通常、ダブルクォーテーション `”` で囲んで表します。(例: `”Hello, World!”`, `”山田太郎”`, `”123″`)。
文字列型の変数には、名前やメッセージなどを保存するのに使います。数字だけの文字列(例: `”123″`)も文字列として扱われ、そのままでは計算に使えません。
文字列型の変数は、変数名の末尾にドル記号 `$` を付けることで区別するのが伝統的なBASICのルールです。
変数の型宣言
変数を使う前に、その変数がどのデータ型なのかをBASIC処理系に伝える必要があります。これにはいくつかの方法があります。
型宣言文字 (Type Declaration Suffixes / Sigils)
古いスタイルのBASIC(特にQBasicなど)では、変数名の末尾に特別な記号(型宣言文字、またはサフィックス、シジルと呼ばれる)を付けることで、変数の型を暗黙的に示すことが一般的でした。
記号 | データ型 | 例 | 説明 |
---|---|---|---|
$ |
文字列 (String) | UserName$ |
文字列を格納します。 |
% |
整数 (Integer) | Counter% |
整数(通常16ビットまたは32ビット)を格納します。 |
& |
長整数 (Long Integer) | Population& |
より大きな範囲の整数(通常32ビット)を格納します。 |
! |
単精度浮動小数点数 (Single Precision) | Price! |
小数を格納します(約7桁の精度)。 |
# |
倍精度浮動小数点数 (Double Precision) | Distance# |
より精度の高い小数を格納します(約15桁の精度)。 |
この方法を使うと、例えば `MyNumber% = 10` と書くだけで、`MyNumber` が整数型の変数であることが分かります。
💡 ヒント: 型宣言文字を付けずに変数名だけを書いた場合、デフォルトの型(多くのBASICでは単精度浮動小数点数 `!`)として扱われることがあります。
DIMステートメントによる明示的な宣言
より新しい、または構造化されたBASIC(FreeBASICやVisual Basicなど)では、`DIM` ステートメントを使って変数の型を明示的に宣言する方法が推奨されます。
' DIM 変数名 AS データ型
DIM PlayerName AS STRING
DIM Score AS INTEGER
DIM AverageScore AS DOUBLE
この方法では、変数名の末尾に型宣言文字を付ける必要はありません。コードが読みやすくなり、型の誤解を防ぐことができます。
`DIM` ステートメントは、変数がプログラム内で使われる前に記述する必要があります。
変数への値の代入と利用
変数に値を入れることを「代入」と呼びます。BASICでは、等号 `=` を使って代入を行います。古いBASICでは `LET` キーワードを使うこともありましたが、現在は省略可能です。
' 型宣言文字を使った例
MyName$ = "田中一郎" ' 文字列型変数 MyName$ に "田中一郎" を代入
Age% = 30 ' 整数型変数 Age% に 30 を代入
Height! = 175.5 ' 単精度浮動小数点数型変数 Height! に 175.5 を代入
' DIM を使った例 (FreeBASIC など)
DIM StudentName AS STRING
DIM TestScore AS INTEGER
DIM PiValue AS DOUBLE
StudentName = "鈴木花子"
TestScore = 85
PiValue = 3.1415926535
' 変数の値を表示する
PRINT MyName$
PRINT Age%
PRINT Height!
PRINT StudentName
PRINT TestScore
PRINT PiValue
一度変数に値を代入した後も、別の値を代入して中身を書き換えることができます。
DIM Counter AS INTEGER
Counter = 10
PRINT Counter ' 10 が表示される
Counter = Counter + 5 ' Counter の現在の値(10)に 5 を足して、結果(15)を再度 Counter に代入
PRINT Counter ' 15 が表示される
まとめ
- 変数は、データ(数値や文字列など)を保存しておくための名前付きの入れ物です。
- 変数名は、ルールに従って分かりやすい名前を付けましょう。
- データ型は、変数が扱うデータの種類を示します。主なものに数値型と文字列型があります。
- 数値型には、整数型 (`%`, `&`) と浮動小数点数型 (`!`, `#`) があります。
- 文字列型 (`$`) は、文字の並びを扱います。
- 変数の型は、型宣言文字(`$`, `%`, `&`, `!`, `#`)を変数名の末尾につけるか、`DIM … AS …` ステートメントで明示的に宣言します。
- 変数への値の代入は `=` を使います。
変数はプログラミングの基本中の基本です。まずは数値と文字列の変数をしっかり使いこなせるようになりましょう! 💪
コメント