<?php
function calculate( $op , $numberText , $total ) {
switch ( $op ) {
case '' :
break ;
case '+' :
break ;
case '-' :
break ;
case '*' :
break ;
case '/' :
break ;
}
return $total ;
}
$operator = array ( '+' , '-' , '*' , '=' , '/' ) ;
$input = '-2.43+3.62/2.1*9.02=' ;
$numberText = '' ;
$result = 0 ;
$op = '' ;
for ( $i = 0 ; $i < $inputLength ; $i ++ ) {
if ( $char == '=' ) {
$result = calculate( $op , $numberText , $result ) ;
} else {
$result = calculate( $op , $numberText , $result ) ;
}
echo "op = [$op ], number = [$numberText ], result = [$result ], char = [$char ]\n " ;
$numberText = '' ;
$op = $char ;
$numberText .= $char ;
} else {
echo "Непонятный символ. Работа программы прекращена\n " ;
}
}
echo "{$input} {$result} " ;
PD9waHAKICAgIG1iX2ludGVybmFsX2VuY29kaW5nKCd1dGYtOCcpOwogICAgCiAgICBmdW5jdGlvbiBjYWxjdWxhdGUoJG9wLCAkbnVtYmVyVGV4dCwgJHRvdGFsKSB7CiAgICAgICAgc3dpdGNoICgkb3ApIHsKICAgICAgICAgICAgICAgIGNhc2UgJyc6CiAgICAgICAgICAgICAgICAgICAgJHRvdGFsID0gZmxvYXR2YWwoJG51bWJlclRleHQpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAnKyc6IAogICAgICAgICAgICAgICAgICAgICR0b3RhbCArPSBmbG9hdHZhbCgkbnVtYmVyVGV4dCk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICctJzoKICAgICAgICAgICAgICAgICAgICAkdG90YWwgLT0gZmxvYXR2YWwoJG51bWJlclRleHQpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAnKic6CiAgICAgICAgICAgICAgICAgICAgJHRvdGFsICo9IGZsb2F0dmFsKCRudW1iZXJUZXh0KTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgJy8nOgogICAgICAgICAgICAgICAgICAgICR0b3RhbCAvPSBmbG9hdHZhbCgkbnVtYmVyVGV4dCk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkdG90YWw7CiAgICB9CiAgICAKICAgICRvcGVyYXRvciA9IGFycmF5KCcrJywgJy0nLCAnKicsICc9JywgJy8nKTsKICAgIAogICAgJGlucHV0ID0gJy0yLjQzKzMuNjIvMi4xKjkuMDI9JzsKICAgICRpbnB1dExlbmd0aCA9IG1iX3N0cmxlbigkaW5wdXQpOwogICAgCiAgICAkbnVtYmVyVGV4dCA9ICcnOwogICAgJHJlc3VsdCA9IDA7CiAgICAkb3AgPSAnJzsKICAgIAogICAgZm9yICgkaSA9IDA7ICRpIDwgJGlucHV0TGVuZ3RoOyAkaSsrKSB7CiAgICAgICAgJGNoYXIgPSBtYl9zdWJzdHIoJGlucHV0LCAkaSwgMSk7CiAgICAgICAgCiAgICAgICAgaWYgKGluX2FycmF5KCRjaGFyLCAkb3BlcmF0b3IpKSB7CiAgICAgICAgICAgIGlmICgkY2hhciA9PSAnPScpIHsKICAgICAgICAgICAgICAgICRyZXN1bHQgPSBjYWxjdWxhdGUoJG9wLCAkbnVtYmVyVGV4dCwgJHJlc3VsdCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkcmVzdWx0ID0gY2FsY3VsYXRlKCRvcCwgJG51bWJlclRleHQsICRyZXN1bHQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVjaG8gIm9wID0gWyRvcF0sIG51bWJlciA9IFskbnVtYmVyVGV4dF0sIHJlc3VsdCA9IFskcmVzdWx0XSwgY2hhciA9IFskY2hhcl1cbiI7CiAgICAgICAgICAgICRudW1iZXJUZXh0ID0gJyc7CiAgICAgICAgICAgICRvcCA9ICRjaGFyOwogICAgICAgIH0gZWxzZWlmIChpc19udW1lcmljKCRjaGFyKSB8fCAkY2hhciA9PSAnLicpIHsKICAgICAgICAgICAgJG51bWJlclRleHQgLj0gJGNoYXI7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgZWNobyAi0J3QtdC/0L7QvdGP0YLQvdGL0Lkg0YHQuNC80LLQvtC7LiDQoNCw0LHQvtGC0LAg0L/RgNC+0LPRgNCw0LzQvNGLINC/0YDQtdC60YDQsNGJ0LXQvdCwXG4iOwogICAgICAgICAgICBleGl0KCk7CiAgICAgICAgfQogICAgfQogICAgCiAgICBlY2hvICJ7JGlucHV0fXskcmVzdWx0fSI7
stdout
op = [], number = [], result = [0], char = [-]
op = [-], number = [2.43], result = [-2.43], char = [+]
op = [+], number = [3.62], result = [1.19], char = [/]
op = [/], number = [2.1], result = [0.56666666666667], char = [*]
op = [*], number = [9.02], result = [5.1113333333333], char = [=]
-2.43+3.62/2.1*9.02=5.1113333333333