اذهب إلى المحتوى

السؤال

نشر

Use the following program with Pascal like syntax for the questions below that ask about parameter passing mechanisms.

program myprogram; 
var 
   W : integer; 
   Z : array [0..2] of integer;
procedure Swap(M : integer; N : integer); 
begin 
temp : integer; 
  temp := M; 
  M := N; 
   N := temp; 
end;
begin {main} 
   W := 1; 
   Z[0] := 3; 
   Z[1] := 2; 
   Z[2] := 1; 
  Swap(W, z[W]);
writeln(W);
writeln(z[0]);
writeln(z[1]);
writeln(z[2]);
Swap(W, z[W]);
writeln(z[0]);
writeln(z[1]);
writeln(z[2]);
end.
By value    By reference    By name
 

بتاريخ الآن قال محمد الحربي13:

Use the following program with Pascal like syntax for the questions below that ask about parameter passing mechanisms.

program myprogram; 
var 
   W : integer; 
   Z : array [0..2] of integer;
procedure Swap(M : integer; N : integer); 
begin 
temp : integer; 
  temp := M; 
  M := N; 
   N := temp; 
end;
begin {main} 
   W := 1; 
   Z[0] := 3; 
   Z[1] := 2; 
   Z[2] := 1; 
  Swap(W, z[W]);
writeln(W);
writeln(z[0]);
writeln(z[1]);
writeln(z[2]);
Swap(W, z[W]);
writeln(z[0]);
writeln(z[1]);
writeln(z[2]);
end.
By value    By reference    By name
 

هذي 👇الاجابه بالنسبه للreference

Screenshot_٢٠٢٠٠٤٠٤-١٦١١٣٨_Pascal N-IDE.jpg

بتاريخ 5 دقائق مضت قال محمد الحربي13:

Use the following program with Pascal like syntax for the questions below that ask about parameter passing mechanisms.

program myprogram; 
var 
   W : integer; 
   Z : array [0..2] of integer;
procedure Swap(M : integer; N : integer); 
begin 
temp : integer; 
  temp := M; 
  M := N; 
   N := temp; 
end;
begin {main} 
   W := 1; 
   Z[0] := 3; 
   Z[1] := 2; 
   Z[2] := 1; 
  Swap(W, z[W]);
writeln(W);
writeln(z[0]);
writeln(z[1]);
writeln(z[2]);
Swap(W, z[W]);
writeln(z[0]);
writeln(z[1]);
writeln(z[2]);
end.
By value    By reference    By name
 

هذي 👇الاجابه بالنسبه للreference

Screenshot_٢٠٢٠٠٤٠٤-١٦١١٣٨_Pascal N-IDE.jpg

وهذا الاجابه للvalue

٢٠٢٠٠٤٠٤_١٦١١٣١.jpg

Recommended Posts

  • 0
نشر (معدل)

أهلا بك @محمد الحربي13.

هل المطلوب منك كتابة الكود أم إجراء تعديلات عليه؟

على العموم، هنالك طريقتين لإرسال متغيرات للدوال وهما كالآتي:

  • Pass By Value: وهنا عندما تقوم بإرسال متغيرات للدالة فالدالة تستقبل نسخ من هذه المتغيرات لتجري عليها العمليات المطلوبة أما المتغيرات الأصلية فتظل ثابتة كما هي.
  • Pass By Reference: وهنا تقوم بإرسال المتغير الأصلي للدالة (غالباً بإعطائها موقعه في الرام) وهنا يمكن للدالة التوصل لقيمة المتغير الأصلية وتعديلها مما يحدث تغييراً في جميع الأماكن التي يستخدم فيها هذا المتغير.

لذا عند استخدامك للدالة الخاصة بالتبديل باستخدام Pass By Value فالمتوقع بلا شك أن المتغيرات قيمها لن تتبدل خارج نطاق الدالة، ولكن عند استخدامك Pass By Reference فالمتوقع أن قيم المتغيرات ستتبدل في البرنامج كاملاً، وعلى مايبدو من الصور المرفقة لكلا الاستخدامين فإجاباتك صحيحة.

شكراً لك.

تم التعديل في بواسطة Mohammed Ahmed13

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...