Sign in Join
Wiki copytemporary

Revision 1 of 4, by WikiArchive on 11-4-2026. The page as it is now.

Basic Pascal Tutorial/Chapter 2/Input/ja

2A - 入力 (著者: Tao Yue, 状態: 原文のまま修正なし)

入力とはプログラムに入ってくるもののことである。キーボードから入ることもあれば、マウス、ディスクのファイル、スキャナー、ジョイスティックなどなどから入ってくることもある。

マウス入力については詳しく取り上げない。その理由は、文法がマシン次第で異なるからである。加えて、今日のイベント・ドリブンのウインドウOSがたいていマウス入力を扱ってくれるからである。

データの読み込みの基本フォーマットは以下の通りである。

pascal
read (変数リスト);

Variable_List はカンマで区切られた変数識別子のリストである。

readは特殊な行末文字で行が区切られた一連の文字として入力を扱う。一方、readlnは値を読み込んだ後、行末文字の後に自動的に移動することで次の行へと飛ぶ。

pascal
readln (変数リスト);

ユーザから次のような入力を受け取ったとしよう。a, b, c,そして d はみな整数である。

45 97 3
1 2 3

ここでは read と readln の命令文の例を、適当な変数に読み込まれた値と共に示す。

<table> <thead> <tr> <th>Statement(s)</th> <th>a</th> <th>b</th> <th>c</th> <th>d</th> </tr> </thead> <tbody> <tr> <td>read (a);</td> <td rowspan="2">45</td> <td rowspan="2">97</td> <td rowspan="2"></td> <td rowspan="2"></td> </tr> <tr> <td>read (b);</td> </tr> <tr> <td>readln (a);</td> <td rowspan="2">45</td> <td rowspan="2" style="text-align: right;">1</td> <td rowspan="2"></td> <td rowspan="2"></td> </tr> <tr> <td>read (b);</td> </tr> <tr> <td>read (a, b, c, d);</td> <td>45</td> <td>97</td> <td>3</td> <td>1</td> </tr> <tr> <td>readln (a, b);</td> <td rowspan="2">45</td> <td rowspan="2">97</td> <td rowspan="2">1</td> <td rowspan="2">2</td> </tr> <tr> <td>readln (c, d);</td> </tr> </tbody> </table>

整数として読む場合、数字が見つかるまでスペースはすべて読み飛ばされる。そうして、数字ではない文字(空白に限らず)が出てくるまで続くすべての数字が読まれる。

8352.38

上の入力から整数が読み込まれると、その値は 8352 となる。もし、その後に文字を読み込めば、その値は '.' になるだろう。なぜなら読み取りヘッドは最初の英数字で止まるからである。

2つの整数を読み込もうとしたとしよう。それはうまくいかない。なぜなら、コンピュータが2番目の変数を満たすデータを探したとき、 '.' を見つけ、それが読み込むべきデータではないので止まってしまうからである。

実数データでも、コンピュータは空白をスキップする。そして、読める限りの数値を読み込む。しかし、多くの Pascal コンパイラはひとつ追加の制限を設けている。それは省略された実数は許されず、 0. ではじまらなくてはならないということである。従って、 .678 は不適切でコンピュータは実数として読めない。しかし、 0.678 は問題がない。

引数リストの識別子がすべて変数であることを確認しておこう。定数には数値を割り当てられないし、リテラル値にも数値は割り当てられない。

previous contents next

From the Free Pascal wiki, page "Basic Pascal Tutorial/Chapter 2/Input/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.