• الإعلانات

    • فيصل الحربي

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

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

Khaled Alshaya

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

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

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

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

  1. كيف أصنع الوكيل من الخادم والعميل

    و عليكم السلام... للأسف ليس لدي وقت كاف حالياً :( لو شرحت لنا الخطأ الذي يحصل معك في الـ Proxy بشكل أكبر حتى نستطيع المساعدة بإذن الله. تحياتي..
  2. الأخ الكريم/الأخت الكريمة السلام عليكم ورحمة الله وبركاته. مرحباً بكم في منتدى الفريق العربي للبرمجة تأسف إدارة المنتدى لغلق الموضوع وذلك لمخالفته قوانين المشاركات، فقرة طلب حل الواجبات والتمارين. قواعد طرح المشاركات http://www.arabteam2000-forum.com/index.php?showtopic=29343 شاكرين لكم حُسن تعاونكم
  3. [تنبيه - عنوان غير مناسب : ]في تحليل النظم ><

    عزيزي, في الـ Data Flow Model أنت تمثل الـ Process أو الـ Computations أو الـ Filtering من خلال صناديق مربعة و البيانات من خلال أسهم تمر عبر Process أو أكثر. لو قمت بإعادة البيانات المفلترة و الناتجة عن Process معينة إلى الـ Process نفسها مباشرة فيسينتج لدينا حلقة لا نهائية. بكل بساطة البيانات تخرج ثم تعود ثم تخرج ثم تعود و هكذا. و هذا بلا شك خطأ في الـ Modeling لأن هذه الحالة لا يمكن أن نستفيد منها حقاً في تمثيل معالجة البيانات.
  4. الأخ الكريم/الأخت الكريمة السلام عليكم ورحمة الله وبركاته. مرحباً بكم في منتدى الفريق العربي للبرمجة تأسف إدارة المنتدى لغلق الموضوع وذلك لمخالفته قوانين المشاركات، فقرة طلب حل الواجبات والتمارين. قواعد طرح المشاركات http://www.arabteam2000-forum.com/index.php?showtopic=29343 شاكرين لكم حُسن تعاونكم
  5. المقصود بالاقتباس أن الـ Implementation الخاص بـ AMD لا يدعم Gpu من شركات أخرى. و ليس المقصود أنك إذا استخدمته لن تستطيع استخدام غيره. كما هي العادة مع أي Standard هناك Extensions ربما يضيفها أصحاب منصة معينة, إذا أردت كتابة كود Portable فيجب عدم استخدام تلك الـ Extensions. هذا كل ما في الأمر. نفس المفهوم ينطبق على C و ++C و POSIX و ... تحياتي...
  6. [مخالف - طلب حل : ]ارجوا المساعدة

    الأخ الكريم/الأخت الكريمة السلام عليكم ورحمة الله وبركاته. مرحباً بكم في منتدى الفريق العربي للبرمجة تأسف إدارة المنتدى لغلق الموضوع وذلك لمخالفته قوانين المشاركات، فقرة طلب حل الواجبات والتمارين. قواعد طرح المشاركات http://www.arabteam2000-forum.com/index.php?showtopic=29343 شاكرين لكم حُسن تعاونكم
  7. [مخالف - طلب حل : ]لدي سؤال

    الأخ الكريم/الأخت الكريمة السلام عليكم ورحمة الله وبركاته. مرحباً بكم في منتدى الفريق العربي للبرمجة تأسف إدارة المنتدى لغلق الموضوع وذلك لمخالفته قوانين المشاركات، فقرة طلب حل الواجبات والتمارين. قواعد طرح المشاركات http://www.arabteam2000-forum.com/index.php?showtopic=29343 شاكرين لكم حُسن تعاونكم
  8. سؤال :كتابة الكسور الاعتيادية في بسط ومقام

    للأسف المترجم الملحق بـ VC6 قدييييييييييييييم جداً, ربما منذ 12 سنة! الحل هو استعمال VC2010 express في هذه الحالة. حسب موقع Boost فإنهم يدعمون المترجمات و المنصات التالية بشكل رسمي: Compilers Tested Boost's primary test compilers are: * Linux: o GCC: 3.4.6, 4.2.4, 4.3.4, 4.4.3, 4.4.5, 4.5.1. o GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.0. o Intel: 10.1, 11.0, 11.1 o Pathscale: 3.2. * OS X: o GCC: 4.0.1, 4.2.1, 4.4 o GCC, C++0x mode: 4.4. o Intel: 11.1 * Windows: o Visual C++: 7.1, 8.0, 9.0 and 10.0. o GCC, mingw: 4.3.3. * FreeBSD: o GCC: 4.2.1, 32 bit. o GCC: 4.2.1, 64 bit. Boost's additional test compilers include: * Linux: o GCC: 3.4.6, 4.2.4, 4.3.4, 4.4.3, 4.4.5, 4.5.0, 4.6.0 (dev version). o GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.0. o Intel: 10.1, 11.0, 11.1. o pgCC 10.1. o PathScale: 3.2. o Clang from subversion. * OS X: o Intel C++ Compiler: 10.1, 11.0, 11.1. o GCC: 4.0.1, 4.2.1, 4.4.4 o GCC, C++0x mode: 4.4.4 o Clang from subversion. * Windows: o Borland: 5.9.3, 6.1.3 (2009), 6.2.1 (2010), 6.3.0 o GCC, mingw: 4.3.3, 4.4.5, 4.5.1 o GCC, mingw, C++0x mode: 4.5.1 o Visual C++: 7.1, 8.0, 9.0, 10.0 * AIX: o IBM XL C/C++ Enterprise Edition, V11.1.0.0. * FreeBSD: o GCC 4.2.1, 64 bit. * Solaris: o Sun C++: 5.10. تحياتي..
  9. سؤال :كتابة الكسور الاعتيادية في بسط ومقام

    كيف قمت بتثبيت المكتبة؟ انظر هنا للفائدة إن كنت تستخدم Visula Studio على وندوز: قم ببناء Boost خطوة بخطوة
  10. سؤال :كتابة الكسور الاعتيادية في بسط ومقام

    يمكنك استخدام مكتبة Boost.Rational للقيام بهذا الأمر: #include <iostream> #include <boost/rational.hpp> using namespace std; using namespace boost; int main() { typedef boost::rational<long> fraction_t; // f1 = 1/10, f2 = 2/3; fraction_t f1(1, 10), f2(2, 3), f3; std::cin >> f3; // enter 1/5 std::cout << f1*f2*f3; // 1/75 } تحياتي...
  11. [مخالف - طلب حل : ]مساعده في C++

    الأخ الكريم/الأخت الكريمة السلام عليكم ورحمة الله وبركاته. مرحباً بكم في منتدى الفريق العربي للبرمجة تأسف إدارة المنتدى لغلق الموضوع وذلك لمخالفته قوانين المشاركات، فقرة طلب حل الواجبات والتمارين. قواعد طرح المشاركات http://www.arabteam2000-forum.com/index.php?showtopic=29343 شاكرين لكم حُسن تعاونكم
  12. و عليكم السلام و رحمة الله و بركاته, هذا ليس خطأ في الحاسبة التي تأتي مع Windows بقدر ماهو trade-off في التصميم نفسه. حسب اعتقادي, فإن الحاسبة الموجودة في Windows و الحاسبة الموجودة في Ubuntu يستخدمان الـ Floating Point Types مثل double. كما تعلم فإن جذر الإثنين عدد حقيقي و ليس نسبياً, و لا يمكن تمثيله أصلاً باستخدام عدد منته من الخانات. بالتالي, فإن قيمة الجذر عبارة عن قيمة تقريبية. الفرق بين البرنامجين, أن الحاسبة في Windows لا تقوم بتقريب الناتج النهائي, بينما الحاسبة في Ubuntu تقوم بتقريب الناتج النهائي. هذا كل ما في الأمر. ملاحظة, الحاسبة الموجودة في Windows تقوم بالتقريب في حالة أعداد أصغر بكثير, مثل لو قمت بحساب جذر الإثنين لوحده. صحيح أن الناتج النهائي عبارة عن قيمة تقريبية و لكنها قريبة جداً من القيمة الحقيقية للإثنين و بالتالي يحصل التقريب. كما ذكرت سابقاً, هذا ليس خطأ و إنما قرار اتخذه كل مبرمج حول الدقة التي يتم التقريب عندها. تحياتي...
  13. الأخ الكريم/الأخت الكريمة السلام عليكم ورحمة الله وبركاته. مرحباً بكم في منتدى الفريق العربي للبرمجة تأسف إدارة المنتدى لغلق الموضوع وذلك لمخالفته قوانين المشاركات، فقرة طلب حل الواجبات والتمارين. قواعد طرح المشاركات http://www.arabteam2000-forum.com/index.php?showtopic=29343 شاكرين لكم حُسن تعاونكم
  14. الأخ الكريم/الأخت الكريمة السلام عليكم ورحمة الله وبركاته. مرحباً بكم في منتدى الفريق العربي للبرمجة تأسف إدارة المنتدى لغلق الموضوع وذلك لمخالفته قوانين المشاركات، فقرة طلب حل الواجبات والتمارين. قواعد طرح المشاركات http://www.arabteam2000-forum.com/index.php?showtopic=29343 شاكرين لكم حُسن تعاونكم
  15. الأخ الكريم/الأخت الكريمة السلام عليكم ورحمة الله وبركاته. مرحباً بكم في منتدى الفريق العربي للبرمجة تأسف إدارة المنتدى لغلق الموضوع وذلك لمخالفته قوانين المشاركات، فقرة طلب حل الواجبات والتمارين. قواعد طرح المشاركات http://www.arabteam2000-forum.com/index.php?showtopic=29343 شاكرين لكم حُسن تعاونكم
  16. ما الفرق بين standard C++ و ATL و MFC؟

    يا أخ XMasterrrr, أين أجد الإجابة على سؤال الأخ في دورتك. بحثت و لكني لم أجد شيئاً؟!
  17. من هنا و هناك !

    هذه الدالة ليست قياسية.
  18. [مخالف - طلب حل : ]بليز مساعدهـ

    الأخ الكريم/الأخت الكريمة السلام عليكم ورحمة الله وبركاته. مرحباً بكم في منتدى الفريق العربي للبرمجة تأسف إدارة المنتدى لغلق الموضوع وذلك لمخالفته قوانين المشاركات، فقرة طلب حل الواجبات والتمارين. قواعد طرح المشاركات http://www.arabteam2000-forum.com/index.php?showtopic=29343 شاكرين لكم حُسن تعاونكم
  19. من هنا و هناك !

    لا يوجد إرجاع لقيمتين هنا. ما يتم إرجاعه هو 34, هذا من أساسيات اللغة. المعامل comma يعيد "آخر" معامل.
  20. مثال في الـ metaprogramming لحساب ناتج حساب أنواع

    :) المشكلة يا عزيزي, هي أني لا أقوم بحساب ناتج الـ Arbitrary Precision Number(المكتبة التي نتكلم عنها) من خلال حساب الـ bits. أنا لا أبني معالج, و إنما سأقوم بتقسيم الـ bits إلى digits من base أكبر كـ hex أو 256 أو أكبر. بهذه الطريقة, يمكنك تخيل أن لدي أدوات جاهزة في اللغة للتعامل مع الـ digit فقط و لدي جميع العمليات الحسابية و المنطقية التي أحتاجها, و يبقى على المكتبة بناء arithmetic system لعدد متغير من الـ digits. لذلك, كلما كان الـ digit و الذي في هذه الحالة هو unsigned char أو unsigned long أو واحداً من باقي الأنواع - أكبر و يستطيع استيعاب base أكبر, قمنا بتقليل عدد العمليات اللازمة بشكل كبير. تصور معي العدد ذو 128 bits. لو قمنا بتنفيذ عملية كالضرب عليه, سنقسمه إلى digits لكي نقوم بالعمليات الحسابية. لو كان الـ digit عبارة عن bit فسنحتاج إلى 128*128 عملية في خوارزميات الضرب السهلة. بينما لو قسمنا العدد إلى unsigned long long ستصبح النتيجة على بعد 2*2 عمليات. باختصار, لو أخذنا bits و قسمناها إلى مصفوفة من أكبر نوع, هل سنحتاج إلى padding bits غير مستعملة في النهاية؟ إذا كان كذلك, قم بمحاولة تقسيمه إلى نوع أصغر و هكذا. طريقة الـ partial specialization بالفعل أسهل عند النظر لأول مرة. و لكن الـ meta-if أسهل في التفكير و الكتابة عندما تمعن النظر فيها قليلاً. كل ما في الأمر, أن IF ستستقبل condition, فإذا كان صحيحاً ستقوم بإعادة النوع Then. إذا لم يكن صحيحاً ستقوم بإعادة النوع Else :) الآن, سنقول لو أن bits يمكن تقسيمها إلى مصفوفة unsigned long long تماماً, سنعيد النوع unsigned long long. إذا لم يكن كذلك, سنقوم بإعادة النوع Else. النوع Else في هذه الحالة هو نوع يتم حسابه من خلال IF أخرى, و التي ستعيد unsigned long في حالة تحقق الشرط, و إذا لم يكن كذلك سنختبر النوع الأصغر في Else و هكذا حتى نصل إلى unsigned char. بالطبع الاختلاف بين المثال الأول و الثاني, هو أن الأول سيصدر خطأ في حالة كون bits لا تقسم تماماً إلى unsigned char array. بينما في meta-if لم أستطع حل هذه المشكلة حتى الآن. تحياتي...
  21. السلام عليكم, خلال تطوير uint, صادفت العديد من المشاكل(لاحصر لها :lol:) و لكن إحدى الحلول تضمنت الـ metaprogramming على أصول. القضية, أن المستخدم يقوم بكتابة شيء مشابه للتالي: // unsigned integer: 128 bits uint<128> number; هذه المئة و ثمانية و عشرون bits سوف تخزن في مصفوفة بكل تأكيد, و لكن ماهو نوع هذه المصفوفة؟ unsigned char unsigned short int unsigned int unsigned long unsigned long long أضف لذلك, أن المكتبة لاتقبل كسوراً, مثلاً لا يوجد لدي عدد من الـ bits يكون مصفوفة مكونة من ثلاث عناصر "و ربع". باختصار, الحل كان لابد أن يكون من الشكل التالي: template <std::size_t size> struct type_factory { typedef typename type_factory_impl<size>::type type; }; int main() { auto a = type_factory<8>::type(0); // unsigned char auto b = type_factory<16>::type(0); // unsigned short int auto c = type_factory<24>::type(0); // unsigned char auto d = type_factory<32>::type(0); // unsigned long auto e = type_factory<40>::type(0); // unsigned char auto f = type_factory<48>::type(0); // unsigned short int auto g = type_factory<56>::type(0); // unsigned char auto h = type_factory<64>::type(0); // unsigned long long } و الخوارزمية المتبعة في اختيار النوع المناسب: if(size % bits<unsigned long long>::value == 0) typedef unsigned long long type; else if(size % bits<unsigned long>::value == 0) typedef unsigned long type; else if(size % bits<unsigned int>::value == 0) typedef unsigned int type; else if(size % bits<unsigned short int>::value == 0) typedef unsigned short int type; else if(size % bits<unsigned char>::value == 0) typedef unsigned char type; else static_assert(false, "The type should be multiple of 'unsigned char' size"); الحقيقة كان الحل ممتعاً, و خارجاً عن المألوف. حللت المشكلة بطريقتين: الأولى باستخدام الـ pattern matching أو ما يطلق عليه partial template specialization. فكرت قليلاً, ثم قمت بعمل refactoring لأن الكود و إن كان سهل الفهم نسبياً, إلا أنه طويل. لذلك قمت بكتابة meta if-else و اختصرت الحل :wink: بالنسبة للحل الأول: #include <cstddef> #include <climits> typedef unsigned char uchar; typedef unsigned short int usint; typedef unsigned int uint; typedef unsigned long ulong; typedef unsigned long long ulonglong; // Returns how many bits in Unsigned_Type template <typename Unsigned_Type> struct bits { enum { value = sizeof(Unsigned_Type)*CHAR_BIT }; }; template <bool is_uchar> struct unsigned_char { typedef unsigned char type; static_assert(is_uchar, "error: size must be multiple of 'unsigned char' size"); }; template <> struct unsigned_char <true> { typedef uchar type; }; template <bool is_usint, std::size_t size> struct unsigned_short_int { typedef typename unsigned_char<size % bits<uchar>::value == 0>::type type; }; template <std::size_t size> struct unsigned_short_int <true, size> { typedef usint type; }; template <bool is_uint, std::size_t size> struct unsigned_int { typedef typename unsigned_short_int<size % bits<usint>::value == 0, size>::type type; }; template <std::size_t size> struct unsigned_int <true, size> { typedef uint type; }; template <bool is_ulong, std::size_t size> struct unsigned_long { typedef typename unsigned_int<size % bits<uint>::value == 0, size>::type type; }; template <std::size_t size> struct unsigned_long <true, size> { typedef ulong type; }; template <bool is_ulonglong, std::size_t size> struct unsigned_long_long { typedef typename unsigned_long<size % bits<ulong>::value == 0, size>::type type; }; template <std::size_t size> struct unsigned_long_long <true, size> { typedef ulonglong type; }; template <std::size_t size> struct type_factory_impl { typedef typename unsigned_long_long<size % bits<ulonglong>::value == 0, size>::type type; }; template <std::size_t size> struct type_factory { typedef typename type_factory_impl<size>::type type; }; int main() { auto a = type_factory<8>::type(0); // unsigned char auto b = type_factory<16>::type(0); // unsigned short int auto c = type_factory<24>::type(0); // unsigned char auto d = type_factory<32>::type(0); // unsigned long auto e = type_factory<40>::type(0); // unsigned char auto f = type_factory<48>::type(0); // unsigned short int auto g = type_factory<56>::type(0); // unsigned char auto h = type_factory<64>::type(0); // unsigned long long } أما الحل الثاني: #include <cstddef> #include <climits> typedef unsigned char uchar; typedef unsigned short int usint; typedef unsigned int uint; typedef unsigned long ulong; typedef unsigned long long ulonglong; // Returns how many bits in Unsigned_Type template <typename Unsigned_Type> struct bits { enum { value = sizeof(Unsigned_Type)*CHAR_BIT }; }; template <bool condition, typename Then, typename Else> struct IF { typedef Else type; }; template <typename Then, typename Else> struct IF <true, Then, Else> { typedef Then type; }; template <std::size_t size> struct type_factory_impl { typedef typename IF<size % bits<ulonglong>::value == 0, ulonglong, typename IF<size % bits<ulong>::value == 0, ulong, typename IF<size % bits<uint>::value == 0, uint, typename IF<size % bits<usint>::value == 0, usint, typename IF<size % bits<uchar>::value == 0, uchar, uchar>::type >::type >::type >::type >::type type; }; template <std::size_t size> struct type_factory { typedef typename type_factory_impl<size>::type type; }; int main() { auto a = type_factory<8>::type(0); // unsigned char auto b = type_factory<16>::type(0); // unsigned short int auto c = type_factory<24>::type(0); // unsigned char auto d = type_factory<32>::type(0); // unsigned long auto e = type_factory<40>::type(0); // unsigned char auto f = type_factory<48>::type(0); // unsigned short int auto g = type_factory<56>::type(0); // unsigned char auto h = type_factory<64>::type(0); // unsigned long long } استخدمت static_assert و auto في visual studio 2010. لن أشرح الكود, لأني لا أعرف من أين أبدأ في شرحه. و لكن أرحب بأي سؤال أو مناقشة أو مثال آخر. تحياتي...
  22. السلام عليكم ... يا أخ خالد, الـ iostream أو في حالتنا هذه لديها overloading خاص للنصوص و الحروف مثل: char const char* std::string ... كل ما يقوم به cout هو النظر إلى العدد المعطى, و رؤية المقصد من وراءه فإذا كان أحد الأنواع السابقة قام بتحويله إلى شكل نصي(encoding كـ ASCII).
  23. [مخالف - طلب حل : ]رجاء حل سؤال

    الأخ الكريم/الأخت الكريمة السلام عليكم ورحمة الله وبركاته. مرحباً بكم في منتدى الفريق العربي للبرمجة تأسف إدارة المنتدى لغلق الموضوع وذلك لمخالفته قوانين المشاركات، فقرة طلب حل الواجبات والتمارين. قواعد طرح المشاركات http://www.arabteam2000-forum.com/index.php?showtopic=29343 شاكرين لكم حُسن تعاونكم
  24. الأخ الكريم/الأخت الكريمة السلام عليكم ورحمة الله وبركاته. مرحباً بكم في منتدى الفريق العربي للبرمجة تأسف إدارة المنتدى لغلق الموضوع وذلك لمخالفته قوانين المشاركات، فقرة طلب حل الواجبات والتمارين. قواعد طرح المشاركات http://www.arabteam2000-forum.com/index.php?showtopic=29343 شاكرين لكم حُسن تعاونكم
  25. حتى الآن لا أفهم ماذا تريد بالضبط؟ هل تريد عمل شيء مثل قواعد البيانات بحيث تقوم بعمل rollback لأي قيمة سابقة؟ يمكنك بناء ما تريد, قم بكتابة مكتبة تحتفظ بالقيمة و معلومات جميع الدوال التي تم تطبيقها عليها. إضافة إلى ذلك تحتاج إلى جدول يوضح كل دالة و الدالة المعاكسة لها لتقوم بعملية التطبيق لأي عمق تريده! تحياتي...