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

السبب الحقيقي لعدم فهم المؤشرات

بدأه bilal2005 في 27 أغسطس 2008 · 25 رد · 2,798 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

معظم الذين يدرسون c++ تواجههم مشكلة عندما يصلون إلى المؤشرات فما فوق المؤشرات كله يصبح مبهم أما عندما يصلون إلى الكلاس ويحلونها بالمؤشرات فهذا ما يسمونه الخيال العلمي

والسبب يرجع من وجهة نظري إلى عدة أمور :

-أولا الحماس الزائد لتعليم البرمجة فكل واحد يريد أن يتعلم البرمجة يبحث عن اللغة الأقوى فعندما يعرف أن c++ من أقوى اللغات الموجودة فيبدأ يبحث عن المراجع ويبدأ في الدراسة بدون أقل معرفة بأساسيات الكمبيوتر

-عدم التدرج في التعلم

- اخذ الأكواد الجاهزة

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

المرجوا من الإخوة التفاعل

#2

اول شي يعطيك العافية

ان متفق معك بالي قلتة لكن

اقتباس
وحاول تعلم لغة الأسمبلي

انا ما اتفق معك في هذي النقطة ...الاسمبلي لغة لوحدة معقدة ...

#3

كيف تستخدم مؤشرات بدون تخيل للذاكرة في رأسك ؟؟

الاسبملي تساعد (ولا شئ افضل منها) على تخيل الذاكرة ,, لذلك انا اتفق مع الأخ بلال في تعلّم الاسمبلي .

يكفي انه لا يوجد شخص عارف بالاسمبلي ويخشى المؤشرات (كوظيفة وليس كتعود على الـSyntax) .

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#4

انا شايف ان كل ما فى المؤشرات انها somehow confusing فقط لا غير

بتلخبط شوية بس

لكن انت ضخمت الموضوع اوى عن ما انا مريت به

شكرا جزيلا

#5
اقتباس
لكن انت ضخمت الموضوع اوى عن ما انا مريت به

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

أخي الكريم هل تعليم لماذا لا ننتج برامج أنا لا أقول مشاريع ضخمة لأن تليك المشاريع لا بد لها من دعم ووووو أنا أقول مجرد برنامج يحاكي برامج مراقبة الذاكرة لأننا لم نتعلم البرمجة من أساسياتها بل تعلمناها مما إنتهى به الغرب الغرب وقف عند الدوت نت والجافا وال س++ ونحن تعلمناها من حيث وقفوا ومسحنا ولم نعطي إهتمام لما قبلهم من لغات للبرمجة من منا يتقن الإسمبلي ولغة الألة بإحتراف فوالله أخي لو أتقنا تلك اللغات لم نجد مشاكل لا في المؤشرات وفي أي موضوع آخر

#6
اقتباس
من منا يتقن الإسمبلي ولغة الألة بإحتراف

يتقن لغة الالة باحتراف ؟؟ :blink: :wacko: :lol: اول مرة اسمع الكلمة دى

يا اخى صدقنى انت مكبر الموضوع بزيادة .... ده غير انك اصلا دخلت على المؤشرات بخوف و قلق بسبب سمعت عنها من قبل

بص ... هى فعلا صعبة .. بس مش للدرجة اللى انا شفتها او سمعتها ..

حاجة كمان ... انت ذكرت بدأنا مما انتهى الغرب ... انت تتحدث عن الغرب كأنهم شخص واحد ... هل كل محترفى البرمجة الغربيين بدأوا من لغة الالة كما تقول ؟؟

صدقنى الموضوع كله هو انك تعرف تستخدم الاداة اللى فى يدك

لغات البرمجة دى ما هى الا اداة ,,,, البرمجة هى فكر و فن و ليس كتابة كود , اعرف منطق و خوارزمية البرنامج و ستعرف كيف تكتبه باى لغة \

وفقك الله

تم تعديل هذه المشاركة بواسطة Omar Eladel في 27 أغسطس 2008 في 20:32

#7

اتفق معك في الحماس وعدم التدرج ...

وهذا الكلام لا اقوله إلا من تجربة ،

