• الإعلانات

    • فيصل الحربي

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

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

KeepForward

اعضاء جدد
  • عدد المشاركات

    35
  • تاريخ الانضمام

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

السمعه بالموقع

20 عادي

1 متابع

عن KeepForward

  • الرتبة
    عضو جديد
  • تاريخ الميلاد 03/01/1992

معلومات الملف الشخصي

  • الجنس ذكر
  • اهتمامات أكل العلم

طرق الإتصال

  • Skype omareen.00

أحدث الزائرين لملفلك الشخصي

5,198 زياره للملف الشخصي
  1. أنا أقصد بالرجل الأول هو الرجل على اليسار والرجل الأخير هو الرجل الذي على اليمين إذا كان الرجل الذي يقف على أقصى اليسار هو المتذبذب فمهما كانت إجابته (نعم أولا ) فيستحقق الشرط - انظر التشكيلات إذا سألنا الرجل الأيسر مهما كان : (هل الرجل الذي يقف على يمين المتذبذب هو الصادق ؟) فالتشكيلات التي ستجيب بنعم هي : ص ، ك ، م ك ، ص ، م ك ، م ، ص ص ، م ، ك (الرجل على أقصى اليمين ليس متذبذب)   أما التشكيلات التي ستجيب بلا هي : ص ، ك ، م ك ، ص ، م م ، ك، ص م ، ص ، ك (الرجل الذي في الوسط ليس متذبذب)   وهكذا نكمل نسأل الرجل الغير متذبذب هل أنت متذبذب ؟ نعم : فهو كاذب لا : فهو صادق   ثم نسأله هل الرجل الأيسر هو المتذبذب ؟ ثم نعرف التشكيلة بالاعتماد على إجابة السؤالين الأخيرين
  2. الحل بسيط : مجموعات الترتيب هي : ص ، ك ، م ك ، ص ، م م ، ك ، ص ك ، م ، ص م ، ص ، ك ص ، م ، ك   (ص : صادق ، ك : كاذب ، م : متذبذب) إذا سألنا الرجل الأول : هل الرجل الذي يقف على يمين المتذبذب هو الصادق ؟ إذا كانت الإجابة نعم فالرجل الأخير أكيد ليس متذبذب   وإذا كانت الإجابة لا فالرجل الأوسط أكيد ليس متذبذب     نسأل الرجل الذي تأكدنا بأنه ليس متذبذب : هل أنت متذبذب ؟ إذا كانت الإجابة نعم : فهو كاذب    لا : فهو صادق   نسأل الرجل نفسه هل الرجل الأول هو متذبذب ؟ وبالاعتماد على السؤال الثاني والثالث نعرف التشكيلة الصحيحة
  3. هل يجوز أن نسأل الروبوت : هل أنت مذبذب ويقف على يمينه صادق ؟ ويعتبر ذلك سؤالا واحدا ؟
  4. تعتمد فكرة اللعبة بشكل أساسي على الدالة ReadConsoleInput التي تتحسس للدخل من الفأرة أو الكيبورد وتقوم بإعطاء قيمة للمتغير الرابع في حال تحسس دخل. الشرح يطول جدا في هذه الدالة الكبيرة والعظيمة لذلك أرفقت لك برنامج يوضح عملها بشكل جيد Keyboard & Mouse Events.rar   وهذا مثال جميل من شركة مايكروسوفت لهذه الدالة Cpp1.rar     وهنالك الدالة SetConsoleCursorPosition التي تقوم بنقل موضع مؤشر الكونسول إلى مكان معين للبدأ بالرسم من ذلك المكان وهاك مثال بسيط جدا عن مبدأ عملها Cpp1.rar     والدالة SetConsoleTextAttribute التي تقوم بتغير اللون والآن نأتي للدوال المصنوعة : في المكتبة Body تم وضع structure للقطع في اللعبة الذي يحوي على :   cont الرقم المضمن في الرقعة أو -33 : لغم cont2 لتخزيم إذا ما تم وضع علم على الرقعة أم لا x , y : إحداثيات الرقعة mode : الرقعة مفتوحة أم مغلقة المؤشرات : مؤشرات على الرقع المحيطة بالرقعة المكتبة Drawer : putvalues : تعين الاحداثيات لكل رقعة drawflint : لرسم كل رقعة ( المدخلات : رقم الرقعة 1 , رقم الرقعة 2 , لون الرقعة عندما تكون مغلقة  , لون الرقعة عندما تكون مفتوحة ) connectflint : لتعين الرقع المجاورة لكل رقعة المكتبة Libraries : A : مصفوفة الرقع pointed : مؤشر على الرقعة المعلمة flint0 : تابع تعيين البرامترات الأولية mytime : تابع تأخير زمني المكتبة Events :   dopoint : التعيين بمؤشر الفأرة على رقعة مغلقة unpoint : إزالة التعيين عن الرقعة بعد إنزياح المؤشر عنها unlockflint : فتح رقعة معين عليها markflint : تعيين رقعة بعلم على أنها تحتوي على لغم checkothers : فتح الرقع المحيطة بالرقعة المفتوحة في حال كانت لا تحتوي على أي قيمة boooooomb : فتح باقي الرقع في حال تم فتح رقعة ملغومة roundmines : توزيع الألغام بشكل عشوائي setcounts : توزيع القيم على الرقع بعد توزيع الألغام You Welcome  
  5. لعبة كانسة الألغام عل كونسول إذا حدا حابب يستفاد بليرة   شاركونا آراءكم   جميع الدوال المستخدمة من مكتبة Windows.h OmarsMineSweeper.rar
  6. ما شاء الله عليك أخي ... الأمر ليس بهذه البساطة بل أكبر من ذلك بكثير نصحيتي إذا كنت مهتما بهذا المجال انسا البحث باللغة العربية وابدأ بالبحث باللغة الإنجليزية ... ومو كل ما استنتجت شي فورا بتنشره  وجميع الحقوق محفوطة :) ... وتأكد أنو يوجد من استنتجه قبلك وكلما تعلمت أكثر كلما علمت أن هذا المجال بحر كبير ولكن للأسف لا يوجد منه شيء باللغة العربية . وإذا أردت اختبار قدراتك عليك بالعمل على مواقع مختصة بالمسابقات البرمجية .. وأنا من جهتي أنصحك بـSPOJ ... شكرا لك لقبول نصيحتي
  7. Combinations and Permutations in computer science   بسم الله الرحمن الرحيم اعتقد أن أغلبنا قد درس عن التباديل والتوافيق في الرياضيات ولكن لا يعلم ما هي استخداماتها في البرمجة ولكي اعبر لك عن اهميتها سأطرح الأسئلة التالية : كم رقم ثنائي بطول A خانات يمكننا تكوينه إذا كان يحتوي على B واحدات بين خاناته كم رقم يمكننا تكوينه إذا كان بامكاننا فقط استخدام A عدد والتكرار غير مسموح ما هو عدد التباديل التي يمكن بها إعادة تشكيل الكلمة "CALCULUS" . ما هو عدد الطرق التي يمكن بها توزيع A رسالة على B مراسلين بحيث كل مراسل يأخذ رسالة على الأقل ؟ ما هو عدد حلول هذه المعادلة : X1 + X2 + X3 + X4 = N بحيث (X >= 0) .         حسنا لنبدأ . قاعدة الجمع : بفرض كان لدينا N عنصر (m1 , m2 , ...... , mn ) وكل عنصر من نوع مختلف ، فإن عدد الطرق التي يمكننا بها اختيار أي عنصر هو W W = m1 + m2 + ..... + m3 قاعدة الضرب : بفرض كان لدينا N عنصر (m1 , m2 , ...... , mn ) وكل عنصر من نوع مختلف ، فإن عدد الطرق التي يمكننا بها اختيار أي عنصر من كل نوع هو W W = m1 * m2 * .... * mn نعلم جميعا أن عدد التبديلات لـ n عنصر خلال m حدث مع السماح بتكرار العنصر هو nm وعدد التبديلات لـ n عنصر خلال m حدث مع عدم السماح بتكرار العنصر هو n * (n-1) * (n-2) * .... * (n-m+1         التباديل :   ( سحب r عنصر على التوالي من n إذا كان الترتيب مهم ) مثلا إن عدد التبديلات في حال تم السحب مرتين (حدثين) من العناصر (x , y , z) إذا كان الترتيب مهما : x y  ,  x z  ,  y x  ,  y z  ,  z x  ,  zy   (الترتيب مهما : أي يمكننا كتابة x y  و y x  أما إذا كان الترتيب غير مهم فتكفي واحدة منهما) أي أن عدد التبديلات 3 * 2 = 6 أي n * (n-1   فعدد التباديل لـ n عنصر خلال k حدث هو   عدد التبديلات عندما نختار k عنصر من n عندما يجب عدم اختيار s عنصر هو عدد التبديلات عند اختيار k عنصر إذا كان يجب اختيار s عنصر هو   التوافيق :   ( سحب r عنصر معا من n إذا كان الترتيب غير مهم )   مثلا إن عدد التوافيق في حال تم السحب مرتين (حدثين) من العناصر (x , y , z) إذا كان الترتيب غير مهم : x y  ,  x z  ,  y z   الناتج هو (1 * 2 ) / ( 2 * 3 )     عدد التوافيق في حالة سحب k عنصر من n عنصر هو عدد طرق توزيع n كرة في r صندوق بحيث كل صندوق يحوي على كرة على الأقل عدد التوافيق في حال التكرار مسموح عدد حول المعادلة X1 + X2 + .... + Xr = N في حال (X > 0 ) هو     وهو ما يشبه حالة توزيع n  كرة في r صندوق بحيث كل صندوق يحوي كرة على الأقل أما في حال ( X >= 0 ) فعدد الحلول هو     عدد التبديلات عند اختيار r1 عنصر من النوع A و r2 عنصر من النوع B وووو ..... و rn عنصر من النوع K هو                   أصبح الأن بإمكاننا حل الأسئلة السابقة : عدد التشكيلات لرقم ثنائي بطول A يحوي على B وحدات بين خاناته هو CA,B عدد الأرقام التي يمكن تشكيلها من A عدد بغير تكرار هو !A   عدد التباديل التي يمكن تشكيلها من كلمة CALCULUS هي    عدد الطرق التي يمكن بها توزيع A رسالة على B مراسلين بحيث كل مراسل يأخذ رسالة على الأقل هو عدد حول المعادلة X1 + X2 + .... + XB = A في حال (X > 0 )               ويعد إيجاد عدد الطرق في الشبكات من أهم التطبيقات لها . وإليك المثال التالي :   أ . ما هي عدد الطرق الممكنة في الشبكة للوصول إلى F من S ؟ ب . ما هي عدد الطرق الممكنة للوصول إلى F من S إذا علمت أنه يجب المرور من M ؟ جـ . ما هي عدد الطرق الممكنة للوصول إلى F من S إذا علمت أنه يجب عدم المرور من M ؟  ~ أ . الطريق من S إلى  F  يمثل سلسلة من الخطوات يمنة R وإلى الأسفل D ، وهي 7 خطوات بالتحديد ( 4D و 3R ) ، فمثلا السلسلة "RDDRDRD" تعتبر من أحد الحلول . فعدد الطرق الممكنة هي عدد السلاسل التي طولها 7 وتحوي 3R (و 4D بالطبع ) W = C(7 , 3) =35 W = 7! / ( 3! * 4!) = 35   ~ ب . نقسم الطريق إلى طريقين من S إلى M و من M إلى F C(3 , 1) * C(4 , 2) = 18 ~ جـ . الحل إما : 17 = 18 - 35 أو يمكننا القول أن عدم المرور ب M يستوجب المروةر بالنقاط الأخرى ( u,v,w ) C(3,0)* C(4,3)   +  C(3,2)*C(4,1)  +  C(3,3)*C(4,0) = 17 شكرا لمتابعتكم .. والسلام عليكم ورحمة الله وبركاته
  8. كثيرا ما تمر معنا السلاسل العودية في البرمجة والتي تكون من الشكل التالي C0 F(n) + C1 F(n-1) + ...... + Ck F(n-k) = 0 ولعل أشهر سلسلة عودية التي يعرفها معظمنا هي متسلسلة فيبوناتشي F(n) = F(n-1) + F(n-2) والتي تشتهر بتطبيقاتها العديدة في الرياضيات . كثير من المبرمجين يقومون باستخدام العودية بشكل مباشر في البرمجة لإيجاد الناتج من أجل الحد n وهذه الخوارزمية من أبطأ الخوارزميات في إيجاد التوابع العودية . وإذا ما بحثنا في كتب الرياضيات عن حلول مباشرة للمعادلة العودية سنجد حلولا رياضية تتعلق بشكل مباشر بالحد n والتي تكون على الأغلب من الشكل : F(n) = A1R1^n + A2 R2^n  + ....... + Ak R^n هذه الحلول هي حلول مباشرة ، ولكنها غير عمليه بتاتا فهي فاشلة إذا كانت n كبيرة جدا ولأن الحدود Ai و Ri غالبا ما تكون أعداد كسرية وهذا ما يؤدي بدوره إلى كثير من الضياعات عند تخزين الأعداد والعمليات الرياضية عليها.   الحل من أجل سلسلة فيبوناتشي :               إن أفضل خوارزمية متبعة في هذ المجال هي خوارزمية الحل عن طريق المصفوفات ، حيت يمكننا كتابة السلسلة العودية بالشكل المصفوفي  Xi+1 = M Xi . حيث M هي مصفوفة الأمثال .... يصبح علينا الآن فقط إيجاد المصفوفة M     المصفوفة على الطرف اليساري من المعادلة هي مصفوفة Xi+1 أما المصفوفة اليمينية فهي مصفوفة Xi  وتكونا من الحجم K * 1. أما مصفوفة الأمثال M فهي من الحجم K*K     لنأخد سلسلة فيبوناتشي مثالا : F(n) = F(n-1) + F(n-2) | f(n) | = M x | f(n-1) || f(n-1) | | f(n-2) |نعلم أن المصفوفة M من الحجم 2*2   | f(n) | = | a b | x | f(n-1) || f(n-1) | | c d | | f(n-2)|حيث F(n) = a*F(n-1) + b*F(n-2)       و    F(n-1) = c*F(n-1) +d*F(n-2)    وبالتالي نجد أن : | f(n) | = | 1 1 | x | f(n-1) || f(n-1) | | 1 0 | | f(n-2)|عند تعويض n = 2 في المعادلة السابقة نحصل على الشكل التالي :   | f(2) | = | 1 1 | x | 1 || f(1) | | 1 0 | | 0 |لك ماذا لو أردنا الحل من أجل n=k مثلا ، عندها نقول X2 = M X1   نضرب الطرفين ب M M * X2 = M * M X1 X3 = M^2 X1 .. .. Xk+1 = M^k X1   M^2 = {{2,1} , {1,0}} => F(3) = 2         حسنا ماذا لو كانت المتسلسلة على الشكل التالي : f(n) = a*f(n-1) + b*f(n-2) + c*f(n-3) عندها : | f(n+1) | = | a b c | x | f(n) || f(n) | | 1 0 0 | | f(n-1) || f(n-1) | | 0 1 0 | | f(n-2) |ماذا لو كانت تتعلق بثابت : f(n) = a*f(n-1) + b*f(n-2) + c عندها نضيف الثابت إلى طرفي المعادلة العودية وذلك لتعلق جميع الحدود بنفس الثابت | f(n+1) | = | a b 1 | x | f(n) || f(n) | | 1 0 0 | | f(n-1) || c | | 0 0 1 | | c |ماذا لو كانت تتعلق بمتسلسلة أخرى g(n) = a*g(n-1) + b*g(n-2) + c*f(n) حيث f(n) = d*f(n-1) + e*f(n-2) عندها | g(n+1) | | a b c 0 | | g(n) || g(n) | = | 1 0 0 0 | x | g(n-1) || f(n+2) | | 0 0 d e | | f(n+1) || f(n+1) | | 0 0 1 0 | | f(n) |يفضل استعمال خوارزمية التقسيم والجمع لإيجاد M^k أرجو أن تكونوا قد استفدتم من هذه المعلومات والسلام عليكم ورحمة الله وبركاته    
  9. ربما في بادئ الأمر عند التعلم كنت أقوم بصناعة القوائم بنفسي ولكن الآن بسبب ضيق الوقت وروتينية الأمر في كتابتها أصبحت إما أن استخدم مكاتب STL الجاهزة أو في بعض الأحيان بالبحث على النت عن كود قائمة جاهزة وأنا أقوم بالتعديل عليها بما يناسب رغباتي
  10. محاضرات رائعة في الخوارزميات للدكتور سعيد أبو تراب ... عن تجربة شخصية استفدت عليها كتير Dropbox
  11. سؤال : OpenGL via Visual Studio 2008

    صراحة الله يعطيك العافية حسام ...بس ما ظبطت معي الأمور لما طبقت من المواضيع المثبتة (مشي الحال بعد ما خبصت كتير ^_^ ) ... بس وجدت ضالتي من موقع kutub.info متل ما ذكرت
  12. سؤال : OpenGL via Visual Studio 2008

    بسم الله الرحمن الرحيم أريد كتاب جيد لتعلم OpenGL على المنصات الجديدة VC++ 2008,2010,2012 حتى ولو كان باللغة الإنجليزية (يفضل العربية) وأي نسخة أفضل للتعامل مع OpenGL (express,profissional,....)
  13. إذا كنت تقصد الواجهات أخي فعليك بالبرمجة باستخدام المكتبات التي تعنى بالواجهات مثل مكتبات MFC أو مكتبات الQT
  14. الله يعطيك العافية أخي خالد كفيت ووفيت ... لقد حلت مشكلتي مع الدالتين sprintf و atof لأول مرة أتعامل مع cstdlib