ahmed.o.mohamed

اختبر قدراتك في C/CPP - الحلقة الرابعة, الجزء السادس عشر

4 ردود في هذا الموضوع

السلام عليكم

الحلقة الأولى.

الحلقة الثانية - الجزء الأول.

الحلقة الثانية - الجزء الثاني.

الحلقة الثانية - الجزء الثالث.

الحلقة الثانية - الجزء الرابع.

الحلقة الثانية - الجزء الخامس.

الحلقة الثانية - الجزء السادس و الأخير.

الحلقة الثالثة - الجزء الأول.

الحلقة الثالثة - الجزء الثاني.

الحلقة الثالثة - الجزء الثالث.

الحلقة الثالثة - الجزء الرابع.

الحلقة الثالثة - الجزء الخامس و الأخير.

الحلقة الرابعة - الجزء الأول.

الحلقة الرابعة - الجزء الثاني.

الحلقة الرابعة - الجزء الثالث.

الحلقة الرابعة - الجزء الرابع.

الحلقة الرابعة - الجزء الخامس.

الحلقة الرابعة - الجزء السادس.

الحلقة الرابعة - الجزء السابع.

الحلقة الرابعة - الجزء الثامن.

الحلقة الرابعة - الجزء التاسع.

الحلقة الرابعة - الجزء العاشر.

الحلقة الرابعة - الجزء الحادي عشر.

الحلقة الرابعة - الجزء الثاني عشر.

الحلقة الرابعة - الجزء الثالث عشر.

الحلقة الرابعة - الجزء الرابع عشر.

الحلقة الرابعة - الجزء الخامس عشر.

مرحبا بكم إخوتي الكرام في الجزء السادس عشر من الحلقة الرابعة من سلسلة اختبر قدراتك, قمتُ بتقسيم الحلقة الرابعة إلى عدة أجزاء, مُرتبة حسب الصعوبة.

أجزاء هذه الحلقة ستكون خاصة بمسائل الــ OOP.

الإختبار الرابع (الجزء السادس عشر) :

ما هي مُخرجات الكود التالي :

#include <stdlib.h> // pour exit
#include <iostream>
using namespace std;

int main() {
int n;
float x;
double z;
cout << "donnez un entier : ";
cin >> n;

try {
switch (n) {
case 1: throw n;
break;
case 2: x = n;
throw x;
break;
case 3: z = n;
throw z;
break;
}
} catch (int n) {
cout << "catch entier - n = " << n << "" << endl;
} catch (float x) {
cout << "catch flottant - x = " << x << "" << endl;
exit(-1);
}

cout << "suite et fin du programme" << endl;

return 0;
}

عندما تأخذ n القيم :

  • 1
  • 2
  • 3
  • 4

سأضع حل السؤال بعد إنتهاء عرض المحاولات.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

1

catch entier - n = 1
suite et fin du programme

2

catch flottant - x = 2

3

un-handled exception // ربما  :wacko: 

4

suite et fin du programme

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

المُخرجات :

a.

donnez un entier : 1

catch entier - n = 1

suite et fin du programme

تم إطلاق الإستثناء المُصاحب لــ int و بالتالي سيتنقل التنفيذ إلى الــ catch التابع لـ int و هذا هو السبب في ظهور الجملة الثانية أما الجملة الثالثة فهي خارجة عن مجال try و بالتالي يتم تنفيذها بغض النظر عن الإستثناء المُولَد.

b.

donnez un entier : 2

catch flottant - x = 2

تم إطلاق الإستثناء المُصاحب لــ float و بالتالي سيتنقل التنفيذ إلى الــ catch التابع لـ float و هذا هو السبب في ظهور الجملة الثانية أما الجملة الموجودة في آخر الكود فلم تظهر لأنه تم الخروج من البرنامج باستخدام الدالة exit.

c.

donnez un entier : 3

abnormal program termination /* ou quelque chose de semblable */

تم إطلاق الإستثناء المُصاحب لــ double و بالتالي سيتنقل التنفيذ إلى الــ catch التابع لـ double و نظراُ لعدم وجود هذا الأخير فسيتم استدعاء الدالة terminate التي تستدعي بدورها (بشكل افتراضي) الدالة abort, التي تقوم بإنهاء البرنامج مُظهرة الخطأ المسبب في توقف عمل البرنامج.

d.

donnez un entier : 4

suite et fin du programme

في هذه الحالة لم يحدث أي استثناء و بالتالي سينتقل التنفيذ إلى ما بعد الــ catch الأخيرة ليتم إظهار الجملة :

suite et fin du programme

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

تم منح النقاط للمشاركات المفيدة.

يُغلق.

أراكم في الجزء السابع عشر من الحلقة الرابعة.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .