Modularisation II

1 / 32
About This Presentation
Title:

Modularisation II

Description:

Hierarchy charts and parameters. For data parameters: Contain the actual variables or ... set error_message to blank. IF pay_rate $25 THEN. error_message ... – PowerPoint PPT presentation

Number of Views:56
Avg rating:3.0/5.0
Slides: 33
Provided by: Abi90

less

Transcript and Presenter's Notes

Title: Modularisation II


1
Modularisation II
  • Lecture 9

2
Communication between modules
  • Also known as intermodule communication.
  • The fewer and the simpler the communications, the
    easier it is to understand and maintain.
  • Be accomplished by the scope of variable (local
    or global data) or passing parameter

3
Scope of variable
  • Global data ?
  • data can be used by all modules in a program
  • scope of variable is the whole program
  • The lifetime spans the execution of the whole
    program
  • Local data ?
  • Can only be used by the module in which it is
    defined
  • Scope of variable is the module itself
  • The lifetime is limited to the execution of the
    single subroutine in which it is defined.
  • Can reduce program side effects.

4
Side effects
  • Form of cross-communication of a module with
    other parts of a program.
  • Occurs when a subordinate module alters the value
    of a global variable inside a module.
  • Tend to decrease the manageability of a program.

5
Passing parameters
  • Efficient method of intermodule communication
  • Data items transferrred from a calling module to
    its subordinate module at the time of calling.
    When the subordinate module terminates and return
    the control, the values in parameters are
    transfered back to the calling module.
  • Avoids unwanted side effects
  • Example Print_page_headings(page_count,
    line_count)

6
Formal and actual parameters
  • Formal parameters parameter that appear when a
    submodule is defined
  • Actual parameters variable and expression that
    are passed to a submodule in a particular call.
  • Example
  • In mainline call
  • Print_page_headings(page_count, line_count)
  • while in module have been declared as
  • Print_page_headings(page_counter, line_counter)

7
Example 8.3 Increment two counter(illustrates
the use of formal and actual parameters)
  • Design an algorithm that will increment two
    counters from 1 to 10 and then output those
    counters to the screen. Your program is to use a
    module to increment the counters.

8
  • Defining diagram

9
Solution Algorithm
  • Increment_two_counters
  • Set counter1, counter2 to zero
  • DO I 1 to 10
  • increment_counter(counter1)
  • increment_counter(counter2)
  • Output to the screen counter1, counter2
  • ENDDO
  • END
  • Increment_counter(counter)
  • counter counter 1
  • END

Actual parameter
Formal parameter
10
Hierarchy charts and parameters
For data parameters Contain the actual variables
or Data items that will be passed
For status parameters act as Program flag or
switches (T/F)
11
Example 8.4 Process three characters(Using
parameter in program design)
  • Design a solution algorithm that will prompt a
    terminal operator for three characters, accept
    those characters as input, sort them into
    ascending sequence and output them to the screen.
    The algorithm is to continue to read characters
    until XXXis entered.

12
  • Defining diagram

13
Group the activities into modules
  • A module will be created for each processing step
    in the defining diagram.

14
Hierarchy chart
Process_three_ characters
Char_1, char_2. Char_3
Print_three_ characters
Sort_three_ characters
Read_three_ characters
15
Solution Algorithm
  • Process_three_characters
  • Read_three_characters(char_1,char_2, char_3)
  • DOWHILE NOT (char_1XAND char_2XAND
    char_3X)
  • sort_three_characters(char_1,char_2,char_3)
  • Print_three_characters(char_1,char_2,char_3)
  • Read_three_characters(char_1,char_2,char_3)
  • ENDDO
  • END
  • Read_three_characters(char_1,char_2,char_3)
  • Prompt the operator for char_1,char_2, char_3
  • Get chat_1, char_2, char_3
  • END

16
Solution Algorithm (cont)
  • Sort_three_characters(char_1,char_2,char_3)
  • IF char_1gtchar_2 THEN
  • temp char_1
  • char_1 char_2
  • char_2 temp
  • ENDIF
  • IF char_2gtchar_3 THEN
  • temp char_2
  • char_2 char_3
  • char_3 temp
  • ENDIF
  • IF char_1gtchar_2 THEN
  • temp char_1
  • char_1 char_2
  • char_2 temp
  • ENDIF
  • END
  • Print_three_characters(char_1,char_2,char_3)

