SN8
1

Подскажите пожалуйста!Правильно ли написан код квадратного уравнения работая с консолью или можно его переделать произвести модернизацию кода! Мож

30.08.2013, 14:53. Показов 1116. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
// нахождение корней уравнения через дискриминант
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 class D {
 public static void main (String args []){
     double a,b,c;
     a=10.0; // значение коэффициента x высшей степени
     b=14.0 ; // значение коэффициента x низшей степени
     c=-9.0 ; // значение свободного коэффициента
     
     // инициализация новой переменной
     double D= Math.sqrt(b*b - 4*a*c);
     if (D>0) System.out.println("D равен " + D );
     // инициализация переменных x1,x2
     double x1 , x2 ;
     x1= (-b+D)/(2*a);
     x2= (-b-D)/(2*a);
     System.out.println("Значение x1 равно " + x1);
     System.out.println("Значение x2 равно " + x2);
     
     // значение коэффициента высшей степени равно нулю
      if (a==0) ;
      double x;
      x=-c/b;
      System.out.println("Значение x равно " + x);
      
      
      // значение свободного коэффициента равно нулю  
      if (c==0);
      double y1,y2;
      y1=0.0;
      y2=-b/a;
      System.out.println("Значение y1 равно " + y1);
      System.out.println("Значение y2 равно " + y2);
      
      // значение коэффициента первой степени равно нулю
      if (b==0);
      double x3=Math.sqrt(-c/a);
      if (x3>0) System.out.println("Значение x3 равно " + x3 );
      
      
      // значение дискриминанта равно нулю
      if (D==0);
      double x4=-b/(2*a);
      System.out.println("Значение x4 равно " + x4);
      
 }
  
}
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.08.2013, 14:53
Ответы с готовыми решениями:

Подскажите правильно ли написан код?
Подскажите правильно ли написан код? Желаемая клавиша жмется, а мышка не жмет в неактивном окне, в...

Код написан в Dev C. Не работает в Visual. Как нужно переделать код?
Здравствуйте. Столкнулась с такой проблемой: код был написан в Dev C, но в Visual он выдаёт...

Исправьте код, выдает ошибку (заданы коэффициенты квадратного уравнения. Найти его действительные корни, если они существуют.)
Помогите, пожалуйста :cry: Написал программу к задачке - выдает ошибку Заданы коэффициенты...

Подскажите, пожалуйста, как правильно поменять код в header?
Шапка сайта на всех страницах. В сингл-записях она меняется на изображение записи. И вот захотелось...

4
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12474 / 7496 / 1757
Регистрация: 25.07.2009
Сообщений: 13,792
30.08.2013, 16:03 2
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package easybudda.examples.quadraticequation;
 
import java.util.InputMismatchException;
import java.util.Scanner;
 
public class QuadraticEquation {
    private static final double [] EMPTY_DOUBLE_ARRAY = new double [ 0 ];
    
    static double [] getRoots(double a, double b, double c) {
        if ( a == 0.0 )
            throw new IllegalArgumentException();
        
        double d = b * b - 4 * a * c;
        if ( d < 0.0 )
            return EMPTY_DOUBLE_ARRAY;
        else {
            double [] ret;
            if ( d == 0.0 ) {
                ret = new double [ 1 ];
                ret[0] = -1.0 * b / 2.0 / a;
            }
            else {
                ret = new double [ 2 ];
                ret[0] = (-1.0 * b + Math.sqrt(d)) / 2.0 / a;
                ret[1] = (-1.0 * b - Math.sqrt(d)) / 2.0 / a;
            }
            
            return ret;
        }
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        while ( true ) {
            try {
                System.out.print("a = ");
                double a = scanner.nextDouble();
                System.out.print("b = ");
                double b = scanner.nextDouble();
                System.out.print("c = ");
                double c = scanner.nextDouble();
                
                double [] roots = getRoots(a, b, c);
                if ( roots.length == 0 )
                    System.out.println("No roots.");
                else 
                    for ( int i = 0; i < roots.length; ++i )
                        System.out.println("Root #" + (i + 1) + " = " + roots[i]);
                
                System.out.println();
            }
            catch ( IllegalArgumentException iae ) {
                System.out.println("ERROR: 'a' can't be zero!");
            }
            catch ( InputMismatchException ime ) {
                return;
            }
        }
    }
}
Строго говоря, если дискриминант равен нулю, корней всё равно два, но так интереснее (тут не так давно тема была про функции, возвращающие переменное количество результатов - практическое применение)...
2
0 / 0 / 0
Регистрация: 29.06.2013
Сообщений: 88
31.08.2013, 12:47 3
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import java.util.Scanner;
 
 
public class sqrt {
 
    private static Scanner sc;
 
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("Задайте значения a,b,c");
        sc = new Scanner(System.in);
        System.out.println("Введите значение a: ");
        double a = sc.nextDouble();
        System.out.println("\nВведите значение b: ");
        double b = sc.nextDouble();
        System.out.println("\nВведите значение c: ");
        double c = sc.nextDouble();
        System.out.println("Вы ввели выражение " + a + "x2 + " + b + "x + " + c + " = 0.");
        System.out.println("Вычисляем дискриминант: ");
        int d = (int) (Math.pow(b, 2) - 4*a*c);
        System.out.println("Дискриминант равен " + d);
        if (d<0){
            System.out.println("Дискриминант меньше ноля, поэтому вещественных корней нет...");   
        }
        else if (d==0){
            int x = (int) (-b/(2*a));
            System.out.println("Дискриминант равен нулю, поэтому уравнение имеет один корень x = " + x);
            
        }
        else if (d>0){
        System.out.println("Вычисляем корни уравнения: ");
        double x1 = (-b + (Math.sqrt(d)))/(2*a);
        double x2 = (-b - (Math.sqrt(d)))/(2*a);
        System.out.println("Первый корень равен x1 = " + x1 + "\nВторой корень равен x2 = " + x2);
        }
            
        
                
    }
 
}
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12474 / 7496 / 1757
Регистрация: 25.07.2009
Сообщений: 13,792
31.08.2013, 13:18 4
dimashnurenko, при нулевом дискриминанте корень - вещественное число, а Вы его до целого обрезаете...
0
Супер-модератор
6194 / 2941 / 1300
Регистрация: 04.03.2013
Сообщений: 5,784
Записей в блоге: 1
31.08.2013, 19:24 5
А еще при отрицательном D существует 2 комплексных корня. Я бы и на этот случай сделал решение.

Х1=(-B/2A)+(D/2A)j
X2=(-B/2A)-(D/2A)j
0
31.08.2013, 19:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.08.2013, 19:24
Помогаю со студенческими работами здесь

На каком языке этот код и можно ли его переделать?
Добрый день Дамы и Господа Программисты. Вот тут мне дали код и попросили переделать под С++....

Подскажите пожалуйста как правильно написать код в переменной PHP
У меня файл обработчик сообщения - calc.php и там есть такой кусок кода: session_start();...

Подскажите, чем написан этот сайт, возможно ли открыть его через Denver и как его редактировать?
Забрал все файлы на комп, всё не имеющее значение, имхо, убрал, архив приложил. Сайт не мой, но...

Переделать код, чтобы можно было запустить его в MSVS
Программа написана под Linux. Подскажите что нужно поменять чтобы запустить ее в обычном microsoft...

правильно ли написан код в с++?
#include &lt;iostream&gt; #include &lt;map&gt; #include &lt;fstream&gt; using namespace std; int main() { ...

Правильно ли написан код?
Здравствуйте. Вношу кое-какие изменения в сайт. Решил не обращаться к программисту, сделать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru