meljun cortes algorithm pseudo code

11
Pseudocode, Algorithm and Flowchart Computer Programming I Prepared by Om Prakash Mahato 1 An algorithm is a procedure for solving a problem in terms of the actions to be executed and the order in which those actions are to be executed. An algorithm is merely the sequence of steps taken to solve a problem. The steps are normally "sequence," "selection, " "iteration," and a case-type statement. In C, "sequence statements" are imperatives. The "selection" is the "if then else" statement, and the iteration is satisfied by a number of statements, such as the "while," " do," and the "for," while the case-type statement is satisfied by the "switch" statement. Pseudocode is an artificial and informal language that helps programmers to develop algorithms. Pseudocode is a "text-based" detail (algorithmic) design tool. The rules of Pseudocode are reasonably straightforward. All statements showing "dependency" are to be indented. These include while, do, for, if, switch. Examples below will illustrate this notion. GUIDE TO PSEUDOCODE LEVEL OF DETAIL: Given record/file descriptions, pseudocode should be created in sufficient detail so as to directly support the programming effort. The purpose of pseudocode is to elaborate on the algorithmic detail and not just cite an abstraction. There is not fixed rule for writing the PseudoCode. It differers from one company to another, however there is certain basic Pseudocode standard as follows: 1. Write only one statement per line. 2. Capitalize keyword used for Pseudocode, like READ, PRINT etc 3. Start all the sequences from same column in case of without use of selection(i.e. body of if, for , while etc) 4. Make Pseudocode as Programming language independent. SEQUENCE Sequential control is indicated by writing one action after another, each action on a line by itself, and all actions aligned with the same indent. The actions are performed in the sequence (top to bottom) that they are written. Example (non-computer) 1. Brush teeth 2. Wash face 3. Comb hair 4. Smile in mirror How To WRITE PseudoCode? Example 1. READ height of rectangle 2. READ width of rectangle 3. COMPUTE area as height times width Common Action Keywords Several keywords are often used to indicate common input, output, and processing operations. Input: READ, OBTAIN, GET Output: PRINT, DISPLAY, SHOW Compute: COMPUTE, CALCULATE, DETERMINE Initialize: SET, INIT Add one: INCREMENT, BUMP

Upload: meljun-cortes

Post on 28-Nov-2014

2.911 views

Category:

Documents


0 download

DESCRIPTION

MELJUN CORTES Algorithm Pseudo Code

TRANSCRIPT

Page 1: MELJUN CORTES Algorithm Pseudo Code

Pseudocode, Algorithm and Flowchart Computer Programming I

Prepared by Om Prakash Mahato 1

An algorithm is a procedure for solving a problem in terms of the actions to be executed and

the order in which those actions are to be executed. An algorithm is merely the sequence of

steps taken to solve a problem. The steps are normally "sequence," "selection, " "iteration,"

and a case-type statement.

In C, "sequence statements" are imperatives. The "selection" is the "if then else" statement,

and the iteration is satisfied by a number of statements, such as the "while," " do," and the

"for," while the case-type statement is satisfied by the "switch" statement.

Pseudocode is an artificial and informal language that helps programmers to develop

algorithms. Pseudocode is a "text-based" detail (algorithmic) design tool.

The rules of Pseudocode are reasonably straightforward. All statements showing

"dependency" are to be indented. These include while, do, for, if, switch. Examples below

will illustrate this notion.

GUIDE TO PSEUDOCODE LEVEL OF DETAIL: Given record/file descriptions,

pseudocode should be created in sufficient detail so as to directly support the programming

effort. The purpose of pseudocode is to elaborate on the algorithmic detail and not just cite an

abstraction.

There is not fixed rule for writing the PseudoCode. It differers from one company to another,

however there is certain basic Pseudocode standard as follows:

1. Write only one statement per line.

2. Capitalize keyword used for Pseudocode, like READ, PRINT etc

3. Start all the sequences from same column in case of without use of selection(i.e. body

of if, for , while etc)

4. Make Pseudocode as Programming language independent.

SEQUENCE

Sequential control is indicated by writing one action after another, each action on a line by

itself, and all actions aligned with the same indent. The actions are performed in the sequence

(top to bottom) that they are written.

Example (non-computer)

1. Brush teeth

2. Wash face

3. Comb hair

4. Smile in mirror

How To WRITE PseudoCode? Example

1. READ height of rectangle

2. READ width of rectangle

3. COMPUTE area as height times width

Common Action Keywords

Several keywords are often used to indicate common input, output, and processing

operations.

Input: READ, OBTAIN, GET

Output: PRINT, DISPLAY, SHOW

Compute: COMPUTE, CALCULATE, DETERMINE

Initialize: SET, INIT

Add one: INCREMENT, BUMP

Page 2: MELJUN CORTES Algorithm Pseudo Code

Pseudocode, Algorithm and Flowchart Computer Programming I

Prepared by Om Prakash Mahato 2

A computer can perform arithmetic operation.

A programmer may use actual mathematical symbols or the words for those symbols.

For example: "Add score to total_score" is same as "total_score = total_score + score"

(programming languages use mathematical equations to assign values to memory

locations. In this case, a new value of total_score is assigned to a memory location

named total_score by adding score to the current (not new) value of total_score)

The following symbols can be used in pseudocode: + for Add, - for Subtract, * for

Multiply, / for Divide, ( ) for Parentheses

For more example:

o Divide total_score by student_count

o class_average = total_score / student_count

o Compute C = (F - 32) * 5 / 9

When writing mathematical calculation for the computer, the order of operation

should be considered; otherwise you may end up with incorrect values.

The order of operators are following:

1. ( ) : Values within parentheses are always evaluated first.

2. ^ : Exponentiation (raising a number to a power) is second.

3. - : Negation (creating a negative number) is third.

4. * and / : Multiplication or division is fourth.

5. \ : Integer division (a.k.a. Div) is fifth.

6. Mod : Remainder division is sixth.

7. + or - : Addition and subtraction are last.

Example: For an expression Total = 10 + 15 * 2 / 4 ^ 2 -(2 + 3) , the order of

computation is following:

0. Total = 10 + 15 * 2 / 4 ^ 2 -(2 + 3)

1. Total = 10 + 15 * 2 / 4 ^ 2 -(5)

2. Total = 10 + 15 * 2 / 16 -(5) ( 5 as a negative value)

3. Total = 10 + 15 * 2 / 16 - 5

4. Total = 10 + 30 / 16 - 5

5. Total = 10 + 1.875 - 5

6. Total = 11.875 - 5

7. Total = 6.875

IF-THEN-ELSE

Binary choice on a given Boolean condition is indicated by the use of four keywords: IF,

THEN, ELSE, and ENDIF. The general form is:

CODE: SELECT ALL

IF condition THEN

sequence 1

ELSE

sequence 2

ENDIF

The ELSE keyword and "sequence 2" are optional. If the condition is true, sequence 1 is

performed, otherwise sequence 2 is performed.

Page 3: MELJUN CORTES Algorithm Pseudo Code

Pseudocode, Algorithm and Flowchart Computer Programming I

Prepared by Om Prakash Mahato 3

Example

CODE: SELECT ALL

IF HoursWorked > NormalMax THEN

Display overtime message

ELSE

Display regular time message

ENDIF

The Repetition structure can be implemented using

• Repeat Until Loop

• The While Loop

• The For Loop

WHILE The WHILE construct is used to specify a loop with a test at the top. The beginning and

ending of the loop are indicated by two keywords WHILE and ENDWHILE. The general

form is:

CODE: SELECT ALL

WHILE condition

sequence

ENDWHILE

The loop is entered only if the condition is true. The "sequence" is performed for each

iteration. At the conclusion of each iteration, the condition is evaluated and the loop

continues as long as the condition is true.

Example

CODE: SELECT ALL

WHILE Population < Limit

Compute Population as Population + Births - Deaths

ENDWHILE

Example

CODE: SELECT ALL

WHILE employee.type NOT EQUAL manager AND personCount < numEmployees

INCREMENT personCount

CALL employeeList.getPerson with personCount RETURNING employee

ENDWHILE

CASE A CASE construct indicates a multiway branch based on conditions that are mutually

exclusive. Four keywords, CASE, OF, OTHERS, and ENDCASE, and conditions are used to

indicate the various alternatives. The general form is:

Page 4: MELJUN CORTES Algorithm Pseudo Code

Pseudocode, Algorithm and Flowchart Computer Programming I

Prepared by Om Prakash Mahato 4

CODE: SELECT ALL

CASE expression OF

condition 1 : sequence 1

condition 2 : sequence 2

...

condition n : sequence n

OTHERS:

default sequence

ENDCASE

The OTHERS clause with its default sequence is optional. Conditions are normally numbers

or characters

indicating the value of "expression", but they can be English statements or some other

notation that specifies the condition under which the given sequence is to be performed. A

certain sequence may be associated with more than one condition.

Example

CODE: SELECT ALL

CASE Title OF

Mr : Print "Mister"

Mrs : Print "Missus"

Miss : Print "Miss"

Ms : Print "Mizz"

Dr : Print "Doctor"

ENDCASE

Example

CODE: SELECT ALL

CASE grade OF

A : points = 4

B : points = 3

C : points = 2

D : points = 1

F : points = 0

ENDCASE

REPEAT-UNTIL This loop is similar to the WHILE loop except that the test is performed at the bottom of the

loop instead of at the top. Two keywords, REPEAT and UNTIL are used. The general form

is:

CODE: SELECT ALL

REPEAT

sequence

UNTIL condition

Page 5: MELJUN CORTES Algorithm Pseudo Code

Pseudocode, Algorithm and Flowchart Computer Programming I

Prepared by Om Prakash Mahato 5

The "sequence" in this type of loop is always performed at least once, because the test is

peformed after the sequence is executed. At the conclusion of each iteration, the condition is

evaluated, and the loop repeats if the condition is false. The loop terminates when the

condition becomes true.

FOR This loop is a specialized construct for iterating a specific number of times, often called a

"counting" loop. Two keywords, FOR and ENDFOR are used. The general form is:

CODE: SELECT ALL

FOR iteration bounds

sequence

ENDFOR

In cases where the loop constraints can be obviously inferred it is best to describe the loop

using problem domain vocabulary.

Example

CODE: SELECT ALL

FOR each month of the year (good)

FOR month = 1 to 12 (ok)

FOR each employee in the list (good)

FOR empno = 1 to listsize (ok)

NESTED CONSTRUCTS The constructs can be embedded within each other, and this is made clear by use of indenting.

Nested constructs should be clearly indented from their surrounding constructs.

Example

CODE: SELECT ALL

SET total to zero

REPEAT

READ Temperature

IF Temperature > Freezing THEN

INCREMENT total

END IF

UNTIL Temperature < zero

Print total

In the above example, the IF construct is nested within the REPEAT construct, and therefore

is indented.

Page 6: MELJUN CORTES Algorithm Pseudo Code

Pseudocode, Algorithm and Flowchart Computer Programming I

Prepared by Om Prakash Mahato 6

EXAMPLES of PseudoCode

Example 3: This is the pseudo-code required to input three numbers from the keyboard

and output the result.

Use variables: sum, number1, number2, number3 of type integer

Accept number1, number2, number3

Sum = number1 + number2 + number3

Print sum

End program

Example 4: The following pseudo-code describes an algorithm which will accept two

numbers from the keyboard and calculate the sum and product displaying the answer on

the monitor screen.

Use variables sum, product, number1, number2 of type real

display “Input two numbers”

accept number1, number2

sum = number1 + number2

print “The sum is “, sum

product = number1 * number2

print “The Product is “, product

end program

Note: -The logical operators used in our pseudo-code are

= is equal to

> is greater than

< is less than

>= is greater than or equal

<= is less than or equal

<> is not eaqual to

LOGICAL OPERATORS: AND, OR, NOT

AND: if any of the conditions are false, the whole expression is false.

ex: IF day = “Saturday” AND weather = “sunny”

WRITE “Let‟s go to the beach!”

ENDIF

OR: if any of the conditions are true, the whole expression is true

