Difference between revisions of "PLC Laboratory 1"

From Marek Běhálek Wiki
Jump to navigation Jump to search
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
== Interpreter of Arithmetic Expressions ==
 
== Interpreter of Arithmetic Expressions ==
  
Implement an interpreter of arithmetic expressions. These expressions contain +, -, *, / operators (with common priorities and left associativity) and parentheses.  
+
Implement an interpreter of arithmetic expressions. These expressions contain <code>+, -, *, /</code> operators (with common priorities and left associativity) and parentheses.  
  
 
To simplify the task, consider we have only binary operators. There are no unary operators in our language. Moreover, we can use only positive integers in our expressions.
 
To simplify the task, consider we have only binary operators. There are no unary operators in our language. Moreover, we can use only positive integers in our expressions.
Line 7: Line 7:
 
== Input specification ==
 
== Input specification ==
  
The first line of the input contains a number N. It defines the number of expressions your program should evaluate. These expressions are on next N lines. Each line contains exactly one expression.  
+
The first line of the input contains a number <code>N</code>. It defines the number of expressions your program should evaluate. These expressions are on next <code>N</code> lines. Each line contains exactly one expression.  
  
 
== Output specification ==
 
== Output specification ==
  
For each expression write one line containing the result – the computed value of the expression. If there is any error in the input, write text ERROR instead.
+
For each expression write one line containing the result – the computed value of the expression. If there is any error in the input, write text <code>ERROR</code> instead.
  
 
== Example ==  
 
== Example ==  
 
* Input
 
* Input
<syntaxhighlight lang="Shell" >
+
<syntaxhighlight lang="haskell" >
 
2
 
2
 
2 * (3+5)
 
2 * (3+5)
Line 22: Line 22:
  
 
* Output
 
* Output
<syntaxhighlight lang="Shell" >
+
<syntaxhighlight lang="haskell" >
 
16
 
16
 
ERROR
 
ERROR
 
</syntaxhighlight >
 
</syntaxhighlight >

Latest revision as of 08:24, 26 January 2022

Interpreter of Arithmetic Expressions

Implement an interpreter of arithmetic expressions. These expressions contain +, -, *, / operators (with common priorities and left associativity) and parentheses.

To simplify the task, consider we have only binary operators. There are no unary operators in our language. Moreover, we can use only positive integers in our expressions.

Input specification

The first line of the input contains a number N. It defines the number of expressions your program should evaluate. These expressions are on next N lines. Each line contains exactly one expression.

Output specification

For each expression write one line containing the result – the computed value of the expression. If there is any error in the input, write text ERROR instead.

Example

  • Input
2
2 * (3+5)
15 - 2**7
  • Output
16
ERROR