ウィキのコピーミラー

これは pascal.chat のウィキのミラーです。編集、履歴、ログインはそちらで行います。

Basic Pascal Tutorial/Chapter 1/Assignment and Operations/ja

한국어 · Deutsch · English · Español · Français · Български · Русский · 中文(中国) · 日本語

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

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

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

pascal
variable_name := expression;

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

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

pascal
some_real := 385.385837;

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

pascal
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

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

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

pascal
var
  some_int : integer;
  some_real : real;

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

pascal
some_int := 375;
some_real := some_int;

some_realは375.0の値になる。

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

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

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

pascal
some_real := 37.5 * -2;

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

pascal
some_real := 37.5 * (-2);

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

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

previous contents next

From the Free Pascal wiki, page "Basic Pascal Tutorial/Chapter 1/Assignment and Operations/ja", as it stood on 2022-08-20 after a change by Kai Burghardt, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

第1版、最終更新:WikiArchive 。