2017-01-31 3 views
0

У меня возникла небольшая проблема с форматированием возвращаемых методов в основном методе. Я создал методы и выполнил расчет, но моя проблема заключается в том, что я правильно использую два других метода для основного метода. У меня также есть и проблема с форматированием каждого метода в столбцах. Нужно ли делать столбцы в уважаемых методах? или мне нужно создать их в основном методе?Вызов других методов в java

Напишите программу, которая анализирует падение объекта на 10 секунд. Он должен содержать основные и два дополнительных метода. Один из дополнительных методов должен вернуть расстояние, на которое объект падает в метрах, когда в качестве аргумента передается текущая секунда. См. Формулу, необходимую ниже. Третий метод должен преобразовывать метры в футы. Вы можете найти нужный вам переводной коэффициент. Основной метод должен использовать один цикл для вызова других методов и создания таблицы, как показано ниже. Таблица должна отображаться в отформатированных столбцах с десятичными знаками, как показано. Я считаю, что я нахожусь на

SEC METERS  FEET 
1   4.9  16.1 
2  19.6  64.3 
3  44.1  144.7 
4  78.4  257.2 
5  122.5  401.9 
6  176.4  578.7 
7  240.1  787.7 
8  313.6 1028.9 
9  396.9 1302.2 
10  490.0 1607.6 

Мой код

package week4.yedkois; 

public class project3 { 

    public static void main(String[] args) { 
     System.out.printf("SEC" + "\n"); 

     meters(); 
     feet(); 

     for (int time = 1; time <= 10; time++) { 
      System.out.println(time); 

     } 

    } 

    public static void meters() { 

     double Meters; 
     double G = 9.8; // meters = .5(9.8)(seconds) ^2 
     for (int time = 1; time <= 10; time++) { 
      Meters = (.5 * 9.8 * Math.pow(time, 2)); 
      System.out.printf("%.1f\n", Meters); 
     } 

     return; 

    } 

    public static void feet() { 

     double Feet; 
     double G = 9.8; // meters = .5(9.8)(seconds) ^2 
     for (int time = 1; time <= 10; time++) { 
      Feet = (.5 * 9.8 * Math.pow(time, 2) * 3.28084); 
      System.out.printf("%.1f\n", Feet); 
     } 
     return; 

    } 

} 
+0

Вы не объяснили проблему. – shmosel

+0

«возвращение»; в ваших методах является избыточным. –

+0

Извините, я стараюсь объяснить. –

ответ

1

Вот мое решение. Я использую Tab ("\ t") для достижения одинакового пространства между разными значениями. А потом мне пришлось немного перепроектировать ваш код. Я использую только один if-loop непосредственно в основном методе и передаю текущее значение времени в качестве параметра в оба метода meter() и feet(). Это значительно облегчает получение всех значений одного раунда в очереди.

Вот некоторые дополнительные замечания:

  • Java не является C++, так что вам не придется использовать пустой оператор возврата в конце метода. Это бесполезно.
  • В переменных Java и именах методов всегда начинаются с небольшой буквы _ или $. Только имена классов и константы начинаются с заглавной буквы.

Надеюсь, что это поможет начать.

public class Project3 { 

    public static void main(String[] args){ 
     System.out.printf("%3s\t%6s\t%6s\n", "SEC", "METERS", "FEET"); 

     for(int time = 1; time <= 10; time++) 
     { 
      System.out.print(time + "\t"); 
      meters(time); 
      feet(time); 
      System.out.println(); 
     } 
    } 

    public static void meters(int time){ 
     double meters; 
     double g = 9.8; // meters = .5(9.8)(seconds) ^2 

     meters = (.5 * 9.8 * Math.pow(time, 2)); 
     // the longer the expected maximum length of a result gets 
     // the higher your reserved number of digits has 
     // to be, to gain the wanted right bound effect! 
     System.out.printf("%6.1f\t", meters); 
    } 

    public static void feet(int time){ 
     double feet; 
     double g = 9.8; // meters = .5(9.8)(seconds) ^2 
     feet = (.5 * 9.8 * Math.pow(time, 2) * 3.28084); 
     // the longer the expected maximum length of a result gets 
     // the higher your reserved number of digits has 
     // to be, to gain the wanted right bound effect! 
     System.out.printf("%6.1f", feet); 
    }  
} 
+0

входить хорошо работа –

+0

спасибо! @YCF_L – DiabolicWords