• الإعلانات

    • فيصل الحربي

      تسجيل عضوية جديدة في المنتدى   01/31/2016

      السلام عليكم ورحمة الله وبركاته  عزيزي العضو الجديد :  حاليا رسالة الإيميل لتأكيد صحة إيميلكم تذهب للبريد العشوائي ( جاري حل المشكلة )  فإذا لم تجد رسالة التحقق من إيميلكم في صندوق الوارد لديكم إتجه للبريد العشوائي ( JUNK)  وقم بتفعيل إشتراككم من هناك   

Khaled Alshaya

المشرفون
  • عدد المشاركات

    2,052
  • تاريخ الانضمام

  • تاريخ اخر زياره

مشاركه بواسطة Khaled Alshaya


  1. عزيزي, ليس هناك فائدة مما تريد عمله لأنك تستخدم الـ stack في غير ما استحدثت لأجله أصلاً. الموضوع يعتمد على نظام التشغيل و المترجم(في الحقيقة الـ Linker) الذي تعمل عليه. عندما تقوم بترجمة برنامج فإن الـ Linker يقوم ببناء Header لملفك التنفيذي, و هذا الـ header يستخدم من قبل نظام التشغيل لمعرفة إعدادات تشغيل ملفك التنفيذي. في Visual Studio, يمكنك تغيير حجم الـ stack الافتراضي:

    /STACK:size_in_bytes

    في GCC:

    --stack,size_in_bytes

    على العموم, يمكنك تغيير حجم الـ stack حتى وقت التشغيل من خلال دوال نظام التشغيل, و لكن تذكر أن حجز كمية كبيرة من الذاكرة على الـ stack هو أسلوب خاطئ في الأصل, هي صممت لكي تكون مخزن مؤقت و سريع للدوال.

    تحياتي...

    2

  2. هل جرب أحد استخدام Bootstrap 2.0 في موقع عربي؟

    وهل جعل الموقع RTL يتم بشكل سهل؟

    سبحان الله منذ الصباح و أنا أبحث عن تعريب النسخة الثانية و بحثت عن هذا الموضوع أيضاً و لم أستطع الوصول إليه, يا محاسن الصدف :)

    أفيدونا يا أخوة بالنسبة لإنشاء المواقع باللغة العربية بالنسخة الثانية؟

    0

  3. أخ sanousy.howari, لماذا كل هذه الضجة؟ أنا لا أشارك هنا حتى أهين أحداً, و حتى المشاركة التي تشتكي منها لم أجرح و لم أقصد أصلاً أن أجرح فيها أي شخص و لا أستطيع جرح أي شخص.

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

    1

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

    أنا قادم من بيئة جافا و دوت نت ... والأمور سهلة فهيا بس في c++ كل بايت تقوم بحجزه في الذاكرة أنت بحاجة إلى إلغاؤه ...

    هذا صحيح, و لكن ليس كل شيء يدوياً. كل مساحة تقوم بحجزها لابد أن تعيدها لكي يكون برنامجك well-formed و لكن عندما تبرمج في ++C بشكل سليم عملية الحجز و الإعادة أتوماتيكية و ليست يدوية.

    كانت هناك دائما مشاكل الـ Multithreading

    وضح أكثر لو سمحت؟! كل المترجمات التي عملت عليها تأتي بـ thread-safe run-time libraries. و يمكن التحويل إلى النسخة الغير آمنة و لكن النسخة الافتراضية هي الأولى في كل المترجمات التي استخدمتها, حتى قبل Cpp11.

    كيف تضع نموذج لإدارة ذاكرة برامجك

    مثل الخوارزمية, إدارة الذاكرة تعني انتقاء الـ data structure و ليس المقصود هو الـ new/delete pair. يقال أن وجود delete في كودك يعني أنك لا تعرف ++C أصلاً.

    كذلك هناك مفاتيح لكل لغة ... فلم أعلم وقتها انني عندما أُلغي Object يجب ان اضع في المؤشر الخاص به NULL أو صفر لضمان عدم انهيار البرنامج لدى محاولته إلغاء Object قد تم إلغاؤه سابقا

    غير صحيح, إذا كان كودك سليماً فأنت لا تحتاج إلى وضع NULL أو null_ptr لكل مؤشر بعد إعادة المساحة التي تم حجزها عن طريقه. هل ترى هنا المشكلة؟؟ لماذا تستخدم المؤشرات؟ هذه هي المشكلة أنك تفكر بعقلية الـ by reference في لغة by value بامتياز! خذ المثال التالي, عبارة عن in memory database باستخدام multi_index للتوضيح فقط مع الـ indecies و لن ترى مؤشراً واحداً في المثال؟ لماذا؟ أترك لك البحث!

    Maintaining a unique set of elements on different criteria C++ STL

    بالمناسبة ما معنى deterministic هنا؟

    تعني أنك تعرف تماماً متى سيتم حجز الذاكرة و متى سيتم إلغاؤها, و هذا يعني ربط الـ life-time بالـ scope أي عندما تدخل أي scope فإنه يتم حجز الذاكرة و عندما يتم الخروج من الـ scope يتم إلغاء الذاكرة. لماذا برأيك تحتاج finally بعد try؟ لماذا استحدثت using في #C؟ في ++C هناك RAII و هو اسم مخيف لفكرة أكثر من رائعة لإدارة جميع الموارد "بما فيها" الذاكرة.

    تحياتي...

    2

  5. أخي للأسف عندما تأتي بأسلوب لتطبقه في ++C يتعارض مع أساليبها المجربة, فأنت تخذل نفسك قبل أن تخذل اللغة. ربما هناك بعض الأمور المزعجة في السابق و لكن مع Cpp11 فأنا لا أرى إلا جوانب معينة لم تتكلم عنها حضرتك مثل عدم توفر module system حقيقي. أنصحك بمشاهدة هذه المحاضرات فهي لـ Herb Sutter النار على علم :)

    http://channel9.msdn.com/Events/BUILD/BUILD2011/TOOL-835T

    http://channel9.msdn.com/Shows/The+Knowledge+Chamber/C-A-Language-for-Modern-Times

    http://channel9.msdn.com/posts/C-and-Beyond-2011-Herb-Sutter-Why-C

    http://channel9.msdn.com/Events/Lang-NEXT/Lang-NEXT-2012/-Not-Your-Father-s-C-

    2

  6. مثال بسيط لو سمحت يشرح كيفية عمل ما تتكلم عنه, المثال الموجود في الموقع غير واضح, ماهي Track؟ كل الفائدة من الـ garbage collectors هي أن لا تقوم بعمل tracking بشكل يدوي أصلاً!

    أما بالنسبة للتعقيد فليس هناك تعقيد في ++C من ناحية الذاكرة, و أنا مع فتح النقاش في الموضوع ليتوضح للكثيرين كيف تدار الذاكرة بشكل أتوماتيكي في ++C, و ليس كما في C مع ميزة أن إدارة الذاكرة في ++C عملية deterministic و لا يقتصر الموضوع على الذاكرة فقط و إنما على أي نوع من أنواع الموارد resources و هنا يكون التعقيد في اللغات التي تستخدم الـ GC :)

    تحياتي...

    4

  7. تجاربي الشخصية ، من النادر أن أحتاج إلى وراثة بدون polymorphism ، يعني وراثة لوحدها قد لا تكفي في أغلب الأحيان ..

    أتفق معك تماماً في هذا, أصلاً الوراثة لم تستحدث إلا للـ Polymorphism الذي هو قلب OOP و ليست الوراثة بحد ذاتها كـ Code Reuse.

    0

  8. ثالثا: من تجربتي الشخصية في التطوير فإن كل بيئة تطوير مقدمة من الشركات تكون ضامنة لمجموعة متناسقة من ادوات زيادة الكفاءة في الانتاج ومتوائمة، وعلى قمة الهرم مايكروسوفت ومن ثم صن(جافا) ... ولكن في لينكس الموضوع جد محير وغير متناسق.

    للأسف Linux ليس إلا مجرد إلا نواة, أما إن كنت تقصد تركيبة GNU/Linux فهي عبارة عن IDE! تحتاج لفهم الفلسفة الخاصة بها حتى تستوعبها و تخرج عن فلسفة Windows. لكل منهما فلسفة, و كل واحدة لها ميزات و عيوب.

    رابعا: التراخيص ضبابية ومزعجة ومتغيرة ... وتبقيك في قلق (ما عدا موزيلا وsqlite)

    ربما GPL أما ما عدا ذلك(BSD-Like) فكلها واضحة و تسمح لك باستخدام المكتبات في مشاريعك التجارية دون أي مشكلة.

    بالنسبة للتكملة في المدونة, حبذا لو طرحت أمثلة بعينها لأن الكلام العام يشمل جميع الأنظمة حسب وجهة نظر الكاتب :)

    3

  9. الوراثة Inheritance - يستطيع الكائن وراثة خصائص كائن معين والزيادة عليها دون أن يتأثر الكائن الأصلي. فقد يكون هناك مثلاً كائن اسمه مربع فيه خصائص الطول والعرض ويمكن للكائن مكعب أن يرث من المربع ويضيف عليه خصائص العمق والحجم.

    للأسف أخ ماجد, المكعب ليس مربعاً!

    تستخدم الواراثة في غالب الأحيان من قبل المبرمجين بشكل خاطئ. يجب أن تكون هناك علاقة is-a لكي يكون تصميمك صحيحاً, و في غالب الأحيان يكون التصميم خاطئ. المكان الوحيد الذي رأيت فيه OOP makes sense هو في الـ GUI و الـ Simulation أما ما عدا ذلك فالمبرمجين يغردون خارج السرب.

    3

  10. بالمناسبة ستخرج من هذه المهاترات عندما تعلم أن معظم الـ computing systems في عالمنا لا تحتوي على نظام تشغيل بالمعنى "الرفيع" الذي نتكلم عنه. معظمها embedded systems مكتوبة بـ C مع قليل من الـ assembly الخاص بالـ micro-controller. هذا إذا كنت تتحدث عن "عدد الأجهزة"!

    1

  11. هل لدى أحد فكرة عامة عن طريقة الترجمة بهذه الطريقة؟

    لدي فكرة بسيطة عن الـ probabilistic bnf هل هي الطريقة المستخدمة؟ هل من الممكن أن يعطينا أحد الأخوة نبذة مبسطة عن الخوارزميات و الطرق المستخدمة ليس لجميع الطرق و لكن الطرق المستخدمة في google و bing؟

    0

  12. إذا كان التعليق يشرح شيئاً في اللغة المستخدمة أو المكتبات فهذا يعتبر سيئاً.

    إذا كان التعليق يشرح الـ domain الذي بني عليه الكود فهذا سيء أيضاً.

    إذا كان التعليق يشرح لماذا اختيرت هذه الطريقة لحل المشكلة فهذا هو المطلوب. على سبيل المثال, تم استخدام اختصار لحساب أمر ما, فيتم توضيح لماذا تم اختيار الطريقة و ما تأثيرها على عمل الكود.

    2

  13. يا اخي صاحب موقع stackoverflow هو اسرائيلي و خدم في الجيش الاحتلال

    كنت أعلم هذا حتى قبل التسجيل في الموقع, و لكن إذا نظرت إلى الموضوع ستجد أن الفائدة التي خرجت بها شخصياً تعادل 1000x الفائدة التي قدمتها في الموقع. كم المعلومات رهيب على الموقع, و صاحبه الآخر Jeff نصراني أمريكي.

    2

  14. نور المنتدى أخي B.M.AbdelAziZ :cool:

    حل الأخ Delphawi هو الأفضل حقيقة, و هذا ما كنت أشير إليه بالخدعة أي أن البيانات مرتبة أصلاً. كل ما علينا هو إيجاد نقطة النهاية للنوع الأول باستخدام binary_search في الاتجاهين.

    تحياتي...

    0

  15. السلام عليكم ...

    استغرقت في حل هذا السؤال أقل من دقيقة على غير العادة :cool:. السؤال بسيط جداً و سهل, و لكن حاول اقتراح خوارزمية جيدة لحل السؤال.

    تصور أن لدينا قيمتان متكررتان في مصفوفة من حجم n. بحيث أن القيمة الأولى بتكراراتها موجودة في القسم الأول من المصفوفة و القيمة الثانية بتكراراتها موجودة في القسم الثاني من المصفوفة. مثلاً, قد يكون لدينا أعداد زوجية و أعداد فردية:

    1 9 8 6 2 0

    قد تكون الأعداد الزوجية قبل الأعداد الفردية و لكن كلا النوعين منفصلان عن بعضهما و يبدأ الآخر مع نهاية الأول. الآن, نحن نعلم:

    حجم المصفوفة: n من العناصر.

    عدد عناصر النوع الأول: غير معروف. (نريد حسابه)

    عدد عناصر النوع الثاني: غير معروف. (نريد حسابه)

    ماهو عدد عناصر كلا النوعين؟ في مثالنا, النوع الأول عنصران, و النوع الثاني أربعة عناصر.

    فكر في السؤال جيداً, و اطرح أفضل خوارزمية لديك :)

    1

  16. أخي, المشاريع التي تفكر بها جميعها تتطلب دارية بوظائف هذه الثلاث تطبيقات. ستحتاج لفهم هذه التطبيقات جيداً قبل الشروع في العمل, و لن تصل إلى شيء جيد إلا بمعرفة تامة لما تريد عمله في البداية. أقترح أن تنظر إلى تطبيقات يمكنك افتراض الـ requirements بسهولة مع تحدي في الجانب البرمجي أكثر.

    0

  17. هي إما أنها bug فعلاً في الـ Parser أو أنها ميزة, بحيث تعتبر الأقواس أعلى أولوية من القسمة و الضرب. صحيح أنه ضرب عادي, و لكن ربما اعتبر مصمم الـ expressions أن الأقواس لوحدها تعتبر أقوى من الضرب باستخدام رمز الضرب و القسمة.

    1

  18. أسئلة الاحتمالات دائماً تحتاج إلى فهم عميق حقيقة, و لكن قلبت السؤال في رأسي و أرى أنه لم يتم التصريح عن أي علاقة بين وجود الطائرة في أي من المناطق الثلاثة, و بالتالي بما أن هذه الـ Random Variables مستقلة عن بعضها, فاحتمال إيجاد الطائرة في المنطقة جـ لا يتغير. بمعنى آخر, ماذا يعني أن لا تجد الطائرة في المنطقة أ و المنطقة ب؟ حسب السؤال, فهذا لا يعني أي شيء و بالتالي, فإن الاحتمال لا يتأثر.

    0