Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 26.09.2021
Сообщений: 5

Неверные вычисления

17.01.2023, 12:58. Показов 579. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется такое условие задачи:
При некоторых заданных x (допустимые значения x – интервал (-R, R)), n и e, определяемых
вводом, вычислить:
1) сумму n слагаемых заданного вида;
2) сумму тех слагаемых, которые по абсолютной величине больше e;
3) сумму тех слагаемых, которые по абсолютной величине больше e/10;
4) значение функции с помощью методов Math.

При вычислениях необходимо выразить an (n-ый член ряда) как зависимость от n, an-1 и x,
т.е. виде a
n
= f(n, an-1, x). Другие варианты решения не принимаются.
Использовать только 1 цикл.

Задача:

sin(x)/x = 1 - x^2/3! + x^4/5! - x^6/7! +... (R = inf)

Мой код

Main.java

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
public class Main {
    public static void f(int n, int a, double x, double e){
        double sinXX = 1;
        int factorial = 3;
        double sumN = 0;
        double sumE = 0;
        double sumE10 = 0;
 
        for(int i = 0; i < n; i++){
            a = a + 2;
            if(i % 2 == 0){
                sinXX -= Math.pow(x, a) / Supporting.calculateFactorial(factorial);
            }
            else{
                sinXX += Math.pow(x, a) / Supporting.calculateFactorial(factorial);
            }
            sumN += sinXX;
            if(Math.abs(sinXX) > e){
                sumE += sinXX;
            }
            if(Math.abs(sinXX) > e / 10){
                sumE10 += sinXX;
            }
            factorial += 2;
        }
        //System.out.print(sinXX + "\n");
        System.out.print(sumN + "\n");
        System.out.print(sumE + "\n");
        System.out.print(sumE10 + "\n");
 
    }
 
    public static void conclusion(){
        //System.out.print("Enter n: ");
        //int n = Supporting.errorHandlerInt();
        //System.out.print("Enter x: ");
        //double x = Supporting.errorHandlerDouble();
        //System.out.print("Enter e: ");
        //double e = Supporting.errorHandlerDouble();
        int n = 10;
        double x = 2.5;
        double e = 0.00001;
        f(n, 0, x, e);
        System.out.println(Math.sin(Math.toRadians(x)) / x);
        //System.out.println(Math.sin(x) / x);
    }
    public static void main(String[] args){
        conclusion();
    }
}
Supporting.java

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
public class Supporting {
    public static int enterInt(){
        Scanner enter = new Scanner(System.in);
        int number = enter.nextInt();
 
        return number;
    }
    public static double enterDouble(){
        Scanner enter = new Scanner(System.in);
        double number = enter.nextDouble();
 
        return number;
    }
    public static int errorHandlerInt(){
        while(true){
            try{
                int i = enterInt();
                return i;
            }
            catch(java.util.InputMismatchException e){
                System.out.print("You didn't enter a number. Enter number: ");
            }
        }
    }
    public static double errorHandlerDouble(){
        while(true){
            try{
                double d = enterDouble();
                return d;
            }
            catch(java.util.InputMismatchException e){
                System.out.print("You didn't enter a number. Enter number: ");
            }
        }
    }
    public static int calculateFactorial(int factorial){
        int f = 1;
        for(int i = 1; i <= factorial; i++){
            f = f * i;
        }
        return f;
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.01.2023, 12:58
Ответы с готовыми решениями:

Неверные данные в параметрах конструктора
Добрый вечер. Столкнулась с проблемой. Имеется двумерный массив-матрица. Нужно, чтобы в классе хранилась одна половина матрицы, то есть,...

Неверные кодировки
Всем доброго времени. Вопрос вот таков. При компиляции Java, написанный в Sublime Text, вместо текста выводит непонятные символы в...

Неверные кодировки в NetBeans
хочу ввести текст StringBuffer qwe=new StringBuffer(); Scanner sc = new Scanner(System.in); qwe.append(sc.nextLine()); а в...

3
 Аватар для Coffeini
753 / 370 / 133
Регистрация: 01.02.2020
Сообщений: 1,096
Записей в блоге: 1
17.01.2023, 13:49
~
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
import java.util.Scanner;
import java.util.function.DoubleSupplier;
import java.util.stream.DoubleStream;
import java.util.stream.LongStream;
 
public class Main {
 
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.print("x = ");
        double x = in.nextDouble();
        System.out.print("n = ");
        int n = in.nextInt();
        System.out.print("e = ");
        double e = in.nextDouble(), e10 = e / 10;
        System.out.println("f(e = 10^" + Math.log10(e) + "):\t"
                + DoubleStream.generate(new Fun(x)).takeWhile(i -> Math.abs(i) > e).sum());
        System.out.println("f(e = 10^" + Math.log10(e10) + "):\t"
                + DoubleStream.generate(new Fun(x)).takeWhile(i -> Math.abs(i) > e10).sum());
        System.out.println("sin():\t\t\t" + Math.sin(x) / x);
        System.out.println("f(n = " + n + "):\t\t" + Fun.getAsDoubleN(x, n));
    }
}
 
class Fun implements DoubleSupplier {
    int z;
    double x, xl, fact, q;
 
    public Fun(double x) {
        q = fact = xl = z = 1;
        this.x = x;
    }
 
    @Override
    public double getAsDouble() {
        double r = xl / fact * z;
        xl *= x * x;
        fact *= ++q * ++q;
        z *= -1;
        return r;
    }
 
    private static double fact(int n) {
        return LongStream.iterate(1, i -> i <= n, i -> i + 1).reduce((i1, i2) -> i1 * i2).orElse(1);
    }
 
    public static double getAsDoubleN(double x, int n) {
        return Math.pow(x, (n - 1) * 2) / fact(n * 2 - 1) * Math.pow(-1, n - 1);
    }
}
1
0 / 0 / 0
Регистрация: 26.09.2021
Сообщений: 5
17.01.2023, 14:11  [ТС]
Не могли бы вы объяснить, как работает код?
0
 Аватар для Coffeini
753 / 370 / 133
Регистрация: 01.02.2020
Сообщений: 1,096
Записей в блоге: 1
17.01.2023, 15:20
Цитата Сообщение от Smertex Посмотреть сообщение
как работает код
Метод genetate вызывается до тех пор, пока takeWhile - true. Потом все результаты суммируются.
Аналог:
Java
1
2
3
4
5
6
double i, sum = 0;
Fun f = new Fun(x);
while (Math.abs(i = f.getAsDouble()) > e) {
    sum += i;
}
System.out.println(sum);
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.01.2023, 15:20
Помогаю со студенческими работами здесь

Неверные спецификации для user.table.column
Может кто знает, в каком случае оракловский jdbc - драйвер выбрасывает такое исключение?? java.sql.SQLException: неверные спецификации...

Класс Longlong. неверные вычисления
Здравствуйте. Подскажите в чем ошибка в коде? И как сделать так, чтобы числа после запятой тоже выводились? #include &lt;math.h&gt; ...

Программа производит неверные вычисления
r ,по идее , должно быть равно 1000000, но почему то получается 16960 !!! если написать так: r:=100*100*100 то всё нормально В чём...

Программа производит неверные вычисления
в результате должно быть 2,9364 #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; float step(float x, float k1) ...

Неверные данные
Добрый день. Решая очередную задачу наткнулся на проблему, что данные, которые записываются в файл не совсем верные, хотя по коду, вроде,...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru