Rabu, 30 Maret 2011

Parameter

Submitted by taoyue.com on Tue, 2011/01/06 - 20:58Sebuah daftar parameter dapat dimasukkan sebagai bagian dari prosedur pos. Daftar Parameter memungkinkan nilai-nilai variabel yang akan ditransfer dari program utama prosedur. Prosedur baru pos adalah:
Prosedur Nama (formal_parameter_list); ini daftar parameter terdiri dari kelompok beberapa parameter, yang dipisahkan oleh titik koma:
param_group_1; param_group2; ... ; Param_groupn parameter Setiap kelompok memiliki bentuk:
identifier_1, identifier_2, ... , Identifier_n: data_type Prosedur ini disebut dengan melewatkan argumen (disebut daftar parameter aktual) dari jumlah dan jenis yang sama sebagai daftar parameter formal.
Nama prosedur (a, b: integer, c, d: real);mulai
  
a: = 10;
  
b: = 2;
  
writeln (a, b, c, d)akhir; Misalnya anda disebut prosedur di atas dari program utama sebagai berikut:
alpha: = 30;Nama (alpha, 3, 4, 5); Bila Anda kembali ke program utama, berapakah nilai alpha? 30. Namun, alpha dilewatkan ke suatu, yang diberi nilai 10. Apa yang sebenarnya terjadi adalah bahwa dan alpha sama sekali berbeda. Nilai dalam program utama tidak terpengaruh oleh apa yang terjadi dalam prosedur.
Hal ini disebut panggilan-by-value. Ini mengirimkan nilai dari variabel ke prosedur.
Cara lain untuk melewati parameter adalah panggilan-oleh-referensi. Hal ini menciptakan hubungan antara parameter formal dan parameter aktual. Ketika parameter formal yang diubah dalam prosedur, parameter aktual juga diubah. Call-by-referensi diaktifkan dengan mendahului kelompok parameter dengan VAR a:
VAR identifier1, identifier2, ..., identifiern: datatype; Dalam hal ini, konstanta dan literal tidak boleh digunakan sebagai parameter aktual karena mereka mungkin berubah dalam prosedur.
Berikut adalah contoh yang Mixes panggilan-oleh-nilai dan call-by-referensi:
Nama prosedur (a, b: integer; VAR c, d: integer);mulai
  
c: = 3;
  
a: = 5akhir;
mulai
  
alpha: = 1;
  
gamma: = 50;
  
delta: = 30;
  
Nama (alfa, 2, gamma, delta);akhir. Segera setelah prosedur telah dijalankan, gamma memiliki nilai 3 karena c adalah parameter referensi, tapi masih alpha 1 karena merupakan parameter nilai.
Ini sedikit membingungkan. Pikirkan panggilan-nilai dengan-sebagai variabel menyalin, kemudian memberikan salin prosedur. Prosedur bekerja pada salinan dan membuang ketika hal itu dilakukan. Variabel asli tidak berubah.
Call-by-referensi adalah memberikan variabel yang sebenarnya prosedur. Prosedur ini bekerja langsung pada variabel tersebut dan mengembalikannya ke program utama.
Dengan kata lain, call-by-value adalah satu arah transfer data: program utama dengan prosedur. Call-by-reference berjalan baik.

 

Tidak ada komentar:

Posting Komentar