Ответов: 14 Просмотров: 1106
|
Рассчитать скорость движения машины и вывести её в удобочитаемом виде. Осуществить возможность вывода в км/ч, м/c.
Исходные данные: Пройденный путь - S; Время движения - t.
Представить решение задачи с помощью одной функции.
Решение задачи:
1) сама функция будет такой:
PHP:
скопировать код в буфер обмена
function speed($s, $t, $val){ $speed[1] = $s / $t . " км/ч"; $speed[2] = $speed[1] / 3.6 . " м/с"; return $speed[$val]; }
Функция имеет 3 аргумента - пройденный путь, время движения и 3-ий аргумент отвечает за пользовательский вариант вывода расчета (км/ч или м/c). В массив $speed попадает 2 варианта расчета, а возвращает ф-ция 1 вариант в зависимости от того, что выбрал пользователь.
2) осуществляем минимальную проверку полученных данных:
PHP:
скопировать код в буфер обмена
if(!empty($_POST['submit'])){ if($_POST['S'] <= 0 || $_POST['t'] <= 0){ $_SESSION['error'] = '<strong><em>Число должно быть больше нуля</em></strong>'; header("Location: index.php"); }else{ $_SESSION['res'] = "<strong><em>" .speed($_POST['S'], $_POST['t'], $_POST['val']). "</em></strong>"; header("Location: index.php"); } }
Если попало что-то кроме числа с плюсом (1, 2, 50.5 и т.д.) или ноль, то нам это не подходит и в сессионную переменную error мы заносим соответствующее сообщение. Если число нас устраивает, то в $_SESSION['res'] заносим результат работы ф-ции.
3) выводим результат и уничтожаем сессию:
4) ну и код самой формы:
CODE ( html):
скопировать код в буфер обмена
<form method="post" action=""> <table> <tr> <td>Пройденный путь (км):</td> <td><input type="text" name="S" /></td> </tr> <tr> <td>Время движения (ч):</td> <td><input type="text" name="t" /></td> </tr> <tr> <td><input type="radio" name="val" value="1" checked="checked" /> км/ч</td> <td><input type="radio" name="val" value="2" /> м/с</td> </tr> <tr> <td colspan="2"><input type="submit" name="submit" value="Рассчитать" /></td> </tr> </table> </form>
Вот полный код скрипта:
CODE ( htmlphp):
скопировать код в буфер обмена
<?php function speed($s, $t, $val){ $speed[1] = $s / $t . " км/ч"; $speed[2] = $speed[1] / 3.6 . " м/с"; return $speed[$val]; } if(!empty($_POST['submit'])){ if($_POST['S'] <= 0 || $_POST['t'] <= 0){ $_SESSION['error'] = '<strong><em>Число должно быть больше нуля</em></strong>'; header("Location: index.php"); }else{ $_SESSION['res'] = "<strong><em>" .speed($_POST['S'], $_POST['t'], $_POST['val']). "</em></strong>"; header("Location: index.php"); } } ?> <h3><ins>Рассчет скорости</ins></h3> <?php echo $_SESSION['error']; echo $_SESSION['res']; ?> <form method="post" action=""> <table> <tr> <td>Пройденный путь (км):</td> <td><input type="text" name="S" /></td> </tr> <tr> <td>Время движения (ч):</td> <td><input type="text" name="t" /></td> </tr> <tr> <td><input type="radio" name="val" value="1" checked="checked" /> км/ч</td> <td><input type="radio" name="val" value="2" /> м/с</td> </tr> <tr> <td colspan="2"><input type="submit" name="submit" value="Рассчитать" /></td> </tr> </table> </form>
вот нашел похожую но я не знаю как сделать что бона читалась в удобном ввиде в веб страничке
(Добавление)
Саныч пишет:metaller92, ну и на кой здесь функция...
Уже предчувствую следующий вопрос автора: "что с этим делать и куда вставлять"
дак куда что вставлять?))))))))) |