Search for notes by fellow students, in your own course and all over the country.

Browse our notes for titles which look like what you need, you can preview any of the notes via a sample of the contents. After you're happy these are the notes you're after simply pop them into your shopping cart.

My Basket

Gas law£1.50

Title: تعلم البرمجة من الصفر حتى الاحتراف
Description: تعلم البرمجة من الصفر حتى الاحتراف

Document Preview

Extracts from the notes are below, to see the PDF you'll receive please use the links above


‫هل تريدون فعال أن تصبحو مبرمجين محترفين و لكن التدرون من أين تبدؤون ؟‬
‫)بتعبير آخر :هل مللتم من الدروس المعقدة التي ال تفهمون منها شيئا ؟(‬
‫إنه يوم حظم‬
‫لقد وجدتم اليوم دوروسا في البرمجة خاصة بالمبتدئين ,خاص كل الخصاص بالمبتدئين‬
‫في الحقيقة ال يوجد عيب في كوننا مبتدئين فالكل مرة بهذه المرحلة للوصول إلى اإلحتراف ,أنا‬

...
إلخ-‬
‫في الحقيقة دروسي و التي تعتبر مجهودا شخصيا سنقسمها إلى ثالثة أقسام أو لنسميها أشطرا و‬
‫:هي كالتالي‬
‫األساسيات و شطر التقنيات المتقدمة شطرين للتعلم و هما ينقسمان لشرط+‬
‫و الشطر الثالث سنخصصه للتطبيق و ذلك بصنع أول لعبة عن طريق برامج و بتطبيق ما +‬
‫تعلمناه من الشطرين السابقين‬
‫فالصبر مفتاح الفرج و من هنا تنتهي مقدمتنا و هناك بعض األشياء التي سأذكر بها و هي الصبر‬
‫فلذلك إذا كنتم عازمين على التعلم و هذه الخصلة هي من أكبر و أهم خصال المبرمج المحترف‬
‫متدرجا فأنصحكم بالتريث و الصبر فكل شيئ يأتي‬
‫: و اآلن فلنبدأ درسنا األول و هو عبارة عن مقدمة كبيرة حول البرمجة تحت عنوان‬

‫قلتم "برمجة "؟‬
‫فماذا نعني ببرمجة ؟‬
‫نبرمج في أي لغة ؟‬
‫و هل البرمجة صعبة ؟‬
‫‪ C‬للمبتدئين السالم عليكم !!و مرحبا بكم في درسي للبرمجة ب‬

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

‫البرمجة ماهي ؟‬
‫فأنصحكم بقراءة سنبدأبالسؤال السهل و القاعدي من كل األسئلة ,لكن إذا كنتم تعرفون كل هذا‬
‫الدرس لذلك سأجيب عن هذه السطور ,فلن تموتو لو قرءتموهم ,سنبدأ من الصفر في هذا‬
‫السؤال‬
‫؟"برمج" ماذا يعني‬
‫عمل برنامج إلكتروني
...
ألعاب الفيديو هي عبارة عن برامج-‬
‫بإختصار شديد البرامج توجد في كل مكان و هي تسمح بفعل أي شيئ على الحاسوب‬

‫‪ ++C‬المبرمجة بلغة 2 ‪ half life‬اللعبة المشهورة‬

‫إنتباه أنا لم أقل أنا هذا سهل بل فقط قلت أن كل هذا ممكن و لكن كونوا على يقين أن كل هذا‬

...
سنبدأ بأشياء بسيطة ومن بينها كيف نظهر كتابة في الشاشة‬

...
فال يمكننا أن نتحدث إليه سوى عن طريق 1‬

...
فأنا ال أعرف الترجمة اإللكترونية عن ظهر قلب(‬
‫نتكلم مع الكمبيوتر فالحاسوب ال يعرف إال هذه اللغة
...
لحسن الحظ‬

...
"0111100101100100110110100"‬
‫: و لنقم برسم بياني يبين ما قلناه‬

...
قيام برنامج ترجمة اللغات بتحويل برنامجكم المكتوب بلغة برمجة إلى لغة بفهمها الكمبيوتر‬

‫"100101011101": نحصل على برنامج يفهمه الكمبيوتر بلغته الخاصة‬
‫في الخانة األولى نكتب بلغة برمجة برنامجا و هذه اللغة الغريبة تسمى "لغة من المستوى العالي‬
‫"‬
‫و نسمي لغة من مستوى عالي لغة قريبة من من اللغة الحقيقية مثل العربية و يوجد العديد من‬
‫اللغات ذات المستوى العالي مثل‬
‫‪C‬‬
‫++‪C‬‬
‫‪Java‬‬
‫‪Visual Basic‬‬
‫‪Delphi‬‬

...
سي++بنفس الطريقة التي نحول بها ديلفي‬
‫و هو البرنامج المحول إلى لغة الحاسوب و الذي يتم تشغيلة كبرنامج :‪l’exécutable‬‬

...
"برنامجكم بعد كتابته بلغة من المستوى العالي على الشكل التالي مثال:"إفعل األمر 3+5‬

‫‪compilateur‬‬

‫)‪l'exécutable(program
...
إشتغال جهازكم‬
‫كما أن سي لغة أكثر شعبية من اللغات األخرى و هي األكثر إستخداما في برمجة قسم كبير من‬

...
الدرس الثاني‬
‫سأعتبر لغة سي أول لغة برمجة بالنسبة لكم لكن إذا كنتم تعرفون قليال أو كثيرا عن البرمجة فلن‬

...
المنطق :يجب عليك التفكير و التفكير ففي بعض األوقات سنقوم ببعض التمارين+‬

...
/دورة: الدرس الثاني‬

‫‪ C‬برنامجكم األول بلغة سي : الدرس الثالث‬

‫عالم من المتغيرات : الدرس الرابع‬


...
تمارين تطبيقية‬
‫من موقع 12 ‪ m@teo‬الدروس مترجمة من األخ الفاضل : مصدر الدروس‬
‫‪www
...
com‬‬

‫__________________‬

‫هللا رسول محمدا و أن هللا أشهد أن ال إله إال‬
‫بدأنا ندخل في صلب الدرس األول الذي تضمن بال بال بال بال (و لكن مهمة و مفيدة ),و ها قد بعد‬
‫:الموضوع و في هذا الدرس سنجيب على السؤال التالي‬
‫ماهي البرامج التي نحن بحاجة إليها لكي نبدأ بالبرمجة ؟‬
‫لن يكون في هذا الدرس ما هو صعب و لكن سنأخذ كل الوقت لنتعرف على كيفية عمل مختلف‬

...
فاستغلوا الفرصة ألننا في الدرس القادم سنبدأ حقا بالبرمجة و لن يكون لنا الوقت ألخذ القيلولة‬
‫: عنوان الدرس‬

‫األدوات التي يحتاجها المبرمج‬

...
‪ ++Visual C‬أو‬

...
Xcode‬و بالنسبة للماكنتوش‬
‫إذا بالنسبة لكم ما األدوات التي يحتاجها المبرمج ؟‬
‫!! لو كنتم تابعتم الدرس السابق ,فستعرفون واحدا على األقل‬
‫هل عرفتم الجواب ؟‬

...


...
‪ C‬للغة ‪ compilateur‬و كما قلت لكم في الدرس السابق أنه يوجد عدة‬

...
و "‪ "vi‬الويندوز أو تحت ‪ Bloc-Notes‬عامة برنامج مثل‬
‫معالج نصوص ذكي ,يلون الكود بنفسه ,و الذي سيساعدكم في األحسن و هو التوفر على‬

...
و ذلك لترجمة الكود سورس للغة الحاسوب : ‪+Un compilateur‬‬
‫تذكروه جيدا) و هو يمثل متعقب األخطاء و سيساعدكم في تصحيحها ‪+Un débugger‬‬

...
و هي الطريقة الصعبة و-‬
‫يفضلون هذه الطريقة
...
لكنني سأريكم الطريقة الثانية و‬
‫و الذي يجمع "1‪ en 1" "3in‬و إما أن نستعمل البرامج مجتمعة في برنامج واحد "3-‬
‫‪ débugger‬و ‪éditeur de texte, compilateur‬‬

