Вычисление математических формул



 

Вычисление математических формул рассмотрим на простом примере – вычислении корней квадратного уравнения.

Напомним, что уравнение вида  называется квадратным при a отличном от нуля. Способ получения корней этого уравнения, известный большинству российских выпускников школ, выглядит так:

Сначала вычисляется дискриминант .

Затем, если дискриминант не отрицательный, то вычисляются 2 корня:

,

.

Объявим необходимые переменные для хранения аргументов и результатов вычислений.

 

double a, b, c;

double D;

double x1, x2;

 

Ввод коэффициентов a, b, c мы разберем позже.

Код, вычисляющий дискриминант и сами корни, представлен ниже:

 

D = b * b – 4 * a * c;

 

x1 = (–b – Math.sqrt(D)) / (2 * a);

x2 = (–b + Math.sqrt(D)) / (2 * a);

 

Ввод строк через консоль

 

Чтобы в программе получить строку, введенную с консоли, требуется работать с System.in. Существует несколько способов работы с System.in. Сейчас мы разберем только один способ работы – через буферизированный читательBufferedReader:

 

//Создаем объект br для чтения данных из консоли

BufferedReader br = new BufferedReader(new

InputStreamReader(System.in));

//Читаем из консоли строку 1

Strings1 = br.readLine();

//Читаем из консоли строку 2

Strings2 = br.readLine();

//Читаем из консоли строку 3

Strings3 = br.readLine();

 

Конвертация строк в число (parseXxx()) и обратно (toString())

 

Через консоль вводится текстовая информация– набор символов. Например,когда мы хотим ввести число 125, нам нужно ввести текст, состоящий из 3 последовательных символов «1», «2», «5». А чтобы из 3 символов собрать одно число, нужно применить конвертацию. В случае конвертации из текста в числа в Javaприменяют методы семейства parse. Например, вот так ранее введенные строки s1, s2, s3 превратятся в вещественные числа:

 

// конвертируем введенные строки в вещественные числа

a = Double.parseDouble(s1);

b = Double.parseDouble(s2);

c = Double.parseDouble(s3);

 

Для получения из строки вещественного числа используется метод Double.parseDouble(строка).

Для получения из строки целого числа используется метод

Integer.parseInt(строка).

Аналогичные методы parseXxxx() существуют для других стандартных типов.

 

 

Когда требуется обратная конвертация – из чисел в строку, – чаще всего используют неявный вызов метода toString(), который вызывается всякий раз, когда требуется привести какой-либо тип к строке. Например, как здесь:

 

// вывод значений корней

System.out.println("x1=" + x1);

System.out.println("x2=" + x2);

 

Рассмотрим подробно код внутриprintln("x1=" + x1)

По сути, выражение ("x1=" + x1)содержит операцию конкатенации (склеивания) двух строк “x1=” и той, которая получится из x1.

Поскольку x1 имеет тип double, то чтобы получить из него строку, к нему неявно применяется конвертация. Выглядит на самом деле это так:

“x1=" + Double.toString(x1));

 

Заметим, что метод toString() есть у каждого класса и типа Java, и поэтому любую переменную любого типа всегда можно автоматически конвертировать в строку.Но можно это сделать и вручную, как показано в примере ниже. Здесь вводятся целые числа N и M, вычисляется их произведение и выводится на экран. Например, при вводеN=2, M=5 будет выведена строка «P = 10»:

 

// main() – точка входа в программу

// throwsIOException– сообщаем, что метод main()

// можетвыбрасыватьисключенияввода/вывода

publicstaticvoidmain(String[] args) throwsIOException {

// Объявили переменные nи m

intn, m;

 

//Создаем объект br для чтения данных из консоли

BufferedReader br = new BufferedReader(new

          InputStreamReader(System.in));

 

//Читаем из консоли N

// выводим приглашение к вводу N

System.out.print("Введите n: ");

//Читаем из консоли строку

StringsN = br.readLine();

//конвертируем строку в число

n = Integer.parseInt(sN);

    

//Читаем из консоли M

// выводим приглашение к вводу M

System.out.print("Введитеm: ");

//Читаем из консоли строку

StringsM = br.readLine();

//конвертируем строку в число

m = Integer.parseInt(sM);

    

//Вычисляем произведение

intp = n * m;

 

//Готовим строку из числа p и выводим результат

// Конвертируем целое число pв строку sP

String sP = Integer.toString(p);  

// ВыводимстрокуsP вконсоль

System.out.println("p = " + sP);

}


Дата добавления: 2018-04-04; просмотров: 201;