Advertisement
Teammasik

laba3_OOP

Dec 8th, 2023 (edited)
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.12 KB | Cryptocurrency | 0 0
  1. import java.util.Scanner;
  2. public class Calculator {
  3.     public static void main(String[] args) {
  4.         Scanner input = new Scanner(System.in);
  5.         int x,n;
  6.         Double num,answer = 0.0;
  7.  
  8.  
  9.         while (true){
  10.             System.out.print("Введите число 1, если вычисляем значение функции, 2 если вычисялем на интервале ");
  11.             x = input.nextInt();
  12.             System.out.println("Введите число 1, для синуса, 2 для косинуса, 3 для тангенса, 4 для котангенса\n5 для корня");
  13.             if (x == 1) {
  14.                 n = input.nextInt();
  15.                 System.out.print("Введите число: ");
  16.                 num = input.nextDouble();
  17.                 Function func = switchCase(n);
  18.                 if (func.calculated(num) == null){
  19.                     System.out.println("Попал в точку разрыва, прекращаю работу ");
  20.                 }
  21.                 else{
  22.                     System.out.println(func.calculated(num));
  23.                 }
  24.             } else if (x==2) {
  25.                 n = input.nextInt();
  26.                 System.out.print("Введите границы и интервал: ");
  27.                 int border1 = input.nextInt();
  28.                 int border2 = input.nextInt();
  29.                 int interv = input.nextInt();
  30.                 Function func = switchCase(n);
  31.                 for (int i = border1; i <= border2; i+=interv) {
  32.                     if (func.calculated(i) == null){
  33.                         System.out.println("Попал в точку разрыва, прекращаю работу ");
  34.                         break;
  35.                     }
  36.                     answer += func.calculated(i);
  37.                 }
  38.                 System.out.println(answer);
  39.             }
  40.             else{
  41.                 break;
  42.             }
  43.         }
  44.     }
  45.  
  46.     static Function switchCase(int n){
  47.         Function func;
  48.         switch (n){
  49.             case 1:
  50.                 func = new Sinus();
  51.                 break;
  52.             case 2:
  53.                 func = new Cosinus();
  54.                 break;
  55.             case 3:
  56.                 func = new Tang();
  57.                 break;
  58.             case 4:
  59.                 func = new Cotang();
  60.                 break;
  61.             case 5:
  62.                 func = new Root();
  63.                 break;
  64.             default:func=null;break;
  65.         }
  66.         return func;
  67.     }
  68.  
  69. }
  70. ---------------------------------------------------------
  71. public class Function {
  72.     boolean isCalculatable(double value) {
  73.         return true;
  74.     };
  75.  
  76.     Double calculated(double value){
  77.         return null;
  78.     };
  79. }
  80.  
  81. class Sinus extends  Function{
  82.     @Override
  83.     boolean isCalculatable(double value) {
  84.         return true;
  85.     }
  86.  
  87.     @Override
  88.     Double calculated(double value) {
  89.         if(isCalculatable(value)){
  90.             return Math.sin(value);
  91.         }
  92.         return null;
  93.     }
  94. }
  95.  
  96. class Cosinus extends  Function{
  97.  
  98.     @Override
  99.     boolean isCalculatable(double value) {
  100.         return true;
  101.     }
  102.  
  103.     @Override
  104.     Double calculated(double value) {
  105.         return Math.cos(value);
  106.     }
  107.  
  108. }
  109.  
  110. class Tang extends  Function{
  111.  
  112.     @Override
  113.     boolean isCalculatable(double value) {
  114.         return true;
  115.     }
  116.  
  117.     @Override
  118.     Double calculated(double value) {
  119.         return Math.tan(value);
  120.     }
  121. }
  122.  
  123. class Cotang extends  Function{
  124.     @Override
  125.     boolean isCalculatable(double value) {
  126.         if (Math.tan(value) == 0) return false; return true;
  127.     }
  128.  
  129.     @Override
  130.     Double calculated(double value) {
  131.         if(isCalculatable(value)){
  132.             return 1/Math.tan(value);
  133.         }
  134.         return null;
  135.     }
  136. }
  137.  
  138. class Root extends  Function{
  139.     @Override
  140.     boolean isCalculatable(double value) {
  141.         if (value>=0) return true; return false;
  142.     }
  143.  
  144.     @Override
  145.     Double calculated(double value) {
  146.         if(isCalculatable(value)){
  147.             return Math.pow(value, 0.5);
  148.         }
  149.         return null;
  150.     }
  151. }
  152.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement