Глава 6
Задача 6.7 "Средняя величина напряжения."
Для определения среднего напряжения в электросети показания вольтметра фиксируются каждый час в течение 72 часов. На основе этих данных и вычисляется искомая величина. Напишите программу, в которой предусмотрен ввод 72 показаний вольтметра, и определите
- среднее напряжение в сети
- часы, когда отклонение вольтажа от среднего значения превысило 10%
- любые смежные часы, когда разница между показаниями вольтметра превысила 15% от средней величины напряжения
Программа должна выводить на экран график вольтажа за 72 часа. Используйте для этого класс Graph.
Решение 1
Эту задачу можно решить создавая и обрабатывая обычные массивы.
Программа должна выводить на экран график вольтажа за 72 часа. Используйте для этого класс Graph.
Для создания массива и инициализации его случайными значениями воспользуемся функцией randOut, которую будем вызывать в цикле для каждого элемента массива.
//создадим массив со значениями
int m = 72;
int scoreFreqs [] = new int [m];
for (int i=0; i < m; i++)
scoreFreqs[i] = randOut(195,240);
Затем воспользуемся классом Graph для вывода значений массива в виде графика.
Код программы:
import java.io.*;
import java.util.*;
import javagently.Stream;
import java.text.*;
import javagently.*;
import myutilities.*;
class TestVoltage{
int randOut(int minNum, int maxNum) {
int temp = 0;
while( temp < minNum ){
temp = (int) (Math.random() * maxNum);
}
return temp;
}
TestVoltage(){
Graph g = new Graph("Voltage", "hour", "volt");
g.setTitle("Voltage");
g.setColor(g.blue);
g.setSymbol(true);
//создадим массив со значениями
int m = 72;
int scoreFreqs [] = new int [m];
for (int i=0; i < m; i++)
scoreFreqs[i] = randOut(195,240);
for (int i=0; i < m; i++)
System.out.println("scoreFreqs" + i + " " +scoreFreqs[i]);
for (int i = 0; i < m; i++) {
g.add(i,scoreFreqs[i]);
}
g.showGraph();
} // end constructor
public static void main (String [ ] args) {
new TestVoltage ();
}
}
Результат :
scoreFreqs0 200
scoreFreqs1 226
scoreFreqs2 199
scoreFreqs3 204
scoreFreqs4 197
scoreFreqs5 211
...
scoreFreqs67 219
scoreFreqs68 202
scoreFreqs69 216
scoreFreqs70 205
scoreFreqs71 195
Назад |
Начало урока |
Вверх |
Вперед
Содержание