用語集

Delphi

DelphiはInpriseインプライズ)社の製品であり、プログラム開発環境です。プログラミング言語としては、Pascalにオブジェクト指向を取り入れたObject Pascalを用います。多数のコンポーネント(部品)が用意されていて、そのコンポーネントを組み合わせプログラムを書くことによって、従来よりも早くプログラムが開発できます。

 

if文

次のif

  if 条件 then
  [処理];

において、if文の処理単位は[処理]までです。;(セミコロン)は文を区切るときに使いますので、[処理]の後に;(セミコロン)をつけ、文の途中であるthenの後には;(セミコロン)をつけません。

 

if then else文

本文で説明した書き方以外に、次のifの書き方があります。

書き方

if 条件 then
  処理1
else
    処理2;

意味:条件が満たされるとき処理1が行われ、条件が満たされないとき処理2が行われる。

処理1の行末に;(セミコロン)がないことに注意してください。

本文で説明した書き方は、else以下を省略したものです。

Pascalシミュレータではelseを使えません。当然、Turbo PascalやDelphiではelseを使えます.

 

Pascal

1968年にN. Wirthが設計・開発したコンピュータ言語。ISO規格、JIS規格が作られています。

Pascalはもともと教育用として開発され、プログラムの入門には最適な言語の1つとされています。Pascalの流れを汲むTurbo PascalやDelphiは、機能を拡張したり、オブジェクト指向を取り入れたりすることで、十分実用的な処理系になっており、多くのアプリケーションが開発されています。

なお、Turbo PascalやDelphiはInpriseインプライズ)社の製品です。

 

Pascalの「:=」と数学の「=」の違い

数学の「=」は「等しい」ということですが、Pascalの「:=」は代入ということで、意味が違います。Pascalの「:=」は「等しい」という意味をもっていないのです。

数学で「x=x+1;」(xがx+1に等しい)を解こうとすると、0=1となってしまい、正しくありません。

一方、Pascalでの「x:=x+1;」(x+1をxに代入)は、x:=5であっても正しい文です。このx:=x+1はどういう意味かといいますと、まず、x+1を計算し(xが5ですから、1を加えて6)、その計算値をxに設定するということです。すなわち、xの箱には6が入ります。この計算についての詳細は、レッスン7と8のページを見てください。

まだ理解できない人でも、レッスン8の終りまで説明を順に読んでいけば、理解できるはずです。とにかく、「=」と「:=」は違うんだ、ということを頭にいれてください。

 

repeat文

repeatも繰り返しをします。次のように書きます。

書き方

repeat
  処理1;
  処理2;
  処理3;
until 条件;

意味:条件が満たされるまで処理1、処理2、...が行われる。

条件が最初から満たされない場合、whileの中の処理は一度も実行されませんが、repeatでは、最低一度は実行されます。次の例では、whileの繰り返し処理が終わると、xには1が記憶されますが、repeatの繰り返し処理が終わると、xには2が記憶されます。また、whilerepeatの条件が逆であることに注意してください。

x:=1;
while x<0 do
  x:=x+1;

x:=1;
repeat
  x:=x+1;
until x>=0;

Pascalシミュレータではrepeatは使えません。当然、Turbo PascalやDelphiではrepeatは使えます.

 

インクリメント・デクリメント

DelphiのInc手続きは、変数の値をインクリメント(increment)します。

  Inc(x);

としますと、xの値を1つ増やします。これは、x:=x+1;と同じです。

  Inc(x , n);

としますと、xの値はn増えます。これは、x:=x+n;と同じです。

同様に、DelphiのDec手続きは、変数の値をデクリメント(decrement)します。

Pascalシミュレータでは、IncやDecは使えません。

 

3大要素

プログラミングの3大要素は、逐次・判断・繰り返しです。判断はレッスン8と9で、繰り返しはレッスン10と11で学びます。

 

四則演算

