Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
10 / 10 / 2
Регистрация: 27.11.2011
Сообщений: 251
1

Калькулятор на php: как правильнее работать с арифметическими операциями

21.10.2012, 21:26. Показов 1844. Ответов 12
Метки нет (Все метки)

Скачал методичку ШАГа, прошел переменные, математические функции, массивы, строки, вызов функций.
Под конец дошел до домашнего задания
Разработать калькулятор который будет понимать +, -, /, *.
При вводе пользователем такого уравнения (18/6+3)*4 должен быть выведен результат : 24.
Решил сделать так
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
if (!$_POST["submitted"]){
echo "Введите уравнение и нажмите ВЫЧИСЛИТЬ для получения результата <br><br>";
echo "
    <form method=\"post\">
        <input type=\"text\" name=\"result\" size=\"30\">
        <tr><br><br></tr>
        <input type=\"submit\" name=\"submitted\" value=\"ВЫЧИСЛИТЬ\">
    </form>
";
}
else{
    Вот тут я думаю что писать дальше...
}
Далее планирую введенную строку преобразовать в массив для преобразования строки в отдельные элементы. Потом через цикл отделить числа от математических операторов. Потом написать что если a[i]="+", то $n=a[i-1]+a[i+1].
Можно конечно сделать проще если знать какая функция преобразует строку введенную в <input> в само выражение и при нажатии кнопки "ВЫЧИСЛИТЬ" выводится результат.
Я понимаю что вы хотите мне помочь но если вдруг у вас возникнет идея закинуть мне сразу весь решенный код то лучше этого не делаете, так как сам нечего знать не буду, а просто дайте подсказку.
Спасибо

Добавлено через 3 минуты
И еще, в одной теме я уже прошу дать мне подсказку, и попрошу в этой подсказать мне литературу где есть на подобие ШАГа система обучения "теория - домашнее задание", а не просто начитка лекций с примерами.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.10.2012, 21:26
Ответы с готовыми решениями:

Написать перечисление с арифметическими операциями
Напишите перечисление с арифметическими операциями: add, sub, mul, div. Напишите метод...

Класс матриц с арифметическими операциями С++
Я создаю класс матриц с операциями сложения, умножения, вычитания матриц, умножения на константу,...

Теорема о связи дифференциала с арифметическими операциями
пусть функции f:O(Xо)-&gt;R, g:O(Xо)-&gt;R дифференцируемы в точке X(о)принадлежит R^n Тогда в этой...

Класс вектор с арифметическими операциями, перегруженные операторы
Добрый день! Нужна помощь. Реализовываю класс вектор с арифметическими операторами с помощью...

12
KOPOJI
21.10.2012, 21:49
  #2

Не по теме:

Цитата Сообщение от dion_86 Посмотреть сообщение
PHP
1
if (!$_POST["submitted"]){
уже неверно.
PHP
1
if(!isset($_POST['submitted'])) {
скачайте лучше учебник..

0
10 / 10 / 2
Регистрация: 27.11.2011
Сообщений: 251
21.10.2012, 22:30  [ТС] 3
скачайте лучше учебник..
Ну а какой?
0
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
21.10.2012, 23:32 4
вот здесь есть нормальные уроки для начала
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16828 / 6706 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
21.10.2012, 23:33 5
http://www.php.net/manual/ru/ для начала - а потом здесь есть прикрепленный раздел Учебники по PHP (помеченные "важно")

Добавлено через 49 секунд

Не по теме:

чтож все эти видеокурсы смотрят, почему никто не хочет книжек читать.. :(

0
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
21.10.2012, 23:35 6
ну мое личное мнение что лучше сначала посмотреть попробовать попавторять а потом уже читать,
лучше один раз увидеть...
0
10 / 10 / 2
Регистрация: 27.11.2011
Сообщений: 251
22.10.2012, 00:32  [ТС] 7
На счет учебников спасибо большое, ну а с калькулятором что.
0
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
22.10.2012, 02:37 8
PHP
1
2
3
4
$result = strip_tags ($_POST['result']);
$input = '$output = ' . $result . ';';
eval ($input);
echo '$result = ' . $output;
Добавлено через 3 минуты
но нужно еще через регулярку пропустить что бы кроме цифр и знаков ничего не оставалось
0
270 / 226 / 11
Регистрация: 20.04.2012
Сообщений: 817
22.10.2012, 13:15 9
Цитата Сообщение от alpex Посмотреть сообщение
PHP
1
2
3
4
$result = strip_tags ($_POST['result']);
$input = '$output = ' . $result . ';';
eval ($input);
echo '$result = ' . $output;
Добавлено через 3 минуты
но нужно еще через регулярку пропустить что бы кроме цифр и знаков ничего не оставалось
позволить выполнять любой текст, который ввел пользователь - это дыра, причем самая крутая. и strip_tags тут нафиг не нужен.

Добавлено через 2 минуты
dion_86, задачи такого уровня - (18/6+3)*4 - требуют отнюдь не начальных навыков. это задача по разбору выражения - для этого нужно использовать конечные автоматы, например. странно, что в учебнике по php дают такие задачи для новичков.
0
201 / 198 / 4
Регистрация: 13.06.2012
Сообщений: 1,009
Записей в блоге: 3
22.10.2012, 13:19 10
Василий Макогон, ну ничего особенного в этом нет главное знать как это разбирать.

http://ru.wikipedia.org/wiki/%... 1%81%D1%8C
0
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
22.10.2012, 17:25 11
Цитата Сообщение от Василий Макогон Посмотреть сообщение
позволить выполнять любой текст, который ввел пользователь - это дыра, причем самая крутая. и strip_tags тут нафиг не нужен.
Ну если пропустить через регулярку и оставить только цифры и знака, то какая может быть дыра?
0
10 / 10 / 2
Регистрация: 27.11.2011
Сообщений: 251
22.10.2012, 20:57  [ТС] 12
Василий Макогон
позволить выполнять любой текст, который ввел пользователь - это дыра, причем самая крутая. и strip_tags тут нафиг не нужен.
Странно, я скачал методичку по ШАГ и тут даже не новички спорят. Если не найду ответ на эту задачу, то напишу проще калькулятор типа введите первую цифру, потом выберите действие и введите вторую цифру.
Ну если пропустить через регулярку и оставить только цифры и знака, то какая может быть дыра?
Я понятия не имею что такое регулярка и как она пишется на языке PHP.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16828 / 6706 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
22.10.2012, 21:00 13
dion_86, проще всего - использовать select для выбора опции (ну или кнопки, radio к примеру)
и выводить не одно поле для ввода выражения - а два. Единственный минус - невозможность множественных действий одновременно

Добавлено через 39 секунд
Цитата Сообщение от dion_86 Посмотреть сообщение
Я понятия не имею что такое регулярка и как она пишется на языке PHP.
Памятка по регулярным выражениям PCRE в PHP
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.10.2012, 21:00

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

Не пользуясь арифметическими операциями, кроме умножения, сложения, вычитания, вычислить 1+2+3х^2+4х^3
1)Дано Действительное число Х.Не пользуясь другими арифметическими операциями ,кроме умножения...

Не пользуясь никакими другими арифметическими операциями,кроме умножения получить а^21 за 6 операций
Дано действительное число а.Не пользуясь никакими другими арифметическими операциями,кроме...

Не пользуясь никакими другими арифметическими операциями, кроме умножения вычислить выражение
Даны действительные числа x, y. Не пользуясь никакими другими арифметическими операциями, кроме...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.