ملخص - القسمة الآمنة
جزء من قسم Logic & Flow في رحلة Dart على Coddy — الدرس 43 من 65.
التحدي
سهلأنشئ برنامجًا ينفذ آلة حاسبة للقسمة الآمنة باستخدام معالجة الاستثناءات. يجب أن يتعامل برنامجك مع أخطاء القسمة على صفر بسلاسة ويوفر ملاحظات واضحة للمستخدمين عند حدوث أخطاء.
- اقرأ مدخلاً نصياً يمثل الرقم الأول (المقسوم)
- اقرأ مدخلاً نصياً يمثل الرقم الثاني (المقسوم عليه)
- أنشئ دالة تسمى
safeDivisionتأخذ معاملين من نوع double وترجع نتيجة من نوع double - يجب أن تستخدم الدالة كتلة
try-catchلمعالجة أخطاء القسمة المحتملة: - في كتلة
try: تحقق مما إذا كان المقسوم عليه صفراً وقم برمي استثناء بالرسالة"Division by zero is not allowed"إذا كان ذلك صحيحاً، وإلا فقم بإجراء عملية القسمة - في كتلة
catch: قم بمعالجة الاستثناء وأرجع0.0كقيمة افتراضية آمنة - قم بتحويل النصوص المدخلة إلى قيم double باستخدام
double.parse() - استدعِ الدالة
safeDivisionبالقيم المحولة - اعرض النتائج بالتنسيق الدقيق الموضح أدناه
على سبيل المثال، إذا كانت المدخلات "10.0" و "2.0"، يجب أن يخرج برنامجك:
Safe Division Calculator
========================
First number: 10.0
Second number: 2.0
Performing division...
Result: 5.0
Operation completed successfullyإذا كانت المدخلات "15.0" و "0.0"، يجب أن يخرج برنامجك:
Safe Division Calculator
========================
First number: 15.0
Second number: 0.0
Performing division...
Error: Division by zero is not allowed
Using safe default value: 0.0
Operation completed with error handlingإذا كانت المدخلات "7.5" و "2.5"، يجب أن يخرج برنامجك:
Safe Division Calculator
========================
First number: 7.5
Second number: 2.5
Performing division...
Result: 3.0
Operation completed successfullyيجب أن ينفذ برنامجك الدالة safeDivision التي تستخدم كتلة try-catch لمعالجة القسمة على صفر. في كتلة try، تحقق مما إذا كان المقسوم عليه يساوي 0.0 واستخدم الكلمة المفتاحية throw لإطلاق استثناء يدوياً إذا كان ذلك صحيحاً. في كتلة catch، اطبع رسالة الخطأ وأرجع 0.0 كقيمة احتياطية آمنة. يجب أن يستدعي البرنامج الرئيسي هذه الدالة ويعرض رسائل إكمال مختلفة بناءً على ما إذا كان قد حدث خطأ أم لا.
جرّب بنفسك
import 'dart:io';
// TODO: قم بإنشاء دالة safeDivision هنا
void main() {
// قراءة المدخلات
String? firstInput = stdin.readLineSync();
String? secondInput = stdin.readLineSync();
// تحويل النصوص إلى أرقام عشرية (double)
double firstNumber = double.parse(firstInput!);
double secondNumber = double.parse(secondInput!);
// عرض الترويسة
print("Safe Division Calculator");
print("========================");
print("First number: $firstNumber");
print("Second number: $secondNumber");
print("Performing division...");
// TODO: قم باستدعاء دالة safeDivision والتعامل مع النتيجة
// تذكر التحقق مما إذا كان هناك خطأ قد حدث لعرض رسالة الإكمال المناسبة
}جميع دروس Logic & Flow
1التعامل المتقدم مع القوائم
خصائص القائمة: first و lastحالة القائمة: isEmpty و isNotEmptyعكس القائمةالإضافة إلى القائمة: insertالحذف من القائمة: removeWhereالبحث في القائمة: indexOfفرز القائمةخلط القائمةملخص - منظم القوائم4معالجة الـ Map المتقدمة
التكرار عبر الـ Mapالتحقق من المفاتيح والقيمخصائص الـ Map: keys و valuesإضافة مشروطة: putIfAbsentإزالة العناصر من الـ Mapالـ Maps المتداخلةمراجعة - تحديث المخزون2عمليات القوائم الوظيفية
التحويل باستخدام 'map'التصفية باستخدام 'where'استخدام '.toList()'التحقق من الشروط باستخدام 'any'الشروط باستخدام 'every'البحث باستخدام 'firstWhere'مراجعة - تصفية البيانات5مشروع: حاسبة عربة التسوق
إعداد المشروعإضافة العناصر إلى العربة3المجموعات
ما هي المجموعة؟إنشاء مجموعةالإضافة والحذف من المجموعاتالتحقق من وجود عناصر في المجموعةتحويل قائمة إلى مجموعةاتحاد المجموعاتتقاطع المجموعاتالفرق بين المجموعاتمراجعة - قائمة ضيوف فريدة6أساسيات معالجة الأخطاء
ما هي الاستثناءات؟كتلة 'try-catch'التقاط الاستثناءات باستخدام 'on'كتلة 'finally'رمي استثناءملخص - القسمة الآمنة