CSI Lab2
CSI Lab2
Duration: 90’
Lab 2: Algorithm
Objective:
Materials:
Based on exercises of chapter 8 in the textbook “Foundations Of Computer Science, 4nd
Edition, Behrouz Forouzan, 2017.”
Student's task:
- Review the whole chapter 8 content in the textbook.
- Write down solutions to exercises (step by step)
- Finish exercises and submit the results to the lecturer in class.
Scoring scale: 10
Students will represent the algorithm of the problem in two ways: pseudo-code and UML
Using pseudo-code:
Using UML
Result=num1+num2
Pseudocode:
Algorithm CalculateResult
Input:
num1: integer
num2: integer
operator: character (+, -, *, /)
Processing:
IF operator is '+' THEN
result = num1 + num2
ELSE IF operator is '-' THEN
result = num1 - num2
ELSE IF operator is '*' THEN
result = num1 * num2
ELSE IF operator is '/' THEN
IF num2 is NOT 0 THEN
result = num1 / num2
ELSE
Print "Error: Division by zero is not allowed."
Exit Algorithm (or handle error appropriately)
END IF
ELSE
Print "Error: Invalid operator."
Exit Algorithm (or handle error appropriately)
END IF
Output:
Print result
UML:
Exercise 2 (2 marks): Write an algorithm that will find the smallest integer among five
integers: 12, 34, 9, 24, 39
Pseudocode:
Algorithm FindSmallestInteger
Input:
numbers: list of integers [12, 34, 9, 24, 39]
Processing:
smallest = numbers[0] // Initialize smallest with the first number
Output:
Print smallest
UML:
Exercise 3 (2 marks): Write an algorithm that will print out the sum of integers inputted
from the keyboard until the value 0 is inputted.
Pseudocode:
Algorithm SumUntilZero
Input: (Integers from keyboard)
Processing:
sum = 0
num = 1 // Initialize num to a non-zero value to enter the loop
Output:
Print sum
Exercise 4 (4 marks):
Suppose that:
In Viet Nam, each people has to pay for his/her yearly personal income tax as the
following description:
Rules:
Tax-free income:
Personal pending amount (tiền nuôi bản thân) pa= 9,000,000 d /month
Alimony (tiền cấp dưỡng) for each his/her dependent pd= 3,600,000
d/month/dependent
With n dependents, Yearly tax-free income: tf = 12*(pa + n*pd)
Based on taxable income, the employee has to pay his/her income tax with levels
pre-defined in the following table:
Write an algorithm that will calculate and print out : income, ti (Taxable Income) and
income tax.
Pseudocode:
Algorithm CalculateIncomeTax
Constants:
PA_MONTHLY = 9000000 // Personal pending amount per month
PD_MONTHLY = 3600000 // Dependent pending amount per month
MONTHS_IN_YEAR = 12
Input:
yearly_income: integer (Total yearly income)
num_dependents: integer (Number of dependents)
Processing:
// Calculate yearly tax-free income (tf)
tf = MONTHS_IN_YEAR * (PA_MONTHLY + (num_dependents * PD_MONTHLY))
// Initialize income_tax
income_tax = 0
Output:
Print "Total Yearly Income: " + yearly_income
Print "Taxable Income (ti): " + ti
Print "Calculated Income Tax: " + income_tax