المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : الــدرس الــعـــاشر من دورة c_script (عبارة if )



ديمو1
16-10-2008, 08:08 PM
عبارة IF

لنرى مثال عن فائدة هذه العبارة
إذا كانت اعطال جهاز الكمبيوتر كثيرة ساشتري واحدا جديدا، اذا كان راتبي اقل من سعر الكمبيوتر الحديث فسابقى على هذا.

نعم، عقلي ما زالَ يَعْملُ حسناً، شكراً للسُؤال. هذا فقط مثال عن if و Else؛ ان الكود الخاص بالذي قلناه بالاعلى هو هذا:


if (my_bills > 1500)
{
find_new_camputer( );
}
else
{
keep_existing_camputer( );
}

تَستعملُ "if" عندما تريد لسكربتك ان يقوم ببعض العمليات اذا تحقق شرط معين مثال اذا كانت الاجابة صحيحة يكتب مبروك واذا خاطئة يكتب خطا وهكذا: م هنا طريقة كتابة امر"إذا"او "if" :


if (some condition is true)
{
// ينفذ الأوامر التي بداخل القوس المجعد
}

اذا تريد نموذج اكثر تعقيداً:


if (some condition is true)
{
// ينفذ الاومر التي بداخل القوس المجعد.
}
else
{
// ينفذ الاومر التي بداخل القوس المجعد.
}
إنّ الأوامرَ التي وَضعتْ داخل القوس المجعد "else" تُنفّذُ فقط اذا لم يتحقق الشرط الاساس. هنا مثال عملي:


if (my_age > 65) //اذا كان عمري اكبر من 65
{
income = 2000; //فأن راتبي 2000 ريال
}
else // العمر اقل من او يساوي 65
{
income = 3000; //فان راتبي ثلاثة الاف ريال
}

هو واضحُ جداً الراتب يُمكنُ أَنْ يَكُونَ أمّا 2000 3000 لأن فقط أحد الشروط ستنفذ سَتُنفّذُ
(income = 2000 أَو income = 3000، وليسا معاً).دعنا نَتوصّلُ إلى بَعْض الإستنتاجاتِ:
- "إذا"او "If" تكتب اولاً الكلمة الدليلية if يليها اقواس الحصر؛
- العلامات الحصر تَحتوي شرطاً ("الشرطِ") ذلك الشرط يُمكنُ أَنْ يَكُونَ صحيح أَو خاطئَ؛
- إذا كان الشرط حقيقيُ، مجموعة الأوامرِالتي وضعت داخل قوس الحصر ستنفذ مباشرة؛
- إذا كان الشرط خاطئُ ونحن لا نَستعملُ الأمر "else"، اذا كان الشرط الصحيح لم يتحقق (هي لن تنفذ الا اذا تحقق الشرط)؛
- إذا الشرط خاطئُ ونحن نَستعملُ "else" يمكنك ايضا اضافة شرط غيره وهكذا، مجموعة الأوامرِ التيو َضعتْ داخل الزوجِ الأولِ للأقواسِ المُجعّدِ لن تنفذ، ومجموعة الأوامرِ وَضعتْ داخل الزوجِ الثانيِ للأقواسِ المُجعّدِ ستكون منفذه.

الآن افتح البرنامج واكتب التالي:

///////////////////////////////////
// سكربت اختبار قيادة السيارات //
// //
/////////////////////////////////

/////////////////////////
//متغيرات عرض الشاشة
var vodeo_mode=7;
var screen_color[3]=150,14,90;
/////////////////////////

//////////////
//متغير سرعة السيارة بأمكانك اسمائه ماتشاء واعطآءه القيمة التي تشاء
//////////////
var carspeed=120;
///////////////////////////////////////

//////////////////////////
//الخط شرحناه بالدروس السابقة
/////////////////////////
font arabic="Courier",1,18;
/////////////////////

/////////////////////
//العبارات المطلوب ظهورها بأمكانك زيادتها اذا اردت لكن قبلا اقرء الدرس جيدا
///////////////////////////////////////////////
string carspeed1="انت تسير وفقا للشروط المسموحة";///العبارارة التي ستظهر اذا كانت السرعة 120 او اقل
string carspeed2="انت تسير بسرعة غير مسموح به الحد الاقصى هو 120 فقط";//العبارة التي ستظهر اذا كانت السرعة اكبر من120
////////////////////////

/////
//لاظهار العبارات
///
text demo1
{
pos_x=5;
pos_y=8;
font=arabic;
flags=visible;
}
//////////////////////

////////////
//االوظيفة الرئيسية
//
////////////////

function main()
{
while(1)//عبارة التكرار التي تجعل من الوظيفة تتحقق من الشرط هل مازال هو ام تغير باستمرار يعني انه عندما يكتب الاعب قيمة جديدة يقوم بتحديثها مباشرة...
{
if (carspeed < 121)//وضعنا الشرط الصحيح او الاساسي هنا اذا كانت السرعة اقل من 120
{
demo1.string=carspeed1;//فانه يظهر العبارة الاولى
}
else//الأمر الذي يكتب اذا لم يتحقق الشرطـ
{
demo1.string=carspeed2;//العبارة التي ستظهر اذا لم يتحقق الشرط

}
wait(1);//هي الامر الذي يامر المحرك بالانتضار ثانية واحدة وهي ماسيعطي الاوامر التي تليها للتشتغل
}


}


}

الكود سهل ويشرح نفسه بنفسه احفظه وقم بتشغيله
ثم لاحظ ماذا سيظهر ستظهر العبارة ستظهر العبارة التي حددناها وهي ""انت تسير وفقا للشروط المحددة""
الان اظغط زر Tap واكتب
carspeed=220; لاحظ ماذا سيظهر:""انت تسير بسرعة غير مسموح به الحد الاقصى هو 120 فقط""

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


if (carspeed==0)
{
sys_exit(null); }
ثم قم بتشغيله واظغط زر تاب واكتب
carspeed=0; وشاهد ماسيظهر

الكود يبدو ليس معقدا كل ماعملناه عملنا امر if ثم وظعنا بداخل زوج اقواس الحصر انه اذا كان المتغير
carspeed يساوي 0 فانه يخرج من البرنامج وذلك عن طريق امر
sys_exit(null); هل تتذكر هذا الكود من احدى الدروس السابقة..



ملاحظة مهمة:::
إستعمال اشارة مساواة واحدة بدلا من اشارتي المساواة للمقارت بيت التعبيرين داخل حلقة التكرارِ، او دالة if، الخ. خطأ متكرر جدا. رجاءً تذكّرْ:


if (a == 3) // صحيح
{
do_some_stuff
}

if (a = 3) // خطا!
{
do_some_stuff
}

ناقشنَا الكثير عن الاوامر، لكن ما أمر؟ (حساب) سلسلة المتغيّراتِ، أعداد، مهام، الخ كيف نربطهم سوية. بينما من اللّطيف إمتِلاك اللاوامر البسيطةِ التي تَبْدو مثل هذا تحت:


if (energy < 50) //امر بسيط بين علامتي الحصر
health = health - 10;
}


ويمكنك ايضا العمل بالاوامر المعقدة مثل الذي تحت:



if ((armor + energy * 0.25) > (health * (1 - class / 3))) // more complicated expression
{
health = health + 5;
}
أنت يُمْكِنُ أَنْ تَدْمجَ اوامر قدر ما تُريدُ، باستعمال علامة الحصرِ، مثل ما في المثالِ فوق. نفس القواعدِ تقريبا الموجودة بالرياضيات، أيضاً. من المحزن، أنت يَجِبُ أَنْ تَعْرفَ بَعْض الرياضياتِ إذا تريد ان تكون مبرمج جيد.

ألقِ نظرة على هذا الجدول لرُؤية كَيفَ يُمْكِنُ أَنْ تُقارنَ تعبيران مختلفان (أنت يُمْكِنُ أَنْ تَستعملَ نفس الجدول لـ"if"، "else"، الخ):

|| اذا كان كلاهماصحيح (or) && اذا كانا صحيحن (and) != اذا كان غير متساوي
== اذا كان مساوي
<= اذا كان الاول اصغر من الثاني
>= اذا كان الاول اكبر من الثانس
< اذا الاول اصغر
> اذا الاول اكبر


حيانا تحتاج الى التدقيق واعطاء نظريات ايجابيية اذا كان هنا عدة اوامر. دعنا نَتخيّلُ بأنّك تُريدُ إطْلاق رصاصة؛ الكود الذي ينفذ هذا يجب عليك ان تعطي بعض النظريات له به للتاكد من نجاخه ووقاعيته:
a) صحتكَ فوق صفر (الاعبون الميتون يجب ان لايستطيعوا اطلاق النـار)؛
b) ذخيرتكَ أكبرُ مِنْ صفر (تَحتاجُ أَنْ يَكُونَ عِنْدَكَ على الأقل رصاصةُ واحدة إذا تُريدُ لِكي تَكُونَ قادر على ضَرْب الشيءِ أَو شخص ما).

هناك عِدّة طرق للتنفيذ هذه الطريقة دعنا نرى توضيح، هذا مثال بسيط:


if (player_health > 0)
{
if (ammo > 0)
{
fire_bullets();
}
}

ماذا يَحْدثُ هنا؟ أولاً، صحة اللاعبِ مُقَارَنةُ بصفر؛ إذا player_health <= 0,، بقيّة الكود سيكون مهمل. إذا اللاعبِ حيُّ (player_health > 0)، نحن سنوقوم بمراقبة إذا ذخيرةِ اكثر مِنْ صفر. إذا اللاعبِ لَيْسَ لهديهُ بما فيه الكفاية من الذخيرةُ (ammo <= 0) بقيّة الكود ستكون مهملة؛ ما عدا ذلك، إذا ammo > 0، fire_bullets سستشتغل.



الدرس القادم ازرار التحكم.........

MAS009
17-10-2008, 03:56 PM
الف شكر
درس ممتاز جدا
استمر في هذا الابداع

majinvegetassj4
19-10-2008, 02:45 PM
أفتدنا كثيرا أخي العزيز في إنتظار دروسك القادمة
شكرا

BladeII
25-10-2008, 05:48 PM
الف شكر وتقدير بارك الله بيك ياطيب.........

.............

ninomino12
16-06-2011, 01:41 PM
مشكوررررررررررر جداً

المعلم جامبو
29-06-2011, 09:15 PM
سهولة شرحك وبساطت اسلوبك تجعل هذة الدروس سهلة جدا
وفقك الله