docs:البرمجة_للمبتدئين_باستخدام_كلمات
اختلافات
عرض الاختلافات بين النسخة المختارة و النسخة الحالية من الصفحة.
جانبي المراجعة السابقةالمراجعة السابقةالمراجعة التالية | المراجعة السابقةالمراجعة التاليةجانبي المراجعة التالية | ||
docs:البرمجة_للمبتدئين_باستخدام_كلمات [2013/06/20 15:30] – [مفاهيم أساسية] كفاح عيسى | docs:البرمجة_للمبتدئين_باستخدام_كلمات [2015/04/23 03:19] – تحرير خارجي 127.0.0.1 | ||
---|---|---|---|
سطر 1: | سطر 1: | ||
+ | {{tag> | ||
+ | |||
+ | |||
+ | ====== البرمجة للمبتدئين باستخدام " | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | ===== مقدمة ===== | ||
+ | أصبح الناشئة اليوم *مستهلكين* بارعين للتقنية، يمضون أيامهم على هواتفهم الذكية أو حواسيبهم يلعبون بالألعاب بل ويتبارون أيهم يملك إصدارة أحدث أو عنده مهارة أكبر في الاستخدام. | ||
+ | |||
+ | نأمل في أن يتوجه الناس و خصوصا الأطفال إلى الابتكار والإبداع بدلا من الاستهلاك وأن تكون عندهم القدرة على بناء برامج مهما كانت بسيطة. لأن ذلك سينطلق بهم بالضرورة إلى مستوى أعلى في فهم الحاسوب والتعامل معه. ونأمل أيضا أن يتوجه عدد أكبر من الناشئة إلى سبر أغوار الحاسوب والاحتراف في بناء البرمجيات. | ||
+ | |||
+ | وهنا نأتي إلى موضوعنا ... البرمجة! | ||
+ | |||
+ | ما هو برنامج الحاسوب ؟ | ||
+ | |||
+ | **برنامج** الحاسوب هو مجموعة من الخطوات (الأوامر الموجهة للحاسوب) يكتبها **المبرمج** ليقوم الحاسوب بتنفيذها لتحقيق غاية ما. | ||
+ | |||
+ | نتعامل مع ما يشبه برمجة الحاسوب كثيرا في حياتنا ... تخيل أن تكتب لشخص آخر على ورقة مجموعة من الخطوات ... | ||
+ | |||
+ | مثلا الأب والأم خارج البيت ويكتبان لابنهما مجموعة خطوات لينفذها إذا ما عاد إلى البيت من المدرسة : | ||
+ | |||
+ | < | ||
+ | خرجنا أنا وأمك للتسوق. نرجو منك أن تفعل ما يلي، \\ | ||
+ | أولا - أغلق الباب الخارجي ولا تفتح لأي شخص. \\ | ||
+ | ثانيا - تأكد من تغيير ملابسك فور وصولك إلى البيت. \\ | ||
+ | ثالثا - إذا كنت جائعا، قم بتسخين الطعام الموجود في الثلاجة وأكله. \\ | ||
+ | رابعا - افتح جدولك الدراسي لليوم - مادةً مادةً - قم بالمراجعة و إنهاء الواجب المدرسي لكل مادة. \\ | ||
+ | خامسا - إلى حين رجوعنا إلى البيت يمكنك أن تأخذ قيلولة إذا كنت نعسانا أو أن تلعب أو أن تشاهد التلفاز. \\ | ||
+ | مع أطيب تحياتنا ومحبتنا لك \\ | ||
+ | أبوك وأمك// | ||
+ | </ | ||
+ | ما كتبناه هنا هو برنامج حقيقي، به مجموعة من الأوامر التي تم صياغتها على شكل خطوات لتحقيق غاية. | ||
+ | كانت هنالك مقدمة للبرنامج لتهيئته للتنفيذ : التحية وذكر خروج الأب والأم وطلب تنفيذ الخطوات، ثم مجموعة الخطوات نفسها. فلنصنف أنواع أو أنماط الخطوات : \\ | ||
+ | أ - القيام بتنفيذ أمر مباشر : اغلق الباب ...، غير ملابسك ...، سخن الطعام، خذ قيلولة .... \\ | ||
+ | ب - شرط (إذا كان الحال كذا نفذ الأمر كذا) : إذا كنت جائعا قم بتسخين الطعام ... \\ | ||
+ | ج - تكرار مجموعة من الأوامر على قدر مجموعة من العناصر : لكل مادة من المواد الدراسية التي أخذتها اليوم ، قم بمراجعتها وعمل الواجب المنزلي. | ||
+ | |||
+ | وهكذا انتهى البرنامج. | ||
+ | |||
+ | ذاك برنامج موجه للبشر والأمثلة على البرامج الموجهة للبشر كثيرة، أشهرها وصفات تحضير الطعام. وهي عبارة عن مجموعة من الأوامر التي يتم صياغتها على شكل خطوات للوصول في النهاية إلى تجهيز الطبق. | ||
+ | |||
+ | تتميز فكرة البرمجة هنا أن مجموعة الخطوات تلك *مكتوبة* لكي يمكن تنفيذها من قبل طرف آخر بعيدا عمن كتبها. | ||
+ | |||
+ | فلننتقل من برمجة البشر إلى برمجة الحواسيب | ||
+ | الحقيقة أن الحاسوب ليس سوى آلة يمكنها القيام بأمور محددة وبسيطة فقط لا غير. أي أن الحاسوب لا يعرف إلا عددا قليلا من المفردات التي يمكنك استخدامها معه. مثلا ... | ||
+ | * قراءة ما يكتبه المستخدم على لوحة المفاتيح أو القراءة من ملف | ||
+ | * القيام بعمليات معالجة للنصوص و حسابية و منطقية (تنفيذ مشروط). | ||
+ | * إخراج النتائج على الشاشة أو على ملف. | ||
+ | ... وهكذا. | ||
+ | |||
+ | | ||
+ | أولا - مثابرٌ و ذو جَلَد، فلا يتعب من طول الأوامر ولا يمل من التكرار. \\ | ||
+ | ثانيا - ذو ذاكرة قوية يمكنه تذكر كل شيء تريده أن يتذكره \\ | ||
+ | ثالثا - ماهر بالرياضيات فيقدر على حساب الأرقام مهما كانت معقدة \\ | ||
+ | رابعا - غبي جدا (يخلو من أي ذكاء أو قدرة على فهم ما يجب عمله لوحده) ولكنه في الوقت نفسه دقيق جدا. لذلك عليك التفصيل تماما في إعلامه بما يجب عليه أن يعمل. \\ | ||
+ | |||
+ | فالحاسوب إذا خادم مطيع لا يعصيك ما أمرته ويفعل ما يؤمر ... الحالة الوحيدة التي قد يعصي الحاسوب لك فيها أمرا هي أن تُقَصّر أنت في التعبير بشكل كاف | ||
+ | |||
+ | تخيل الحاسب رجلا آليا ينفذ أوامرك ... ولكن الرجل الآلي ذاك لا يأخذ الأوامر منك بشكل مباشر (افعل كذا وكذا وأنت تراقبه) بل يأخذ الأوامر منك كاملة (بكافة تفاصيلها وشروطها وما يجب أن يستقرئه وما يجب أن يفعله) قبل أن يبدأ بتنفيذ أي شيء. فإذا أخطأت أنت في أوامرك فعليك برمجته مرة أخرى من جديد وكذلك عليك برمجته من جديد إذا رغبت بأن يقوم بخطوات أكثر أو أن يحقق غاية جديدة. | ||
+ | |||
+ | أنت في هذه الحالة بالنسبة للحاسب مبرمج، تكتب له ماذا يفعل (أو كيف يتصرف) مع المستخدم وهو شخص مختلف عنك من وجهة نظر الحاسب. فكأن الحاسب هو خادم المبرمج، ينفذ المهام والخطوات والتعليمات التي سبق وأن أعطاه إياها المبرمج ... يقوم بتنفيذ التعليمات تلك على الحاسب ويتفاعل مع المستخدم فور أن يطلب منه المستخدم البدء بالتنفيذ. | ||
+ | |||
+ | |||
+ | نعرج هنا على مجموعة من الأمثلة (الدروس)، كل يدرس يعلمك إمكانات جديدة في البرمجة. عليك أولا أن تكتب الدرس و تجعله يعمل، ثم تُحلل ما كتبته و تقوم بتغيير بعض الأشياء لتتأكد من فهمك ومن ثم يمكنك عمل أي شيء آخر. | ||
+ | |||
+ | تجد في هذا الرابط [[http:// | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== مفاهيم أساسية ===== | ||
+ | |||
+ | تتضمن برمجة الحاسوب التعامل مع مجموعة بسيطة من المفاهيم الأساسية والتي ينطلق منها البرمج ليصنع الشئ الذي يريد. | ||
+ | البرمجة (وبشكل أساسي) تدور حول وجود بيانات (في ملفات أو على الشابكة أو تؤخذ من المستخدم أو تعطى له) ومتغيرات لحفظ البيانات أو أجزاء منها وأوامر للحساب أو القراءة أو الإظهار و جمل شرطية تحكم عملية تنفيذ الأوامر التي بداخلها وحلقات تدور على مجموعة من الأوامر عدد معين من المرات. | ||
+ | ==== المُتغيرات ==== | ||
+ | | ||
+ | |||
+ | * نص: أي حروف ورموز وأرقام، وتُسمى كذلك بسلسلة المحارف (المحرف مصطلح أعم من الحرف يشمل الرموز والأرقام). وتوضع النصوص داخل إشارات تنصيص (") حتي يتمكن الحاسوب من تمييزها عن أوامر اللغة نفسها. | ||
+ | |||
+ | * رقم: مثل 5234.234 ويمكن إجراء أنواع الحسابات الرياضية المختلفة على المتغيرات الرقمية. | ||
+ | |||
+ | * منطق: يحمل أحد قيمتين **صحيح** أو **خطأ** | ||
+ | |||
+ | * مصفوفة: | ||
+ | |||
+ | * قاموس: قائمة من المتغيرات لكل متغير فيها مفتاح مختلف يعينه المبرمج. | ||
+ | |||
+ | ملاحظة: | ||
+ | |||
+ | < | ||
+ | <div dir=" | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== التفاعل مع المُستخدم ==== | ||
+ | أبسط أشكال التفاعل مع المستخدم هو طباعة نصوص وقراءة قيم، ويتم ذلك من خلال الأمرين **اطبع** و **اقرأ**. | ||
+ | يتقبل أمر **اطبع** أي عدد من المعطيات. سواء أكانت نصوصا أم متغيرات. حيث يقوم بطباعتها بالترتيب الذي ترد فيه. | ||
+ | أما أمر **اقرأ** فيمكنه طباعة نص للمستخدم ومن ثم قراءة قيمة نصية أو رقمية إذا كان اسم المتغير مسبوقا بإشارة الرقم **#**. | ||
+ | |||
+ | |||
+ | ==== جُملة شَرطيّة ==== | ||
+ | ينفذ الحاسوب مجموعة الأوامر المرتبطة بالجملة الشرطية إذا تحقق الشرط فقط. وفما عدا ذلك فإنه يقفز عن تلك الأوامر كأنها ليست موجودة. | ||
+ | |||
+ | < | ||
+ | |||
+ | <div dir=" | ||
+ | </ | ||
+ | |||
+ | ==== حلقة ==== | ||
+ | يستطيع الحاسوب أن يدور في حلقة لأي عدد تشاء من المرات للقيام بأعمال مختلفة. تذكر إذا دخل الحاسوب في حلقة لا نهائية فسيصاب برنامجك بالشلل. | ||
+ | |||
+ | < | ||
+ | |||
+ | <div dir=" | ||
+ | |||
+ | </ | ||
+ | ملاحظة : الرمز "<>" | ||
+ | |||
+ | ==== الدالة و الإجراء ==== | ||
+ | |||
+ | الدالة و الإجراء هي طريقة لتبسيط كتابة النص المصدري وإعادة استخدام الأجزاء المتكررة. فهي تتيح لك تجميع أي عدد من الأوامر في وحدة واحدة لتقوم باستدعاء اسم الدالة أو الإجراء فيقوم النظام بتنفيذ مجموعة الأوامر التي فيها. ويمكن تحديد أي عدد من المتغيرات التي تُمرر إلى الدالة أو الإجراء. | ||
+ | الفرق الوحيد بينهما هو أن الدالة تُرجع نتيجة يمكن وضعها في متغير أما الإجراء فهو لتنفيذ الأوامر دون إرجاع أية نتيجة. | ||
+ | |||
+ | < | ||
+ | <div dir=" | ||
+ | </ | ||
+ | ---- | ||
+ | |||
+ | |||
+ | ==== الدرس الأول : برنامج يُرحب بالمستخدم ويسأله ==== | ||
+ | في هذا الدرس ستتعلم كيف تطبع نصوصا على الشاشة وكيف تقرأ ما يكتبه المستخدم وتستخدم ما يدخله مستخدم الحاسب في طباعة رسالة له. تذكر أنت هنا المُبرمج ولَستَ مُتستخدم الحاسب! | ||
+ | |||
+ | |||
+ | < | ||
+ | <div dir=" | ||
+ | style=" | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== الدرس الثاني : لعبة " | ||
+ | سيطلب البرنامج من المستخدم أن يضمر أي رقم وسيطلب منه إجراء بعض العمليات الحسابية عليه ليعرف كم يبقى معه بالضبط! :) | ||
+ | |||
+ | |||
+ | < | ||
+ | <div dir=" | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | الرموز الخاصة : \\ | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ==== الدرس الثالث : لعبة " | ||
+ | يسأل البرنامج المستخدم عن عواصم بلدان أو بلدان عواصم ليعطيك في النهاية علامتك من عشرة. | ||
+ | |||
+ | < | ||
+ | <div dir=" | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | الألوان : \\ | ||
+ | {{http:// | ||
+ | </ | ||
+ | |||
+ | ==== الدرس الرابع : الرسم ==== | ||
+ | بإمكانك رسم خطوط ودوائر ونقاط (تذكر أن نقطة 0،0 هي في أعلى يمين الشاشة وأن النقطة 800،600 (وهي أبعد نقطة يمكن رسمها) تقع في أسفل يسار الشاشة. ونرسم هنا بعض المعادلات الرياضية أيضا ... مستخدمين درس الإزاحة والتكبير والتدوير الذي أخذته في مقرر الرياضيات. | ||
+ | |||
+ | < | ||
+ | |||
+ | |||
+ | <div dir=" |