我正在试验 Perl,并编写了以下二次方程求解器。
#! perl
use strict;
use Math::Complex;
use v5.22;
say "Quadratic Equation Solver";
print "Enter a: ";
$a = <STDIN>;
print "Enter b: ";
$b = <STDIN>;
print "Enter c: ";
my $c = <STDIN>;
my $dis = ($b ** 2) - (4 * $a * $c);
say "x1 = ".((0 - $b + sqrt($dis)) / (2 * $a));
say "x2 = ".((0 - $b - sqrt($dis)) / (2 * $a));
Run Code Online (Sandbox Code Playgroud)
如果我my在创建变量$cand时省略$dis,我会收到一条错误消息,内容如下:
Global …Run Code Online (Sandbox Code Playgroud) 我正在使用 JavaFX 创建 Java 中不同排序算法的可视化,更具体地说,是 JavaFX SDK 中的散点图 (XYChart)。我的想法是,每次在排序算法进行交换后都会重新绘制散点图,我从插入排序的简单版本开始,因为它似乎是最容易实现的算法。
我的问题是,当我开始排序时,程序会锁定,直到排序完全完成并重新绘制图形完全完成。我希望它在每一步都重新绘制图表!我添加了 Thread.sleep(x) 然后切换到 TimeUnit.milliseconds.sleep(x) 来尝试添加延迟,但可惜这并没有解决问题,它只是增加了程序被锁定的时间并且没有直到排序完成后才重新绘制图表。有没有办法在不将框架从 JavaFX 切换出来的情况下做我想做的事情?
package sample;
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXMLLoader;
import javafx.scene.Group;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.chart.*;
import javafx.scene.control.Button;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
import jdk.jfr.Event;
import java.util.Arrays;
import java.util.Random;
import java.util.concurrent.TimeUnit;
public class Main extends Application {
Button sortBtn = new Button();
@Override
public void start(Stage primaryStage) throws Exception {
//Creating Bar Graph
int size = 100;
int maxValue = 100; …Run Code Online (Sandbox Code Playgroud)