Задача по Java, принципы ООП

228
22 декабря 2017, 01:41

У меня такая задача:

Используя принципы ООП написать на языке Java программу, которая обеспечивает точное выполнение таких операций над рациональными функциями, представленными выражениями вида (a0 + a1*x + a2*x^2 + ... + an*x^n) / (b0 + b1*x + b2*x^2 + ... + bm*x^m) где n, m - целые неотрицательные числа, a0 ... an, b0 ... bm - рациональные числа: умножение, деление двух рациональных функций. Входные данные программы подают выражения такого вида, что n, m - целые числа в пределах от 0 до 10 и a0 ... an, b0 ... bm - рациональные числа, которые подаются дробями вида u / v, где u, v - натуральные числа в пределах от 1 до 2 ^ 32. Есть стартовый код метода, но это не то, что, как мне кажется, нужно:

Как правильно составить методы, которые бы корректно выводили выражение вычисления этих дробей?

import java.util.*;
public class main {
    static int u; //переменные, использующиеся для переопределения рациональных чисел
    static int v;
    int n, m; //степени
    int a[];//коэфициенты
    int b[];
    public static void main(String[] args) {
        System.out.println(u + "/" + v);
    }
    public void main(int nn) {
        int n = nn;
        a = new int[n+1];
    }
    static void random1(int  a[]) {//заполнение рандомом значений a первой скобки
          for (int i=0;i<a.length;i++){
            a[i]=(int)(Math.random() * 100 + 1);
            }
          }
    static void random2(int  b[]) {//заполнение рандомом значений b второй скобки
          for (int i=0;i<b.length;i++){
            b[i]=(int)(Math.random() * 100 + 1);
            }
          }
    static void random3(int  u) {//значение v в пределах от 1 до 2^32
          for (int i=0;i<u;i++){
            u = (int)(Math.random() * (Math.pow(2,32)) + 1);
            }
          }
    static void random4(int  v) {//значение u в пределах от 1 до 2^32
          for (int i=0;i<v;i++){
            v = (int)(Math.random() * (Math.pow(2,32)) + 1);
            }
          }
    private void firstbracket(int a[]){ //первая скобка
        for(int i = 0; i < 10; i++){
            a[i] = u/v;
        }  
           System.out.println(u + "/" + v);
        //return u/v;
    }
    private void secondbracket(int b[]){ //вторая скобка
        for(int i = 0; i < 10; i++){
            b[i] = u/v;
        }    
        //return u/v;
    }
    public void result() { //нахождения результата от деления двух скобок
        System.out.println(firstbracket(a)"/"secondbracket(b));
    }
}
Answer 1

public class Test {

public static void main(String[] args) {
    int x = 3;
    int [] aArray = {2,5,7,10, 12};
    int [] bArray = {1,3,2,3};
    System.out.println(calculate(aArray, bArray, x));
}
private static double calculate(int [] aArray, int [] bArray, int x) {
    return calculate(aArray, x) / calculate(bArray, x);
}
private static double calculate(int [] aArray, int x) {
    double result=0;
    for (int n = 0; n < aArray.length; n++) {
        result+=calculate (aArray[n], x, n);
    }
    return result;
}
private static double calculate(int a, int x, int n) {
    return a * Math.pow(x, n);
}

}

READ ALSO
CURRENT_TIMESTAMP в long

CURRENT_TIMESTAMP в long

К примеру есть дата, которая была сделана с помощью CURRENT_TIMESTAMP в mysql -> String date = "2017-12-20 16:49:31"; Мне нужно её преобразовать в то, из чего можно вытащить...

235
Сохранить прогресс скролла NestedScrollView

Сохранить прогресс скролла NestedScrollView

У меня есть NestedScrollView, в котором есть TextView с большим объемом текста, мне нужно событие прокрутки при остановки сохранять в Preferences, возможно...

172
getCurrentPossition возвращает только 0

getCurrentPossition возвращает только 0

Хотел реализовать кнопки старта/паузы в notification'e, но метод getCurrentPosition никак не выдает реальное число, только 0

203