Beruflich Dokumente
Kultur Dokumente
OBJECTIVES Upon completion of this chapter, you should be able to: Define the term pseudocode. Know advantages and disadvantages of pseudocode. Use the rules and constraints associated with pseudocode. Solve word problems using pseudocode.
3.1 Introduction
Pseudocode is statements written in abbreviated form to show the steps required to solve a specific problem. Pseudocode means "false code". That means that it is not the programming language "code" or statements that are used to direct the action of the computer. After writing the Pseudocode it is very easy to translate these statements into computer programming language instructions that can direct the action of the computer.
There are no special symbols with special meaning (such as flowcharting) that have to be memorized. Its rules and constraints are few, flexible, and easy to understand.
3.2 Components
The best way to illustrate the pseudocode components is to provide a sample. Figure 3.1 shows a part of the flowchart of problem 8 in chapter 2, where HW means Hours worked, OP means Overtime Pay, PR means Pay Rate, , and GP means Gross Pay. The corresponding pseudocode is shown in Figure 3.2.
1. If hours worked is greater than 150 Then Calculate Overtime Pay = (Hours Worked 150) * 1.5 * (Pay Rate) Calculate Gross Pay = 150 * (Pay Rate) + Overtime Pay Else Calculate Gross Pay = (Pay Rate) * (Hours Worked) 2. Calculate TAX = 0.20 * (Gross Pay)
Which means that if hours worked > 150, you have to execute the following two statements :
Calculate Overtime Pay = (Hours Worked 150) * 1.5 * ( (Pay Rate) Calculate Gross Pay = 150 * (Pay Rate) + Overtime Pay
Where if the hours worked 150, you have to execute the following statement :
Calculate Gross Pay = (Pay Rate) * (Hours Worked)
This shows that the only components used to write a pseudocode are 1. Words 2. Clauses 3. Sentences These components and eas easiness of use make pseudocode so attractive.
IF condition being tested is TRUE Then Do all statements listed under Then. (executed when the tested condition is TRUE). Else Do all statements listed under Else. (executed when the tested condition is FALSE). Figure 3.3 IF-THEN-ELSE control structure.
The tested condition can be greater than(>), less than,(<) equal to(=), greater or equal to(>=), less than or equal to(<=), or not equal to . The result of testing the condition must be TRUE or FALSE. For example:
Note that in this case Statement 1, followed by Statement 3 will be executed. Note that if the tested condition was just an expression the result of which was a number, then only the value of zero will represent FALSE, where all other values will represent TRUE. For example
In this case Statement 1 followed by Statement3 will be executed because X Y is positive, this means that the
corresponding logic value is considered True.
3.4.2. Iterations
This statement implies that a certain activity or action will be performed repetitively a certain number of times or until a certain condition is met. Figure 3.4 shows a part of the flowchart of problem 6 in chapter 2, where Sum is the sum of series, T is the value of the current term, and N is the current number of terms. The corresponding pseudocode is shown in figure 3.5, where statement
Perform steps 3 through 4 until T is less than 0.01 Shows the iteration control structure under pseudocode for the given problem. Here statements 3 and 4 are repeated until T is less than 0.01.
1. Initialize the Sum: Sum = 0 2. Initialize the number of terms N, then find the corresponding term T: N=1 T = 1/N 3. Add the new term to Sum: Sum = Sum + T 4. Increment the number of terms N, then find the corresponding term T: 5. IF T<0.01 Then Go to step 6 Else Perform steps 3 through 4 until T is less than 0.01 END IF 6. Stop processing
Some of advantages of pseudocode are : It is simple because it uses English-like statements. No special symbols are used. No specific syntax is used. It is very easy to translate its statements to that for high level languages on a one-for-one basis. The main disadvantages of pseudocode is that : It can be quite lengthy for complex problems.
Example 3-1 Write a pseudocode to represent the process of reading two numbers,
Solution:
1. Input (Read) the first number number1. 2. Input (Read) the second number number2. 3. IF the value of number1 = that of number2 Then Print Division is impossible because number2 is zero Go to step 4 ELSE result = number1 / number2 Print number1, number2, and result END IF 4. Stop processing.
Note that in the given pseudocode, after first printing statement , we jump to label 4 to terminate the program.
Example 3-2 Write a pseudocode to find the sum of first 100 natural numbers. This means that you want to find Sum where Sum is given by Sum = 1 + 2 + 3+...........................................+ 99 + 100 Note that: the corresponding flowchart is given in example 2..
Solution:
1. Initialize the Sum: Sum = 0 2. Initialize the term number N, which is the term itself: N=0 3. Increment the term number: N=N+1 4. Add the new term to Sum: Sum = Sum + N 5. IF N= 100 Then Go to step 6 Else Perform steps 3 through 4 until N is equal to 100 END IF 6. Print an output line showing the sum of the first 100 terms of the series 7. Stop processing
is not a mathematical expression, but it is an assignment statement. The s correct grammatical form ( syntax) of the assignment statement is given by
VariableName = expression
which means that at first we calculate the value of the expression then store it in the variable which name is written to the left of the equal sign. Returning back to statement
N=N+1
this statement means add one to the contents of variable N, then store the result into variable N, which means increment the value stored in variable N. By the same way we can say that
Sum = Sum + N
means that add the current value of Sum to N, then store the result into Sum.
Example 3-3 Write a pseudocode to find the sum of first 25 odd natural numbers numbers. This mean that we want to find Sum, where Sum is given by Sum = 1 + 3 + 5 here we add 25 odd natural numbers numbers. Note that the corresponding flowchart is given in example 2..
Solution:
1. Initialize the Sum: Sum = 0 2. Initialize the number of terms N, and the first term T: N=0 T=1 3. Add the new term to Sum: Sum = Sum + T 4. Increment the number of terms by 1, and the term value by 2: N=N+1 T=T+2 5. IF N = 25 Then Go to step 6 Else Perform steps 3 through 4 until T is less than 0.01 END IF 6. Print an output line showing the sum of the first 25 odd terms of the series series. 7. Stop processing processing.
Example 3-4 Write a pseudocode to find the sum of all terms of the following series greater than or equal to 0.01.
1 2
1 3
1 4
1 5
Solution:
1. Initialize the Sum: Sum = 0 2. Initialize the number of terms N, then find the corresponding term T: N=1 T = 1/N 3. Add the new term to Sum: Sum = Sum + T 4. Increment the number of terms N, then find the corresponding term T: N=N+1 T = 1/N 5. IF T<0.01 Then Go to step 6 Figure 3.8 Pseudocode corresponding to problem 3.3. Else Perform steps 3 through 4 until T is less than 0.01 END IF 6. Print an output line showing the sum of all terms until we reach a term which value is less than 0.01 7. Stop processing.
Example 3-5 Write a pseudocode to find the largest of three numbers A, B, and C. Note that the corresponding flowchart is given in example 2.7.
Solution:
1. Input (Read) the values of three numbers A, B, and C Initialize the Sum: 2. IF the value of A > that of B Then Go to step 3 ELSE Go to step 4 END IF 3. IF the value of A > that of C Then Print The maximum value is that of A Go to step 5 ELSE Print The maximum value is that of C Go to step 5 END IF 4. IF the value of B > that of C Then Print The maximum value is that of B Go to step 5 ELSE Print The maximum value is that of C END IF 5. Stop Processing
Note that in the given pseudocode, after each printing statement , we jump to label 5 to terminate processing except at the printing statement just before the Stop Processing statement, because the Stop Processing statement will be executed automatically for this printing statement.
Example 3-6 Ahlia Company desires to generate its payroll via computer. The
Solution:
1. Input the employees payroll data: Social Security Number (SSN) Pay Rate (PR) Hours Worked (HW) 2. IF Hours Worked is greater than 150 Then Overtime Pay = ((Hours Worked) 150) * 1.5 * (Pay Rate) Gross Pay = 150 * (Pay Rate) + (Overtime Pay) ELSE Gross Pay = (Pay Rate) * (Hours Worked) END IF
3. Tax = 0.20 * (Gross Pay Gross Pay) 4. Net Pay = (Gross Pay ) TAX 5. Write report for the employee including the following items: 1. Social Security Number 2. Pay Rate 3. Hours Worked 4. Gross Pay 5. Tax 6. Net Pay 6. IF the employee is the last one Then Go To Step 7 ELSE Perform steps 1 though 5 until the last employee is processed END IF 7. Stop Processing.
Example 3-7 The manager of your company has requested a report from the Personnel Department about all employees . The report should include the following information:
12-
The total number of males and females. The number of employees by the following age categories:
a. b. c. d. e. f.
3-
The total number of people who have been working for the
Write down the needed pseudocode. Note that the corresponding flowchart is given in example 2.9.
Solution:
1. Set all counters to zero: Male_count = Female_count = over_60 = 50_60 = 40_49 = 0 30_39 = 20_29 = under_20 = 10_YR = ENG = 0 2. Input todays date and store it in variable Today
3. Input all data for a single employee: Birthday date Sex code Occupation code Date of employment 4. IF sex code is Male Then Male_count = Male_count + 1 ELSE Female_count = Female_count + 1 END IF 5. Calculate the employees age: Age = (Todays date) (Birthday date) 6. IF employees age greater than 60 Then Over_60 = Over_60 + 1 Go to 12 END IF 7. IF employees age greater than 50 Then 50_60 = 50_60 + 1 Go to 12 END IF 8. IF employees age greater than 40 Then 40_49 = 40_49 + 1 Go to 12 END IF 9. IF employees age greater than 30 Then 30_39 = 30_39 + 1 Go to 12 END IF 10. IF employees age greater than 20 Then 20_29 = 20_29 + 1 Go to 12 END IF
11. IF employees age less than 20 Then under_20 = under_20 + 1 END IF 12. Find the period of employment and store it in variable X: X = Today (Date of employment) 13. IF X is greater than or equal to 10 Then 10_Yr = 10_Yr + 1 END IF 14. IF occupation code = ENG Then ENG = ENG + 1 END IF 15. IF this is the last employee Then Print a report showing all the needed statistics. ELSE Perform steps 3 through 14 until all employees are processed. END IF 16. Stop processing.
Note that Male_count, Female_count, 10_YR, and ENG are variables used to store the number of males, females, employees who have been working for the company for 10 years or more, and Engineers working for the company.
Example 3-8 Write down a pseudocode to solve an equation of second order given by: 0 Given that its roots
,
and 4
where a, b, and c are real numbers. You have to take into consideration the following: 2. If 4 is negative , you have to say that we have complex roots. 4 is equal to zero the two roots are equal to b/2a. 3. If 4. If ( 4 ) greater than zero the solution will given by equation 3.1. Note that the corresponding flowchart is given in example 2.10.
Solution
1. Input the values of a, b, and c. 2. Calculate y where y is given by: 3. IF y 0 Then IF y > 0 Then
ELSE
END IF ELSE Print The roots are complex. Go To Step 5 END IF 4. Print the values of 5. Stop processing. .
3-7 Questions
Question 1: Write a pseudocode for flowchart shown in Figure 3.14
Question 2: Write a pseudocode to read the ages of Hany and Hesham , then it prints the name of the elder. (The corresponding flowchart is the solution of problem 2-2)
Question 3: Write a pseudocode that reads a temperature in Fahrenheit F degrees and convert it into Celsius C degrees, using the formula
Question 4: Write a pseudocode that reads the radius of a sphere r, then it calculates its volume V and surface area A using formulas
where
If the read radius is negative, the code should print a warning message that states that the radius should be positive, and then terminates.
Question 5: Write a pseudocode that reads number x, then it calculate the value of function y using the formula
..