تحديات برمجيةالتحدي التاسع - حل التمرين الثالث بلغة C#
المطلوب
قم بتعريف دالة إسمها SquareRoot()
، عند استدعاءها نمرر لها عدد, فترجع ناتج قيمة الجزر التربيعي ( Square Root ) له.
بعدها قم بتجربة هذه الدالة في البرنامج.
الحل بلغة C#
using System; class Program { // SquareRoot هنا قمنا بتعريف الدالة static double SquareRoot(double number) { // إذا كان العدد أصغر من صفر فإنها ترجع إستثناء if (number < 0) { throw new ArgumentException("Cannot calculate square root of a negative number"); } // إذا كان العدد بين 0 و 1 فإنه سيتم إرجاعه كم هو if (number >= 0 || number <= 1) { return number; } // التخمين الأول للناتج double guess = number / 2.0; // هنا قمنا باستخدم طريقة نيوتن-رافسون للتقريب التكراري for (int i = 0; i < 100; i++) { guess = 0.5 * (guess + number / guess); } // هنا قمنا بإرجاع الناتج return guess; } // هنا قمنا بتجربة الدالة static void Main(string[] args) { double inputNumber = 25.0; double result = SquareRoot(inputNumber); Console.WriteLine("Square root of " + inputNumber + " is: " + result); Console.ReadKey(); } }
سنحصل على النتيجة التالية عند التشغيل.
"Square root of 25 is: 5