2013-02-25 2 views
0

Вот задание я должен сделать для школы:Вызов один метод в другой

  • Создать новый проект с именем AreaCircle
  • Скопировать метод расстояния из раздела 5.2
  • Скопируйте метод площадь для кругов из упражнение 4.2. Измените его, чтобы вернуть область, а не , чем печать.
  • Создайте другой метод области для кругов, который принимает две точки (четыре целочисленных параметра: x1, x2, y1, y2) и возвращает двойной. Убедитесь, что оба метода имеют одинаковое имя. Поскольку параметры будут отличаться, то тот, который выполняется, будет зависеть от переданных параметров . В этом новом методе области вызовите метод расстояния, чтобы получить радиус круга.
    Затем вызовите метод ДРУГИЕ (оригинальные) области, чтобы получить площадь круга.
  • Вам нужно будет сделать пару изменений, чтобы вы не потеряли ошибку компилятора.
  • В главном запросите пользователя четыре целых числа, которые представляют точку на внешней стороне окружности и центральную точку круга (они будут использоваться для определения длины радиуса). Вызовите метод соответствующей области. Отобразить результат.

Я не уверен, если мой код правильно, но, очевидно, есть что-то неправильно, потому что это не работает ...

public static void main(String[] args) { 
    Scanner reader; 
    reader = new Scanner (System.in); 
    System.out.println("Please enter the coordinates of a circle:"); 
    newLine(); 
    System.out.println("Outside point:"); 
    newLine(); 
    System.out.println("x1:"); 
    int x1 = reader.nextInt(); 
    newLine(); 
    System.out.println("y1:"); 
    int y1 = reader.nextInt(); 
    newLine(); 
    System.out.println("Center Point:"); 
    newLine(); 
    System.out.println("x2:"); 
    int x2 = reader.nextInt(); 
    newLine(); 
    System.out.println("y2:"); 
    int y2 = reader.nextInt(); 
} 

public static void area(double radius, int x1, int x2, int y1, int y2) 
{ 
    double areaCircle = (Math.PI * area(x1, x2, y1, y2) * area(x1, x2, y1, y2)); 
} 

public static double area(int x1, int x2, int y1, int y2) { 
    double radius = distance (x1, y1, x2, y2); 
    return radius; 
} 

public static double distance(int x1, int y1, int x2, int y2) 
{ 
    double dx = x2 - x1; 
    double dy = y2 - y1; 
    double dsquared = dx*dx + dy*dy; 
    double result = Math.sqrt (dsquared); 
    return result; 
} 

//NewLine Method 
public static void newLine() { 
    System.out.println (""); 
} 
+0

Измените 'area (x1, x2, y1, y2) * area (x1, x2, y1, y2)' на 'Math.pow (область (x1, x2, y1, y2), 2' так, t должен оценивать его дважды. Кроме того, функция области никогда не вызывается. Кроме того, ей, вероятно, нужно возвратить 'areaCircle'. Кроме того, нет необходимости в 2-х областях. – Dukeling

+0

Вы не можете быть серьезными ... пожалуйста, объясните, что «не работает». Ожидаемый результат против фактического? И эти инструкции вызывают потерю точности ошибки компилятора? Это ошибка времени выполнения, а не ошибка компилятора. – bcsb1001

+0

Слушайте, я спросил это 2 года назад, когда я был старший в средней школе, JUST узнает, как закодировать. Извините меня за недостаток знаний в этом вопросе. Рад, что вы считали необходимым поставить свои два цента. – user2105795

ответ

-1

Ваш main не почитал ни одного из других методов! , Заполните сначала код.

0

Как уже упоминалось ранее, ваш код никогда не вызывает ни один из методов расчета, что означает, что они никогда не запускаются, а область и т. Д. Никогда не вычисляется. Для отображения результата не существует никакого кода.

Кроме того, метод области даже не возвращает ничего, что означает, что он вычисляет значение и затем отбрасывает его.

Смежные вопросы