Udacity js Conditional





هذا المحتوى تجده بشكل افضل على الرابط التالي تجمع المبرمجين والمطورين العرب



السلام عليكم ورحمة الله تعالى وبركاته في هذه القسم من المبادرة سنتعرف على ادات الشرط وكيفيت استخدامها وانواع الشروط وجوهرية عملها ...
لبد وانك قد شاهدت في الدروس السابقة للدورة عن المنطقية والتي تتلخص في true و false في الشرطية ان تحقق الشرط فان العملية تتم وان لم يتحقق فانك انت من تتحكم بنتيجة الشرطية






هيكلة الاداة الشرطية

مثلا نقوم بالمقارنة بين الاعداد الصحيحة الطبيعية لانها اسهل طريقة لتطبيق الشطرية مثلا نقول ان سن التجنيد هو 18 سنة وان كانت العضو المنضم يستوفي شرط السن فبامكانه خوض اختبارات التجنيد
محمد = 19 سنة
اذا كان محمد اكبر من 18 سنة فبامكانه ولوج اختبار التجنيد غير ذلك انت صغير جدا لولوج التجنيد انتظر حتى تبلغ السن القانوني 18 ... بهذه البساطة والمنطقية تعمل الدالة الشرطية وخواصها دعونا نطبق ما قلناه في الكود
var mohamed = 19;
if (mohamed > 18){
document.write("You can join the military");
}else{
document.write("You can not join the army, you are still young");
}
ستلاحظ أخي الكريم اننا أعلنا عن متغير باسم mohamed يحمل هذا المتغير قيمة رقمية number وقمنا بعملية المقارنة من خلال الشرط if اي في حالة استوفى الشرط فاننا سنطبع جملة تخبره انه بامكانه الالتحاق بالتجنيد وفي حالة عدم وفاء الشرط فاننا نخبره انه لا زال صغير عن التجنيد لكن ادا اردنا ان نجيبه بجواب اخر وننصحه بمتابعة مدرسته اذاكان لا يستوفي الشرط فكيف سنخبره برمجيا بذلك
var farid = 17;
if (farid > 18){
document.write("You can join the military");
}else if (farid < 18) {
document.write("The school is better for you than recruiting");
}else {
document.write("You can not join the army, you are still young");
}
ستلاحظ انه تم اضفة شرط اخر باستخدام else if اي اخبرنا فريد انه لا زال صغيرا في السن للالتحاق بالتجنيد وايضا اخبرناه ان يبقى في المدرسة افضل له من التجنيد وستلاحظ ان ما تبقى من الخيارات اصبح معدوما اي الجملة الاخيرة You can not join the army, you are still young سواء ابقيناها او ازلناها في ليست ضمن الشرط وفي حالة استوفى او لم يستوفي فهو لم يطبع هذه الجملة لاننا خصصنها منطقيا فلا يوجد سن غير اكبراو اصغر من 18 ، اليس ادوات الشرط اكثر امتاعا وتسلية في البرمجة ؟
قبل التوجه الى حل المسائل سنتطرق الى بعض العناصر من الشرطية لنشرحها مع الكويزات تبعها لانها قد تبدو في البداية اكثر تشويشا وافضل ان تتقن جوهر الشرطية في الجافاسكربت فهناك
nested if & switch case

Quiz: Flowcharts (3-1)
في هذا السؤال طرحت عليك عدة خيارات منها هل عملية هذه الشرطية تستند الى دالة شرطية رقمية او دالة شرطية عبارة عن سترينغ او دالة شرطية عبارة عن منطقية ام دالة شرطية غير معرفة






دالة شرطية

لديك الوقت الكافي لفهم هذه الدالة الشرطية ، في نفس الكويز لديك تمرين تاني وهذا التمرين عبارة عن تعريف خاطف لل nested if







nested if

