الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

4 أسئلة عن recursion و bitwise operation

بدأه a1228 في 12 يونيو 2010 · 15 رد · 1,941 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

أنا أعلم ماهى الBitwise operations ولكنى لا أعلم لماذا أستخدمهم ومافائدتهم ؟

ال recursion أعرف ماهو ولكن كيف يمكن أن أتتبع برنامج به 2 recursion أو أكثر ؟

ماهى أفرع الرياضيات التى يجب على أنا أجيدها لتفيدنى فى عالم البرمجة ؟

وهل الدراسة فى الهند ستجعلنى متمكن فى برمجة الحاسب ؟

خالص ودى

تم تعديل هذه المشاركة بواسطة a1228 في 12 يونيو 2010 في 02:40

#2

سأعطيك فكره عامه و سريعه,,

بالنسبة لل Bitwise operations هي عمليات تتم على المتغيرات, مثلها من أي عملية (الجمع الضرب ,,, ) لكن الفرق بينها و بين العمليات العاديه انها تحدث علي مستوي ال bits.

من هذه العمليات هي عملية AND, OR, XOR, NOT, Shift right, shift left و هكذه (إقرا هذا الرابط http://en.wikipedia.org/wiki/Bitwise_operation )

و تستخدم هذه العمليات في الحسابات في عدة إستخدامات التي تتطلب معاملت البيانات على مستوي ال bit (لضمان السرعه مثلا). كما انها تستخدم مثلا لحساب ال digest للبيانات (http://en.wikipedia.org/wiki/Message_digest).

بالنسبة للسؤال عن ال recursion, أعتقد بإستخدام التنقيح يمكنك تتبع إي شئ (تقريبا) في برنامجك http://en.wikipedia.org/wiki/Debugging

بالمناسبة, هل أنت من الهند؟

1
#3
اقتباس
أنا أعلم ماهى الBitwise operations ولكنى لا أعلم لماذا أستخدمهم ومافائدتهم ؟

مثلا يمكنك استخدام المعامل shift right كبديل اسرع لعملية الضرب (فقط فى حالة إذا كان الرقم الـ multiplier من مضاعفات الرقم 2) و بالمثل المعامل shift right، بالنسبه لـ AND و OR و XOR فيمكنك استخدامهم لإختبار حالة flag معين.

اقتباس
ال recursion أعرف ماهو ولكن كيف يمكن أن أتتبع برنامج به 2 recursion أو أكثر ؟

إذا كنت تستخدم الفيجوال ستديو فيمكنك ذلك بإستخدام شاشة Call stack لمعرفة الإستدعاءات و شاشة Locals لمتابعة حالة متغيرات كل دالة.

اقتباس
ماهى أفرع الرياضيات التى يجب على أنا أجيدها لتفيدنى فى عالم البرمجة ؟

تعتمد على حسب التخصص الذى تريده و بشكل عام الـ Discrete Mathematics هو فرع اساسى لطلاب علوم الحاسب.

و الله ولى التوفيق

مدونتي: C++ Tips and Tricks

#4

لا يا أستاذ هويدى أنا مصرى , ولكن إن شاء الله سأسافر للهند لدراسة الحاسب

شكراً لكم على تجاوبكم

#5
اقتباس
تعتمد على حسب التخصص الذى تريده و بشكل عام الـ Discrete Mathematics هو فرع اساسى لطلاب علوم الحاسب.

أنا دخلت على صفحة الويكيبديا مفهتش حاجه,, طب نبدأ إزاي ؟؟

#6
اقتباس
أنا دخلت على صفحة الويكيبديا مفهتش حاجه,, طب نبدأ إزاي ؟؟

ابحث عن كتاب Discrete Mathematics لمؤلفه Rosen. الكتاب الأروع بلاشك لدراسة الـ Discrete Math. بمجرد دخولي للاختبار النهائي بعد أيام, أكون أنهيت الكتاب بإذن الله. العملية استغرقت سنة كاملة على مدى فصلين, و لكن مدرس المادة كان أحد أفضل المدرسين الذي درست عندهم في حياتي, بطبعه يحب التحدي :)

كل ما أستطيع أن أقوله لك هو أن الموضوع, عبارة عن تحدي للذات في الـ Discrete Math, و صدقني ستجده أصعب بكثير من الـ Calculus و خلافه, و لكن أكثر مادة استمتعت بدراستها في الجامعة :)

تحياتي...

#7

شكرا الأخ العزيز خالد,,

للأسف أنا أنهيت الدراسة منذ أكثر من سنتين, و للأسف أيضا تخصصت في قسم نظم المعلومات, فلم أدرس هذه الماده, و إنما سمعت عنها من أصدقائى بقسم علوم الحاسب.

