sneyzi

12, 2 (7 variant)

Jun 10th, 2021
777
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import java.awt.EventQueue;
  2.  
  3. import javax.swing.JFrame;
  4. import javax.swing.JPanel;
  5. import javax.swing.border.EmptyBorder;
  6. import javax.swing.JMenu;
  7. import javax.swing.JMenuBar;
  8. import javax.swing.JMenuItem;
  9. import javax.swing.JOptionPane;
  10.  
  11. import java.awt.event.ActionListener;
  12. import java.awt.event.ActionEvent;
  13. import javax.swing.JTextArea;
  14. import javax.swing.JLabel;
  15. import javax.swing.JTextField;
  16. import javax.swing.JCheckBox;
  17. import javax.swing.JScrollPane;
  18.  
  19. public class Task2 extends JFrame {
  20.  
  21.     /**
  22.      *
  23.      */
  24.     private static final long serialVersionUID = 1L;
  25.     private JPanel contentPane;
  26.     private JTextField textField;
  27.     private JTextField textField_1;
  28.     private JTextField textField_2;
  29.  
  30.     /**
  31.      * Launch the application.
  32.      */
  33.     public static void main(String[] args) {
  34.         EventQueue.invokeLater(new Runnable() {
  35.             public void run() {
  36.                 try {
  37.                     Task2 frame = new Task2();
  38.                     frame.setVisible(true);
  39.                 } catch (Exception e) {
  40.                     e.printStackTrace();
  41.                 }
  42.             }
  43.         });
  44.     }
  45.  
  46.     /**
  47.      * Create the frame.
  48.      */
  49.     public Task2() {
  50.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  51.         setBounds(100, 100, 653, 391);
  52.         contentPane = new JPanel();
  53.         contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  54.         setContentPane(contentPane);
  55.         contentPane.setLayout(null);
  56.        
  57.         JMenuBar menuBar = new JMenuBar();
  58.         menuBar.setBounds(0, 0, 435, 21);
  59.         contentPane.add(menuBar);
  60.        
  61.         JMenu mnNewMenu = new JMenu("\u041E\u0431\u0447\u0438\u0441\u043B\u0435\u043D\u043D\u044F");
  62.         menuBar.add(mnNewMenu);
  63.        
  64.         JScrollPane scrollPane = new JScrollPane();
  65.         scrollPane.setBounds(10, 32, 371, 314);
  66.         contentPane.add(scrollPane);
  67.        
  68.         JTextArea textArea = new JTextArea();
  69.         scrollPane.setViewportView(textArea);
  70.        
  71.         JPanel panel = new JPanel();
  72.         panel.setBounds(474, 32, 129, 92);
  73.         contentPane.add(panel);
  74.        
  75.         JCheckBox chckbxNewCheckBox = new JCheckBox("\u043D\u0430 \u0435\u043A\u0440\u0430\u043D");
  76.         panel.add(chckbxNewCheckBox);
  77.        
  78.         JCheckBox chckbxNewCheckBox_1 = new JCheckBox("\u043F\u043E\u0445\u0456\u0434\u043D\u0430");
  79.         panel.add(chckbxNewCheckBox_1);
  80.        
  81.         JCheckBox chckbxNewCheckBox_2 = new JCheckBox("\u0443 \u043C\u0430\u0441\u0438\u0432");
  82.         panel.add(chckbxNewCheckBox_2);
  83.        
  84.         JLabel lblNewLabel = new JLabel("y=sin 3x+1");
  85.         lblNewLabel.setBounds(392, 33, 63, 14);
  86.         contentPane.add(lblNewLabel);
  87.        
  88.         JLabel lblNewLabel_1 = new JLabel("\u043B\u0456\u0432\u0430 \u043C\u0435\u0436\u0430");
  89.         lblNewLabel_1.setBounds(505, 153, 83, 14);
  90.         contentPane.add(lblNewLabel_1);
  91.        
  92.         JLabel label = new JLabel("\u043F\u0440\u0430\u0432\u0430 \u043C\u0435\u0436\u0430");
  93.         label.setBounds(505, 197, 83, 14);
  94.         contentPane.add(label);
  95.        
  96.         JLabel label_1 = new JLabel("\u043A\u0440\u043E\u043A");
  97.         label_1.setBounds(505, 240, 83, 14);
  98.         contentPane.add(label_1);
  99.        
  100.         textField = new JTextField();
  101.         textField.setBounds(502, 173, 86, 20);
  102.         contentPane.add(textField);
  103.         textField.setColumns(10);
  104.        
  105.         textField_1 = new JTextField();
  106.         textField_1.setColumns(10);
  107.         textField_1.setBounds(501, 214, 86, 20);
  108.         contentPane.add(textField_1);
  109.        
  110.         textField_2 = new JTextField();
  111.         textField_2.setColumns(10);
  112.         textField_2.setBounds(502, 258, 86, 20);
  113.         contentPane.add(textField_2);
  114.        
  115.         JMenuItem mntmNewMenuItem = new JMenuItem("\u043F\u0440\u043E\u0442\u0430\u0431\u0443\u043B\u044E\u0432\u0430\u0442\u0438");
  116.         mntmNewMenuItem.addActionListener(new ActionListener() {
  117.             public void actionPerformed(ActionEvent e) {
  118.                 if (chckbxNewCheckBox.isSelected())
  119.                     textArea.setText("x f(x)");// вставляємо рядок з підписами стовпців аргументу і значення функції)
  120.  
  121.                 double a = Double.parseDouble(textField.getText());// Одержуємо числове значення лівої межі
  122.                 double b = Double.parseDouble(textField_1.getText());// Одержуємо числове значення правої межі
  123.                 double h = Double.parseDouble(textField_2.getText());// Одержуємо числове значення кроку
  124.  
  125.                 int i = 0, count = 0, maxElementNumber = 0;
  126.  
  127.                 double x = a, y; // Починаємо табулювати з лівої межі
  128.                 double[] masiv = new double[(int) ((b - a) / h) + 1];
  129.                 double min = Math.sin(3 * x) + 1;
  130.                
  131.                 while (x <= b) { // поки аргумент х не перевищить праву межу з певним допуском
  132.                     y = chckbxNewCheckBox_1.isSelected() ? 3 * Math.cos(3 * x) : Math.sin(3 * x) + 1;
  133.                     //y =  2 * Math.cos(x); // Обчислюємо значення функції
  134.                     if (chckbxNewCheckBox_2.isSelected()) {
  135.                         masiv[i] = y;
  136.                        
  137.                         if (masiv[i] > min) {
  138.                             min = masiv[i];
  139.                             maxElementNumber = i+1;
  140.                         }
  141.  
  142.                         if (masiv[i] == 0 && i % 2 == 0) {
  143.                             count++;
  144.                         }
  145.  
  146.                         i++;
  147.                     }
  148.                     if (chckbxNewCheckBox.isSelected())
  149.                         textArea.append("\n" + x + " " + y  + (chckbxNewCheckBox_2.isSelected() ? " -" + i + "ий елемент масиву " : "")); // Вставляємо рядок у поле
  150.                     x = x + h; // Збільшуємо аргумент на величину кроку)
  151.                 }
  152.                 if (chckbxNewCheckBox_2.isSelected()) {
  153.                     textArea.append("\nіндекс  максимального  елементу " + maxElementNumber);
  154.                     textArea.append("\nкількість нулевих елементів, що стоять на парних місцях " + count);
  155.                 }
  156.             }
  157.         });
  158.         mnNewMenu.add(mntmNewMenuItem);
  159.        
  160.         JMenuItem mntmNewMenuItem_1 = new JMenuItem("\u043E\u0447\u0438\u0441\u0442\u0438\u0442\u0438");
  161.         mntmNewMenuItem_1.addActionListener(new ActionListener() {
  162.             public void actionPerformed(ActionEvent arg0) {
  163.                 textArea.setText("");
  164.             }
  165.         });
  166.         mnNewMenu.add(mntmNewMenuItem_1);
  167.        
  168.         JMenu menu = new JMenu("\u041A\u0456\u043D\u0435\u0446\u044C");
  169.         menuBar.add(menu);
  170.        
  171.         JMenuItem mntmNewMenuItem_2 = new JMenuItem("\u043F\u0440\u043E \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u0443");
  172.         mntmNewMenuItem_2.addActionListener(new ActionListener() {
  173.             public void actionPerformed(ActionEvent arg0) {
  174.                 JOptionPane.showMessageDialog(null, "Про програму", null, JOptionPane.INFORMATION_MESSAGE);
  175.             }
  176.         });
  177.         menu.add(mntmNewMenuItem_2);
  178.        
  179.         JMenuItem mntmNewMenuItem_3 = new JMenuItem("\u043F\u0440\u043E \u0430\u0432\u0442\u043E\u0440\u0430");
  180.         mntmNewMenuItem_3.addActionListener(new ActionListener() {
  181.             public void actionPerformed(ActionEvent e) {
  182.                 JOptionPane.showMessageDialog(null, "Про автора", null, JOptionPane.INFORMATION_MESSAGE);
  183.             }
  184.         });
  185.         menu.add(mntmNewMenuItem_3);
  186.        
  187.         JMenuItem mntmNewMenuItem_4 = new JMenuItem("\u0432\u0438\u0445\u0456\u0434");
  188.         mntmNewMenuItem_4.addActionListener(new ActionListener() {
  189.             public void actionPerformed(ActionEvent e) {
  190.                 System.exit(0);
  191.             }
  192.         });
  193.         menu.add(mntmNewMenuItem_4);
  194.     }
  195. }
RAW Paste Data