قبل شرح السؤال نتوجه لشرح هيكلة nested if وكيف تعمل
if (the condition){
if(the second condition){
}
}
ان هيكلة nested if بسيطة جدا وهي تعتمد على اتمام شرط يمكنك ان تمر للشرك التالي لنبقى مع مثال التجنيد فهو مثال جيد للتطبيق عليه في التجنيد بعد استوفاء شرط السن يتم اختبار شرط الطول والصحة وغير ذالك من الشروط كالمستوى الدراسي وغيرها من الامور ... هيا لنتحدث برمجيا حتى تتضح لكم الفكرة
var mohamed = 19 ;
var Height = 1.79;
var health = true ;
if (mohamed > 18){
if(if Height > 1.70){
console.log("You have the right length");
}else if(health == false ) {
console.log("We need people in good health");
}
}else {
console.log("You can not be a soldier");
}
ستلاحظ في الكود اننا وضعنا شرط اساسي وهو سن الملتحق بالتجنيد ان كان ذالك الشرط مستوفي فيمكنه الانتقال الى الشروط التالية وهي عبارة عن طول الملتحق بالتجنيد ثم الصحة الخاصة بالملتحق ان لم يستوفي الشروط فلا يمكن ان يتجه للشروط التالية وسنخبره انه لا يمكن ان يكون جندي ، التحدث بالبرمجة امر ممتع ولا توجد اي عقبات لتعلم البرمجة فقط تحتاج ان تفهم الاساسيات والقواعد الاساسية للبرمجة .. الان ننتقل لشرح السؤال اظن انه اصبح بسيطا جدا ، هذا الكويز يخبرك هل ذهبت الى القلعة وحاربت التنين وهناك عدة شروط في حالة محاربة التنين فهناك خيارات في حالة عدم استوفاء الشرط فان هناك حالات منطقية وسؤلت هل ذهبت الى القلعة ؟؟ قم باختيار الاجابة المناسبة في الصورة
Quiz: Even or Odd (3-2)
في هذا الكويز علينا معرفة even , odd هي خواص تستخدم في css للتوريث حيث تسهل عليك عمليات التكويد بشكل اسرع وبكود اقل إستخدمت هذه التقنية في تكويد احد المشاريع المتجاوبة مع الاجهزة بدون استخدام البوت ستراب او اي مكتبة اخرى ستجدون الشرح عبر الرابط التالي







وهناك ايضا شرح التوريث في css على حسابي في المبادرة عبر الرابط التالي شرح التوريث في css سيتم ارفاق ارشفة على مدونتي ان شاء الله حتى يكون مرجع للافاذة
الان نعود الى شرح الكويز نحن نعلم ان قمنا بقسمة عدد فردي odd على عدد زوجي even فاننا سنحصل على عدد عشري وهذا لا نريده كنتيجة لمسألتنا مثلا لو قسمنا 3/2 = 1,5 هذه نتيجة عشرية
ثم قسمة عدد فردي على فردي تعطينا نتيجة فردية وقسمة عدد زوجي على زوجي يعطينا نتيجة زوجية إذن سنقول ببساطة ان قسمت القيمة تبع number على عدد زوجي ك 2 وكانت قيمته 2 والباقي 0 فانها نتيجة زوجية وان كان غير ذلك فنتيجة فردية ، فقد اشترطو ان تضع if...else وتطبق فقط النتائج الزوجية ان وجدت
Quiz: Musical Groups (3-3)
كويز الفرقة الموسيقية لديما بعض المعطيات من الكويز انه ان كان لدينا اقل من موسيقي فاننا سنطبع انها ليست فرقة موسيقية وان كان لدينا موسيقي واحد فانه موسيقي وحيد solo وان كانو 2 فاننا سنقول duet وان كان 3 فاننا سنقول trio و اربعة quartet وان كان اكثر من ذلك او 20 فاننا سنقول هذه مجموعة كبيرة من الموسيقيين
افضل طريقة وهي اعطاء متغير سلفا للانطلاقة
var musicians = 1;
ثم نبدا بالمعطيات التي لدينا نقارن الاول مع رقم 1 في حالة عدم استوفاء الشرط فانه سيطبع
console.log("not a group");
بعدها ان كان متساوي مع المتغير musicians فاننا سنطبع
console.log("solo");
وهي دواليك حتى تستوفي شروط الكويز
Quiz: Murder Mystery (3-4)
هذا الكويز من اكثر الكويزات جدلا في المبادرة بحيث لا يمر يوم واحد بدون رؤيت عضو يواجه مشكلة في هذا الكويز
في هذا الكويز طلب تجد المتهم وسلاح الجريمة من خلال room ولدينا
  • Mr. Parkes was located in the dining room.
  • Ms. Van Cleve was located in the gallery.
  • Mrs. Sparr was located in the billiards room.
  • Mr. Kalehoff was located in the ballroom.
اي اننا سنمثل كل متهم بالحريمة على هذه الطريقة باستخدام nested اف ثم لدينا المعطيات التالية
var room = "gallery";
var suspect = "Ms. Van Cleve";

