Napisałem sobie prosty skrypcik obiektowo w PHP dotyczący funkcji kwadratowej. Proszę o oceny i rady co poprawić/lepiej napisać oraz czy jest to napisane "zgodnie ze sztuką"?
<?php
class F_Square{
public $factor_a, $factor_b, $factor_c;
public function deltaCalculation($factor_a, $factor_b, $factor_c){
return $factor_b * $factor_b - 4 * $factor_a * $factor_c;
}
public function x1Cord($factor_a, $factor_b, $factor_c){
return round(- ($factor_b - sqrt($factor_b * $factor_b - 4 * $factor_a * $factor_c)), 2) / 2 * $factor_a;
}
public function x2Cord($factor_a, $factor_b, $factor_c){
return round(- ($factor_b + sqrt($factor_b * $factor_b - 4 * $factor_a * $factor_c)), 2) / 2 * $factor_a;
}
public function topCord1($factor_a, $factor_b){
return round((-$factor_b) / (2 * $factor_a), 2);
}
public function topCord2($factor_a, $factor_b, $factor_c){
return round(- ($factor_b * $factor_b - 4 * $factor_a * $factor_c), 2) / 4 * $factor_a;
}
public function deltaRadical($factor_a, $factor_b, $factor_c){
return round(sqrt($factor_b * $factor_b - 4 * $factor_a * $factor_c), 2);
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Square function</title>
</head>
<style>
input { outline: none; }
input:focus { border: 2px #f00 solid; }
input.numeric { width: 40px; height: 20px; }
.error { background: #ffbaba; border: 1px #ff8585 solid; width: 100px auto; float: left; margin-top: 40px; margin-left: 560px; padding:10px; text-align: center; }
.success { background: #dff2bf; border: 1px #cbea95 solid; width: 100px auto; float: left; margin-top: 40px; margin-left: 560px; padding: 10px; text-align: center; }
</style>
<body>
<?php
$ins = new F_Square();
echo '
<p style="text-decoration: underline; text-align: center">Square function generator(OOP):</p>
<div style="border: 1px #444 solid; padding: 5px; width: 300px; margin: 0 auto">
<form action="index.php" method="post">
y = <input type="number" name="sendA" placeholder="a" class="numeric"/> x<sup>2</sup> +
<input type="number" name="sendB" placeholder="b" class="numeric"/> x +
<input type="number" name="sendC" placeholder="c" class="numeric"/> c
<p style="float: right; margin: 10px"><button type="submit" name="calculateSquareFunction">Calculate</button></p>
</form>
</div>
';
if(isset($_POST['calculateSquareFunction'])){
$delta = $ins->deltaCalculation($_POST['sendA'], $_POST['sendB'], $_POST['sendC']);
if($_POST['sendA'] == 0){
echo '<p><div class="error">* "a" factor can not be 0!</div></p>';
}else if($delta > 0){
echo '<p style="text-decoration: underline"><div class="success">This function have 2 solutions.</p>
<p>Δ = b<sup>2</sup> - 4ac = '.$ins->deltaCalculation($_POST['sendA'], $_POST['sendB'], $_POST['sendC']).'</p>
<p>√Δ = '.$ins->deltaRadical($_POST['sendA'], $_POST['sendB'], $_POST['sendC']).'</p>
<p>x<sub>1 = '.$ins->x1Cord($_POST['sendA'], $_POST['sendB'], $_POST['sendC']).'</sub></p>
<p>x<sub>2 = '.$ins->x2Cord($_POST['sendA'], $_POST['sendB'], $_POST['sendC']).'</sub></p>
<p>Top: W(p, q)</p>
<p>W('.$ins->topCord1($_POST['sendA'], $_POST['sendB'], $_POST['sendC']).', '.$ins->topCord2($_POST['sendA'], $_POST['sendB'], $_POST['sendC']).')</div></p>
';
}else if($delta == 0){
echo '
<p style="text-decoration: underline"><div class="success">This function have 1 solution.</p>
<p>Δ = b<sup>2</sup> - 4ac = '.$_POST['sendB'].'<sup>2</sup>-4*'.$_POST['sendA'].' * '.$_POST['sendC'].' = '.$ins->deltaCalculation($_POST['sendA'], $_POST['sendB'], $_POST['sendC']).'</p>
<p>√Δ = '.$ins->deltaRadical($_POST['sendA'], $_POST['sendB'], $_POST['sendC']).'</p>
<p>x<sub>0</sub> = '.$ins->topCord1($_POST['sendA'], $_POST['sendB']).'</p>
<p>W('.$ins->topCord1($_POST['sendA'], $_POST['sendB']).', 0)</div></p>
';
}else if($delta < 0){
echo '<p style="text-decoration: underline"><div class="error">This function haven`t solutions!</div></p>';
}
}
?>
</body>
</html>