Showing posts with label calculator. Show all posts
Showing posts with label calculator. Show all posts

Wednesday, September 9, 2015

Reverse Polish notation Calculator using stack (for better understanding oop concept)

<?php

class Stack {
    public $array = array();
    public $index = -1;

    public function isEmpty()
    {
        if($this->index == -1){
            return true;
        }else{
            return false;
        }
    }
    public function push($element)
    {
        $this->index++;
        $this->array[$this->index] = $element;
    }

    public function pop()
    {
        //return $this->array[$this->index--];
        if($this->isEmpty()){
           echo 'Nothing to pop';
        }else{
            $element = $this->array[$this->index];
            unset($this->array[$this->index]);
            $this->index--;
            return $element;

        }

    }
    public function calculator($value1, $value2, $operator){
        if($operator == "+"){
            $result = $value1 + $value2;
        } elseif($operator == "-"){
            $result = $value1 - $value2;
        } elseif($operator == "*"){
            $result = $value1 * $value2;
        } elseif($operator == "/"){
            $result = $value1 / $value2;
        }

        return $result;
    }

}
$stack = new Stack();
if(isset($_POST['numbers'])){
    $numbers = trim($_POST['numbers']);
    $numbers = explode(' ', $numbers);
    foreach ($numbers as $number) {
       if(is_numeric($number)) {
           $number = intval($number);
           $stack->push($number);
       }else{
           $value2 = $stack->pop();
           $value1 = $stack->pop();
           $result = $stack->calculator($value1, $value2, $number);
           $stack->push($result);
       }
    }
$result = $stack->pop();
    echo $result;
}
?>
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<form method="post" action="">
    <input type="text" name="numbers" id="">
    <input type="submit" name="submit" id="">
</form>
</body>
</html>

Tuesday, August 25, 2015

Creating a Basic Calculator using PHP

<?php
$errors = array();
if ( $_SERVER['REQUEST_METHOD'] == 'POST'){

    if(!isset($_POST['value1']) || trim($_POST['value1']) == ""){
        $errors[] = "You must enter first Number";
    } elseif(!is_numeric($_POST['value1'])) {
        $errors[] = "You must put numeric value in first number field";
    }else{
        $value1 =$_POST['value1'];
    }


    if(!isset($_POST['value2']) || trim($_POST['value1']) == ""){
        $errors[] = "You must enter Second Number";
    } elseif(!is_numeric($_POST['value2'])) {
        $errors[] = "You must put numeric value in 2nd number field";
    }else{
        $value2 =$_POST['value2'];
    }

    if(empty($_POST['value3'])){
        $errors[] = "You must enter a operator";
    }elseif( $_POST['value2'] == 0 && $_POST['value3'] == "/") {
        $errors[] = "Second Number can't be zero in division";
    } else {
        $operator =$_POST['value3'];
    }

    if(empty($errors)){
        if($operator == "+"){
            $result = $value1 + $value2;
        } elseif($operator == "-"){
            $result = $value1 - $value2;
        } elseif($operator == "*"){
            $result = $value1 * $value2;
        } elseif($operator == "/"){
            $result = $value1 / $value2;
        }else{
            $errors[] = "Currently our supporting operator is +-*/";
        }
    }
}
?>
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        body{
            font-family: arial, sans-serif;
        }
        label {
            display: block;
        }
    </style>
</head>
<body>
<form action="" method="post">
    <label>First Number:</label>  <input type="text" name="value1" placeholder="Number one"><br><br>
    <label for="">Second Number:</label> <input type="text" name="value2" placeholder="Number Two"><br><br>
    <label for="">Operator(currently supported operator is +-*/):</label><input type="text" name="value3" placeholder="operator"><br><br>
    <input type="submit" name="submit" id="submit">
</form>
<div id="result">
    <?php
        if(isset($result)){
            echo $result;
        }
        if(isset($errors)){
            foreach($errors as $error){
                echo $error . "<br>";
            }

        }
    ?>
</div>
</body>
</html>

Friday, August 21, 2015

calculator using javascript

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>calculator</title>
</head>
<body>
Number 1: <input type="text" name="" id="number_one"> <br><br>
Number 2: <input type="text" name="" id="number_two"> <br><br>
operator: <input type="text" name="" id="operator"> <br><br>
<button onclick="calculator()">Click for result</button>
<p>Result:</p>
<div id="result"></div>
<script>
function calculator(){
var number_one = Number(document.getElementById('number_one').value);
var number_two = Number(document.getElementById('number_two').value);
var operator = document.getElementById('operator').value;
var result_div = document.getElementById('result');
var result;
if(isNaN(number_one) || isNaN(number_two)){
result = "You have to enter a valid number";
} else {
if(operator == '+'){
result = number_one + number_two;
} else if(operator == '-'){
result = number_one - number_two;
} else if ( operator == '*' ){
result = number_one * number_two;
} else if (operator == "/"){
if(number_two == 0){
result = "In division second number can't be zero";
} else {
result = number_one / number_two;
}
} else {
result = "Currently our calculator only support + - * /";
}
}
result_div.innerHTML = result;
}
</script>
</body>
</html>

css snippet for blogger code highlighting

code, .code {     display: block;     background: beige;     padding: 10px;     margin: 8px 15px; }