ENEE140 solution


Project 2: Integer Arithmetic Expression Evaluator

Project Objective:

1. get familiar with the process of completing a programming project.

2. learn how to use and manipulate arrays.

3. understand precedence and associative rules.

4. use program selection: if, if-else, switch statements.

5. use basic loops (while, do-while, for) for repetition.

Project Description:

In this project, you will design and implement a program to evaluate an arithmetic

expression. The arithmetic expression will contain only integers, both positive and negative, and

the following six basic binary operators +, -, %, /, *, and ^ as well as parentheses ().

Your program should read in the expression from an input file. The input file has a

specific format, which is described below. After reading the expression, you first will need to

evaluate all the negative operands in the expression; next you will evaluate the expression inside

the parentheses; followed by the power operator ^, then *, /, and % operators, and f

COMP2355 lab11 solution


In this lab you’ll implement a program which uses multiple threads to divide up a simple problem

into independent sub-tasks. Source code for this lab is supplied in Lab11Source.zip .

Write the function ThreadedSum which is declared as:

double ThreadedSum(int numThreads, size_t arraySize);

You’ll find an empty function definition in main.cpp in the supplied source code. This function

should :

1. Allocate an array on the heap of type double with arraySize elements . This may get too large

for the stack, so make sure you allocate it on the heap (free store).

2. Run numThreads threads, each of which initializes an approximately equal portion of the

array. For example, if numThreads is 8, each thread should initialize 1⁄8 of the array. Make

sure you handle round-off correctly if arraySize is not an even multiple of numThreads. Each

element of the array should be initialized to the square root of the index of the element.

3. Wait for all of the initialization threads to complete,