في هذا المقال، سنقدم 10 تمارين محلولة باستخدام لغة دارت (Dart). لغة برمجة حديثة تم تطويرها بواسطة جوجل. تهدف هذه التمارين إلى مساعدة المطورين المبتدئين في فهم وتعلم لغة دارت بشكل أفضل. سنقدم حلولًا مفصلة لكل تمرين، مع شرح الخطوات والمفاهيم المستخدمة. تغطي التمارين مواضيع متنوعة مثل المتغيرات والدوال والتعامل مع القوائم والمصفوفات وغيرها. يهدف هذا المقال إلى أن يكون مرجعًا قيمًا للمطورين الجدد الذين يرغبون في استكشاف قدرات لغة دارت في عام 2024.
تمرين رقم 1:
قم بكتابة برنامج بلغة دارت لحساب مجموع الأعداد الزوجية في القائمة.
الحل:
void main() { List<int> numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; int sum = 0; for (int number in numbers) { if (number % 2 == 0) { sum += number; } } print('مجموع الأعداد الزوجية: $sum'); }
النتيجة:
مجموع الأعداد الزوجية: 30
“اقرأ أيضاً: تمارين محلولة على لغة دارت الجزء الثاني“
تمرين رقم 2:
قم بكتابة برنامج بلغة دارت لتحويل الوقت المعطى من الساعات والدقائق إلى عدد من الثواني.
الحل:
void main() { int hours = 2; int minutes = 30; int totalSeconds = (hours * 60 * 60) + (minutes * 60); print('الوقت بالثواني: $totalSeconds'); }
النتيجة:
الوقت بالثواني: 9000
“اقرأ أيضاً: شرح حلقة التكرار For في لغة دارت (For Loop In Dart)“
تمرين رقم 3:
قم بكتابة برنامج بلغة دارت لتحويل القيمة من النطاق الأصلي إلى النطاق المستهدف.
الحل:
void main() { double value = 25; double originalMin = 0; double originalMax = 100; double targetMin = 0; double targetMax = 10; double targetValue = ((value - originalMin) / (originalMax - originalMin)) * (targetMax - targetMin) + targetMin; print('القيمة المحولة: $targetValue'); }
النتيجة:
القيمة المحولة: 2.5
تمرين رقم 4:
قم بكتابة برنامج بلغة دارت لتحويل السلسلة النصية إلى تاريخ.
الحل:
void main() { String dateString = "2022-05-10"; DateTime date = DateTime.parse(dateString); print('التاريخ: $date'); }
النتيجة:
التاريخ: 2022-05-10 00:00:00.000
“اقرأ أيضاً: شرح مفهوم الـ Getter في لغة دارت (Getter in Dart)“
تمرين رقم 5:
قم بكتابة برنامج بلغة دارت لتصنيف الأعداد في القائمة إلى أعداد موجبة وسالبة وصفر.
الحل:
void main() { List<int> numbers = [10, -5, 0, 15, -20, 25]; List<int> positiveNumbers = []; List<int> negativeNumbers = []; List<int> zeros = []; for (int number in numbers) { if (number > 0) { positiveNumbers.add(number); } else if (number < 0) { negativeNumbers.add(number); } else { zeros.add(number); } } print('الأعداد الموجبة: $positiveNumbers'); print('الأعداد السالبة: $negativeNumbers'); print('الأعداد صفر: $zeros'); }
النتيجة:
الأعداد الموجبة: [10, 15, 25] الأعداد السالبة: [-5, -20] الأعداد صفر: [0]
تمرين رقم 6:
قم بكتابة برنامج بلغة دارت لتوليد تسلسل فيبوناتشي للعدد المطلوب.
الحل:
void main() { int firstNumber = 0; int secondNumber = 1; int count = 10; List<int> fibonacciSequence = [firstNumber, secondNumber]; for (int i = 2; i < count; i++) { int nextNumber = fibonacciSequence[i - 1] + fibonacciSequence[i - 2]; fibonacciSequence.add(nextNumber); } print('تسلسل فيبوناتشي: $fibonacciSequence'); }
النتيجة:
تسلسل فيبوناتشي: [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
“اقرأ أيضاً: شرح مفهوم التشعبية في لغة دارت (Polymorphism in Dart)“
تمرين رقم 7:
قم بكتابة برنامج بلغة دارت لحساب مجموع الأرقام باستخدام التكرار العكسي.
الحل:
void main() { int number = 12345; int sum = 0; while (number > 0) { int digit = number % 10; sum += digit; number ~/= 10; } print('مجموع الأرقام: $sum'); }
النتيجة:
مجموع الأرقام: 15
تمرين رقم 8:
قم بكتابة برنامج بلغة دارت لحساب الأعداد الأولية (الأعداد التي لا يمكن قسمها على أي عدد سوى 1 ونفسها).
الحل:
bool isPrime(int number) { if (number <= 1) { return false; } for (int i = 2; i <= number / 2; i++) { if (number % i == 0) { return false; } } return true; } void main() { for (int i = 1; i <= 20; i++) { if (isPrime(i)) { print('$i is prime'); } } }
النتيجة:
2 is prime 3 is prime 5 is prime 7 is prime 11 is prime 13 is prime 17 is prime 19 is prime
“اقرأ أيضاً: شرح استخدام ويدجت Dismissible في فلاتر“
تمرين رقم 9:
قم بكتابة برنامج بلغة دارت للعثور على أكبر قيمة وأصغر قيمة في القائمة المعطاة.
الحل:
void main() { List<int> numbers = [15, 7, 20, 10, 5]; int max = numbers[0]; int min = numbers[0]; for (int i = 1; i < numbers.length; i++) { if (numbers[i] > max) { max = numbers[i]; } if (numbers[i] < min) { min = numbers[i]; } } print('أكبر قيمة: $max'); print('أصغر قيمة: $min'); }
النتيجة:
أكبر قيمة: 20 أصغر قيمة: 5
تمرين رقم 10:
قم بكتابة برنامج بلغة دارت للعثور على العنصر المكرر في القائمة المعطاة.
الحل:
void main() { List<int> numbers = [5, 2, 8, 2, 6, 8, 9]; List<int> duplicates = []; for (int i = 0; i < numbers.length; i++) { for (int j = i + 1; j < numbers.length; j++) { if (numbers[i] == numbers[j] && !duplicates.contains(numbers[i])) { duplicates.add(numbers[i]); } } } print('العناصر المكررة: $duplicates'); }
النتيجة:
العناصر المكررة: [2, 8]
“اقرأ أيضاً: أفضل Dart client لمشروعك: HTTP، DIO، GraphQL“
في نهاية هذا المقال، قدمنا 10 تمارين محلولة باستخدام لغة دارت (Dart)، مع توفير حلول مفصلة وشرح للمفاهيم المستخدمة في كل تمرين. هذه التمارين تساعدك على تعزيز مهاراتك في لغة دارت وزيادة فهمك لها، مما يمكنك من بناء تطبيقات قوية وموثوقة. ننصحك بمواصلة التعلم والتطوير في لغة دارت من خلال المزيد من التمارين والمشاريع العملية. استمتع برحلتك في عالم تطوير البرمجيات باستخدام لغة دارت في عام 2024 وما بعده.