ex: IF month = “June” OR month = “July” OR month = “August”

WRITE “Yahoo! Summer vacation!”

ENDIF

NOT: reverses the outcome of the expression; true becomes false, false becomes true.

ex: IF day <> “Saturday” AND day <> “Sunday”

WRITE “Yuk, another work day”

ENDIF

Example 5: The following shows how the selection control structure is used in a program

where a user chooses the options for multiplying the numbers or adding them or

subtracting.

Use variables: choice, of the type character

ans, number1, number2, of type integer

display “choose one of the following”

display “m for multiply”

display “a for add”

Page 7: MELJUN CORTES Algorithm Pseudo Code

Pseudocode, Algorithm and Flowchart Computer Programming I

Prepared by Om Prakash Mahato 7

display “s for subtract”

accept choice

display “input two numbers you want to use”

accept number1, number2

if choice = m then ans = number1 * number2

if choice = a then ans = number1 + number2

if choice = s then ans = number1 - number2

display ans

Example 6: The program is to input a examination mark and test it for the award of a

grade. The mark is a whole number between 1 and 100. Grades are awarded according to

the following criteria:

>= 80 Distinction

>= 60 Merit

>= 40 Pass

< 40 fail

The pseudo-code is

Use variables: mark of type integer

If mark >= 80 display “distinction”

If mark >= 60 and mark < 80 display “merit”

If mark >= 40 and mark < 60 display “pass”

If mark < 40 display “fail”

Example 8: The following program segment outputs a message to the monitor screen

describing the insurance available according to a category input by the user.

Use variables: category of type character

Display “input category”

Accept category

If category = U

Display “insurance is not available”

Else

If category = A then

Display “insurance is double”

Else

If category = B then

Display “insurance is normal”

Else

If category = M then

Display “insurance is medically dependent”

Else

Display “entry invalid”

This can be expressed in a case statement as follows:

Use variables: category of type character

Display “input category”

Accept category

DO case of category

CASE category = U

Display “insurance not available”

CASE category = A

Display “insurance is double”

CASE category = B

Page 8: MELJUN CORTES Algorithm Pseudo Code

Pseudocode, Algorithm and Flowchart Computer Programming I

Prepared by Om Prakash Mahato 8

Display “insurance is normal”

CASE category = M

Display “insurance is medically dependent”

OTHERWISE:

Display “entry is invalid”

ENDCASE

Instead of using the word otherwise, one can use else.

Example 10. A survey has been carried out to discover the most popular sport. The

results will be typed into the computer for analysis. Write a program to accomplish this.

REPEAT

DISPLAY “Type in the letter chosen or Q to finish”

DISPLAY “A: Athletics”

DISPLAY “S: Swimming”

DISPLAY “F: Football”

DISPLAY “B: Badminton”

DISPLAY “Enter data”

ACCEPT letter

If letter = „A‟ then

Athletics = athletics + 1

If letter = „S‟ then

Swimming = Swimming + 1

If letter = „F‟ then

Football = Football + 1

If letter = „B‟ then

Badminton = Badminton + 1

UNTIL letter = „Q‟

DISLAY “Athletics scored”, athletics, “votes”

DISLAY “Swimming scored”, swimming, “votes”

DISLAY “Football scored”, football, “votes”

DISLAY “Badminton scored”, Badminton, “votes”

Example 12: Write a program that will output the square root of any number input until

the number input is zero.

In some cases, a variable has to be initialised before execution of the loop as shown in

the following example.

Use variable: number of type real

DISPLAY “Type in a number or zero to stop”

ACCEPT number

WHILE number <> 0

Square = number * number

DISPLAY “The square of the number is”, square

DISPLAY “Type in a number or zero to stop”

ACCEPT number

ENDWHILE

Example 14: Write a program to calculate the sum and average of a series of numbers.

The pseudo-code solution is:

Use variables: n, count of the type integer

Sum, number, average of the type real

DISPLAY “How many numbers do you want to input”

ACCEPT count

Page 9: MELJUN CORTES Algorithm Pseudo Code

Pseudocode, Algorithm and Flowchart Computer Programming I

