Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.company;
- import java.util.Scanner;
- import static java.lang.Math.*;
- public class lab1_4 {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- boolean isNotCorrect;
- double x = 0;
- int n = 4;
- double sum = 1;
- double eps = 0;
- double temp2 = 0;
- System.out.println("Данная программа позволяет вычислить значение функции y=sin(x) с точностью eps с помощью разложения функции в ряд Маклорена..");
- System.out.println("Введите число x: ");
- do {
- isNotCorrect = false;
- try {
- x = Double.parseDouble(scanner.nextLine());
- } catch (Exception e) {
- System.out.println("Ошибка! Введите число :");
- isNotCorrect = true;
- }
- if ((x < -1) || (x > 1)) {
- System.out.println("Значение X должно находиться в диапозоне от (-1) до (1)");
- isNotCorrect = true;
- }
- } while (isNotCorrect);
- System.out.println("Введите точность Eps");
- do {
- isNotCorrect = false;
- try {
- eps = Double.parseDouble(scanner.nextLine());
- } catch (Exception e) {
- System.out.println("Ошибка! Число должно быть больше нуля :");
- isNotCorrect = true;
- }
- if (eps > abs(x)) {
- System.out.println("Значение точности должно быть меньше числа X");
- isNotCorrect = true;
- }
- } while (isNotCorrect);
- double temp = -x * x * x / 6;
- for (int i = 3; i < n; i += 2) {
- sum = sum + temp;
- temp = temp * (-1) * x * x / (i + 1) / (i + 2);
- if (abs(temp) > eps) {
- n += 2;
- }
- }
- System.out.println("Значение функции равно " + sum);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement