.


:




:

































 

 

 

 





 

, . , Java SE Runtime Environment. 4- , - Linux x64, Linux x86, Mac OS X, Solaris x64, Windows x86 Windows x64.

Windows x64, Linux x64. .

1)

2) cd

3) java jar

. 7.1 java

4) :

4.1) , -1 . MathCad.

7.2 -1-

4.1) , y -1 (-13+12 = -1). MathCad.

. 7.3 -1

4.2) , x y -1 MathCad.

7.4 -1

4.2) , x -1 MathCad.

.7.4 -1

4.3)

. 7.5

4.3)

. 7.6

4.4) Linux:

. 7.7

, Windows

, . , .

, .

 

 

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


public class IntegralFrame extends JFrame {


private String[] itemsmonom = {
"1- ",
"2- ",
"3- ",
"4- ",
"5- ",
"6- ",
"7- ",
"8- ",
"9- ",
"10- ",
"11- ",
"12- ",
"13- ",
"14- ",
"15- ",
"16- ",
"17- ",
"18- ",
"19- ",
"20- "
};

private String[] itemspolinom = { " φᵢ", " φᵤ" };


JButton btnOk = new JButton("OK"); //
JButton btnResult = new JButton("INTEGRATE"); //
private JTextField textFieldCONST, textFieldpwrX, textFieldpwrY, textFieldpwrZ,
textFieldA, textFieldB, textFieldC, textFieldD, textFieldZ;

private JLabel integral, LabelCONST, LabelA, LabelB, LabelC, LabelD, LabelZ, LabelpwrX, LabelpwrY, LabelpwrZ;
private JComboBox monomBox = new JComboBox(itemsmonom); //
private JComboBox polinomBox = new JComboBox(itemspolinom); //
private String[] r = { "₁", "₂", "₃", "₄", "₅", "₆", "₇", "₈", "₉", "₁₀", "₁₁", "₁₂", "₁₃", "₁₄", "₁₅", "₁₆", "₁₇", "₁₈", "₁₉", "₂₀" };
private String[] FunctioNiu = { "φᵢ: ", "φᵤ: " };
private int i = 0, u = 0; //
private double [][] CONST = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
private int [][] POWx = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}},
POWy = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}},
POWz = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
private double A = 0;
private double B = 0;
private double C = 0;
private double D = 0;
private double Z = 0;


public IntegralFrame() {
super (" - ..");
setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE);


setBounds(300, 300, 800, 210); //
getContentPane().setLayout(null);

int X = 140, deltaX = 110,
Y = 130;

btnResult. setBounds(X + 4 * deltaX + 70, Y - 1, 120, 23); // btnOk
btnOk. setBounds(X + 4 * deltaX - 25, Y - 1, 89, 23); // btnOk

integral = new JLabel("∫∫φᵢ(φᵤ)'ₓ dx dy");
integral. setBounds(10, 15, 315, 30);

LabelA = new JLabel("a = ");
LabelA. setBounds(X - 30, Y - 40, 120, 18);
LabelB = new JLabel("b = ");
LabelB. setBounds(X - 30 + deltaX - 10, Y - 40, 120, 18);
LabelC = new JLabel("c = ");
LabelC. setBounds(X - 30 + 2 * deltaX - 10, Y - 40, 120, 18);
LabelD = new JLabel("d = ");
LabelD. setBounds(X - 30 + 3 * deltaX - 10, Y - 40, 120, 18);
LabelZ = new JLabel("z = ");
LabelZ. setBounds(X - 30 + 4 * deltaX - 10, Y - 40, 120, 18);
LabelCONST = new JLabel(FunctioNiu [ u ] + " " + r [ i ] + " =");
LabelCONST. setBounds(X - 100, Y, 120, 18);

LabelpwrX = new JLabel("X" + r [ i ] + "^ ");
LabelpwrX. setBounds(X + deltaX - 48, Y, 100, 18);
LabelpwrY = new JLabel("Y" + r [ i ] + "^ ");
LabelpwrY. setBounds(X + 2 * deltaX - 48, Y, 100, 18);
LabelpwrZ = new JLabel("Z" + r [ i ] + "^ ");
LabelpwrZ. setBounds(X + 3 * deltaX - 48, Y, 100, 18);

textFieldCONST = new JTextField(); //
textFieldCONST. setBounds(X + 0 * deltaX, Y, 50, 20); // ,
textFieldA = new JTextField(); //
textFieldA. setBounds(X + 0 * deltaX, Y - 40, 50, 20); // ,
textFieldB = new JTextField(); //
textFieldB. setBounds(X + 1 * deltaX - 10, Y - 40, 50, 20); // ,
textFieldC = new JTextField(); //
textFieldC. setBounds(X + 2 * deltaX - 10, Y - 40, 50, 20); // ,
textFieldD = new JTextField(); //
textFieldD. setBounds(X + 3 * deltaX - 10, Y - 40, 50, 20); // ,
textFieldZ = new JTextField(); //
textFieldZ. setBounds(X + 4 * deltaX - 10, Y - 40, 50, 20); // ,

textFieldpwrX = new JTextField(); //
textFieldpwrX. setBounds(X + deltaX - 10, Y, 50, 20); // ,
textFieldpwrY = new JTextField(); //
textFieldpwrY. setBounds(X + 2 * deltaX - 10, Y, 50, 20); // ,
textFieldpwrZ = new JTextField(); //
textFieldpwrZ. setBounds(X + 3 * deltaX - 10, Y, 50, 20); // ,

polinomBox. setAlignmentX(LEFT_ALIGNMENT);
polinomBox. setBounds(200, 20, 250, 24); // ,
monomBox. setAlignmentX(LEFT_ALIGNMENT);
monomBox. setBounds(450, 20, 110, 24); // ,

Font font = new Font("Cambria Math", Font. PLAIN, 16); //
Font font1 = new Font("Cambria Math", Font. PLAIN, 22); //
btnResult. setFont(font); //
btnOk. setFont(font); //
integral. setFont(font1); //
LabelA. setFont(font); //
LabelB. setFont(font); //
LabelC. setFont(font); //
LabelCONST. setFont(font); //
LabelD. setFont(font); //
LabelZ. setFont(font); //
LabelpwrX. setFont(font); //
LabelpwrY. setFont(font); //
LabelpwrZ. setFont(font); //
polinomBox. setFont(font);
monomBox. setFont(font); //
textFieldA. setFont(font); //
textFieldB. setFont(font); //
textFieldC. setFont(font); //
textFieldCONST. setFont(font); //
textFieldD. setFont(font); //
textFieldZ. setFont(font); //
textFieldpwrX. setFont(font); //
textFieldpwrY. setFont(font); //
textFieldpwrZ. setFont(font); //


getContentPane().add(btnOk); //
getContentPane().add(integral); //
getContentPane().add(LabelCONST); //
getContentPane().add(LabelA); //
getContentPane().add(LabelB); //
getContentPane().add(LabelC); //
getContentPane().add(LabelD); //
getContentPane().add(LabelZ); //
getContentPane().add(LabelpwrX); //
getContentPane().add(LabelpwrY); //
getContentPane().add(LabelpwrZ); //
getContentPane().add(textFieldA); //
getContentPane().add(textFieldB); //
getContentPane().add(textFieldC); //
getContentPane().add(textFieldCONST); //
getContentPane().add(textFieldD); //
getContentPane().add(textFieldZ); //
getContentPane().add(textFieldpwrX); //
getContentPane().add(textFieldpwrY); //
getContentPane().add(textFieldpwrZ); //
getContentPane().add(polinomBox); //
getContentPane().add(monomBox); //
getContentPane().add(btnResult);

textFieldCONST. setText(Double. toString (CONST [ u ][ i ]));
textFieldA. setText(Double. toString (A));
textFieldB. setText(Double. toString (B));
textFieldC. setText(Double. toString (C));
textFieldD. setText(Double. toString (D));
textFieldZ. setText(Double. toString (Z));
textFieldpwrX. setText(Integer. toString (POWx [ u ][ i ]));
textFieldpwrY. setText(Integer. toString (POWy [ u ][ i ]));
textFieldpwrZ. setText(Integer. toString (POWz [ u ][ i ]));

 

class btnResultEventListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
javax.swing.SwingUtilities. invokeLater (new Runnable() {
public void run() {
JFrame. setDefaultLookAndFeelDecorated (false);
AnalyticalCalculation CalculationFrame = new AnalyticalCalculation();
CalculationFrame.create();
}
}
);
}
}
btnResult. addActionListener(new btnResultEventListener());

 

class monomBoxActionListener implements ActionListener {

public void actionPerformed(ActionEvent e) {
JComboBox box = (JComboBox) e.getSource();
//getSource() ,
i = box.getSelectedIndex();
LabelCONST. setText(FunctioNiu [ u ] + " " + r [ i ] + " = ");
LabelpwrX. setText("X" + r [ i ] + " ^ ");
LabelpwrY. setText("Y" + r [ i ] + " ^ ");
LabelpwrZ. setText("Z" + r [ i ] + " ^ ");
textFieldCONST. setText(Double. toString (CONST [ u ][ i ]));
textFieldA. setText(Double. toString (A));
textFieldB. setText(Double. toString (B));
textFieldC. setText(Double. toString (C));
textFieldD. setText(Double. toString (D));
textFieldZ. setText(Double. toString (Z));
textFieldpwrX. setText(Integer. toString (POWx [ u ][ i ]));
textFieldpwrY. setText(Integer. toString (POWy [ u ][ i ]));
textFieldpwrZ. setText(Integer. toString (POWz [ u ][ i ]));
}
}
monomBox. addActionListener(new monomBoxActionListener());

 

class polinomBoxActionListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
JComboBox box = (JComboBox) e.getSource();
//getSource() ,
u = box.getSelectedIndex();
LabelCONST. setText(FunctioNiu [ u ] + " " + r [ i ] + " = ");
LabelpwrX. setText("X" + r [ i ] + " ^ ");
LabelpwrY. setText("Y" + r [ i ] + " ^ ");
LabelpwrZ. setText("Z" + r [ i ] + " ^ ");
textFieldCONST. setText(Double. toString (CONST [ u ][ i ]));
textFieldA. setText(Double. toString (A));
textFieldB. setText(Double. toString (B));
textFieldC. setText(Double. toString (C));
textFieldD. setText(Double. toString (D));
textFieldZ. setText(Double. toString (Z));
textFieldpwrX. setText(Integer. toString (POWx [ u ][ i ]));
textFieldpwrY. setText(Integer. toString (POWy [ u ][ i ]));
textFieldpwrZ. setText(Integer. toString (POWz [ u ][ i ]));
}
}
polinomBox. addActionListener(new polinomBoxActionListener());

 

class btnOkActionListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
String valueAssignment = " " + System. lineSeparator ()
+ " " + System. lineSeparator ()
+ " x,y,z ― " + System. lineSeparator ()
+ " " + System. lineSeparator ()
+ " , 0";
try {
CONST [ u ][ i ] = Double. parseDouble (textFieldCONST. getText());
POWx [ u ][ i ] = Integer. parseInt (textFieldpwrX. getText());
POWy [ u ][ i ] = Integer. parseInt (textFieldpwrY. getText());
POWz [ u ][ i ] = Integer. parseInt (textFieldpwrZ. getText());
A = Double. parseDouble (textFieldA. getText());
B = Double. parseDouble (textFieldB. getText());
C = Double. parseDouble (textFieldC. getText());
D = Double. parseDouble (textFieldD. getText());
Z = Double. parseDouble (textFieldZ. getText());
javax.swing.SwingUtilities. invokeLater (new Runnable() {
public void run() {
JFrame. setDefaultLookAndFeelDecorated (true);
}
});
}
catch (IllegalArgumentException o) {


JOptionPane. showMessageDialog (null, valueAssignment, " ...", JOptionPane. PLAIN_MESSAGE);
}

}
}
btnOk. addActionListener(new btnOkActionListener()); //
}


class AnalyticalCalculation extends JFrame {

private String TEXT = "";
private String ABCDmessageEROR = " ." + System. lineSeparator () + " , : B>A D>C";
private double result = 0;
public void create() {
setBounds(200, 200, 800, 500);
getContentPane().setLayout(new BorderLayout());

if ((B <= A) || (D <= C)) {
JOptionPane. showMessageDialog (null, ABCDmessageEROR, " ...", JOptionPane. PLAIN_MESSAGE);
} else {
TEXT = "∫∫φᵢ(φᵤ)'ₓ dx dy = ";
for (int i = 0; i < 20; i++) {
if ((POWx [0][i] + POWx [1][i]!= 0)&&(POWy [0][i] + POWy [1][i]!= -1)) {
if ((CONST [0][i]!= 0) && (CONST [1][i]!= 0) && (POWx [1][i]!= 0) && (Z!= 0)) {
if ((i > 0) && (i < 20)) { TEXT = TEXT + System. lineSeparator () + " + ";}
TEXT = TEXT
+ Double. toString (CONST [0][i]) + ""
+ Double. toString (CONST [1][i]) + ""
+ Integer. toString (POWx [1][i]) + ""
+ Double. toString (Z)
+ MathText. pwr (Integer. toString (POWz [0][i])) + MathText. pwr ("+") + MathText. pwr (Integer. toString (POWz [1][i])) + ""
+ "(" + "a" + MathText. pwr (Integer. toString (POWy [0][i])) + MathText. pwr ("+") + MathText. pwr (Integer. toString (POWy [1][i])) + MathText. pwr ("+" + "1")
+ " ― " + "b" + MathText. pwr (Integer. toString (POWy [0][i])) + MathText. pwr ("+") + MathText. pwr (Integer. toString (POWy [1][i])) + MathText. pwr ("+" + "1") + ")"
+ "" + "(" + "c" + MathText. pwr (Integer. toString (POWx [0][i])) + MathText. pwr ("+") + MathText. pwr (Integer. toString (POWx [1][i]))
+ " ― " + "d" + MathText. pwr (Integer. toString (POWx [0][i])) + MathText. pwr ("+") + MathText. pwr (Integer. toString (POWx [1][i])) + ")"
+ "(" + Integer. toString (POWx [0][i]) + " + " + POWx [1][i] + ")" + MathText. pwr ("-1")
+ "(" + Integer. toString (POWy [0][i]) + " + " + POWy [1][i] + " + " + "1" + ")" + MathText. pwr ("-1");
result = result + CONST [0][i]* CONST [1][i]* POWx [1][i]*Math. pow (Z, POWz [0][i]+ POWz [1][i])
*(Math. pow (A, POWy [0][i]+ POWy [1][i]+1) - Math. pow (B, POWy [0][i]+ POWy [1][i]+1))
*(Math. pow (C, POWx [0][i]+ POWx [1][i]) - Math. pow (D, POWx [0][i]+ POWx [1][i]))
*Math. pow (POWx [0][i] + POWx [1][i],-1)
*Math. pow (POWy [0][i] + POWy [1][i] + 1,-1);
}
}

 

if ((POWx [0][i] + POWx [1][i] == 0)&&(POWy [0][i] + POWy [1][i]!= -1)) {
if ((CONST [0][i]!= 0) && (CONST [1][i]!= 0) && (POWx [1][i]!= 0) && (Z!= 0)) {
if ((i > 0) && (i < 20)) { TEXT = TEXT + System. lineSeparator () + " + ";}
TEXT = TEXT
+ Double. toString (CONST [0][i]) + ""
+ Double. toString (CONST [1][i]) + ""
+ Integer. toString (POWx [1][i]) + ""
+ Double. toString (Z)
+ MathText. pwr (Integer. toString (POWz [0][i])) + MathText. pwr ("+") + MathText. pwr (Integer. toString (POWz [1][i])) + ""
+ "(" + "a" + MathText. pwr (Integer. toString (POWy [0][i])) + MathText. pwr ("+") + MathText. pwr (Integer. toString (POWy [1][i])) + MathText. pwr ("+" + "1")
+ " ― " + "b" + MathText. pwr (Integer. toString (POWy [0][i])) + MathText. pwr ("+") + MathText. pwr (Integer. toString (POWy [1][i])) + MathText. pwr ("+" + "1") + ")"
+ "" + "(ln(c)―ln(d))"
+ "(" + Integer. toString (POWy [0][i]) + " + " + POWy [1][i] + " + " + "1" + ")" + MathText. pwr ("-1");
result = result + CONST [0][i]* CONST [1][i]* POWx [1][i]*Math. pow (Z, POWz [0][i]+ POWz [1][i])
*(Math. pow (A, POWy [0][i]+ POWy [1][i]+1) - Math. pow (B, POWy [0][i]+ POWy [1][i]+1))
*(Math. log (C) - Math. log (D))
*Math. pow (POWy [0][i] + POWy [1][i] + 1,-1);
}
}

 

if ((POWx [0][i] + POWx [1][i]!= 0)&&(POWy [0][i] + POWy [1][i] == -1)){
if ((CONST [0][i]!= 0) && (CONST [1][i]!= 0) && (POWx [1][i]!= 0) && (Z!= 0)) {
if ((i > 0) && (i < 20)) { TEXT = TEXT + System. lineSeparator () + " + ";}
TEXT = TEXT
+ Double. toString (CONST [0][i]) + ""
+ Double. toString (CONST [1][i]) + ""
+ Integer. toString (POWx [1][i]) + ""
+ Double. toString (Z)
+ MathText. pwr (Integer. toString (POWz [0][i])) + MathText. pwr ("+") + MathText. pwr (Integer. toString (POWz [1][i])) + ""
+ "(ln(a)―ln(b))"
+ "" + "(" + "c" + MathText. pwr (Integer. toString (POWx [0][i])) + MathText. pwr ("+") + MathText. pwr (Integer. toString (POWx [1][i]))
+ " ― " + "d" + MathText. pwr (Integer. toString (POWx [0][i])) + MathText. pwr ("+") + MathText. pwr (Integer. toString (POWx [1][i])) + ")"
+ "(" + Integer. toString (POWx [0][i]) + " + " + POWx [1][i] + ")" + MathText. pwr ("-1");
result = result + CONST [0][i]* CONST [1][i]* POWx [1][i]*Math. pow (Z, POWz [0][i]+ POWz [1][i])
*(Math. log (A) - Math. log (B))
*(Math. pow (C, POWx [0][i]+ POWx [1][i]) - Math. pow (D, POWx [0][i]+ POWx [1][i]))
*Math. pow (POWx [0][i] + POWx [1][i],-1);
}
}

 

if ((POWx [0][i] + POWx [1][i] == 0)&&(POWy [0][i] + POWy [1][i] == -1)){
if ((CONST [0][i]!= 0) && (CONST [1][i]!= 0) && (POWx [1][i]!= 0) && (Z!= 0)) {
if ((i > 0) && (i < 20)) { TEXT = TEXT + System. lineSeparator () + " + ";}
TEXT = TEXT
+ Double. toString (CONST [0][i]) + ""
+ Double. toString (CONST [1][i]) + ""
+ Integer. toString (POWx [1][i]) + ""
+ Double. toString (Z)
+ MathText. pwr (Integer. toString (POWz [0][i])) + MathText. pwr ("+") + MathText. pwr (Integer. toString (POWz [1][i])) + ""
+ "(ln(a)―ln(b))"
+ "(ln(c)―ln(d))";
result = result + CONST [0][i]* CONST [1][i]* POWx [1][i]*Math. pow (Z, POWz [0][i]+ POWz [1][i])
*(Math. log (A) - Math. log (B))
*(Math. log (C) - Math. log (D));
}
}

 


}

TEXT = TEXT + " = " + Double. toString (result);

JTextArea IngtegralTextArea = new JTextArea();
IngtegralTextArea.setBounds(10, 60, 762, 500);
IngtegralTextArea.setText(TEXT);
IngtegralTextArea.setEditable(true);
IngtegralTextArea.setLineWrap(true);

Font font2 = new Font("Cambria Math", Font. PLAIN, 22); //
IngtegralTextArea.setFont(font2);

final JScrollPane IntegralScrollPane = new JScrollPane(IngtegralTextArea);
getContentPane().add(IntegralScrollPane);
IntegralScrollPane.setVerticalScrollBarPolicy(JScrollPane. VERTICAL_SCROLLBAR_ALWAYS);
setVisible(true);

}
}
}
}

 

class MathText {
static String pwr(String s){
String[] power = { "⁰", "¹", "²", "³", "⁴", "⁵", "⁶", "⁷", "⁸", "⁹", "⁺", " ", "⁻", "⁽", "⁾" };
String str = "";
boolean minus = false;
for (char c: s.toLowerCase().toCharArray()){
if (c == '0'){str = str + power[0];}
if (c == '1'){str = str + power[1];}
if (c == '2'){str = str + power[2];}
if (c == '3'){str = str + power[3];}
if (c == '4'){str = str + power[4];}
if (c == '5'){str = str + power[5];}
if (c == '6'){str = str + power[6];}
if (c == '7'){str = str + power[7];}
if (c == '8'){str = str + power[8];}
if (c == '9'){str = str + power[9];}
if (c == '+'){str = str + power[10];}
if (c == ' '){str = str + power[11];}
if (c == '-'){str = str + "⁽" + power[12];
if (c == '('){str = str + power[13];}
if (c == ')'){str = str + power[14];}
minus = true;}
}

if (minus == true) {str = str + "⁾";}
return str;

}
}

 

public class Main {
public static void main(String[] args) {
IntegralFrame frame = new IntegralFrame();
frame.setVisible(true);
}
}

. . , .

, Java. , , .

:

IntegralFrame, MathText, Main.

IntegralFrame:

btnResultEventListener, monomBoxActionListener,

polinomBoxActionListener, btnOkActionListener,

AnalyticalCalculation.

.

 

https://docs.oracle.com/javase/7/docs/api/javax/swing/package-summary.html

https://javaswing.wordpress.com/





:


: 2017-02-24; !; : 268 |


:

:

.
==> ...

1688 - | 1667 -


© 2015-2024 lektsii.org - -

: 0.053 .