Module: サブルーチン: プロシージャと関数 - 1


Problem

9 /12


ローカル変数とグローバル変数

Theory Click to read/hide

多くの場合、サブルーチン内でのみ使用される追加の変数を使用する必要があります。このような変数はローカル (またはローカル) と呼ばれ、変数が作成されたサブルーチン内でのみ操作できます。
 

ローカル変数スコープは、宣言される関数またはプロシージャです。

したがって、変数の有効範囲 (スコープ) を、それが本当に必要なサブルーチンのみに制限することができます。プログラミングでは、この技術はカプセル化と呼ばれます。 - 変数が外部から変更されないように隠します。

プログラム内の任意の場所 (サブルーチン内) で参照できる変数を宣言する必要がある場合、そのような変数はすべてのサブルーチンの外で宣言されます (以下の表のプログラム 3 を参照)。
このような変数はグローバルと呼ばれます。

3 つのプログラムを分析します。 <テーブル align="center" border="1" cellpadding="1" cellpacing="1" style="width:95%"> <本体> 1) このプログラムでは、変数 i はローカルです。ローカル変数がサブルーチン内で宣言されている 2) ここでは、メイン プログラムに変数 i (値 7) が存在する場合でも、値 5 の新しいローカル変数 i が作成されます。
このプログラムを実行すると、画面に値 75 が表示されます 3) このプログラムにはグローバル変数 i があります。その値はサブルーチン内およびメイン プログラム内で変更できます。
このプロシージャはグローバル変数 i を使用して動作し、新しい値 2 が割り当てられます。値 2 が画面に表示されます。 プロシージャ test();
var i: 整数;
始める
   私:= 5;
    writeln(i);
終了; 変数 i: 整数;

プロシージャ test();
var i: 整数;
始める
   私:= 5;
    writeln(i);
終了;

始める
   私:= 7;
   書き込み(i);
   テスト();
終了。 変数 i: 整数;

プロシージャ test();
始める
    i := 2;
終了;

始める
   テスト();
    writeln(i);
終了。

Problem

高さ n の冠を持つクリスマス ツリーを表示する、パラメータ n を持つプロシージャを記述します
メイン プログラムには、変数 n の値の入力とプロシージャの呼び出しが含まれている必要があります

<頭> <本体>
# 入力 出力
1 5 <プレ>     o    うーん  うおー  おおおお うおおおおおおおおお