Viran, для возведения в степень есть стандартные функции PHP.
pow() - для возведения числа в степень
bcpow() - для возведения в степень чисел с произвольной точностью (пакет BC Math)
no_tactic, спасибо конечно за пример, но для меня этот пример сложнават...я там мало что понял...
20 Янв 2013, 16:01Okula, блин, не знал про нее..)
поправил код
добавлено спустя 1 минуту:
Viran, стучи в приват обьясню
Okula, сделал работает как часы) а как можно вычислить число из под корня? Например: для 16 это 4
20 Янв 2013, 16:14Код обнавил:
<?php
if(!empty($_POST['g'])) {
$p=$_POST['p'];
$v=$_POST['v'];
$z=$_POST['z'];
switch($z)
{
case 1: if(is_numeric($p) && is_numeric($v)){$res=$p+$v;}else echo'Вы ввели не числа!'; break;
case 2: if(is_numeric($p) && is_numeric($v)){$res=$p-$v;}else echo'Вы ввели не числа!'; break;
case 3: if(is_numeric($p) && is_numeric($v)){$res=$p*$v;}else echo'Вы ввели не числа!'; break;
case 4: if(is_numeric($p) && is_numeric($v)){if($v=='0'){echo'На ноль делить нельзя!';}else{$res=$p/$v;}}else echo'Вы ввели не числа!'; break;
case 5: if(is_numeric($p) && is_numeric($v)){$res=$p*$v/100;}else echo'Вы ввели не числа!'; break;
case 6: if(is_numeric($p) && is_numeric($v)){$res=bcpow($p,$v,88);}else echo'Вы ввели не числа!'; break;
case 7: if(is_numeric($p)){$res=sqrt($p);}else echo'Вы ввели не числа!'; break;
default: echo'Вы не заполнили поля! Зачем просто так на кнопку тыкать?';
}
}
echo'
<html>
<body>
<form action="calc.php" method="post">
<input type="text" name="p" value="'.$res.'" size="15">
<select name="z">
<option value="1">плюс</option>
<option value="2">минус</option>
<option value="3">умножить</option>
<option value="4">разделить</option>
<option value="5">процент</option>
<option value="6">степень</option>
<option value="7">кв. корен</option>
</select>
<input type="text" name="v" size="15">
<input type="submit" name="g" value="Рассчитать">
</form>';
echo'
</html>
</body>';
?>
Пример:
http://libnex.ru/test/calc.php
Viran, ты видишь сто раз повторяешь код?
не лучше это дело укоротить?
лучше написать функцию, и проверку переменных укоротить до:
$firstNum = is_numeric($_POST['firstNum']) ? $_POST['firstNum'] : null;
$secondNum = is_numeric($_POST['secondNum']) ? $_POST['secondNum'] : null;
//и сделать проверку сразу же:
if($firstNum == null || $secondNum == null)
echo 'Хоть заполните правильно ...';
else
//...
добавлено спустя 1 минуту:
конструкция "?:" - такая
$num = 1;
$var = ($num==1 ? 1 : 0);
если переменная $num равна 1, то присваиваем 1 переменной $var, иначе присваиваем 0 переменной $var;
добавлено спустя 6 минут:
Viran, и еще, названия переменных указывай нормальные ))
привыкай, стиль кода тоже нужен.
красивый, читабельный и рабочий код должен быть )))
IceJOKER, я перед собой не ставлю цель: написать самый лучщий калькулятор с самым лучщим кодом... Я думаю тупа копировать код в котором я нифига не понемаю как-то бессмысленно...почитаю профункции вот тогда и напишу чуть лучще...а на данный момент это мой предел как бы это печально не было...я php всего-то ~10 дней назад начал изучать.. НО большое спасибо тебе и другим пользовательям за критику, помощь и за советы которые вы даёте)
20 Янв 2013, 17:42