سلااااااااااااااااااااااام
تكفون ساعدوني عندي سؤالين بمتحن فيهم يوم الاحد اورال ولحد الان مالقيت لهم اجابه :06:
والسؤالين هم:
1- (a)ناقش مفهوم الامر switch في خمس لغات مختلفه غير ال ++C مع اعطاء مثال باستخدام
الامر والتركيبه0
(b)قارن مفهوم switch في كل لغه مع ال ++C منحيث:
1- طريقة الاستخدام
2-سهولة وصعوبة التركيب
3- الناحيه العمليه
2- بنفس مفهوم السؤال الأول ناقش مفاهيم التكرار do while,while,for .
انا عارفه ان الاسئله اجوبتها طويله بس تكفون لا تبخلو علي لاني ما ادبر شي
والامتحان يوم الاحد
ومشكورين :) :p
ibn_alqalam
16-03-2005, 06:48 PM
تكفون ساعدوني عندي سؤالين بمتحن فيهم يوم الاحد اورال ...
اتعنين "شفهيا" و "من فضلكم"؟
switch هي اداة مقارنة قيمة ما بعدة حالات, و اخذ قرار خاص عند كل حالة. مثلا, للتعرف على حيوان ما لم يسبق لنا معرفته, قد نقول:
اذا كان لديه اجنحة, فهو طير
او اذا كان لديه زعانف, فهو سمك
او اذا كان يرضع بامه, فهو ثديي
... الخ
تلاحظين اننا نرمز للحيوان بالمضمون النحوي, كل عباراتنا تدل على ان الحيوان المذكور من جنس الذكر, مع اننا لم نصرح بذلك! ايضا, من المستحيل ان نقارن الحيوان بصفات لا يتصف بها اي كائن حي, مثلا اذا قلنا "اذا كان مصنوع من حديد ..." لان ليس هناك حيوان مصنوع من الحديد!
حين نبرمج, يجب ان نلاحظ كل الخيارات التي نفترض بدون ادراك, لان الحاسوب يطبق مانعطيه من عمليات على ما نعرفه من بيانات. الحاسوب قد يقوم بفحص ما اذا كان حيوان ما مصنوع من الحديد ام لا, اذا امرناه بذلك!
قاعدة 1: تاكد من ان تقارن الاشياء التي تنتمي الى نفس الفصيلة.
يمكننا ان نستخدم if لمقارنة قيمة ما بعدة قيم اخرى, تماما مثل switch:
ANIMAL animal;
TYPE type;
if (has_wings (animal))
type = BIRD
else if (has_fins (animal))
type = FISH
else if (nurses (animal))
type = MAMMAL
هذا قد يفي بالغرض, و لكن كل ما ازدادت عدد المقارنات التي نود ان نقوم بها, كلما زاد انعطاف النص الى اليسار و صعب علينا تغيير النص و القراءة. ليس ذلك فقط, بل وان البرنامج ازداد بطئا, خاصة اذا عمل على عتاد ضعيف القدرة.
هناك ايضا نقطة مهمة, ليس هناك و اق يمنعنا من اضافة عبارة اختبار قد تقارن كائن الحيوان بكائن اّخر لا ينتمي الى فئته.
اذا عرفنا احدى الدالات السابقات ك:
bool has_fins (ANIMAL animal)
{
return (animal.limp == LIMP_FIN);
}
مثلا, قد لايقبل المترجم C++ compiler به اذا حاولنا تطبيق عملية has_fins على اي كائن لا ينتمي الى فصيلة ANIMAL, مع اننا قد نخطئ و نفعل ذلك.
هناك ايضا مشكلة اخرى جمالية, و هي تكرر المتغير animal في كل مقارنة. لم لا نستخدم قدرتنا على التبسيط الرمزي و نفصل القاسم المشترك من المعادلة, تماما كما نفعل في الجبر؟
خلاصتا, تقوم switch بالتبسيط الجبري للعماليات التي تقوم بمقارنة قيمة ما بعدة قيم اخرى, راعية في ذلك ان لا نقارن القيمة بقيمة اخرى ليست من نفس الفئة.
وعفوا اذا ما تفلسفت او لم اوضح.
جميع حقوق برمجة vBulletin محفوظة ©2025 ,لدى مؤسسة Jelsoft المحدودة.
جميع المواضيع و المشاركات المطروحة من الاعضاء لا تعبر بالضرورة عن رأي أصحاب شبكة المنتدى .