محمد علاء الدين
مشرف قسمي C/Cpp و Windows API
- الدولة الإسلامية
- Operating Systems & Compilers
- تمرين بسيط حول الملفات في لغة C
monDisqueDur:\InFoRmATiIQuE\programmation\langages de programmation\programmation orientée objet\langage Java\Mes Projets\NetBeans Projects\Débutants\performances réseaux\travaux pratiques à faire\matrices\matrice Stochastique\src\Dev\Stochastique.java يا الله…
- نقاش حول خوارزمية تشفير بسيطة
هل توجد علاقة بين رقم الحرف و السلسلة النصية الناتجه؟ إذا كان نعم فما هي؟ إذا كان لا، أليس من الأفضل إيجاد علاقة و التى من شأنها إستخدام bitwise لتيسير الكود و تقليله؟ و الله ولي التوفيق
- [++C] مفاهيم أساسية، الجزء الثاني
بسم الله الرحمن الرحيم عند كتابة الكود [1] توجد بعض العمليات التى تتم عليه فى الخفاء قبل تحويله للنوع الذى ترغب به [2] و من الهام جدا معرفتهم حتى إذا ظهرت لك اخطأ اثناء الترجمه تستطيع تصنيف طبيعة الخطأ و سببه. فى هذا الموضوع [3] مصطلحات أساسية (إضافات). مراحل …
- [تمت الإجابة] تصرف غريب من المترجم gcc
فى البداية الإسلوب الذى استخدمته خاطئ و المفترض ان لا يعمل مع الـ preprocessor الموجود داخل ++g بإستخدام (E-) حيث المفترض لتغيير رقم السطر او الملف يتم إستخدام الشكل التالي: # line digit-sequence new-line و ليس # digit-sequence new-line فى الواقع المفترض ان اى…
- [تمت الإجابة] هل نعتبر تعليمات الـpreProcessor جزءاً من اللغة ؟
تلك اقسام المترجم و هذا الاسلوب موجهه لمبرمجي اللغه و ليس مصمميها، أما مراحل الترجمه فهي الخطوات التى يمر بها الكود حتى يصل الي النتيجة المطلوبة* من وجهة نظر كاتب المترجم و لا يشترط التوثيق ان يكونوا 9 و لكن لابد ان تكون النتجة كما لو ان الـ 9 مراحل قد تم تنفي…
- [تمت الإجابة] لا أرى فائدةً لكل من register , inline !
داخل 7.1.1.3 من C++03 Standard: داخل 7.1.2: الخلاصة: 1- register لا يتم إستخدامها إلا فى الأكواد القديمة و وجودها فقط لجعل إمكانية ترجمة البرامج القديمه ممكنة مع المترجمات الحديثة. 2- inline هى تشجيع للمبرمج لإستبدال الـ function-like macro بـ function حقيقة ح…
- [تمت الإجابة] هل نعتبر تعليمات الـpreProcessor جزءاً من اللغة ؟
هذه مرحلة متقدمه، فى الحقيقة هذه هى الخطوة رقم 4 من أصل 9. نعم هي كذلك. هذا غير صحيح، فقواعد الـ Preproccessor محددة و صارمة بالـ Standard و ستجدها بالفصل 16 تحت أسم Preprocessing directives. سيصبح الأمر صعب جدا لدرجة ستجعلك تكره اللغه و حينها سيقتصر الأمر على…
- كيف اغير وظائف ازرار لوحة التحكم
أولا تحتاج ان تسئل نفسك، أين ستقوم بالضغط على هذه الأزرار، هل داخل برنامجك ام داخل الـ shell الإفتراضي لويندوز (برنامج explorer.exe)؟ سأفترض انك تقصد برنامج explorer، في هذه الحالة كل ما تحتاجه هو كتابة hook ليقوم بحذف التسجيل الإفتراضي لـ ctrl+c و إبداله بواح…
- تحدي : بدون استخدام الحلقات !
لن يحدث overflow لعدم وجود إستدعاء ذاتي. يعمل حتى مع مليار مرة (إبدل الإدخال اليدوي بعداد). و الله ولي التوفيق
- تحدي : بدون استخدام الحلقات !
لا تزعل، أبدل سطر ternay operator بالتالي: (i++ < loop_count) && (call(i), true); و الله ولي التوفيق
- تحدي : بدون استخدام الحلقات !
إليك الكود بطريقتين: الطريقة الأولي: بإستخدام setjmp و longjmp #include <iostream> #include <csetjmp> using namespace std; const int loop_count = 5; //1000000; int main() { jmp_buf j; int i=0; setjmp(j); if (i++ < loop_count) { int q = 0; cin >> q; cout << "ID…
- نقاش : هل عملية الضرب mul بطيئة بالفعل !
1- هذه النقطه تسمي بـ Instruction prefetch و يمكنك مراجعتها من wikipedia . 2- إذا كنت ستعمل على كود ففي هذه الحالة إستخدم الرقم 0x3ABCDEF0. 3- الحال هو كذلك فى معالجات CISC من Intel، و اعتقد ان الأمر مماثل مع AMD و VIA. 4- التعليمة mul سرعتها تعتمد على القيم ا…
- نقاش : الدالة() rand ليست عشوائية أبداً ...
لا داعي لهذه العملية حيث يمكنك xor-mul على احجام اصغر لنوع البيانات المدخل و من ثم قم ببعثرتهم إعتمادا على الوقت الحالي لهذه العملية و بهذا ستحصل على قيم من الصعب إنتاج مثلهم مرة أخرى. و الله ولي التوفيق
- خواص const
النوع int لابد ان يستطيع ترميز الأرقام فى مدى معين، هذا المدى يطابق مساحة 32بت. لا المفترض ان تستخدم النوع int* لحفظ قيمة المؤشر. و الله ولي التوفيق
- نقاش : هل عملية الضرب mul بطيئة بالفعل !
فى اختبارك اiهلت بعض الأمور: 1- الكود الذى يتم تنفيذه اولا يكون دائما الأبط و لذلك تجد فى بعض الأكواد التى تهتم بالسرعة مكتوب كود وظيفته فقط اعداد الكاش و الـ fetch و عمل كاش للتعليمات المستخدمه بكثرة. 2- تعليمة mul هى عامه لكل الأرقام و تتعامل مع حالة معينه و…
- نقاش : الدالة() rand ليست عشوائية أبداً ...
داخل windows يمكنك استخدام الدالة RtlGenRandom للحصول على قيم عشوائية بأى حجم تريد و بالنسبة للدالة rand فيمكن فعل نفس الأمر، اليك النسخه التى استخدمها للحصول على قيم عشوائية بأحجام مختلفة لا تقل عن حجم النوع int: // generate random value in input valuetemplat…
- خواص const
مصطفي 362a: السطر التالي لن يعمل فى بيئة 64بت: int x=(int)&t; السبب ان int سيكون بمساحة 32بت ام int* سيكون 64بت. و الله ولي التوفيق
- كيف يكتب هذا البرنامج ( طباعة اسم النوع )
البرنامج يسير و كنت اتمني ان يستطيع احد حله، عموما ها هو: #include <iostream> using namespace std; template<typename t> struct type_id { static const int id = 0; }; template<> struct type_id<signed short int> { static const int id = 1; }; template<> struct typ…
- كيف يكتب هذا البرنامج ( طباعة اسم النوع )
تحتوى لغة c++03 على 17 نوع بيانات أساسي و هم: char signed char unsigned char wchar_t signed short int unsigned short int signed int unsigned int signed long int unsigned long int signed long long int unsigned long long int float double long double bool void* و…
- تحدي بسيط يظهر انخفاض مستوى لغة C (تمرير الوسطاء لـ printf)
مصطفى 36a2: حلك غير صحيح حاول تجربته على نظام PowerPC و حتى مع Mac for Intel سينتج اخطاء إذا استخدمت إعدادات xcode الإفتراضية. الهدف الأساسي من استخدام لغة السي هو كتابة الكود مرة واحدة ليعمل علي اكثر من نظام تشغيل بأقل تعديلات ممكنة. ملحوظة: انت لم تحدد انك ت…