乗算、除算、括弧を使えます。乗算には*(アスタリスク)、除算にはdivを使います。例えば、

   123 * 34 div (3+4)

は、123×34÷(3+4)を表します。x div yはx÷yの商を求めます。余り(剰余)を求めたいときは、modを使って、x mod yのようにします。

Pascalシミュレータでは、シミュレータの作成を容易にするために制限を設けており、乗算、除算、括弧は使えません。Pascalシミュレータを使うときは注意してください。当然、DelphiやTurbo Pascalでは使えます。

 

正書法

本来、行頭の空白はなくてもいいので、

  1. program sengen;
  2. var i:integer;
  3. j:integer;
  4. begin
  5. end.

とできます。PascalやDelphiでは、空白を入れなくてはならないところでは、空白はいくつ入れてもかまいません。行頭には空白をいれてもよいので、上のプログラムの行頭に空白を入れ、さらに空白を増やして、

  1. program           sengen;
  2.    var     i      :     integer    ;
  3.                      j    :      integer;
  4. begin
  5.         end.

としたプログラムは正しいものです。しかし、上のプログラムは少し見にくいですね。本文のように、数個の空白を行頭に入れているのは、プログラムを見やすくするためです。上のような簡単なプログラムの場合は、それほど見易さに違いはありませんが、後ででてくるもう少し複雑な場合は、適度に空白をいれると見やすくなります。

 

整数型

数学で学んだように、整数は、0、-100、123456という小数点を含まない数です。数学的には整数の桁数に制限はなく、12345678901234567890123といった多くの桁で表される数は整数です。

しかし、コンピュータで桁数の多い数まで表せるようにしますと、それだけ記憶容量が必要になりますし、1とか3とかいった小さい数を表すときは、用意した多くの桁が無駄になってしまいます。そのため、プログラムでは、整数に桁の制限を設けるのが大多数です。Delphiの整数型のinteger型にも桁数の制限があります。Delphiのinteger型では9〜10桁に制限されていて、-2147483648から2147483647までの整数が取り扱えます。    

 

データ型

整数型の他に、実数型、文字型、文字列型、など、たくさんの型が用意されています。3.14159のような小数点が含まれている数は実数型になります。「A」・「z」のような1つの文字は文字型、「delphi」・「programming」のような複数の文字が並んだものは文字列型になります。

実数型はさらにいろいろな型に分かれていて、表される数の範囲(どのくらい小さい数、どのくらい大きい数が表されるか)や何桁の数まで正確に表されるかが違います。例えば、15桁程度まで正確に表せる型として、double型があります。double型として変数xを宣言したい場合、var x : doubleとします。

 

処理の基本単位をと呼びます。

「x:=1000;」は「1000をxに代入」という1単位の処理をしますので、文です。これは代入をする文ですので、代入文と呼んでいます。

複数の文を1行に書いてもかまいません。例えば、

x:=100;  y:=10;

と2つの文を1行に書けます。

しかし、Pascalシミュレータでは、シミュレータの制限(シミュレータの作成を簡単にするために設けた制限です)で複数の文を1行には書けません。そのため、Pascalシミュレータでは、1行に複数の文をいれないでください。

 

予約語

本文で説明しましたように、program、begin、endはPascalではあらかじめ機能が決まっています。機能が決まっている語のことを予約語といいます。それに対して、hajimeteなどの語は機能が決まっていなくて、例えば、programの後に書くことによりプログラムの名前として使われます。

このページのプログラムでは、予約語を太字で表記して、見やすくしています。

予約語のスペリングを間違えます(例えば、beginと書かずにbeganと書いてしまう)と、正しくプログラムが動きませんので、スペリングに注意する必要があります。「Pascalシミュレータ」では予約語が太字で表示されますので、予約語のつもりでキーボード入力したはずなのに太字になっていないときは、スペリングが間違っているとすぐ気がつくようにしています。