• 大小: 6KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-14
  • 语言: Java
  • 标签: java  OO  

资源简介

输入中,包含且仅包含一行,表示一个表达式。 关于输出,首先程序需要对输入数据的合法性进行判定 - 如果是一组合法的输入数据(即符合上述的表达式基本规则),则应当输出一行,表示求出的导函数。格式同样需要满足上述的表达式基本格式规则。 - 如果是一组不合法的输入数据,则应当输出一行`WRONG FORMAT!`

资源截图

代码片段和文件信息

import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.regex.Pattern;

public class Main {
    private ArrayList polyList = new ArrayList<>();
    private static final BigInteger MINUXONE = BigInteger.valueOf(-1);

    private void parsePoly(String[] polyArr) {
        for (String str : polyArr) {
            if (str.isEmpty()) {
                continue;
            } else if (!Pattern.matches(“.*x\\^.*“ str)) {
                polyList.add(new Poly(str “0“));
            } else {
                String[] temp = str.split(“\\*x\\^“);
                polyList.add(new Poly(temp[0] temp[1]));
            }
        }
    }

    private void computePoly() {
        for (int i = 0; i < polyList.size(); i++) {
            for (int j = i + 1; j < polyList.size(); j++) {
                if (polyList.get(i).getDeg().equals(polyList.get(j).getDeg())
                        && !polyList.get(j).isRepeat()) {
                    polyList.get(i).addTerm(polyList.get(j).getTerm());
                    polyList.get(j).setRepeat(true);
                }
            }
            polyList.get(i).diff();
        }
    }

    private void output() {
        BigInteger constant = BigInteger.ZERO;
        boolean firstOut = true;
        for (Poly p : polyList) {
            if (p.isRepeat()) {
                continue;
            } else if (p.isCons()) {
                constant = p.getTerm();
            } else if (firstOut) {
                if (p.getTerm().compareTo(BigInteger.ONE) == 0) {
                    System.out.print(“x“);
                } else if (p.getTerm().compareTo(MINUXONE) == 0) {
                    System.out.print(“-x“);
                } else if (p.getTerm().compareTo(BigInteger.ZERO) > 0) {
                    System.out.print(p.getTerm() + “*x“);
                } else {
                    System.out.print(p.getTerm() + “*x“);
                }
                firstOut = false;
            } else if (p.getTerm().compareTo(BigInteger.ONE) == 0) {
                System.out.print(“+x“);
            } else if (p.getTerm().compareTo(MINUXONE) == 0) {
                System.out.print(“-x“);
            } else if (p.getTerm().compareTo(BigInteger.ZERO) > 0) {
                System.out.print(“+“ + p.getTerm() + “*x“);
            } else {
                System.out.print(p.getTerm() + “*x“);
            }

            if (p.getDeg().compareTo(BigInteger.ONE) != 0
                    && p.getDeg().compareTo(BigInteger.ZERO) != 0) {
                System.out.print(“^“ + p.getDeg());
            }
        }
        if (constant.compareTo(BigInteger.ZERO) >= 0) {
            if (firstOut) {
                System.out.println(constant);
            } else if (constant.compareTo(BigInteger.ZERO) > 0) {
                System.out.println(“+“ + constant);
            }
        } else if (constant.compareTo(BigInteger.ZERO) < 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       9637  2019-03-01 20:50  第一次作业指导书.md

     文件       3478  2019-03-29 19:34  src\Main.java

     文件       1518  2019-03-05 09:12  src\Poly.java

     文件       3152  2019-03-05 17:25  src\StringChecker.java

     目录          0  2019-03-29 19:34  src

----------- ---------  ---------- -----  ----

                17785                    5


评论

共有 条评论