...
)بالنسبة لنا( أي برنامج واحد مؤكد و صحيح و هو أنه يمكنكم فعل أي شيئ تريدونه في‬
‫األفضل من بينهم كلهم ؟ ‪ IDE‬ما هو‬
‫‪ ++visual C‬فبه بدأت و إذا لم أختر اآلخرين مثل ‪ code::blocks‬بالنسبة لي فإنني أفضل‬

...
إستغالل قوته الكاملة‬
‫و لمعلوماتكم فإن
...
قد القى شعبية كبرى لمدة و لكن لم يتلقى أي تحديث منذ مدة كبيرة ‪ IDE‬هو ‪++Dev C‬‬
‫الذي ‪ IDE‬و لكنه ليس أمرا
...
تختارونه ستكونون قادرين على فعل الكثير من األشياء‬

...
إيضا تحت اللينكس‬
‫و ماذا أفعل إذا كنت أستخدم الماكنتوش ؟‬

‫و الذي يوجد في سي دي "‪ "Xcode‬يسمى ب ‪ IDE‬إذاكنتم تحت الماك فهناك‬

...
‪ ++DEv C‬يمكنكم إختيار‬
‫محدثا , مجاني
...
) األسفل مجاني أيضا, موضح في( ‪ Code::Blocks‬لذلك فاليوم ينصح بإستعمال‬


...
9
...
4‬

‫فإن عمل‬

‫مثل هذه البرامج تتطور بسرعو فإذا كنتم من مستخدمي نسخة متقدمة فال تخافو‬

...
سيلاير‬
‫‪++Site web for Dev C‬‬
‫كيفية العمل عليه ؟‬

...
في المرة األولى سوف يسألكم حول اللغة و حول إنشاء ملفات خاصة ,أنصحكم بتركها كما هي‬
‫!حا نحن في البرنامج لكن اليوجد شيئ؟؟‬
‫للبرنامج و لفعل ذلك إذهب إلى القائمة الرئيسية و إتبع ‪ new projet‬يجب طلب مشروع جديد‬
‫: األوامر‬
‫"‪"Fichier / Nouveau / Projet‬‬
‫أو‬
‫""‪File / New / Project‬‬
‫: بعد ذلك ستخرج لكم نافذة مثل‬

‫بعمل برامج بالنوافذ بل سنقتصر فقط فلن نبدأ
...
على نوافد تشبه كثيرا الدوس وهي برامج تظهر ‪console‬على برامج ال‬
‫"‪ "Projet C‬ثم إختاروا+‬
‫"‪ "Langage par défaut‬ثم علموا+‬
‫و من ثم أعطوا إسما لمشروعكم +‬
‫‪ ok‬ثم+‬

‫) بعد ذلك سيطلب منكم مكان الحفظ (أنصحكم بعمل مكان خاص لمشاريعكم و برامجكم‬
‫و كما نالحظ فإن البرنامج يكتب بعض األشياء لن أقوم بشرحها إلى في الدرس القادم و سيكون‬

...
أهم القوائم في البرنامج‬
‫لن أتكلم عن كل القوائم فهي لنفسها شارحة لكنني سأتكلم عن ما أراه مهما و هو في هذه‬
‫: الصورة‬

‫سأبدأ من اليسار إلى اليمين‬

...
)األيقونة الثانية : و هي لرؤية البرنامج (الشيئ الذي حصلنا عليه بعد كتابة الكود سورس-2‬

...
حر و مجاني ‪ IDE‬و هو ‪code::blocks‬‬
‫بأنني كنت لكنه يعتبر جديدا و ليس له نفس شهرة الديف سي ++ , و لكنني و مع ذلك أعترف‬

...
,لكن و لألسف ألصحاب الماكنتوش ال توجد نسخة خاصة به‬

...
)‪ (++Dev C‬بالنسبة لهذه القوائم فهي مثل شرح قوائم البرنامج السابق‬
‫كيفية إنشاء مشروع جديد في الكود بلوكس إتبع األمر‬

...
إلنشاء المشروع "‪ "Create‬و من ثم إضغطوا على‬
‫و هنا أسضا سيطلب منك حفظ الملفات (و أعيد نصحكم بإستخدام مجلد خاص بمشاريعكم و‬

...
إنتهى درسنا لليوم‬
‫األصدقاء و بالنسبة ألصحاب الماكنتوش فلم أستطع توفير الشرح بنفسي لذلك سأطلب من‬

...
إنتهى الدرس و أنتظر إستفساراتكم و آراءكم حول الموضوع‬
‫: بعنوان القادم و إنتظروا الدرس‬

‫‪ C‬برنامجكم األول بلغة‬
‫مع تحياتي‬

‫الدرس /‪ C‬هل تريدون تعلم البرمجة و ال تدرون من أين تبدؤون ؟ إذن إدخلو
...
على الشاشة‬
‫عليكم ", إذا , فبرنامجكم سيكون من أسود و أبيض و لن يصلح إال لكي يقول لكم "السالم‬
‫النهاية ستكونون جد فرحين يمكنكم القول أن هذا ليس بشيئ الكبير و ال المهم لكنكم في‬

...
)‬

‫: عنوان الدرس‬

...
)‪(minimum de code‬أقل ما يمكن كتابته‬

...
)‪ (les commentaires‬التعليقات‬

...
على أن‬

...
البرامج التي تستخدم النوافذ للظهور : البرامج بالنوافذ +‬

...
و هي البرامج التي نعرفها‬
‫: و هذا مثال حي لهذه البرامج و التي تعرفونها حقا‬


...
ممم؟ستتمكنون من ذلك في ما بعد‬
‫بطبيعة الحال , إنشاء برامج بالنوافذ بلغة سي شيئ ممكن
...
!!! شيئا جد صعب‬

...
برامج الكونصول هي األولى التي ظهرت: لمعلوماتك‬

...
و ظهر النظام الجديد الذي سيقلب العالم و هو‬
‫في الصدارة و ذلك لسهولة على النوافذ فقد كان هذا النظام النظام أشهر األنظمة و ما يزال‬
‫! في هذه األثناء أصبحت الكونصول مهمشة تقريبا التعامل معه و ألنه ال يستعمل إال النوافذ
...
هي أنتم هناك , ال تستديرو فأنا أتحدث معكم‬
‫لدي خبر سعيد الكونصول لم تمت فقد أعاد نظام اللينكس لهذا التراث إذا لم نقل "أصل كل شيئ "‬
‫: و هذه صورة للكونصول على نظام لينكس‬


...
(لكن هذا فقط على اللينكس‬

‫لكن إذا كنت على الويدوز ؟أال توجد كونصول ؟‬
‫إذا صح القول " مخفية"
...
"‪ "cmd‬ثم نركب األمر "‪"Démarrer / Exécuter‬‬
‫: و ها هي الكونصول الفريدة من نوعها للويندوز‬

‫إذا هنا سنقوم بعمل برامجنا لكن كونو على يقين أنه عندما يكون لدينا المستوى لعمل برامج‬

...
)‪(minimum de code‬أقل ما يمكن كتابته‬

...
في الحقيقة هذا هذا الكود لن يقوم بأشياء مهمة نحن المبتدؤون لكنه يعتبر أساسيا‬

...
كيف هو‬

‫التحليل‬
‫: فالنبدأ بالسطرين األولين‬
‫:‪ PHP‬كود‬
‫‪Code : C‬‬
‫>‪#include ...
h‬‬

‫‪ directives‬إنها سطور متخصصة و التي نراها في أول البرنامج
...
) إسم معقد أليس كذلك( ‪de préprocesseur‬‬
‫تدل على الفعل أضف في العربية
...
من البرنامج إضافة ملفات إلى المشروع‬
‫‪ stdlib
...
h‬فكما نالحظ هناك سطران أي ملفين مضافين
...
‪ librairies‬كتابتها و سنرى فيما بعد ما يسمى ب‬

...
هذه األوامر تطلب من الحاسوب فعل ‪ fonction‬بصفة عامة‬

...
لها حدود فهي تبدأ بالمة{ و تنتهي بها } و إذا كنتم معي فإن هذه الفونكسيون ‪ fonction‬ال‬
‫السطر األول و يتضمن‬
‫:‪ PHP‬كود‬
‫;)"‪printf("Hello world!\n‬‬


...
و هو األمر أو األوامر التي تجمعها الفونكسيون ‪ instructions‬هذا السطر يسمى ب‬
‫تنتهي دائما ب" ; " النقطة الفاصلة هذا هو الخطأ ‪ instructions‬مالحظة جد مهمة : كل‬

...
BramjNeT
...
BramjNeT
...
h‬‬
‫>‪#include ...
BramjNeT
...
)‪ (entrée‬و هي للعودة إلى السطر : ‪\n‬‬


...
BramjNeT
...
)‪ (les commentaires‬التعليقات‬
‫التعليق و هو التعليق مثل اي تعليق في أي لغة أخرى و هو يستعمل إما للشرح أو للتفاهم بين‬
‫‪
...
مثل التعليق في‬
‫: طول التعليق لكتابة تعليق هناك عدة طرق و التي تتعلق بمدى‬
‫)//( لكتابة تعليق قصير(في سطر واحد) نستعمل الرمز التالي+‬
‫:‪ PHP‬كود‬
‫هذا‬

‫‪Code : C‬‬
‫تعليق //‬

‫: )/*( و )*/( لكتابة تعليق يحتوي على أكثر من سطر نستعمل الرموز التالية+‬
‫لبداية التعليق )*/(-‬
‫إلنهاء التعليق )/*(-‬
‫:‪ PHP‬كود‬
‫هذا‬
‫تعليق‬
‫يتكون من عدة أسطر‬
‫*/‬

‫‪BramJneT‬‬
‫/* ‪The KinGSofT‬‬

‫:‪ IBM‬و ننهي هذا الدرس بهذه المقولة من شركة‬
‫‪"Si après avoir lu uniquement les commentaires d'un‬‬
‫‪programme vous n'en comprenez pas le fonctionnement, jetez le‬‬
‫"! ‪tout‬‬
‫! مفاده : إذا قرأتم تعليقات برنامج فقط و لم تفهموا شيئا , فألقوا به‬

‫أسئلة الدرس‬
‫:هو سطر يبتدأ ب ‪1/ directive de préprocesseur‬‬
‫#-‬
‫{-‬
‫// -‬
‫؟‪ instruction‬ما هو الرمز الذي تنتهي به ال/2‬
‫*/ -‬
‫;-‬
‫}-‬
‫التي نكتب بها نصا على الشاشة ؟ ‪ fonction‬ما هو إسم ال/3‬
‫‪- printf‬‬
‫‪- print‬‬
‫‪- pinrft‬‬
‫ما هو الرمز الذي يساعدنا على الرجوع إلى السطر ؟/4‬
‫‪- \t‬‬
‫‪- \n‬‬

...
فأرجو‬

...
إلخ ‪ Code::Blocks‬و ‪ Dev‬مثل ‪ IDE‬بالكونصول و ذلك بإستخدام ال‬
‫لذلك و طيلة و قد شرحت لكم كم أنه من الصعب علينا نحن المبيدئين إنشاء برامج بالنوافذ‬

...
ممتاز‬

...
المجموعة‬
‫قد يتساءل البعض : و ما هو التغير ؟‬
‫لمعرفته
...
الذاكرة إعلموا أننا سنتحدث عن األرقم , عن قيم يمكننا تخزينها في‬
‫: عنوان درسنا‬

‫تعريف المتغير‬

‫إنشاء متغير‬
‫إظهار محتوى متغير‬
‫إسترداد قيمة مخزنة‬
‫تعريف المتغير‬

...
مثال‬
‫القيمة يمكنها أن تتغير كلما خسر 8 هذه القيمة مثال نعترها عدد حياة الالعب في لعبة ما ,هذه‬

...
6
...
برامجنا القادمة و كما أشرت سابقا ستكون معمرة بالمتغيرات لذلك أعطوني كل إنتباهكم‬
‫: في لغة سي , المتغير له شيئين رئيسيين‬

...
عندما نبرمج بلغة سي يجب علينا تحديد أسماء *‬

...
و‬
‫لكن "‪ :"Times‬مثال نريد تسمية متغير في لعبة و هو يمثل الوقت المتبقي لذلك نسميه مثال‬
‫:هناك بعض القواعد التي يجب إحترامها‬

...
مثال/1‬

...
إستخدامه كرمز دون الجروف و األرقام‬

...
"‪ :"Times", "times‬الصغيرة
...
لذلك أنصحكم بأن تبتكروا‬

...
-كنصيحة- تفكير , بتعبير آخر يجب على المتغير أن يحمل إسم وظيفته‬
‫: و اآلن سنمر إلى ما هو أهم و هو‬

‫:أنواع المتغيرات‬

...
ذكر نوع هذا العدد‬

...
األنواع الثالثة األوائل يمكنون المبرمج من تخزين أعداد حقيقية‬

...
‪double‬‬

‫إحذروا عند التعامل مع األعداد العشرية !! فالكمبيوتر ال يعرف الفاصلة لذلك وجب إستخدام‬

...
بالنسبة لألنواع فأنا لم أذكرها كلها بل ركزت على األساسيات‬

‫إنشاء متغير‬

...
سننشئ اآلن متغيرا أي سنطلب من الكومبيوتر أن يسمح لنا بإستخدام قليل من الذاكرة‬
‫إنشاء متغير جد سهل اآلن خاصة بعد أن تعلمنا األمور األساسية , فقط يجب علينا أن نقون‬
‫:باآلتي بالتتابع‬

...
و أخيرا ال تنسوا النقطة الفاصلة+‬
‫: و بذلك نكتب كاآلتي‬
‫:‪ PHP‬كود‬
‫;‪long NameOfVariable‬‬


...
أظن أنكم فهمتم المبدأ‬

...
‪ fonction‬و نقوم بهذه العميلة في أول أو بداية ال‬
‫و بذلك تكون عملية إستدعاء البرنامج تتم على الشكل
...
h‬‬
‫>‪#include ...
ال يقوم بأي شيئ‬

‫: شروحات لهذه الحالة‬
‫في الحقيقة هناك أشياء تحدث لكن ال ترونها , فعندما يصل البرنامج إلى خانة اإلستدعاء يطلب‬
‫فيجيب " هل يمكنني يا سيد كمبيوتر أن أقوم بإستغالل قليل من الذاكرة": من الكومبيوتر بلطف‬
‫" بالطبع يا صديقي البيت بيتك": الكومبيوتر‬
‫, فمعظم المبرمجين عندما يريدون إنشاء مجموعة من المتغيرات مثال 6 متغيرات لإلختصار‬
‫: فبدل تضييع الوقت في الكتابة و إعادة الكتابة نقوم بالتالي‬
‫:‪ PHP‬كود‬
‫;‪long Time, Level, Pro‬‬


...
3 القيمة ‪ Level‬نريد مثال أن نعطي للمتغير‬
‫: يكفي أن نقوم بالكتابة كالتالي هذا سهل جدااااااااااا‬
‫:‪ PHP‬كود‬
‫;3 = ‪Level‬‬

‫ليس هناك شيئ صعب لفعله فقط علينا إستدعاء المتغير ثم فراغ ثم عالمة تساوي ثم نكتب قيمة‬

...
نعطي للمتغير‬
‫:‪ PHP‬كود‬
‫>‪#include ...
h‬‬

‫)][‪int main(int argc, char *argv‬‬
‫{‬
‫;‪long Level‬‬
‫;5 = ‪Level‬‬
‫;)"‪system("PAUSE‬‬
‫;0 ‪return‬‬
‫}‬


...
يمكننا اللعب و تبديل قيمة المتغير إلى أي قيمة‬
‫: و في نفس البرنامج‬
‫:‪ PHP‬كود‬
‫;‪long Level‬‬
‫;5 = ‪Level‬‬
‫;4 = ‪Level‬‬
‫;051 = ‪Level‬‬

‫سيأخذ أوال القيمة 5 ثم بعد ذلك القيمة 4 و القيمة 051
...
و ها قد إنتهى‬

‫قيمة متغير‬
‫: إليكم سؤاال مهما , و إذا كنت قد طرحته مسبقا فهذا دليل على أنك قد تصبح مبرمجا جيدا‬
‫عندما نستدعي المتغير أية قيمة يأخذها ؟‬
‫: في الحقيقة الحاسوب عندما يقرأ هذا السطر‬
‫:‪ PHP‬كود‬
‫;‪long level‬‬

‫يقوم بحجز مكان صغير في الذاكرة
...
)أصلية (0 مثال‬
‫المكان محجوز لكن القيمة
...
ال توجد فيمة أصلية‬

...
و األحسن دائما‬
‫: اإلستدعاء و إعطاء القيمة لمتغيراتنا قيما عندما نستدعيها
...
يأخذ القيمة 5 ‪ Level‬هنا , المتغير‬

...
بمعنى آخر قد يأتي وقت ما ,نحتاج فيه إلى متغير ذو قيمة ثابتة ال تتغير طيلة فترة‬

...
عمل البرنامج‬
‫:مثال إلستدعاء ثابت‬
‫:‪ PHP‬كود‬
‫;5 = ‪const long LEVEL_CONSTANT‬‬

‫اآلن
...
إستعملت _ مكان الفراغ هذا يمكننا من تمييز الثوابت و المتغيرات بسهولة تامة
...
يمكنكم إعطاءها‬
‫نحاول تغيير قيمة الثابت يغبرنا المترجم سنتعلمه اآلن
...
أن هناك خطأ في البرنامج ‪compilateur‬‬
‫: أخطاء الترجمة تظهر أسفل البرنامج
...
‪ printf‬حتى اآلن تعلمنا كيف نظهر كتابة على الشاشة بإستعمال الدالة‬

...
نريد لقيمة المتغير أن تظهر فيه‬
‫:مثال‬
‫:‪ PHP‬كود‬
‫;)"‪printf("Il vous reste %ld vies‬‬

‫هذه الحروف و
...
"ld‬الرموز تبين ماذا نريد أن نظهر‬
‫: هناك عدة رموز لكن و ألننا ال أقول مبتدئين لكن فوق المبتدئين بدرجة سنركز على هذان اإلثان‬

‫)عدد صحيح (مثل : 4, 5 , 6 ,051 : ‪+%ld‬‬
‫)عدد عشري (81
...
81, 98523
...
في الدروس القادمة سنتحدث عن عدة رموز أخرى في وقت مناسب فلكل مقام مقال‬
‫يجب ,)
...
‪ %lf‬يجب إستعمال ,)‪ (float, double‬و بالنسبة ألرقام عشرية ,‪ %ld‬إستعمال‬
‫أي متغير ‪ printf‬شارفنا على النهاية
...
يجب إظهار قيمته‬
‫:لكي نفعل هذا, يجب ذكر إسم المتغير بعد المزدوجتان و ذلك بعد إضافة فاصلة , مثال‬
‫:‪ PHP‬كود‬
‫;)‪printf("Il vous reste %ld vies", Vies‬‬


...
h‬‬
‫>‪#include ...
‪ printf‬في البداية الالعب لدية خمس نقاط حياة ,نظهر هذا بإستعمال الدالة
...
2‬

...
3‬

...
‪ printf‬يمكن لكل شخص أحب أن يظهر محتوى عدة متغيرات في نفس الدالة‬
‫ثم تكتبوا أسماء المتغيرات كما في السابق لكن و , ‪ %lf‬أو ‪ : %ld‬تبينوا المكان و نوعية العدد‬
‫: بما أنه عندنا عدة متغيرات فيجب ذكرها و لكن حسب ترتيب الكتابة‬

‫:‪ PHP‬كود‬
‫,‪printf("Vous avez %ld vies et vous etes au niveau n°%ld", Vies‬‬
‫;)‪Level‬‬

‫‪%ld‬و ‪ Vies‬األول يأخذ قيمة المتغير األول ‪%ld‬يجب إحترام الترتيب ففي هذا البرنامج ال‬

...
سنتعلم اآلن أن نطلب من المستخدم إدخال‬
‫بمقدوركم إنجاز الكثير من األشياء يتخزينها في متغير
...
الجميلة‬

...
‪ printf‬هذه الدالة تشبه كثيرا الدالة‬
‫ثم بعد ذلك يجب أن ذكروا إسم
...
& المتغير بعد الفاصلة ثم إضافة الركز‬
‫:مثال‬
‫:‪ PHP‬كود‬
‫;)‪scanf("%ld", &age‬‬


...
أمام إسم المتغير الذي سيتلقى القيمة & لكن يجب وضع الرمز‬

...
67 /2‬
‫‪-char‬‬

‫‪-long‬‬
‫‪-double‬‬
‫‪-int‬‬
‫ذو القيمة 40000056 ماذا سيظهر هذا السطر في "‪ "bank‬لنفترض أن لدي متغيرا /3‬
‫: الشاشة‬
‫:‪ PHP‬كود‬
‫;)‪printf("Vous avez %ld euros sur votre compte", compteEnBanque‬‬

‫‪-Vous avez %ld euros sur votre compte‬‬
‫‪-Vous avez 6 500 000 euros sur votre compte‬‬
‫‪-Vous avez d euros sur votre compte, compteEnBanque‬‬

‫تمرين الدرس‬
‫من اآلن فصاعدا سأقوم بوضع تمرين لكل درس بما أننا بدأنا في لغة سي فعال و تمرين اليوم هو‬
‫:‬
‫أكتب برنامجا يطلب من المستخدم عمره و شهر ميالده و يوم ميالده و سنة ميالده و يظهرها‬
‫: على الشكل التالي‬

...
عد في العام المقبل لتتحرى عمرك‬

...
العمليات الحسابية في لغة سي‬

‫__________________‬

‫هللا رسول محمدا و أن هللا أشهد أن ال إله إال‬

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

‫العمليات القاعدية‬
‫اإلختصارات‬
‫‪ La librairie‬المكتبة الرياضية‬
‫‪mathématique‬‬

‫: العمليات القاعدية‬
‫الشيئ الذي يجب معرفته هو أن الحاسوب هو عبارة عن آلة حاسبة متمكنة و ممتازة , طالما هو‬
‫:يعرف العمليات البسيطة‬
‫الجمع *‬
‫الضرب *‬
‫الطرح *‬
‫القسمة *‬
‫)سأقوم بشرحه فيما بعد( ‪* Modulo‬‬
‫إذا أردتم القيام بعمليات معقدة (األس , الخوارزميات , الجذور المربعة
...
أي يجب تعريفهم للحاسوب‬
‫مجموعة من من حسن حظنا , وهذا ما سنراه في بقية الدرس , أن هناك مكتبة رياضية تضم‬
‫إذا كنتم أساتذة رياضيين فهذا الدوال الرياضية الجاهزة
...
ا الحل ممكن أيض‬


...
إذا نسقوم مثال بإستدعاء متغير و لنسمه‬
‫:و يكون الناتج على هذا الشكل ‪ Long‬أي ناتج من نوع "‪"Resultat‬‬
‫:‪ PHP‬كود‬
‫;0 = ‪long Resultat‬‬
‫;3 + 5 = ‪Resultat‬‬

‫سيأخذ القيمة 8 أثناء "‪ "Resultat‬ال يتطلب منك األمر أن تكون محترفا لكي تخمن أن المتغير‬

...
لكن إذا أردتم رؤيت قيمة المتغير , أضيفوا الدالة‬
‫: كما تعلمت أن تفعلوا في الدرس السابق ‪Printf‬‬
‫:‪ PHP‬كود‬
‫;)‪%ld", Resultat‬‬

‫= 3 + 5"(‪printf‬‬


...
إذا كنتم قد إستعملتم اآللة الحاسبة في جهازكم فستعرفون هذه الرموز حق معرفنها‬

...
لذلك خصصت لهم فقرة لنتحدث عن كل واحدة بدقة‬

‫القسمة‬
‫تساوي 2, فالحاسوب القسمة تتم على الحاسوب جيدا عندما ال يكون عندنا الباقي
...
هنا يعطيكم الخارج الصحيح, إلى هنا ليس هناك مشكل‬

...
2 ,تعطينا إذا قمنا بحسابها جيدا ,5 / 2‬
‫:و مع ذلك أنظروا لهذا البرنامج ماذا يفعل‬
‫:‪ PHP‬كود‬

‫;0 = ‪long resultat‬‬
‫;2 / 5 = ‪resultat‬‬
‫;)‪printf ("5 / 2 = %ld", resultat‬‬

‫كنتيجة, 5
...
طلبنا من الحاسوب أن يقوم ب 2 / 5, فكنا ننتظر منه أن يعطينا هناك‬
‫!!!!لكن هذه اآللة الحاسبة المتمكنة و الممتازة أعطتنا 2‬

‫هل أجهزتنا غبية لهذا الحد ؟ ما هذا؟؟؟‬
‫هذا يعني أنه
...
)سيخطئ في النتيجة ألنه ال يحتفظ إال بالطرف الصحيح(2‬
‫لو كان من ! ‪ long‬من نوع ‪ Resultat‬آه أستاذ
...
سترون أن النتيجة ال تتغير‬
‫العملية 5 و 2 إلى إذا أردنا من الحاسوب أن يعطينا النتيجة الصحيحة, يجب علينا تغيير أعداد‬
‫السابقة, لكن بالنسبة للحاسوب فهي أعداد عشرية, أي أن نكتب 0
...
2 (إنها نفس األعداد‬
‫:)ألعداد عشرية أعداد عشرية, لذلك فهو يقوم بقسمة‬
‫:‪ PHP‬كود‬
‫;0 = ‪double resultat‬‬
‫;0
...
5 = ‪resultat‬‬
‫;)‪printf ("5 / 2 = %lf", resultat‬‬


...
‪: Modulo‬هنا يتدخل الخارق‬

‫‪MODULO‬‬
‫على باقي قسمة معينة
...
اآلخرين, و لكن بالنسبة للحاسوب فهي عملية قاعدية غير معروفة مثل األربعة‬

...
فقط قمت بتعريفه للذين ال‬

...
العمليات األكثر أهمية‬
‫: في الحقيقة ال شيئ يمنعنا من فعل‬
‫:‪ PHP‬كود‬
‫;2‪resultat = nombre1 + nombre‬‬

‫و يخزن الناتج في متغير ,2‪ nombre‬و 1‪ nombre‬هذا السطر يقوم بجمع قيمتي المتغيرين‬

...
siteduzero
...
lies/smile
...
نعم نعم , أأكد لكم ذلك‬

...
"‪ "resultat‬ثم, نقوم بجمع هذه المتغيرات, و نخزن الناتج في متغير آخر و لنسمه‬

...
حاولوا أن تقوموا بعمل هذا البرنامج بأنفسكم, هذا سهل سيدربكم‬
‫:الجواب في األسفل قليال‬

...


...


...

‫:‪ PHP‬كود‬
‫)][‪int main(int argc, char *argv‬‬
‫{‬
‫;0 = 2‪long resultat = 0, nombre1 = 0, nombre‬‬

‫: نطلب من المستخدم إدخال رقمين‬

‫//‬

‫;)" : 1 ‪printf("Entrez le nombre‬‬
‫;)1‪scanf("%ld", &nombre‬‬
‫;)" : 2 ‪printf("Entrez le nombre‬‬
‫;)2‪scanf("%ld", &nombre‬‬

‫:نقوم بالعملية‬

‫//‬

‫;2‪resultat = nombre1 + nombre‬‬

‫:نظهر ناتج الجمع‬

‫//‬

‫;)‪printf ("%ld + %ld = %ld\n", nombre1, nombre2, resultat‬‬
‫;)"‪system("PAUSE‬‬
‫;0 ‪return‬‬
‫}‬

‫هنا قمنا بعمل أول برنامج مهم حتى اآلن
...
أنصحكم بأن تقوموا بنفس العملية مع العمليات األخرى‬
‫:001% يمكنكم أيضا إضافة متغير آخر ليقوم الحاسوب بجمع متغيرات ثالث و الطريقة تعمل‬
‫:‪ PHP‬كود‬
‫;3‪resultat = nombre1 + nombre2 + nombre‬‬

‫:اإلختصارات‬
‫يمكنكم عمل كل شيئ كما سبق و أشرت فقد قمنا بدراسة جل العمليات
...
أنا أعرف أنه من الصعب تصديق أن لعبة ثالثية األبعاد‬

...
تقنيات تمكننا من إختصار كتابة العمليات ‪ C‬يوجد في لغة‬
‫ما أعنيه و ذلك بعد و لماذا نستعمل اإلختصارات؟ألننا, غالبا, نستعمل عمليات متكررة
...
‪:incrémentation‬أن تتعرفوا على ما نسميه ب‬

‫‪incrémentation‬‬
‫في غالب األحيان ستحتاجون إلى زيادة 1 إلى المتغير
...
متغيرات تزداد قيمتها واحدا بواحد‬
‫هل تستطيعون إضافة 1 على المتغير, دون معرفة القيمة التي
...
اآلن 5 و إذا كانت 8 فهي اآلن 9‬

‫تعتبر هذه العملية تكرارية
...
مرتين‬
‫الكود الذي في
...
المتغير‬
‫أظنكم
...
)+1( معدلة و مطورة ‪ C‬فهمتم من أين أتى هذا اإلسم العجيب فهو يعني لغة‬

‫‪décrémentation‬‬

...
لكن هذه المرة هذه‬

...

‫: كذلك إذا أردتم ضرب متغير في 2‬
‫:‪ PHP‬كود‬
‫;2 * ‪N = N‬‬

‫: و يمكنكم كتابتها بطريقة مختصرة‬
‫:‪ PHP‬كود‬
‫;2 =* ‪N‬‬


...
إليكم برنامجا مصغرا كمثال‬

‫:‪ PHP‬كود‬
‫;2 = ‪long N‬‬

...


...


...
هيا!!!!!! فكروا قليال, فالتفكير لم يقتل أحدا يوما‬

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

...
‪ stdio
...
h‬و ما يجب معرفته هو أن هناك مكتبة أخرى تسمى‬

...
h‬‬


...
|‪ |x‬تقوم هذه الدالة بإعادة القيمة المطلقة لعدد, أي‬
‫:بإختصار فهي تعيد لنا(تقوم باإلرجاع بعد إنجاز مهمتها) القيمة الموجبة للعدد المدخل‬
‫:‪ PHP‬كود‬

‫;72-=‪double absolu = 0, N‬‬
‫72 = ‪absolu = fabs(N); // absolu‬‬

‫يجب ان يكون من نفس "‪ "absolu‬إذا فالمتغير ‪ double‬هذه الدالة تعيد متغيرا من النوع‬
‫و اإلختالف في نوع المتغير الذي تعيده "‪ "abs‬النوع كذلك
...
كل واحدة على حدة‬

‫‪pow‬‬
‫:هذه الدالة تقوم بحساب أس عدد ما
...
‪ double double‬هذه الدالة تقوم بحساب الجذر المربع لعدد معين
...
بالراديان‬
‫هناك العديد من الدوال األخرى لكن لكبر مستواها في الرياضيات لم أرد ذكرها فهي ال تستعمل‬

...
إنتهى درسنا أصدقائي صديقاتي و اآلن مع التمرين المخصص لهذا الدرس‬

‫: نص التمرين‬
‫: قم بعمل برنامج يطلب من المستخدم إدخال أربعة أرق ام و يقوم بالتالي‬

...
يقوم بجمع الجذور المربعة و يقوم بكتابتها و سط الشاشة -‬

‫هذا التمرين له هدف بتدريبكم على القيام بمعظم العمليات فهو يساعدكم على أن تصبحوا أكثر‬

...


‫‪ Les‬اإلحتماالت : إنتظر الدرس القادم تحت عنوان‬
‫‪conditions‬‬

‫__________________‬

‫هللا رسول محمدا و أن هللا أشهد أن ال إله إال‬
‫‪ PHP‬رأينا في الدرس السابق أنه يوجد عدة لغات برمجية
...
وجدت منذ القديم, مما يجعل منها نموذجا للغات أخرى جديدة ‪ C‬في الحقيقة لغة‬

...
رأينا كيفية إنشاء متغيرات, القيام بعمليات‬

...
else‬اإلحتمال‬
‫قلب اإلحتماالت ,‪booléens‬‬
‫"‪ "switch‬اإلحتمال‬

‫"‪ "if
...
فيمكننا أن نقول"إذا كان المتغير‬
‫التساوي ! يجب أيضا أن نقارن إذا كان بهذا"
...
يساوي 05, أكبر من, أكبر من أو يساوي المتغير أصغر من 05 , أصغر من أو‬
‫حضرت الكل ‪ C‬ال تقلقوا فلغة‬
‫:سنتبع المخطط التالي ,"‪ "if
...
بعض الرموز التي يجب معرفتها قبل البدأ /1‬
‫‪ if‬المقارن /2‬
‫‪ else‬المقارن /3‬
‫"‪ "else if‬المقارن /4‬
‫عدة إحتماالت في نفس الوقت /5‬
‫قاعدية يجب هناك على 3-2 رموز ,‪ C‬في "‪ "if
...
هذه الرموز تعتبر مهمة للقيام بإحتمال ما‬

‫بعض الرموز التي يجب معرفتها قبل البدأ‬

‫جيدا, يوجد رمزان "==" لمقارنة التساوي
...
‪ C‬يتجلى في وضع رمز واحد =, الذي ليس له نفس الداللة في لغة‬

...
"‪ "if‬باإلنجليزية, الكلمة "إذا" تترجم‬

...
كل ما هو موجود داخل المزدوجتين سيتم تنفيذه فقط إذا‬

...
فلنضع مكان التعليق "شرطكم", سنكتب شرطا لكي نقارن متغيرا ما‬
‫الذي يحتوي على عمركم
...
, أي هل عمرك أكبر من 81 سنة‬

‫:‪ PHP‬كود‬

‫;)"! أنت‬

‫)81 => ‪if (age‬‬
‫{‬
‫راشد"( ‪printf‬‬
‫}‬


...
و التي سنعطيها قيمة من إختيارنا ‪ age‬المتغير و ال ننسى أيضا إستدعاء ‪ main‬الدالة‬
‫قد تبدوا هذه التجربة سخيفة في نظر البعض لكنها مهمة جدا فهي ستساعد على ترسيخ مفهوم‬

...
h‬‬
‫>‪#include ...
ستظهر على الشاشة "! ‪êtes majeur‬‬
‫غيروها مثال للقيمة 01: الشرط سيكون خاطئا و بالتالي
...
الرسالة لن تظهر‬

...
تعني و إال ‪else‬‬
‫تنجح المقارنة (الشرط اآلن نعرف كيفية القيام بمقارنة بسيطة, فلنذهب بعض الشيئ بعيدا: إذا لم‬

...
و إال فقم بهذا‬

‫:بعد } و سيصبح لدينا ‪ else‬ال يجب علينا سوى إضافة‬
‫:‪ PHP‬كود‬
‫إذا كان العمر أكبر من‬

‫أو يساوي // )81 => ‪if (age‬‬
‫{‬
‫;)"! أنت راشد"( ‪printf‬‬
‫}‬

...
أظن أن هذا الكود مفهوم للجميع‬

...
تعني و إال إذا ‪else if‬‬
‫‪ else‬و تتيح لنا لغة سي أيضا جمعهما في تعبير واحد و هو
...
‪if‬‬

...
و إال فقم بهذا‬

‫:فيصبح لدينا كود على الشكل التالي‬
‫:‪ PHP‬كود‬
‫أكبر من أو‬

‫أكبر قطعا من 4‬

‫يساوي 81 ‪ age‬إذا كان // )81 => ‪if (age‬‬
‫{‬
‫;)"! أنت راشد"( ‪printf‬‬
‫}‬
‫‪ age‬و إال إذا كان // ) 4 > ‪else if ( age‬‬
‫{‬
‫;)"
...
و إال // ‪else‬‬
‫{‬
‫) ;)"‪printf ("Aga gaa aga gaaa gaaa‬‬
‫}‬

‫:يقوم الحاسوب باإلختبارات بالترتيب‬
‫األول: إذا كان الشرط صحيحا يقوم باألمر الموجود داخل المعقوفتين ‪ if‬في األول يقوم ب
...
األوليتين‬
‫و يقوم بإختبار جديد: إذا كان الشرط صحيحا "‪"else if‬إذا لم يتحقق الشرط األول يذهب ل
...
ينجز األمر الموجود بين المعقوفات‬
‫"‪ "else‬و أخيرا إذا لم يتحقق أي شرط من الشروط السابقة يقوم بأوامر
...
للقيام بإحتمال ال نحتاج سوى ل "‪ "else if‬و "‪"else‬‬
‫:فيمكننا كتابة "‪ "else if‬الحظوا أن بإمكاننا إستعمال الكثير من‬
‫:‪ PHP‬كود‬
‫)
...
(‪else if‬‬
‫األمر2//‬
‫)
...
(‪else if‬‬
‫األمر4//‬
‫)
...
(‪else‬‬
‫األمر6//‬

‫عدة إحتماالت‬
‫واحد
...
أكبر من 81 و أصغر من 52‬
‫:لهذا, يجب إستعمال رموز جديدة‬

‫"و" >------&&‬
‫"أو" >------||‬
‫"نفي" >------!‬

‫&&‬
‫:إذا كنا نريد أن نقوم باإلحتمال المذكور أعاله, يجب كتابة‬
‫:‪ PHP‬كود‬
‫)52 < ‪if (age > 18 && age‬‬

‫يعنيان "و"
...
"من 52‬
‫||‬

...
تخيلوا معي برنامجا يقوم بتحديد إذا ما كان الشخص يستطيع فتح حساب بنكي‬
‫و كما تعرفون لفتح حساب بنكي يجب أن ال تكون صغيرا و لنقل مثال ال يجب أن يقل عمرك عن‬


...
"هذا الرمز األخير و الذي هو عالمة تعجب يعني في البرمجة "نفي‬

...
إذا لم يكن الشخص قاصرا‬
‫:لو حذفنا الرمز ! لكان معنى الترجمة كالتالي‬

...
‪ if‬زيادة النقطة الفاصلة بعد اإلحتمال /2‬

...
القلب النابض لإلحتماالت,‪Booléens‬‬


...
else‬سندخل اآلن في المزيد من التفصيالت حول كيفية عمل اإلحتمال‬

...
)‬

‫إنه شيئ جد مهم لذلك ففتحوا آذانكم جيدا(نسيت بل إفتحوا أعينكم‬

‫بعض األمثلة للفهم‬
‫:إليكم هذا الكود الذيسأطلب منكم تجريبه‬
‫:‪ PHP‬كود‬
‫)1( ‪if‬‬
‫{‬
‫;)"صحيح‪printf("C'est vrai‬‬
‫}‬
‫‪else‬‬
‫{‬
‫;)"خطأ"(‪printf‬‬
‫}‬

‫لكن ما مهنى هذا؟ لقد وضعت العدد فقط كشرط لهذا اإلحتمال؟؟؟‬

...
سترون أن النتيجة هي عكس األولى‬


...
"أي كلمة تظهر على الشاشة؟ نجد دائما "صحيح‬
‫إذا وضعنا الصفر الشرط يكون خاطئا و إذا وضعنا أي عدد آخر يخالف الصفر يكون :إستنتاج‬

...
0 إذا كان خاطئا‬
‫:مثال‬
‫:‪ PHP‬كود‬
‫)81 => ‪if (age‬‬

‫يساوي 32
...
بالعدد 1 81 => ‪ age‬بتغيير‬

...
كانت عملية‬
‫:‪ PHP‬كود‬
‫;02 = ‪long age‬‬
‫;0 = ‪int majeur‬‬
‫;81 => ‪majeur = age‬‬
‫;)‪printf("Majeur = : %ld\n", majeur‬‬


...
مثال هنا ستتغير القيمة إلى 0 01=‪ age‬قوموا بنفس العمل لكن بأخذ‬


...
‪ booléen‬نسمي المتغير الذي يأخذ القيم 0 و 1‬
‫:كذلك‬
‫خطأ=0‬
‫صحيح=1‬


...
لكن و كما جرت العادة لن نقوم سوى بإستعمال 0 أو 1‬

‫إضافته في بالنسبة لنا نحن متعلمي لغة سي فال يوجد نوع خاص لهذا المتغير لكن تم‬

...
‪ bool‬ب ‪ booléen‬من اآلن و صاعدا سأقوم بتغيير‬

...
بطريقة حكيمة ‪ bool‬و ال تهتموا بالنوع فقط يجب معرفة كيفية إستخدام‬

‫و اإلحتماالت ‪bool‬‬
‫:‪ PHP‬كود‬
‫;1=‪int majeur‬‬

‫;)"! أنت‬

‫;)"أنت‬

‫)‪if (majeur‬‬
‫{‬
‫راشد"(‪printf‬‬
‫}‬
‫‪else‬‬
‫{‬
‫قاصر"(‪printf‬‬
‫}‬


...
هذا اإلحتمال يترجم كالتالي: إذا كنت راشدا و كنت ذكرا‬

...
مفيدة جدااااا‬

‫‪ Switch‬اإلحتمال‬

‫ اإلحتمال‬if
...
الذي رأيناه من قبل هو األكثر إستعماال‬
‫:لكن في بعض األحيان نجد أنفسنا نقوم بالتكرار كمثال الكود أسفله‬
‫ كود‬PHP:
if (age == 2)
{
printf("Salut bebe !");
}
else if (age == 6)
{
printf("Salut gamin !");
}
else if (age == 12)
{
printf("Salut jeune !");
}
else if (age == 16)
{
printf("Salut ado !");
}
else if (age == 18)
{
printf("Salut adulte !");
}
else if (age == 68)
{
printf("Salut papy !");
}
else
{
printf("Je n'ai aucune phrase de prete pour ton age
}

");

‫ القيام ب‬switch

...
و ذلك للدالة على أنني سأقوم بعمل اإلحتماالت على المتغير1‬

...
54 ‪: case 2, case 4, case 5, case‬و داخل المعقوفات نتعامل مع الحاالت الممكنة‬
‫بعد كل حالة و هو إجباري إذا لم تقوموا بذلك فالحاسوب سيقرأ ;‪ break‬يجب وضع األمر‬

...
لذلك حذاري من نسيان هذا األمر‬
‫إذا لم يحقق المتغير1 الحاالت المذكورة يقوم ‪ else‬الذي يعمل عمل ‪ default‬و ال ننسى األمر‬

...
عادة بالقيام بالقائمات في الكونصول السويتش يقوم‬

...
مثال‬
‫ماذا تنتظرون هيا للعمل‬
‫:الحل‬
‫:‪ PHP‬كود‬

#include ...
h>
int main(int argc, char *argv[])
{
long choixMenu;
printf("=== Menu ===\n\n");
printf("1
...
Mc Deluxe\n");
printf("3
...
Big Mac\n");
printf("\nVotre choix ? ");
scanf("%ld", &choixMenu);
printf("\n");
switch (choixMenu)
{
case 1:
printf("Vous avez choisi le Royal Cheese
...
Berk, trop de sauc
e
...
Bon, ca passe encor
e ca ;o)");
break;
case 4:
printf("Vous avez choisi le Big Mac
...
Vous ne
mangerez rien du tout !");
break;
}
printf("\n\n");
system("PAUSE");
}


...
في آخر السويتش‬

...
ستجدون دائما من يضغط على الرقم 01 أو سيكتب مرحبا مع أنكم لم تنتظروا ذلك‬
‫لذلك ال تضعوا ثقتكم في المستخدم يستطيع دائما إدخال أي شيئ لذلك يجب أخذ كل شيئ بعين‬

...
بما أنكم أصبحتم تتقدمون‬
‫سامحوني على تأخر الدرسو ذلك لظروف شخصية‬
‫فسامحوني لقد وجدت اليوم متسعا من الوقت فكتبت ما تبقى من‬

...
البعض منهم يشبه اآلخر: فمثال لغة‬
‫عدا أنه يصلح للقيام بمواقع و ليس ببرامج ,‪ C‬قريبة جدا من‬

...
أغلبية لغات البرمجة لديهم في آخر المطاف صفات متشابهة, تتشابه في األساسيات‬
‫بالتحدث عن األساسيات : نحن اآلن داخل الخليط
...
بإستعمالهم, سننتقل اآلن إلى اإلحتماالت‬
‫بدون إحتماالت, برامجنا ستقوم دائما بنفس العمل, مما سيضفي عليها الكثير من الملل‬

‫"‪ "if
...
else‬اإلحتمال‬
‫يساوي القيمة 05, قم ‪ i‬تقوم اإلحتماالت بمقارنة المتغيرات
...
و لكن سيكون من الممل أن ال نقوم بمقانة سوى‬

...
else‬لتعلم كيفية إستخدام اإلحتمال‬

...
else‬قبل البدأ بكتابة إحتمال من النوع‬

...
خطأ شائع يرتكبه المبتدؤون الذي إنتبهوا‬
‫في سنتحدث عن ذلك
...
األسفل‬

‫‪ if‬المقارن‬
‫فلنهاجم اآلن المهم بدون أي إنتظار‬
‫: سنقوم بإحتمال بسيط, و الذي سيقول للحاسوب‬
‫:‪ PHP‬كود‬
‫إذا كان المتغير يساوي قيمة معينة‬
‫إذن قم باآلتي‬


...
‪ if‬أكتبوا‬
‫بعد ذلك إفتحوا { و أغلقوها بعيدا }
...
تحقق الشرط الموجود داخل القوسين‬
‫:و نخلص بعد كل ذلك بهذا الكود‬
‫:‪ PHP‬كود‬
‫األوامر المراد تنفيذها إذا‬

‫)شرطكم//(‪if‬‬
‫{‬
‫تحقق الشرط //‬
‫}‬


...
اآلن سنقوم بمعرفة هل أنت راشد "‪ "age‬مثال, يمكننا مقارنة المتغير‬

...
يعني أكبر من أو يساوي, كما رأيناه في الجدول أعاله => الرمز‬
‫:إذا وجد أمر واحد بين {} فهي تصبح إختيارية فيمكننا كتابة‬

‫:‪ PHP‬كود‬
‫;)"! أنت‬

‫)81 => ‪if (age‬‬
‫راشد"( ‪printf‬‬

‫فلنجرب هذا الكود‬
‫وسط ‪if‬يجب وضع ال ,‪ if‬كيفية إشتغال إذا كنتم تريدون تجربة األكواد السابقة و ذلك لمعرفة‬

...
اإلحتمال و كيفية إشتغاله‬
‫:إليكم كودا كامال يمكنكم تجريبة‬
‫:‪ PHP‬كود‬
‫>‪#include ...
h‬‬
‫)][‪int main(int argc, char *argv‬‬
‫{‬
‫;02 = ‪long age‬‬
‫)81 => ‪if (age‬‬
‫{‬
‫;)"‪printf ("Vous etes majeur !\n‬‬
‫}‬
‫;)"‪system("PAUSE‬‬
‫;0 ‪return‬‬
‫}‬

‫‪ "Vous‬يساوي 02 إذن فسيتم القيام باألمر الموجود داخل {} أي أن الرسالة ‪ age‬هنا المتغير‬

...
‪ age‬حاولوا اآلن تغيير قيمة المتغير‬

...
إعتمدوا على هذا الكود لتقارنوا األكواد القادمة‬

‫"‪ "else‬المقارن‬

...
‪ instructions‬خطأ), يجب أن نقول للحاسوبنا أن يقوم بأمور أخرى‬
‫: إذا سنكتب‬

‫:‪ PHP‬كود‬
‫هذه القيمة ==إذا كان هذا المتغير‬
‫قم بهذا‬

...
و إال // ‪else‬‬
‫{‬
‫;)"! أنت قاصر"( ‪printf‬‬
‫}‬


...
إذا لم تفهم شيئا ال تترد في طرحه فنحن هنا لمساعدتك‬

‫"‪ "else if‬المقارن‬

...
‪ else‬و ‪ if‬رأينا كيف نقوم ب‬

...
و ذلك للقيام بمقارنة أخرى إذا لم يتحقق الشرط األول‬
‫‪ else‬و ‪ if‬توجد بين ‪else if‬‬
‫:فنكتب‬
‫:‪ PHP‬كود‬
‫هذه القيمة ==إذا كان هذا المتغير‬
‫قم بهذا‬
‫هذه القيمة == و إال إذا كانت‬
‫قم باآلتي‬

...
ال زلت صغيرا"( ‪printf‬‬
‫}‬

...
1‬

...
2‬

...
3‬

‫على أقل تقدير ‪ if‬ليسا إجباريين
...
(‪if‬‬
‫األمر1//‬
‫)
...
(‪else if‬‬
‫األمر3//‬
‫)
...
(‪else if‬‬
‫األمر5//‬
‫)
...
مثال, تريدون أن تعرفوا إذا ما كان العمر ‪ if‬قد يكون أيضا القيام بعدة إحتماالت في داخل‬

...
اإلحتمال سيقرأ بالعربية:"إذا كان العمر أكبر من 81 و العمر أصغر && العالمتان‬

...
|| للقيام ب "أو" يجب إستعمال الرمزين‬
‫و للقيام بهما فهناك عدة طرق و ذلك حسب نوعية لوحة المفاتيح, إذا ما عليك سوى تجريب‬
‫:إحدى الطرق‬

‫+‬

‫+‬

...
03 سنة أو أن يكون لديك الكثير من المال‬
‫:إحتمالنا لمعرفة هل الزيون قادر على فتح حساب بنكي أو ال سيكون كالتالي‬
‫:‪ PHP‬كود‬
‫)000001 > ‪if (age > 30 || money‬‬
‫{‬
‫;)"! مرحبا بك في سوبر بنك"(‪printf‬‬
‫}‬
‫‪else‬‬
‫{‬
‫;)"! أغرب عن وجهي أيها****"(‪printf‬‬
‫}‬

‫!‬

...
يجب وضع هذا الرمز قبل الشرط و ذلك ليكون المعنى: إذا لم هذا الشرط صحيحا‬
‫:‪ PHP‬كود‬
‫))81 < ‪if (!(age‬‬

‫:يمكن ترجمة الكود فوق بالتعبير التالي‬

...
إذا كان الشخص قاصرا‬

‫بعض األخطاء التي يقع فيها الكثيرون‬
‫نسيان العالمتين == ووضع واحدة مع أن معناهما مختلف /1‬

...
أرجو من الجميع اإلنتباه إلى هذه األخطاء فهي ستسبب لكم الكثير من المشاكل في المستقبل‬


...
‪ if
...
‪ booléen‬أضافت اإلحتماالت شسئا يسمى ب‬

...
ستفهمون بعد قليل‬
‫:اآلن قوموا بعمل تجربة أخرى لكن بكود مختلف‬
‫:‪ PHP‬كود‬
‫)0( ‪if‬‬
‫{‬
‫;)"خطأ"(‪printf‬‬
‫}‬
‫‪else‬‬
‫{‬
‫;)"صحيح"(‪printf‬‬
‫}‬


...
اآلن قوموا بعدة تجارب و ذلك بإستبدال 0 بأي قيمة أخرى مثل:4, 51, 622, -01, -63‬

...
الشرط صحيحا‬

‫:الشرح‬
‫هذا اإلحتمال يعيد لنا قيمة 1 إذا كان الشرط صحيحا و ‪ if‬في الحقيقة ففي كل مرة تقومون بها ب‬


...
إذن فالشرط صحيح 32 أكبر من أو يساوي 81 فيقوم الحاسوب ‪ age‬لنفترض أن‬

...
و كذلك بالمثل إذا كان الشرط خاطئا يعوضه ب 0‬

‫التجربة بإستعمال متغير‬
‫فلنقم بالتجربة كيف نرسخ المفاهيم السابقة: قوموا بإرسال نتيجة اإلحتمال إلى متغير, كما لو‬

...
هو 1 ‪ majeur‬كما تالحظون فإن قيمة المتغير‬

...
‪ booléen‬يسمى "‪ "majeur‬المتغير‬

...
لكي نكون دقيقين ف 0 يساوي خطأ و جميع األعداد األخرى التي تخالف الصفر صحيحة‬

...
و هذا ما سنراه إن شاء هللا "‪++ "bool‬سي‬

...
‪: char-double-long-int‬هو أي نوع ك ‪ bool‬لذلك فإن التوع المستعمل لل‬

...
يحمل القيمة 1 الشرط صحيح ‪ majeur‬بما أن المتغير‬
‫:إليكم إحتماال آخر‬
‫:‪ PHP‬كود‬
‫)‪if(majeur && man‬‬


...
يبين إذا ما كان شيئ صحيح أو خطأ ‪ bool‬إذن‬
‫ما قمنا به حتى اآلن قد يبدو ال فائدة منه لكن بالتعمق في البرمجة نجد أن له إستعماالت كثيرة و‬

...
الذي رأيناه من قبل هو األكثر إستعماال ‪ if
...
لتفادي القيام بعدة إحتماالت على متغير واحد, تم إبتكار طريقة إخرى للقيام باإلحتماالت‬
‫ هذه الطريقة تسمى‬switch ‫:و هذا مثال عليه‬
‫ كود‬PHP:
switch (age)
{
case 2:
printf("Salut bebe !");
break;
case 6:
printf("Salut gamin !");
break;
case 12:
printf("Salut jeune !");
break;
case 16:
printf("Salut ado !");
break;
case 18:
printf("Salut adulte !");
break;
case 68:
printf("Salut papy !");
break;
default:
printf("Je n'ai aucune phrase de prete pour ton age
break;
}

");

‫:نكتب‬
‫)المتغير1(‪switch‬‬

...
نفتح المعقوفات و نغلقها تحت‬

...
جميع الحاالت و يقوم بجميع األوامر‬

...
‪ default‬الحاسوب بالقيام بأوامر‬

‫: القيام بقائمة لألطعمة‬

...
إذا إلى العمل‬

‫:المطلوب منكم‬
‫أن تقوموا بعمل قائمة لألطعمة التي يقدمها مطعمكم و أن تعرضها على المستعمل فيختار منها ما‬

...
h‬‬
‫>‪#include ...
Royal Cheese\n‬‬
‫;)"‪printf("2
...
Mc Bacon\n‬‬
‫;)"‪printf("4
...
Bon choix‬‬
‫;‪break‬‬
‫:2 ‪case‬‬
‫‪printf("Vous avez choisi le Mc Deluxe
...
‪e‬‬
‫;‪break‬‬
‫:3 ‪case‬‬
‫‪printf("Vous avez choisi le Mc Bacon
...
Vous devez avoir tre‬‬
‫;)"! ‪s faim‬‬
‫;‪break‬‬
‫:‪default‬‬
‫‪printf("Vous n'avez pas rentre un nombre correct
...
و هاقد إنتهينا‬

...
في الحقيقة عندما تبرمجون يجب عليكم التفكير في جميع اإلحتماالت‬

...
اإلعتبار‬

‫بالنسبة للتمارين فسأضعها في درس خاص بها‬

...
الدرس‬
‫إنتهى‬
‫و بالتوفيق للجميع‬

‫__________________‬

‫هللا رسول محمدا و أن هللا أشهد أن ال إله إال‬


Title: تعلم البرمجة من الصفر حتى الاحتراف
Description: تعلم البرمجة من الصفر حتى الاحتراف