17
Further modularisation
  • Process_three_characters
  • Read_three_characters(char_1,char_2, char_3)
  • DOWHILE NOT (char_1XAND char_2XAND
    char_3X)
  • sort_three_characters(char_1,char_2,char_3)
  • Print_three_characters(char_1,char_2,char_3)
  • Read_three_characters(char_1,char_2,char_3)
  • ENDDO
  • END
  • Read_three_characters(char_1,char_2,char_3)
  • Prompt the operator for char_1,char_2, char_3
  • Get chat_1, char_2, char_3
  • END
  • Sort_three_characters(char_1,char_2,char_3)
  • IF char_1gtchar_2 THEN
  • Swap_two_characters(char_1,char_2)
  • ENDIF
  • IF char_2gtchar_3 THEN

18
Further modularisation (cont)
  • Print_three_characters(char_1,char_2,char_3)
  • Output to the screen char_1, char_2, char_3
  • END
  • Swap_two_characters(first_char, second_char)
  • temp first_char
  • first_char second_char
  • second_char temp
  • END

19
Hierarchy chart
Process_three_ characters
Print_three_ characters
Sort_three_ characters
Read_three_ characters
Swap_two_ characters
20
Steps in modularisation
  • Define the problem by dividing it into its three
    components
  • Group the activities into subtasks or functions
  • Construct the hierarchy chart
  • Establish the logic of the mainline of the
    algorithm
  • Develop the pseudocode
  • Desk check the solution algorithm

21
Example 8.5 Calculate Employees pay
  • A program is required by a company to read an
    employees number, pay rate and the number of
    hours worked in a week. The program is then to
    validate the pay rate and the hours worked fields
    and, if valid, compute the employees weekly pay
    and print it along with the input data.

22
Example 8.5 (cont)
  • Validation According to the companys rules, the
    maximum hours an emplooye can work per week is 60
    hours, and the maximum hourly rate is 25.00 per
    hour. If the hours worked field or the hourly
    rate field is out of range, the input data and an
    appropriate message is to be printed and the
    emplooyes weekly pay is not to be calculated.
  • Weekly pay calculation Weekly pay is calculated
    as hours worked times pay rate. If more than 35
    hours are worked, payment for the overtime hours
    worked is calculated at time-and half.

23
  • Defining diagram

24
Group the activities into modules
  • Each of the processing steps in the defining
    diagram will become a module in the algorithm.

25
Hierarchy chart
Compute_employee_pay
Employee_details
Valid_input_ fields
Calculate_ Employee_pay
Validate_input_ fields
Read_employee_ details
Print_employee_ details
26
Establish the logic of the mainline of the
algorithm using pseudocode
  • Compute_employee_pay
  • 1 Read_employee_details (employee_details)
  • 2 DOWHILE more records
  • 3 Validate_input_fields(employee_details,
    valid_input_fields)
  • IF valid_input_fields THEN
  • Calculate_employee_pay (employee_details)
  • Print_employee_details (employee_details)
  • ENDIF
  • 5 Read_employee_details (employee_details)
  • ENDDO
  • END

27
Develop the pseudocode for each successive module
in the hierarchy chart
  • Read_employee_details (employee_details)
  • Read emp_no, pay_rate, hrs_worked
  • END
  • Validate_input_fields (employee_details,
    valid_input_fields)
  • set_valid_input_fields to true
  • set error_message to blank
  • IF pay_rategt 25 THEN
  • error_message Pay rate exceeds
    25
  • Print_emp_no, pay_rate, hrs_worked,
    error_message
  • valid_input_fields false
  • ENDIF
  • 10 IF hrs_worked gt 60 THEN
  • error_message Hours worked exceed 60
  • Print_emp_no, pay_rate, hrs_worked,
    error_message
  • valid_input_fields false
  • ENDIF
  • END

28
Desk Checking
  • Input data

29
2. Expected result
30
Desk Check Table
31
Homework Product orders report
  • The Gatec Company wants to produce a product
    orders report from its product orders file. Each
    record on the file contains the product number of
    the item ordered, the product description, the
    number of units ordered, the retail price per
    unit, the freight charges per unit, and the
    packaging costs per unit
  • Your algorithm is to read the product orders
    file, calculate the total amount due for each
    product ordered and print these details on the
    product orders report.
  • The amount due for each product is calculated as
    the product of the number of units ordered and
    the retail price of the unit. A discount of 10
    is allowed on the amount due for all orders over
    100.00. The freight charges and packaging costs
    per unit must be added to this resulting value to
    determine the total amount due.

32
  • The output report is to contain headings and
    column headings as specified in the following
    chart

Each detail line is to contain the product
number, product description, number of units
ordered and the total amount due for the order.
There is to be an allowance of 45 detail line per
page.
Write a Comment
User Comments (0)