var weapon = "";
var solved = false;
نقول مثلا :
if (room === "gallery") {
    weapon = "trophy";
      if (suspect === "Ms. Van Cleve") {
      solved = true; 
    }
اذا كانت الغرفة هي gallery فان السلاح هو trophy واذا كان المتهم هو Ms. Van Cleve فان قيمة solved = true;
ثم نعيد نفس الطريقة مع غرفة مختلفة وسلاخ مختلف وشخصية مختلفة مستخدمين else if
} else if (room === "billiards room") {
    weapon = "pool stick";
        if (suspect === "Mrs. Sparr") {
        solved = true;
        }
,وهي دواليك للأشخاص الاربعة في دائرة الاتهام
ثم في الاخير نحتاج ان نطبع المتهم الذي تنطبق عليه مواصفات الجريمة لاننا في الاول لم نعرف اداة القتل بالطبع
if (solved) {
 console.log(suspect +" did it in the "+ room + " with the "+ weapon +"!");
}
الكويز تقريبا شبه محلول فقط تحتاج ان ترتب افكارك وطريقة تفكيرك كمبرمج فكلما فهمت السؤال اكثر كلما كانت اجابتك اقرب للنتيجة الصحيحة
Quiz: Checking your Balance (3-5)
هههه وايضا هذا الكويز للسخرية من اكثر الكويزات المطروحة في المنتدى الكويز نوعا ما خادع ويحتاج منك تركيز لفهم طريقة تفكير البنكي ... في هذا الكويز نتحدث عن نسبة المال الخاصة بالزبون في البنك مستخدمين ايضا nested if في البداية نراقب حساب الزبون لكي نرسل له رسالة ان استوفى الشرط فاننا سنمرره للحالات المختلفة ان كان حسابه غير مستوفي الشرط (اي ان حسابه سليم ) فهذا يعني ان العملية لن تقوم في الاساس







nested if

سنحتاج في الاساس الى المعطيات التالية
var balance = -22;
var checkBalance = true;
var isActive = true;
مع التاكيد على المتغير balance ان يكون بنتيجة سلبية لكي يستوفي الشرط وكل من checkBalance و isActive بقيمة true ، في حالة استوفاء شرط checkBalanceيكون TRUE فاننا سننتقل الى الشرطية التالية وفي حالة عدم اسوفاء الشرط فاننا سنطبع الجملة التالية Thank you. Have a nice day! وننهي البرنامج .... وفي حالة استوفاء الشرط نضع عدة حالات الحالة الاولى
isActive && balance > 0
في هذه الحالة سنطبع الجملة التالية 'Your balance is $' + balance + '.'
وفي حالة عدم استوفاء هذا الشرط فاننا ننتقل الى الحالة التالية !isActive لكي نتاكد ان كان الحساب البنكي لا زال شغالا ، وفي حالة ما كان balance يساوي الصفر فاننا نطبع الجملة التالية Your account is empty. غير هذه الحالات التي لدينا فاننا ننصحه بزيارة البنك في اقرب وقت Your balance is negative. Please contact bank.
ستجد ان هذا الكويز اشبه ببرمجة روبوت يجيب على الاشخاص او المستخدمين والحالات التي تقع للزبون في البنك خير مثال لذلك .
Quiz: Ice Cream (3-6)
كويز الايسكريم لدينا بعض المعطيات وهي
var flavor = "vanilla";
var vessel = "cone";
var toppings = "sprinkles";
وطلب منا ان نقارن مع كل متغير مقارنة false و مقارنة true مستخديمن || للربط بينهما والتحدي هو وضعها في دالة شرطية واحدة لا غير في هذه الحالة نستخدم && فهي مفيذة جدا في وضع شروط على الفورمات / كفورم الدخول / بحيث تكون المقارنة بين التاليى
flavor is "vanilla" or "chocolate"
vessel is "cone" or "bowl"
toppings is "sprinkles" or "peanuts"
تم ستقوم بطباعة المتفيرات مستخدما جمل الاساليب في العربية لملأ الجملة بما يناسب
ملحوظة في string لكي تضع جملة ب I'd like two scoops of فانك قد تضعها في الكود بهذا الشكل
"I" + "'" + "d like two scoops of "
هذه الطريقة صحيحة للكود لكن هناك طريقة سهلة وهي عبارة عن السلاشة
"I\'d like two scoops of "
هذه طريقة افضل واسرع واسهل لبناء علامة تنصيص فردية في جملة
Quiz: What do I Wear? (3-7)
في هذا الكويز طلب منك المقارنة ان كانت النسب قريبة من الجدول التالي فانك ستطبع القيمة تبعها لدينا الجدول التالي لحجم الملابس وطولها وعرضها وثمنها







جدول الملابس

في حالة ما وجدت لدينا هذه القياسات في شرطية واحدة فاننا سنطبع النتيجة انطلاقا من معطيات الجدول
var shirtWidth = 18;
var shirtLength = 29;
var shirtSleeve = 8.47;
فنقول
if (((shirtWidth >= 18 && shirtWidth < 20) && (shirtLength >= 28 && shirtLength < 29) && (shirtSleeve >= 8.13 && shirtSleeve < 8.38))) {
console.log("S");
}
ببساطة طبقنا الجملة التالية منهجيا للمثال
If shirtWidth equals 19, shirtLength equals 28 and shirtSleeve equals 8.21, then S should be printed to the console.
وسنستخدم هذه الطريقة على جميع قياسات الالبسة حتى تعطينا القياس الانسب للمتغيرات تبعنا
Quiz: Navigating the Food Chain (3-8)
هذا الكويز يعتبر متقدم نوعاما في الشرطية بحيث اننا نقوم بعملية مقارنة بدون استخدام if ستتسائل لما هي جملة شرطية واين هي if في هذا المثال سنرى طريقة رائعة للمقارنة بدون if
في المعطيات لدينا متغيرين من النوع المنطقي كل منهما يحمل قيمة true ولدينا ما يسمى بالعاشب واللاحم وان كان يجمع بينهما فانه قارث
القارثomnivore = كالانسان والحيوانات التي تاكل مختلف الاغذية
العاشبherbivore = الحيوانت التي تعيش على النباتات
اللاحمcarnivore = ونعني بها الحيونات اللاحمة
ثم طلب منا ان نضعها في متغير واحد وهو الاصناف category للقيام بالامر نقوم بالتالي
(variables && !variables) ? "the condition"
يممكنا ضم الجمل باستخدام : بين كل مقارنة واخر ، نركز جيدا اننا نستخدم ! علامة التعجب اي اننا غير متاكدين من صحة هذا الشرط ففي حالة عدم وجودها يعني ان الشرط سليم وان البرنامج سينفذ عند الجمع تكون بهذه الطريقة
(variables && variables) ? "the condition" :
(variables && variables) ? "the condition" ;
Quiz: Back to School (3-9)
هنا وصلنا اصدقائي الى شرح السويتش كاز او استبدال الحالة ، متى نستبدل الحالة في الحياةالواقعية بالبرمجة .... استخدمت عدة برامج لسطح المكتب ولعلي استخدمت البرامج بغرض فك كسر باسوردات winrar التي كنت اواجه معها مشاكل جمة رغم ان البرامج كانت تستغرق وقت لاجاد باسوردات صغيرة مثل 123456 الا انها كانت تفي بغرضها فهذه حالة استخدمت فيهاswitch case هناك عدة برامج تستخدم هذه الحالات كالكيجين وبرامج تخميم باسوردات الواي فاي
اسف switch case لديك استخدامات سلبية اكثر من الايجابية ، الهيكلة الاساسية لها






سويتش كاز

الجميل فها انها تقوم بها اتوماتيكيا حتى تصل الى الحل الانسب دعونا نشرح الكويز فهي خير مثال لفهم switch case ... لدينا متغير education يحمل a high school diploma ولدينا متغير اخر salary وهو غير معرف بعد
الحالات التي لدينا هي التالية
  • no high school diploma earned an average of $25,636/year,
  • a high school diploma earned an average of $35,256/year,
  • an Associate's degree earned an average of $41,496/year,
  • a Bachelor's degree earned an average of $59,124/year,
  • a Master's degree earned an average of $69,732/year,
  • a Professional degree earned an average of $89,960/year,
  • and a Doctoral degree earned an average of $84,396/year.
القاعدة الاساسية ل
switch (the case) {
case "here string value ":
the condition case
break;
case "here string value ":
the condition case
break;
case "here string value ":
the condition case
break;
}
عليك ايضا معرفة toLocaleString فهي مخصصة لارجاع القيمة الافتراضية التي تضعها وفي حالة عدم وضعها فهي تتخذ القيمة الافتراضية للغة حاسوبك او المكان الجغرافي الذي خصصته لها مثلا
var n, s; n = new Number(100);
s = "Current locale value is: ";
s += n.toLocaleString();
document.write(s);

وهي تبين ايضا حتى التاريخ والعملة المحلية في هذا الكويز فرضنا العملة الخاصة بالولايات المتحدة الامريكية
toLocaleString("en-US")
الى هنا اخوتي الكرام ينتهي شرحنا للشرطية في المبادرة ان كانت هناك اي كويز غير مفهوم فالمرجو التنبيه لي حتى اقوم باصلاحها او اعادة شرحها

Post a Comment

0 Comments