Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Scanner;
- public class Calculator {
- public static void main(String[] args) {
- Scanner input = new Scanner(System.in);
- int x,n;
- Double num,answer = 0.0;
- while (true){
- System.out.print("Введите число 1, если вычисляем значение функции, 2 если вычисялем на интервале ");
- x = input.nextInt();
- System.out.println("Введите число 1, для синуса, 2 для косинуса, 3 для тангенса, 4 для котангенса\n5 для корня");
- if (x == 1) {
- n = input.nextInt();
- System.out.print("Введите число: ");
- num = input.nextDouble();
- Function func = switchCase(n);
- if (func.calculated(num) == null){
- System.out.println("Попал в точку разрыва, прекращаю работу ");
- }
- else{
- System.out.println(func.calculated(num));
- }
- } else if (x==2) {
- n = input.nextInt();
- System.out.print("Введите границы и интервал: ");
- int border1 = input.nextInt();
- int border2 = input.nextInt();
- int interv = input.nextInt();
- Function func = switchCase(n);
- for (int i = border1; i <= border2; i+=interv) {
- if (func.calculated(i) == null){
- System.out.println("Попал в точку разрыва, прекращаю работу ");
- break;
- }
- answer += func.calculated(i);
- }
- System.out.println(answer);
- }
- else{
- break;
- }
- }
- }
- static Function switchCase(int n){
- Function func;
- switch (n){
- case 1:
- func = new Sinus();
- break;
- case 2:
- func = new Cosinus();
- break;
- case 3:
- func = new Tang();
- break;
- case 4:
- func = new Cotang();
- break;
- case 5:
- func = new Root();
- break;
- default:func=null;break;
- }
- return func;
- }
- }
- ---------------------------------------------------------
- public class Function {
- boolean isCalculatable(double value) {
- return true;
- };
- Double calculated(double value){
- return null;
- };
- }
- class Sinus extends Function{
- @Override
- boolean isCalculatable(double value) {
- return true;
- }
- @Override
- Double calculated(double value) {
- if(isCalculatable(value)){
- return Math.sin(value);
- }
- return null;
- }
- }
- class Cosinus extends Function{
- @Override
- boolean isCalculatable(double value) {
- return true;
- }
- @Override
- Double calculated(double value) {
- return Math.cos(value);
- }
- }
- class Tang extends Function{
- @Override
- boolean isCalculatable(double value) {
- return true;
- }
- @Override
- Double calculated(double value) {
- return Math.tan(value);
- }
- }
- class Cotang extends Function{
- @Override
- boolean isCalculatable(double value) {
- if (Math.tan(value) == 0) return false; return true;
- }
- @Override
- Double calculated(double value) {
- if(isCalculatable(value)){
- return 1/Math.tan(value);
- }
- return null;
- }
- }
- class Root extends Function{
- @Override
- boolean isCalculatable(double value) {
- if (value>=0) return true; return false;
- }
- @Override
- Double calculated(double value) {
- if(isCalculatable(value)){
- return Math.pow(value, 0.5);
- }
- return null;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement