Espess is a step by step exspression solver. Espress is under GNU GENERAL PUBLIC LICENSE. Espress was written by Simone Pernice from scratch.
Version 2.0.0, 21st November 1997 Palermo, Italy.
The compiled version of Espress needs a PC wid MS-DOS operative system.
If you like Espress send a donation/postcard to: Simone.
Send a mail also to ask questions, suggest improvements.


This program has been made in 23/09/1997 by Simone Pernice. I have to thank Stefania Giaconia. She helped me to find all bugs and she gave me a lot of good ideas for my program.
This program solves expression step by step. These expressions can contain fractions, powers and brackets. So the expressions to solve has the same difficult we can find at secondary school. It solves expressions using rules of powers, solves sum between fractions making least common multiple. Here I want give you a little explaining on the use of the program, you can find it also in the program in Italian.

The first screen is:

Benvenuti in ESPRESS, programma ideato e realizzato da SIMONE PERNICE.
> Premi INVIO per continuare e h seguita da INVIO per l'aiuto.

press enter to start the work:

Benvenuti in ESPRESS, programma ideato e realizzato da SIMONE PERNICE.

write the expressions in the prompt. Every times you press enter the program makes next step. At the end it prints:

La soluzione รจ stata trovata, vuoi calcolarne un'altra? ((S)/N)

press enter to continue and N with enter to solve next expression.

This is the expressions syntax.

The symbols exchange with the mathematical ones are write here:

POWER : " ^ " EX.:(2^3 = 8)
MULTIPLICATIONS : " * " EX.:(2*3 = 6)
DIVIDE : " / " EX.:(6/3 = 2)
ADD : " + " EX.:(6+3 = 9)
MINUS : " - " EX.:(6-3 = 3)

To speed the expressions writing you can use also:

FRACTIONS : " f " EX.:(2f3 = two thirds )
POWERS : " e " EX.:(2e3 = two at power of three )

(note that 'f' and 'e' aren't operations so writing (2+3)f7 or (2+3)e7 is an error)
The operations are solve in this order: "^", "*", "/", "+", "-"; where ^ is calculate before of *.
The divisions can't be simplified become fractions ( ex: 2/3->2f3 ). Note the difference between 2/3/4=1f6 and 2/3f4=8f3.
It is possible making calculation with negative numbers using brackets but also without (ex.: 2*-3=2*(-3) ).
The program corrects the more common syntax errors :
It adds brackets at the beginning or at the end if they are small,
it adds * between brackets and numbers,
every character different from a number or 'e' or 'f' is cleared.

Every type of brackets is exchanged in round brackets and the calculi are solve starting from the more inner to the more outer.

It is possible to change the expression with keys:
Ins : to insert a character where is the cursor
Canc : delete the character where is the cursor
Del : delete the character at the left of the cursor
End : carry the cursor at the end of the expression
Home : carry the cursor at the start of the expression

up : prints last expression
left and right : move cursor at right and left.

It is useful using the program only to verify the executed exercise.

At the end of this little help I wish to thank Stefania Giaconia, I dedicate her this program, she have wrote this help, but I has translated it in English so if there are same errors it's a my fault.


Executable Code
Source Code