Advertisement
venik2405

lab1_5

Oct 8th, 2020
316
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.18 KB | None | 0 0
  1. package com.company;
  2.  
  3.  
  4. import java.util.Scanner;
  5.  
  6. import static java.lang.Math.*;
  7.  
  8. public class lab1_4 {
  9.  
  10.     public static void main(String[] args) {
  11.         Scanner scanner = new Scanner(System.in);
  12.         boolean isNotCorrect;
  13.         double x = 0;
  14.         int n = 4;
  15.         double sum = 1;
  16.         double eps = 0;
  17.         double temp2 = 0;
  18.         System.out.println("Данная программа позволяет вычислить значение функции y=sin(x) с точностью eps с помощью разложения функции в ряд Маклорена..");
  19.  
  20.         System.out.println("Введите число x: ");
  21.         do {
  22.             isNotCorrect = false;
  23.             try {
  24.                 x = Double.parseDouble(scanner.nextLine());
  25.             } catch (Exception e) {
  26.                 System.out.println("Ошибка! Введите число :");
  27.                 isNotCorrect = true;
  28.             }
  29.             if ((x < -1) || (x > 1)) {
  30.                 System.out.println("Значение X должно находиться в диапозоне от (-1) до (1)");
  31.                 isNotCorrect = true;
  32.             }
  33.         } while (isNotCorrect);
  34.  
  35.         System.out.println("Введите точность Eps");
  36.  
  37.         do {
  38.             isNotCorrect = false;
  39.             try {
  40.                 eps = Double.parseDouble(scanner.nextLine());
  41.             } catch (Exception e) {
  42.                 System.out.println("Ошибка! Число должно быть больше нуля :");
  43.                 isNotCorrect = true;
  44.             }
  45.             if (eps > abs(x)) {
  46.                 System.out.println("Значение точности должно быть меньше числа X");
  47.                 isNotCorrect = true;
  48.             }
  49.         } while (isNotCorrect);
  50.         double temp = -x * x * x / 6;
  51.         for (int i = 3; i < n; i += 2) {
  52.             sum = sum + temp;
  53.             temp = temp * (-1) * x * x / (i + 1) / (i + 2);
  54.             if (abs(temp) > eps) {
  55.                 n += 2;
  56.             }
  57.         }
  58.         System.out.println("Значение функции равно " + sum);
  59.     }
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement