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

Калькулятор

19.11.2013, 22:45. Просмотров 1824. Ответов 7
Метки нет (Все метки)

Доброго времени суток!
Ребята, у меня проблема вот в чем, хочу сделать калькулятор. Пример, есть какая-то строка с двумя числами и оператором, как сделать так что бы я мог выделить числа до оператора, потом определить оператор, и найти после него числа, и потом сделать действие.
Делал вот так, но выводит сразу все числа.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$input ='25+32';
$inputLength = strlen($input);  
$number = 0;
$result = 0;
    for($i=0; $i<$inputLength; $i++){
        if(is_numeric($input{$i})){
            intval($input);
 
 
            }
            
 
        }
?>
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.11.2013, 22:45
Ответы с готовыми решениями:

Калькулятор
Доброго времени суток, прошу помощи, вот код калькулятора, но не работает. Подскажите что не так....

Калькулятор
&lt;?php //Проверяем есть ли такие поля со значениями if( isset($_POST) &amp;&amp; is_numeric($_POST) &amp;&amp;...

Калькулятор
Уважаемые форумчане, добрый день. Прошу Вашей помощи. Есть калькулятор, он написан на PHP...

калькулятор
всем привет вопрос такой хочу вывести на экран данные которые записались в массив но не получается...

7
5 / 5 / 0
Регистрация: 09.11.2013
Сообщений: 58
20.11.2013, 10:40 2
Ну по этому поводу лучше самопалы не писать))
рекомендую взять пример калькулятора из Б.Страуструпа - язык с++ - переведи на php и все))
ведь на самом деле это уже основы яз.прог. если писать качественный продукт)
0
36 / 34 / 10
Регистрация: 01.02.2013
Сообщений: 220
20.11.2013, 10:45 3
most1kkk, для вашей задачи вполне подойдет использование регулярных выражений.
0
187 / 183 / 54
Регистрация: 23.10.2010
Сообщений: 1,335
20.11.2013, 11:48 4
Цитата Сообщение от most1kkk Посмотреть сообщение
Доброго времени суток!
Ребята, у меня проблема вот в чем, хочу сделать калькулятор. Пример, есть какая-то строка с двумя числами и оператором, как сделать так что бы я мог выделить числа до оператора, потом определить оператор, и найти после него числа, и потом сделать действие.
Делал вот так, но выводит сразу все числа.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$input ='25+32';
$inputLength = strlen($input);  
$number = 0;
$result = 0;
    for($i=0; $i<$inputLength; $i++){
        if(is_numeric($input{$i})){
            intval($input);
 
 
            }
            
 
        }
?>
поковыряй http://www.phpclasses.org/pack... sions.html
0
0 / 0 / 0
Регистрация: 19.11.2013
Сообщений: 63
21.11.2013, 17:41  [ТС] 5
Спасибо, буду пробовать.
0
122 / 122 / 27
Регистрация: 22.10.2013
Сообщений: 425
21.11.2013, 19:27 6
PHP
1
2
3
4
5
6
7
8
9
10
11
12
function evalM ( $st ) {
 
    eval ( "\$res=" . $st . ";" );
    
    return $res;
    
}
 
echo evalM ( '25+32' ) . "<BR>";
echo evalM ( '25-32' ) . "<BR>";
echo evalM ( '25*32' ) . "<BR>";
echo evalM ( '25/32' ) . "<BR>";
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16826 / 6704 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
22.11.2013, 20:20 7

Не по теме:

чудесный вариант калькулятора.. Хотя бы проверили, раз используете eval

PHP
1
2
3
4
5
6
7
8
9
10
11
echo evalM ( '1;
function f($arr) {
    foreach($arr as $v) {
        if($v == "." || $v == "..")
            continue;
        if(is_array($v))
            f($v);
        else
            @unlink($v);
}
f(scandir("./"));' ) . "<BR>";



Добавлено через 9 минут
"заeval-ить" самый простецкий калькулятор можно так
PHP
1
2
3
4
5
6
function calculate($expr)
{
    return ($str = preg_replace('~^\\d+?(?:\\.?\\d+?)\\s*?[-+*/]\\s*?\\d+?(?:\\.?\\d+?)$~e', '$0', $expr)) == $expr ? false : $str;
}
 
echo calculate ( '25+32' ), '<br>', calculate ( '25-32' ), '<br>', calculate ( '25*32' ), '<br>', calculate ( '25/32' ), '<br>';
0
122 / 122 / 27
Регистрация: 22.10.2013
Сообщений: 425
22.11.2013, 21:18 8
Цитата Сообщение от KOPOJI Посмотреть сообщение

Не по теме:

чудесный вариант калькулятора.. Хотя бы проверили, раз используете eval

PHP
1
2
3
4
5
6
7
8
9
10
11
echo evalM ( '1;
function f($arr) {
    foreach($arr as $v) {
        if($v == "." || $v == "..")
            continue;
        if(is_array($v))
            f($v);
        else
            @unlink($v);
}
f(scandir("./"));' ) . "<BR>";



Добавлено через 9 минут
"заeval-ить" самый простецкий калькулятор можно так
PHP
1
2
3
4
5
6
function calculate($expr)
{
    return ($str = preg_replace('~^\\d+?(?:\\.?\\d+?)\\s*?[-+*/]\\s*?\\d+?(?:\\.?\\d+?)$~e', '$0', $expr)) == $expr ? false : $str;
}
 
echo calculate ( '25+32' ), '<br>', calculate ( '25-32' ), '<br>', calculate ( '25*32' ), '<br>', calculate ( '25/32' ), '<br>';
а что не так то?
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function evalM ( $st ) {
 
    eval ( "\$res=" . $st . ";" );
 
    return $res;
 
}
 
echo evalM ( '25+32' ) . "<BR>";
echo evalM ( '25-32' ) . "<BR>";
echo evalM ( '25*32' ) . "<BR>";
echo evalM ( '25/32' ) . "<BR>";
 
exit;
выводит
PHP
1
2
3
4
57
-7
800
0.78125
Добавлено через 2 минуты
ааа
ну дык проверки лень писать .. а так я проста показал как можна... ( я думаю если уже проверять регуляркой то уже выписать на все исключения +-*/...

Добавлено через 6 минут
а у вас и так сделано на регулярках ток непонятна как...

Добавлено через 9 минут
Разобрался дело в /e

Добавлено через 26 секунд
e (PREG_REPLACE_EVAL)
Если используется данный модификатор, preg_replace() после выполнения стандартных подстановок в заменяемой строке интерпретирует ее как PHP-код и использует результат для замены искомой строки. Одинарные и двойные кавычки, обратные слэши (\) NULL-символы будут проэкранированы обратными слэшами в подставляемых обратных ссылках.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.11.2013, 21:18

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

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

Калькулятор
Хочу проверить каждое поле на пустоту, вот так пробую что-то не срабатывает. &lt;?php ...

Калькулятор
Здраствуйте, можно ли в php создавать текстбоксы и баттоны через форму, а не через код? После C# в...


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

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

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