Either submit the
source code files on Ecampus under the "Submit Homework" menu option, or demo
the programs to the instructor during lab.
Using the flat assembler (fasm), write a program that
reads in a string of various parentheses, brackets, and braces. Output
whether or not the parentheses, brackets, and braces are balanced.
The algorithm below can be used to check if parenthesis, brackets, and braces
are balanced in an equation.
Balanced input strings: (a)
(([{}]))
(b)
(()[]{[]})
(c)
{([]([{({{}})([()])[][]}])[](()){()})}
Unbalanced input strings: (a)
)(
(b)
[(])
(c)
(([]{})
Loop - Step through each character (token) of the input string
{
if token is an opening (, [, or {, then push it to the stack.
else if token is a closing ), ], or }, AND the stack is empty, then it's
not balanced (false)
else if token is a ), then pop from the stack. If it isn't a (, then
it's not balanced (false)
else if token is a ], then pop from the stack. If it isn't a [, then
it's not balanced (false)
else if token is a }, then pop from the stack. If it isn't a {, then
it's not balanced (false)
}
if the stack is empty, equation is balanced (true)
else equation is not balanced (false)
Example output
This program checks if
the parentheses, brackets, and braces are balanced.
Please enter a string:
(()[]{[]})
This string is balanced.
This program
checks if the parentheses, brackets, and braces are balanced.
Please enter a string:
{[])[()]}
This string is not balanced.