البرمجة

حساب مساحة ومحيط المثلث باستخدام جافا

في البرنامج المقدم، يتم استخدام تقنيات الإدخال/الإخراج في جافا لحساب وعرض مساحة ومحيط مثلث متساوي الأضلاع. ومع ذلك، يتم تسجيل تحذيرين بعد ترجمة البرنامج، يُشير الأول إلى استخدام أو تجاوز واجهة برمجة تطبيق قديمة (deprecated API)، والثاني يشير إلى ضرورة إعادة الترجمة باستخدام خاصية -Xlint:deprecation للحصول على تفاصيل أكثر حول التحذير.

لفهم الأخطاء وتصحيحها، يجب فحص البرنامج بعناية. فيما يلي تفسير للأخطاء وكيفية تصحيحها:

  1. Deprecated API:
    يتم استخدام واجهة برمجة تطبيق قديمة (deprecated API)، وهي خاصية قديمة أصبحت غير مستخدمة أو غير مفضلة. في هذه الحالة، يُشير التحذير إلى أن هناك استخدامًا لواجهة برمجة تطبيق قديمة في البرنامج. قد يكون هذا بسبب الفئة DataInputStream التي يتم استخدامها للإدخال. يُفضل استخدام فئات أحدث مثل Scanner للقراءة من وحدة الإدخال.

  2. حساب مساحة ومحيط المثلث:
    في الدالة area()، يتم حساب مساحة المثلث باستخدام الصيغة الخاطئة. لحساب مساحة مثلث، يُفضل استخدام الصيغة الصحيحة والتي تعتمد على طول الضلع والارتفاع. الصيغة الصحيحة هي: area = (base * height) / 2. يجب تعديل دالة area() بموجب هذه الصيغة.

  3. تكرار اسم الدالة:
    يوجد تضارب في استخدام اسم الدالة area حيث يتم استخدامها كدالة وكمتغير أيضًا. لتجنب الالتباس، يُفضل تغيير اسم إحدى الدوال.

بعد إجراء هذه التعديلات، يمكن إعادة ترجمة البرنامج للتحقق من عدم وجود تحذيرات. يُفضل أيضًا دمج التحسينات في البرنامج لضمان كتابة الكود بطريقة صحيحة وفعّالة.

المزيد من المعلومات

باستخدام الواجهة DataInputStream للإدخال، يمكن أن يكون هناك تأثير سلبي على الأداء والكفاءة. الفئة DataInputStream تقوم بتحويل البيانات إلى أنواع محددة، ولكنها قديمة وغير فعّالة. يُفضل استخدام الفئة Scanner بدلاً من ذلك، حيث توفر واجهة أكثر تعددية للإدخال.

علاوة على ذلك، يمكن تحسين هيكل البرنامج بتقسيمه إلى فئات مختلفة، مثل فئة للقراءة والإدخال، وفئة لحسابات المثلث. هذا يساعد في تنظيم الكود وجعله أكثر قابلية للصيانة والفهم.

إليك نسخة معدلة من البرنامج بناءً على التوجيهات السابقة:

java
import java.util.Scanner; class Triangle { double side, height, area, perimeter; void get() { Scanner scanner = new Scanner(System.in); System.out.println("Enter value of side of an equilateral triangle"); side = scanner.nextDouble(); System.out.println("Enter height"); height = scanner.nextDouble(); } void calculateArea() { area = (side * height) / 2; } void calculatePerimeter() { perimeter = 3 * side; } void display() { System.out.println("Area=" + area); System.out.println("Perimeter=" + perimeter); } public static void main(String[] args) { Triangle triangle = new Triangle(); triangle.get(); triangle.calculateArea(); triangle.calculatePerimeter(); triangle.display(); } }

تم استخدام Scanner بدلاً من DataInputStream، وتم تغيير اسم الدالة area() لتحسين وضوح الشيفرة. هذه التحسينات تجعل البرنامج أكثر قراءة وصيانة، وتستخدم ميزات أحدث من لغة البرمجة جافا.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر