Assignment and Operations/ja

From Free Pascal wiki
Jump to: navigation, search

Deutsch (de) English (en) español (es) français (fr) 日本語 (ja) 한국어 (ko) русский (ru) 中文(中国大陆)‎ (zh_CN)

1E - 代入と演算子 (著者: Tao Yue, 状態: 原文のまま)

いったん、変数を宣言したなら、そこに値を入れることができる。これは代入と呼ばれる。

値を変数に割り当てるためには、以下の構文を使う。

variable_name := expression;

代入演算子に単に等号を使う他の言語とは違い、 Pascal ではコロンとその後に等号を使うことに気をつけよう。これはほとんどのコンピュータ代数システムで表現されているものと似ている。

以下のように単一の値でもよいし、

some_real := 385.385837;

次のように算術式でもよい。

some_real := 37573.5 * 37593 + 385.8 / 367.1;

Pascal における算術的な操作には次のようなものがある。

算術子 操作 操作対象の型 結果の型
+ 加算あるいは単項のプラス real or integer real or integer
- 引算あるいは単項のマイナス real or integer real or integer
* 乗算 real or integer real or integer
/ 実数の割り算 real or integer real
div 整数の割り算 integer integer
mod 剰余 (割り算の余り) integer integer

divmodintegers(整数型)でのみ使える。/reals(実数型)とintegers(整数型)の両方で使えるが、得られるのは常にreal の答えである。他の操作はrealsintegersの両方で使える。integersrealsを共に使用した場合、結果は常にrealになるだろう。そうしないとデータの損失が生じてしまうからである。これが Pascal において割り算と整数割り算という2つの異なる割り算が用いられる理由である。7 / 2 = 3.5 (real)である。しかし、7 div 2 = 3となる (そして7 mod 2 = 1である。余りがあるからである)。

各変数には同じデータ型である値だけが代入される。従って、整数型に実数型を代入できない。しかしながら、あるデータ・タイプは高次のデータ・タイプに変換される。これは整数値を実数変数に代入するときに最もしばしば起きていることである。次のような変数宣言部があるとしよう。

var
  some_int : integer;
  some_real : real;

以下のようなステートメントが実行されると、

some_int := 375;
some_real := some_int;

some_real375.0の値になる。

あるデータ・タイプを別なデータ・タイプに変換することは型キャストと呼ばれる。現在の Pascal コンパイラは幾分異なる構文を持つ C のように明示的な型キャストをサポートしている。しかしながら、型キャストはたいてい、低レベルの状況でオブジェクト指向プログラミングとの関係で使われる。だから、プログラミングに初心者の学生がそれを使う必要はない。ここには GNU Pascal マニュアルの型キャストの情報を示しておく。

Pascal においてはマイナス符号は値をマイナスにするために利用できる。同様にプラスの符号は値をプラスにするために使える。しかし、デフォルトの値はプラスなので通常、プラス符号は省略される。

2つの演算子を次のように並べて使おうとしてはならない。

some_real := 37.5 * -2;

これは-2を掛けようとしたというだけで、あなたにとってはまったく問題ないことに思えるかもしれない。しかしながら、 Pascal は混乱するだろう。掛けるべきなのか引くべきなのかわからないからである。明確にするためにカッコを使えば、これを避けることができる。

some_real := 37.5 * (-2);

コンピュータはあなたが計算をするときに従う順序と似た演算順序に従う。かけ算と割り算(* / div mod)は足し算と引き算(+ -)より先に来るし、カッコは常に優先される。従って、たとえば3.5*(2+3)の値は17.5.になる。

Pascal はブールに関しては標準的な演算操作ができない。特殊なブール演算のセットが用意されている。また、文字に関しては算術演算を行うべきではない。

previous contents next