lab 04 BP

← разместить еще код

Расшаренный код:

package com.stepanov;
import java.util.Scanner;

public class Main {

    // статична функція обчислення значень залежно від х для 1 завдання
    private static double func(double x){
        double y;
        if (x < 6) {// якщо х менше 6
            double sum = 0;
            // цикл обчислення значень
            for (int k = 1; k < 17; k++)
                sum += Math.pow(Math.sin(x-6),k);
            y = 0.5 * x + 9 + sum;
        }
        else // інакше
            y = 0.5 * Math.abs(x - 10) + 10;
        return y; // повернути значення у
    }

    // рекурсивна функція обчислення факторіалу для 3 завдання
    private static int fact(int num){
        // повернення результату виконання функції
        return ((num != 1)&&(num != 0)) ? num * fact(num-1) : 1;
    }

    public static void main(String[] args) {
        // перше завдання роботи
        // введення початкових даних
        Scanner scanner = new Scanner(System.in);
        System.out.println("Завдання 1. Знаходження значень функції.\nВведіть початок інтервалу: ");
        double startPoint = scanner.nextDouble();
        System.out.println("Введіть кінець інтервалу: ");
        double finishPoint = scanner.nextDouble();
        System.out.println("Введіть шаг обчислення: ");
        double step = scanner.nextDouble();
        // алгоритм для виконання завдання
        for (double i = startPoint; i <= finishPoint; i += step){
            System.out.println("X - " + i + " | Y - " + func(i));
        }
        // кінець першого завдання лабораторної роботи


        // друге завдання лабораторної роботи
        System.out.println("Завдання 2. Знаходження ступеня числа 8. \nВведіть ступінь n (Від 0 до 10): ");
        int n = scanner.nextInt();
        // перевірка введених значень
        while (n <= 0 || n >= 10){
            System.out.println("Ви ввели невірне значення! Повторіть введення: ");
            n = scanner.nextInt();
        }
        System.out.println("Результат арифметичних операцій: ");
        int k = 8, power = 1;
        // цикл знаходження ступеня через арифметичні операції
        for (int i = 0; i <= n; i++){
            power *= k;
            System.out.println("8 ^ " + i + " = " + power);
        }
        System.out.println("Результат побітових операцій: ");
        k = 1;
        // цикл знаходження ступеня через побітовий зсув
        for (int i = 0; i <= n; i++) {
            k = k << 3;
            System.out.println("8 ^ " + i + " = " + k);
        }
        // кінець другого завдання лабораторної роботи


        // третє завдання лабораторної роботи
        System.out.println("Завдання 3. Знаходження факторіалу числа. \nВведіть n: ");
        n = scanner.nextInt();
        // обчислення факторіалу через цикл
        int factorial = 1;
        for (int i = 1; i <= n; i++)
            factorial *= i;
        System.out.println("Результат циклу: " + factorial);
        // обчислення факторіалу за допомогою рекурсивної функції
        factorial = fact(n);
        System.out.println("Результат рекурсивної функції: " + factorial);
        // кінець третього завдання лабораторної роботи
    }
}