محمد علاء الدين
مشرف قسمي C/Cpp و Windows API
- الدولة الإسلامية
- Operating Systems & Compilers
- فكرة مشروع الكتابة باللغة العربية
ستحتاجوا لقراء الفصل الثامن من Unciode بعنوان Middle Eastern Scripts و ايضا لمرجع لشكل الحروف يمكنكم مراجعة خرائط الحروف باللغه العربية. لا تنسوا مع أن الحرف فى اللغه العربية واحد إلا ان بعضهم عند رسمه له أربع حالات و هم مرتبط بما قبل و مرتبط بما بعد و مرتبط ب…
- مشكلة مع دالة round في مكتبة cmath
نسيت وضع floor، الكود كالتالي: float round(float value){ return floor(value + 0.5f);} توجد نسخ عديدة من هذه الدالة فى هذا الموضوع . التحويل لـ int يغنى عن إستخدام floor و لكن تظهر مشكلتين أولهم دقة القيمه حيث ان مدى الأرقام الذى يمكن تمثيله بأ float اعلي كثيرا…
- مشكلة مع دالة round في مكتبة cmath
الدالة round الموجودة بالمشاركة رقم 2 لابد ان تعيد float و ليس int ليتم إعادة قيمة عشرية مقربة و ليس أقرب عدد صحيح، لتصبح كالتالي: float round(float value){ return value + 0.5f;} و الله ولي التوفيق
- فكرة مشروع الكتابة باللغة العربية
ASCII تحدد أسماء الحروف و فى الماضي كانت تحدد شكلهم أما الأن فلا. أيضا ASCII هى 7بت فقط و لا تحتوى على المزيد يوجد ما يسمى بـ Extended ASCII و هى لا علاقة لها بـ ASCII و تحدد كيفية إستخدام البت الثامن. فى علم الطباعة Typography أى حرف له 3 خصائص و هم إسمه Name…
- التعامل مع البتات والبايتات والعمليات المنطقية عليها
يوجد أكثر من نظام لتمثيل الأعداد السالبة و المشهور هو Two complement حيث تقوم بعكس البتات التى يستهلكها الرقم داخل مساحة محددة و من ثم تقوم بإضافة واحد لهم. سنأخذ النوع signed char على سبيل المثال حيث مساحته قد تكون 8 بت و بالتالي الرقم 5 10 سيكون 0101 2 0000 …
- انشاء قائمة
هذا الموقع يحتوى على كثير من الادوات عالية الجودة و مفتوحة المصدر منها بال VB 6/.net و ايضا #c. هذا رابط الاداة و الله ولي التوفيق
- سؤال : التعامل مع خانات خارج حجم المصفوفة
التعامل مع الذاكره فى اللغتين C++/C غير مقيد بحدود مثل الموجوده باللغات الأخرى و هذا يجعل إمكانية الكتابة فى اى مكان بالذاكرة أمر مسموح به من قبل اللغه و على نظام التشغيل أن يتحقق من صلاحية الذاكرة التى تتعامل معها و النتيجه قد تكون بإظهار خطأ إن حاولت الكتابة…
- تفقيط الأرقام لنصوص
أثناء عملي أحتجت لكتابة فئة تحول عملة معينة لوصفها لغة معينه بمعنى أخر تفقيط العملة بلغة معينة لذا قمت بكتبة فئة للقيام بهذه المهمه و انتهى بى الأمر لكتابة الكود محور هذا الموضوع. المشروع موجود بالمرفقات و مصدره داخل موقع github إن اردت أخر تحديثات قم بالحصول …
- اضافة كلاس الى مشروع c++.net 2008
الإسم Hough هو لدالة و ليس لكلاس و لإستدعائه من داخل فئة تحتاج لوضع الكود داخل فئة!!. قم بإضافة السطر التالي فى أول الكود: using namespace System; و الله ولي التوفيق
- اضافة كلاس الى مشروع c++.net 2008
قم بحفظ الكود داخل ملف بأى إسم و بالإمتداد h أو hpp مثلا "header.hpp". قم بإضافة السطر التالي قبل أى كود بذلك الملف: using namespace System::Drawing; من داخل أى ملف cpp قم بعمل include للملف "header.hpp" كالتالي: #include "header.hpp" و الله ولي التوفيق
- عمل swap لمتغيرين بدون متغير وسيط
جرب هذا: #include <algorithm> int main() { double d1 = 10.0, d2 = -12.0; std::swap(d1, d2); int i1 = 10, i2 = -9; std::swap(i1, i2); bool b1 = true, b2 = false; std::swap(b1, b2); } أيا كانت الوسيلة المتبعه داخل swap فأنا لم أكتبها و أيضا لم استخدم متغير إضافي…
- اريد اكتب برنامج بالملفات او بلغة ++c يدخل lexan ويطبع ال token له
لو قمت بكتابة البرنامج بشكل يديوى لتحليل الـ tokens الخاصة بلغة c/cpp سيأخذ منك حوالي 1000 سطر و هذا مع عدم إضافة كود الطباعة. توجد ادوات جاهزه لتوليد مثل هذا الكود مثل Flex و ANTLR و لكني لا استخدمهم كثيرا. تحليل الـ tokens عملية يسيره فقط قم بقراءة الفصل الث…
- أريد أن أفهم الخطوات الثمانية التي يقوم بها الCompiler
فى قسم الأسئلة الأكثر شيوعا تحدثت عن هذه الخطوات بالتفصيل من وجهة نظر مترجم ++c و ليس c. الموضوع الذى تريده هو مفاهيم أساسية، الجزء الثاني و الأفضل أن تقرائهم من البداية و حتى هذا الموضوع، راجع فهرس الأسئلة الأكثر شيوعا للغة ++c . و الله ولي التوفيق
- مساعدة في rucksack problem
أنظر البرنامج التالي: #include <iostream>#include <vector>using namespace std;struct Box{ float price; float weight;};struct Bag{ Bag(float mw) : max_weight(mw) {} bool add(const Box&); float get_total_weight(); float get_total_price();private: float max_weigh…
- خوارزمية الأعداد الأولية
قمت بوضع السؤال بموقع SO و وجدت الإجابة. و الله ولي التوفيق
- مساعدة في إخراج المتوسط الحسابي لمصفوفة Signed
يمكنك إبدال السطر التالي: ADD AX, [SI + DI] بهذا: INC SI ADD AX, [SI] لاحظ ان هذا السطر سيعمل فقط لأن حجم العنصر داخل المصفوفة 1 بايت، فإن كان 2 إجعله كالتالي: ADD SI, 2 ADD AX, [SI] عموما خبرتي فى برمجة 16بت ضعيفة و كل محولاتي تكون بتحويل الكود من 32بت إلى 16…
- مساعدة في إخراج المتوسط الحسابي لمصفوفة Signed
بعد قراءة الكود علمت انه خطئى، المصفوفة لديك بمساحة واحد بايت للعنصر و ليس 2 بايت و بالتالي السطر: [SI + 4*DI] سيصبح [SI + DI] حيث الرقم 4 أو 2 يمثل مساحة العنصر الواحد بالبايت داخل المصفوفة. و الله ولي التوفيق
- مساعدة في إخراج المتوسط الحسابي لمصفوفة Signed
قمت بترجبة الكود و اتضح انى نسيت وضع colon بعد الكلمة UNSIGNED_VAL و غير ذلك وفالكود يعمل جيدا. إذا كان لديك stack يمكنك إستخدام PUSH و POP لحفظ قيم المسجلات و بعد ان تنتهي تقوم بإسترجاع القيمه منهم. إليك النسخه 32بت التى قمت بتجربتها: #include <cstdio> using …
- خوارزمية الأعداد الأولية
أنا أعرف غربلة SoE قمت بتطبيفقها من قبل و كشلتها تكمن فى حاجة وجود قائمة مسبقة بكافة الأعداد بمضاعفات ثابته و حيث ان الأعداد الأولية ليست لها مضاعفات ثابته فالبالتالي لم استطع تعديلها للعمل مع القيم المخزنة. ما تقول غير واضح لي، هل يمكنك التوضيح أكثر. شكرا لك.…
- خوارزمية الأعداد الأولية
معك حق لو اردت تخزين ألف مليار عدد اولي كل واحد بمساحة 8 بايت فأستحاج عدد ضخم من المساحة و لكن تخيل انك تقوم بحفظ الموقع من رقم معين فمثلا سأقوم بتقسيم الأعداد الاولية إلى مجموعة ثابته تتألف من 65535 رقم و ساقوم بتحديد أكبر رقم في كل مجموعه ثم سأقوم بحفظ الفرق…