Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 MODULAR DESIGN AND ABSTRACTION. 2 SPECIFYING THE DETAILS OF A PROBLEM INTO A RELATED SET OF SMALLER PROBLEMS.

Similar presentations


Presentation on theme: "1 MODULAR DESIGN AND ABSTRACTION. 2 SPECIFYING THE DETAILS OF A PROBLEM INTO A RELATED SET OF SMALLER PROBLEMS."— Presentation transcript:

1 1 MODULAR DESIGN AND ABSTRACTION

2 2 SPECIFYING THE DETAILS OF A PROBLEM INTO A RELATED SET OF SMALLER PROBLEMS.

3 3 STATE THE PROBLEM SUBDIVIDE THE PROBLEM INTO MAJOR SUBPROBLEMS SUBDIVIDE EACH SUBPROBLEM INTO SMALLER TASKS REPEAT THE PROCESS UNTIL TASKS ARE EASILY SOLVED. TOP- DOWN DESIGN

4 4 THE STRUCTURE CHART A GRAPHICAL REPRESENTATION OF SYSTEM COMPONENTS. USED TO IDENTIFY AND DEFINE RELATIONSHIPS AMONG SUBPROBLEMS.

5 5 main module2 module1module3 A STRUCTURE CHART LEVEL O LEVEL 1

6 6 EACH SUBDIVISION IS REFERRED TO AS A STEPWISE REFINEMENT. TASKS AT EACH STAGE OF THE SUBDIVISION ARE REFERRED TO AS MODULES. STEPWISE REFINEMENT

7 7 PROBLEM SOLVING WITH TOP- DOWN DESIGN PROBLEM: GET THREE INTEGER NUMBERS REPRESENTING TEST MARKS. COMPUTE AND DISPLAY THEIR AVERAGE.

8 8 FindAvg Calculate Average Get Numbers Display Results THE STRUCTURE CHART FOR PROGRAM FindAvg: LEVEL 0 LEVEL 1

9 9 THE ALGORITHM: 1 GET test1, test2, test3 2 CALCULATE average 3 DISPLAY average

10 10 NEW CONCEPTS MODULES

11 11 MODULAR DESIGN AND FUNCTIONS MODULES ARE CODED AS SUBPROGRAMS. A C++ FUNCTION IS A GROUPING OF STATEMENTS INTO A SINGLE UNIT THAT PERFORMS A TASK. EACH C++ PROGRAM IS MADE UP OF ONE OR MORE FUNCTIONS ( main() IS A FUNCTION).

12 12 FUNCTION PROTOTYPE A FUNCTION MUST BE DECLARED BEFORE IT MAY BE CALLED. type function_name (); // FINDS THE AVERAGE OF THREE NUMBERS void Find_average ();

13 13 FUNCTION CALLS A FUNCTION IS CALLED THROUGH THE EXECUTION OF A FUNCTION CALL. LOGIC FLOW IS TRANSFERRED TO function_name. // A CALL TO FUNCTION Find_average Find_average (); function_name ();

14 14 FUNCTION DEFINITION A FUNCTION CONSISTS OF 2 PARTS: THE HEADING AND THE BODY. THE HEADING INCLUDES A TYPE SPECIFICATION, FUNCTION NAME, AND LEFT AND RIGHT PARENTHESES. THE BODY CONSISTS OF LOCAL DECLARATIONS AND EXECUTABLE STATEMENTS. THE FUNCTION BODY BEGINS WITH A LEFT BRACE AND ENDS WITH A RIGHT BRACE.

15 15 type function_name ( ) { local_declarations executable_statements } heading body

