• 0

ابغى اتأكد من حلي هذا سؤال بلغة الباسكال

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

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

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

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

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

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

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

شكراً لك.

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

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن