From db6b55901486d04e3f41a6e1e805ca5a20cef1ec Mon Sep 17 00:00:00 2001 From: Abraham Date: Sat, 18 Jun 2016 09:54:28 -0600 Subject: [PATCH 01/25] pre pull --- src/com/GUI/GUI.form | 23 +++++++++++++++++++++++ src/com/GUI/GUI.java | 10 ++++++++++ src/com/Main.java | 26 ++++++++++++++++++++++++-- 3 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 src/com/GUI/GUI.form create mode 100644 src/com/GUI/GUI.java diff --git a/src/com/GUI/GUI.form b/src/com/GUI/GUI.form new file mode 100644 index 0000000..5378d06 --- /dev/null +++ b/src/com/GUI/GUI.form @@ -0,0 +1,23 @@ + +
+ + + + + + + + + + + + + + + + + + + + +
diff --git a/src/com/GUI/GUI.java b/src/com/GUI/GUI.java new file mode 100644 index 0000000..36f2aa1 --- /dev/null +++ b/src/com/GUI/GUI.java @@ -0,0 +1,10 @@ +package com.GUI; + +import javax.swing.*; + +/** + * Created by abrahamon on 17/06/16. + */ +public class GUI { + private JButton button1; +} diff --git a/src/com/Main.java b/src/com/Main.java index fec1d8d..7d82fe6 100644 --- a/src/com/Main.java +++ b/src/com/Main.java @@ -1,9 +1,31 @@ package com; +import javax.swing.*; +import java.util.*; +import com.GUI.*; + public class Main { public static void main(String[] args) { - // write your code here - System.out.print("ok"); + + //This code open the main window + JFrame f = new JFrame("Diabolic Magic Square"); + GUI userInterface = new GUI(); +// f.setContentPane(userInterface.panel1); + f.setBounds(10,20,320,485); + f.setResizable(false); + f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + f.setVisible(true); + System.out.println("Inicio"); + + //While to capture the instructions of the user + while (true){ + System.out.println("--"); + Scanner scan = new Scanner(System.in); + String s = scan.next(); + System.out.println(s); + + } + } } From d9c22a521bb5cbd8bcd00c0ff3800580ba04a85b Mon Sep 17 00:00:00 2001 From: tvlenin Date: Sat, 18 Jun 2016 10:18:27 -0600 Subject: [PATCH 02/25] remove .iml --- calculator.iml | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 calculator.iml diff --git a/calculator.iml b/calculator.iml deleted file mode 100644 index c90834f..0000000 --- a/calculator.iml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file From 2763743f432f6938927d18062386833f20875064 Mon Sep 17 00:00:00 2001 From: tvlenin Date: Sat, 18 Jun 2016 10:22:49 -0600 Subject: [PATCH 03/25] remove .iml --- .idea/uiDesigner.xml | 124 ------------------------------------------- 1 file changed, 124 deletions(-) delete mode 100644 .idea/uiDesigner.xml diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml deleted file mode 100644 index e96534f..0000000 --- a/.idea/uiDesigner.xml +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file From d89e05454e95b4a4b30232a527700ec09484bedb Mon Sep 17 00:00:00 2001 From: Abraham Date: Sat, 18 Jun 2016 10:23:36 -0600 Subject: [PATCH 04/25] merger con lenin branch --- src/com/GUI/GUI.form | 11 +---------- src/com/GUI/GUI.java | 1 - 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/src/com/GUI/GUI.form b/src/com/GUI/GUI.form index 5378d06..c49ef8b 100644 --- a/src/com/GUI/GUI.form +++ b/src/com/GUI/GUI.form @@ -9,15 +9,6 @@ - - - - - - - - - - + diff --git a/src/com/GUI/GUI.java b/src/com/GUI/GUI.java index 36f2aa1..fc99917 100644 --- a/src/com/GUI/GUI.java +++ b/src/com/GUI/GUI.java @@ -6,5 +6,4 @@ * Created by abrahamon on 17/06/16. */ public class GUI { - private JButton button1; } From 0d57776db1254709fc0c66b75b7296bf9f5ffc06 Mon Sep 17 00:00:00 2001 From: tvlenin Date: Sat, 18 Jun 2016 11:46:51 -0600 Subject: [PATCH 05/25] Substraction and sum --- src/com/main.java | 10 ++++++++++ src/com/operations.java | 32 ++++++++++++++++++++++++++++---- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/src/com/main.java b/src/com/main.java index e1449da..1137e13 100644 --- a/src/com/main.java +++ b/src/com/main.java @@ -7,9 +7,19 @@ public class main{ String eq2 = "143|225|144"; public static void main(String[] args) { String eq2 = "+143|+125|+144|+125|-544|+225"; + String eq1 = "+143|+125|+144"; + String eq3 = "+125|-544|+225"; operations op = new operations(); System.out.println(eq2); System.out.println(op.reduceEQ(eq2.replace("|",","))); + System.out.println("EQ1 = " + eq1); + System.out.println("EQ3 = " +eq3); + System.out.println(op.substPol(eq1.replace("|",","),eq3.replace("|",","))); + + + + + } diff --git a/src/com/operations.java b/src/com/operations.java index 397c6e9..2124772 100644 --- a/src/com/operations.java +++ b/src/com/operations.java @@ -40,10 +40,6 @@ public String reduceEQ (String eq){ if(eqAux[k] != "null"){ result +=eqAux[k] + "|"; } - - - - } if (result.endsWith("|")) { result = result.substring(0, result.length() - 1); @@ -94,4 +90,32 @@ else if(numb1 > numb2) return result; } + public String sumPol(String num1, String num2){ + String newNum = num1+","+num2; + return reduceEQ(newNum); + } + public String substPol(String num1, String num2){ + String result = ""; + String [] eqAux = num2.split(","); + int eqLength = eqAux.length; + for (int i =0 ; i < eqLength ; i++){ + if(eqAux[i].charAt(0) == '-'){ + eqAux[i] = eqAux[i].replace("-","+"); + }else{ + eqAux[i] = eqAux[i].replace("+","-"); + } + + } + for ( int k = 0; k < eqLength; k++){ + if(k != eqLength-1 ){ + result +=eqAux[k] + ","; + }else{ + result +=eqAux[k] ; + } + } + + return sumPol(num1,result); + } + } + From 85ad97ca4b3dae479dad05eb988a7dd2ad933866 Mon Sep 17 00:00:00 2001 From: Abraham Date: Sat, 18 Jun 2016 11:48:39 -0600 Subject: [PATCH 06/25] botones en la GUI --- src/com/GUI/GUI.form | 214 ++++++++++++++++++++++++++++++++++++++++++- src/com/GUI/GUI.java | 49 +++++++++- src/com/Main.java | 24 +++-- 3 files changed, 270 insertions(+), 17 deletions(-) diff --git a/src/com/GUI/GUI.form b/src/com/GUI/GUI.form index c49ef8b..6d98693 100644 --- a/src/com/GUI/GUI.form +++ b/src/com/GUI/GUI.form @@ -1,14 +1,218 @@
- + - - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/com/GUI/GUI.java b/src/com/GUI/GUI.java index fc99917..c35e39e 100644 --- a/src/com/GUI/GUI.java +++ b/src/com/GUI/GUI.java @@ -1,9 +1,54 @@ package com.GUI; import javax.swing.*; +import java.awt.event.ComponentAdapter; /** - * Created by abrahamon on 17/06/16. + * Created by abrahamon on 18/06/16. */ -public class GUI { +public class GUI extends JFrame{ + + public JPanel panelMain; + private JPanel panelInput; + private JPanel panelButtons; + private JButton a7Button; + private JButton delButton; + private JButton a8Button; + private JButton a9Button; + private JButton eButton; + private JButton a4Button; + private JButton a5Button; + private JButton a6Button; + private JButton mulButton; + private JButton clearButton; + private JButton a1Button; + private JButton a0Button; + private JButton a2Button; + private JButton a3Button; + private JButton susButton; + private JButton equalButton; + private JButton espaceButton; + private JButton barButton; + private JButton addButton; + + private String inputData; + + public GUI(){ + super("Polynomial Calculator"); + super.setContentPane(panelMain); + super.setBounds(200,100,500,350); //The bounds start(X,Y) bounds(Y,X) + super.setResizable(false); + super.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + super.setVisible(true); + + inputData=""; + + + + } + + + private void createUIComponents() { + // TODO: place custom component creation code here + } } diff --git a/src/com/Main.java b/src/com/Main.java index 7d82fe6..614d896 100644 --- a/src/com/Main.java +++ b/src/com/Main.java @@ -9,22 +9,26 @@ public class Main { public static void main(String[] args) { //This code open the main window - JFrame f = new JFrame("Diabolic Magic Square"); + //JFrame f = new JFrame("Polynomial Calculator"); //This is the main Frame + //GUI userInterface = new GUI(); // + //f.setContentPane(userInterface.panelMain); // + //f.setBounds(200,100,500,350); //The bounds start(X,Y) bounds(Y,X) + //f.setResizable(false); + //f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //Close default method + //f.pack(); //sizes the frame so that all its contents are at or above their preferred sizes + //f.setVisible(true); // + GUI userInterface = new GUI(); -// f.setContentPane(userInterface.panel1); - f.setBounds(10,20,320,485); - f.setResizable(false); - f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - f.setVisible(true); - System.out.println("Inicio"); + //While to capture the instructions of the user - while (true){ - System.out.println("--"); + boolean flag = true; + while (flag){ + System.out.println("Ingres the operation"); Scanner scan = new Scanner(System.in); String s = scan.next(); System.out.println(s); - + if(s.contains("exit")){flag=false;System.out.println("Command promt finished");} } } From 315889d8cd9bcb1dd960bd4fe1d55a5d510b139c Mon Sep 17 00:00:00 2001 From: Abraham Date: Sat, 18 Jun 2016 15:20:09 -0600 Subject: [PATCH 07/25] plotter agregado --- src/com/GUI/GUI.form | 30 ++-- src/com/GUI/GUI.java | 326 ++++++++++++++++++++++++++++++++++++++- src/com/GUI/plotter.form | 13 ++ src/com/GUI/plotter.java | 98 ++++++++++++ src/com/Main.java | 2 +- 5 files changed, 453 insertions(+), 16 deletions(-) create mode 100644 src/com/GUI/plotter.form create mode 100644 src/com/GUI/plotter.java diff --git a/src/com/GUI/GUI.form b/src/com/GUI/GUI.form index 6d98693..f973686 100644 --- a/src/com/GUI/GUI.form +++ b/src/com/GUI/GUI.form @@ -23,15 +23,15 @@ - + - + - +
@@ -164,14 +164,6 @@ - - - - - - - - @@ -211,6 +203,22 @@ + + + + + + + + + + + + + + + + diff --git a/src/com/GUI/GUI.java b/src/com/GUI/GUI.java index c35e39e..07be549 100644 --- a/src/com/GUI/GUI.java +++ b/src/com/GUI/GUI.java @@ -1,7 +1,8 @@ package com.GUI; import javax.swing.*; -import java.awt.event.ComponentAdapter; +import java.awt.event.*; +import com.GUI.plotter; /** * Created by abrahamon on 18/06/16. @@ -30,25 +31,342 @@ public class GUI extends JFrame{ private JButton espaceButton; private JButton barButton; private JButton addButton; + private JLabel dataLabel; + private JButton plotButton; private String inputData; public GUI(){ + super("Polynomial Calculator"); super.setContentPane(panelMain); super.setBounds(200,100,500,350); //The bounds start(X,Y) bounds(Y,X) super.setResizable(false); - super.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + super.setDefaultCloseOperation(super.EXIT_ON_CLOSE); super.setVisible(true); inputData=""; + //listeners for each botton + a0Button.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + inputData=inputData+"0"; + dataLabel.setText(inputData); + } + }); + a1Button.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + inputData=inputData+"1"; + dataLabel.setText(inputData); + } + }); + a2Button.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + inputData=inputData+"2"; + dataLabel.setText(inputData); + } + }); + a3Button.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + inputData=inputData+"3"; + dataLabel.setText(inputData); + } + }); + a4Button.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + inputData=inputData+"4"; + dataLabel.setText(inputData); + } + }); + a5Button.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + inputData=inputData+"5"; + dataLabel.setText(inputData); + } + }); + a6Button.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + inputData=inputData+"6"; + dataLabel.setText(inputData); + } + }); + a7Button.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + inputData=inputData+"7"; + dataLabel.setText(inputData); + } + }); + a8Button.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + inputData=inputData+"8"; + dataLabel.setText(inputData); + } + }); + a9Button.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + inputData=inputData+"9"; + dataLabel.setText(inputData); + } + }); + espaceButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + inputData=inputData+" "; + dataLabel.setText(inputData); + } + }); + barButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + inputData=inputData+"|"; + dataLabel.setText(inputData); + } + }); + //listeners for the keys + a7Button.addKeyListener(new KeyAdapter() { + @Override + public void keyTyped(KeyEvent e) { + super.keyTyped(e); + GUI.this.keyPressed(e.getKeyChar()); + } + }); + a8Button.addKeyListener(new KeyAdapter() { + @Override + public void keyTyped(KeyEvent e) { + super.keyTyped(e); + GUI.this.keyPressed(e.getKeyChar()); + } + }); + a9Button.addKeyListener(new KeyAdapter() { + @Override + public void keyTyped(KeyEvent e) { + super.keyTyped(e); + GUI.this.keyPressed(e.getKeyChar()); + } + }); + a4Button.addKeyListener(new KeyAdapter() { + @Override + public void keyTyped(KeyEvent e) { + super.keyTyped(e); + GUI.this.keyPressed(e.getKeyChar()); + } + }); + a5Button.addKeyListener(new KeyAdapter() { + @Override + public void keyTyped(KeyEvent e) { + super.keyTyped(e); + GUI.this.keyPressed(e.getKeyChar()); + } + }); + a6Button.addKeyListener(new KeyAdapter() { + @Override + public void keyTyped(KeyEvent e) { + super.keyTyped(e); + GUI.this.keyPressed(e.getKeyChar()); + } + }); + a1Button.addKeyListener(new KeyAdapter() { + @Override + public void keyTyped(KeyEvent e) { + super.keyTyped(e); + GUI.this.keyPressed(e.getKeyChar()); + } + }); + a2Button.addKeyListener(new KeyAdapter() { + @Override + public void keyTyped(KeyEvent e) { + super.keyTyped(e); + GUI.this.keyPressed(e.getKeyChar()); + } + }); + a3Button.addKeyListener(new KeyAdapter() { + @Override + public void keyTyped(KeyEvent e) { + super.keyTyped(e); + GUI.this.keyPressed(e.getKeyChar()); + } + }); + a0Button.addKeyListener(new KeyAdapter() { + @Override + public void keyTyped(KeyEvent e) { + super.keyTyped(e); + GUI.this.keyPressed(e.getKeyChar()); + } + }); + espaceButton.addKeyListener(new KeyAdapter() { + @Override + public void keyTyped(KeyEvent e) { + super.keyTyped(e); + GUI.this.keyPressed(e.getKeyChar()); + } + }); + barButton.addKeyListener(new KeyAdapter() { + @Override + public void keyTyped(KeyEvent e) { + super.keyTyped(e); + GUI.this.keyPressed(e.getKeyChar()); + } + }); + eButton.addKeyListener(new KeyAdapter() { + @Override + public void keyTyped(KeyEvent e) { + super.keyTyped(e); + GUI.this.keyPressed(e.getKeyChar()); + } + }); + mulButton.addKeyListener(new KeyAdapter() { + @Override + public void keyTyped(KeyEvent e) { + super.keyTyped(e); + GUI.this.keyPressed(e.getKeyChar()); + } + }); + susButton.addKeyListener(new KeyAdapter() { + @Override + public void keyTyped(KeyEvent e) { + super.keyTyped(e); + GUI.this.keyPressed(e.getKeyChar()); + } + }); + addButton.addKeyListener(new KeyAdapter() { + @Override + public void keyTyped(KeyEvent e) { + super.keyTyped(e); + GUI.this.keyPressed(e.getKeyChar()); + } + }); + delButton.addKeyListener(new KeyAdapter() { + @Override + public void keyTyped(KeyEvent e) { + super.keyTyped(e); + GUI.this.keyPressed(e.getKeyChar()); + } + }); + clearButton.addKeyListener(new KeyAdapter() { + @Override + public void keyTyped(KeyEvent e) { + super.keyTyped(e); + GUI.this.keyPressed(e.getKeyChar()); + } + }); + equalButton.addKeyListener(new KeyAdapter() { + @Override + public void keyTyped(KeyEvent e) { + super.keyTyped(e); + GUI.this.keyPressed(e.getKeyChar()); + } + }); + plotButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + plotter sinObject = new plotter(inputData,10,10); + double y; + for ( double x = -10; x<=10; x+=0.01 ) { + //EVALUATE THE CORRECTO FUNCTION + y = Math.sin(x); //equation + sinObject.drawPoint(x,y); + } + } + }); } + //every listener calls this method, which selects the propper action + private void keyPressed(char key){ + if(key=='0'){ + inputData=inputData+"0"; + dataLabel.setText(inputData); + } + else if(key=='1'){ + inputData=inputData+"1"; + dataLabel.setText(inputData); + } + else if(key=='2'){ + inputData=inputData+"2"; + dataLabel.setText(inputData); + } + else if(key=='3'){ + inputData=inputData+"3"; + dataLabel.setText(inputData); + } + else if(key=='4'){ + inputData=inputData+"4"; + dataLabel.setText(inputData); + } + else if(key=='5'){ + inputData=inputData+"5"; + dataLabel.setText(inputData); + } + else if(key=='6'){ + inputData=inputData+"6"; + dataLabel.setText(inputData); + } + else if(key=='7'){ + inputData=inputData+"7"; + dataLabel.setText(inputData); + } + else if(key=='8'){ + inputData=inputData+"8"; + dataLabel.setText(inputData); + } + else if(key=='9'){ + inputData=inputData+"9"; + dataLabel.setText(inputData); + } + else if(key=='s'){ + inputData=inputData+" "; + dataLabel.setText(inputData); + } + else if(key=='|'){ + inputData=inputData+"|"; + dataLabel.setText(inputData); + } + else if(key=='E' || key=='e'){ + evaluate(); + } + else if(key=='D' || key=='d'){ + delete(); + } + else if(key=='C' || key=='c' ){ + clear(); + } + else if(key=='*'){ + multiplication(); + } + else if(key=='+'){ + addition(); + } + else if(key=='-'){ + substraction(); + } + else if(key=='='){ + getResult(); + } + else{System.out.println("Unknown: "+key);} + } - private void createUIComponents() { - // TODO: place custom component creation code here + //Methods for each of the operations + private void delete(){} + private void clear(){ + inputData=""; + dataLabel.setText("0"); } + private void evaluate(){} + private void addition(){} + private void substraction(){} + private void multiplication(){} + private void getResult(){} + + } diff --git a/src/com/GUI/plotter.form b/src/com/GUI/plotter.form new file mode 100644 index 0000000..0a3b3cd --- /dev/null +++ b/src/com/GUI/plotter.form @@ -0,0 +1,13 @@ + +
+ + + + + + + + + + +
diff --git a/src/com/GUI/plotter.java b/src/com/GUI/plotter.java new file mode 100644 index 0000000..d6a907f --- /dev/null +++ b/src/com/GUI/plotter.java @@ -0,0 +1,98 @@ +package com.GUI; + +import javax.swing.*; +import java.awt.*; + +/** + * Created by abrahamon on 18/06/16. + */ +public class plotter extends JFrame { + private static Graphics gBuf = null; + private static GraphPaperCanvas canvas = null; + private static Image vm = null; + private int x, y; + private int w, h; + + public plotter(String name, int x, int y ){ + if ( canvas == null ) { + setTitle(name); + setSize(340,370); + setLocation(20,50); + + canvas = new GraphPaperCanvas(null); + getContentPane().add(canvas); + setVisible(true); + + vm = canvas.createImage(1100,950); + gBuf = vm.getGraphics(); + canvas.setVm(vm); + + setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + } + + this.x = x; + this.y = y; + w = 300; + h = 300; + + drawBounds(); + gBuf.setColor( Color.GREEN ); + } + + public void drawBounds() { + Color cur = gBuf.getColor(); + gBuf.setColor( Color.LIGHT_GRAY ); + for ( int d=0; d 10 || px < -10 || py > 10 || py < -10 ) + return; + px *= w/20; + py *= h/20; + px += w/2 + 1; + py = h/2 - py + 1; + gBuf.drawLine( x+(int)px, y+(int)py, x+(int)px, y+(int)py ); + canvas.repaint(); + } + +} + + + + +class GraphPaperCanvas extends Canvas { + private Image vm; + + public GraphPaperCanvas( Image vm ) { + this.vm = vm; + setBackground( Color.white ); + } + + public void setVm( Image vm ) { + this.vm = vm; + } + + @Override + public void paint( Graphics g ) { + g.drawImage(vm,0,0,this); + } + + @Override + public void update(Graphics g) { paint(g); } + +} diff --git a/src/com/Main.java b/src/com/Main.java index 614d896..0417320 100644 --- a/src/com/Main.java +++ b/src/com/Main.java @@ -21,7 +21,7 @@ public static void main(String[] args) { GUI userInterface = new GUI(); - //While to capture the instructions of the user + //While flag to capture the instructions of the user boolean flag = true; while (flag){ System.out.println("Ingres the operation"); From 735e14e9090a38754fe0c96f098839d247e5ac38 Mon Sep 17 00:00:00 2001 From: tvlenin Date: Sat, 18 Jun 2016 17:49:37 -0600 Subject: [PATCH 08/25] final operations --- src/com/main.java | 10 +++++++-- src/com/operations.java | 48 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+), 2 deletions(-) diff --git a/src/com/main.java b/src/com/main.java index 1137e13..867e83c 100644 --- a/src/com/main.java +++ b/src/com/main.java @@ -7,8 +7,8 @@ public class main{ String eq2 = "143|225|144"; public static void main(String[] args) { String eq2 = "+143|+125|+144|+125|-544|+225"; - String eq1 = "+143|+125|+144"; - String eq3 = "+125|-544|+225"; + String eq1 = "+143|+122|+144"; + String eq3 = "+122|-523"; operations op = new operations(); System.out.println(eq2); System.out.println(op.reduceEQ(eq2.replace("|",","))); @@ -16,6 +16,12 @@ public static void main(String[] args) { System.out.println("EQ3 = " +eq3); System.out.println(op.substPol(eq1.replace("|",","),eq3.replace("|",","))); + String numAux1 = "-15023"; + String numAux2 = "-15045"; + System.out.println( op.multiPol(eq1.replace("|",","),eq3.replace("|",","))); + + System.out.println(op.eval(eq3.replace("|",","),2,3)); + diff --git a/src/com/operations.java b/src/com/operations.java index 2124772..7f89945 100644 --- a/src/com/operations.java +++ b/src/com/operations.java @@ -116,6 +116,54 @@ public String substPol(String num1, String num2){ return sumPol(num1,result); } + public String multiPol(String num1, String num2){ + String result = ""; + String numAux1 = ""; + String numAux2 = ""; + String numAux3 = ""; + String [] eqAux1 = num1.split(","); + String [] eqAux2= num2.split(","); + int eqLength1 = eqAux1.length; + int eqLength2 = eqAux2.length; + + for (int i = 0 ; i < eqLength1 ; i++){ + numAux1 = eqAux1[i]; + for (int j = 0; j < eqLength2; j++){ + numAux2 = eqAux2[j]; + if (numAux1.charAt(0) == numAux2.charAt(0)){numAux3 += "+";} + else{numAux3 += "-";} + numAux3+= Integer.parseInt(numAux1.substring(1,numAux1.length()-2)) * Integer.parseInt(numAux2.substring(1,numAux2.length()-2)); + numAux3 += Integer.parseInt(numAux1.charAt(numAux1.length()-2)+"") + Integer.parseInt(numAux2.charAt(numAux2.length()-2)+"") ; + numAux3 += Integer.parseInt(numAux1.charAt(numAux1.length()-1)+"") + Integer.parseInt(numAux2.charAt(numAux2.length()-1)+"") ; + result+=numAux3+"|"; + numAux3 = ""; + } + //result+=numAux3+"|"; + } + + result=result.substring(0,result.length()-1); + + + return result; + } + public int eval (String poly, int x ,int y){ + int result = 0; + int numAux = 0; + String [] eqAux = poly.split(","); + int eqLength = eqAux.length; + + for(int i = 0; i < eqLength ; i++ ){ + numAux += Integer.parseInt(eqAux[i].substring(0,eqAux[i].length()-2)) * (int)Math.pow(x,Integer.parseInt(eqAux[i].charAt(eqAux[i].length()-2)+""))* (int)Math.pow(y,Integer.parseInt(eqAux[i].charAt(eqAux[i].length()-1)+"")); + + result +=numAux; + numAux = 0; + } + + + + return result; + } + } From 4ff6fa4506f5e3e9607f4b486169d627597b5ca1 Mon Sep 17 00:00:00 2001 From: tvlenin Date: Mon, 20 Jun 2016 13:31:46 -0600 Subject: [PATCH 09/25] despiche total --- src/com/op.java | 83 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 src/com/op.java diff --git a/src/com/op.java b/src/com/op.java new file mode 100644 index 0000000..64356f9 --- /dev/null +++ b/src/com/op.java @@ -0,0 +1,83 @@ +package com; +import java.lang.*; +/** + * Created by tvlenin on 20/06/16. + */ +public class op { + public String reduceEQ (String eq){ + String result = ""; + String [] equ = eq.split(","); + String [] eqAux; + String [] eqAux2; + + + int eqLength = equ.length; + for (int i = 0 ; i < eqLength; i++){ + eqAux = equ[i].split(" "); + for(int j = i+1; j < eqLength ; j++ ){ + eqAux2 = equ[j].split(" "); + if (eqAux[2].compareTo( eqAux2[2]) == 0 && eqAux[3].compareTo(eqAux2[3]) == 0 && equ[i]!="null"){ + equ[i] = getSum(eqAux[0]+eqAux[1],eqAux2[0]+eqAux2[1])+" " +eqAux[2]+" "+eqAux[3]; + equ[j] = "null"; + } + } + } + for ( int k = 0; k < eqLength; k++){ + if(equ[k] != "null"){ + result +=equ[k] + "|"; + } + } + if (result.endsWith("|")) { + result = result.substring(0, result.length() - 1); + } + + + + return result; + } + private String getSum(String num1, String num2){ + + String result = ""; + boolean flag = false; + //String variables = (num1.charAt(num1.length()-2))+""+(num1.charAt(num1.length()-1)); + char symbol1 = num1.charAt(0); + char symbol2 = num2.charAt(0); + int numb1 = Integer.parseInt(num1); + int numb2 = Integer.parseInt(num2); + + if (symbol1 == '-' && symbol2 == '-'){ + result = "- "+(numb1+numb2) +""; + } + else if (symbol1 == '-' && symbol2 == '+'){ + if (numb1 == numb2 ) + flag = true; + else if (numb2 > numb1) + result = "+ " + (-numb1+numb2) ; + else + result = "- "+(numb1-numb2) +""; + } + else if (symbol1 == '+' && symbol2 == '-'){ + if (numb1 == numb2 ) + flag = true; + else if(numb1 > numb2) + result ="+ " + (numb1-numb2) ; + else + result = "- "+(-numb1+numb2)+""; + } + else{ + result = "+ "+(numb1+numb2) ; + } + + if(flag) + result =" "; + + + + + + return result; + } + + + +} From a77628c11a72986138fbc0620058f2af1d178f14 Mon Sep 17 00:00:00 2001 From: Abraham Date: Mon, 20 Jun 2016 13:33:50 -0600 Subject: [PATCH 10/25] pre commit --- src/com/GUI/GUI.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/com/GUI/GUI.java b/src/com/GUI/GUI.java index 07be549..56207f6 100644 --- a/src/com/GUI/GUI.java +++ b/src/com/GUI/GUI.java @@ -40,7 +40,7 @@ public GUI(){ super("Polynomial Calculator"); super.setContentPane(panelMain); - super.setBounds(200,100,500,350); //The bounds start(X,Y) bounds(Y,X) + super.setBounds(200,100,475,300); //The bounds start(X,Y) bounds(X,Y) super.setResizable(false); super.setDefaultCloseOperation(super.EXIT_ON_CLOSE); super.setVisible(true); @@ -133,6 +133,12 @@ public void actionPerformed(ActionEvent e) { } }); + clearButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + clear(); + } + }); //listeners for the keys a7Button.addKeyListener(new KeyAdapter() { @Override @@ -274,12 +280,13 @@ public void actionPerformed(ActionEvent e) { plotter sinObject = new plotter(inputData,10,10); double y; for ( double x = -10; x<=10; x+=0.01 ) { - //EVALUATE THE CORRECTO FUNCTION + //EVALUATE THE CORRECT FUNCTION HERE y = Math.sin(x); //equation sinObject.drawPoint(x,y); } } }); + } //every listener calls this method, which selects the propper action private void keyPressed(char key){ From ad7411f801ff219bc158f4844b62ad337c13e8b7 Mon Sep 17 00:00:00 2001 From: Abraham Date: Mon, 20 Jun 2016 15:56:51 -0600 Subject: [PATCH 11/25] verificacion del texto --- src/com/Main.java | 14 ++++++++++++-- src/com/op.java | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 2 deletions(-) diff --git a/src/com/Main.java b/src/com/Main.java index 0417320..3ddff1c 100644 --- a/src/com/Main.java +++ b/src/com/Main.java @@ -18,7 +18,17 @@ public static void main(String[] args) { //f.pack(); //sizes the frame so that all its contents are at or above their preferred sizes //f.setVisible(true); // - GUI userInterface = new GUI(); + + + + op o = new op(); + if(o.validate("- 1 2 3,- 2 4 5,+ 1 4 5")){ + System.out.println("Sí sirve"); + }else{ + System.out.println("No sirve"); + } + + /*GUI userInterface = new GUI(); //While flag to capture the instructions of the user @@ -29,7 +39,7 @@ public static void main(String[] args) { String s = scan.next(); System.out.println(s); if(s.contains("exit")){flag=false;System.out.println("Command promt finished");} - } + }*/ } } diff --git a/src/com/op.java b/src/com/op.java index 64356f9..7b9b215 100644 --- a/src/com/op.java +++ b/src/com/op.java @@ -80,4 +80,39 @@ else if(numb1 > numb2) + + + + public boolean validate(String pData){ + boolean ans = true; + String [] a = pData.split(","); + String [] term; + for(int i=0; i Date: Mon, 20 Jun 2016 15:58:48 -0600 Subject: [PATCH 12/25] despiche total --- src/com/op.java | 38 +++++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/src/com/op.java b/src/com/op.java index 64356f9..23807e9 100644 --- a/src/com/op.java +++ b/src/com/op.java @@ -9,18 +9,30 @@ public String reduceEQ (String eq){ String [] equ = eq.split(","); String [] eqAux; String [] eqAux2; - - int eqLength = equ.length; - for (int i = 0 ; i < eqLength; i++){ + + for (int i = 0 ; i < eqLength-1; i++) { eqAux = equ[i].split(" "); - for(int j = i+1; j < eqLength ; j++ ){ - eqAux2 = equ[j].split(" "); - if (eqAux[2].compareTo( eqAux2[2]) == 0 && eqAux[3].compareTo(eqAux2[3]) == 0 && equ[i]!="null"){ - equ[i] = getSum(eqAux[0]+eqAux[1],eqAux2[0]+eqAux2[1])+" " +eqAux[2]+" "+eqAux[3]; - equ[j] = "null"; + for (int j = i+1 ; j < eqLength-2 ;j++){ + if (equ[j] != "null" && equ[i] != "null" ){ + eqAux2 = equ[j].split(" "); + System.out.println(equ[i]); + System.out.println(equ[j]); + System.out.println(eqAux[2]); + System.out.println(eqAux2[2]); + System.out.println(eqAux[3]); + System.out.println(eqAux2[3]); + System.out.println(eqAux2[2]); + if (eqAux[2].compareTo(eqAux2[2]) == 0 && eqAux[3].compareTo(eqAux2[3]) == 0){ + equ[i] = getSum(eqAux[0]+eqAux[1],eqAux2[0]+eqAux2[1])+" "+eqAux[2]+" "+eqAux[3]; + eqAux = equ[j].split(" "); + equ[j] = "null"; + + } + } } + } for ( int k = 0; k < eqLength; k++){ if(equ[k] != "null"){ @@ -35,15 +47,15 @@ public String reduceEQ (String eq){ return result; } - private String getSum(String num1, String num2){ + public String getSum(String num1, String num2){ String result = ""; boolean flag = false; //String variables = (num1.charAt(num1.length()-2))+""+(num1.charAt(num1.length()-1)); char symbol1 = num1.charAt(0); char symbol2 = num2.charAt(0); - int numb1 = Integer.parseInt(num1); - int numb2 = Integer.parseInt(num2); + int numb1 = Math.abs(Integer.parseInt(num1)); + int numb2 = Math.abs(Integer.parseInt(num2)); if (symbol1 == '-' && symbol2 == '-'){ result = "- "+(numb1+numb2) +""; @@ -52,7 +64,7 @@ else if (symbol1 == '-' && symbol2 == '+'){ if (numb1 == numb2 ) flag = true; else if (numb2 > numb1) - result = "+ " + (-numb1+numb2) ; + result = "+ " + (numb2-numb1) ; else result = "- "+(numb1-numb2) +""; } @@ -69,7 +81,7 @@ else if(numb1 > numb2) } if(flag) - result =" "; + result ="null"; From 945b5115add37a20c8f5fa86ef82bac3a9076342 Mon Sep 17 00:00:00 2001 From: Abraham Date: Mon, 20 Jun 2016 17:06:14 -0600 Subject: [PATCH 13/25] reduce --- src/com/Main.java | 12 +++++++----- src/com/op.java | 31 +++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 5 deletions(-) diff --git a/src/com/Main.java b/src/com/Main.java index 3ddff1c..f9f61ac 100644 --- a/src/com/Main.java +++ b/src/com/Main.java @@ -22,11 +22,13 @@ public static void main(String[] args) { op o = new op(); - if(o.validate("- 1 2 3,- 2 4 5,+ 1 4 5")){ - System.out.println("Sí sirve"); - }else{ - System.out.println("No sirve"); - } + //probar la verificacion + //if(o.validate("- 1 2 3,- 2 4 5,+ 1 4 5")){ + // System.out.println("Sí sirve"); + //}else{ + // System.out.println("No sirve"); + //} + System.out.println(o.reduce("- 1 2 2,+ 2 2 2,+ 3 2 2,- 3 2 2")); /*GUI userInterface = new GUI(); diff --git a/src/com/op.java b/src/com/op.java index 20f10d8..a128549 100644 --- a/src/com/op.java +++ b/src/com/op.java @@ -4,6 +4,37 @@ * Created by tvlenin on 20/06/16. */ public class op { + + public String reduce(String pData){ + String ans=""; + String [] equ = pData.split(","); + String [] data1; + String [] data2; + for(int i=0; i Date: Mon, 20 Jun 2016 17:56:03 -0600 Subject: [PATCH 14/25] prepush --- src/com/main.java | 80 +++++++++++++++++++++++++++++++++++++++-- src/com/operations.java | 4 --- 2 files changed, 78 insertions(+), 6 deletions(-) diff --git a/src/com/main.java b/src/com/main.java index 867e83c..6a209c8 100644 --- a/src/com/main.java +++ b/src/com/main.java @@ -6,10 +6,39 @@ public class main{ String eq1= "123|245|145"; String eq2 = "143|225|144"; public static void main(String[] args) { - String eq2 = "+143|+125|+144|+125|-544|+225"; + String eq2 = "+ 100 2 5,+ 2 2 5,- 3 3 5,- 2 4 3,+ 3 4 3"; String eq1 = "+143|+122|+144"; String eq3 = "+122|-523"; - operations op = new operations(); + op ope = new op(); + //System.out.println(ope.reduceEQ(eq2)); + // System.out.println(ope.getSum("-1","+2")); + + String [] print = eq2.split(","); + int len = print.length; + String result = ""; + for (int i = 0; i < len; i++){ + if (i != len-1) + result += print[i]+" | "; + else + result += print[i]; + } + System.out.println(result); + + + + + + + + + + + + + + + + /* System.out.println(eq2); System.out.println(op.reduceEQ(eq2.replace("|",","))); System.out.println("EQ1 = " + eq1); @@ -28,6 +57,53 @@ public static void main(String[] args) { + + + + + + + //Agrega el signo de positivo a las que no lo contienen + String [] p = eq2.split(","); + for (int i = 0 ; i < p.length;i++){ + if (p[i].charAt(0) == '-' || p[i].charAt(0) == '+'){ + System.out.println("Si"); + } + else{p[i] = "+"+p[i] ;} + } + String result = ""; + for (int i = 0 ; i < p.length;i++){ + if (p[i] == "null"){ + + }else{ + result += p[i] + "|"; + } + } + System.out.println(result.substring(0,result.length()-1)); + + + //Comprueba si un A0 es igual a 0 y lo elimina de la ecuacion + /*for (int i = 0 ; i < p.length;i++){ + if (p[i].charAt(1) == '0'){ + p[i] = "null"; + } + else{} + } + String result = ""; + for (int i = 0 ; i < p.length;i++){ + if (p[i] == "null"){ + + }else{ + result += p[i] + "|"; + } + } + + + + System.out.println(result.substring(0,result.length()-1)); + */ + + } } \ No newline at end of file diff --git a/src/com/operations.java b/src/com/operations.java index 7f89945..c65b74e 100644 --- a/src/com/operations.java +++ b/src/com/operations.java @@ -30,11 +30,7 @@ public String reduceEQ (String eq){ } } - - - } - } for ( int k = 0; k < eqLength; k++){ if(eqAux[k] != "null"){ From 4eda2490c3858888861b02c3d6fd5fa28e28a753 Mon Sep 17 00:00:00 2001 From: Abraham Date: Mon, 20 Jun 2016 19:52:28 -0600 Subject: [PATCH 15/25] para commit --- src/com/GUI/GUI.java | 220 +++++++++++++++++++++++++++++-------------- src/com/Main.java | 18 ++-- src/com/main.java | 3 + src/com/op.java | 60 ++---------- 4 files changed, 170 insertions(+), 131 deletions(-) diff --git a/src/com/GUI/GUI.java b/src/com/GUI/GUI.java index 56207f6..d613d2b 100644 --- a/src/com/GUI/GUI.java +++ b/src/com/GUI/GUI.java @@ -2,7 +2,7 @@ import javax.swing.*; import java.awt.event.*; -import com.GUI.plotter; +import com.op; /** * Created by abrahamon on 18/06/16. @@ -34,7 +34,9 @@ public class GUI extends JFrame{ private JLabel dataLabel; private JButton plotButton; - private String inputData; + private String term; + private String terms; + op operations; public GUI(){ @@ -44,99 +46,124 @@ public GUI(){ super.setResizable(false); super.setDefaultCloseOperation(super.EXIT_ON_CLOSE); super.setVisible(true); - - inputData=""; + operations = new op(); + term =""; + terms =""; //listeners for each botton a0Button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - inputData=inputData+"0"; - dataLabel.setText(inputData); + keyPressed('0'); } }); a1Button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - inputData=inputData+"1"; - dataLabel.setText(inputData); + keyPressed('1'); } }); a2Button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - inputData=inputData+"2"; - dataLabel.setText(inputData); + keyPressed('2'); } }); a3Button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - inputData=inputData+"3"; - dataLabel.setText(inputData); + keyPressed('3'); } }); a4Button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - inputData=inputData+"4"; - dataLabel.setText(inputData); + keyPressed('4'); } }); a5Button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - inputData=inputData+"5"; - dataLabel.setText(inputData); + keyPressed('5'); } }); a6Button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - inputData=inputData+"6"; - dataLabel.setText(inputData); + keyPressed('6'); } }); a7Button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - inputData=inputData+"7"; - dataLabel.setText(inputData); + keyPressed('7'); } }); a8Button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - inputData=inputData+"8"; - dataLabel.setText(inputData); + keyPressed('8'); } }); a9Button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - inputData=inputData+"9"; - dataLabel.setText(inputData); + keyPressed('9'); } }); espaceButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - inputData=inputData+" "; - dataLabel.setText(inputData); + keyPressed('s'); } }); barButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - inputData=inputData+"|"; - dataLabel.setText(inputData); + keyPressed('|'); } }); clearButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - clear(); + keyPressed('c'); + } + }); + addButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + keyPressed('+'); + } + }); + susButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + keyPressed('-'); + } + }); + mulButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + keyPressed('*'); + } + }); + eButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + keyPressed('e'); + } + }); + delButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + keyPressed('d'); + } + }); + equalButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + keyPressed('='); } }); //listeners for the keys @@ -214,7 +241,7 @@ public void keyTyped(KeyEvent e) { @Override public void keyTyped(KeyEvent e) { super.keyTyped(e); - GUI.this.keyPressed(e.getKeyChar()); + GUI.this.keyPressed('s'); } }); barButton.addKeyListener(new KeyAdapter() { @@ -277,7 +304,7 @@ public void keyTyped(KeyEvent e) { plotButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - plotter sinObject = new plotter(inputData,10,10); + plotter sinObject = new plotter(term,10,10); double y; for ( double x = -10; x<=10; x+=0.01 ) { //EVALUATE THE CORRECT FUNCTION HERE @@ -287,56 +314,68 @@ public void actionPerformed(ActionEvent e) { } }); + + } //every listener calls this method, which selects the propper action private void keyPressed(char key){ + if(term=="Syntax error"){term="";} if(key=='0'){ - inputData=inputData+"0"; - dataLabel.setText(inputData); + term = term +"0"; + dataLabel.setText(term); } else if(key=='1'){ - inputData=inputData+"1"; - dataLabel.setText(inputData); + term = term +"1"; + dataLabel.setText(term); } else if(key=='2'){ - inputData=inputData+"2"; - dataLabel.setText(inputData); + term = term +"2"; + dataLabel.setText(term); } else if(key=='3'){ - inputData=inputData+"3"; - dataLabel.setText(inputData); + term = term +"3"; + dataLabel.setText(term); } else if(key=='4'){ - inputData=inputData+"4"; - dataLabel.setText(inputData); + term = term +"4"; + dataLabel.setText(term); } else if(key=='5'){ - inputData=inputData+"5"; - dataLabel.setText(inputData); + term = term +"5"; + dataLabel.setText(term); } else if(key=='6'){ - inputData=inputData+"6"; - dataLabel.setText(inputData); + term = term +"6"; + dataLabel.setText(term); } else if(key=='7'){ - inputData=inputData+"7"; - dataLabel.setText(inputData); + term = term +"7"; + dataLabel.setText(term); } else if(key=='8'){ - inputData=inputData+"8"; - dataLabel.setText(inputData); + term = term +"8"; + dataLabel.setText(term); } else if(key=='9'){ - inputData=inputData+"9"; - dataLabel.setText(inputData); + term = term +"9"; + dataLabel.setText(term); } else if(key=='s'){ - inputData=inputData+" "; - dataLabel.setText(inputData); + term = term +" "; + dataLabel.setText(term); } else if(key=='|'){ - inputData=inputData+"|"; - dataLabel.setText(inputData); + term = term +"|"; + dataLabel.setText(term); + } + else if(key=='+'){ + addition(); + } + else if(key=='-'){ + subtraction(); + } + else if(key=='*'){ + multiplication(); } else if(key=='E' || key=='e'){ evaluate(); @@ -347,32 +386,73 @@ else if(key=='D' || key=='d'){ else if(key=='C' || key=='c' ){ clear(); } - else if(key=='*'){ - multiplication(); - } - else if(key=='+'){ - addition(); - } - else if(key=='-'){ - substraction(); - } else if(key=='='){ getResult(); } - else{System.out.println("Unknown: "+key);} } //Methods for each of the operations - private void delete(){} + private void addition(){ + if ( operations.validate(term)){ + terms = term + "+"; + term = ""; +// term = operations.getSum(); + dataLabel.setText(term); + }else{ + term = "Syntax error"; + dataLabel.setText(term); + } + } + + private void subtraction(){ + boolean flag= true; + if(term=="" ){ + term = term +"-"; + flag=false; + }else{ + for(int i=0;i numb2) if(flag) result ="null"; - - - - - return result; } - - - - + public String insertspace(String pData){ + String ans; + ans = pData; + System.out.print(ans); + return ans; + } public boolean validate(String pData){ + pData= pData.replace('|',','); + System.out.println(pData); boolean ans = true; String [] a = pData.split(","); String [] term; From 025785c8d07b0b432fb2579b36c2fe95f4381b17 Mon Sep 17 00:00:00 2001 From: tvlenin Date: Mon, 20 Jun 2016 20:04:50 -0600 Subject: [PATCH 16/25] delSpace --- src/com/op.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/com/op.java b/src/com/op.java index 9663478..254e422 100644 --- a/src/com/op.java +++ b/src/com/op.java @@ -113,5 +113,22 @@ private static boolean isNumeric(String str){ return true; } + public String delSpace(String txt){ + String [] print = txt.split(","); + int len = print.length; + String result = ""; + for (int i = 0; i < len; i++){ + if(i == 0){ + result += print[i].substring(0,print[i].length()-1)+","; + } + else if (i != len-1) + result += print[i].substring(1,print[i].length()-1)+","; + + else + result += print[i].substring(1,print[i].length()); + } + + return result; + } } From ff170b2951de718aeda369aa36e2c8659466d40c Mon Sep 17 00:00:00 2001 From: Abraham Date: Mon, 20 Jun 2016 20:07:40 -0600 Subject: [PATCH 17/25] pre commit --- src/com/op.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/com/op.java b/src/com/op.java index 9663478..4430840 100644 --- a/src/com/op.java +++ b/src/com/op.java @@ -5,6 +5,7 @@ */ public class op { + public String reduce(String pData){ String ans=""; String [] equ = pData.split(","); From 26126ee6d65b029565ad156e224d358499edc3be Mon Sep 17 00:00:00 2001 From: tvlenin Date: Mon, 20 Jun 2016 20:29:38 -0600 Subject: [PATCH 18/25] add --- src/com/op.java | 54 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/src/com/op.java b/src/com/op.java index 254e422..e65b893 100644 --- a/src/com/op.java +++ b/src/com/op.java @@ -131,4 +131,58 @@ else if (i != len-1) return result; } + public String sumPol(String num1, String num2){ + String newNum = num1+","+num2; + return reduce(newNum); + } + + public String substPol(String num1, String num2){ + String result = ""; + String [] eqAux = num2.split(","); + int eqLength = eqAux.length; + String [] numAux; + for (int i =0 ; i < eqLength ; i++){ + numAux = eqAux[i].split(" "); + if(numAux[0].compareTo("-") == 0){ + numAux[0] = "+"; + }else{ + numAux[0] = "-"; + } + eqAux[i] = numAux[0]+" "+numAux[1]+" "+numAux[2]+" "+numAux[3]; + } + for ( int k = 0; k < eqLength; k++){ + if(k != eqLength-1 ){ + result +=eqAux[k] + ","; + }else{ + result +=eqAux[k] ; + } + } + //return result; + return sumPol(num1,result); + } + + public String addSym(String num1){ + //Agrega el signo de positivo a las que no lo contienen + String [] p = num1.split(","); + String [] numAux; + for (int i = 0 ; i < p.length;i++){ + numAux = p[i].split(" "); + System.out.println(p[i]); + if (numAux[0].compareTo("-") ==0 || numAux[0].compareTo("+") ==0){ + + } + else{p[i] = "+"+p[i] ;System.out.println(p[i]);} + } + String resul = ""; + for (int i = 0 ; i < p.length;i++){ + if (p[i] == "null"){ + + }else{ + resul += p[i] + "|"; + } + } + return resul; + + } + } From 4a21c7422856ba17a205a7484f0ee43193273e8a Mon Sep 17 00:00:00 2001 From: Abraham Date: Mon, 20 Jun 2016 20:31:04 -0600 Subject: [PATCH 19/25] pre cpull --- src/com/GUI/GUI.java | 35 +++++++++++++++++++++++++++++------ src/com/Main.java | 12 ++++++------ src/com/op.java | 3 +-- 3 files changed, 36 insertions(+), 14 deletions(-) diff --git a/src/com/GUI/GUI.java b/src/com/GUI/GUI.java index d613d2b..c9ebc7a 100644 --- a/src/com/GUI/GUI.java +++ b/src/com/GUI/GUI.java @@ -36,6 +36,7 @@ public class GUI extends JFrame{ private String term; private String terms; + private String lastOpe; op operations; public GUI(){ @@ -49,6 +50,7 @@ public GUI(){ operations = new op(); term =""; terms =""; + lastOpe= ""; //listeners for each botton a0Button.addActionListener(new ActionListener() { @@ -394,8 +396,9 @@ else if(key=='='){ //Methods for each of the operations private void addition(){ + term=operations.delSpace(term.replace("|",",")); if ( operations.validate(term)){ - terms = term + "+"; + terms = term; term = ""; // term = operations.getSum(); dataLabel.setText(term); @@ -407,8 +410,8 @@ private void addition(){ private void subtraction(){ boolean flag= true; - if(term=="" ){ - term = term +"-"; + if(term=="" || term=="Syntax error"){ + term = term+"-" ; flag=false; }else{ for(int i=0;i Date: Mon, 20 Jun 2016 21:41:21 -0600 Subject: [PATCH 20/25] add --- src/com/op.java | 42 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/src/com/op.java b/src/com/op.java index e65b893..fc3c028 100644 --- a/src/com/op.java +++ b/src/com/op.java @@ -118,7 +118,11 @@ public String delSpace(String txt){ int len = print.length; String result = ""; for (int i = 0; i < len; i++){ - if(i == 0){ + if (len ==1){ + result += print[i].substring(0,print[i].length()); + + } + else if(i == 0){ result += print[i].substring(0,print[i].length()-1)+","; } else if (i != len-1) @@ -178,11 +182,45 @@ public String addSym(String num1){ if (p[i] == "null"){ }else{ - resul += p[i] + "|"; + resul += p[i] + ","; } } return resul; } + public String multiPol(String num1, String num2){ + String result = ""; + String [] numAux1 ; + String [] numAux2 ; + String numAux3 = ""; + String [] eqAux1 = num1.split(","); + String [] eqAux2= num2.split(","); + int eqLength1 = eqAux1.length; + int eqLength2 = eqAux2.length; + + for (int i = 0 ; i < eqLength1 ; i++){ + numAux1 = eqAux1[i].split(" "); + for (int j = 0; j < eqLength2; j++){ + numAux2 = eqAux2[j].split(" "); + if (numAux1[0].compareTo(numAux2[0]) == 0){numAux3 += "+ ";} + else{numAux3 += "- ";} + numAux3 += Integer.parseInt(numAux1[1]+"") * Integer.parseInt(numAux2[1]+"") +" "; + numAux3 += Integer.parseInt(numAux1[2]+"") + Integer.parseInt(numAux2[2]+"" )+" "; + numAux3 += Integer.parseInt(numAux1[3]+"") + Integer.parseInt(numAux2[3]+"") ; + result+=numAux3+","; + numAux3 = ""; + } + //result+=numAux3+"|"; + } + + result=result.substring(0,result.length()-1); + + + return result; + } + + + + } From 4536aa9bedaf0483676f610b222f1ecd0c795555 Mon Sep 17 00:00:00 2001 From: Abraham Date: Mon, 20 Jun 2016 21:50:29 -0600 Subject: [PATCH 21/25] para hacer pull --- src/com/GUI/GUI.java | 42 +++++++++++++++++++++++++++++++----------- src/com/op.java | 37 +++++++++++++++++++++++++++---------- 2 files changed, 58 insertions(+), 21 deletions(-) diff --git a/src/com/GUI/GUI.java b/src/com/GUI/GUI.java index c9ebc7a..b2529b2 100644 --- a/src/com/GUI/GUI.java +++ b/src/com/GUI/GUI.java @@ -397,10 +397,13 @@ else if(key=='='){ //Methods for each of the operations private void addition(){ term=operations.delSpace(term.replace("|",",")); + term = operations.addSym(term); if ( operations.validate(term)){ - terms = term; - term = ""; -// term = operations.getSum(); + lastOpe="+"; + if(terms==""){ + terms=term; + term=""; + } dataLabel.setText(term); }else{ term = "Syntax error"; @@ -423,11 +426,17 @@ private void subtraction(){ } if(flag){ term=operations.delSpace(term.replace("|",",")); + term = operations.addSym(term); if ( operations.validate(term)){ - terms = term + "-"; - term = ""; + lastOpe="-"; + if(terms==""){ + terms=term; + term=""; + } + dataLabel.setText(term); }else{ term = "Syntax error"; + dataLabel.setText(term); } } dataLabel.setText(term); @@ -462,13 +471,24 @@ private void getResult(){ return; } term=operations.delSpace(term.replace("|",",")); + term = operations.addSym(term); if ( operations.validate(term)){ - //terms = operations.getSum(); - // terms = operations.getMul(); - //term="" - //term = ""; -// term = operations.getMul(); - dataLabel.setText(term); + if(lastOpe=="+") { + term = operations.sumPol(terms,term).replace("+ ",""); + System.out.println(term); + } + else if(lastOpe=="-"){ + term = operations.substPol(terms,term).replace("+ ",""); + System.out.println(term); + }else if (lastOpe=="*"){ + + } + + + if(term==""){ + dataLabel.setText(""); + }else{ + dataLabel.setText(term.replace("," , " | "));} }else{ term = "Syntax error"; dataLabel.setText(term); diff --git a/src/com/op.java b/src/com/op.java index 067e3bc..90a9473 100644 --- a/src/com/op.java +++ b/src/com/op.java @@ -26,13 +26,25 @@ else if( data1[2].compareTo(data2[2])==0 && (data1[3].compareTo(data2[3])==0)){ } } } + for(int i=0;i numb2) public String insertspace(String pData){ String ans; ans = pData; - System.out.print(ans); return ans; } @@ -119,7 +130,10 @@ public String delSpace(String txt){ int len = print.length; String result = ""; for (int i = 0; i < len; i++){ - if(i == 0){ + if(len==1){ + result += print[i].substring(0,print[i].length()); + } + else if(i == 0){ result += print[i].substring(0,print[i].length()-1)+","; } else if (i != len-1) @@ -167,21 +181,24 @@ public String addSym(String num1){ String [] numAux; for (int i = 0 ; i < p.length;i++){ numAux = p[i].split(" "); - System.out.println(p[i]); + //System.out.println(p[i]); if (numAux[0].compareTo("-") ==0 || numAux[0].compareTo("+") ==0){ - + continue; + } + else{ + p[i] = "+ "+p[i] ; + //System.out.println(p[i]); } - else{p[i] = "+"+p[i] ;System.out.println(p[i]);} } String resul = ""; for (int i = 0 ; i < p.length;i++){ if (p[i] == "null"){ - + continue; }else{ - resul += p[i] + "|"; + resul += p[i] + ","; } } - return resul; + return resul.substring(0,resul.length()-1); } From a254210b994b7311429791128471ad4aa68890ec Mon Sep 17 00:00:00 2001 From: tvlenin Date: Mon, 20 Jun 2016 21:52:35 -0600 Subject: [PATCH 22/25] eval --- src/com/op.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/com/op.java b/src/com/op.java index fc3c028..5fd2b82 100644 --- a/src/com/op.java +++ b/src/com/op.java @@ -220,6 +220,25 @@ public String multiPol(String num1, String num2){ return result; } + public int eval (String poly, int x ,int y){ + int result = 0; + int numAux = 0; + String [] eqAux = poly.split(","); + int eqLength = eqAux.length; + String [] txtAux; + for(int i = 0; i < eqLength ; i++ ){ + txtAux = eqAux[i].split(" "); + numAux += Integer.parseInt(txtAux[0]+txtAux[1]) * (int)Math.pow(x,Integer.parseInt(txtAux[2]))* (int)Math.pow(y,Integer.parseInt(txtAux[3])); + + result +=numAux; + numAux = 0; + } + + + + return result; + } + From d9e432b8a73df5ebc904d70272250bfaf2c8fe04 Mon Sep 17 00:00:00 2001 From: Abraham Date: Mon, 20 Jun 2016 23:08:54 -0600 Subject: [PATCH 23/25] final? --- .idea/artifacts/calculatorp.xml | 8 ++++++++ src/calculatorp.jar | Bin 0 -> 62693 bytes src/com/GUI/GUI.form | 8 -------- src/com/GUI/GUI.java | 22 ++++++++++++++++++++-- src/com/Main.java | 22 ---------------------- src/com/main.java | 3 ++- src/com/op.java | 5 ++--- 7 files changed, 32 insertions(+), 36 deletions(-) create mode 100644 .idea/artifacts/calculatorp.xml create mode 100644 src/calculatorp.jar diff --git a/.idea/artifacts/calculatorp.xml b/.idea/artifacts/calculatorp.xml new file mode 100644 index 0000000..aace6f3 --- /dev/null +++ b/.idea/artifacts/calculatorp.xml @@ -0,0 +1,8 @@ + + + $PROJECT_DIR$/out/artifacts/calculatorp + + + + + \ No newline at end of file diff --git a/src/calculatorp.jar b/src/calculatorp.jar new file mode 100644 index 0000000000000000000000000000000000000000..822385222935aef8a47470bf15e5280ceec08ff9 GIT binary patch literal 62693 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 literal 0 HcmV?d00001 diff --git a/src/com/GUI/GUI.form b/src/com/GUI/GUI.form index f973686..489b00f 100644 --- a/src/com/GUI/GUI.form +++ b/src/com/GUI/GUI.form @@ -211,14 +211,6 @@
- - - - - - - - diff --git a/src/com/GUI/GUI.java b/src/com/GUI/GUI.java index 514cab3..b365993 100644 --- a/src/com/GUI/GUI.java +++ b/src/com/GUI/GUI.java @@ -310,6 +310,7 @@ public void actionPerformed(ActionEvent e) { double y; for ( double x = -10; x<=10; x+=0.01 ) { //EVALUATE THE CORRECT FUNCTION HERE + //y = operations.eval(term,0,0); y = Math.sin(x); //equation sinObject.drawPoint(x,y); } @@ -473,9 +474,19 @@ private void getResult(){ if(lastOpe== ""){ return; } + boolean flag=false; + if(lastOpe=="e"){ + int num1 = Integer.parseInt(term.split(" ")[0]); + int num2 = Integer.parseInt(term.split(" ")[1]); + if(term.length()>2 ) { + flag=true; + term= (operations.eval(operations.addSym(terms), num1, num2) +""); + dataLabel.setText(term); + } + } term=operations.delSpace(term.replace("|",",")); term = operations.addSym(term); - if ( operations.validate(term)){ + if ( operations.validate(term) && flag==false){ if(lastOpe=="+") { term = operations.sumPol(terms,term).replace("+ ",""); }else if(lastOpe=="-"){ @@ -483,6 +494,7 @@ private void getResult(){ }else if (lastOpe=="*"){ term = operations.multiPol(terms,term).replace("+ ",""); } + if(term==""){ dataLabel.setText(""); }else{ @@ -493,7 +505,13 @@ private void getResult(){ } } - private void evaluate(){} + private void evaluate(){ + System.out.println("SI"); + lastOpe="e"; + terms=term; + term=""; + dataLabel.setText(term); + } diff --git a/src/com/Main.java b/src/com/Main.java index dc13735..2230601 100644 --- a/src/com/Main.java +++ b/src/com/Main.java @@ -8,28 +8,6 @@ public class Main { public static void main(String[] args) { - //This code open the main window - //JFrame f = new JFrame("Polynomial Calculator"); //This is the main Frame - //GUI userInterface = new GUI(); // - //f.setContentPane(userInterface.panelMain); // - //f.setBounds(200,100,500,350); //The bounds start(X,Y) bounds(Y,X) - //f.setResizable(false); - //f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //Close default method - //f.pack(); //sizes the frame so that all its contents are at or above their preferred sizes - //f.setVisible(true); // - - - - //op o = new op(); - //probar la verificacion - //if(o.validate("- 1 2 3,- 2 4 5,+ 1 4 5")){ - // System.out.println("Sí sirve"); - //}else{ - // System.out.println("No sirve"); - //} - - //System.out.println(o.reduce("- 1 2 2,+ 2 2 2,+ 3 2 2,- 3 2 2")); - GUI userInterface = new GUI(); diff --git a/src/com/main.java b/src/com/main.java index b274e0d..43176e0 100644 --- a/src/com/main.java +++ b/src/com/main.java @@ -11,7 +11,8 @@ public static void main(String[] args) { String eq2 = "+ 100 2 5,+ 2 2 5,- 3 3 5,- 2 4 3,+ 3 4 3"; String eq1 = "+143|+122|+144"; String eq3 = "+122|-523"; - op ope = new op(); + + // op ope = new op(); //System.out.println(ope.reduceEQ(eq2)); // System.out.println(ope.getSum("-1","+2")); diff --git a/src/com/op.java b/src/com/op.java index 2faabb0..9b99fb0 100644 --- a/src/com/op.java +++ b/src/com/op.java @@ -28,7 +28,7 @@ else if( data1[2].compareTo(data2[2])==0 && (data1[3].compareTo(data2[3])==0)){ } for(int i=0;i Date: Mon, 20 Jun 2016 23:23:00 -0600 Subject: [PATCH 24/25] final --- src/com/GUI/GUI.java | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/src/com/GUI/GUI.java b/src/com/GUI/GUI.java index b365993..e37b900 100644 --- a/src/com/GUI/GUI.java +++ b/src/com/GUI/GUI.java @@ -303,20 +303,6 @@ public void keyTyped(KeyEvent e) { } }); - plotButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - plotter sinObject = new plotter(term,10,10); - double y; - for ( double x = -10; x<=10; x+=0.01 ) { - //EVALUATE THE CORRECT FUNCTION HERE - //y = operations.eval(term,0,0); - y = Math.sin(x); //equation - sinObject.drawPoint(x,y); - } - } - }); - } @@ -474,19 +460,18 @@ private void getResult(){ if(lastOpe== ""){ return; } - boolean flag=false; if(lastOpe=="e"){ int num1 = Integer.parseInt(term.split(" ")[0]); int num2 = Integer.parseInt(term.split(" ")[1]); if(term.length()>2 ) { - flag=true; term= (operations.eval(operations.addSym(terms), num1, num2) +""); dataLabel.setText(term); + return; } } term=operations.delSpace(term.replace("|",",")); term = operations.addSym(term); - if ( operations.validate(term) && flag==false){ + if ( operations.validate(term)){ if(lastOpe=="+") { term = operations.sumPol(terms,term).replace("+ ",""); }else if(lastOpe=="-"){ @@ -506,7 +491,6 @@ private void getResult(){ } private void evaluate(){ - System.out.println("SI"); lastOpe="e"; terms=term; term=""; From b307967656ea0c5755c55270e92b0a51c68e1639 Mon Sep 17 00:00:00 2001 From: Abraham Date: Mon, 20 Jun 2016 23:31:48 -0600 Subject: [PATCH 25/25] con .jar --- src/calculatorp.jar | Bin 62693 -> 115869 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/calculatorp.jar b/src/calculatorp.jar index 822385222935aef8a47470bf15e5280ceec08ff9..bd9003063b41819eee71440585dd18ba2d70f43e 100644 GIT binary patch delta 65619 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

+b$>sH$q~3#$uU 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