LoginSignup
4
4

<2> データの概念: 単純型 (標準 Pascal 範囲内での Delphi 入門)

Last updated at Posted at 2019-03-11

2. データの概念: 単純型 (Simple Types)

単純型 (単純データ型) には 順序型 (順序データ型)実数型 があります。

標準 Pascal の順序型にはユーザーが定義した列挙型部分範囲型の他に、定義済みの Boolean, Integer, Char 等の型があります。

2.1. 順序型 (Ordinal Types)

順序型 (順序データ型) は値の前後に値のある型です。すべての順序型には 関係演算子 =, <>, <, <=, >=, > が使えます。また、次の標準関数も順序型で使えます。

関数 パラメータ 説明
Succ() 順序型の式 式の値の一つ次の値
Pred() 順序型の式 式の値の一つ前の値
Ord() 順序型の式 式の値の順序値

Delphi では次の組み込みルーチンも使えます。

関数 パラメータ 説明
High() 順序型の型識別子または
順序型の変数
型の最大の値
Low() 順序型の型識別子または
順序型の変数
型の最小の値
Inc() 順序型の変数 順序型変数の値を
インクリメント
Dec() 順序型の変数 順序型変数の値を
デクリメント

Inc()Dec() は C 言語の ++ / += や -- / -= に相当します 1

  Inc(i);      // i++;
  Inc(i, 3);   // i+=3;
  Dec(i);      // i--;
  Dec(i, 5);   // i-=5;

2.2. Boolean 型 (Boolean Types)

Boolean 型は論理型の一つです。論理値は定義済みの定数 True および False で表されます。順序値が 1 の場合には True、順序値が 0 の場合には False であると見なされます。

次の論理演算子を論理型に使うと論理値を返します。

論理演算子 説明
and 論理積 (AND)
or 論理和 (OR)
not 否定 (NOT)

関係演算子 =, <>, <, <=, >=, >, in を使った場合にも論理値を返します。例えば A <> B は排他的論理和 (XOR) になります。なお、Delphi には xor 論理演算子も用意されています。

論理演算子 説明
xor 排他的論理和 (xor)

次の標準関数は論理型の値を返します。

関数 パラメータ 説明
Odd() 整数型の変数または
整数値
値が奇数のときに True を返す
Eoln() ファイル型変数 行の終わり。9 章で述べる
Eof() ファイル型変数 ファイルの終わり。9 章で述べる

Delphi には他に ByteBool, WordBool, LongBool という論理型があります。これらの論理型は順序値がゼロ以外 (非ゼロ) の場合、True とみなされます。Ord(LongBool(True))1 ではなく -1 を返します。これは他言語との互換性のために用意された型だからです。

See also:

2.3. Integer 型 (Integer Types)

Integer 型は整数型の一つです。整数型は整数の部分集合を表します。次の論理演算子を整数型に使うと整数値を返します。

算術演算子 説明
* 乗算
div 整数除算
mod 剰余
+ 加算
- 減算

※ 整数同士の除算に用いられる演算子は / ではなく div です。

Delphi では次の論理 (ビット) 演算子も使えます。

論理 (ビット) 演算子 説明
and ビット論理積
or ビット論理和
not ビット否定
xor ビット XOR
shr ビット右シフト
shl ビット左シフト

次の標準関数は整数型の値を返します。

関数 パラメータ 説明
Abs() 整数型の変数または整数値 値の絶対値を返す
Sqr() 整数型の変数または整数値 値の 2 乗を返す
Trunc() 実数型の変数または実数値 値の整数部を返す
Round() 実数型の変数または実数値 値を丸めた整数を返す
Succ() 整数型の変数 値の一つ次の値を返す
Pred() 整数型の変数 値の一つ前の値を返す

定義済み定数に MaxInt があり、その値は処理系依存です。Integer が 32 ビットとは限りません。

Delphi にはプラットフォーム依存の整数型として NativeInt, NativeUInt, LongInt, LongWord があります。

Delphi のプラットフォーム非依存の整数型には、ShortInt, SmallInt, LongInt, Integer, Int64, Byte, Word, LongWord, Cardinal, UInt64 があります。

See also:

2.4. Char 型 (Character Types)

Char 型は文字型の一つです。文字集合が処理系依存のため、例えば次の関係が常に成り立つとは限りません。

'@' > '#'

変換関数として次の標準関数が使えます。

関数 パラメータ 説明
Ord() 文字型の変数または
文字定数
現在の文字集合での順序数を返す
Chr() 順序型の変数または
順序数
順序数をもつ文字を返す

Delphi の文字型には他に AnsiChar, WideChar, UCS2Char, UCS4Char があります。

また、Delphi には ANSI 版 Delphi (Delphi 2007 以前)Unicode 版 Delphi (Delphi 2009 以降) がありそれぞれで Char 型の定義が異なります 1

Delphi Char AnsiChar WideChar
ANSI 版 8 ビット 8 ビット 16 ビット
Unicode 版 16 ビット 8 ビット 16 ビット

標準 Pascal の Char は現行の Delphi だと AnsiChar に相当します。

See also:

2.5. Real 型 (Real Types)

Real 型は実数型の一つです。単純型の中で唯一順序型ではありません。Real 型のサイズや精度は実装依存です。

次の算術演算子の少なくとも片方の項が実数型の場合、実数値を返します。

算術演算子 説明
* 乗算
/ 実数除算
+ 加算
- 減算

※ 少なくとも片方の項が実数型の場合、除算に用いられる演算子は / となります。

次の標準関数は実数型のパラメータを受け取って整数型の値を返します。

関数 パラメータ 説明
Abs() 実数型の変数または実数値 値の絶対値を返す
Sqr() 実数型の変数または実数値 値の 2 乗を返す

次の標準関数は整数型のパラメータを受け取って実数型の値を返します。

関数 パラメータ 説明
Sin() 実数型の変数または実数値 値の正弦を返す
Cos() 実数型の変数または実数値 値の余弦を返す
ArcTan() 実数型の変数または実数値 値の逆正接を返す
Ln() 実数型の変数または実数値 値の自然対数を返す
Exp() 実数型の変数または実数値 値の指数関数を返す
Sqrt() 実数型の変数または実数値 値の平方根を返す

Delphi の実数型には他に Real48, Single, Double, Extended, Comp, Currency があります。

Real48 はクラシック Pascalが稼働していた CDC 6000 シリーズにネイティブな 48 ビットの実数型です。

See also:

(2.6.) 順序型変数の初期化

Delphi ではグローバル変数に限り、変数宣言と同時に初期化できます。

SimpleTypeInitTest.pas
program SimpleTypeInitTest;
{$APPTYPE CONSOLE}

// グローバル単純型変数と初期化
var
  b1: Boolean = True;
  i1: Integer = 100;
  c1: Char = 'A';
  r1: Real = 3.14;

  procedure Sub;
// ローカル単純型変数は初期化できない
//var
//  b2: Boolean = True;
//  i2: Integer = 100;
//  c2: Char = 'A';
//  r2: Real = 3.14;
  begin
    ...
  end; { Sub }
begin
  ...
end.

See also:

索引

[ ← 1. 記法: トークンと区切り文字 ] [ ↑ 目次へ ] [ → 3. プログラムヘッダと宣言部 ] :sushi:

  1. 慣れないうちは素直に i := i + 1; と書いたほうがソースコードの視認性はいいと思います。 2

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4