2014-11-08 4 views
1

Хорошо, я немного застрял в вопросе, который я нашел в Интернете. Мне нужно написать класс, который работает вне Вт как резистор идет вверх по одному т.е. резистор начинается в 1 и каждый цикл 1 ohm добавляется к нему: 1 ohm затем затем 3 ohm и т.д. и т.п.Найти наибольшее число, используя оператор if в цикле for java

Я сделал все это: всего 3 резистора, а 2 из них имеют предустановленные омы. Теперь мне нужно пройти через 9 раз.

У меня все расчеты, и я получаю вывод для него. Этот вопрос дает вам некоторую информацию и распечатку. Теперь мне нужно, чтобы моя распечатка выглядела одинаково.

У меня есть работающий цикл for, но теперь мне нужно использовать оператор if, чтобы найти самые высокие ватты и сказать, сколько резинов было у резистора, который имел общее количество.

Я не прошу прямого ответа на проблему, но больше точки в правильном направлении, если это вообще возможно.

Заранее благодарим любого, кто помог мне.

public class Question51 
{ 
    public static void main(String[] args) 
    { 
     double Vs = 12, V1, V2, V3, I1, I2, I3, R1 = 10, R2 = 15, R3 = 1, Rpar, PowerInR3;   

     for(R3 = 1; R3 <= 9; R3++) 
     { 
     Rpar = (R2 * R3)/(R2 + R3); 
     I1 = Vs/(R1 + Rpar); 
     V1 = I1 * R1; 
     V2 = Vs - V1; 
     I2 = V2/R2; 
     I3 = V2/R3; 
     PowerInR3 = V2 * I3; 

     System.out.println("When r3 = "+R3+" Ohms, Power in R3 = "+PowerInR3+" watts."); 
     }  
    } 
} 

ответ

1

Вы должны объявить max переменную и инициализировать его с некоторыми очень низким значением. Например, Double.MIN_VALUE.

Тогда в каждой итерации цикла вы можете обновить свой максимум, как это:

max = Math.max(max, valueYouWantToCompare); 

найти правильный синтаксис Java является вашей задачей в настоящее время :-) Удачи!

+0

Спасибо за помощь помощнику. Отправляйтесь в библиотеку java, чтобы посмотреть. За последние два дня это разрушало мою голову. – Killerspec

0

Вам нужно сделать следующее:

  • Предположим, максимальная мощность, как мин до минимального значения и создать еще одну переменную для хранения maxResistance.
  • В вашем цикле for, используйте, если для проверки того, что было последним значением maxPower, больше, чем мощность, генерируемая сопротивлением тока. Если это так, измените ваше предположение, что это может быть max и loop со следующим значением сопротивления.

    public class Question51 
    { 
        public static void main(String[] args) 
        { 
         double Vs = 12, V1, V2, V3, I1, I2, I3, R1 = 10, R2 = 15, R3 = 1, Rpar, PowerInR3; 
         double maxResister = 0, maxPower = Double.MIN_VALUE;  
    
         for(R3 = 1; R3 <= 9; R3++) 
         { 
          Rpar = (R2 * R3)/(R2 + R3); 
          I1 = Vs/(R1 + Rpar); 
          V1 = I1 * R1; 
          V2 = Vs - V1; 
          I2 = V2/R2; 
          I3 = V2/R3; 
          PowerInR3 = V2 * I3; 
    
          if (maxPower < PowerInR3) { 
           maxPower = PowerInR3; 
           maxResister = R3; 
          } 
    
          System.out.println("When r3 = "+R3+" Ohms, Power in R3 = "+PowerInR3+" watts."); 
         } 
         System.out.println("Max Power when Resistance is " + maxResister + " ohms is " + maxPower + " watts"); 
        } 
    } 
    
+1

'' Я не прошу прямого ответа на проблему ". – Jonas

+0

Спасибо за помощь помощник, но я на самом деле не прочитал ее. Если я действительно не смогу выработать решение на следующий день или около того, я буду следить за тем, чтобы я ссылался на него и выяснял, где я ошибаюсь. Еще раз спасибо. – Killerspec

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