Witam. Próbuję wykonać kalkulator, który będzie przeprowadzał proste działania na liczbach zespolonych, czyli dodawanie, mnożenie itd. Mam jednak problem, ponieważ nie bardzo rozumiem jak te liczby zespolone wprowadzić. Mam też problem z wynikiem, ponieważ nie pokazuje on wyniku, tylko połączenie poszczególnych liczb. Bardzo proszę o pomoc :(
Polecenie jakie mam do wykonania brzmi tak:
Mój kod, który stworzyłam:
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="utf-8">
<title>KALKULATOR LICZB ZESPOLONYCH</title>
</head>
<body><center>
<h1> Kalkulator liczb zespolonych</h1>
<form action="kalkulator.php" method="post">
Wpisz liczbę zespoloną
<input type="text" name="liczba1">
<input type="text" name="liczba2">
<br></br>
Wpisz liczbę zespoloną
<input type="text" name="liczba3">
<input type="text" name="liczba4">
<br></br>
Wybierz interpretację działania
<br></br>
Liczba rzeczywista i urojona
<input type="radio" name="Liczba rzeczywista i urojona" value="Liczba rzeczywista i urojona" action="kalkulator.php">
Moduł i argument
<input type="radio" name="Moduł i argument" value="Moduł i argument">
<br></br>
<label for="działanie">Wybierz rodzaj działania</label>
<select id="działanie" name="działania">
<option value="+">Dodawanie</option>
<option value="-">Odejmowanie</option>
<option value="*">Mnożenie</option>
<option value="/">Dzielenie</option>
</select>
<br></br>
<input type="submit" value="OBLICZ">
<br></br>
Wynik:
</form>
<?php
$operator = $_POST['działania'];
$suffix = 'i';
$m1 = $_POST['liczba1'];
$m2 = $_POST['liczba2'];
$liczba1 = $m1."+".$m2.$suffix;
$b1 = $_POST['liczba3'];
$b2 = $_POST['liczba4'];
$liczba2 = $b1."+".$b2.$suffix;
function operate($liczba1, $operator, $liczba2)
{
if(isset($_POST['OBLICZ']))
{
if(is_numeric($_POST['liczba1']) && is_numeric($_POST['liczba2']))
{
if($_POST['działanie'] == '+')
{
$total = $_POST['liczba1'] + $_POST['liczba2'];
}
if($_POST['działanie'] == '-')
{
$total = $_POST['liczba1'] - $_POST['liczba2'];
}
if($_POST['działanie'] == '*')
{
$total = $_POST['liczba1'] * $_POST['liczba2'];
}
if($_POST['działanie'] == 'd/')
{
$total = $_POST['liczba1'] / $_POST['liczba2'];
}
}
}
}
$operators = array('+','-','*','/');
function calculate($str){
global $operators;
foreach ($operators as $operator){
$operands = explode($operator,$str,3);
if (count($operands)>2) {
return operate(calculate($operands[0]), $operator, calculate($operands[1]));
}
}
return $str;
}
$wynik = $liczba1.$operator[0].$liczba2;
$oblicz = calculate($wynik);
echo "$wynik",PHP_EOL;
?>
</center>
</body>
</html>