بسم الله الحكيم الخبير
استعمل الخوارزم.وسائط.شاشة؛
استعمل الخوارزم.تشكيلة.نصيات؛
استعمل الخوارزم.نظام.ذاكرة؛
(۩۩ الاصــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــل ۩۩)
الدالة الاصل () {
(۩ المتغيرات التي سنستعملها في الصفرة ۩)
المتغير بداية_النطاق، نهاية_النطاق، العدد_المخمن صحيح؛
المتغير المتغير_المؤقت صحيح؛ (۩ غير ضروري ۩)
المتغير جواب_المستخدم ۢحرف := تخصيص(5، حجم(حرف))؛ (۩ 5 هو الطول المثالي لأنه يسع الكلمتين "أصغر" و "أكبر"، ولكن من المستحسن تفادي هذا الأسلوب من البرمجة ۩)
تعطيل_التخزين()؛
(۩ غير ضروري ۩)
كرر {
(۩ نقرأ العددين ۩)
اكتب("ادخل بداية النطاق الذي فيه يوجد عددك: ")؛
اقرا(؏بداية_النطاق)؛
اكتب("ادخل نهاية النطاق الذي فيه يوجد عددك: ")؛
اقرا(؏نهاية_النطاق)؛
} مادام نهاية_النطاق - بداية_النطاق = 0؛
(۩ هذا غير ضروري، ولكن نقوم بتبديل قيمة المتغيرين اذا بداية_النطاق > نهاية_النطاق ۩)
اذا بداية_النطاق > نهاية_النطاق {
المتغير_المؤقت := نهاية_النطاق؛
نهاية_النطاق := بداية_النطاق؛
بداية_النطاق := المتغير_المؤقت؛
اكتب("كيف يكون بداية النطاق أكبر من نهايته؟ :( /س")؛
}
مادام ليس مطابق(جواب_المستخدم، "صحيح") {
العدد_المخمن := (نهاية_النطاق + بداية_النطاق) \ 2؛
اكتب("هل العدد: ")؛
اكتب(العدد_المخمن)؛
اكتب("؟/س")؛
اكتب("جوابك: ")؛
اقرا(؏جواب_المستخدم)؛
اذا مطابق(جواب_المستخدم، "أكبر") {
بداية_النطاق := العدد_المخمن + 1؛
} والا اذا مطابق(جواب_المستخدم، "أصغر") {
نهاية_النطاق := العدد_المخمن - 1؛
}
}
اكتب("نجحت!/س")؛
}
البرنامج في البيئة:
ادخل نهاية النطاق الذي فيه يوجد عددك: 100
هل العدد: 50؟
جوابك: أكبر
هل العدد: 50؟
جوابك: أصغر
هل العدد: 50؟
جوابك: ...
البرنامج في الطرفية:
ادخل بداية النطاق الذي فيه يوجد عددك: 1
ادخل نهاية النطاق الذي فيه يوجد عددك: 100
هل العدد: 50؟
جوابك: أكبر
هل العدد: 50؟
جوابك: أكبر
هل العدد: 75؟
جوابك: أكبر
هل العدد: 88؟
جوابك: أصغر
هل العدد: 81؟
جوابك: أصغر
هل العدد: 78؟
جوابك: أكبر
هل العدد: 79؟
جوابك: أكبر
هل العدد: 80؟
جوابك: صحيح
نجحت!
كما ترون، البرنامج يعمل كالمتوقع في الطرفية، وفي البيئة يخربط.