مشاهدة النسخة كاملة : سؤال بخصوص الدورة... الدرس الثالث... function ؟
AL-MOB4RM3G
29-12-2008, 09:44 AM
السلام عليكم ورحمة الله
اخواني بارك الله لكم...
في الحقيقة لم افهم ما الفرق بين ال procedure و ال function بعد...
الفونكشن ترجع ناتج... هاكذا مكتوب في الدرس...
لكن لحد الآن لم افهم معني ناتج...
فهل ممكن توضيح بارك الله لكم...
ومتى يجب استدام ال function ؟
وهل ممكن الإستغناء عى ال function بستخدام ال procedure ؟
ام انهما امران مختلفان...
B.M.AbdelAziZ
29-12-2008, 10:32 AM
كل من ال procedure و ال function مجموعة من الاوامر
يقوم البرنامج باستدعاء تلك الاوامر ثم العودة لتكملة باقي أوامر البرنامج
الان الفرق الوحيد تقنيا هو حالة المكدس Stack عند العودة من تنفيذها
Procedure يمكن استدعائها فقط ولايمكن ان تكون جزء من عملية حسابية او امر اخر
Function يمكن ان تكون جزء من عملية حسابية او تدخل في امر ما
والسلام عليكم
AL-MOB4RM3G
29-12-2008, 12:27 PM
طيب اخي.. شكرا لك...
في نصف الفيديوا تقريبا...
عندما تم تحويل ال بروديسور الى فونكشن...
تم كتابة
function MathOperation(a, b : integer; Sig : string);
begin
if Sig = '+' then result := a + b;
if Sig = '-' then result := a - b;
if Sig = '*' then result := a * b;
end;
وتم كتابة result ولكن لم يتم تعريفه.. فكيف هذا اخي الكريم ؟
B.M.AbdelAziZ
29-12-2008, 01:18 PM
الResult لا يتم تعريفه لانه يمثل الFunction نفسها
AL-MOB4RM3G
29-12-2008, 02:07 PM
طيب اخي...
مع انني انا كاتب نفس الشئ الذس هو مكتوب في الدرس الّى انه يظهر خطأ عندي...
جربت البرنامج وهو شغّال بدوان مشاكل...
ولكن الحطأ مازال يظهر...
[warning] unit1.pas(35): Return value of function 'math' might be undefined
ما العمل بارك الله لكم؟...
هو هو خطأ ممكن تجاوزه بلتجاهل؟
ام انه خطا مهم التصليح ؟
B.M.AbdelAziZ
29-12-2008, 02:33 PM
اكمل الدرس
انت توقفت عند : اضافة نوع الناتج مهم جدا جدا
حيث كان الكود
function MathOperation(a, b : integer; Sig : string);
ولم تكمل وتكتب
function MathOperation(a, b : integer; Sig : string):integer;
كل Function بحاجة لتعرف نوع الناتج وفي حالتنا Integer
دائما حاول متابعة الدرس جيدا
AL-MOB4RM3G
29-12-2008, 04:17 PM
نعم صحيح اخي...
كان ينقصني دقة الملاحظة والله المستعان...
شكرا لك.
vBulletin® , Copyright ©2008-2012