#8
اقتباس
كل ما أستطيع أن أقوله لك هو أن الموضوع, عبارة عن تحدي للذات في الـ Discrete Math, و صدقني ستجده أصعب بكثير من الـ Calculus و خلافه, و لكن أكثر مادة استمتعت بدراستها في الجامعة

:dry:

ماشاء الله عليك ،

لكن المادة هذه بالذات " ماهضمتها " .. ( طبعاً السبب جاهز وهو الدكتور :/ ) ..

أنا درستها كمادة رياضيات بحتة وأظن علوم الحاسب يدرسونها كمادة خاصة في قسمهم Discrete Mathematics 4 CS .

لكن ماهو الجميل في المادة ؟

ماهي المواضيع التي تعجبك ؟

لأن مااذكره ، هو العمليات البولية و الأشجار و المنطق .. وأمور أخرى مهمة لكن مملة .

لعلنا نتفرغ لها بعد التخرج ان شاء الله >>> ( قابلني اذا فعلتها ) .

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#9
اقتباس
لعلنا نتفرغ لها بعد التخرج ان شاء الله >>> ( قابلني اذا فعلتها ) .

لن تفعلها, إسأل مجرب :D

#10
اقتباس
لكن ماهو الجميل في المادة ؟

ماهي المواضيع التي تعجبك ؟

الجميل أنك لا تحفظ شيء :lol:

المشكلة في هذه المادة أنها من النوع السهل الممتنع. و لكن النتيجة النهائية التي خرجت بها, هي كيف أقوم بإثبات شيء معين. بمعنى آخر, construct proofs from A to Z. أثرت على طريقتي في البرمجة, في أني أصبحت أفكر أكثر, قبل كتابة الكود. المادة ليست متركزة حول موضوع واحد, كل فصل عبارة عن موضوع منفصل, عبارة عن tool-set لحل المسائل, و هذا هو الجميل حولها :)

أول فصل درسناه, المنطق و ما أدراك ما المنطق :)

هذا الفصل اصعب فصل بالنسبة لي. أستاذنا ياسر في قسم الرياضيات يمكن أن يخبرك عن حلاوته, و لكن بالنسبة لك كمبرمج, ستجعلك تكتب if statements واضحة و مختصرة(لا مزيد من الشخابيط في الـ Conditions).

جزء الـ Number Theory. أعتبره أكثر متعة من الـ Proofs و ربما الأكثر متعة في المادة كلها. هل سألت نفسك ما هي الأعداد التي يمكن قسمتها على 3 أو 11 أو أي عدد آخر؟ هل يمكنك إثبات ذلك؟

هل سألت نفسك كيف تعمل خوارزميات التشفير؟ ربما تعرف كيف تستخدمها, و لكن بكل تأكيد إن لم تكن لديك الخلفية القوية في الـ Number Theory لا يمكنك بأي حال من الأحوال أن تقول أنك تفهمها. (الـ Asymmetric Cryptography يعتمد على الـ Group Theory بشكل كبير أيضاً).

الـ Recursion. معظم "البرامج" التي نحاول القيام بكتابتها, يمكن تمثيل المشكلات التي تكونها على شكل Recursion. ليس فقط الـ Factorial :P

الـ Counting Techniques. لا تحتاج إلى تعليق.

الـ Relations. أخبرني كيف تستطيع كتابة Comparator لعناصر مصفوفة ما؟ ماذا يعني أن تكون المصفوفة مرتبة؟

الـ Graphs, و لكن لم نتعمق فيها كثيراً, فهي تحتاج لمادة أخرى لوحدها :lol:, كل ما درسته في مادة الـ Data Structures عبارة عن أنواع "معينة" من الـ Graphs و العمليات عليها. أي مشكلة باختصار يمكن تمثيلها على أنها Graph, و العلاقات يمكن تمثيلها على أنها Edges. ماذا تريد أكثر.

مقدمة في الـ Theory of Computations. كتاب Rosen ليس جيداً, كثيراً في هذا الفصل, و هو الفصل الأخير أصلاً في الكتاب. عموماً, أنا لدي خلفية جيدة في الـ Grammars و خلافه. للأسف مادة الـ Theory of Computations لاتجدها متوفرة كل فصل, و إلا كنت أخذتها :)

الموضوع رائع, و لكن كما قلت لك الكتاب ليس جيداً جداً في عرض الموضوع. الفائدة من هذا الموضوع أكبر من أن يحصرها فصل في كتاب.

في النهاية, أنت لا تدخل الاختبار و تعرف مالذي ستقابله. عبارة عن ألغاز, تحتاج إلى حلها!

تحياتي...