16 16 void Find_average() { // Calculates the average const int NUMBER_OF_TESTS = 3; average = (test1 + test2 + test3) / NUMBER_OF_TESTS; return; } // end Find_average EXAMPLE:

17 17 FLOW OF CONTROL FUNCTIONS ARE DEFINED PHYSICALLY AFTER THE MAIN PROGRAM. EXECUTION STARTS WITH THE STATEMENTS OF THE MAIN PROGRAM. THE CALL STATEMENT ACTS AS TRANSFER OF CONTROL. THE RETURN STATEMENT SENDS THE CONTROL BACK TO THE CALLING MODULE.

18 18 EXAMPLE:... void main () {... Get_data (); Find_average (); Display_results (); return; } void Find_average () { // Calculates the average const int NUMBER_OF_TESTS = 3; average = ( test1 + test2 + test3 ) / NUMBER_OF_TESTS; return; } // end Find_average ()

19 19 // FILE: FindAvg2.cpp // Finds the average of three test scores #include using std::cout; using std::cin; using std::endl; // global data: float test1, test2, test3, average; voidmain () { // functions used: void Get_data (); void Find_average (); void Display_results (); // function calls: Get_data (); Find_average (); Display_results (); return; } THE CODE FOR FindAvg:

20 20 void Get_data () { // Gets the grade marks cout << "Enter the three test marks: "; cin >> test1 >> test2 >> test3; return; } void Find_average() { // Calculates the average const int NUMBER_OF_TESTS = 3; average = (test1 + test2 + test3) / NUMBER_OF_TESTS; return; } void Display_results () { // Displays the average cout << "The average of the 3 test marks is " << average << endl; return; }

21 21 LOCAL DECLARATIONS OBJECTS DECLARED LOCALLY WITHIN A FUNCTION CAN BE REFERENCED ONLY WITHIN THAT FUNCTION.

22 22 GLOBAL DECLARATIONS OBJECTS DECLARED OUTSIDE OF FUNCTIONS CAN BE REFERENCED FROM WITHIN ANY FUNCTION THAT FOLLOWS THAT DECLARATION.

23 23 PARAMETERS ARE USED TO COMMUNICATE BETWEEN MODULES. THE CALLING MODULE PASSES VALUES TO THE CALLED MODULE TO USE THEM IN PROCESSING. THE CALLED MODULE RETURNS THE RESULTS TO THE CALLING MODULE. MODULE COMMUNICATION

24 24 EXAMPLE: PROBLEM GIVEN THE RADIUS OF A CIRCLE, COMPUTE AND DISPLAY THE AREA AND THE CIRCUMFERENCE.

25 25 ANALYSIS AND SPECIFICATIONS IN ORDER TO COMPUTE THE CIRCLE’S AREA AND CIRCUMFERENCE (PROBLEM’S OUTPUT), WE NEED THE RADIUS (PROBLEM’S INPUT). WE ALSO KNOW THAT THE AREA MAY BE CALCULATED AS:  x RADIUS 2 AND THE CIRCUMFERENCE MAY BE CALCULATED AS: 2 x π  x RADIUS. DATA REQUIREMENTS CONSTANT π = 3.14159 INPUT RADIUS (FLOAT) OUTPUT AREA (FLOAT) CIRCUMFERENCE (FLOAT) FORMULAE AREA = π * RADIUS * RADIUS CIRCUMFERENCE = 2 * π * RADIUS

26 26 DESIGN HAVING DEFINED THE PROBLEM’S INPUT AND OUTPUT, WE MAY START IDENTIFYING THE SYSTEM’S COMPONENTS AND STEPS NECESSARY TO SOLVE THE PROBLEM.

27 27 AreaCircm Compute Get radiusDisplay Result LEVEL 0 LEVEL 1 STRUCTURE CHART

28 28 AreaCircm Compute Get radiusDisplay Result LEVEL 0 LEVEL 1 areacircum LEVEL 2 STRUCTURE CHART

29 29 1. GET DATA 2. COMPUTE 3. DISPLAY RESULTS ALGORITHM

30 30 1. GET DATA 2. COMPUTE 2.1 COMPUTE AREA 2.2 COMPUTE CIRCUMFERENCE 3. DISPLAY RESULTS ALGORITHM: A Second Level Refinement

31 31 NEW CONCEPTS MODULES COMMUNICATION

32 32 FUNCTION PROTOTYPE USING PARAMETERS type function_name (parameter_type_list); // computes the area of a circle float Compute_area (float r);

33 33 FUNCTION CALLS function_name (parameter_list); // A call to function Compute_area() Compute_area (radius);

34 34 FUNCTION DEFINITION USING PARAMETERS type function_name ( parameter_list) { local_declarations executable statements } heading body

35 35 EXAMPLE: // computes the area of a circle float Compute_area (float r) { // compute and return the area return PI * r * r; } // end Compute_area () DEFINITION:

36 36 CALL: area = Compute_area (radius);

37 37 SAME RULES AS WITH IDENTIFIERS. void Module_name (float first, float second, float third, float result); OR void Calculate_average (float test1, float test2, float test3, float average); THE SECOND MODULE NAME IS MORE MEANINGFUL. NAMING RULES

38 38 // FILE: AreaCircm.cpp // FINDS AND PRINTS THE AREA AND CIRCUMFERENCE OF A CIRCLE #include #include "CmptArCr.cpp" //Compute_area and Compute_circum using std::cout; using std::cin; using std::endl; void main () { // functions used: // COMPUTES THE AREA OF A CIRCLE float Compute_area (float); // COMPUTES THE CIRCUMFERENCE OF A CIRCLE float Compute_circum (float); IMPLEMENTATION FOR AreaCircm

39 39 // local data: float radius; // radius of circle float area; // area of circle float circum; // circumference of circle // get radius; cout << "enter the circle radius: "; cin >> radius; // compute the area of the circle area = Compute_area (radius); // compute the circumference of the circle circum = Compute_circum (radius); cout << "the area of the circle is " << area << endl; cout << "the circumference of the circle is " << circum << endl; return; }

40 40 // FILE: CmptArCr.cpp // Modules to calculate the area and // circumference of a circle. // global data: const float PI = 3.14159; // COMPUTES THE AREA OF A CIRCLE float Compute_area (float r) { // compute and return the area return PI * r * r; } // end Compute_area ()

41 41 // COMPUTES THE CIRCUMFERENCE OF A CIRCLE float Compute_circum (float r) { // compute and return the circumference return 2.0 * PI * r; } // end Compute_circum ()

42 42 THE PARAMETERS IN THE CALL STATEMENT ARE REFERRED TO AS ACTUAL PARAMETERS. THE VALUE OF AN ACTUAL PARAMETER IS PASSED AND USED BY THE FUNCTION. ACTUAL PARAMETERS

43 43 FORMAL PARAMETERS THE PARAMETERS IN THE FUNCTION HEADING ARE REFERRED TO AS FORMAL PARAMETERS. A FORMAL PARAMETER REPRESENTS THE ACTUAL VALUE PASSED TO THE FUNCTION EACH TIME IT IS CALLED.

44 44 LIBRARIES OF FUNCTIONS PROVIDE ACCESS TO PREVIOUSLY WRITTEN FUNCTIONS THAT PERFORM USEFUL DIAGNOSTICS, MANIPULATIONS, COMPUTATIONS, ETC.

45 45 EXAMPLES OF SOME MATHEMATICAL FUNCTIONS result = sqrt (16) * 10 RETURNS THE VALUE 40.0. THE SQUARE ROOT OF 16 IS CALCULATED, THEN THE VALUE IS MULTIPLIED BY 10. floor (3.8) = 3 RETURNS THE LARGEST INTEGER NOT GREATER THAN THE PARAMETER. fabs (-3.8) = 3.8 RETURNS THE ABSOLUTE VALUE.


Download ppt "1 MODULAR DESIGN AND ABSTRACTION. 2 SPECIFYING THE DETAILS OF A PROBLEM INTO A RELATED SET OF SMALLER PROBLEMS."

Similar presentations


Ads by Google