كنت اظن ان كل شيء يجي بسرعة ولما قرأت عن المؤشرات وجدتها من اصعب الدروس في السي++ ،

لكن الآن اراها من الدروس التي استطيع تعلمها وفهمها بسهولة لكن ليس في يوم ولا يومين لكن ، بكثرة التمارين والكتابة ، والقراءة من اكثر من مصدر ..

لا إله إلا الله محمد رسول الله عليه الصلاة والسلام

سبحانك اللهم وبحمدك اشهد ان لا إله إلا انت استغفرك واتوب اليك

سأتقن الـ ++C و
PHP إن شاء الله تعالى ...

جاري العمل على
Microsoft Sql Server و MySQL ...

 

#8
اقتباس
بكثرة التمارين والكتابة ، والقراءة من اكثر من مصدر ..

ابلغ جملة رأيتها فى الموضوع

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

#9
Omar Eladel كتب:
يتقن لغة الالة باحتراف ؟؟ :blink: :wacko: :lol: اول مرة اسمع الكلمة دى

لأ اخي عُمر ..صح ..هناك من يتقن لغة الآلة باحتراف...هم

Binary Speakers

:happy: :happy:

[وسط]

♥ Countess ♥

57899411.gif

♥

[/وسط]

#10
اللؤْلؤة رغَـــد كتب:
لأ اخي عُمر ..صح ..هناك من يتقن لغة الآلة باحتراف...هم

Binary Speakers

:happy: :happy:

من هؤلاء المجانين ؟؟ لم اجد فى google ما يدلنى عنهم :blink: :wacko: :S

سبحان الله

#11
Omar Eladel كتب:
من هؤلاء المجانين ؟؟ لم اجد فى google ما يدلنى عنهم :blink: :wacko: :S

سبحان الله

اسم شائع للأشخاص اللي يكتبوا البرامج بلغة الآلة مش الأسمبلي..لغة الآلة نفسها

01101011101010101010101010101010101010101010101

:happy: :happy: :happy: :happy: :happy: :happy:

واياك تعتمد على Google و wiki كتير...هناك اشياء بالكتب العالمية المعروفة مش بالمحركات العالمية او الموارد المفتوحة الحُرة

[وسط]

♥ Countess ♥

57899411.gif

♥

[/وسط]

#12

هل لهم انتاج من البرامج حتى لو كان برنامج Hello , World ؟؟ ام مجانين هواة فقط ؟؟

#13
Omar Eladel كتب:
هل لهم انتاج من البرامج حتى لو كان برنامج Hello , World ؟؟ ام مجانين هواة فقط ؟؟

لأ..مش هواة..عموماً مسمّى Binary Speakers مدوّن عند والدي بكتاب قديم عن لغة الآلة...ماني فاكرة اسمو..لكن فاكرة المعلومة.

.,,.,.,.,.,.

هم الأشخاص اللي يفهموا ويتقنوا كتابة البرامج الصعبة بلغة الآلة مباشرة

101010

Zero, one

,.,.,..,,.,.

لغة Assembly جاءت كلغة رمزية Symbolic Porgramming Language تعمل على تبسيط لغة الآلة The Machine Language..اللي هي

010101010

,.,.,.,,.,.

عُرفاً في الوسط البرمجي كل شخص يكتب بلغة الآلة مباشرة هو

Binary Speaker

هيك فاكرتا للمعلومة والله اعلم

:happy: :happy: :happy: :happy:

[وسط]

♥ Countess ♥

57899411.gif

♥

[/وسط]

#14

لغة الالة ؟

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

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#15

لا اعتقد الكتابة تكون بترميز الـbinary بل بالـhexa ,, وحتى ان كانو فعلاً يقومون بكتابتها بترميز الباينري فهذا يدل على انهم مهرجين ...

هناك عدة اسباب للكتابة بلغة الالة مثل كتابة تعليمات غير مصرّح بها من قبل مصممي المعالج ... نعم حتى تعليمات الاسمبلي فيها الـundoumented part .

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#16