تم تعديل هذه المشاركة بواسطة Khaled.Alshaya في 12 يونيو 2010 في 15:18

2
#11
اقتباس
لعلنا نتفرغ لها بعد التخرج ان شاء الله >>> ( قابلني اذا فعلتها ) .

التخرّج ام التفرّغ ؟ :D

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#12

أخى قمت بالبحث عن الكتاب ووجدته

وأقوم بتحميلة الأن

أقصد كتاب Discrete Mathematics and Its Applications

فهل يجبى أن يكون لى خلفية معينه فى الرياضة لأستطيع فهمه ؟

كان هناك كتاب عربى إسمه مبادىء رياضيات الحاسب http://www.books.w309.com/book.php?id=657

هل إن درسته قبل أن أدرس الDiscrete Mathematics سيسهل على الأمور بعض الشىء أم أبدأ بهذا الكتاب

ولكن عندى سؤال أخر , لى صديق يدرس حاسبات سئلته عن هذا الموضوع وأخبرنى أننى يجب أن أدرس الكالكيلوس فما فائدة ومتى سأضطر لإستخدامة

شكراً وأعتذر عن الإطالة

#13
اقتباس
أثرت على طريقتي في البرمجة, في أني أصبحت أفكر أكثر, قبل كتابة الكود. المادة ليست متركزة حول موضوع واحد, كل فصل عبارة عن موضوع منفصل, عبارة عن tool-set لحل المسائل, و هذا هو الجميل حولها

هذا ما أبحث عنه, أريد أن أفكر أكثر, حقيقة للأسف غالبا ما أعتمد على المنقح (debugger) لتكلميل الخورازميه أو المشكله التي أحلها!! (أعرف أنه سئ جدا, و لكني أحاول أن أفكر أكثر قبل الشروع في كتابة الكود)

أنا حقيقة كنت أخطط لمراجعه بعض المواضيع المهمه التي تركتها منذ ما يقرب على 4 سنين, و هي الData structure , Algorithms و الأن Discrete Math

,, ربما يوما ما أبدأ في تنفيذ هذا المخطط :cool: :happy:

#14

انت كده هدخل نفسك فى دوامه ملهاش حد، ركز فى حاجه واحده علشان انت لو قلت اذاكر Calculus قبل Discrete Math بعدها هتلاقى نفسك محتاج تدرس Algebra قبل Calculus و هكذا ...

أبدء ذاكر DM إن أحببت و لو لقيت نقط مبهمه اسئل عنها (و اجعل منها نقط جانبيه حتى لا تتشتت).

أمر أخر الرياضيات أمر هام أيا كان الفرع الذى تدرس فيه و لكن بشكل عام تعتمد على ما تريد عمله فحدد اتجاهك و من ثم أسئل و إن شاء الله تجد من يفيدك، و إذا كنت لا تعلم ما وجهتك أكثر من حبك لعلوم الحاسب فأقترح لك ان تقتنى أى من كتب علوم الحاسب مثل Computer Science - An Overview 9 Edition (ستجده على الصيغه DJVU) فهو يحتوى على فصول منوعه و يعطيك فكره جيده عن اقسام علوم الحاسب، لذا بعد إنتهائك منه ستعرف اى الأقسام انت تميل لها أكثر و ايضا ستعرف ماذا تريد كى تكمل المسيره.

و الله ولى التوفيق

مدونتي: C++ Tips and Tricks

#15
اقتباس
أنا حقيقة كنت أخطط لمراجعه بعض المواضيع المهمه التي تركتها منذ ما يقرب على 4 سنين, و هي الData structure , Algorithms و الأن Discrete Math

,, ربما يوما ما أبدأ في تنفيذ هذا المخطط :cool: :happy:

لا تضع مخطط قبل البدء و إلا لن ينتهى المخطط و لن تبدء أبدا (هذا الكلام موجه لأصحاب العزائم الضعيفه ممن يتبع هواه فى الدراسه)، ابدء مباشرة و بعدها قم بالتخطيط كما يحلو لك.

ضع امامك دائما المقوله التاليه:

الزمن كجواد أبدء الركض، إن سابقته فزت و إن سايرته و صلت و إن عنه تقاعست داسك فمكانتك من الزمن هى مكانتك فى الحياه و هى حيثما لنفسك اخترت.

و الله ولى التوفيق

مدونتي: C++ Tips and Tricks

#16

@ خالد : المواضيع يبدو أنها " من العيار الثقيل " ، هل ننتظر موضوعات عنها خلال الاجازة ان شاء الله cool.gif ،

GamingMasteR كتب:

التخرّج ام التفرّغ ؟ :D

التفرّغ :D ، الفكاك من الجامعة قريب بحول الله :-) .

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

مواضيع مشابهة