Difference between revisions of "Basic Pascal Tutorial/Chapter 1/Assignment and Operations/ja"

From Free Pascal wiki
Jump to navigationJump to search
m (bypass language bar/categorization template redirect [cf. discussion])
 
(7 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Assignment_and_Operations}}
+
{{Basic Pascal Tutorial/Chapter 1/Assignment and Operations}}
  
 
1E - 代入と演算子 (著者: Tao Yue, 状態: 原文のまま)
 
1E - 代入と演算子 (著者: Tao Yue, 状態: 原文のまま)
Line 6: Line 6:
  
 
値を変数に割り当てるためには、以下の構文を使う。
 
値を変数に割り当てるためには、以下の構文を使う。
<syntaxhighlight>
+
<syntaxhighlight lang="pascal">
 
variable_name := expression;
 
variable_name := expression;
 
</syntaxhighlight>
 
</syntaxhighlight>
Line 12: Line 12:
  
 
以下のように単一の値でもよいし、
 
以下のように単一の値でもよいし、
<syntaxhighlight>
+
<syntaxhighlight lang="pascal">
 
some_real := 385.385837;
 
some_real := 385.385837;
 
</syntaxhighlight>
 
</syntaxhighlight>
 
次のように算術式でもよい。
 
次のように算術式でもよい。
<syntaxhighlight>
+
<syntaxhighlight lang="pascal">
 
some_real := 37573.5 * 37593 + 385.8 / 367.1;
 
some_real := 37573.5 * 37593 + 385.8 / 367.1;
 
</syntaxhighlight>
 
</syntaxhighlight>
 
Pascal における算術的な操作には次のようなものがある。
 
Pascal における算術的な操作には次のようなものがある。
 
{| style="background-color:#f5f5f5" cellspacing=5
 
{| style="background-color:#f5f5f5" cellspacing=5
!Operator !!Operation !!Operands !!Result
+
!算術子 !!操作 !!操作対象の型 !!結果の型
 
|-
 
|-
| + ||Addition or unary positive ||real or integer ||real or integer
+
| + ||加算あるいは単項のプラス ||real or integer ||real or integer
 
|-
 
|-
| - ||Subtraction or unary negative ||real or integer ||real or integer
+
| - ||引算あるいは単項のマイナス ||real or integer ||real or integer
 
|-
 
|-
| * ||Multiplication ||real or integer ||real or integer
+
| * ||乗算 ||real or integer ||real or integer
 
|-
 
|-
| / ||Real division ||real or integer ||real
+
| / ||実数の割り算 ||real or integer ||real
 
|-
 
|-
|div ||Integer division ||integer ||integer
+
|div ||整数の割り算 ||integer ||integer
 
|-
 
|-
|mod ||Modulus (remainder division) ||integer ||integer
+
|mod ||剰余 (割り算の余り) ||integer ||integer
 
|}
 
|}
 
'''<tt>div</tt>''' と '''<tt>mod</tt>''' は ''integers''(整数型)でのみ使える。'''<tt>/</tt>''' は''reals''(実数型)と''integers''(整数型)の両方で使えるが、得られるのは常に''real'' の答えである。他の操作は''reals''と''integers''の両方で使える。''integers''と''reals''を共に使用した場合、結果は常に''real''になるだろう。そうしないとデータの損失が生じてしまうからである。これが Pascal において割り算と整数割り算という2つの異なる割り算が用いられる理由である。<tt>7 / 2 = 3.5</tt> (real)である。しかし、<tt>7 div 2 = 3</tt>となる (そして<tt>7 mod 2 = 1</tt>である。余りがあるからである)。
 
'''<tt>div</tt>''' と '''<tt>mod</tt>''' は ''integers''(整数型)でのみ使える。'''<tt>/</tt>''' は''reals''(実数型)と''integers''(整数型)の両方で使えるが、得られるのは常に''real'' の答えである。他の操作は''reals''と''integers''の両方で使える。''integers''と''reals''を共に使用した場合、結果は常に''real''になるだろう。そうしないとデータの損失が生じてしまうからである。これが Pascal において割り算と整数割り算という2つの異なる割り算が用いられる理由である。<tt>7 / 2 = 3.5</tt> (real)である。しかし、<tt>7 div 2 = 3</tt>となる (そして<tt>7 mod 2 = 1</tt>である。余りがあるからである)。
  
 
各変数には同じデータ型である値だけが代入される。従って、整数型に実数型を代入できない。しかしながら、あるデータ・タイプは高次のデータ・タイプに変換される。これは整数値を実数変数に代入するときに最もしばしば起きていることである。次のような変数宣言部があるとしよう。
 
各変数には同じデータ型である値だけが代入される。従って、整数型に実数型を代入できない。しかしながら、あるデータ・タイプは高次のデータ・タイプに変換される。これは整数値を実数変数に代入するときに最もしばしば起きていることである。次のような変数宣言部があるとしよう。
<syntaxhighlight>
+
<syntaxhighlight lang="pascal">
 
var
 
var
 
   some_int : integer;
 
   some_int : integer;
Line 44: Line 44:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
以下のようなステートメントが実行されると、
 
以下のようなステートメントが実行されると、
<syntaxhighlight>
+
<syntaxhighlight lang="pascal">
 
some_int := 375;
 
some_int := 375;
 
some_real := some_int;
 
some_real := some_int;
Line 55: Line 55:
  
 
2つの演算子を次のように並べて使おうとしてはならない。
 
2つの演算子を次のように並べて使おうとしてはならない。
<syntaxhighlight>
+
<syntaxhighlight lang="pascal">
 
some_real := 37.5 * -2;
 
some_real := 37.5 * -2;
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
これは-2を掛けようとしたというだけで、あなたにとってはまったく問題ないことに思えるかもしれない。しかしながら、 Pascal は混乱するだろう。掛けるべきなのか引くべきなのかわからないからである。明確にするためにカッコを使えば、これを避けることができる。
 
これは-2を掛けようとしたというだけで、あなたにとってはまったく問題ないことに思えるかもしれない。しかしながら、 Pascal は混乱するだろう。掛けるべきなのか引くべきなのかわからないからである。明確にするためにカッコを使えば、これを避けることができる。
<syntaxhighlight>
+
<syntaxhighlight lang="pascal">
 
some_real := 37.5 * (-2);
 
some_real := 37.5 * (-2);
 
</syntaxhighlight>
 
</syntaxhighlight>
Line 69: Line 69:
  
 
{|style=color-backgroud="white" cellspacing="20"
 
{|style=color-backgroud="white" cellspacing="20"
|[[Variables_and_Data_Types|previous]]   
+
|[[Basic Pascal Tutorial/Chapter 1/Variables and Data Types/ja|previous]]   
|[[Contents|contents]]  
+
|[[Basic Pascal Tutorial/Contents/ja|contents]]  
|[[Standard_Functions|next]]
+
|[[Basic Pascal Tutorial/Chapter 1/Standard Functions/ja|next]]
 
|}
 
|}

Latest revision as of 16:17, 20 August 2022

български (bg) 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