بالنسبة لرأس الموضوع ، المؤشرات يصعب المبتدىء فهمها لانه في الغالب لا يعرف لها طبيق ، فيجب ان يدرس كورس هياكل بيانات مع هذا الكورس ، هذا ما رأيته في زملائي الذين درسوا اللغة ، بالنسبة لتخيل الذاكرة هذا ليس صعباً بل إن معظم الكتب لا تدخل في تفاصيل كيفية عملها !! كل ما في الامر انهم يضعون مربعات و لكل مربع عنوان ، هذا رسم افتراضي للذاكرة ، انما تصميم الذاكرة من الداخل هذا شىء معقد لدارسين علوم الكومبيوتر ، و لا تحتاج لتعلم لغة الاسيمبلي لفهم المؤشرات ، البعض يقرأ في الاسيمبلي علي المعالج 8086 و هو صعب البنية جاء بعد تطويرات كثيره ، بجب ان تقرأ و تتعلم اسيمبلي لمعالج مثل Z80 او 8085 لا يوجد به تعليمات MUL و لا DIV و ستسطيع فهم البنية بسهولة و من ثم تستطيع ان تتنقل لغة علياً و لكن اكرر انك لا تحتاج لدراسة الاسيمبلي لفهم المؤشرات او لتعلم السى ، تعلم الاسيمبلي سيعطيك اضافة لمساعدة السى في الاشياء التي تحتاج لسرعة في الاداء .

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#17

اخوتي الكرام

,.,.,.,.,.,.

آسفة في سوء توصيل المعلومة..مش كتابة بـ Binary..ويمكن مش بعيدة كمان..ولكن انا قاصدة Thinking In Binary

,.,.,.,.,.,.,.,.

مثلاً الصورة التالية..لساعة نظامية تعرض الوقت بصيغة الـ Binary..

post-140583-1219862822_thumb.jpg

طالما انتوا تتعاملوا مع هالساعة وتقرأوا كم الساعة إذاً انتوا (كمثال) Binary Readers

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

:happy:

فاهمين علي؟؟

:happy: :happy:

بالمناسبة للتعامل مع نظام الساعة السابقة من الصورة التالية:

post-140583-1219862848_thumb.jpg

تخيلوا كل شيء نظامياً يتحول للـ Binry شو بنصير؟

Binary People

:happy: :happy:

Addtionally:

عقولنا(الدماغ البشري) نظامه Binary

فاكرة معلومات هيك شي والله اعلم...اليوم انا مش طبيعية..مآكلة (فزتق) مشان هيك الذاكرة قوية شوي!!

:happy: :happy: :happy:

[وسط]

♥ Countess ♥

57899411.gif

♥

[/وسط]

#18

آسفة بخصوص الخروج عن الموضوع...الله يسامحك اخي عُمر..انت السبب..

:happy: :happy:

[وسط]

♥ Countess ♥

57899411.gif

♥

[/وسط]

#19

الموضوع لم يكن بخصزص لغة الألة او الإسمبلي بل كان على المؤشرات وحول مفهوم الذاكرة

فكل الذين يدخلون إلى س++ يصلون إلى المؤشرات ويقفون عاجزين عن فهمها وأنا أتحدث عت تجرية شخصية حيث كنت أدرس س++ وعندما وصلت إلى المؤشرات والكلاس لاحظت الطلبة لم يعودوا يعستوعبون كما كانوا قبل المؤشرات فخلصت إلى ان التعلم يجب أن يكون بالتدرج ففهم أوليات الذاكرة والتعامل معها مباشرة وفهم هندسة الحاسوب هي التي تؤدي إلى الفهم الجيد للبرمجة والتعامل مع المؤشرات بدون أخطاء وأنتم تعرفون الأخطاء الناتجة عن المؤشرات من الأخطاء القاتلة تخيل معي كتبت 10000 سطر والمترجم لم يقل أي خطأ والبرنامج عند تشغيله يعطي أخطاء فبالتأكيد سترمي الكود وستقوم بكتابته من جديد

#20

يووة انتم دخلتوو بموواضييع

والله حمستوني لأسمبلي

