Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Листинг 1.4. Вычисление корней квадратного уравнения

Читайте также:
  1. Выбор формы уравнения регрессии
  2. Вывод канонического уравнения параболы.
  3. Вычисление двойного интеграла
  4. Вычисление напряженности магнитного поля прямого тока
  5. Вычисление объемов тел.
  6. Вычисление площадей плоских фигур с помощью определенного интеграла. Примеры.
  7. Вычисление площадей плоских фигур.
  8. Вычисление площади поверхности вращения.
  9. Вычисление расчетного времени хода пары поездов по перегонам
  10. Вычисление тройных интегралов

class QuadraticEquation{

public static void main(String[] args){

double a = 0.5, Ъ = -2.7, с = 3.5, d, eps=le-8;

if (Math.abs(a) < eps)

if (Math.abs(b) < eps)

if (Math.abs(c) < eps) // Все коэффициенты равны нулю

System.out.println("Решение —любое число");

Else

System.out.println("Решений нет");

Else

System.out.println("xl = x2 = " +(-c / b));

else { // Коэффициенты не равны нулю

if((d = b**b — 4*a*c)< 0.0){ // Комплексные корни

d = 0.5 * Math.sqrt(-d) / a;

a = -0.5 * b/ a;

System.out.println("xl = " +a+ " +i " +d+

",x2 = " +a+ " -i " +d);

} else {

// Вещественные корни

d =0.5 * Math.sqrt(d) / a;

a = -0.5 * b / a;

System.out.println("x1 = " + (a + d) + ", x2 = " +(a - d));

}

}

)

}

В этой программе использованы методы вычисления модуля absо и кш; ратного корня sqrt о вещественного числа из встроенного в Java API класса Math. Поскольку все вычисления-С вещественными числами производятся приближенно, мы считаем, что коэффициент уравнения равен нулю, если его модуль меньше 0,00000001. Обратите внимание на то, как в методе println о используется сцепление строк, и на то, как операция присваивания при вычислении дискриминанта вложена в логическое выражение.

"Продвинутым" пользователям

Вам уже хочется вводить коэффициенты а, b и с прямо с клавиатуры? Пожалуйста, используйте метод System, in. read (byte [ ] bt), но учтите, что этот метод записывает вводимые цифры в массив байтов bt в кодировке ASCII, в каждый байт по одной цифре. Массив байтов затем надо преобразовать в вещественное число, например, методом Double(new String(bt)).doubleValue0. Непонятно? Но это еще не все, нужно обработать исключительные ситуации, которые могут возникнуть при вводе (см. главу 18).

Операторы цикла

Основной оператор цикла — оператор while — выглядит так:

While (логВьгр) оператор

Вначале вычисляется логическое выражение логВыр; если его значение true, то выполняется оператор, образующий цикл. Затеем снова вычисляется лог-выр и действует оператор, и так до тех пор, пока не получится значение false. Если логВыр изначально равняется false, то оператор не будет выполнен ни разу. Предварительная проверка обеспечивает безопасность выполнения цикла, позволяет избежать переполнения, деления на нуль и других неприятностей. Поэтому оператор while является основным, а в некоторых языках и единственным оператором цикла.

Оператор в цикле может быть и пустым, например, следующий фрагмент кода:

int i = 0;

double s = 0.0;

while ((s += 1.0 / ++i) < 10);

Вычисляет количество i сложений, которые необходимо сделать, чтобы гармоническая сумма s достигла значения 10. Такой стиль характерен для языка С. Не стоит им увлекаться, чтобы не превратить текст программы в шифровку, на которую вы сами через пару недель будете смотреть с недоумением.

Можно организовать и бесконечный цикл:




Дата добавления: 2015-09-11; просмотров: 116 | Поможем написать вашу работу | Нарушение авторских прав

В какой бы форме ни записывались символы, компилятор переводит их в Unicode, включая и исходный текст программы. | AName theName a2Vh36kBnMt456dX | Замечание для специалистов | Целые типы | Вычитание - (дефис); | Листинг 1.3. Неверное определение переменной | Побитовые операции | Операции присваивания | Выражения | Приведение типа (тип). |


lektsii.net - Лекции.Нет - 2014-2025 год. (0.045 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав