الدوال
الدوال
Section titled “الدوال”الدوال هي وحدات الكود القابلة لإعادة الاستخدام. تساعد على تنظيم الكود وتقليل التكرار.
تعريف دالة بسيطة
Section titled “تعريف دالة بسيطة”دالة تحية() { اطبع("مرحباً من الدالة!");}استدعاء الدالة
Section titled “استدعاء الدالة”تحية(); // يطبع: مرحباً من الدالة!الدالة مع معاملات
Section titled “الدالة مع معاملات”دالة اجمع(أ: صحيح, ب: صحيح) -> صحيح { أرجع أ + ب;}
// الاستدعاءدع ناتج = اجمع(15, 27);اطبع_صحيح(ناتج); // 42أنواع القيم المُرجعة
Section titled “أنواع القيم المُرجعة”دالة تُرجع عدد صحيح
Section titled “دالة تُرجع عدد صحيح”دالة مربع(س: صحيح) -> صحيح { أرجع س * س;}دالة تُرجع عدد عشري
Section titled “دالة تُرجع عدد عشري”دالة احسب_دائرة(نق: عشري) -> عشري { أرجع 3.14159 * نق * نق;}دالة تُرجع نص
Section titled “دالة تُرجع نص”دالة رسالة_ترحيب() -> نص { أرجع "أهلاً وسهلاً!";}دالة بدون قيمة مُرجعة
Section titled “دالة بدون قيمة مُرجعة”دالة اعرض_رسالة(نص_الرسالة: نص) { اطبع(نص_الرسالة);}الدوال التكرارية (Recursive)
Section titled “الدوال التكرارية (Recursive)”دالة تستدعي نفسها:
// حساب فيبوناتشيدالة فيب(ن: صحيح) -> صحيح { إذا ن <= 1 { أرجع ن; } أرجع فيب(ن - 1) + فيب(ن - 2);}
// الاستدعاءاطبع_صحيح(فيب(10)); // 55المضروب (Factorial)
Section titled “المضروب (Factorial)”دالة مضروب(ن: صحيح) -> صحيح { إذا ن <= 1 { أرجع 1; } أرجع ن * مضروب(ن - 1);}
اطبع_صحيح(مضروب(5)); // 120الدالة الرئيسية
Section titled “الدالة الرئيسية”كل برنامج كنوز يبدأ من الدالة رئيسية:
دالة رئيسية() { اطبع("بداية البرنامج");}مع قيمة مُرجعة
Section titled “مع قيمة مُرجعة”دالة رئيسية() -> صحيح { اطبع("البرنامج انتهى بنجاح"); أرجع 0; // 0 يعني نجاح}المراجع في المعاملات
Section titled “المراجع في المعاملات”مرجع ثابت (للقراءة فقط)
Section titled “مرجع ثابت (للقراءة فقط)”دالة اطبع_القيمة(قيمة: &ص64) { اطبع_صحيح(*قيمة);}
دع عدد = 42;اطبع_القيمة(&عدد);مرجع متغير (للقراءة والكتابة)
Section titled “مرجع متغير (للقراءة والكتابة)”دالة زد_القيمة(قيمة: &متغير ص64) { *قيمة = *قيمة + 1;}
دع متغير رقم: ص64 = 10;زد_القيمة(&متغير رقم);اطبع_صحيح(رقم); // 11تعبيرات لامدا
Section titled “تعبيرات لامدا”دوال مجهولة قصيرة:
// تعريف لامدا للجمعدع جمع = |س: صحيح, ص: صحيح| -> صحيح { أرجع س + ص;};
دع ناتج = جمع(10, 20);اطبع_صحيح(ناتج); // 30لامدا مع معامل واحد
Section titled “لامدا مع معامل واحد”دع مربع = |س: صحيح| -> صحيح { أرجع س * س;};
اطبع_صحيح(مربع(7)); // 49استخدام لامدا للمقارنة
Section titled “استخدام لامدا للمقارنة”دع الأقصى = |س: صحيح, ص: صحيح| -> صحيح { إذا س > ص { أرجع س; } أرجع ص;};
اطبع_صحيح(الأقصى(25, 18)); // 25المثال الكامل
Section titled “المثال الكامل”// دالة بسيطةدالة تحية() { اطبع("مرحباً!");}
// دالة مع معاملاتدالة اجمع(أ: صحيح, ب: صحيح) -> صحيح { أرجع أ + ب;}
// دالة تكراريةدالة فيب(ن: صحيح) -> صحيح { إذا ن <= 1 { أرجع ن; } أرجع فيب(ن - 1) + فيب(ن - 2);}
// دالة حساب المساحةدالة مساحة_دائرة(نق: عشري) -> عشري { أرجع 3.14159 * نق * نق;}
دالة رئيسية() { اطبع("=== الدوال ===");
// استدعاء دالة بسيطة تحية();
// دالة مع معاملات دع ناتج = اجمع(15, 27); اطبع("15 + 27 = "); اطبع_صحيح(ناتج);
// فيبوناتشي اطبع("=== فيبوناتشي ==="); لكل ي في 0..10 { اطبع_صحيح(فيب(ي)); }
// مساحة دائرة دع م = مساحة_دائرة(5.0); اطبع("مساحة الدائرة (نق=5): "); اطبع_عشري(م);
// لامدا دع ضعف = |س: صحيح| -> صحيح { أرجع س * 2; }; اطبع("ضعف 7: "); اطبع_صحيح(ضعف(7));}