#21
اقتباس
تخيل معي كتبت 10000 سطر والمترجم لم يقل أي خطأ

و هل من المعقول أن تكتب 10,000 سطر كود دون أن تحاول تجربته عشرات بل مئات المرات خلال هذه الفترة من الكتابة

المؤشرات هي أساس البرمجة فحتى في اللغات العليا مثل #C و Java أصبحت الطريقة الوحيدة لانشاء الobjects هي باستخدام المؤشرات, و لكن كل ما حدث هو أن العلامة * و & تمت ازالتها

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#22
bashmohandes كتب:
المؤشرات هي أساس البرمجة فحتى في اللغات العليا مثل #C و Java أصبحت الطريقة الوحيدة لانشاء الobjects هي باستخدام المؤشرات, و لكن كل ما حدث هو أن العلامة * و & تمت ازالتها

بالتمام, وإزالتها كان لسبب تيسير عملية القراءة(تسهيل قراءة الشيفرة) مش اكتر

[وسط]

♥ Countess ♥

57899411.gif

♥

[/وسط]

#23
اقتباس
لكن كل ما حدث هو أن العلامة * و & تمت ازالتها

ياليت لو يقدرون يزيلونها من السي بعد ^^ ، هي صح مع كثرة الكتابة والتمارين تتضح الأمور وترسخ في العقـل ،

لكن في ناس ممكن يفقدون الأمل في تعلم السي بسبب المؤشرات ^^ ، انا رأيت في ردود ان من يتقن المؤشرات سوف يستمتع بهـا ،

وانا منتظر الوقت الذي سأستمتع بهـا ، لكن الكلام مش داخل راسي ^^ ، لكن سبحان الله يمكن تتغير الأمور في المستقبل وتصبح المؤشرات هي الحب الأول والأخير ^^

لا إله إلا الله محمد رسول الله عليه الصلاة والسلام

سبحانك اللهم وبحمدك اشهد ان لا إله إلا انت استغفرك واتوب اليك

سأتقن الـ ++C و
PHP إن شاء الله تعالى ...

جاري العمل على
Microsoft Sql Server و MySQL ...

 

#24

لا ارى اي صعوبة في الpointers

بل هي مثلها كمثل تعلم classes و تعلم functions واساسيات البرمجة loops , switch, ... etc .

اعتب عليك اخي كاتب الموضوع على تضخيم المؤشرات وانها سبب وعائق لتعلم البرمجة!

تم تعديل هذه المشاركة بواسطة مجلـد جديـد في 9 سبتمبر 2008 في 01:44

#25

ترميز الآلة (لغة الآلة) ماهي إلا ترميز لغة التجميع بطريقة مقروءة للحاسوب ، بمعني أن ترميز الآلة ولغة التجميع (بدون ماكروات) يمكن التحويل بينهما مباشرًة.

والبعض يعتقد أن لغة الآلة ليس بها سوى تعليمة واحدة فقط وهي الجمع ، وهذا خطأ ، عدد تعليمات المعالج في المعالجات الحديثة ما بين ال 700 وال 1000 ، وهذا رقم تقريبي من عندي، يمكنك أن تعد التعليمات بنفسك هنا :

http://en.wikipedia.org/wiki/X86_instruction_listings

ولا يوجد من يكتب برامج بترميز الآلة مباشرةً ، هذه الحقبة كان قصيرة جدًا جدًا ، فأول لغة برمجة استخدمت في برمجة حاسوب اخترعت سنة 1949 واسمها شورت كود ( هذا غير بلانكالكول والتي وصفت سنة 1943 لكن لم تطبق أبدًا إلا في التسعينيات )

http://en.wikipedia.org/wiki/Short_Code_(computer_language)

http://en.wikipedia.org/wiki/Plankalk%C3%BCl

، وترميز الآلة كان يكتب مباشرةً على حواسيب ليست مثل التي تراها اليوم ،

كان يكتب على أشياء مثل هذا :

http://en.wikipedia.org/wiki/Z1_(computer)

fig16b.jpg

وهذا :

hist-z1-original.jpg

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