コンピューター ウィンドウズ インターネット

readLnとreadの違い。 使用法変数、整数、Readlnreadとreadlnの違い

4.演算子writeおよびwriteln。 情報出力手順

プログラムでwriteステートメントとwritelnステートメントが使用されていることに気付くでしょう。 英語の単語writeは-towriteに翻訳され、単語writelnは、2つの英語の単語write-towriteとline-tostringの略語として提供されます。

writeおよびwriteln演算子に加えて、情報出力手順についても説明します。

とは 手順 ?

手順の概念は、Pascalの基本概念の1つです。 これはBASICサブルーチンに似ています。

手順 は、名前があり、名前を指定することでメインプログラムのどこからでもアクセスできるPascal演算子の特定のシーケンスです。

上記では、情報を出力するための演算子について説明しましたが、Pascalでは、BASICとは異なり、情報を出力するための演算子はなく、サービスワードwriteおよびwritelnを通じて、 標準 また 構築された 情報を表示するための手順。 標準手順には予備的な説明は必要ありません。それへの呼び出しを含むすべてのプログラムで使用できます。 そのため、writeまたはwritelnの呼び出しは、PRINT演算子(BASIC言語で出力される情報)に似ています。

との差 出力演算子を使用 とアピール 撤退手続き つまり、他のPascalプロシージャと同様に、出力プロシージャの名前は予約語ではないため、ユーザーはwriteまたはwritelnという名前の独自のプロシージャを作成できます。 しかし、これが実際に使用されることはめったにありません。

したがって、writeおよびwriteln演算子は、組み込みの出力ルーチンを呼び出すための演算子です。

これらのプロシージャは両方とも画面に情報を表示します。この情報が変数値の形式で含まれている場合は、writeまたはwritelnステートメントの括弧内にこれらの変数の名前を書き込むだけで十分です。例:write(a)、 writeln(f)。 そのような変数が複数ある場合、それらはコンマで区切られて書き込まれます。たとえば、write(a、b、c、d)、writeln(e、f、g、h)です。

情報が単語、文、単語の一部、または記号の場合は、記号「;」「;-」で囲まれます。 アポストロフィ、 例えば:

書き込み(「パスの長さを入力してください」)、

writeln( "速度の値は等しい"

シンボリック情報と変数値の両方を同時に出力することが可能であり、writeまたはwritelnステートメントではそれらをコンマで区切ります(例:

書き込み(「温度値は」、t)、

writeln( "速度は等しい"、v、 "移動時"、t)。

単語の最後のアポストロフィの前にスペースがあることに注意してください。

なぜそれが行われるのですか? もちろん、以下の数値情報は単語でスペースで区切ってください。

とは 違い writeおよびwritelnプロシージャの作業で?

書き込み手順では、同じ行に(1行で)情報を入力または出力するには、次の入力または出力手順が必要です。).

プログラムでwriteステートメントが指定され、その後に別のwriteまたはwritelnステートメントが続く場合、それらが出力する情報は、最初のwriteステートメントの情報行に追加されます。

例:write( "今日と明日は");

書き込み( "週末");

画面に次のように表示されます。

今日と明日は週末になります

「;意志」という単語の間のスペース; および ";週末"; 最初の行の終わりにあるスペースによって提供されます。 それが存在しない場合、撤回が発生します 一緒 :

書く(「今日と明日は」);

書き込み( "週末");

今日と明日は休日になります

さらにいくつかの例:t:= 20;

書き込み( "移動時間は等しい");

書き込み( "秒");

移動時間は20秒です

書き込み( "数値の合計が等しい");

書き込み( "および製品");

数の合計は30で、積は216です。

手順 writeln新しい各行の先頭から情報を入力または出力するための次の入力または出力手順を提供します.

プログラムの場合:

writeln( "今夜、今夜、今夜、");

writeln( "パイロットが率直に言って、何の関係もないとき");

画面に次のように表示されます。

今夜、今夜、今夜

パイロットが率直に言って、何の関係もないとき

プログラムの場合:

writeln( "数値の合計と差は等しい:");

画面上:

数値の合計と差は等しい:

5.オペレーターは読み取りと読み取りを行います。 情報入力手順

outputステートメントと同様に、readステートメントとreeadlnステートメントは組み込みのcallステートメントです。 情報入力手順。

演算子readとreadlnは、英語の2つの単語readとlineに由来し、プログラムでコンピューターのメモリに情報を入力するために使用されます。 読み出し";変数への値。

これらのオペレーターの作業と情報入力の手順を考えてみましょう。

私たちのプログラムにはreadln(a)ルーチンがあります。 プログラムの実行中にreadlnステートメントが検出されると、コンピューターは情報が入力されるのを待つ間一時停止します。 キーボードから変数a-16の値を入力すると、コンピューターはこの値を変数aに割り当てます。 名前の付いたメモリ位置に送信します NSプログラムの実行を続行します。 このプロセスを「;」と呼びます。 読むことによって";変数への値。

したがって、プロシージャはreadおよびreadln "; read"; 変数の値を設定し、それらに書き込まれている変数に割り当てます。

そのような変数がいくつか存在する可能性がある場合、それらはコンマで区切られたこれらの演算子で記述されます。次に例を示します。

read(a、b、c、n、g、j、i)、readln(e、f、k、p、d)など。

readプロシージャとreadlnプロシージャの違いは何ですか?

readプロシージャは、それ自体の後に1行で情報を入力または出力する必要があり、readlnプロシージャは、それ自体の後に新しい行の先頭から情報を入力および出力することを可能にします。

例えば:

プログラムで:write( "aとbの値を入力してください"); 読み取り(a、b);

write( "1行に情報を入力する");

プログラムのこの部分を実行すると、最初の書き込みステートメントに書き込まれたすべてのものが画面に表示され、カーソルが同じ行にあり、コンピューターはaとbの値が次のようになるのを待ちます入力しました。 それらの値-2と3を入力して、スペースで区切ってください。つまり、スペースで区切ります。 その後、次の書き込みステートメントで書き込まれた情報が同じ行に表示されます。

画面上:

aとbの値を入力してください231行に情報を入力してください

プログラムの場合:

writeln( "値a、b、cを入力してください); readln(a、b、c);

writeln( "行の先頭からの情報の入力と出力");

画面上:

値a、b、cを入力します

行頭からの情報の入出力

第2章プログラムの入力と実行

1.統合環境でTurboPascal7.0。

Turbo Pascalを起動すると、次のシェルが画面に表示されます(図3を参照)。

米。 3

開いたウィンドウの一番上の行には「;」が含まれています。 メニュー"; Turbo Pascalの可能な操作モード、下のモードはメインファンクションキーの目的に関する簡単なリファレンスです。画面の残りの部分はウィンドウに属します 文章 二重枠で囲まれ、プログラムテキストの入力と編集を目的としたエディタ。

プログラムに入ると、TurboPascal環境に組み込まれているテキストエディタを使用します。 したがって、以下では、エディターの作業とその主なコマンドについて説明します。

環境が編集状態にあることを示すのは、エディターウィンドウにカーソルが存在することです(小さな点滅ダッシュ)。

プログラムテキストを作成するには、タイプライターでテキストを入力するのと同じように、キーボードを使用してこのテキストを入力する必要があります。 次の行に入力したら、B> Enter> ";を押します。 入力";カーソルを次の行に移動します(カーソルは常に、次に入力されたプログラム文字が配置される画面上の場所を示します)。

エディタウィンドウは、十分に長くて幅の広い1枚の用紙をシミュレートし、その一部が画面ウィンドウに表示されます。 カーソルが下端に達すると、エディタウィンドウがスクロールされます。その内容が1行上に移動し、新しい行が下に表示されます。 ";。TurboPascalでの最大行長-126文字。

次のキーを使用して、ウィンドウをシートに対してシフトできます。

PgUp-1ページアップ( ページアップ- ページアップ);

PgDn-1ページ下( ページダウン- ページダウン);

-現在の行の先頭まで( - 家);

終わり-現在の行の終わりまで( 終わり- 終わり);

Ctrl-PgUp-テキストの先頭まで。

Ctrl-PgDn-テキストの最後に。

カーソルキー「 カーソル」は、画面上のテキストに沿って移動できます(テキスト内のみに注意してください)。 に "; ピュア ";書き込まれていない画面はカーソルを動かしません!

次の文字を入力するときに間違えた場合は、左矢印のキー(キー)を使用して消去できます。 バックスペース--B>バックスペース>、B> Enter>キーの上のメイン英数字キーのゾーンの右側と上部にあります-“ 入力」)。 B>デルキー ete> (消去 - 洗って、取り除く)カーソルが現在指している文字を消去し、Ctrl-Yコマンドはカーソルが置かれている行全体を消去します。 Turbo Pascalエディターは、各行の終わりに非表示の区切り文字を挿入することに注意してください。 この文字は、B> Enter>キーで挿入され、B> Backspace>またはB> Delキーで消去されます。 ete> ..。 セパレータを挿入/削除することで、次のことができます。 切る”/";のり";行。

に "; 切る";行、カーソルを目的の場所に移動し、B> Enter>キーを押して"; のり";隣接する行、最初の行の終わりにカーソルを置き、B> Delキーを押す必要があります ete> または、カーソルを次の行の先頭に置き、Bキー> Backspace>を押します。

挿入モード

エディタの通常モードは挿入モードで、新しく入力された各文字は「;」のようになります。 プッシュ";画面上のテキスト、残りの行を右にシフトします。";に注意してください。 切断";そしてその後の欠落文字の挿入はこのモードでのみ可能です。

例 "; 切断";, ";接着";行とテキストへの文字の挿入。

何らかの理由で、次のレコードが画面に表示されたとします。

プログラム Serg; var

a、b、c:整数;

プログラムを書くことの美的側面について話す場合、単語で始まる説明のセクションが望ましいです var、赤い線で始まりました。 テキストに変更を加えるには、文字にカーソルを置きます v B> Enter>キーを押すと、カーソルの後とその下のテキストの一部が次の行に移動します。次のようになります。

プログラム Serg;

a、b、c:整数;

カーソルを動かさずに、文字の上に置いたままにして、美しさと明瞭さを向上させます v、B>スペース>キーを数回押します。 行全体が右に移動し、レコードは次のようになります。

プログラム Serg;

a、b、c:整数;

テキストの一部が "; 破れた";そして私たちはそれが必要です"; のり";たとえば、次のようになります。

書き込み(「その年数を入力してください

群れはSeryozhaになります ";);

文字 "; p";の前の2行目の先頭にカーソルを置きます。 キーB> Backspace>を押すと、次のようになります。

write( "Seryozhaになる年数を入力してください");

それ以外の場合は、文字「; o」の後の最初の行の終わりにカーソルを置きます。 B>削除>「;プルアップ」キーを数回押します。 ボトムラインアップ。

キーB> Backspace>およびB> Delを使用 ete> できる "; 団結する"; ";破れた"弦。 たとえば、次のような状況では次のようになります。

write( "Seryozhaがあったであろう年数を入力してください");

文字「; d」の前にカーソルを置きます。 そして、「; Enter」という単語が表示されるまで、キーB> Backspace>を数回押します。 目的の構造を受け入れるか、文字「; e」の後にカーソルを置きます。 B> Delete>キーを数回押します。

不足している文字の挿入はさらに簡単です。

たとえば、いくつかの文字を見逃したとします。

wrte( "VveteはSezheになる年数");

最初の単語に「; i」;という文字がありません。「; Enter」; 「; Seryozha」という単語に2文字の「; di」;がありません。 文字 "; ep";。

文字「; t」にカーソルを置きます。 最初の単語に「; i」と入力します;キーボードから、すぐに正しい場所に挿入されます。 次に、文字「; t」にカーソルを置きます。 「; Vvete」という言葉で; キーボードから入力します "; di";、word "; 離れて移動します";および文字"; di ";が所定の位置に配置されます。カーソルを"; e ";の単語"; Sezha ";に置き、"; er ";、と入力します。

ブレンドモード

エディタは、既存の古いテキストに新しい文字をスーパーインポーズするモードでも機能します。このモードでは、カーソルが指す文字が新しい文字に置き換わり、カーソルの右側の残りの行はにシフトされません。権利。 ブレンディングモードに切り替えるには、B> Insキーを押します。 ert> (インert-挿入)、このキーをもう一度押すと、挿入モードに戻ります。 エディターがどのモードにあるかを示すのは、カーソルの形状です。挿入モードでは、カーソルは点滅する下線文字のように見え、オーバーレイモードでは、文字全体を隠す大きな点滅する長方形です。

自動インデントモード

エディターのもう1つの機能は、通常、自動インデントモードで機能することです。 このモードでは、新しい各行は前の行と同じ画面位置から始まります。

自動インデントモードは、プログラムのテキストフォーマットの優れたスタイルを維持します。左マージンからのインデントは、さまざまな演算子を強調表示し、プログラムをより視覚的にします。

コマンドで自動インデントモードをキャンセルできます Ctrl-O I(キーを押した状態 NSキーが最初に押されます O、次にキー Oキーを離して押す )、コマンドが繰り返されました Ctrl-O I自動インデントモードに戻ります。

以下にリストされているのは、上記にリストされているもの以外に、最も一般的に使用されるTurboPascalテキストエディターコマンドです。

コマンドの編集

バックスペース-B>バックスペース>-カーソルの左側の文字を削除します。

デル-カーソルが指している文字を消去します。

Ctrl-Y-カーソルが置かれている行を消去します。

入力-B> Enter>-新しい行を挿入します "; 切る"; 年;

Ctrl-Q L-現在の行を復元します(有効な場合

カーソルが変更された行を離れませんでした)。

ブロックでの作業

Ctrl-K B-ブロックの始まりをマークします。

Ctrl-K Y-ブロックを消去します。

Ctrl-K V-ブロックを移動します。

Ctrl-K P-ブロックを印刷します。

Ctrl-K H-ブロックを非表示/表示します(マークを外します)。

Ctrl-K K-ブロックの終わりをマークします。

Ctrl-K C-ブロックをコピーします。

Ctrl-K W-ブロックをディスクファイルに書き込みます。

プログラムの実行

プログラムを入力したら、実行を試みることができます。

これを行うには、B> Ctrl> +キーを押します(B> Ctrl>キーを押しながら、B> F9>キーを押します)。 メインメニューに移動し、B> F10>キーを押してから、ポインタを動かしてオプションを選択することで、同じ操作を実行できます。 走る B> Enter>キーを押します。

このオプションに関連付けられている第2レベルのメニューが画面に表示されます。 新しいメニューは「;」のようなものです。 落ちる";一番上の行から、このメニューはしばしばプルダウンメニューと呼ばれる理由です。画面は次のようになります(図4を参照)。

米。 4

次に、新しいメニューでオプションを見つける必要があります 走る(開始)そしてB> Enter>キーを押します。

テキストの入力に間違いがなかった場合は、数秒後に画面上の画像が変化します。 Turbo Pascalは、実行中のユーザープログラムが画面を自由に使えるようにします。 この画面は プログラムウィンドウ。

リクエストへの応答:

セリョーザとなる年数を入力します。16を入力してB> Enter>キーを押す必要があります。

実行が完了すると(プログラムの作業は実行と呼ばれることがよくあります)、プログラムテキストを含むエディターウィンドウが画面に再表示されます。 プログラムウィンドウの画像を表示する時間がなかった場合は、Alt-F5を押します。 この場合、エディターウィンドウ 隠れるそして、あなたはプログラムの結果を見ることができるでしょう。 画面をエディタウィンドウの再生モードに戻すには、任意のキーを押します。

プログラムの結果を表示するために画面をより便利にすることができます。 これを行うには、画面の下部に2番目のウィンドウを開くことができます。

これを行うには、F10キーを押してメインメニューから選択モードに移動し、ポインタをオプションに移動します デバッグ(デバッグ)そしてBキーを押します> Enter>-このオプションに関連する第2レベルのメニューが画面に表示されます。 画面は次のようになります(図5を参照)。


米。 5

新しいメニューでOUTPUTオプションを見つけ、ポインタをそのオプションに移動して、B> Enter>を押します。

画面の下部に2番目のウィンドウが表示されますが、消えることはありません。

これで、画面に2つのウィンドウが同時に表示されるようになります。もう一度F10キーを押して、を選択します。 、B> Enter>を押して、ポインタをオプションに移動します タイル(タイル)そしてB> Enter>を押します。

すべてが正しく行われると、画面は次のようになります(図6を参照)。

米。 6

プログラムウィンドウの輪郭を描く二重の境界線は、この特定のウィンドウが現在アクティブであることを示しています。

エディタウィンドウをアクティブにしましょう:B> Alt>キーを押し、離さずに番号1のキーを押します(エディタウィンドウには番号1があり、プログラムウィンドウには番号2があり、これらの番号は右上隅に書き込まれますフレームの)。 これで、すべてがプログラムでさらに作業する準備が整いました。

最初の間違いとその修正

1.たとえば、readln(a)ステートメントの後にセミコロンはありません。 プログラムの起動後、B> Ctrl> + B> F9>のキーを押すと、画面の最上行に赤で書かれたメッセージが表示されます。

エラー85: ";;"; 期待される。

(エラー85: ";;";欠落しています。)

エディターは、欠落している文字の次の文字、この例では変数bにカーソルを置きます。 いずれかのキーを押すと、エラーメッセージが消え、エディタが挿入モードに切り替わります。 カーソルを目的の場所に移動し、セミコロンを付ける必要があります-";" そして働き続けます。

2.変数の説明では、変数は書き込まれませんが、プログラムでは、たとえば変数が存在します。 NS..。 プログラムの起動後、メッセージが表示されます。

エラー3:不明な識別子。

(エラー3:不明なID。)

カーソルはこの変数に配置されます。この例では、変数に配置されます。 NS..。 エラーを修正する必要があります。 変数の書き込み NS変数宣言セクションで、続行します。

3.オペレーターの後に終止符はありません 終わりプログラムの最後に。 コンパイラメッセージは次のようになります。

エラー10:予期しないファイルの終わり。

(エラー10:ファイルの終わりが間違っています。)

カーソルは文字「;」に置かれます。 e";単語で"; 終わり";。完全に停止して、プログラムを再実行する必要があります。

ディスクへのファイルの書き込み

そのため、プログラムは編集および実行(スクロール)されたので、ディスクに書き込む必要があります。 これを行うには、メインメニューを使用して、オプション「;」を選択できます。 ファイル";(図7を参照)。アクションのシーケンスは次のとおりです。1)F10キーを押してメインメニューに移動します。2)ポインタをオプションに移動します"; ファイル";そしてB> Enter>、2番目のオプションメニューを押します"; ファイル";:

米。 7

オプション ";を選択できます。 保存する";。アクティブなエディタウィンドウの内容をディスクファイルに書き込みます。

B> Enter>キーを押すと、ファイル名がインストールされておらず、ウィンドウがNONAME00.PASという名前に関連付けられている場合、環境はファイル名を要求します。 名前を変更することも、同じままにすることもできます。

このオプションは、B> F2>を押すことにより、エディターから直接呼び出されます。

オプションを選択できます 保存するなので..。 アクティブなエディタウィンドウの内容を別の名前でディスクファイルに書き込みます。

このオプションのダイアログボックスは次のようになります(図8を参照)。

米。 8

入力フィールドには、アクティブなエディタウィンドウのコンテンツがコピーされるファイルの名前を入力する必要があります。 選択フィールドまたはオプション付きのプロトコルから既存のファイルを選択できます。 この場合、環境設定に応じて、ファイルの古い内容が破棄されるか、拡張子が.BAKの保険コピーとして保存されます。

プログラムテキストの行ごとの記述

Pascalには、プログラムテキストを行に分割するためのルールはありません。

しかし、番組を録画するために、あなたはいくつかを与えることができます

プログラムのテキストは、美しさのためだけでなく(そしてこれが主なものです!)間違いを避けるために視覚的に配置することが非常に重要です。 (クリアテキストでエラーを見つけるのははるかに簡単です。)

1.短くて意味のある関連演算子を除いて、各演算子は改行で記述する必要があります。

例えば、

write ... readln ...- 1行で記述され、短い代入演算子は1行で記述できます。

a:= 23; b:= 105; c:= 11.2。

2.異なるライン上にある同じレベルのオペレーターは、垂直に配置する必要があります。 左端から等間隔。

たとえば、3桁の数値の桁の合計を決定する一連の演算子を記述してみましょう。

s:= a div 100;

d:= a div 10 モッド 10;

e:= a モッド 10;

ここでは、すべての演算子は同等であり、順番に次々に移動するため、すべて同じ垂直位置から開始します。

3.別の演算子に含まれる演算子は、いくつかの位置(できれば同じ)だけ右にシフトする必要があります。

もし...なら

4.ベースワードのペアを垂直方向に揃えることをお勧めします。 始める終わり、私たちがすでに会ったこと、そして私たちが後で知るようになる言葉: 繰り返すそれまで, 記録終わり, 場合終わり.

最も人気のあるオペレーター配置オプションのいくつかを次に示します もしも:

NS) もし...なら ...

そうしないと ...

NS) もし...なら ...

そうしないと ...

v) もしも...

それから ...

そうしないと ...

NS) もしも ...

それから ...

そうしないと ...

e) もしも ... それから ... そうしないと ...

6.コメントは、説明する構文(識別子、演算子、その一部)の横、または別の行に書き込まれます。

書類

プログラミング プログラミング プログラミング、一般...棺 沈黙..。 ›ペアになっている数回 プログラミング合格した ...

  • Alistaircoburnペアプログラミングの長所と短所

    書類

    研究関連 プログラミングと組織の有効性。 素晴らしい...言語 プログラミング、特定の設計方法と プログラミング、一般...棺 沈黙..。 ›ペアになっている数回 プログラミング合格した ...

  • 個人的なスキルの最新の心理学の神経言語プログラミング入門

    書類

    それは呼ばれるのでしょうか?「結果は神経言語です プログラミング-隠れる面倒なフレーズ...無口、音声、音、声、と言う 沈黙、不協和音、子音、調和、甲高い、静かな..。

  • 神経言語プログラミング(初心者のための方法論ガイド)

    書類

    心理療法センター「LAD」V。I.ELMANOVICH神経言語学 プログラミング(初心者のための方法論ガイド)PART1。 ...モダリティ(A)。 1.ボリューム= 0の場合、「リッスンします 沈黙」、音量が最大の場合、「点灯...

  • 読み取り命令は、キーボードから変数(初期データ)の値を入力することを目的としています。 一般に、命令は次のようになります。

    read(Variable!、Variable2、...変数。ここで、variablesは変数の名前であり、その値はプログラムの実行中にキーボードから入力する必要があります。

    読み取りステートメントの記述例を次に示します。

    読む(a); 読む(Cena、Kol);

    readステートメントが実行されると、次のことが起こります。

    1.プログラムは作業を一時停止し、必要なデータがキーボードに入力されてキーが押されるまで待機します .

    2.キーを押した後 入力された値は、ステートメントで指定された変数に割り当てられます。

    たとえば、命令を実行した結果として

    読む(Tempérât);

    21行目を入力すると、Tempérâtの値は21になります。

    1つのreadステートメントを使用すると、複数の変数の値を取得できます。 この場合、入力した数値は1行で入力し、スペースで区切る必要があります。 たとえば、変数a、b、およびcのタイプが実数の場合、読み取り(a、b、c)を実行した結果として。 およびキーボード入力文字列:

    4.5 23 0.17

    変数の値は次のとおりです。a= 4.5; b = 23、o; c = 0.17。

    行にreadステートメントで指定された変数よりも多くの数値が含まれている場合、行の残りの部分は次のreadステートメントによって処理されます。 たとえば、命令を実行した結果として、次のようになります。

    読む(a、B); 読み取り(C);

    およびキーボード入力文字列

    10 25 18

    変数は次の値を受け取ります。a= 10、b = 25。読み取り命令(C)。 値が18の変数を割り当てます。

    readln命令は、キーボードから入力された行から次の番号を選択し、readln命令のリストから最後の変数に割り当てた後、残りの行が失われ、次の番号が失われるという点で、read命令とは異なります。 readまたはreadln命令には、新しい入力が必要です。

    たとえば、命令を実行した結果として、次のようになります。

    Readln(a、B); 読み取り(C);

    文字列を入力します

    10 25 18

    変数は次の値を受け取ります:a = 10、b = 25。その後、プログラムは変数cに割り当てるために、新しい番号が入力されるのを待ちます。

    各読み取りまたはreadln命令の前に書き込み命令を付けて、プログラムがユーザーに期待するデータをユーザーに通知する必要があります。 たとえば、購入コストを計算するためのプログラムのフラグメントは、次のようになります。

    Writeln( "元のデータを入力してください。"); 書き込み( "製品価格:"); readln(セパ); write( "バッチの数量:"); readln(Kol); 書き込み( "割引:"); readln(スキドカ);

    キーボードから入力したデータの種類が、読み取り(readln)命令で指定された名前の変数の種類と一致しないか、変換できない場合、プログラムがクラッシュし(読み取り後の命令は実行されません)、メッセージが表示されます。エラーについての画面上。

    プログラムは1行だけ異なります。 最初のプログラムは自明です—それは数字36を出力します。2番目のプログラムでは、aとbが何であるかはどこにも言われていませんが、代わりにReadLnステートメントが含まれています。 彼について話しましょう。

    ReadLnは「読み取り」行を読み取り、「読み取り行」を翻訳します。これは、コンピューターに停止して、キーボードから特定の情報を入力するのを待ってから作業を続行するように指示します。特に、ReadLn(a、b)は2つ待機します。入力する整数。

    したがって、開始後の最初のプログラムが最後まで停止せずに動作し、手間をかけずに結果が得られる場合、ReadLnオペレーターの2番目のプログラムは停止して待機します。 この待機中に、キーボードで20と入力し(ReadLn演算子のリストの最初はaであるため)、スペースバーを押してから、16と入力してEnterキーを押す必要があります。 パスカルは、スペースバーを押すことを、キーボードで1つの数字を入力し終えて、別の数字を入力し始めるという人からの信号として認識します。 キーボードで最後の数字を入力した後、このReadLnオペレーターの数字の入力が完了し、コンピューターが引き続き機能できることを示す標識としてEnterキーを押す必要があります。 これに従って、Enterキーを押した直後のコンピュータは待機を停止し、最初に番号20をメモリに送信してセルaに送信し、番号16をセルbに送信します。 この時点で、彼はReadLnステートメントの実行が終了したと見なし、次のステートメントであるWriteLnに進みます。 これにより、数値36が出力されます。

    したがって、両方のプログラムは同じことをします。 では、なぜ代入演算子の代わりにReadLnを使用するのですか? 結局のところ、最初のプログラムはより明確であり、停止することなく動作します。 その理由の1つは、ReadLnを使用するプログラムがはるかに普遍的で、「より自由」であるということです。最初のプログラムが2つの特定の数値のみを追加する問題を解決する場合、2番目のプログラムは2つの任意の数値を追加します。 2番目の理由は、ReadLnを使用するプログラムでは、プログラマーがプログラムの作成中に初期データの特定の値について考えないようにするため、プログラムの実行時にこの頭痛の種が残ります。 しかし、主な理由は、ReadLnを使用すると、プログラムの実行中にコンピューターと通信したり、コンピューターと対話したりできるためです。

    最初の理由の重要性を確認するために、次の問題を解決するプログラムを作成します。動物園には象が3頭、ウサギがかなり多く、ウサギの数は頻繁に変化します。 象は1日に100人のニンジンを食べ、ウサギは2人のニンジンを食べることになっています。 毎朝、動物園の係員がコンピューターにウサギの数を伝えます。 これに対応するコンピューターは、今日ウサギとゾウに与える必要のあるニンジンの総数を大臣に通知しなければなりません。

    変数の名前を考えてみましょう。

    kol_krol-動物園のウサギの数

    kol_slon-動物園の象の数

    norma_krol-1日にウサギが持つべきニンジンの数

    norma_slon-1日に象が持つべきニンジンの数

    vsego-必要なニンジンの数

    それでは、プログラムを書いてみましょう。

    VAR kol_krol、kol_slon、norma_krol、norma_slon、vsego:整数;

    norma_slon:= 100;

    ReadLn(kol_krol);

    vsego:= norma_krol * kol_krol + norma_slon * kol_slon;

    プログラムを作成したら、プログラマーはそれをコンピューターに入力し、デバッグして、ディスクに書き込みます。 これで彼の使命は終わりです。 朝、使用人はウサギを数え、ウサギが60匹いることを知り、コンピューターに来てプログラムを実行し始めます。

    最初の2つの演算子(norma_krol:= 2およびnorma_slon:= 100)を自動的に実行したコンピューターは、R​​eadLn演算子で停止します。 アテンダントは番号60を入力し、その後、コンピューターはこの番号をkol_krolセルに送信し、次のステートメント(kol_slon:= 3)に進みます。 最終的に、応答はモニターに表示されます:420。

    プログラム実行フローの概略図は次のとおりです。

    オペレーターの実行手順

    メモリセルには何がありますか

    ReadLn(kol_krol)

    vsego:= norma_krol

    翌朝、5匹のウサギが別の動物園に売られていることを発見すると、係員は同じプログラムを開始し、55番を入力して、答えを取得します-410。

    このやや素晴らしい例で、ReadLnを使用すると、快適に変更されないまま、初期データの任意の値についていつでも簡単に問題を解決できるプログラムを作成できることを示したいと思いました。 逆の方法も可能です。ReadLnの代わりに、kol_krol:= 60などの代入演算子を使用してください。 ただし、この場合、プログラマーはプログラム内のこの代入演算子を修正するために毎朝動物園に駆け込む必要があります。

    ReadLn演算子は、次のように角かっこなしで記述できます:ReadLn。 このようなレコードでオペレーターを実行すると、コンピューターは停止して待機しますが、情報を入力するのではなく、Enterキーを押すだけです。 したがって、これはプログラム実行中の単なる一時停止ステートメントです。 一時停止が必要な理由については、以下で説明します。

    ReadLn演算子に加えて、Read演算子はデータ入力にも使用されます。 初心者プログラマーにとって、それらの使用法の違いは重要ではありません。 今のところ、ReadLnのみを使用します。 括弧のないReadステートメントは一時停止しません。

    多くの人がそれに興味があると思います)))

    readおよびreadlnステートメント

    読み取り命令は、キーボードから変数(初期データ)の値を入力することを目的としています。 一般に、命令は次のようになります。

    読み取り(Variable1、Variable2、... VariableN)

    ここで、variablesは、プログラムの実行中にキーボードから値を入力する必要がある変数の名前です。

    読み取りステートメントの記述例を次に示します。

    読む(a); 読む(Cena、Kol);

    readステートメントが実行されると、次のことが起こります。

    1.プログラムは作業を一時停止し、必要なデータがキーボードに入力されてキーが押されるまで待機します .

    2http://tissot.ua/時計を購入する時計キエフを購入する。 ..。 キーを押した後 入力された値は、ステートメントで指定された変数に割り当てられます。

    たとえば、命令を実行した結果として

    読む(温帯);

    キーボードから21行目を入力すると、変数Temperatの値は数値21になります。

    1つのreadステートメントを使用すると、複数の変数の値を取得できます。 この場合、入力した数値は1行で入力し、スペースで区切る必要があります。 たとえば、変数a、b、およびcのタイプが実数の場合、命令の実行の結果として(a、b、c)が読み取られます。 およびキーボード入力文字列:

    4.5 23 0.17

    変数の値は次のとおりです。

    a = 4.5; b = 23.0; c = 0.17。

    行に読み取り命令で指定された変数よりも多くの数値が含まれている場合、行の残りの部分は、http://crystal.lviv.uaクリスタルクリスタルを読み取る次の命令によって処理されます。 ..。 https://mainvisa.com.ua外国人のためのウクライナへの写真の招待状。 ..。 たとえば、命令を実行した結果として

    読み取り(A、B); 読み取り(C);

    およびキーボード入力文字列

    10 25 18

    変数は次の値を受け取ります。A= 10、B = 25。命令の読み取り(C)。 値が18の変数を割り当てます。

    readln命令は、キーボードから入力された行から次の番号を割り当て、それをreadin命令のリストの最後の変数に割り当てた後、残りの行が失われ、次の読み取りまたは読み込み命令には新しい入力が必要です。

    たとえば、命令を実行した結果として

    readin(A、B); 読み取り(C);

    文字列を入力します

    10 25 18

    変数は次の値を受け取ります:A = 10、B = 25。その後、プログラムは新しい番号が入力されるのを待って、変数cに割り当てます。

    各読み取りまたは読み取り命令の前に書き込み命令を付けて、プログラムがユーザーに期待するデータをユーザーに通知する必要があります。 たとえば、購入コストを計算するためのプログラムのフラグメントは、次のようになります。

    writeln( "初期データを入力してください。");

    書き込み( "製品価格:");

    Readln(Сenа);

    write( "バッチの数量:");

    Readln(Kol);

    書き込み( "割引:");

    readln(スキドカ);

    キーボードから入力したデータの種類が読み取り(読み込み)命令で指定した変数の種類と一致しない、または変換できない場合、プログラムがクラッシュし(読み取り後の命令が実行されない)、メッセージが表示されます。エラーについて画面に表示されます。

    型指定されたファイルの場合、ファイルコンポーネントを変数に読み込みます。

    テキストファイルの場合、1つ以上の値を1つ以上の変数に読み込みます

    ノート:

    文字列変数の場合:

    Readは、次の行末マーカーまで(ただし、Eof(F)がTrueになるまで)のすべての文字を読み取ります。 読み取り後、読み取りは次の行に移動しません。 結果の文字列が文字列変数の最大長よりも長い場合、切り捨てられます。 最初の読み取りの後、後続の各読み取り呼び出しは行末マーカーを確認し、長さゼロの文字列を返します。

    複数の文字列値を読み取るには、ReadLnへの複数の呼び出しを使用します。

    Extended Syntaxオプションを有効にすると、Readプロシージャはnullで終了する文字列をnullベースの文字配列に読み込むことができます。

    整数型または実数型の変数の場合:

    読み取りは、数値行の前にあるスペース、タブ、または行末マーカーをスキップします。 数値文字列がそうでない場合
    期待される形式と一致すると、I / Oエラーが発生します。それ以外の場合、変数には結果の値が割り当てられます。 次の読み取りは、数値文字列を終了するスペース、タブ、または行末マーカーで始まります。

    読み取り手順の例

    WinCrt、WinDosを使用します。
    変数F:テキスト;
    Ch:文字;
    始める
    (コマンドラインからファイル名を取得します)
    割り当て(F、ParamStr(1));
    リセット(F);
    EOFではありませんが(F)
    始める
    読んだ(F、Ch);
    書き込み(Ch); (ファイルの内容を画面に表示します)
    終わり;
    終わり。

    • Readln
    • 書く
    • Writeln