صفحة 1 من 2 12 الأخيرةالأخيرة
النتائج 1 إلى 15 من 19

الموضوع: معرفة العدد اذا كان فردي او زوجي ؟ كيف ؟

  1. #1

    معرفة العدد اذا كان فردي او زوجي ؟ كيف ؟



    السلام عليكم ،،،

    كيف حال الجميع ..؟ أتمنى أن تكونوا بخير ...

    لدي فكرة عن طريقو معرفة العدد هل هو فردي أو زوجي لكنها طويلة ...

    فكرتها أن أقسم العدد على 2 اذا كان العدد الناتج عدد صحيح فانه زوجي ... واذا كان الناتج عدد عشري فانه عدد فردي ...

    طبعاً التأكد يكون عن طريق gettype

    لكن السؤال ... هل يوجد دالة واحدة بدون لف ودوران تأتي بالنوع ، هل هي زوجية أم فردي ؟


    وشكراً







  2. #2


    كود PHP:

    function check_($val)
     {
     
    // اذا كان ناتج القسمة هو صفر فأكيد هو عدد زوجي
      
    if( $val == )
        {
        
    // العدد زوجي
        
    return true;
        }
        else
        {
        return 
    false;
        }
     }


    // تجربة
    if(check_(5))
     {
    echo 
    "العدد زوجي";
     }
     else
     {
     echo 
    "العدد فردي";
     } 






    __________________
    عدت
    اقتراحاتكم -> www.elbachiri.com

  3. #3
    عضو شرف
    تاريخ التسجيل
    May 2007
    المشاركات
    1,647


    الفكرة المطروحة سليمة ، إلا أن آلية العمل انحرفت لديك في نهاية الفكرة ..

    كود الأستاذ عبدالواحد يفي بالغرض ، وهو تطبيق لفكرتك، أي القسمة على 2 ، فإذا كانت تقبل القسمة على 2 ، وهذا يعني أن [ الباقي ] = صفر .. فالعدد زوجي ، خلاف ذلك ، فالعدد فردي ..

    * ملاحظة: % هو المعامل الرياضي للـ "باقي" في لغة PHP

    تحياتي، أشرف السمهوري





    __________________
    # اتبعني على Twitter
    # عِرفان ساهم ببناء المحتوى العربي العلمي على الإنترنت!



  4. طيب؟ ليش ما نشوف طريقه ثانيه؟ طريقع شوي معقده، "التعقيد في البرمجه معناها صعب الاستيعاب للانسان ولكن يحسن اداء البرنامج بشكل كبير" الا وهي استخدام البتات ..
    الحل هو

    كود PHP:
    function isOdd($number){
        return 
    $number&1;
    }

    echo 
    isOdd(4);// false
    echo isOdd(5);// true 
    الشرح: كما نعلم ان الحاسبات تستخدم الاعداد الثنائيه اي 1 و 0 فقط..
    "انا لن اشرح كيفيه تمثيل الاعداد العشريه الى الاعداد الثنائيه لانها مشروحه في كل مكان"

    العلامه & في PHP معناها عمليه "او" اي اذا كان البت الاول 1 والاخر 1 يعني 1 اما في الحالات الاخرى 0
    مثال:
    الرقم 5 = 0101 0000
    والرقم 1 = 0001 0000

    فذا نفذنا العمليه
    0101 0000 = الرقم العشري 5
    0001 0000 = الرقم العشري 1
    =======
    0001 0000 = الرقم العشري 1

    فاذا اخذنا المثال 6 و 1
    0110 0000 = الرقم العشري 6
    0001 0000 = الرقم العشري 1
    =======
    0000 0000 = الرقم العشري 0

    اخوكم خالد





    __________________
    هلابي افضل المواقع العربية تصميماً
    انصح باستخدام ابونتو

  5. #5
    عضو شرف
    تاريخ التسجيل
    May 2007
    المشاركات
    1,647


    رائع والله أستاذ خالد ..

    قمت بتطبيق بعض التجارب حتى أفهم العملية أكثر ، حتى اتّضح الموضوع تماماً بالنسبة لي والحمدلله ..

    هذا يعني أن العدد الزوجي دائماً تكون فيه خانة الواحد الثنائية ( Binary ) بقيمة صفر .. والعدد الفردي تكون قيمتها 1 .. هذه هي الفكرة ، أليس كذلك؟

    الآن، لمعرفة العدد الزوجي ، هل يمكن استخدام هذه الطريقة ؟
    كود PHP:
        return $number+1&1
    أم أنك لا تنصح بها ولديك بديل لها ؟

    جزاك الله خيراً ، أحب هذه المعلومات الجديدة ..

    تحياتي، أشرف السمهوري





    التعديل الأخير تم بواسطة أشرف السمهوري ; 16-05-2008 الساعة 09:05 AM
    __________________
    # اتبعني على Twitter
    # عِرفان ساهم ببناء المحتوى العربي العلمي على الإنترنت!



  6. اما عن الاعداد الزوجيه لا انصح باستخدام طريقتك لانك في مثالك تفعل عمليه "او" على الرقم الغلط الا وهي الواحد
    كود PHP:
     return $number+1&1
    فالحل النظيف نسبيا هو .. اما
    كود PHP:
    return ($number+1)&1
    او

    كود PHP:
    return ++$number&1
    ولكن حلولي هذي ليست المثلى .. لانها لا تتعامل مع الارقام السالبه والرقم 0 اي ضبط الداله لكي تتعامل مع تلك الحالات





    __________________
    هلابي افضل المواقع العربية تصميماً
    انصح باستخدام ابونتو

  7. #7
    عضو شرف
    تاريخ التسجيل
    May 2007
    المشاركات
    1,647


    هذا ما اعتقدته قبل التجربة في المرة الأولى ..

    بعد التجربة وجدت أن نتيجة هذه السطور جميعاً هي واحدة:
    كود PHP:
    return $number+1&1;
    return (
    $number+1)&1;
    return (
    abs($number)+1)&1
    أعتقد أن المعاملات الرياضية يتم تنفيذها قبل المعاملات المنطقية ، لذلك ، فإن + تنفذ قبل & حسب التجربة ..

    والأعداد السالبة لا تتأثر بالإشارة السالبة ، حتى وإن تأثرت ، فإن :
    كود:
    5+1 = 6
    -5+1 = -4
    المهم هو أنه عند إضافية 1 أو طرح واحد ستتغير القيمة من فردية إلى زوجية أو العكس ، لا يهم إن كانت القيمة المطلقة الجديدة أكبر أو أصغر من الأصلية ،

    أتمنى أن تكون قد فهمتني هنا ..

    وشكراً لردك السريع أستاذي خالد ..

    تحياتي، أشرف السمهوري





    __________________
    # اتبعني على Twitter
    # عِرفان ساهم ببناء المحتوى العربي العلمي على الإنترنت!

  8. #8


    عبد الواحد البشيري : شكراً لك أخي الغالي على المساعدة ... طريقة جميلة ... وعملية !


    أشرف السمهوري : حياك الله أخوي ، كيف حالك ان شاء الله بخير ؟
    الفكرة المطروحة سليمة ، إلا أن آلية العمل انحرفت لديك في نهاية الفكرة ..
    جميل ... لكن هل لي أن أعرف أين الخطأ في الموضوع ؟ بانتظارك ...


    hilaby : طريقة جميلة تدل على خبرتك بهذه اللغة ... أتمنى لك التوفيق






  9. #9
    عضو جديد
    تاريخ التسجيل
    Jun 2007
    المشاركات
    17


    هناك طريقة مختصرة أيضا لم يتطرق لها أحد

    كود PHP:
    $result=($val%2)?true:false







  10. #10
    عضو نشيط جدا
    تاريخ التسجيل
    Sep 2006
    المشاركات
    389


    هناك طريقة مختصرة أيضا لم يتطرق لها أحد

    كود PHP:
    $result=($val%2)?true:false
    هل هذا الكود هو نفس هذا الكود :

    كود PHP:
    if($val%2){
    return 
    true;
    }else{
    return 
    false







    __________________
    أرجوا من الجميع ان يسامحوني ، سواء عرفوني أو لم يعرفوني !! ، ارجوا من جميع من قد اكون اسأت اليهم أن يصفحوا عني ، ومن لديهم عندي حقوق أن يطلبوها مني .. جمعنا الله في الجنان .

  11. #11
    عضو شرف
    تاريخ التسجيل
    May 2007
    المشاركات
    1,647


    الحمدلله أنا بخير ، طمني عنك انت ..

    طبعاً التأكد يكون عن طريق gettype
    هنا المشكلة ، لا داعي لذلك ، حيث أن الباقي إن لم يكن صفراً فالعدد فردي .. فقط هكذا ..

    $result=($val%2)?true:false;
    لم تكن الفكرة مدى اختصار الكود ، الفكرة هي ماهية الكود فحسب ..

    تحياتي، أشرف السمهوري





    __________________
    # اتبعني على Twitter
    # عِرفان ساهم ببناء المحتوى العربي العلمي على الإنترنت!

  12. #12
    عضو نشيط جدا
    تاريخ التسجيل
    Sep 2006
    المشاركات
    389


    طيب ما في احد يتكلم ويرد علي !





    __________________
    أرجوا من الجميع ان يسامحوني ، سواء عرفوني أو لم يعرفوني !! ، ارجوا من جميع من قد اكون اسأت اليهم أن يصفحوا عني ، ومن لديهم عندي حقوق أن يطلبوها مني .. جمعنا الله في الجنان .

  13. #13


    طيب ما في احد يتكلم ويرد علي !
    اهﻻ بك اخي الفايق

    بالنسبة للكود الذي اختصره اﻷخ قبلك و انت فمت بشرحه برمجيا جميل حيث اذا كان الرقم فردي يعطي true و الزوجي يعطي false





    __________________
    عدت
    اقتراحاتكم -> www.elbachiri.com

  14. #14
    عضو نشيط جدا
    تاريخ التسجيل
    Sep 2006
    المشاركات
    389


    اهﻻ بك اخي الفايق

    بالنسبة للكود الذي اختصره اﻷخ قبلك و انت فمت بشرحه برمجيا جميل حيث اذا كان الرقم فردي يعطي true و الزوجي يعطي false
    هلا فيك عبدالواحد
    معنى كلامك انه الكود هو نفسه ، إن شاء الله هو كذلك





    __________________
    أرجوا من الجميع ان يسامحوني ، سواء عرفوني أو لم يعرفوني !! ، ارجوا من جميع من قد اكون اسأت اليهم أن يصفحوا عني ، ومن لديهم عندي حقوق أن يطلبوها مني .. جمعنا الله في الجنان .

  15. #15


    طيب؟ ليش ما نشوف طريقه ثانيه؟ طريقع شوي معقده، "التعقيد في البرمجه معناها صعب الاستيعاب للانسان ولكن يحسن اداء البرنامج بشكل كبير" الا وهي استخدام البتات ..
    الحل هو

    كود PHP:
    function isOdd($number){
        return 
    $number&1;
    }

    echo 
    isOdd(4);// false
    echo isOdd(5);// true 
    الشرح: كما نعلم ان الحاسبات تستخدم الاعداد الثنائيه اي 1 و 0 فقط..
    "انا لن اشرح كيفيه تمثيل الاعداد العشريه الى الاعداد الثنائيه لانها مشروحه في كل مكان"

    العلامه & في PHP معناها عمليه "او" اي اذا كان البت الاول 1 والاخر 1 يعني 1 اما في الحالات الاخرى 0
    مثال:
    الرقم 5 = 0101 0000
    والرقم 1 = 0001 0000

    فذا نفذنا العمليه
    0101 0000 = الرقم العشري 5
    0001 0000 = الرقم العشري 1
    =======
    0001 0000 = الرقم العشري 1

    فاذا اخذنا المثال 6 و 1
    0110 0000 = الرقم العشري 6
    0001 0000 = الرقم العشري 1
    =======
    0000 0000 = الرقم العشري 0

    اخوكم خالد
    معليش اصبر معي قليﻻ

    مثﻻ هذا السطر
    كود PHP:
    echo 6&1
    اذا كان الرقم 6 اول ارقامه 0 "كما شرحت" اطبعه او اطبع الرقم 1

    حقيقة ﻻ يزال عندي غموض ﻻستخدام الرمز & في هذ اﻷمر ﻻنني جربته على ارقام مختلفة والنتيجة لم افهمها ...

    ممكن توضيح اكثر اخي خالد او اﻷخ اشرف





    __________________
    عدت
    اقتراحاتكم -> www.elbachiri.com





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض