محمد علاء الدين
مشرف قسمي C/Cpp و Windows API
- الدولة الإسلامية
- Operating Systems & Compilers
- خوارزمية الأعداد الأولية
إذا كنت تعتقد اني سأقوم بحفظ الرقم 2 فى 8 بايت فأنت مخطئ، كل عدد اولي سيتم حفظه فى المساحة التى يستهلكها فقط. إسلوب باقي القسمه مع تجاوز الأعداد الموجبة يجعلنى احصل على مليون عدد أولي كل دقيقتين و نصف تقريبا و هذا غير عملي على الإطلاق، فإن كان لديك وسيلة أفضل …
- ترميز الأعداد الكسرية (وفق تجارب مخبرية p: )
على العكس تكون سريعه، لأن فى مثل هذه الحالات يتم إستخدام Fixed-point و ليس Float-point، و العلميات على Fixed-point مثلها مثل العمليات على الأعداد الصحيحه مع بعض الفروق البسيطة، يكفي انك لن تحتاج لإجراء normalization للرقم مع كل عملية. و الله ولي التوفيق
- خوارزمية الأعداد الأولية
السلام عليكم و رحمة الله لدى كافة الأعداد الأولية فى المدى من 2 و حتى 4294967291 و عددهم 203280221، قمت بوضعهم داخل مصفوفة رقمية و الأن اريد الحصول على كافة الأعداد الأولية التى يمكن ترميزها فى المدى 64بت بمعنى اريد خوارزمية للحصول كافة الأعداد الاولية فى المد…
- خوارزمية تحويل النظم العددية
لو افترضنا ان العدد الثاني سيتكون فقط من الرقيم فى المدى 0 و 9 و الحروف A to Z، حينها تكون صفحة المحارف لدينا هى 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789abcdefghijklmnopqrstuvwxyz و هذا يعنى انك بحصولك على اكبر رمز موجود بأى من الأرقام المدخله تستطيع مع…
- مساعدة في إخراج المتوسط الحسابي لمصفوفة Signed
سأفترض أن عنوان المصفوفة موجود داخل SI و حجمها كما قلت موجود داخل CX MOV AX, [SI] ; load value of first array element to ax XOR BX, BX ; reset bx to use as counter START: INC BX ; increment bx CMP BX, CX ; compare current index with total size JGE FINISH ; go …
- مساعدة في إخراج المتوسط الحسابي لمصفوفة Signed
الكود متداخل و غير مرتب و لا توجد ملاحظات كافية لفهم أجزائه و لم استطع تنقيحه و إليك بعض الملاحظات التى قد تساعدك فى حل المشكله: 1- المتوسط الحسابي هو مجموع العناصر و النتاج يقسم على عدد العناصر. 2- لا تستخدم ADC و استخدم ADD فأنت لا تحتاج للـ Carry فى شي و حد…
- ترميز الأعداد الكسرية (وفق تجارب مخبرية p: )
ما تتكلم عنه هو ترميز الأرقام العشرية و هو امر يعود للمعالج فيمكن ان المترجم لدية مكتبة run-time خاصة بالعمليات العشرية و لا يستخدم المعالج (توجد اسباب لهذا الامر و لكنها قليلة). فى اغلب المعالجات يتم إستخدام IEEE 754 standard و يوجد منه اصدارين الاول بتاريخ 1…
- مساعدة في طباعة القيمة العددية وليس الرمز ascii
عندما تواجهك مشكله قم بتقسيمها إلى أجزاء صغيره و قم بحلهم كلٍ على حدى و بعدها قم بدمجهم معا. 1- قم بكتابة الكود الخاص بإيجاد القيمه العظمي و ضع الناتج داخل اى مكان تريد و قم بالتأكد من صحته بإستخدام الـ debugger. 2- قم بكتابة الكود الخاص بإسجاد القيمه الصغرى و…
- سؤال في العنونة
كما تعلم المعالج داخل نمط 16بت يستطيع التعامل مع قيمه أقصاها 20بت و بالتالي إذا وضعنا فى المسجلين FFFF ستكون النتيجه FFFFh * 10h + FFFFh = 10FFEF و عدد البت بها 24 بت و بالتالي هي غير صحيحه، و هذا يجعل أكبر قيمه يمكن إستخدامها كـ base address هى F000 لتصبح الن…
- حساب مضروب رقم
قمت بكتابة برنامج لحساب مضروب اى رقم و طباعة النتيجه لأى أساس بغحدى حالتين الأحرف: الفئه factorial تقوم بالعملية الحسابية و الطباعة و شكلها و كالتالي: struct factorial { inline factorial(); inline factorial(st_t of); inline ~factorial(); bool set_letters(const…
- لماذا لا يمكننا كتابة LES AX,SP
أعتقد انك تقصد 8B C4 و ليس C4 C4 حيث الأخيره تعنى أمر أخر لا علاقة له بـ mov. أولا القيمه 8B C4 هى صحيحه سواء استخدمتها كـ Opcode او Instruction المقابلة لها. تذكر أن قيمة المسجلات داخل 16 بت هى نفسها داخل 32بت و بالتالي كتابتك لـ 8B C4 داخل 32بت ستنتج: MOV EA…
- ما الفرق بين const و define# ?
الجملة الثانية تقوم بتغيير قيمة الثابت لتصبح 20 بدلا من 10. الكلمه const لها استخدامات عديده أنظر المثال التالي: #include <iostream> #include <string> using std::cout; using std::string; const struct whatever { whatever() : value("string") {} const string& get…
- ما الفرق بين const و define# ?
متغير، ثابت يمكن تغيير قيمته بإستخدام const_cast: const int i = 10;*const_cast<int*>(&i) = 20; و الله ولي التوفيق
- مكتبة MathX
ليس فى كل شئ، توجد بعض الأجزاء من المشروع التى من الأفضل ان تكون ابسط ما يمكن و أخرى لابد ان تكون على درجة كبيره من التجريد و هذا بناءا على طبيعة الجزء، فمثلا عملية تحويل الأنواع الرقيمه بإستخدام numeric_cast لن تفشل أبدا و هذا يعنى ان حفظ قيمه متغير بمساحة كب…
- مكتبة MathX
@ مصطفى 36a2 : النسخه التى أنزلتها هى القديمه و هى بالإسم mathx_update_1 أما الحديثه فهى بالإسم v0.1a1. النسخه القديمه للقراءة فقط و للتعلم و ليست للإستخدام لأنها كانت مجرد تطبيق لبعض الأفكار أما الحديثه فهى المكتبه الفعليه. إذا اردت التحميل فقم بتحميل المكتبه…
- مكتبة MathX
بسم الله الرحمن الرحيم قمت بحمد الله من الإنتهاء من الإصدار 0.1a1 من مكتبة MathX و إليك نبذة مختصرة عنها. ما هي MathX هى مكتبة تحتوى على انواع رقمية مماثله للانواع الرقمية الأساسية بلغة C++/C و لكنك انت من يحدد احجامهم فمثلا يمكنك انشاء نوع رقمي بإشارة مماثل ل…
- تمرين على استخدام القوائم (باستخدام ++C )
الكود موجود بالمرفقات و توجد بعض الملاحظات: 1- قمت بتصحيح عمل الدالة menu_view و اصبح حجمها كبير و من الأفضل إن تم تطوير المشروع تقسيمها لعدة دوال لتسهيل تطويرها و تصحيح الأخطاء بها (إن وجد). 2- قمت بتصحيح محتوى الدالة sort::set_dir حتى يصبح إتجاه العرض سليم. …
- ما المقصود بـ 110 Words و 16 longs عند قراءة البتات من ملف.
المقصود بـ 16 longs مصفوفة مكونه من 16 عنصر و كل عنصر من النوع long و تقابل فى c++/c: long segment1[16]; ايضا تحتاج لمعرفة المساحة التى يستهلكها النوع long المذكور فى وثائق شرح بنية الملف. أيضا الـ word هى unsigned short و 100 هى عدد عناصر المصفوفة. و الله ولي…
- هل يمكنك كتابة أي برنامج بدون استخدام الحلقات ؟
هل تستطيع كتابة برنامج يطبع اعداد Fibonacci الأقل من مليار بدون حلقات التكرار او goto او jmp. و الله ولي التوفيق
- لغة البرمجة أم بيئة التطوير ؟
إستخدام بيئة تطوير متكاملة ليست أمر اجبارى سواء كان المشروع بحجم نظام تشغيل متكامل أو بحجم برنامج hello world. فى النهاية الأمر يعتمد على اللغه المستخدمه و كيفية ادارة المشروع. مثال مترجم clang يحتوى على كود منظم و مشاريع منفصلة فى التطوير و متصلة فى البناء و …