النتائج 1 إلى 8 من 8

الموضوع: حوار مع مبرمج عالمي ..

  1. #1
    عضو نشيط
    تاريخ التسجيل
    Jan 2008
    المشاركات
    133

    Thumbs up حوار مع مبرمج عالمي ..



    بسم الله الرحمن الرحيم
    السلام عليكم ورحمة الله وبركاته
    كنت أسبح يوما في بحور الإنترنت ..
    و صادفت مبرمجا أعجبني قوله و عمله ..
    فسرعان ما تعرفت به و دارت بيني و بينه محادثة طويلة على الماسنجر ..
    و كان يعمل باحثا في شركة CheckPoint المتعاقدة مع شركة Kaspersky Lab
    الشركة الروسية ذات مضاد الفيروسات الشهير ..
    سألته عن كيفية وصوله لهذه المكانة العلمية في البرمجة ..
    و ماذا علي أن أفعل كي أكون مثله ..
    قال لي سأختبرك في سؤال بسيط جدا في البرمجة ..
    و منه ستغير مسار حياتك البرمجية ..
    فقررت أن أنقل لكم هذا الحوار بعد أن ترجمته للعربية:

    هو : بتعرف ال factorial of a number ؟؟
    أنا : طبعا .. فمثلا ال factorial للرقم تسعة هو 9*8*7*6*5*4*3*2*1 و ال factorial ل4 هو 4*3*2*1 و هكذا ...
    هو : مية مية كلامك !
    عندي متغيرا نوعه Integer و اسمه مثلا Input واريد منك الان ان تكتب لي كود ، يجيب لي ال factorial الخاص به ..
    بس خلي الكود تبعك Optimized ..
    أنا : فقط هذا هو المطلوب ,, ثواني خليك معاي واكتبلك الكود
    هو : Take Ur Time

    و بعد حوالي من دقيقة إلى دقيقتين ..
    أنا : تفضل يا عزيزي الكود:

    كود PHP:
    int fact(int input
    كود PHP:
    [size="4"][font="Times New Roman"]{ [/font][/size]
    [
    size="4"][font="Times New Roman"]    if (input >= 2) [/font][/size]
    [
    size="4"][font="Times New Roman"]        input *= fact(input 1); [/font][/size]
    [
    size="4"][font="Times New Roman"]    return input; [/font][/size]
    [
    size="4"][font="Times New Roman"]}  [/font][/size
    هو : Recursion ؟
    أنا : أي نعم ..
    هو : ألا تعرف أن الRecursion لا تمس الOptimizing بشيء!!!
    و أنها خطيرة على الذاكرة !!
    أنا : بالطبع أعرف ..
    هو : اوك اريد منك تكتبلي الكود بدون Recursion ..
    أنا : يعني أعمله loop ؟؟؟
    هو : أوك ..
    أنا : طيب ثواني خليك معاي ..
    أنا : تفضل الكود ..
    كود PHP:
    int factorial(int input
    كود PHP:
    [size="4"][font="Times New Roman"]{ [/font][/size]
    [
    size="4"][font="Times New Roman"]    if (input <= 2) [/font][/size]
    [
    size="4"][font="Times New Roman"]        return input; [/font][/size]
    [
    size="4"][font="Times New Roman"]    int output input; [/font][/size]
    [
    size="4"][font="Times New Roman"]    for (int i input 1>= 2i--) [/font][/size]
    [
    size="4"][font="Times New Roman"]    { [/font][/size]
    [
    size="4"][font="Times New Roman"]        output *= i; [/font][/size]
    [
    size="4"][font="Times New Roman"]    } [/font][/size]
    [
    size="4"][font="Times New Roman"]    return output; [/font][/size]
    [
    size="4"][font="Times New Roman"]}  [/font][/size
    هو : طيب حلو كثير .. و انت بصراحة عجبتني بإنك عملت عد تنازلي في الloop علشان توفر على البروسيسور الحسابات ..
    أنا : هههههه طيب كويس إني عجبتك
    هو : طيب يلا نناقش هذا الكود .. ونحاول نختصره ..
    أنا : ممم أوك ناقش يا سيدي ..
    وكنت بقول في بالي " هذا الرجل مجنون ولا شو ؟ شو يختصر وما يختصر !!!
    يعني لا عاجبه ال Recursion ولا عاجبه الكود هذا !! هذا واحد فاضي ومو لاقي حدا يتسلى عليه غيري ؟!!! "

    هو : انتبه معاي .. انت في الأول كاتب شرط
    كود PHP:
    if (input <= 2
    كود PHP:
    [size="4"][font="Times New Roman"]        return input;  [/font][/size
    شو الفائدة منه ؟؟؟
    أنا (قلتله و أنا مستغرب) : علشان لو القيمة ب2 أو ب1 أو صفر أو سالبة ترجع زي ما هي ..
    هو : طبعا طبعا معاك حق !
    لكن هل من الممكن إنك تدمج هذا الشرط مع الloop ؟؟؟
    أنا :مش فاهم ,, كيف يعني ؟؟
    لو أنا كررت الشرط داخل الloop هكذا انا احمل على البروسيسور عمليات أكثر ..
    فكل مرة يكرر الكلام اللي جوه الloop سيتحقق من الشرط !!
    هو : أصبر أصبر انت مش فاهم ..
    أنا :طيب فهمني ..
    هو : تعال نجرب الأرقام التي ينطبق عليها الشرط على الloop
    لو الinput يساوي 2 حيكون الInput-1 يساوي 1 .. و ال1 لا ينطبق عليه شرط الloop اللي هو i >= 2
    في هذه الحالة الloop لن يتم المرور خلالها ولا مرة !!
    و لو جربتها على ال1 و الصفر و الأرقام السالبة ستحصل على نفس النتيجة ..
    فما فائدة الشرط من الاساس ؟؟
    أنا : تصدق معاك حق !!
    بس معلش أنا كتبتها على عجلة من أمري دون أن أحللها ..
    هو : مش مشكلة ماهو احنا بنحللها سوا
    اكتبلي الكود من غير الشرط اللي في الأول ..
    أنا : الكود يا سيدي ..
    كود PHP:
    int output input
    كود PHP:
    [size="4"][font="Times New Roman"]for (int i input 1>= 2i--) [/font][/size]
    [
    size="4"][font="Times New Roman"]{ [/font][/size]
    [
    size="4"][font="Times New Roman"]    output *= i; [/font][/size]
    [
    size="4"][font="Times New Roman"]}  [/font][/size
    هو : تمام ..
    بس فيه حاجة .. انت ليه فارض output على شكل Integer مع أنك عندك Input ايضا على شكلة Integer ؟؟
    أنا : ههههه علشان الInput يكون فيه الرقم المدخل و الoutput يكون فيه الرقم المخرج ..
    أنا محتاجهم هما الإتنين ..
    هو : لأ ركز كويس .. انت مش محتاجهم هما الإتنين .. انت ممكن تستغنى عن واحد فيهم !!
    أنا : ممممم (بافكر) مممم مممم مممم مممم
    طيب يا معلم .. أنا ممكن أكتب الكود هكذا :
    كود PHP:
    for (int i input 1>= 2i--) 
    كود PHP:
    [size="4"][font="Times New Roman"]{ [/font][/size]
    [
    size="4"][font="Times New Roman"]    input *= i; [/font][/size]
    [
    size="4"][font="Times New Roman"]} [/font][/size
    هو : حلو كثير يا مبدع .. شفت اختصرنا الكود كيف ..
    أنا : آه بصراحة اختصارك كبير للكود .. و ده بيوفر كتير على الذاكرة و المعالج .. انت فعلا فنان لأن أنا ما كنت اختصر أكوادي من قبل بهذا الشكل !!
    هو : طيب فيه اختصارات تانية ..
    أنا : ههههههههه هو عاد فيه كود يا عم ؟
    أختصر إيه بس !!!
    هو : شوف يا سيدي انت قايل في شرط الloop أن i >= 2 .. حلل لي هذا الشرط ..
    أنا : الأول المعالج بيتأكد إن قيمة i أكبر من 2
    ثم بيتأكد إذا كانت قيمة i تساوي 2
    هو : الله ينور عليك يا معلم .. هكذا انت عندك عمليتين
    طيب ينفع أختصرهم لعملية واحدة ..
    أنا : !!!!!!!!! كيف لم تاتني هذه الفكرة !!!!!!!!
    طبعا ينفع أقول i > 1 وهذا نظرا لانه عندنا اعداد صحيحة ..
    هو : طيب اكتب لي الكود النهائي علشان نحاول نختصره اكثر ..
    أنا :طيب يلا نختصره .. هذا هو الكود
    كود PHP:
    for (int i input 11i--) 
    كود PHP:
    [size="4"][font="Times New Roman"]{ [/font][/size]
    [
    size="4"][font="Times New Roman"]    input *= i; [/font][/size]
    [
    size="4"][font="Times New Roman"]}  [/font][/size
    هو :كويس ركز معاي ..
    الloop متكونة من 3 أجزاء
    الجزء الأول و هو int i = input – 1 و بيتكرر مرة واحدة في بداية الloop
    و الجزء الثاني و هو i > 1 و هو بيتكرر في بداية كل دورة من الloop
    و الجزء الثالث i-- و هو بيتكرر في نهاية كل دورة من الloop
    كما أن الجزء الذي بداخل الloop اللي هو input *= i يتكرر بينهما صح ؟؟
    أنا : تمام .. أنا عارف هذا الكلام كويس ..
    هو : طيب إيه رأيك نضم الجزء اللي داخل الloop إلى الloop نفسها !!!!!
    أنا : يا فنان !!! اكيد ما راح نضمه في الجزء اللي بيتكرر في بداية كل دورة ..
    راح نضمه في الجزء اللي بيتكرر في نهاية كل دورة اللي هو ال i--
    هو : الله ينور عليييييييك إكتب الكود النهائي
    أنا : مممم طيب انا عندي ال i-- تختلف عن ال--i في ان الاولى تحدث بعد اتمام العملية والثانية تحدث اثناء العملية ..
    وانا اريد ان اخصم من ال i واجد من بعد ما اضربها في الinput .. مممممم
    هو : تمام ,, راح تستخدم من فيهم ؟؟
    أنا : طبعا الi-- !!!!!!!!
    الكود النهائي بقى سطر واحد !! يا لهوي !!!!!!!!!!!!!!
    هو : الله ينور عليك .. اكتب السطر الذي بقي
    أنا : تفضل
    كود PHP:
    for (int i input 11input *= i--) ; 

    هو : 100% ما هو رايك في الاختصار ؟؟
    تخيل الكود القديم كيف كان
    كود PHP:
    int factorial(int input
    كود PHP:
    [size="4"][font="Times New Roman"]{ [/font][/size]
    [
    size="4"][font="Times New Roman"]    if (input <= 2) [/font][/size]
    [
    size="4"][font="Times New Roman"]        return input; [/font][/size]
    [
    size="4"][font="Times New Roman"]    int output input; [/font][/size]
    [
    size="4"][font="Times New Roman"]    for (int i input 1>= 2i--) [/font][/size]
    [
    size="4"][font="Times New Roman"]    { [/font][/size]
    [
    size="4"][font="Times New Roman"]        output *= i; [/font][/size]
    [
    size="4"][font="Times New Roman"]    } [/font][/size]
    [
    size="4"][font="Times New Roman"]    return output; [/font][/size]
    [
    size="4"][font="Times New Roman"]}  [/font][/size
    و هذا الكود الجديد:

    كود PHP:
    for (int i input 11input *= i--) ; 

    أنا : الفرق رهيييييييب بين الإتنين !!! بصراحة انت راجل راااااااائع !!! ربنا يزيدك علم يا شيخ !!!
    بس يعني أنا لو عندي برنامج كبير و اختصرت كل جزء فيه بهذا الشكل ما راح اخلص !!
    هو : كل شيء ياتي بالتدريب .. حاول من اليوم تكتب كل اكوادك مختصرة باكبر اختصار ممكن ..
    وبعد الانتهاء من البرنامج تحاول تختصره مرة اخرى ..
    وهذا الاختصار مكلوب جدا في برمجة برامج الانتي فايروس..
    فتخيل معي لو لم نختصر هذا الكود الى اقل ما يمكن . راح يعمل scan لجهازك في سنين وسنين !!!
    لان كل عملية تتكرر ملايين المرات !!! وكل اختصار بتساويه بتوفر فيه وقت كثير ..
    أنا : بصراحة انت رجل لا يوجد مثلك اثنين .. انا اريد فعلا ان اتدرب على هذه الحكاية ..
    هو : طبعا طبعا .. وتشوف مستواك بعد فترة ,, راح تزيد من سرعة برمجتك و تضاعف مهاراتك ..
    المهم ما رايك بان نختصر هذا الكود اكثر ؟؟
    أنا : أي كود ؟!
    هو : كود الفاكتوريال !!!
    أنا : هو في اختصار اكبر من هذا !!!!!
    هو : نعم .. شوف هذا ...

    كود PHP:
    for (int i input1input *= --i) ; 


    ****************

    و في نهاية الحديث ..
    هو : I was born near a PC...

    ...
    ...
    ...
    ...
    ...
    ((مفاجئة الموضوع))
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...
    ...

    هذا المبرمج عربي مسلم

    الموضوع الاصلي
    http://procastle.net/vb/showthread.php?t=1047





    __________________
    .:: اذا اردت الرقي : فاسعى لـرفع مستواك : و لا تنتظر هبوط مستوى الاخرين ::.


  2. #2
    عضو نشيط جدا
    تاريخ التسجيل
    May 2007
    المشاركات
    509


    وينتا بدنا نعرف نص الي بعرفو هالشخص !! الله يزيدوا بس الله يهداك اخوي المنتدى بدو تسجيل وانا مليش خلاق للتسجيل !! بس المضمون وصل .

    بارك الله فيك .





    __________________
    EbNCaNa اخوكم ابن قانا

    [درس] قائمة بريدية بأسهل الطرق بواسطة PHP

    [توقيعك يجب أن لا يكون أطول من 400 حرف يتضمن تجاوز كود المنتدى] - الى متى المعاناة يا حضرة الأدارة ؟

  3. #3
    عضو نشيط
    تاريخ التسجيل
    Jan 2008
    المشاركات
    55


    بارك الله فيك .






  4. #4
    عضو سوبر نشيط
    تاريخ التسجيل
    Aug 2004
    المشاركات
    932


    بسم الله الرحمن الرحيم

    أنا مشترك في المنتدى من زمان بس ما مشاركاتي وردودي قليلة .. خصوصاً في الآونة الأخيرة
    بس هذا الموضوع يستحق الرد عليه بجدارة ، شكراً أخي الكريم على النقل المفيد

    وشكراً للمبرمج العظيم

    تذكرت واحد صاحبي من أيام الجامعه ، كنت دايماً أقول له هذا المتغير ما نحتاجه أو هذه التعليمة ممكن نختصرها أو نلغيها ولازم نوفر ونصير بخلاء في استهلاك الموارد ، وهوة دايماً يرد علي بنفس الرد .. ياخي الرام حجمه كبير لا تعقدها يا شيخ





    __________________
    نحن أمة إقرأ التي لا تقرأ

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


    رائع رائع رائع رائع رائع، مشكور على نقل هذه المشاركة إلى هذا المنتدى

    برجاء تصحيح طريقة عرض الشيفرات البرمجية حتى تعم الفائدة، أنا شخصيا إضطررت إلى التسجيل في المنتدى الآخر حتى أطلع عليها بالشكل السليم





    __________________
    خالد الشمعة - Khaled Al-Shamaa
    PHP and Arabic language

  6. #6
    عضو نشيط
    تاريخ التسجيل
    Jun 2005
    المشاركات
    101


    جزاك الله خيرا

    هل من الممكن ان تخبرنا من هو هذا المبرمج و من اي دولة ؟





    __________________
    أذكر الله .....

  7. #7
    عضو نشيط
    تاريخ التسجيل
    Jan 2008
    المشاركات
    133


    وينتا بدنا نعرف نص الي بعرفو هالشخص !! الله يزيدوا بس الله يهداك اخوي المنتدى بدو تسجيل وانا مليش خلاق للتسجيل !! بس المضمون وصل .

    بارك الله فيك .
    الله يبارك فيك يا غالي وقد تم فتح المنتدى امام الزوار
    وان شاء الله نشوفك

    الله يبارك فيك يا غالي

    بسم الله الرحمن الرحيم

    أنا مشترك في المنتدى من زمان بس ما مشاركاتي وردودي قليلة .. خصوصاً في الآونة الأخيرة
    بس هذا الموضوع يستحق الرد عليه بجدارة ، شكراً أخي الكريم على النقل المفيد

    وشكراً للمبرمج العظيم

    تذكرت واحد صاحبي من أيام الجامعه ، كنت دايماً أقول له هذا المتغير ما نحتاجه أو هذه التعليمة ممكن نختصرها أو نلغيها ولازم نوفر ونصير بخلاء في استهلاك الموارد ، وهوة دايماً يرد علي بنفس الرد .. ياخي الرام حجمه كبير لا تعقدها يا شيخ
    اشكر لك مرورك الكريم يا غالي وردك الجميل وخاصة قصتك مع صاحبك
    ونتمنى نشوف المزيد من العرب في هذا المستوى

    رائع رائع رائع رائع رائع، مشكور على نقل هذه المشاركة إلى هذا المنتدى

    برجاء تصحيح طريقة عرض الشيفرات البرمجية حتى تعم الفائدة، أنا شخصيا إضطررت إلى التسجيل في المنتدى الآخر حتى أطلع عليها بالشكل السليم
    حياك الله يا غالي
    ساضيفها الان في مشاركة لوحدها لانه لا يمكنني التعديل على المشاركة الاصلية

    جزاك الله خيرا

    هل من الممكن ان تخبرنا من هو هذا المبرمج و من اي دولة ؟
    الله يجزى اهل هذا الصرح العظيم الذي جمعنا كل خير
    بالنسبة لاسئلتك ما عندي الها اجوبة...





    __________________
    .:: اذا اردت الرقي : فاسعى لـرفع مستواك : و لا تنتظر هبوط مستوى الاخرين ::.

  8. #8
    عضو نشيط
    تاريخ التسجيل
    Jan 2008
    المشاركات
    133

    Cool



    بسم الله الرحمن الرحيم
    السلام عليكم ورحمة الله وبركاته
    كنت أسبح يوما في بحور الإنترنت ..
    و صادفت مبرمجا أعجبني قوله و عمله ..
    فسرعان ما تعرفت به و دارت بيني و بينه محادثة طويلة على الماسنجر ..
    و كان يعمل باحثا في شركة CheckPoint المتعاقدة مع شركة Kaspersky Lab
    الشركة الروسية ذات مضاد الفيروسات الشهير ..
    سألته عن كيفية وصوله لهذه المكانة العلمية في البرمجة ..
    و ماذا علي أن أفعل كي أكون مثله ..
    قال لي سأختبرك في سؤال بسيط جدا في البرمجة ..
    و منه ستغير مسار حياتك البرمجية ..
    فقررت أن أنقل لكم هذا الحوار بعد أن ترجمته للعربية:

    هو : بتعرف ال factorial of a number ؟؟
    أنا : طبعا .. فمثلا ال factorial للرقم تسعة هو 9*8*7*6*5*4*3*2*1 و ال factorial ل4 هو 4*3*2*1 و هكذا ...
    هو : مية مية كلامك !
    عندي متغيرا نوعه Integer و اسمه مثلا Input واريد منك الان ان تكتب لي كود ، يجيب لي ال factorial الخاص به ..
    بس خلي الكود تبعك Optimized ..
    أنا : فقط هذا هو المطلوب ,, ثواني خليك معاي واكتبلك الكود
    هو : Take Ur Time

    و بعد حوالي من دقيقة إلى دقيقتين ..
    أنا : تفضل يا عزيزي الكود:

    كود PHP:
    {
    int fact(int input)
    if (
    input >= 2
    input *= fact(input 1); 
    return 
    input

    هو : Recursion ؟
    أنا : أي نعم ..
    هو : ألا تعرف أن الRecursion لا تمس الOptimizing بشيء!!!
    و أنها خطيرة على الذاكرة !!
    أنا : بالطبع أعرف ..
    هو : اوك اريد منك تكتبلي الكود بدون Recursion ..
    أنا : يعني أعمله loop ؟؟؟
    هو : أوك ..
    أنا : طيب ثواني خليك معاي ..
    أنا : تفضل الكود ..

    كود PHP:
    {  
    int factorial(int input)  
    if (
    input <= 2
    return 
    input
    int output input
    for (
    int i input 1>= 2i--) 

    output *= i

    return 
    output

    هو : طيب حلو كثير .. و انت بصراحة عجبتني بإنك عملت عد تنازلي في الloop علشان توفر على البروسيسور الحسابات ..
    أنا : هههههه طيب كويس إني عجبتك
    هو : طيب يلا نناقش هذا الكود .. ونحاول نختصره ..
    أنا : ممم أوك ناقش يا سيدي ..
    وكنت بقول في بالي " هذا الرجل مجنون ولا شو ؟ شو يختصر وما يختصر !!!
    يعني لا عاجبه ال Recursion ولا عاجبه الكود هذا !! هذا واحد فاضي ومو لاقي حدا يتسلى عليه غيري ؟!!! "

    هو : انتبه معاي .. انت في الأول كاتب شرط

    [php]
    return input;
    كود PHP:
    if (input <= 2
    شو الفائدة منه ؟؟؟
    أنا (قلتله و أنا مستغرب) : علشان لو القيمة ب2 أو ب1 أو صفر أو سالبة ترجع زي ما هي ..
    هو : طبعا طبعا معاك حق !
    لكن هل من الممكن إنك تدمج هذا الشرط مع الloop ؟؟؟
    أنا :مش فاهم ,, كيف يعني ؟؟
    لو أنا كررت الشرط داخل الloop هكذا انا احمل على البروسيسور عمليات أكثر ..
    فكل مرة يكرر الكلام اللي جوه الloop سيتحقق من الشرط !!
    هو : أصبر أصبر انت مش فاهم ..
    أنا :طيب فهمني ..
    هو : تعال نجرب الأرقام التي ينطبق عليها الشرط على الloop
    لو الinput يساوي 2 حيكون الInput-1 يساوي 1 .. و ال1 لا ينطبق عليه شرط الloop اللي هو i >= 2
    في هذه الحالة الloop لن يتم المرور خلالها ولا مرة !!
    و لو جربتها على ال1 و الصفر و الأرقام السالبة ستحصل على نفس النتيجة ..
    فما فائدة الشرط من الاساس ؟؟
    أنا : تصدق معاك حق !!
    بس معلش أنا كتبتها على عجلة من أمري دون أن أحللها ..
    هو : مش مشكلة ماهو احنا بنحللها سوا
    اكتبلي الكود من غير الشرط اللي في الأول ..
    أنا : الكود يا سيدي ..

    كود PHP:
    for (int i input 1>= 2i--)  int output input;  

    output *= i

    هو : تمام ..
    بس فيه حاجة .. انت ليه فارض output على شكل Integer مع أنك عندك Input ايضا على شكلة Integer ؟؟
    أنا : ههههه علشان الInput يكون فيه الرقم المدخل و الoutput يكون فيه الرقم المخرج ..
    أنا محتاجهم هما الإتنين ..
    هو : لأ ركز كويس .. انت مش محتاجهم هما الإتنين .. انت ممكن تستغنى عن واحد فيهم !!
    أنا : ممممم (بافكر) مممم مممم مممم مممم
    طيب يا معلم .. أنا ممكن أكتب الكود هكذا :

    كود PHP:
    {  
    for (
    int i input 1>= 2i--) 
    input *= i

    هو : حلو كثير يا مبدع .. شفت اختصرنا الكود كيف ..
    أنا : آه بصراحة اختصارك كبير للكود .. و ده بيوفر كتير على الذاكرة و المعالج .. انت فعلا فنان لأن أنا ما كنت اختصر أكوادي من قبل بهذا الشكل !!
    هو : طيب فيه اختصارات تانية ..
    أنا : ههههههههه هو عاد فيه كود يا عم ؟
    أختصر إيه بس !!!
    هو : شوف يا سيدي انت قايل في شرط الloop أن i >= 2 .. حلل لي هذا الشرط ..
    أنا : الأول المعالج بيتأكد إن قيمة i أكبر من 2
    ثم بيتأكد إذا كانت قيمة i تساوي 2
    هو : الله ينور عليك يا معلم .. هكذا انت عندك عمليتين
    طيب ينفع أختصرهم لعملية واحدة ..
    أنا : !!!!!!!!! كيف لم تاتني هذه الفكرة !!!!!!!!
    طبعا ينفع أقول i > 1 وهذا نظرا لانه عندنا اعداد صحيحة ..
    هو : طيب اكتب لي الكود النهائي علشان نحاول نختصره اكثر ..
    أنا :طيب يلا نختصره .. هذا هو الكود

    كود PHP:
    {  
    for (
    int i input 11i--) 
    input *= i

    هو :كويس ركز معاي ..
    الloop متكونة من 3 أجزاء
    الجزء الأول و هو int i = input – 1 و بيتكرر مرة واحدة في بداية الloop
    و الجزء الثاني و هو i > 1 و هو بيتكرر في بداية كل دورة من الloop
    و الجزء الثالث i-- و هو بيتكرر في نهاية كل دورة من الloop
    كما أن الجزء الذي بداخل الloop اللي هو input *= i يتكرر بينهما صح ؟؟
    أنا : تمام .. أنا عارف هذا الكلام كويس ..
    هو : طيب إيه رأيك نضم الجزء اللي داخل الloop إلى الloop نفسها !!!!!
    أنا : يا فنان !!! اكيد ما راح نضمه في الجزء اللي بيتكرر في بداية كل دورة ..
    راح نضمه في الجزء اللي بيتكرر في نهاية كل دورة اللي هو ال i--
    هو : الله ينور عليييييييك إكتب الكود النهائي
    أنا : مممم طيب انا عندي ال i-- تختلف عن ال--i في ان الاولى تحدث بعد اتمام العملية والثانية تحدث اثناء العملية ..
    وانا اريد ان اخصم من ال i واجد من بعد ما اضربها في الinput .. مممممم
    هو : تمام ,, راح تستخدم من فيهم ؟؟
    أنا : طبعا الi-- !!!!!!!!
    الكود النهائي بقى سطر واحد !! يا لهوي !!!!!!!!!!!!!!
    هو : الله ينور عليك .. اكتب السطر الذي بقي
    أنا : تفضل

    كود PHP:
    for (int i input 11input *= i--) ; 


    هو : 100% ما هو رايك في الاختصار ؟؟
    تخيل الكود القديم كيف كان

    كود PHP:
    {  int factorial(int input)  
    if (
    input <= 2
    return 
    input
    int output input
    for (
    int i input 1>= 2i--) 

    output *= i

    return 
    output

    و هذا الكود الجديد:

    كود PHP:
    for (int i input 11input *= i--) ; 


    أنا : الفرق رهيييييييب بين الإتنين !!! بصراحة انت راجل راااااااائع !!! ربنا يزيدك علم يا شيخ !!!
    بس يعني أنا لو عندي برنامج كبير و اختصرت كل جزء فيه بهذا الشكل ما راح اخلص !!
    هو : كل شيء ياتي بالتدريب .. حاول من اليوم تكتب كل اكوادك مختصرة باكبر اختصار ممكن ..
    وبعد الانتهاء من البرنامج تحاول تختصره مرة اخرى ..
    وهذا الاختصار مكلوب جدا في برمجة برامج الانتي فايروس..
    فتخيل معي لو لم نختصر هذا الكود الى اقل ما يمكن . راح يعمل scan لجهازك في سنين وسنين !!!
    لان كل عملية تتكرر ملايين المرات !!! وكل اختصار بتساويه بتوفر فيه وقت كثير ..
    أنا : بصراحة انت رجل لا يوجد مثلك اثنين .. انا اريد فعلا ان اتدرب على هذه الحكاية ..
    هو : طبعا طبعا .. وتشوف مستواك بعد فترة ,, راح تزيد من سرعة برمجتك و تضاعف مهاراتك ..
    المهم ما رايك بان نختصر هذا الكود اكثر ؟؟
    أنا : أي كود ؟!
    هو : كود الفاكتوريال !!!
    أنا : هو في اختصار اكبر من هذا !!!!!
    هو : نعم .. شوف هذا ...

    كود PHP:
    for (int i input1input *= --i) ; 


    ****************

    و في نهاية الحديث ..
    هو : I was born near a PC...

    ...
    ...
    ...
    ...
    ...
    ((مفاجئة الموضوع))
    .
    ...

    ...
    ...
    ...
    ...
    ...
    ...

    هذا المبرمج عربي مسلم

    الموضوع الاصلي
    حوار مع مبرمج عالمي .. - شبكة منتديات قلعة البرامج





    التعديل الأخير تم بواسطة ProCastle.Net ; 29-01-2008 الساعة 08:51 PM
    __________________
    .:: اذا اردت الرقي : فاسعى لـرفع مستواك : و لا تنتظر هبوط مستوى الاخرين ::.





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

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

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