Наша первая считалка. Счетчик на 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, то есть функций, определенных пользователем.




Рекомендуем почитать

 

Добавить комментарий


Ваше имя:


Комментарий:


Введите: Картинка