Телефон, телефон о защита прав потребителей москва.

PHP - Уроки - Создание калькулятора на PHP

Итак, мы уже достаточно узнали, чтобы перейти к практике. И сегодня на уроке мы с вами создадим несложный калькулятор.

Хорошо. Давайте сначала продумаем, что будет делать наш калькулятор. В первую очередь, он, конечно, должен выполнять арифметические действия: сложение, вычитание, деление и умножение. Неплохо. Но где вы сейчас увидите калькулятор только с такими функциями? Поэтому снабдим его еще несколькими функциями, но перегружать его не будем. Договоримся, что наша "считалка" будет еще вычислять корень из числа, возводить его в указанную степень и, наконец, выводить процент от числа.

Решили? Теперь приступаем. Создаем файл, который называем calc.php. Использование функций позволит нам совместить в этом файле как форму для ввода чисел и других данных, так и вывод результата.

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Калькулятор</title>
</head>
<body>
<?             /* приступаем непосредственно php коду */
function show()
{
  global $action;
  ?>
  <FORM method=Get action="calc.php" target="_blank">
/* target="_blank" - результат обработки формы будет выводится в новом окне */
  Первое число
  <input type="text" name="first">
  Второе число (Степень, процент)
  <input type="text" name="second">
  <select size="1" name="action">
    <option value="sum">Сложить</option>
    <option value="min">Вычесть</option>
    <option value="mult">Умножить</option>
    <option value="dev">Разделить</option>
    <option value="stepen">Возвести в степень</option>
    <option value="procent">Процент от числа</option>
    <option value="koren">Корень</option>
  </select>
  <br><input type="submit" value="Выполнить">
  </form>
  <?php
}       //конец функции show()

Итак, мы определили функцию show, которая, как вы поняли, будет выводить форму. Заметьте, как мы разбили php скрипт, вставив блок HTML, но все же это все относится к одной функции show, это подобно тому, если бы не прерывали скрипт, а вместо этого написали бы echo "<FORM и так далее </html>";. Пока ни о каком дизайне формы нет и речи, это лишь "скелет" Калькулятора.

Продолжаем дальше писать файл calc.php.

function calc()
{
global $action, $result, $first, $second;
switch($action)
 {
   case "sum": $result = $first+$second; break;
   case "min": $result = $first-$second; break;
   case "mult": $result = $first*$second; break;
   case "dev":
   if (!$second)             /* если второе число равно "0" или вообще не введено */
   {
     exit("Извините, программа не может выполнить действие: на ноль делить нельзя");
   }
   $result=$first/$second; break;
   case "procent": $result = $first*($second/100); break;
   case "stepen": $result = pow($first, $second); break;
   case "koren": $result = pow($first,0.5); break;
 }
?>                             //заканчиваем оператор switch
 Результат Вашего действия равен <b>
 <? echo $result; ?>           //вывод результата
 </b>
 </font>
 <?
}                    //конец функций calc()

Написали функцию calc, занимающуюся непосредственно вычислением результата и вывода его на экран пользователя.

Наконец, заканчиваем файл:

if ($action) calc(); else show();
?>

Если в переменной $action есть какое-либо значение (а оно может появиться только в случае нажатия кнопки "Выполнить"), то выполняется функция вычисления calc(), если же $action пуста, то выведется форма Калькулятора.

Конечно, можно было дополнить наш калькулятор еще тригонометрическими функциями (php функции sin(), cos(), tan(), котангенс - 1/tan() ), возможно было бы пристроить всяческие Java-навороты. Но это бы не меняло бы сути дела, а лишь сделало пример более громоздким. Так что если желаете использовать всяческие примочки на свой калькулятор - пожалуйста.

Также этот пример можно было сделать в двух отдельных файлах: допустим, show_calc.htm и calc.php, где первый файл содержал бы функцию show, а второй, соответственно, calc. Но мне хотелось показать использование, что называется, user-defined functions, то есть функций, определенных пользователем.

Copyright © 2006-09.