Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: Java: JavaFX: Neliöiden ja kuutioiden summa

koodaaja [30.06.2020 21:21:02]

#

Lasketaan valinnan mukaan luvun neliöiden tai kuutioiden summa. Lisäksi voidaan vaihtaa kerroin tai lukujen määrä. Lisäksi voidaan laskea summa lukujen määrillä 1-x. Luvun neliöiden summan kaava on [x*(x+1)*(2*x+1)]/6 ja luvun kuutioiden summan kaava on [(x)^2*(x+1)^2]/4. Lukitsen tilini, koska en näköjään pysty olemaan lähettämättä koodeja.

package javafx_neliot;

import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.RadioButton;
import javafx.scene.control.TextField;
import javafx.scene.control.Toggle;
import javafx.scene.control.ToggleGroup;
import javafx.scene.layout.TilePane;
import javafx.stage.Stage;

public class JavaFX_Neliot extends Application {

    int valinta = 1;
    int valinta_2 = 1;
    int summa = 0;
    @Override
    public void start(Stage primaryStage) {

        //Luodaan objektit.

        TextField tf = new TextField();
        TextField tf2 = new TextField();
        Label l = new Label();
        //Luodaan radiobuttonit.
        RadioButton r1 = new RadioButton("Neliö");
        RadioButton r2 = new RadioButton("Kuutio");
        ToggleGroup tg = new ToggleGroup();
        RadioButton r3 = new RadioButton("Yksi");
        RadioButton r4 = new RadioButton("Jatkuva");
        ToggleGroup tg2 = new ToggleGroup();
        //Asetetaan radiobuttonit.
        r1.setToggleGroup(tg);
        r2.setToggleGroup(tg);
        r3.setToggleGroup(tg2);
        r4.setToggleGroup(tg2);
        tf.textProperty().addListener((observable, oldValue, newValue) -> {
            //Lasketaan neliöiden tai kuutioiden summa valinnan mukaan.
            //Lisäksi voidaan valita, lasketaanko vai kyseinen luku vai siihen asti.
            int luku = Integer.valueOf(tf.getText());
            double tulos = 0;
            int maara = Integer.valueOf(tf2.getText());
            if (valinta == 1){
                //Neliö
                if (valinta_2 == 1){
                    //Yksi
                    tulos = Math.pow(luku,2)*maara*(maara+1)*(2*maara+1)/6;

                }
                else if (valinta_2 == 2) {
                    //Jatkuva
                    summa = 0;
                    summa += Math.pow(luku,2)*maara*(maara+1)*(2*maara+1)/6;
                    for (int x = maara-1; x >= 1; x--){
                        summa += Math.pow(luku*x,2)*(maara-x);
                    }

                    tulos = summa;
                }

            }
            else if (valinta == 2){
                //Kuutio
                if (valinta_2 == 1){
                    //Yksi
                     tulos = Math.pow(luku,3)*((Math.pow(maara,2)*Math.pow(maara+1, 2))/4);
                }
                else if (valinta_2 == 2){
                    //Jatkuva
                    summa = 0;
                    summa += Math.pow(luku,3)*((Math.pow(maara,2)*Math.pow(maara+1, 2))/4);
                    for (int x = maara-1; x >= 1; x--){

                        summa += Math.pow(luku*x,3)*(maara-x);
                    }
                    tulos = summa;
                }

            }

            //Näytetään tulos.
            l.setText(String.valueOf(tulos));
        });
        tg.selectedToggleProperty().addListener(new ChangeListener<Toggle>(){

            @Override
            public void changed(ObservableValue<? extends Toggle> observable, Toggle oldValue, Toggle newValue) {
                //Tehdään valinta neliö tai kuutio.
                RadioButton rb = (RadioButton)tg.getSelectedToggle();
                if (rb != null){
                    String s = rb.getText();
                    if (s.equals("Neliö")){
                        valinta = 1;
                    }
                    else if (s.equals("Kuutio")){
                        valinta = 2;
                    }
                }
            }
        });
        tg2.selectedToggleProperty().addListener(new ChangeListener<Toggle>(){

            @Override
            public void changed(ObservableValue<? extends Toggle> observable, Toggle oldValue, Toggle newValue) {
                RadioButton rb = (RadioButton)tg2.getSelectedToggle();
                //Yksi tai jatkuva
                if (rb != null){
                    String s = rb.getText();
                    if (s.equals("Yksi")){
                        valinta_2 = 1;
                    }
                    else if (s.equals("Jatkuva")){
                        valinta_2 = 2;
                    }
                }
            }
        });
        //Luodaan asettelu.
        TilePane root = new TilePane();
        root.getChildren().add(tf);
        root.getChildren().add(tf2);
        root.getChildren().add(l);
        root.getChildren().add(r1);
        root.getChildren().add(r2);
        root.getChildren().add(r3);
        root.getChildren().add(r4);
        //Luodaan ikkuna.
        Scene scene = new Scene(root, 300, 250);
        primaryStage.setTitle("Hello World!");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }

}

tositoo [04.07.2020 20:08:27]

#

Sinun koodisi ovat ainakin koodeja. älä ihmeessä tai "ehdossa" lopeta näitten tekemistä.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta