Пример – вычисление корней квадратного уравнения



 

Соберем все касающееся вычисления корней квадратного уравнения вместе и приведем весь код, который по введенным значениям коэффициентов a, b, c вычисляет и выводит корни квадратного уравнения.

 

// импорт=подключение необходимых классов

importjava.io.BufferedReader;

import java.io.InputStreamReader;

 

// класспрограммы

publicclassClass2 {

 

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

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

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

publicstaticvoid main(String[] args) throws Exception {

     // объявляем все необходимые переменные

     doublea, b, c;

     double D;

     doublex1, x2;

 

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

     BufferedReader br = new BufferedReader(new

               InputStreamReader(System.in));

 

     // Ввод A

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

     System.out.print("A=");

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

     String s1 = br.readLine();

         

     // Ввод B

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

     System.out.print("B=");

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

     Strings2 = br.readLine();

         

// ВводC

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

     System.out.print("C=");

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

     Strings3 = br.readLine();

 

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

     a = Double.parseDouble(s1);

     b = Double.parseDouble(s2);

     c = Double.parseDouble(s3);

 

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

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

     // вычисление корней

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

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

 

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

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

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

}

}

 

Запуск программы и ввод переменных через консоль

 

Запускаем на выполнение эту программу.

Когда она запустится, надо щелкнуть мышкой в консоль и ввести значение A, как показано на рис. 2.2.

 

 

Рис. 2.2. Ввод значения А

 

Затем нужно ввести значение B, затем значение C.

 

После ввода C программа подсчитает корни и выведет их в консоль. После окончания работы программы Eclipse будет иметь вид:

 

 

Рис. 2.3. Вывод корней квадратного уравнения

Трассировка в Eclipse

 

Очень часто в процессе отладки программы помогает трассировка. Сейчас мы посмотрим, как трассировка выполняется в Eclipse.

Чтобы перейти в режим трассировки, нужно сначала поставить точку прерывания в тексте программы. В нашем примере поставим точку прерывания на 40 строку – строку, где производится конвертация ранее введенной строки s1 в переменную a.

 

Для установки точки прерывания нужно щелкнуть левой кнопкой мыши левее номера строки и выбрать из контекстного меню пункт ToggleBreakpoint, как это показано на рис. 2.4 ниже:

 

 

Рис. 2.4.Точка прерывания

 

После установки точки прерывания нужно запустить программу на выполнение в режиме Debug:

 

 

Рис. 2.5.Запуск программы в режимеDebug

 

 

При первом запуске в режиме Debug Вы можете получить подобное сообщение:

 

 

Рис. 2.6. Разрешаем доступ Eclipseв брандмауэре

 

Выберите «Разрешить доступ».

 

 

После ввода строк со значениями для a, b, cEclipse выдаст Вам запрос на изменение перспективы. Ответьте ему Yes. Также желательно поставить галочку на Remembermydecision, чтобы Eclipse делал такое же изменение каждый раз – см. рис. 2.7 ниже:

 

 

Рис. 2.7. Запрос на изменение перспективы

 

 

После переключения в перспективу Debug вы увидите такой вид Eclipse:

 

 

Рис. 2.8.ПерспективаDebugв Eclipse

 

Теперь, чтобы трассировать (выполнять по шагам программу), нужно нажимать на клавиатуре F6 (StepOver – на рис. 2.9 помечено цифрой 1).

При пошаговом выполнении в Variables можно видеть текущее состояние переменных (цифра 2 на рис. 2.9), а в редакторе кода видеть, какая строка будет выполняться следующей (цифра 3 на рис. 2.9).

 

 

Рис. 2.9. Трассировка программы


 

Пройдя по шагам всю программу и дойдя до последнего вывода в коде, Вы получите такой вид Eclipse:

 

 

Рис. 2.10. Завершение трассировки

 

После окончания трассировки нужно перейти в Java перспективу. Для этого можно зайти в меню и выбрать Window/OpenPerspective/Java, как это показано на рис. 2.11.

 

Рис. 2.11. Переход в Javaперспективу

 

 Снова наши поздравления – Вы выполнили трассировку Вашей программы в Eclipse!

 

Теперь, после первичного знакомства с Java и с Eclipse, мы перейдем к изучению управляющих конструкций Java. Вас ждут 3 работы – A, B и C, выполняя которые Вы освоитесь в Eclipse, аJava для Вас станет хорошим знакомым, с которым можно решать любые задачи. Вы готовы перейти к следующему этапу? Тогда – поехали!!!

 

Первая работа A – в ней Вы напишите программу на Java, в которой будут развилки, и в которой Вы попробуете все ранее рассмотренные инструменты Eclipse.


РАЗВИЛКИ

Развилки полные и усеченные

 

Практически в каждом алгоритме есть несколько путей его выполнения. Тот или иной путь выбирается в процессе выполнения алгоритма в зависимости от условий. Например, если мы обратимся к кулинарии и рассмотрим рецепт приготовления блинчиков, то при приготовлении блинчиков один вариант рецепта используется, если есть кефир, другой –если нет кефира, но есть, например, сметана.

В программировании такие ситуации описываются при помощи развилки.

 

Типичная развилка выглядит в Java так:

 

if (условное_выражение) {

Действие_1

} else {

Действие_2

}

 

В блок-схеме она выглядит так:

 


Рис. 3.1.Структураразвилки

 

Пример – вычисление максимума из двух чисел – val1 и val2:

 

if (val1 > val2) {

max_val = val1;

} else {

max_val = val2;

}

 

 

В блок-схеме это выглядит так:

 

 

Рис. 3.2.Блок-схема вычисления максимума из двух чисел

 

Развилка, в которой есть и ветка if, и ветка else, называется полной.

Развилка, в которой есть только ветка if, а ветки else нет, называется усеченной развилкой. Код усеченной развилки вJava выглядит так:

 

if (условное_выражение) {

Действие_1

}

 

Блок- схема для усеченной развилки выглядит так:

 


Рис. 3.3. Структура усеченной развилки

 

Обратите внимание, что в блок-схеме ЕСТЬ ветка МИНУС, но на ней НЕТ ДЕЙСТВИЙ. При этом в тексте программы elseнет совсем. Это важный момент!


 


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