• الإعلانات

    • فيصل الحربي

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

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

Khaled Alshaya

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

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

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

كل شيء نشر بواسطة Khaled Alshaya

  1. السلام عليكم ... أخ ياسين, هذه أي نسخة من الكتاب؟ أن رفعت الفصل العاشر من الـ third edition, و إذا كان هذا هو الـ 4th ed فأعتقد أني سأقوم بتحميله مع الشباب :lol: تحياتي...
  2. أعتقد أن الـ Good Design أعم و أكبر من أن يتوقف على الـ unit testing. هل تعتقد أن TEX مثلاً, لأنه لا يستخدم unit testing فهو سيء التصميم؟ أتحداك أن تجد bug واحدة فيه, و إن استطعت سيعطيك Knuth ما يعادل $327.68 على كل bug تجدها :)
  3. السلام عليكم ... قمت بكتابة unit testing toolkit بسيطة جداً باستخدام الـ Macros لاختبار مكتبة Range التي قمت بكتابتها منذ فترة. كانت تلك أول مرة أتبع طريقة اختبار كل دالة على حدة, و التالي هو ما استخلصته من التجربة: السلبيات: كتابة الـ Test Cases صعب. و الأصعب أن تفكر في جميع الاحتمالات. لم أستخدم toolkit جاهزة و قوية كـ Boost.Test التي أنوي تعلمها و استخدامها في المستقبل إن شاء الله. و هذا سبب لي بعض الإحباط في كتابة الـ Test Cases. الإيجابيات: أصبح لدي فكرة أفضل, عن متى أستخدم assert و متى أستخدم exceptions و متى أكتب كود كـ unit test. قمت بتعديل الكود عدة مرات, و في كل مرة أقوم بترجمة الـ test و تشغيله, و تلقائياً أحصل على جميع الاختبارات التي لم تنجح. (هذه نقطة مهمة برأيي). بعض الـ test cases كشفت عن بعض الأخطاء المنطقية, التي لم أكن أتوقع وجودها رغم تفاهتها بصراحة. بالمناسبة, أعتقد أن معظم الأخوة قد فهموا كلام الأخ حسن بشكل خاطئ. الذي فهمته, هو أنه يقول أن الـ tests لا تغني عن الـ good design. و أنا أتفق معه في هذه النقطة. تحياتي..
  4. استمتع مع أفضل مؤلف, و دع عنك كتاب how to program الذي أكرهه بشدة :lol: CH10.pdf
  5. سؤال عن Select Range

    شرح جميل أخ namespace و ينم عن فهم لـ else if :)
  6. ابحث عن nested classes in Cpp و استخدم std::string للتعامل مع النصوص.
  7. رجاءً, ضع الكود كاملاً مع main.
  8. X تريد الحصول على كل بياناتك العشوائية من dev/random ؟ طماع :lol: بمجرد أن تحصل على seed, استخدمها في أي مولد للأعداد العشوائية.
  9. السلام عليكم ... مداخلة رائعة من X. يمكنك استخدام dev/random في Linux :P تحياتي...
  10. مطلوب قرامر بايثون بسيط

    بالفعل واضح مين النايم! اتبعي الثلاث خطوات التالية, للتحويل. و لنفترض أن: "lambda" is the empty string Capital Letters are are NON-TERMINALS Small letters are terminals الخطوات: 1) A := a|b// A is either 'a' or 'b' ------------------------------------ A := a A := b 2) A := a[B]c // B is optional --------------------------- A := aNc N := lambda N := B 3) A := a{B}*c // zero or more repetions of B ------------------------------------------- A := aNc N := lambda N := BN هل هذا كاف؟ أعتقد أن هذا أكثر من كاف لحل مسألتك! عموماً, مثال من القواعد التي أتيت بها, 1) letter ::= lowercase | uppercase -------------------------------- letter ::= lowercase letter ::= uppercase The following example, comibnes both rules (2) & (3): // Note that '('...')*' is used instead of '{'...'}*' in this grammar expression_list ::= expression ( "," expression )* [","] -------------------------------------------------------- expression_list ::= expression B C B ::= lambda B ::= "," expression B C ::= lambda C ::= "," بمجرد أن تتقني الطريقة, سيصبح بإمكانك كتابة Grammar افضل من ناحية الـ Structure, و لكن مكافئ للـ Grammar الذي قمنا بتحويله عن طريق الخطوات. و لكن هذه نتركها للزمن. بالتوفيق.
  11. طباعة الأرقام الاوليه

    أخ هويدي, جميل :) فقط عليك وضع declaration إضافية: /* If you want to use functions in no specific order(textual representation), Then, it is better to write declarations for all functions before their bodies. */ void print_prime_numbers(int); _Bool is_prime_number(int num); إضافة إلى ذلك, فأنت تحتاج إلى التحقق من قابلة القسمة للعدد من 2 إلى جذر العدد فقط. لاحظ أنه لو كانت الأعداد الأولية لديك جاهزة, فكل ما تحتاجه هو التحقق من قابلة القسمة للعدد على أي عدد أولي بين 2 و جذر العدد(إذا كان أولياً). هل تريد الإثبات :P بالطبع التحقق من 2 إلى العدد/2 أكثر من المطلوب. بالنسبة للنوع Bool_ فهو نوع استحدث في C99, و لكن تم تعريف define# له باسم bool في stdbool.h, و لكن استخدم int إذا كنت تريد نصيحتي, هي المستخدمة في العادة لدى مبرمجي C. اكتب شوي و اترك شوي :lol:
  12. حاول مع file protocol: file:///C:\Documents and Settings\Administrator\Desktop\test
  13. 4 أسئلة عن recursion و bitwise operation

    الجميل أنك لا تحفظ شيء :lol: المشكلة في هذه المادة أنها من النوع السهل الممتنع. و لكن النتيجة النهائية التي خرجت بها, هي كيف أقوم بإثبات شيء معين. بمعنى آخر, construct proofs from A to Z. أثرت على طريقتي في البرمجة, في أني أصبحت أفكر أكثر, قبل كتابة الكود. المادة ليست متركزة حول موضوع واحد, كل فصل عبارة عن موضوع منفصل, عبارة عن tool-set لحل المسائل, و هذا هو الجميل حولها :) أول فصل درسناه, المنطق و ما أدراك ما المنطق :) هذا الفصل اصعب فصل بالنسبة لي. أستاذنا ياسر في قسم الرياضيات يمكن أن يخبرك عن حلاوته, و لكن بالنسبة لك كمبرمج, ستجعلك تكتب if statements واضحة و مختصرة(لا مزيد من الشخابيط في الـ Conditions). جزء الـ Number Theory. أعتبره أكثر متعة من الـ Proofs و ربما الأكثر متعة في المادة كلها. هل سألت نفسك ما هي الأعداد التي يمكن قسمتها على 3 أو 11 أو أي عدد آخر؟ هل يمكنك إثبات ذلك؟ هل سألت نفسك كيف تعمل خوارزميات التشفير؟ ربما تعرف كيف تستخدمها, و لكن بكل تأكيد إن لم تكن لديك الخلفية القوية في الـ Number Theory لا يمكنك بأي حال من الأحوال أن تقول أنك تفهمها. (الـ Asymmetric Cryptography يعتمد على الـ Group Theory بشكل كبير أيضاً). الـ Recursion. معظم "البرامج" التي نحاول القيام بكتابتها, يمكن تمثيل المشكلات التي تكونها على شكل Recursion. ليس فقط الـ Factorial :P الـ Counting Techniques. لا تحتاج إلى تعليق. الـ Relations. أخبرني كيف تستطيع كتابة Comparator لعناصر مصفوفة ما؟ ماذا يعني أن تكون المصفوفة مرتبة؟ الـ Graphs, و لكن لم نتعمق فيها كثيراً, فهي تحتاج لمادة أخرى لوحدها :lol:, كل ما درسته في مادة الـ Data Structures عبارة عن أنواع "معينة" من الـ Graphs و العمليات عليها. أي مشكلة باختصار يمكن تمثيلها على أنها Graph, و العلاقات يمكن تمثيلها على أنها Edges. ماذا تريد أكثر. مقدمة في الـ Theory of Computations. كتاب Rosen ليس جيداً, كثيراً في هذا الفصل, و هو الفصل الأخير أصلاً في الكتاب. عموماً, أنا لدي خلفية جيدة في الـ Grammars و خلافه. للأسف مادة الـ Theory of Computations لاتجدها متوفرة كل فصل, و إلا كنت أخذتها :) الموضوع رائع, و لكن كما قلت لك الكتاب ليس جيداً جداً في عرض الموضوع. الفائدة من هذا الموضوع أكبر من أن يحصرها فصل في كتاب. في النهاية, أنت لا تدخل الاختبار و تعرف مالذي ستقابله. عبارة عن ألغاز, تحتاج إلى حلها! تحياتي...
  14. 4 أسئلة عن recursion و bitwise operation

    ابحث عن كتاب Discrete Mathematics لمؤلفه Rosen. الكتاب الأروع بلاشك لدراسة الـ Discrete Math. بمجرد دخولي للاختبار النهائي بعد أيام, أكون أنهيت الكتاب بإذن الله. العملية استغرقت سنة كاملة على مدى فصلين, و لكن مدرس المادة كان أحد أفضل المدرسين الذي درست عندهم في حياتي, بطبعه يحب التحدي :) كل ما أستطيع أن أقوله لك هو أن الموضوع, عبارة عن تحدي للذات في الـ Discrete Math, و صدقني ستجده أصعب بكثير من الـ Calculus و خلافه, و لكن أكثر مادة استمتعت بدراستها في الجامعة :) تحياتي...
  15. السلام عليكم .. ماهي خوارزمية الوقت؟
  16. ماهذا X أصبح يحب ++C B)
  17. النسخ من الذاكره

    السلام عليكم ... شكراً جزيلاً أخي محمد على توفير الـ benchmarking. هناك عدة نقاط, ربما تكون مفاجئة و لكن أعتقد أنك تستطيع إصلاحها. في جميع التجارب التي قمت بها, على أحجام مختلفة من الذاكرة, كان: MOVS هو الأسرع مع تقارب في النتيجة مع memcpy. MMX كان أسرع من SSE, و الغريب أن SSE كان الأبطأ دائماً. أعمل على Win 7 x64, و معالجي هو Q6600. لو عملت على تحري السبب, ربما ستجده فأنت أعلم مني في معالجات Intel, خبرتي معدومة للأسف فيها. و لكن أعتقد أنك تقوم بعملية النسخ قبل التأكد من أن العنوان aligned على 16 bytes مما يجبر المعالج على القيام بذلك, و لهذا يظهر SSE على أنه الأبطأ. لست أهلاً لقراءة الكود, و لكن هل تقوم ببدء عملية النسخ من aligned address؟ تحياتي...
  18. النسخ من الذاكره

    السلام عليكم ... رائع يا محمد, نريد benchmarking :wink:
  19. كتب وروابط برمجية (مشاركات مجمّعة)

    الكتاب موجه للـ professional Cpp programmers أو للمحترفين ممن يريدون تعلم modern Cpp, و ليس موجه للمبتدئين على الإطلاق. جمل الكتاب مركزة, و يعتبر كتاب شامل لـ Techniques مع قواعد اللغة, و ليس كتاب تعليم للبرمجة. إذا أردت أفضل كتاب لتعلم ++C, لغير المبرمجين, فهناك العديد و أحدها ألفها "بيارن": http://www.stroustrup.com/Programming/
  20. امنيتي

    :thumb_up:
  21. تعرف على مدى او مجال المتغير او ما يعرف بال scope

    السلام عليكم ... أخت إسراء, الـ Default Scope لأي member variable في Java ليست الـ Class نفسه فقط, و إنما الـ Package كلها. أعتقد أنها تسمى الـ default scope. أول مثال, الـ Scope يشمل الـ Package كلها.
  22. تعرف على جملة Enhanced for Statement

    أحب سلسلة Absolute لـ Savitch, تعلمت منها ++C و Java, و لكن مشكلتها السعر المرتفع :) هل Core Java موجه للمبرمجين أم لغير المبرمجين؟
  23. ما تريد فعله, لم أرى أحداً يقوم به. لديك فكرة خاطئة عن الـ Multiprocessing. إذا كنت تريد فعل ما تريده, عليك أخذ نظام تشغيل كـ Linux, و من ثم تقوم بالتعديل على الـ Dispatcher, و تكتب ما تريد هناك. هذه هي الطريقة الوحيدة المضمونة. و لكن لماذا كل هذا العناء, و ما أدراك أن الـ Net Performance سوف يكون أكبر؟ هذه هي الفكرة, نظام التشغيل يقوم بعمل تنظيم للـ Performance لجعل العملية أكثر كفاءة مما لو قام كل مبرمج بالتحكم يدوياً لأن هناك أكثر من برنامج يعمل في نفس الوقت بكل تأكيد. هذه هي أنظمة التشغيل منذ السبعينيات إلا في حالة الـ Embedded Systems و الـ Super Computers!
  24. أخي رجاءً توقف عن مشاركاتك. اذهب و تعلم و شارك و صدقني سنرفع لك القبعة احتراماً و تقديراً و سنصبح تلاميذك في ذلك الوقت. لمعلوماتك, الكتابة فن يوازي في الصعوبة أي علم آخر, و عندما تقول ستألف كتاباً أنت لا تدرك حتى أن الكتاب يحتاج إلى سنين طويلة لكتابته, و ليست قضية حماس شباب. أجلس حوالي الاسبوع لكتابة ثلاث صفحات! و في النهاية يظهر أن ماكتبته "أي كلام" مقارنة مع أي مقال متعوب عليه. المشكلة أنك لا تملك العلم, و هذا ليس عيباً. ابحث عن العلم, و ستجده, أما ما تحاول فعله فسيضحك عليك العالم و الجاهل. تحياتي...
  25. NFA Convertor

    أهلاً أخي مهدي... حالة النسيان تحصل معي أيضاً لذلك لا تقلق لست الوحيد :lol: إن شاء الله بعد انتهاء الاختبارات سأحاول وضع موضوع عن خوارزمية التحويل بإذن الله. تحياتي...