Π‘Ρ Π΅ΠΌΠ° ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ
G. drawLine ((int) (dataSet.getxEnd () * stepx + 85), (int) (indentText () + sign () * (dataSet.getY (0)) * stepy+(dataSet.getA ()>0? 10:-10)), (int) (dataSet.getxEnd () * stepx + 90), (int) (indentText () + sign () * (dataSet.getY (0)) * stepy+(dataSet.getA ()>0? 5:-15))); G. drawLine ((int) (dataSet.getxEnd () * stepx + 85), (int) (indentText () + sign () * (dataSet.getY (0… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
Π‘Ρ Π΅ΠΌΠ° ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
Π ΠΈΡ. 2. Π‘Ρ Π΅ΠΌΠ° ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ
Π ΠΈΡ. 3. Π‘Ρ Π΅ΠΌΠ° ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
package main;
import dataSet. MethodDataSet;//ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅.
import graph. Graph;//ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΈΡΠΎΠ²Π°ΡΡ Π³ΡΠ°ΡΠΈΠΊ.
import java.awt.BorderLayout; //ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ ΡΠ°ΡΠΊΠ»Π°Π΄ΠΊΠΈ.
import java.awt.Dimension;//ΠΊΠ»Π°ΡΡ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΡΠ΅Ρ ΡΠΈΡΠΈΠ½Ρ ΠΈ Π²ΡΡΠΎΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°.
import java.awt.Font; //ΠΊΠ»Π°ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠΈΡΡΡ.
import java.awt.GridBagConstraints; //ΠΊΠ»Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡΡΡ.
//GridBagLayout ΠΊΠ»Π°ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π³ΠΈΠ±ΠΊΠΈΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠΌ ΠΏΠΎ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎ,.
import java.awt.GridBagLayout;// Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎ ΠΈΠ»ΠΈ Π²Π΄ΠΎΠ»Ρ ΠΈΡ Π±Π°Π·ΠΎΠ²ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ, Π½Π΅ ΡΡΠ΅Π±ΡΡ ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠΎΡ ΠΆΠ΅ ΡΠ°ΠΌΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ.
import java.awt.Insets;//Insets ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π³ΡΠ°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°.
import java.awt.event.ActionEvent; //ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΡΠΎΠ±ΡΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π±Ρ.
import java.awt.event.ActionListener;//ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠ»ΡΡΠ°ΡΠ΅Π»Ρ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠ±ΡΡΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.
import java.math.BigDecimal;//ΠΠ΅ΠΈΠ·ΠΌΠ΅Π½Π½Π°Ρ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½Π°Ρ ΡΠΎΡΠ½ΠΎΡΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π΄Π΅ΡΡΡΠΈΡΠ½ΡΠ΅ ΡΠΈΡΠ»Π°.
//ΠΠ΅ΠΈΠ·ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°.
import java.math.MathContext;//Π΄Π»Ρ ΡΠΈΡΠ»ΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ BigDecimal ΠΊΠ»Π°ΡΡ.
import java.math.RoundingMode;//ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΎΠΊΡΡΠ³Π»ΡΡΡΠ΅Π΅ΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠΈΡΠ»ΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΡΠΏΠΎΡΠΎΠ±Π½ΡΡ ΠΊ ΠΎΡΠ±ΡΠ°ΡΡΠ²Π°Π½ΠΈΡ ΡΠΎΡΠ½ΠΎΡΡΠΈ.
import java.util.Timer;//ΠΠ°Π΄Π°ΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½Π°.
import java.util.TimerTask;//Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΡΠ°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π’Π°ΠΉΠΌΠ΅ΡΠΎΠΌ.
import javax.swing.JButton;//Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ «Π½Π°ΠΆΠ°ΡΠΈΡ» .
import javax.swing.JFrame;//Π Π°ΡΡΠΈΡΠ΅Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ java.awt.Frame ΡΡΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ JFC/Swing.
import javax.swing.JLabel;//ΠΠ±Π»Π°ΡΡΡ Π΄ΠΈΡΠΏΠ»Π΅Ρ Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΊΠΎΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈΠ»ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΈΠ»ΠΈ ΠΎΠ±ΠΎΠΈΡ .
//JOptionPane ΠΎΠ±Π»Π΅Π³ΡΠ°Π΅Ρ ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΈΠΌ ΠΎ ΡΠ΅ΠΌ-ΡΠΎ.
import javax.swing.JOptionPane;
import javax.swing.JPanel;//JPanel ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ Π»Π΅Π³ΠΊΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ.
import javax.swing.JTextField;//JTextField Π»Π΅Π³ΠΊΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΡΠ΅ΠΊΡΡΠ°.
/**.
- * Π€ΡΠ΅ΠΉΠΌ Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ , ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ²Π΅ΡΠ° Π»ΠΈΠ½ΠΈΠΈ, ΡΠ²Π΅ΡΠ° Π·Π°Π»ΠΈΠ²ΠΊΠΈ.
- */
public class MainFrame extends JFrame {.
// ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ
// (Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ — ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΏΠ°Π½Π΅Π»ΠΈ):
public MainFrame (int w, int h) {.
//Π Π΅ΠΆΠΈΠΌ Π·Π°ΠΏΡΠ΅ΡΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΠΎΠΊΠ½Π°:
setPreferredSize (new Dimension (w, h));//Π·Π°Π΄Π°Π΅ΠΌΡΠ°Π·ΠΌΠ΅ΡΡ.
//ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌΠΊΠ»Π°ΡΡΠ΄Π°Π½Π½ΡΡ .
dataSet = newMethodDataSet ();
// ΡΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π³Π»Π°Π²Π½ΡΡ ΠΏΠ°Π½Π΅Π»Ρ.
mainPanel = new JPanel ();
mainPanel.setLayout (new BorderLayout ());//ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΎΠΊΠΎΠ½.
//Π Π°ΡΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΠΎ ΠΌΠ΅ΡΡΠ°ΠΌ.
//ΠΏΠ°Π½Π΅Π»Ρ ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°.
header = new JPanel ();
header.setLayout (null);//ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΎΠΊΠΎΠ½.
header.setPreferredSize (new Dimension (w, 260));
createHeader (w, h);//ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΠΌ Π² ΠΏΠ°Π½Π΅Π»Ρ ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΌΠ΅Π½Ρ.
// ΡΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π¦Π΅Π½ΡΡΠ°Π»ΡΠ½ΡΡ ΠΏΠ°Π½Π΅Π»Ρ.
content = new JPanel ();
content.setLayout (new GridBagLayout ());//ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΎΠΊΠΎΠ½.
createContent ();//ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΠΌ Π² Π¦Π΅Π½ΡΡΠ°Π»ΡΠ½ΡΡ ΠΏΠ°Π½Π΅Π»Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π΄Π»Ρ Π²Π²ΠΎΠ΄Π°Π΄Π°Π½Π½ΡΡ .
// ΡΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ footer ΠΏΠ°Π½Π΅Π»Ρ.
footer = new JPanel ();
footer.setLayout (new GridBagLayout ());//ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΎΠΊΠΎΠ½.
footer.setPreferredSize (new Dimension (w, 80));
createFooter ();//ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΠΌ Π² Π½ΠΈΠΆΠ½ΡΡ ΠΏΠ°Π½Π΅Π»Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ.
//Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΏΠ°Π½Π΅Π»ΠΈ Π² Π³Π»Π°Π²Π½ΡΡ ΠΏΠ°Π½Π΅Π»Ρ.
mainPanel.add (header, BorderLayout. PAGE_START);//Π²Π΅ΡΡ Π½ΡΡΠΎΠ±Π»Π°ΡΡΡΠΏΠ°Π½Π΅Π»ΠΈ.
mainPanel.add (content, BorderLayout. CENTER);//ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½Π°ΡΠΎΠ±Π»Π°ΡΡΡΠΏΠ°Π½Π΅Π»ΠΈ.
mainPanel.add (footer, BorderLayout. PAGE_END);//Π½ΠΈΠ·ΠΏΠ°Π½Π΅Π»ΠΈ.
getContentPane ().add (mainPanel);
pack ();//ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΎΠΊΠ½Π°, ΠΏΡΠΈΠ½ΠΈΠΌΠ°Ρ Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΡ Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
}.
//ΠΠ΅ΡΠΎΠ΄ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² ΠΏΠ°Π½Π΅Π»Ρ Header.
//ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΡ Π΄Π»Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
private void createHeader (int w, int h) {.
//ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°.
integrals = new JLabel[6]; //ΠΠ°ΡΡΠΈΠ² ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΠΌΠ΅ΡΠΎΠΊ Π΄Π»Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°Π»Π°.
//topLabel — ΡΠ΅ΠΊΡΡΠΎΠ²Π°Ρ ΠΌΠ΅ΡΠΊΠ° ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ°.
topLabel = new JLabel («ΠΠ²Π΅Π΄ΠΈΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΠΠΉΠ»Π΅ΡΠ° «);
/*.
- *setBounds (int x, int y, int width, int height)
- *ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΡ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. ΠΠΎΠ²ΠΎΠ΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΡΠ³Π»Π°
- *ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ x ΠΈ y, ΠΈ Π½ΠΎΠ²ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ width ΠΈ height.
- *x — Π½ΠΎΠ²Π°Ρ x-ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ° ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°
- *y — Π½ΠΎΠ²Π°Ρ y-ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ° ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°
- *width — Π½ΠΎΠ²ΠΎΠ΅ width ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°
- *height — Π½ΠΎΠ²ΠΎΠ΅ height ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°
- */
topLabel.setBounds (w / 6, 20, 400, 40);
header.add (topLabel);
// ΠΠ°Π΄Π°Π΅ΠΌ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΠΌΠ΅ΡΠΊΠΈ:
integrals[0] = new JLabel («?»);//ΡΠΎΠ·Π°Π΅ΠΌ Π½ΠΎΠ²ΡΡ ΡΠ΅ΠΊΡΡ ΠΌΠ΅ΡΠΊΡ ?
integrals[0]. setFont (new Font («AriΠ°l», Font. BOLD, 60));//ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΡΡΠΈΡΡ.
integrals[0]. setBounds (w / 3 — 40, 90, 40, 64);//ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
header.add (integrals[0]);//Π΄ΠΎΠ±ΠΎΠ²Π»ΡΠ΅ΠΌΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ²ΠΏΠ°Π½Π΅Π»Ρ Header.
integrals[1] = new JLabel («x1»);//ΡΠΎΠ·Π°Π΅ΠΌ Π½ΠΎΠ²ΡΡ ΡΠ΅ΠΊΡΡ ΠΌΠ΅ΡΠΊΡ Ρ 1.
integrals[1]. setBounds (w / 3 — 25, 66, 55, 40);//ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
integrals[2] = new JLabel («x2»);//ΡΠΎΠ·Π°Π΅ΠΌ Π½ΠΎΠ²ΡΡ ΡΠ΅ΠΊΡΡ ΠΌΠ΅ΡΠΊΡ Ρ 2.
integrals[2]. setBounds (w / 3 — 40, 148, 55, 40);//ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
integrals[3] = new JLabel («1.25»);//ΡΠΎΠ·Π°Π΅ΠΌ Π½ΠΎΠ²ΡΡ ΡΠ΅ΠΊΡΡ ΠΌΠ΅ΡΠΊΡ Π°*ΡΡΠ΅ΠΏΠ΅Π½Ρ ΡΠΊΡΠΏΠΎΠ½Π΅Π½ΡΡ.
integrals[3]. setBounds (w / 3 — 10, 115, 160, 24);//ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
integrals[4] = new JLabel («(1 — e)»);//ΡΠΎΠ·Π°Π΅ΠΌ Π½ΠΎΠ²ΡΡ ΡΠ΅ΠΊΡΡ ΠΌΠ΅ΡΠΊΡ.
integrals[4]. setBounds (w / 3 + 34, 115, 160, 24);//ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
integrals[5] = new JLabel («0.8x»);//ΡΠΎΠ·Π°Π΅ΠΌ Π½ΠΎΠ²ΡΡ ΡΠ΅ΠΊΡΡ ΠΌΠ΅ΡΠΊΡ.
integrals[5]. setBounds (w / 3 + 80, 108, 140, 24);//ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
integrals[5]. setFont (new Font («AriΠ°l», Font. ITALIC, 10));//ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΡΠΈΡΡ.
header.add (integrals[5]);//Π΄ΠΎΠ±ΠΎΠ²Π»ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π² ΠΏΠ°Π½Π΅Π»Ρ Header.
for (int i = 1; i < 5; i++) {.
integrals[i]. setFont (new Font («AriΠ°l», Font. ITALIC, 20));//ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΡΡΠΈΡΡ.
header.add (integrals[i]);//Π΄ΠΎΠ±ΠΎΠ²Π»ΡΠ΅ΠΌΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡΠ²ΠΏΠ°Π½Π΅Π»Ρ Header.
}.
}.
//ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π² ΠΏΠ°Π½Π΅Π»Ρ Π΄Π°Π½Π½ΡΡ (content).
private void createContent () {.
// Π’Π΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π΄Π»Ρ Π²Π²ΠΎΠ΄Π° Π³ΡΠ°Π½ΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π°:
//ΠΠ°ΡΡΠΈΠ² ΠΌΠ΅ΡΠΎΠΊ:
inputLabel = new JLabel[6];
inputLabel[0] = new JLabel («ΠΠ±Π»Π°ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Ρ = 0 Π΄ΠΎ Ρ = «, JLabel. RIGHT);
inputLabel[1] = new JLabel («ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ, Π° = «, JLabel. RIGHT);
inputLabel[2] = new JLabel («ΠΠ½ΡΠ΅Π³ΡΠΈΡΡΠ΅ΠΌ ΠΎΡ Ρ 1 = «, JLabel. RIGHT);
inputLabel[3] = new JLabel («Π΄ΠΎΡ n = «, JLabel. RIGHT);
inputLabel[4] = new JLabel («Ρ2 = «, JLabel. RIGHT);
inputLabel[5] = new JLabel («ΠΡΡΠΈΡΠ»Π΅Π½Π½ΡΠΉΠΈΠ½ΡΠ΅Π³ΡΠ°Π» = «, JLabel. RIGHT);
//ΠΠ°ΡΡΠΈΠ²ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎΠΏΠΎΠ»Ρ:
inputText = newJTextField[10];
// Π’Π΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π΄Π»Ρ Π²Π²ΠΎΠ΄Π° Π³ΡΠ°Π½ΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π°:
inputText[0] = new JTextField («5», 12);//ΠΎΠ±Π»Π°ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Ρ =0, Π΄ΠΎ Ρ =.
inputText[1] = new JTextField («-3», 12);//ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°.
inputText[2] = new JTextField («1», 12);//xStart.
inputText[3] = new JTextField («3», 12);//xEnd.
inputText[4] = new JTextField («2», 12);//Ρ2.
inputText[5] = new JTextField (12);//ΠΡΡΠΈΡΠ»Π΅Π½Π½ΡΠΉΠΈΠ½ΡΠ΅Π³ΡΠ°Π».
inputText[5]. setEditable (false);
//Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² ΠΏΠ°Π½Π΅Π»Ρ ΠΠ²ΠΎΠ΄Π° Π΄Π°Π½Π½ΡΡ (content).
for (int i = 0; i < 6; i++) {.
content.add (inputLabel[i], new GBC (0, i).setAnchor (GBC.FIRST_LINE_END).setWeight (450, 35));
content.add (inputText[i], new GBC (1, i).setAnchor (GBC.FIRST_LINE_START).setWeight (250, 35));
}.
}.
//ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π² Π½ΠΈΠΆΠ½ΡΡ ΠΏΠ°Π½Π΅Π»Ρ.
private void createFooter () {.
//ΠΠ²ΡΠΎΡΠΏΡΠΎΠ΅ΠΊΡΠ°.
authorLabel = new JLabel («ΠΡΠΏΠΎΠ»Π½ΠΈΠ»: Π‘Π°Π»ΠΈΡ ΠΎΠ²Π.Π.»);
//ΠΠ½ΠΎΠΏΠΊΠ° «ΠΠ°ΡΠΈΡΠΎΠ²Π°ΡΡ» .
paintButton = new JButton («ΠΠ°ΡΠΈΡΠΎΠ²Π°ΡΡ»);
paintButton.addActionListener (new ActionListener () {.
// ΠΠ΅ΡΠΎΠ΄Π΄Π»ΡΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈΡΠ΅Π»ΡΠΊΠ°Π½Π°ΠΊΠ½ΠΎΠΏΠΊΠ΅:
public void actionPerformed (ActionEvent event) {.
// Π Π΅Π°ΠΊΡΠΈΡ Π½Π° ΡΠ΅Π»ΡΠΎΠΊ.
updateLabel ();
if (mark == true) {//Π΅ΡΠ»ΠΈ Π΄Π°Π½Π½ΡΠ΅ Π²Π΅ΡΠ½ΡΠ΅.
// Π‘oΠ·Π΄Π°Π½ΠΈΠ΅ΠΎΠΊΠ½Π°Π³ΡΠ°ΡΠΈΠΊΠ°:
Graph gr = new Graph (dataSet);
//ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π€Π»Π°ΠΆΠΎΠΊ.
gr.setMark (true);
// ΠΠΎΠΊΠ°Π·Π°ΡΡΠΎΠΊΠ½ΠΎ.
gr.setVisible (true);
mark = false;
}.
}.
});
//ΠΠ½ΠΎΠΏΠΊΠ° «ΠΡΠΈΡΡΠΈΡΡ» .
clearButton = new JButton («ΠΡΠΈΡΡΠΈΡΡ»);
clearButton.addActionListener (new ActionListener () {.
// ΠΠ΅ΡΠΎΠ΄Π΄Π»ΡΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈΡΠ΅Π»ΡΠΊΠ°Π½Π°ΠΊΠ½ΠΎΠΏΠΊΠ΅:
public void actionPerformed (ActionEvent event) {.
// Π Π΅Π°ΠΊΡΠΈΡ Π½Π° ΡΠ΅Π»ΡΠΎΠΊ.
cleanLabel ();
}.
});
//ΠΠ½ΠΎΠΏΠΊΠ° «ΠΡΡΠΈΡΠ»ΠΈΡΠ΅Π»Ρ» .
mathButton = newJButton («ΠΡΡΠΈΡΠ»ΠΈΡΡ»);
mathButton.addActionListener (newActionListener () {.
// ΠΠ΅ΡΠΎΠ΄ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΅Π»ΡΠΊΠ° Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅:
public void actionPerformed (ActionEvent event) {.
// Π Π΅Π°ΠΊΡΠΈΡ Π½Π° ΡΠ΅Π»ΡΠΎΠΊ.
updateLabel ();//ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°Π»Π°.
if (mark == true) {//Π΅ΡΠ»ΠΈ Π΄Π°Π½Π½ΡΠ΅ Π²Π΅ΡΠ½ΡΠ΅.
dataSet.setSum ();//ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠ°Π»Π°.
inputText[5]. setText (Double.toString (dataSet.getSum ()));//ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡ ΠΏΠΎΠ»Π΅ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
mark = false;
}.
}.
});
//ΠΠΎΠ±ΠΎΠ²Π»ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² ΠΏΠ°Π½Π΅Π»Ρ footer.
footer.add (authorLabel, new GBC (0, 0).setAnchor (GBC.LINE_START).setWeight (250, 30).setInsets (10));
footer.add (paintButton, new GBC (1, 0).setAnchor (GBC.LINE_END).setWeight (250, 30).setInsets (10));
footer.add (mathButton, new GBC (2, 0).setAnchor (GBC.LINE_END).setWeight (250, 30).setInsets (10));
footer.add (clearButton, new GBC (3, 0).setAnchor (GBC.LINE_START).setWeight (250, 30).setInsets (10));
}.
//ΠΌΠ΅ΡΠΎΠ΄ΠΎΡΠΈΡΡΠΊΠΈΠ’Π΅ΠΊΡΡΠΎΠ²ΡΡ ΠΌΠ΅ΡΠΎΠΊ.
privatevoidcleanLabel () {.
//Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡ ΠΌΠ΅ΡΠΎΠΊ null.
inputText[0]. setText (««);
inputText[1]. setText (««);
inputText[2]. setText (««);
inputText[3]. setText (««);
inputText[4]. setText (««);
inputText[5]. setText (««);
}.
//ΠΠ²ΠΎΠ΄Π΄Π°Π½Π½ΡΡ ΠΈΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌΠ΅ΡΠΎΠΊ.
private void updateLabel () {.
// ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ Π²Π²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅.
String xEnd = inputText[0]. getText ();
String a = inputText[1]. getText ();
String startBy = inputText[2]. getText ();
String finishBy = inputText[3]. getText ();
String y2 = inputText[4]. getText ();
if (isUserAGoat < 5) {//Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π²Π΅Π» Π½Π΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ 5ΡΠ°Π· Π΄Π°Π½Π½ΡΠ΅, ΡΠΎ Π½Π° 5ΡΠ΅ΠΊ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΠ°.
try {.
dataSet.setxEnd (parserToDouble (xEnd)).setFinishBy (parserToDouble (finishBy)).setStartBy (parserToDouble (startBy)).setY2(parserToDouble (y2)).setA (parserToDouble (a));
//Π΅ΡΠ»ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ°.
if (!(dataSet.getY2() > -50 && dataSet. getY2() < 50)) {.
isUserAGoat++;
JOptionPane.showMessageDialog (null, «ΠΠ±Π»Π°ΡΡΡΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡΠ΄ΠΎΠ»ΠΆΠ½Π°Π±ΡΡΡΠ±ΠΎΠ»ΡΡΠ΅Π½ΡΠ»Ρ ΠΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΌΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅Π΄Π»Ρ y2 Π±ΡΠ΄Π΅ΡΠ΄ΠΈΠ°ΠΏΠΎΠ·ΠΎΠ½Π·Π½Π°ΡΠ΅Π½ΠΈΠΉΡ -50 Π΄ΠΎ 50 ΠΎΡΡΠ°Π»ΠΎΡΡΠΏΠΎΠΏΡΡΠΎΠΊ: «+ (5 — isUserAGoat), «ΠΡΠΈΠ±ΠΊΠ°», JOptionPane. WARNING_MESSAGE);
return;
//a1>0&&a1<1000.
} else if (dataSet.getA ()==0) {.
isUserAGoat++;
JOptionPane.showMessageDialog (null, «ΠΠ²Π΅Π΄ΠΈΡΠ΅Π°Π±ΠΎΠ»ΡΡΠ΅ΠΈΠ»ΠΈΠΌΠ΅Π½ΡΡΠ΅ 0. ΠΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΌΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅Π΄Π»ΡΠ°Π±ΡΠ΄Π΅ΡΠ΄ΠΈΠ°ΠΏΠΎΠ·ΠΎΠ½Π·Π½Π°ΡΠ΅Π½ΠΈΠΉΠΎΡ -100 Π΄ΠΎ -1 ΠΎΡΡΠ°Π»ΠΎΡΡΠΏΠΎΠΏΡΡΠΎΠΊ:» + (5 — isUserAGoat), «ΠΡΠΈΠ±ΠΊΠ°», JOptionPane. WARNING_MESSAGE);
return;
//if ((xx >= h)&&(xx<1000)){}.
}else if (!(dataSet.getA () > -100 && dataSet. getA () < 0)) {.
isUserAGoat++;
JOptionPane.showMessageDialog (null, «ΠΠ°Π΄Π°ΠΉΡΠ΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΉΠ΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉΠ΄Π»ΡΠ°. ΠΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΌΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅Π΄Π»ΡΠ°Π±ΡΠ΄Π΅ΡΠ΄ΠΈΠ°ΠΏΠΎΠ·ΠΎΠ½Π·Π½Π°ΡΠ΅Π½ΠΈΠΉΠΎΡ -100 Π΄ΠΎ -1 ΠΎΡΡΠ°Π»ΠΎΡΡΠΏΠΎΠΏΡΡΠΎΠΊ:» + (5 — isUserAGoat), «ΠΡΠΈΠ±ΠΊΠ°», JOptionPane. WARNING_MESSAGE);
return;
//if ((xx >= h)&&(xx<1000)){}.
}.
else if (!(dataSet.getxEnd () >= dataSet. getH () && dataSet. getxEnd () < 1000)) {.
isUserAGoat++;
JOptionPane.showMessageDialog (null, «ΠΠ°Π΄Π°ΠΉΡΠ΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΉΠ΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΄Π»ΡΡ ΠΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΌΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅Π΄Π»Ρ x Π±ΡΠ΄Π΅ΡΠ΄ΠΈΠ°ΠΏΠΎΠ·ΠΎΠ½Π·Π½Π°ΡΠ΅Π½ΠΈΠΉΠΎΡ 0 Π΄ΠΎ 1000 ΠΎΡΡΠ°Π»ΠΎΡΡΠΏΠΎΠΏΡΡΠΎΠΊ:» + (5 — isUserAGoat), «ΠΡΠΈΠ±ΠΊΠ°», JOptionPane. WARNING_MESSAGE);
return;
} /* ΠΡΠΎΠ²Π΅ΡΠΊΠ°Π²Π²ΠΎΠ΄Π° x1.
//if ((x0_ xx)).
*/ else if (dataSet.getStartBy () dataSet. getxEnd ()) {.
isUserAGoat++;
JOptionPane.showMessageDialog (null, «ΠΠ½ΡΠ΅ΡΠ²Π°Π» x1 Π΄ΠΎΠ»ΠΆΠ΅Π½Π±ΡΡΡΠ±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ «+ dataSet. getH () + «ΠΈΠΌΠ΅Π½ΡΡΠ΅ «+ dataSet. getFinishBy () + », ΠΎΡΡΠ°Π»ΠΎΡΡΠΏΠΎΠΏΡΡΠΎΠΊ: «+ (5 — isUserAGoat), «ΠΡΠΈΠ±ΠΊΠ°», JOptionPane. WARNING_MESSAGE);
return;
} // ΠΡΠΎΠ²Π΅ΡΠΊΠ°Π²Π²ΠΎΠ΄Π° xn.
// if ((x_end>x0_)&&(x_end<=xx)){}.
else if (!(dataSet.getFinishBy () > dataSet. getStartBy () && dataSet. getFinishBy () <= dataSet. getxEnd ())) {.
isUserAGoat++;
JOptionPane.showMessageDialog (null, «ΠΠ½ΡΠ΅ΡΠ²Π°Π»Ρ n Π΄ΠΎΠ»ΠΆΠ΅Π½Π±ΡΡΡΠ±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ «+ dataSet. getStartBy () + «ΠΈΠΌΠ΅Π½ΡΡΠ΅ «+ dataSet. getxEnd () + », ΠΎΡΡΠ°Π»ΠΎΡΡΠΏΠΎΠΏΡΡΠΎΠΊ: «+ (5 — isUserAGoat), «ΠΡΠΈΠ±ΠΊΠ°», JOptionPane. WARNING_MESSAGE);
return;
}.
//ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΡΠ΅ΠΊΡΡΠΎΠ²Ρ ΠΌΠ΅ΡΠΎΠΊ.
integrals[1]. setText (Double.toString (dataSet.getFinishBy ()));
integrals[2]. setText (Double.toString (dataSet.getStartBy ()));
integrals[3]. setText (new BigDecimal (dataSet.getA () / 0.8, new MathContext (4)).toString ());
mark = true;//Π²Π²Π΅Π΄Π΅Π½Π½ΡΠ΅Π΄Π°Π½Π½ΡΠ΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅.
dataSet.inizial ();////ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡΠ΄Π°Π½Π½ΡΡ .
} catch (NumberFormatExceptionΠ΅) {.
isUserAGoat++;
JOptionPane.showMessageDialog (null, «ΠΠ²Π΅Π΄ΠΈΡΠ΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠ΅Π·Π½Π°ΡΠ΅Π½ΠΈΡ (ΡΠΈΡΡΡ) ΠΎΡΡΠ°Π»ΠΎΡΡΠΏΠΎΠΏΡΡΠΎΠΊ: «+ (5 — isUserAGoat), «ΠΡΠΈΠ±ΠΊΠ°», JOptionPane. ERROR_MESSAGE);
return;
}.
} else {.
JOptionPane.showMessageDialog (null, «ΠΡΠ²Π²Π΅Π»ΠΈΠ½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠ΅Π΄Π°Π½Π½ΡΠ΅ 5 ΡΠ°Π·, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Π±ΡΠ΄Π΅ΡΠ·Π°ΠΊΡΡΡΠ°!», «ΠΡΠΈΠ±ΠΊΠ°», JOptionPane. ERROR_MESSAGE);
System.exit (0);
}.
}.
/*.
- *parserToDouble ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈ ΠΊ ΡΠΈΠΏ double, Π΄ΠΎ ΡΠΎΡΠ½ΠΎΡΡΠΈ 0.1
- */
private double parserToDouble (String text) {.
return new BigDecimal (Double.parseDouble (text)).setScale (1, RoundingMode. HALF_UP).doubleValue ();
}.
//ΠΠ°Π½Π΅Π»ΠΈΠ΄Π»ΡΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΊΠ½ΠΎΠΏΠΎΠΊ.
private final JPanel mainPanel, footer, header, content;//ΠΠ»Π°Π²Π½Π°Ρ, Π±ΠΎΠΊΠΎΠ²Π°Ρ, Π»Π΅Π²Π°ΡΠΏΠ°Π½Π΅Π»ΡΡΡΠ΅ΠΉΠΌΠ°.
//Π’Π΅ΠΊΡΡΠΎΠ²ΡΠ΅ΠΌΠ΅ΡΠΊΠΈ.
private JLabel topLabel, authorLabel;
private JLabel[] integrals, inputLabel;
// ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»ΠΈΠΏΠ°Π½Π΅Π»ΠΈ:
private JTextField[] inputText; //ΡΠ΅Ρ ΡΠΏΠΎΠ»Π΅Π΄Π»ΡΠ²Π²ΠΎΠ΄Π°Π΄Π°Π½Π½ΡΡ .
// ΠΠ½ΠΎΠΏΠΊΠΈΠΏΠ°Π½Π΅Π»ΠΈ:
private JButton paintButton, mathButton, clearButton; //ΠΊΠ½ΠΎΠΏΠΊΠΈΠ΄Π»ΡΠΏΡΠΎΡΠΈΡΠΎΠ²ΠΊΠΈ, ΠΎΡΠΈΡΡΠΊΠΈΠΏΠΎΠΏΠΎΡΡΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ .
private int isUserAGoat = 0;// ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠΏΡΡΠΎΠΊ.
//ΠΊΠ»Π°ΡΡΠ΄Π°Π½Π½ΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°Π»Π°.
private MethodDataSet dataSet;
private boolean mark = false;
}.
//GridBagConstraints ΠΊΠ»Π°ΡΡΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΠ΄Π»ΡΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ GridBagLayout ΠΊΠ»Π°ΡΡ.
class GBC extends GridBagConstraints {.
public GBC (int gridx, int gridy) {.
this.gridx = gridx;
this.gridy = gridy;
}.
public GBC setAnchor (int anchor) {.
this.anchor = anchor;
return this;
}.
public GBC setWeight (double weightx, double weighty) {.
this.weightx = weightx;
this.weighty = weighty;
return this;
}.
public GBC setInsets (int distance) {.
this.insets = new Insets (distance, distance, distance, distance);
return this;
}.
}.
package main;
import javax.swing.JFrame;// ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΠΎΠ±ΠΎΠΉΠΎΠΊΠ½ΠΎ.
// ΠΠ»Π°ΡΡ Ρ Π³Π»Π°Π²Π½ΡΠΌ ΠΌΠ΅ΡoΠ΄oΠΌ ΠΏΡoΠ³ΡΠ°ΠΌΠΌΡ:
public class Main {.
public static void main (String[] args) {.
// Π‘oΠ·Π΄Π°Π½ΠΈΠ΅ΠΎΠΊΠ½Π°:
MainFrame main = new MainFrame (545, 500);//Π Π°Π·ΠΌΠ΅ΡΠΎΠΊΠ½Π°.
main.setTitle («ΠΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠ°Π»Π° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΠΠΉΠ»Π΅ΡΠ°»);//ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΎΠΊΠ½Π°.
//ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΡΠΈ.
//Π·Π°ΠΊΡΡΡΠΈΠΈ ΠΎΠΊΠ½Π° Π·Π°ΠΊΡΡΠ²Π°Π»Π°ΡΡ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°,.
//ΠΈΠ½Π°ΡΠ΅ ΠΎΠ½Π° ΠΎΡΡΠ°Π½Π΅ΡΡΡ Π²ΠΈΡΠ΅ΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ°Ρ .
main.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
// ΠΠΎΠΊΠ°Π·Π°ΡΡΠΎΠΊΠ½ΠΎ.
main.setVisible (true);
main.setLocationRelativeTo (null);//ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΎΠΊΠ½Π°ΠΏΠΎΡΠ΅Π½ΡΡΡ.
main.setResizable (false);//Π·Π°ΠΏΡΠ΅ΡΠ°Π΅Ρ ΠΌΠ΅Π½ΡΡΡ ΠΎΠΊΠ½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
}.
}.
packagegraph;
importdataSet.MethodDataSet;//ΠΊΠ»Π°ΡΡΠ²Π²Π΅Π΄Π΅Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ .
import java.awt.BasicStroke;//Π¨ΡΡΠΈΡ ΠΎΠ²ΠΎΠΉ Π½Π°Π±ΠΎΡ Π°ΡΡΠΈΠ±ΡΡΠ°.
import java.awt.Color;//Π¦Π²Π΅Ρ.
import java.awt.Dimension;//Dimension ΠΊΠ»Π°ΡΡ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΡΠ΅Ρ ΡΠΈΡΠΈΠ½Ρ ΠΈ Π²ΡΡΠΎΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°.
importjava.awt.Graphics;//ΠΡΠ°ΡΠΈΠΊΠ°.
importjava.awt.Graphics2D;//ΠΊΠ»Π°ΡΡ ΡΠ°ΡΡΠΈΡΡΠ΅ΡΡΡ Graphics ΠΊΠ»Π°ΡΡ, ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΠ΅ΠΉ, ΡΠΊΠΎΠΎΡΠ΄ΠΈΠ½ΠΈΡΡΠΉΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ²Π΅ΡΠΎΠΌ, ΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
importjava.awt.Toolkit;//ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ AWT.
importjava.awt.event.ActionEvent; //ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΡΠΎΠ±ΡΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π±Ρ.
importjava.awt.event.ActionListener;//ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠ»ΡΡΠ°ΡΠ΅Π»Ρ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠ±ΡΡΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.
importjava.awt.geom.GeneralPath;//GeneralPath ΠΊΠ»Π°ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΡΡΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΠΈΠ· ΠΏΡΡΠΌΡΡ Π»ΠΈΠ½ΠΈΠΉ, ΠΈ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΠΉ ΠΈ ΠΊΡΠ±ΠΈΡΠ΅ΡΠΊΠΈΠΉ (BΠΉzier) ΠΊΡΠΈΠ²ΡΠ΅.
importjava.math.BigDecimal;//ΠΠ΅ΠΈΠ·ΠΌΠ΅Π½Π½Π°Ρ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½Π°Ρ ΡΠΎΡΠ½ΠΎΡΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π΄Π΅ΡΡΡΠΈΡΠ½ΡΠ΅ ΡΠΈΡΠ»Π°.
importjava.math.RoundingMode;//ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΎΠΊΡΡΠ³Π»ΡΡΡΠ΅Π΅ΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠΈΡΠ»ΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΡΠΏΠΎΡΠΎΠ±Π½ΡΡ ΠΊ ΠΎΡΠ±ΡΠ°ΡΡΠ²Π°Π½ΠΈΡ ΡΠΎΡΠ½ΠΎΡΡΠΈ.
importjavax.swing.JButton;//Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ «Π½Π°ΠΆΠ°ΡΠΈΡ» .
importjavax.swing.JFrame;//Π Π°ΡΡΠΈΡΠ΅Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ java.awt.Frame ΡΡΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ JFC/Swing.
importjavax.swing.JPanel;//JPanel ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ Π»Π΅Π³ΠΊΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ.Ρ.
// ΠΠ»Π°ΡΡ ΡΡΠ΅ΠΉΠΌΠ°:
public class Graph extends JFrame {.
// ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΠ°Π½Π΅Π»ΠΈ.
// (Π°ΡΠ³ΡΠΌΠ΅Π½Ρ — Π΄Π°Π½Π½ΡΠ΅):
public Graph (MethodDataSet dataSet) {.
// ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π²ΡΠ΅Π³ΠΎ ΡΠΊΡΠ°Π½Π° Π²ΡΠ·Π²Π°Π² ΠΌΠ΅ΡΠΎΠ΄ Toolkit. getDefaultToolkit ().getScreenSize ().
Dimension sSize = Toolkit. getDefaultToolkit ().getScreenSize ();
//Π Π°Π·ΠΌΠ΅Ρ ΠΎΠΊΠ½Π°.
myWidth = (int) sSize. getWidth () — 280;
myHeight = (int) sSize. getHeight () — 160;
setSize (myWidth + 30, myHeight + 100);
//ΠΠΎΠ³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΎΠΊΠ½Π°:
setTitle («ΠΡΠ°ΡΠΈΠΊ y = f (x) Π½Π° ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠ΅ [» + dataSet. getStartBy () + «;» + dataSet. getFinishBy () + «, a= «+ dataSet. getA () + «y20 = «+ dataSet. getY2());
//Π Π΅ΠΆΠΈΠΌ Π·Π°ΠΏΡΠ΅ΡΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΠΎΠΊΠ½Π°:
setResizable (false);
//Π Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠΊΠ½Π° ΠΏΠΎ ΡΠ΅Π½ΡΡΡ:
setLocationRelativeTo (null);
panel = new JPanel (null);
add (panel);// ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°Π½Π΅Π»ΠΈ Π² Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ.
this.dataSet = dataSet;
// Π‘ΠΌΠ΅ΡΠ΅Π½ΠΈΡ.
dx = 10;//ΠΏΠΎ ΠΎΡΠΈ Ρ .
dy = 100;//ΠΏΠΎ ΠΎΡΠΈ Ρ.
//ΠΠ½ΠΎΠΏΠΊΠ° Π²Π΅ΡΠ½ΡΡΡΡΡ Π½Π°Π·Π°Π΄.
returnBack = newJButton («ΠΠ°Π·Π°Π΄»);
returnBack.setBounds (myWidth/2, myHeight+30, 100,20);//ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ.
panel.add (returnBack);//Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ Π² ΠΏΠ°Π½Π΅Π»Ρ.
returnBack.addActionListener (newActionListener () {.
// ΠΠ΅ΡΠΎΠ΄ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΅Π»ΡΠΊΠ° Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅:
public void actionPerformed (ActionEvent event) {.
setVisible (false);//Π·Π°ΠΊΡΡΠ²Π°Π΅ΠΌ ΡΡΠ΅ΠΉΠΌ.
}.
});
}.
// ΠΠ΅ΡΠΎΠ΄ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π³ΡΠ°ΡΠΈΠΊΠ°.
@Override.
public void paint (Graphics gr) {.
super.paint (gr);
Graphics2D g = (Graphics2D) gr;
//Π‘ΡΡΠΎΠΈΠΌ Π³ΡΠ°ΡΠΈΠΊ.
doublex = 0;
// ΠΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, Π΄Π»Ρ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠ°.
double ampx = dataSet. getxEnd ();
double ampy;
if (dataSet.getA () > 0) {.
ampy = Min ();
} else {.
ampy = Max ();
}.
// ΠΡΡΠΈΡΠ»ΡΠ΅ΠΌ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
stepx = (myWidth — 90) / ampx;//ΠΊΠΎΡΡ Ρ .
stepy = (myHeight — 80) / ampy;//ΠΊΠΎΡΡ Ρ.
//ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠ° Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ.
//ΠΏΠ»ΠΎΡΠ°Π΄Ρ.
GeneralPath square = new GeneralPath ();//ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΡΡΡΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° GeneralPath.
g.setColor (Color.YELLOW);//ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ²Π΅Ρ.
drawSquare (square);//Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌ ΠΎΠ±Π»Π°ΡΡΡ, ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΊΡΠ°ΡΠΈΡΡ.
g.fill (square);//Π·Π°ΠΊΡΡΡΠΈΠ²Π°Π΅ΠΌ ΠΎΠ±Π»Π°ΡΡΡ.
g.draw (square);//ΡΠΈΡΡΠ΅ΠΌ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ.
GeneralPath graph = new GeneralPath ();//ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΡΡΡΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° GeneralPath.
g.setColor (Color.BLUE);//ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ²Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ±ΠΈΡΠ°Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
drawToGraph (graph);//Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ ΠΏΡΠΎΡΠΈΡΠΎΠ²ΠΊΠΈ Π³ΡΠ°ΡΠΈΠΊΠ°.
g.setStroke (newBasicStroke (3.0f));//ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠΎΠ»ΡΠΈΠ½Ρ Π»ΠΈΠ½Π½ΠΈ 3.
g.draw (graph);//ΡΠΈΡΡΠ΅ΠΌ Π½Π° ΡΡΠ΅ΠΉΠΌΠ΅ Π³ΡΠ°ΡΠΈΠΊ.
//ΡΠ΅ΡΠΊΡ ΠΈ ΡΠ°ΠΌ Π³ΡΠ°ΡΠΈΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ.
GeneralPathpath = newGeneralPath ();//ΡΠΎΠ·Π΄Π°Π΅ΡΡΡΠΏΡΡΡΠΎΠΉΠΎΠ±ΡΠ΅ΠΊΡΠΊΠ»Π°ΡΡΠ°GeneralPath.
g.setColor (Color.BLACK);//ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ΅ΡΠ½ΡΠΉ ΡΠ²Π΅Ρ.
g.setStroke (newBasicStroke (1.0f));//ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΈΠ½Π° 1.
//ΡΠ΅ΡΠΊΠ°.
if (mark == true) {//ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, Π²ΡΠ±ΡΠ°Π½ chekbox.
//ΠΡΠ»ΠΈ Π²ΡΠ±ΡΠ°Π½ ΡΠΎ.
drawGridΠ₯ (path, dataSet. getxEnd (), 10);//Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠΎΡΠΈΡΠΎΠ²ΠΊΠΈ Π»ΠΈΠ½ΠΈΠΉ ΠΏΠΎ ΠΎΡΠΈ Ρ .
if (dataSet.getA () > 0) {//ΠΈ Π΄Π»Ρ «Ρ» Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠΎΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠΎ Ρ.
drawGridY (path, g, Min (), 10);//Π΄Π»Ρ Π°>0 Π½Π°Ρ ΠΎΠ΄ΠΈΠΌ ΠΌΠΈΠ½ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ.
} else {.
drawGridY (path, g, Max (), 10);//ΠΈΠ½Π°ΡΠ΅ ΠΌΠ°Ρ .
}.
}.
//Π»ΠΈΠ½ΠΈΡ ΠΎΡΠΈ Ρ.
path.moveTo (60, indent ());//ΠΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌ ΡΠ΅ΠΊΡΡΡΡ ΡΠΎΡΠΊΡ Π² ΠΏΠ΅ΡΠ²ΡΡ Π²Π΅ΡΡΠΈΠ½Ρ.
path.lineTo (60, indent () + sign () *dataSet.getYN ()*stepy);//ΠΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌ ΡΠΎΡΠΊΡ Π² ΠΊΠΎΠ½Π΅Ρ Π»ΠΈΠ½ΠΈΠΈ.
//Π»ΠΈΠ½ΠΈΡ ΠΎΡΠΈ Ρ .
path.moveTo (60, indent () + sign () * dataSet. getY (0)*stepy);//ΠΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌ ΡΠ΅ΠΊΡΡΡΡ ΡΠΎΡΠΊΡ Π² ΠΏΠ΅ΡΠ²ΡΡ Π²Π΅ΡΡΠΈΠ½Ρ.
path.lineTo (dataSet.getxEnd ()*stepx+90, indent () + sign () * dataSet. getY (0)*stepy);//ΠΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌ ΡΠΎΡΠΊΡ Π² ΠΊΠΎΠ½Π΅Ρ Π»ΠΈΠ½ΠΈΠΈ.
g.draw (path);//ΡΠΈΡΡΠ΅ΠΌ ΡΡΠΈ Π»ΠΈΠ½ΠΈΠΈ.
//Π²ΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π° «ΠΏΠΎΠ΄ΠΏΠΈΡΡ ΠΎΡΠ΅ΠΉ ΠΏΠΎ Ρ » .
scaleX (g, dataSet. getxEnd (), 10);
//Π²ΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π° «ΠΏΠΎΠ΄ΠΏΠΈΡΡ ΠΎΡΠ΅ΠΉ ΠΏΠΎ Ρ» .
if (dataSet.getA () > 0) {//Π΅ΡΠ»ΠΈ Π°>0, ΡΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΠΌ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΠΈ Π΄Π»Ρ Π½Π΅Π³ΠΎ ΡΡΠΈΡΠ°Π΅ΠΌ.
scaleY (g, Min (), 10);
} else {//ΠΈΠ½Π°ΡΠ΅ ΠΌΠ°Ρ .
scaleY (g, Max (), 10);
}.
//ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΠΎΡΡ Ρ .
g.drawString («Ρ », (int) (dataSet.getxEnd ()*stepx + 85), (int) (indentText () + sign () * (dataSet.getY (0)) * stepy));
//ΡΡΡΠ΅Π»ΠΊΠΈ Π΄Π»Ρ ΠΎΡΠΈ Ρ .
g.drawLine ((int) (dataSet.getxEnd () * stepx + 85), (int) (indentText () + sign () * (dataSet.getY (0)) * stepy+(dataSet.getA ()>0? 0:-20)), (int) (dataSet.getxEnd () * stepx + 90), (int) (indentText () + sign () * (dataSet.getY (0)) * stepy+(dataSet.getA ()>0? 5:-15)));
g.drawLine ((int) (dataSet.getxEnd () * stepx + 85), (int) (indentText () + sign () * (dataSet.getY (0)) * stepy+(dataSet.getA ()>0? 10:-10)), (int) (dataSet.getxEnd () * stepx + 90), (int) (indentText () + sign () * (dataSet.getY (0)) * stepy+(dataSet.getA ()>0? 5:-15)));
//ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΠΎΡΡ Ρ.
g.drawString («Ρ», (int) (45), (int) ((dataSet.getA ()>0)?130+dataSet.getYN () * stepy :90+ dataSet. getY (0)*stepy));
//ΡΡΡΠ΅Π»ΠΊΠΈ ΠΎΡΡ Ρ.
g.drawLine ((int) (60), (int) ((dataSet.getA ()>0)?90+dataSet.getYN () * stepy :200+ dataSet. getY (0)*stepy), (int) (60), (int) ((dataSet.getA ()>0)?130+dataSet.getYN () * stepy :80+ dataSet. getY (0)*stepy));
g.drawLine ((int) (60), (int) ((dataSet.getA ()>0)?130+dataSet.getYN () * stepy :80+ dataSet. getY (0)*stepy), (int) (55), (int) ((dataSet.getA ()>0)?125+dataSet.getYN () * stepy :85+ dataSet. getY (0)*stepy));
g.drawLine ((int) (60), (int) ((dataSet.getA ()>0)?130+dataSet.getYN () * stepy :80+ dataSet. getY (0)*stepy), (int) (65), (int) ((dataSet.getA ()>0)?125+dataSet.getYN () * stepy :85+ dataSet. getY (0)*stepy));
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π°ΡΠ°Π»ΠΎ ΠΎΡΠΈ.
g.drawString («0.0», (int) (40), (int) (indentText () + sign () * (dataSet.getY (0)) * stepy));
//ΠΠ»ΠΎΡΠ°Π΄Ρ.
g.drawString («- ΠΠ»ΠΎΡΠ°Π΄Ρ S», dx+65,dy-30);// ΠΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ»ΠΎΡΠ°Π΄ΠΈ.
//ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ²Π΅Ρ S.
g.setColor (Color.YELLOW);
g.setStroke (new BasicStroke (5.0f));///ΡΠΎΠ»ΡΠΈΠ½Π° Π»ΠΈΠ½ΠΈΠΈ 5.
g.drawLine (dx+30, dy-35,dx+60, dy-35);//Π»ΠΈΠ½ΠΈΡ ΠΏΠ»ΠΎΡΠ°Π΄ΠΈ.
}.
/**ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ox.
- * @paramg ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ, Π° ΠΌΡ Π±Π΅ΡΡΠΌ Π΅Π³ΠΎ Π² Π³ΠΎΡΠΎΠ²ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
- * @paramvalue — ΠΌΠ°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
- * @paramcount — ΡΠΈΠ»ΠΎ ΠΎΡΡΠ΅Π·ΠΊΠΎΠ²
- */
public void scaleX (Graphics g, double value, int count) {.
double variable = value / count; //ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠ°Π³Π°.
for (int i = 1; i <= count; i++) {.
g.drawString (Double.toString (new BigDecimal (variable).setScale (1, RoundingMode. HALF_UP).doubleValue ()), (int) (variable * stepx + 50), (int) (indentText () + sign () * (dataSet.getY (0)) * stepy));
variable += value / count;//ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΠΌ ΡΠ°Π³.
}.
}.
/**ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ oy.
- * @paramgΡΠΎΠ·Π΄Π°ΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ
- * @paramcount — ΠΌΠΈΠ½ ΠΈΠ»ΠΈ ΠΌΠ°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
- * @param value — ΡΠΈΠ»ΠΎ ΠΎΡΡΠ΅Π·ΠΊΠΎΠ²
- */
public void scaleY (Graphics g, double value, int count) {.
double variable = value / count;
for (int i = 1; i <= count; i++) {.
g.drawString (Double.toString (new BigDecimal (variable).setScale (1, RoundingMode. HALF_UP).doubleValue ()), (int) 23, (int) (indent () + sign () * variable * stepy));
variable += value / count;
}.
}.
/*GeneralPath.
- *@path — ΠΊΠ»Π°ΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΡΠΈΠ²ΡΠΌΠΈ
- *@moveTo — ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠΎΡΠΊΠΈ
- *@lineTo — ΠΏΠΎΡΡΠΎΡΠΎΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΠ°, ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ ΡΠ»Π΅Π΄ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ
- *@closePath — Π·Π°ΠΌΡΠΊΠ°Π΅Ρ ΠΊΡΠΈΠ²ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ Π»ΠΈΠ½ΠΈΡ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΠΊ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠ΅ ΠΊΠΎΠ½ΡΡΡΠ° ΠΊΡΠΈΠ²ΠΎΠΉ
- */
/*.
- *moveToGraph ()
- *ΡΠΈΡΡΠ΅Ρ Π³ΡΠ°ΡΠΈΠΊ */
public GeneralPath drawToGraph (GeneralPath path) {.
path.moveTo (dx + 50, indent () + sign () * (dataSet.getY (0)) * stepy);
for (int i = 1; i <= dataSet. getNx (); i++) {.
x = dataSet. getH () * i;
path.lineTo (dx + x * stepx + 50, indent () + sign () * (dataSet.getY (i)) * stepy);
}.
returnpath;
}.
/*ΠΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠ΅ΡΠΊΡ*/.
//ΡΠΈΡΡΠ΅Ρ ΡΠ΅ΡΠΊΡ ΠΏΠΎ ΠΎΡΠΈ Ρ.
public GeneralPath drawGridY (GeneralPath path, Graphics2D g, double value, int count) {.
double variable = value / count;
for (int i = 1; i <= count; i++) {.
path.moveTo (60, (indent () + sign () * variable * stepy));
path.lineTo (60 + dataSet. getxEnd () * stepx, (indent () + sign () * variable * stepy));
variable += value / count;
}.
return path;
}.
public GeneralPath drawGridΠ₯ (GeneralPath path, double value, int count) {.
double variable = value / count;
for (int i = 0; i < 11; i++) {.
path.moveTo (variable * stepx + 60, indent () + sign () * (dataSet.getY (0)) * stepy);
path.lineTo (variable * stepx + 60, indent () + sign () * (dataSet.getYN ()) * stepy);
variable += value / count;
}.
return path;
}.
/*ΠΠ°ΠΊΡΠ°ΡΠΈΠ²Π°Π΅ΠΌ ΠΏΠ»ΠΎΡΠ°Π΄Ρ ΡΠΈΠ³ΡΡΡ*/.
public GeneralPath drawSquare (GeneralPath path) {.
//ΡΡΡΠΈΡ ΠΎΠ²ΠΊΠ° Π²Π½ΠΈΡΡΠΈ ΡΠΈΠ³ΡΡΡ.
path.moveTo (dx + dataSet. getStartBy () * stepx + 50, indent () + sign () * (dataSet.getY (0)) * stepy);
for (int i = dataSet. getIntStartBy (); i <= dataSet. getNs (); i++) {.
x = i * dataSet. getH ();
path.lineTo (dx + x * stepx + 50, indent () + sign () * (dataSet.getY (i)) * stepy);
}.
path.lineTo (dx + dataSet. getFinishBy () * stepx + 50, indent () + sign () * (dataSet.getY (0)) * stepy);
path.closePath ();
returnpath;
}.
//Π·Π½Π°ΠΊ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½Π°ΡΠ°Π»Π° ΠΎΡΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ.
public double sign () {.
if (dataSet.getA () < 0) {.
return -1;
}.
return 1;
}.
//ΠΎΡΡΡΡΠΏ Π΄Π»Ρ Π½Π°ΡΠ°Π»ΠΎ ΠΎΡΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ.
publicdoubleindent () {.
if (dataSet.getA () < 0) {.
return myHeight + 30;
}.
returndy + 10;
}.
//ΠΎΡΡΡΡΠΏΠ½Π°ΡΠ°Π»ΠΎΠΏΠΎΠ΄ΠΏΠΈΡΠΈΠΎΡΠΈΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ.
public double indentText () {.
if (dataSet.getA () < 0) {.
return myHeight + 45;
}.
return dy + 5;
}.
//Π½Π°Ρ ΠΎΠ΄ΠΈΠΌ ΠΌΠΈΠ½ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
private double Min () {.
double min = dataSet. getY (0);
for (int i = 1; i <= dataSet. getNx (); i++) {.
if (dataSet.getY (i) < min) {.
min = dataSet. getY (i);
}.
}.
return min;
}.
//Π½Π°Ρ ΠΎΠ΄ΠΈΠΌ ΠΌax Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
private double Max () {.
double max = dataSet. getY (0);
for (int i = 1; i <= dataSet. getNx (); i++) {.
if (dataSet.getY (i) > max) {.
max = dataSet. getY (i);
}.
}.
return max;
}.
//Π‘Π΅ΡΠΊΠ°.
public Graph setMark (boolean mark) {.
this.mark = mark;
return this;
}.
private int myWidth, myHeight;
private MethodDataSet dataSet;
// ΠΡΡΡΡΠΏΠΎΡΠΊΡΠ°Π΅Π²ΠΎΠΊΠ½Π°.
privateintdx, dy;
privatedoublex=0;
// Π¨Π°Π³ΠΈ ΠΏΠΎ ΠΎΡΡΠΌ ΠΏΡΠΈ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ.
// ΠΡΠ°Π½ΠΈΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ:
privatedoublestepx;
privatedoublestepy;
// Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ»Π°ΠΆΠΊΠ° Π²ΡΠ²ΠΎΠ΄Π° ΡΠ΅ΡΠΊΠΈ:
privatebooleanmark = true;
//ΠΊΠ½ΠΎΠΏΠΊΠ° Π΄Π»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°.
private JButton returnBack;
//ΠΠ°Π½Π΅Π»Ρ Π΄Π»Ρ Π³ΡΠ°ΡΠΈΠΊΠ°.
private JPanel panel;
}.
package dataSet;
//ΠΊΠ»Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°.
public class Method {.
private MethodDataSet data;//ΠΊΠ»Π°ΡΡ Π΄Π°Π½Π½ΡΡ .
//ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°.
private double x;
private double sum = 0;
//ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΠΊΠ»Π°ΡΡΠ΄Π°Π½Π½ΡΡ .
publicMethod (MethodDataSetdata) {.
this.data = data;
}.
//ΡΡΠΈΡΡΠ²Π°Π΅ΠΌ ΠΈΠ½ΡΠ΅Π³ΡΠ°Π».
public double getSum () {.
return sum * data. getH ();
}.
//ΡΡΠ½ΠΊΡΠΈΡ.
private double F (double x) {.
returndata.getA () * x * data. getY (2)-data.getY1()*math.pow (x, 2);
}.
//ΠΌΠ΅ΡΠΎΠ΄ ΠΠΉΠ»Π΅ΡΠ°.
public void methodEuler () {.
//ΠΠ°ΡΠ°Π»ΡΠ½ΡΠ΅ΡΡΠ»ΠΎΠ²ΠΈΡ.
data.addY (0, data. getY1());
data.addY (1, data. getY2());
//ΠΡΡΠΈΡΠ»ΡΠ΅ΠΌ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠΎΡΠ΅ΠΊ Ρ[x].
for (int i = 1; i <= data. getNx (); i++) {.
x = i * data. getH ();
data.addY (i, data. getY (i — 1) + data. getH () * F (x));
}.
}.
public void setSum () {.
int dlina = (int) Math. round ((data.getFinishBy () — data. getStartBy ()) / data. getH ());
int nach = (int) Math. round (data.getStartBy () / data. getH ());
for (int i = nach; i <= (nach + dlina); i++) {.
sum += data. getY (i);
}.
}.
}.
package dataSet;
public class MethodDataSet {.
//ΠΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅.
private double a;
//ΠΠ½ΡΠ΅Π³ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΎΠ±Π»Π°ΡΡΡ.
private double startBy, xEnd, finishBy;
private int nx;
private int ns;
private int fs;
//ΡΠ°Π³ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
private double h=0.01;
private final double y1 = 0;
private double y2;
privatedouble[] y;
//ΠΌΠ΅ΡΠΎΠ΄ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°Π»Π°.
private Method method;
//ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ .
public void inizial (){.
nx = (int) (xEnd / h);//ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΠΉ.
y = newdouble[nx + 1]; //Π΄Π»ΠΈΠ½Π° ΠΌΠ°ΡΡΠΈΠ²Π°.
//ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΏΠΎΠ΄ΡΡΠ΅ΡΠ° ΠΈΠ½ΡΠ΅Π³ΡΠ°Π»Π°.
//Ρ.ΠΊ ΠΈΠ½ΡΠ΅Π³ΡΠ°Π» Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠΎΡΠΊΠΈ Ρ 1.
//Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°ΡΡΠΈΡΠ°ΡΡ Π½Π°ΡΠ°Π»ΠΎ ΠΎΡΡΠ΅ΡΠ° ΠΎΡΡΠ΅Π·ΠΊΠ°.
//ΠΈ Π΅Π³ΠΎ Π΄Π»ΠΈΠ½Ρ.
fs = (int) (Math.round (startBy / h));//Π½Π°ΡΠ°Π»ΠΎ ΠΎΡΡΠ΅ΡΠ°.
ns = (int) (Math.round ((finishBy — startBy) / h) + fs);//ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΠΉ ΠΎΡΡΠ΅Π·ΠΊΠ° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
//ΠΏΠΎΠ΄ΡΡΠ΅Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°Π»Π°.
method = new Method (this);
method.methodEuler ();//ΠΌΠ΅ΡΠΎΠ΄ ΠΠΉΠ»Π΅ΡΠ°.
}.
//ΠΏΠΎΠ΄ΡΡΠ΅Ρ ΡΡΠΌΠΌΡ.
public void setSum () {.
method.setSum ();
}.
//ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠΌΠΌΡ.
public double getSum () {.
returnmethod.getSum ();
}.
//ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡΠ°.
public MethodDataSet setA (double a) {.
this.a = a;
return this;
}.
//ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ h.
public MethodDataSet setH (double h) {.
this.h = h;
return this;
}.
//ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π½Π°ΡΠ°Π»ΠΎ ΠΎΡΡΠ΅Π·ΠΊΠ° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
public MethodDataSet setStartBy (double startBy) {.
this.startBy = startBy;
return this;
}.
//ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΊΠΎΠ½Π΅ΡΠ° ΠΎΡΡΠ΅Π·ΠΊΠ°.
public MethodDataSet setxEnd (double xEnd) {.
this.xEnd = xEnd;
return this;
}.
//ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΊΠΎΠ½Π΅Ρ ΠΎΡΡΠ΅Π·ΠΊΠ° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
public MethodDataSet setFinishBy (double finishBy) {.
this.finishBy = finishBy;
return this;
}.
//ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Ρ2.
public MethodDataSet setY2(double y2) {.
this.y2 = y2;
return this;
}.
/**.
- * @return ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ A
- */
public double getA () {.
return a;
}.
/**.
- * @return ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ startBy
- */
public double getStartBy () {.
return startBy;
}.
/**.
- * @return ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ xEnd
- */
public double getxEnd () {.
return xEnd;
}.
/**.
- * @return ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ finishBy
- */
public double getFinishBy () {.
return finishBy;
}.
/**.
- * @return ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ nx
- */
public int getNx () {.
return nx;
}.
/**.
- * @return ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ns
- */
public int getNs () {.
returnns;
}.
/**.
- * @returnΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡns
- */
public int getIntStartBy () {.
return fs;
}.
/**.
- * @return ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ h
- */
public double getH () {.
returnh;
}.
/**.
- * @returnΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡy1
- */
public double getY1() {.
returny1;
}.
/**.
- * @return ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ y2
- */
public double getY2() {.
returny2;
}.
/**.
- * @return ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ y
- */
public double getY (int i) {.
returny[i];
}.
//Π²Π΅ΡΠ½ΡΡΡ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ Ρ.
public double getYN () {.
return y[nx];
}.
/**.
- * @Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π² ΠΌΠ°ΡΡΠΈΠ² y
- */
public void addY (int i, double type) {.
y[i] = type;
}.
}.