Advertisement
venik2405

lab1_5_3

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