Xwab
Форумыnavigate_nextСкрипты

Топ: Оценка кода скриптов
Сообщения
Okula

Viran, для возведения в степень есть стандартные функции PHP.
pow() - для возведения числа в степень
bcpow() - для возведения в степень чисел с произвольной точностью (пакет BC Math)

20 Янв 2013, 15:57
Viran

no_tactic, спасибо конечно за пример, но для меня этот пример сложнават...я там мало что понял...

20 Янв 2013, 16:01
no_tactic

Okula, блин, не знал про нее..)
поправил код
добавлено спустя 1 минуту:
Viran, стучи в приват обьясню

20 Янв 2013, 16:02
Okula

no_tactic, прежде чем писать свои велосипеды загляни в интернет

20 Янв 2013, 16:07
no_tactic

Okula, да велосипед короткий, не парит)

20 Янв 2013, 16:09
Viran

Okula, сделал работает как часы) а как можно вычислить число из под корня? Например: для 16 это 4

20 Янв 2013, 16:14
IceJOKER

Viran, http://php.net/manual/ru/function.sqrt.php

20 Янв 2013, 16:15
Viran

Код обнавил:

<?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

20 Янв 2013, 17:11
IceJOKER

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, и еще, названия переменных указывай нормальные ))
привыкай, стиль кода тоже нужен.

красивый, читабельный и рабочий код должен быть )))

20 Янв 2013, 17:41
Viran

IceJOKER, я перед собой не ставлю цель: написать самый лучщий калькулятор с самым лучщим кодом... Я думаю тупа копировать код в котором я нифига не понемаю как-то бессмысленно...почитаю профункции вот тогда и напишу чуть лучще...а на данный момент это мой предел как бы это печально не было...я php всего-то ~10 дней назад начал изучать.. НО большое спасибо тебе и другим пользовательям за критику, помощь и за советы которые вы даёте)

20 Янв 2013, 17:42
Ответить на тему