1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
| package cn.sgnxotsmicf.Demo;
import java.util.ArrayList; import java.util.Scanner; public class test0005 { public static void main(String[] args) { ArrayList<Double> var = new ArrayList<>(); ArrayList<Double> exp = new ArrayList<>(); ArrayList<Double> varX1 = new ArrayList<>(); ArrayList<Double> varX2 = new ArrayList<>(); Scanner sc = new Scanner(System.in); x1_x2Judge(sc,var,exp,varX1,varX2); input(var,exp,varX1,varX2); }
private static void x1_x2Judge(Scanner sc,ArrayList<Double> var,ArrayList<Double> exp, ArrayList<Double> varX1,ArrayList<Double> varX2) { int i =0; System.out.println("输入1对x1求导:"); int instruct1 = sc.nextInt(); System.out.println("请输入关于x"+instruct1+"的项数:"); int number1 = sc.nextInt(); int tempt =operation(sc,var,exp,i,number1,instruct1,varX1,varX2); System.out.println("输入2对x2求导:"); int instruct2= sc.nextInt(); System.out.println("请输入关于x"+instruct2+"的项数:"); int number2 = sc.nextInt(); operation(sc,var,exp,tempt,number2,instruct2,varX1,varX2); } private static int operation(Scanner sc,ArrayList<Double> var,ArrayList<Double> exp,int i,int number,int instruct, ArrayList<Double> varX1,ArrayList<Double> varX2){ int tempt = 0; do { System.out.println("请输入第" + (tempt + 1) + "个变量系数:"); var.add(sc.nextDouble()); System.out.println("请输入第" + (tempt + 1) + "个变量幂次:"); exp.add(sc.nextDouble()); if (instruct == 1) { derivation_Operation(var, exp, i); }else if (instruct == 2){ derivation_Operation(var,exp,i); } Judge(instruct,sc,varX1,varX2); i++; tempt++; } while (tempt < number); return i; } private static void Judge(int instruct,Scanner sc,ArrayList<Double> varX1,ArrayList<Double> varX2) { if (instruct==1){ System.out.println("该x"+instruct+"项(有/无)x2项相乘?"); varX1_X2_Operation(sc,varX1); }else if (instruct==2){ System.out.println("该x"+instruct+"项(有/无)x1项相乘?"); varX1_X2_Operation(sc,varX2); } }
private static void varX1_X2_Operation(Scanner sc,ArrayList<Double> varX) { String answer = sc.next(); if (answer.equals("有")){ System.out.println("幂次为多少?"); double x = sc.nextInt(); varX.add(x); }else if (answer.equals("无")){ varX.add(0.0); } }
private static void input(ArrayList<Double> var, ArrayList<Double> exp, ArrayList<Double> varX1,ArrayList<Double> varX2) { System.out.println("变量系数:"+var.toString()); System.out.println("变量幂次:"+exp.toString()); System.out.println("求x1时x2幂次:"+varX1.toString()); System.out.println("求x2时x1幂次:"+varX2.toString()); }
private static void derivation_Operation(ArrayList<Double> var,ArrayList<Double> exp,int i) { if (var.get(i)==0||exp.get(i)==0){ var.set(i,0.0); exp.set(i,0.0); }else { var.set(i,var.get(i)*exp.get(i)); exp.set(i,exp.get(i)-1); } } }
|