データ

基本型

代表的な基本型には次のようなものがあります (利用可能な型は処理系によって異なります)。

基本型説明
integer整数型
real実数型
char文字型
boolean論理型

リテラル

各データ型のリテラルの例は次の通りです。

種別リテラルの例
整数123
実数3.14   1.23e-5
文字'a'
文字列'abc'   'it''s'
論理true   false

文字,文字列リテラルはともにシングルクォート '...' で囲って表します。
文字中でシングルクォート ' を表すには,2 個続けて '' と書きます。

単純型/構造型

データ型は大きく分けて,単純型,構造型,ポインタ型の 3 つに分けられます。

単純型整数型,実数型,文字型,論理型,部分範囲型,列挙型
構造型配列型,レコード型,集合型,ファイル型

部分範囲型

部分範囲型 (subrange type) とは,取りうる値の範囲を限定した型です。

program sample(output);
var
  n : 0..maxint;
  d : '0'..'9';
begin
  n := 0;    { 可 }
  n := -1;   { 不可 }
  d := '5';  { 可 }
  d := 'a'   { 不可 }
end.

部分範囲型は,0..maxint, '0'..'9' のように,下限..上限 の形で書きます。
例えば 1..5 と書いた場合,取りうる値は 1, 2, 3, 4, 5 のみです。

定数 maxint は整数の最大値を表す組込みの定数です。

型の定義

あらゆるデータ型は,次のように型名を定義することができます。

program sample(output);
type
  natural = 0..maxint;
  digit = '0'..'9';
var
  n : natural;
  d : digit;
begin
  ...
end.

列挙型

列挙型 (enumerated type) は,取りうる値を定数として列挙した型です。

program sample(output);
type
  dayofweek = (mon, tue, wed, thu, fri, sat, sun);
var
  d : dayofweek;
begin
  d := tue
end.

文字列型

文字列型は string(長さ) と書かれます。文字列型の扱いは処理系依存です。

program sample(output);
var
  s : string(256);
begin
  s := 'hello';
  writeln(s)
end.