Prepared by Om Prakash Mahato 9

SUM = 0

FOR (n = 1, n <= count, n + 1)

DISPLAY “Input the number from your list”

ACCEPT number

SUM = sum + number

ENDFOR

Average = sum / count

DISPLAY “The sum of the numbers is “, sum

DISPLAY “Average of the numbers is “, average

Function Calls in Pseudocode

· Calls to Functions should appear as:

Call FunctionName (arguments: field1, field2, etc.)

· Returns in functions should appear as:

Return (field1)

· Function headers should appear as:

FunctionName (parameters: field1, field2, etc. )

· While passing the addresses to Functions.

Note that in C, arguments and parameters such as "fieldn" could be written: "pointer to fieldn

...."

In Java, these could be „references.‟

· Functions called with addresses should be written as:

Call FunctionName (arguments: pointer to fieldn, pointer to field1, etc.)

(or references to fields…..)

· Function headers containing pointers should be indicated as:

FunctionName (parameters: pointer to field1, pointer to field2, ...)

· Returns in functions where a pointer is returned:

Return (pointer to fieldn)

Parameters sent „by Value‟ (C, Java, ….) is the default. If you are passing a pointer

or a reference (C, Java), this should be explicitly indicated as above.

Recursive procedures

Factorial

A classic example of a recursive procedure is the function used to calculate the factorial of a

natural number:

Pseudocode (recursive):

Page 10: MELJUN CORTES Algorithm Pseudo Code

Pseudocode, Algorithm and Flowchart Computer Programming I

Prepared by Om Prakash Mahato 10

function factorial is:

input: integer n such that n >= 0

output: [n × (n-1) × (n-2) × … × 1]

1. if n is 0, return 1

2. otherwise, return [ n × factorial(n-1) ]

end factorial

This factorial function can also be described without using recursion by making use of the

typical looping constructs found in imperative programming languages:

Pseudocode (iterative):

function factorial is:

input: integer n such that n >= 0

output: [n × (n-1) × (n-2) × … × 1]

1. create new variable called running_total with a value of 1

2. begin loop

1. if n is 0, exit loop

2. set running_total to (running_total × n)

3. decrement n

4. repeat loop

3. return running_total

end factorial

Pseudocode for Array:

The sorting is a good algorithm to use as a pseudocode example. This snippet will place the

sort inside a function to provide a more extensive example and use c pseudocode as the basis

for the code.

Function sort (array [])

For (i = 1 to length of array-1)

For (j = i+1 to length of arrayi)

If array[j] > array[j + 1]

Swap array[j] and array [j + 1]

End for

End for

End function

NOTE: Just taking above Tips, Try to make Pseudocode for any program which you have

done C. It is not difficult and do not be confused seing different examples done in different

styles. There is no fixed rule for doing Pseudocode, only remember the guidelines as given

above and do your Pseudocode as your style, it doesn‟t matter. The main thing is you should

do the whole process as done in C code taking the above guidelines.

Page 11: MELJUN CORTES Algorithm Pseudo Code

Pseudocode, Algorithm and Flowchart Computer Programming I

Prepared by Om Prakash Mahato 11

Algorithm and Flowchart

Example: Write algorithm and draw a flowchart for the following gerneratin following

pattern.

1

1 2 1

1 2 3 2 1

1 2 3 4 3 2 1

---------------------------

Solution:

Algorithm: 1. Start

2. Declare i,j,n

3. i=1

4. Read n

5. for i<=n Repeat 5.1 to 5.8

5.1 j=1

5.2 for j<=n-I Repeat 5.2.1 and 5.2.1

5.2.1 print “blank space”

5.2.2 j=j+1

5.3 j=1

5.4 for j<=1 Repeat 5.4.1 and 5.4.2

5.4.1 print j with horizontal tab

5.4.2 j=j+1

5.5 j=j-1

5.6 for j>=1 Repeat 5.6.1 and 5.6.2

5.6.1 print j with horizontal tab

5.6.2 j=j-1

5.7 change line

5.8 i=i+1

6 . stop

Flowchart:

Start

Declare i,j and n

Read n