Description
Part 1. [50pts] Write a complete program implementing a simple calculator program. The
calculator should have the usual binary operators: addition (+), substraction (-), multiplication
(*), division (/), power (**) and modulo (%). The users of the program enter the operation they
want to carry out in prefix notation.For example, the following input
+ 10 2
adds 10 and 2 returning 12. If the operator has only one argument, it takes the result of the
previous operation as the first argument. If there is no previous operation (e.g., at the very
beginning), 0 will be used.
An example run of the program follows:
+ 10 2
12
** 8 2
64
/ 2
32
* 10
320
% 10
0
Another example run of the program follows:
+ 10
10
– 8
2
You are additionally asked to define and use a function called doit. This function accepts three
arguments: a function to represent the desired operator and two integer inputs. You are not
allowed to apply the operator directly. This will require you to define at least 7 functions in your
code and also menu function . Example use of doit function is given below:
int add(number1, number2);
int sub(number1, number2);
…
doit (add, first_number, second number);
doit (sub, first_number, second_number);
Part 2. [30pts] Write a program that takes three arrays. The size of the first array should be
10 and it has to include homework grades. The size of the second array should be 10 and it
has to include lab grades. The size of the third array should be 2 and it represents midterm
and final grades. The grades will be taken from the user and will be assigned to the each cell
of the arrays. Firstly you should calculate the average of the lab and homework grades,
seperately. Then you should calculate the weighted average all of grades. To calculate the
weighted average, you should take 10% of the average homework grade, 20%of the average
lab grade, 30% of the midterm grade and %40 of the final grade. You should use these
functions;
Page 1 of 3
int take_grades(int [] );
int take_exam_grades(int[]);
double calculate_homework(int[]);
double calculate_lab(int[]);
double calculate_all(int ,int[],int);
Part 3. [20pts] In this part , you should take height of the shape from user. For
example user enters the height number x, will press * character twice. Then
should add 4 times and 6 times until the number of * will be (x-1)2. A triangle must
be created from the combination of stars, triangle should be surrounded by the
shape of / , \characters. After the first triangle formed by expanding towards the
bottom, the second triangle should be narrowing towards the bottom. Shapes
must be look like that;
Output Example:
Input=3 Input=4 Input=5
Input=6 Input=7 Input=8
Page 2 of 3
General Rules:
1.Obey and don’t broke the function prototypes that are shown on each part, otherwise,
you will get zero from the related part.
2. The program must be developed on Linux based OS and must be compiled with gcc
compiler, any problem which rises due to using another OS or compiler won’t be
tolerated.
3. Note that if any part of your program is not working as expected, then you can get
zero from the related part, even it’s working in some way.
4. Upload your .zip file on to Moodle to deliver your homework. The zip file must
consist of one .c file that contains the code of your solutions. Name format can be
found on the top of this homework sheet.
5.You can ask any question about the homework by sending an email to
ferdaabbasoglu@gtu.edu.tr.
Page 3 of 3