Трудно ли печатать значения в формуле?

Я работаю над заданием для класса, и одна из вещей, о которых идет речь в тексте этой недели, - это жесткое программирование и то, как его осуждают.

Мой вопрос: если я физически ввожу значение, которое является частью формулы, это считается жестким кодом?

пример: объем сферы (4/3) * PI * r^3 я должен объявить (4/3) как переменную в начале моего кода блока? или я должен сделать еще один шаг и объявить всю формулу?

Я надеюсь, что то, что я спрашиваю, имеет смысл для всех, и для небольшой дополнительной информации вот мой код:

  package area_volume_surfacearea;

/**
 * Area_Volume_SurfaceArea (Assignment number 9)
 * For CSCI 111
 * last modified sept 15 12 p.m.
 * @author Jeffrey Quinn
 */
        //import Scanner class
import java.util.Scanner;

public class Area_Volume_SurfaceArea 
{

    /**
     * This method finds the Area, Volume and Surface Area of geometric shapes 
     based off a value that the user inputs (in inches)
     */


    public static void main(String[] args) 
    {
        double distance; //the distance the users inputs to be used in the formulas (raidus or side)
        double areaCircle; //the area of the circle
        double areaSquare; //the area of the square
        double volumeSphere; //the volume of the sphere
        double volumeCube; //the volume of the cube
        double surfaceAreaSphere; // the surface area of the sphere
        double surfaceAreaCube; //the surface area of the cube

        //declare an instance of Scanner class to read the datastream from the keyboard
        Scanner keyboard = new Scanner(System.in);

        //get the value of the radius of the circle (in inches)
        System.out.println("Please enter a distance (in inches) to be used:");
        distance = keyboard.nextDouble();

        //calculate area of a circle (in inches)
        areaCircle = Math.PI * Math.pow(distance,2);

        //calculate area of a square (in inches)
        areaSquare = Math.pow(distance,2);

        //calculate volume of a sphere (in inches)
        volumeSphere = (4/3) * Math.PI * Math.pow(distance,3);

        //calculate volume of a cube (in inches)
        volumeCube = Math.pow(distance,3);

        // calulate surface area of a sphere (in inches)
        surfaceAreaSphere = 4 * Math.PI * Math.pow(distance,2);

        //calculate surface area of a cube (in inches)
        surfaceAreaCube = 6 * Math.pow(distance,2);

        //results
        System.out.println(" The area of a circle with the radius of " + distance + "in, is " + areaCircle);
        System.out.println(" The area of a square whos sides measures " + distance+ "in, is " + areaSquare);
        System.out.println(" The volume of a sphere with the radius of " + distance + "in, is " + volumeSphere);
        System.out.println(" The volume of a cube whos sides measures " + distance + "in, is " + volumeCube);
        System.out.println(" The surface area of a sphere with the radius of " + distance + "in, is " + surfaceAreaSphere);
        System.out.println(" The surface area of a cube whos sides measures " + distance + "in, is " + surfaceAreaCube); 
    } //end main()

}// end class Area_Volume_SurfaceArea

2 ответа

Решение

Это формулы, которые никогда не изменятся. Нет абсолютно никаких проблем, чтобы жестко программировать такие алгоритмы. Добавление необязательных переменных просто сделает ваш код более сложным, не давая никаких преимуществ. Тем не менее, DRY-код так же важен, что, если вы обнаружите, что во многих местах вы пишете это соотношение многократно, то хорошей идеей будет сохранить его в переменной. Например, если бы мне пришлось использовать число 666 во многих местах моего кода, даже если это число никогда не изменится, я бы сказал, что лучше определить его как константу, так как он менее подвержен ошибкам.

final int NUMBER_OF_THE_BEAST = 666;

В духе самодокументированного кода вы можете создать переменную:

double SPHERE_VOLUME_RATIO = 4.0d/3.0d;

Кстати, применяя ваши исследования, ваш код очень легко читается.

Другие вопросы по тегам