CHAPTER 2 PROBLEM SOLVING

Slides:



Advertisements
Similar presentations
Chapter 2: Problem Solving
Advertisements

CHAPTER 1: AN OVERVIEW OF COMPUTERS AND LOGIC. Objectives 2  Understand computer components and operations  Describe the steps involved in the programming.
Chapter 1 - An Introduction to Computers and Problem Solving
Chapter 2 - Problem Solving
Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
Reference :Understanding Computers
Chapter 2 - Problem Solving
Computer Programming Rattapoom Waranusast Department of Electrical and Computer Engineering Faculty of Engineering, Naresuan University.
Programming Logic and Design, Third Edition Comprehensive
ITEC113 Algorithms and Programming Techniques
CHAPTER 2 PROBLEM SOLVING
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
Chapter 2: Algorithm Discovery and Design
Program Design and Development
Pseudocode and Algorithms
Chapter 2: Algorithm Discovery and Design
Programming Fundamentals (750113) Ch1. Problem Solving
Programming Logic and Design, Introductory, Fourth Edition1 Understanding Computer Components and Operations (continued) A program must be free of syntax.
Chapter 1 Program Design
Chapter 2: Algorithm Discovery and Design
Chapter 2: Algorithm Discovery and Design
Chapter 3 Planning Your Solution
PRE-PROGRAMMING PHASE
ALGORITHMS AND FLOW CHARTS 1 Adapted from the slides Prepared by Department of Preparatory year Prepared by: lec. Ghader Kurdi.
ALGORITHMS AND FLOWCHARTS
PROGRAMMING, ALGORITHMS AND FLOWCHARTS
INTRODUCTION TO PROGRAMMING STRUCTURE Chapter 4 1.
Simple Program Design Third Edition A Step-by-Step Approach
สาขาวิชาเทคโนโลยี สารสนเทศ คณะเทคโนโลยีสารสนเทศ และการสื่อสาร.
Chapter 2: Algorithm Discovery and Design Invitation to Computer Science, C++ Version, Third Edition.
Invitation to Computer Science, Java Version, Second Edition.
PROGRAMMING LANGUAGES Prof. Lani Cantonjos. PROGRAM - set of step-by-step instructions that tells or directs the computer what to do. PROGRAMMING LANGUAGE.
TMF1013 : Introduction To Computing Lecture 1 : Fundamental of Computer ComputerFoudamentals.
CHAPTER 2 PROBLEM SOLVING
1 Introduction to Flowcharting. 2 Writing a program Defining the problem –Write down what the program will do Planning –Write down the steps, draw a flowchart.
Programming Concepts Chapter 3.
Problem Solving with Decisions
Describe the Program Development Cycle. Program Development Cycle The program development cycle is a series of steps programmers use to build computer.
Extended Prelude to Programming Concepts & Design, 3/e by Stewart Venit and Elizabeth Drake Chapter 2: Flowcharts.
© 2011 Pearson Addison-Wesley. All rights reserved. Addison Wesley is an imprint of Stewart Venit ~ Elizabeth Drake Developing a Program.
Problem Solving Techniques. Compiler n Is a computer program whose purpose is to take a description of a desired program coded in a programming language.
C++ Basics C++ is a high-level, general purpose, object-oriented programming language.
PROBLEM SOLVING WITH LOOPS Chapter 7. Concept of Repetition Structure Logic It is a computer task, that is used for Repeating a series of instructions.
ITEC113 Algorithms and Programming Techniques
1 Program Planning and Design Important stages before actual program is written.
COIT29222 Structured Programming 1 COIT29222-Structured Programming Lecture Week 02  Reading: Textbook(4 th Ed.), Chapter 2 Textbook (6 th Ed.), Chapters.
Chapter 7 Problem Solving with Loops
INTRODUCTION TO PROGRAMMING. Program Development Life Cycle The program development life cycle is a model that describes the stages involved in a program.
Chapter 2 - VB 2005 by Schneider- modified by S. Jane '081 Chapter 2 - Problem Solving 2.1 Program Development Cycle 2.2 Programming Tools.
ALGORITHMS AND FLOWCHARTS. Why Algorithm is needed? 2 Computer Program ? Set of instructions to perform some specific task Is Program itself a Software.
Chapter 2: Algorithm Discovery and Design Invitation to Computer Science.
CSCI 161 Lecture 3 Martin van Bommel. Operating System Program that acts as interface to other software and the underlying hardware Operating System Utilities.
Lecture #1: Introduction to Algorithms and Problem Solving Dr. Hmood Al-Dossari King Saud University Department of Computer Science 6 February 2012.
PROGRAMMING FUNDAMENTALS INTRODUCTION TO PROGRAMMING. Computer Programming Concepts. Flowchart. Structured Programming Design. Implementation Documentation.
An Introduction to Programming with C++ Sixth Edition Chapter 5 The Selection Structure.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
Victoria Ibarra Mat:  Generally, Computer hardware is divided into four main functional areas. These are:  Input devices Input devices  Output.
 Problem Analysis  Coding  Debugging  Testing.
Computer Programming 12 Lesson 4 - Computer Programming Structure By Dan Lunney.
ALGORITHMS AND FLOWCHARTS
Algorithms and Flowcharts
The Selection Structure
Lecture 2 Introduction to Programming
ALGORITHMS AND FLOWCHARTS
Unit# 9: Computer Program Development
ALGORITHMS AND FLOWCHARTS
CSC128 FUNDAMENTALS OF COMPUTER PROBLEM SOLVING
Understanding Problems and how to Solve them by using Computers
Basic Concepts of Algorithm
Presentation transcript:

CHAPTER 2 PROBLEM SOLVING

This chapter will cover the following topics: Problem Solving Concepts for the Computer Pre-Programming Phase Programming Or Implementation Phase

What Problem Can Be Solved By Computer When the solution can be produced by a set of step-by-step procedures or actions. This step-by-step action is called an algorithm. The algorithm will process some inputs and produced output. Solving problem by computer undergo two phases: Phase 1: Organizing the problem or pre-programming phase. Phase 2: Programming phase.

PRE-PROGRAMMING PHASE This phase requires five steps: Analyzing the problem - PAC Developing the Hierarchy Input Process Output (HIPO) chart or Interactivity Chart (IC). Developing the Input-Process-Output (IPO) Chart. Drawing the Program flowcharts. Writing the algorithms.

PRE-PROGRAMMING PHASE Analyzing The Problem Understand and analyze the problem to determine whether it can be solved by a computer. Analyze the requirements of the problem. Identify the following: Data requirement. Processing requirement or procedures that will be needed to solve the problem. The output.

PRE-PROGRAMMING PHASE All These requirements can be presented in a Problem Analysis Chart (PAC) Data Processing Output given in the problem or provided by the user List of processing required or procedures. Output requirement.

PRE-PROGRAMMING PHASE Example: Payroll Problem Calculate the salary of an employee who works by hourly basis. The formula to be used is Salary = Hour works * Pay rate Data Processing Output Hours work, Pay rate Salary = Hours work * payrate Salary

Problem 1 Write a Problem Analysis Chart (PAC) to convert the distance in miles to kilometers where 1.609 kilometers per mile. Data Processing Output Distance in miles Kilometers = 1.609 x miles Distance in kilometers

Problem 2 Write a Problem Analysis Chart (PAC) to find an area of a circle where area = pi * radius * radius Data Processing Output radius area = 3.14 x radius x radius area

Problem 3 Data Processing Output depth celsius = 10 x (depth) + 20 Write a Problem Analysis Chart (PAC) to compute and display the temperature inside the earth in Celsius and Fahrenheit. The relevant formulas are Celsius = 10 x (depth) + 20 Fahrenheit = 1.8 x (Celsius) + 32 Data Processing Output depth celsius = 10 x (depth) + 20 fahrenheit = 1.8 x (celsius) + 32 Display celsius, Display fahrenheit

Problem 4 Write a problem analysis chart (PAC) that asks a user to enter the distance of a trip in miles, the miles per gallon estimate for the user’s car, and the average cost of a gallon of gas. Calculate and display the number of gallons of gas needed and the estimated cost of the trip.

Data Processing Output distance, miles per gallon, cost per gallon gas needed = distance / miles per gallon. estimated cost = cost per gallon x gas needed Display gas needed Display estimated cost

Extra Problem Write a problem analysis chart (PAC) that asks a user to enter a unit price and quantity of the product sold . Calculate and display the total sale

PRE-PROGRAMMING PHASE Developing the Hierarchy Input Process Output (HIPO) or Interactivity Chart (IC) The problem is normally big and complex. Thus, requires big program. Thus, the processing can be divided into subtasks called modules. Each module accomplishes one function. These modules are connected to each other to show the interaction of processing between the modules.

PRE-PROGRAMMING PHASE Main/control module controls the flow all other modules. The IC is developed using top-down-method: top to down left to right order (also refer to order of processing). Modules are numbered, marked for duplication, repetition or decision.

PRE-PROGRAMMING PHASE The interaction will form a hierarchy, called Hierarchy Input Process Output Chart (HIPO) or Interactivity Chart (IC). Programming which use this approach (problem is divided into subtasks) is called Structured Programming. Main Module Module 3 Module 2 Module 1 Module 5 Module 4 Module 6

PRE-PROGRAMMING PHASE PAYROLL 0000 READ 1000 PRINT 3000 CALCULATE 2000

PRE-PROGRAMMING PHASE Example 2.2: Extended Payroll Problem You are required to write a program to calculate both the gross pay and the net pay of every employee of your company. To determine the gross pay, you have to multiply the accumulated total hours worked by the employee, by the appropriate pay rate. The program should print the cheque that tells the total net pay. The net pay is calculated by subtracting the gross pay with any deductions that may be incurred by the employee.

PRE-PROGRAMMING PHASE Accumulate Hourly Worked 1100 Payroll 0000 Calculate Gross Pay 1000 Determine Pay rate 1200 Write Cheque 3000 Net Pay 2000 Deductions 2100

Problem 1 Write a Hierarchy Input Process Output (HIPO) to convert the distance in miles to kilometers where 1.609 kilometers per mile.

Problem 2 Write a Hierarchy Input Process Output (HIPO) to find an area of a circle where area = pi * radius * radius

Problem 3 Write a Hierarchy Input Process Output (HIPO) to compute and display the temperature inside the earth in Celsius and Fahrenheit. The relevant formulas are Celsius = 10 x (depth) + 20 Fahrenheit = 1.8 x (Celsius) + 32

Problem 4 Write a Hierarchy Input Process Output (HIPO) that asks a user to enter the distance of a trip in miles, the miles per gallon estimate for the user’s car, and the average cost of a gallon of gas. Calculate and display the number of gallons of gas needed and the estimated cost of the trip.

Extra Problem Extended Extra Problem Find the total sale if the customer is given 20% discount on the sale items

PRE-PROGRAMMING PHASE Developing the Input Process Output (IPO) Chart Extends and organizes the information in the Problem Analysis Chart. It shows in more detail what data items are input, what are the processing or modules on that data, and what will be the result or output. It combines information from PAC and HIPO Chart.

PRE-PROGRAMMING PHASE IPO Chart Input Processing Module Output All input data from PAC All processing steps from HIPO / IC Module reference from the IC All output requirements from PAC

PRE-PROGRAMMING PHASE IPO for Extended Payroll Problem Input Processing Module Output -Hours Worked -Pay Rate -Deduction -Enter Hourly Worked -Enter Pay Rate -Calculate Gross Pay -Enter Deductions -Calculate Net Pay -Print Cheque -End 1100 1200 1000 2100 2000 3000 0000 -Net pay

Problem 1 Write a Input Process Output (IPO) to convert the distance in miles to kilometers where 1.609 kilometers per mile. Input Processing Module Output -Distance in Miles -Enter distance -Kilometers = 1.609 x distance -Display kilometers 1000 2000 3000 -Distance in kilometers

Problem 2 Write a Input Process Output (IPO) to find an area of a circle where area = pi * radius * radius Input Processing Module Output - radius - Enter radius - area = 3.14 x radius x radius Display area end 1000 2000 3000 0000 - Area of a circle

Problem 3 Write an Input Process Output (IPO) to compute and display the temperature inside the earth in Celsius and Fahrenheit. The relevant formulas are Celsius = 10 x (depth) + 20 Fahrenheit = 1.8 x (Celsius) + 32

Problem 4 Write an Input Process Output (IPO) that asks a user to enter the distance of a trip in miles, the miles per gallon estimate for the user’s car, and the average cost of a gallon of gas. Calculate and display the number of gallons of gas needed and the estimated cost of the trip.

Input Processing Module Output Distance in miles Miles per gallon Cost gas per gallon Enter distance Enter miles per gallon Calculate total gas needed Enter cost gas per gallon Calculate estimated cost Display total gas and estimated cost End 1100 1200 1000 2100 2000 3000 0000 Total gas needed Estimated cost

Extra Problem Extended Extra Problem Write a IPO chart that asks a user to enter a unit price and quantity of the product sold . Calculate and display the total sale Find the total sale if the customer is given 20% discount on the sale items.

PRE-PROGRAMMING PHASE Drawing the Program Flowcharts Flowchart is the graphic representations of the individual steps or actions to implement a particular module. The flowchart can be likened to the blueprint of a building. An architect draws a blueprint before beginning construction on a building, so the programmer draws a flowchart before writing a program. Flowchart is independent of any programming language.

PRE-PROGRAMMING PHASE Flowchart is the logical design of a program. It is the basis from which the actual program code is developed. Flowchart serves as documentation for computer program. The flowchart must be drawn according to definite rules and utilizes standard symbols adopted internationally. The International Organization for Standardization (IOS) was the symbols shown below (You can draw the symbols using ready-made flowcharting template):

PRE-PROGRAMMING PHASE Symbol Function Show the direction of data flow or logical solution. Indicate the beginning and ending of a set of actions or instructions (logical flow) of a module or program. Indicate a process, such as calculations, opening and closing files.

PRE-PROGRAMMING PHASE Indicate input to the program and output from the program. Use for making decision. Either True or False based on certain condition. Use for doing a repetition or looping of certain steps. Connection of flowchart on the same page. Connection of flowchart from page to page.

PRE-PROGRAMMING PHASE Example 2.3 : Sale Problem Draw a flowchart for a problem that to read two numbers. The first number represents the unit price of a product and the second number represents the quantity of the product sold. Calculate and print the total sale. Solution: Stepwise Analysis of the Sale Problem Start of processing Read the unit price Read the quantity Calculate total sale Print total sale Stop the processing

PRE-PROGRAMMING PHASE START READ UNIT PRICE QUANTITY A TOTAL SALE = UNITPRICE ´ QUANTITY PRINT TOTALSALE STOP

PRE-PROGRAMMING PHASE Finding Average Problem Read a sequence of number, find the average of the number and print the average. Solution: Stepwise Analysis of Average Problem Start the processing Read a number Add the number Repeat reading until last data Calculate the average Print the average Stop the processing

PRE-PROGRAMMING PHASE START READ NUMBER ACCUMULATE TOTAL CALCULATE AVERAGE PRINT STOP Repetition until end of data

PRE-PROGRAMMING PHASE START X COUNTER = Æ AVERAGE = TOTAL COUNTER READ NUMBER PRINT AVERAGE TOTAL = TOTAL + NUMBER COUNTER = COUNTER + 1 STOP END OF DATA X

COUNTER = COUNTER + 1 B START AVERAGE = TOTAL COUNTER COUNTER = Æ PRINT AVERAGE TOTAL = Æ A STOP READ NUMBER NUMBER = -999999 B COUNTER = COUNTER + 1 TOTAL = TOTAL + NUMBER A

PRE-PROGRAMMING PHASE Writing the Algorithm (Pseudocode) Pseudocode means an imitation computer code. It is used in place of symbols or a flowchart to describe the logic of a program. Thus, it is a set of instructions (descriptive form) to describe the logic of a program. Pseudocode is close to the actual programming language. Using the Pseudocode, the programmer can start to write the actual code.

START READ PRICE QUANTITY SALE = PRICE ´ PRINT SALE STOP Algorithm: Sale = price x quantity Print Sale End

Example: Flowchart & Algorithm

Order of Execution of Instructions : Payroll System

Structuring a Program Develop efficient computer solution to problems: Use Modules Use four logic structures Sequential structure Executes instructions one after another in a sequence. Decision structure Branches to execute one of two possible sets of instructions. Loop structure Executes set of instruction many times. Case structure Executes one set of instructions out of several sets. Eliminate rewriting of identical process by using modules. Use techniques to improve readability including four logic structure, proper naming of variables, internal documentation and proper indentation.

Sequential Logic Structure

The Decision Logic Structure Implements using the IF/THEN/ELSE instruction. Tells the computer that IF a condition is true, THEN execute a set of instructions, or ELSE execute another set of instructions  ELSE part is optional, as there is not always a set of instructions if the conditions are false. Algorithm: IF <condition(s)> THEN <TRUE instruction(s)> ELSE <FALSE instruction(s)

Decision Logic Structure

Examples of conditional expressions A < B (A and B are the same data type – either numeric, character, or string) X + 5 >= Z (X and Z are numeric data) E < 5 or F > 10 (E and F are numeric data) DATAOK (DATAOK – logical datum)

Example Assume your are calculating pay at an hourly rate, and overtime pay(over 40 hours) at 1.5 times the hourly rate. IF the hours are greater than 40, THEN the pay is calculated for overtime, or ELSE the pay is calculated in the usual way.

Example Decision Structure

NESTED IF/THEN/ELSE INSTRUCTIONS Multiple decisions. Instructions are sets of instruction in which each level of a decision is embedded in a level before it.

NESTED IF/THEN/ELSE INSTRUCTIONS

EXERCISE A hotel has a pricing policy as follows: 2 people : RM85 Additional people : RM6 per person If the customer is staying on company business, there is a 20% discount. If the customer is over 60 years of age, there is a 15% discount. A customer does not receive both discount. Given the above data, print the cost of the room

The Loop Logic Structure Repeat structure To solve the problem that doing the same task over and over for different sets of data Types of loop: WHILE loop Do..WHILE loop Automatic-Counter Loop

Loop Logic Structure

WHILE loop

WHILE loop Do the loop body if the condition is true. Example: Get the sum of 1, 2, 3, …, 100. Algorithm: Set the number = 1 Set the total = 0 While (number <= 100) total = total + number number = number + 1 End While Display total

WHILE loop Start Set number = 1 Set total = 0 No number <= 100 Yes total + number number = number + 1 Display total End No Yes

DO…WHILE Loop The body of the loop will process first before check the condition. Example: Get the sum of 1, 2, 3, …100. Algorithm: Set the number = 1 Set the total = 0 Do total = total + number number = number + 1 While (number <= 100) Display total

DO…WHILE Loop Start Set number = 1 Set total = 0 total = No total + number number = number + 1 Display total End No Yes

Automatic Counter Loop Use variable as a counter that starts counting at a specified number and increments the variable each time the loop is processed. The beginning value, the ending value and the increment value may be constant. They should not be changed during the processing of the instruction in the loop.

Automatic-Counter Loop

Automatic-Counter Loop

NESTED LOOP

NESTED LOOP

EXAMPLE OF NESTED LOOP An algorithm to find total marks of test1, test2 and final and also average of the marks for each student in class SAK3100 Group 2. LOOP: J = 1 TO 35 SET JUMLAH = 0 LOOP: K= 1 TO 3 SET TEST = 0 PRINT “MASUKKAN MARKAH TEST”, K READ TEST JUMLAH = JUMLAH + TEST LOOP-END: K PURATA = JUMLAH / 3 PRINT “MARKAH PELAJAR KE “, J, “ = “, JUMLAH, “PURATA MARKAH = “, PURATA LOOP-END: J PRINT “ITU JUMLAH DAN PURATA MARKAH SEMUA PELAJAR DALAM KELAS SAK3100 K2” END

The Case Logic Structure Made up of several or many sets of instructions, only one of which will be selected by the user and executed by the computer Algorithm: CASE OF VARIABLE = constant1: actions for VARIABLE = constant1 = constants2: actions for VARIABLE = constant2 … OTHERWISE: Actions for VARIABLE = anything else END-OF-CASE

Case Logic Structure

Case Logic Structure Example: A company has four different medical plans. The programmer has given each plan a code corresponding to the beginning initial of the company: Plan 1 = F, Plan 2 = B, Plan 3 = K, Plan 4 = E. The company pays for all of Plan 1. The individual has to pay for part of the others. The payroll deduction for Plan 2 = 4.65, for Plan 3 = 7.85, and for Plan 4 = 5.50. Any other codes are considered in error. Write the algorithm and draw the flowchart for a module to determine the payroll deduction.

Example of Case Logic Structure

Case Logic Structure A module calculate an employee’s pay as shown below. It has pay-type code and the pay rate to calculate the employee’s pay. H = hourly pay = rate * hours P = Piece work pay = rate * number of pieces C = commission pay = commission * sales S = salary pay = salary

Exercises

Programming Or Implementation Phase Transcribing the logical flow of solution steps in flowchart or algorithm to program code and run the program code on a computer using a programming language. Programming phase takes 5 stages: Coding. Compiling. Debugging. Run or Testing. Documentation and maintenance.

Programming Or Implementation Phase Once the program is coded using one of the programming language, it will be compiled to ensure there is no syntax error. Syntax free program will then be executed to produce output and subsequently maintained and documented for later reference.

DOCUMENTATION OR MAINTENANCE CODING COMPILE THE PROGRAM MAKE CORRECTION NO SYNTAX ERROR EXECUTE OR RUN DOCUMENTATION OR MAINTENANCE

Programming Or Implementation Phase Coding Translation or conversion of each operation in the flowchart or algorithm (pseudocode) into a computer-understandable language. Coding should follow the format of the chosen programming language. Many types or levels of computer programming language such as: Machine language Symbolic language or assembly language Procedure-oriented language The first two languages are also called low-level programming language. While the last one is called high-level programming language.

Programming Or Implementation Phase Machine Language Machine language uses number to represent letters, alphabets or special character that are used to represent bit pattern. Example: an instruction to add regular pay to overtime pay, yielding total pay might be written in machine language as follows: 16 128 64 8 in which 16 is a code that mean ADD to the computer. The 128 and 64 are addresses or location at which regular pay and overtime pay are stored. The 8 represents the storage location for the total pay.

Programming Or Implementation Phase Sometimes, bit pattern that represent letters and alphabets are used for coding. Example: Instead of: 16 128 64 8 Use: 10000 10000000 1000000 1000 This representation is ideal for a computer but difficult and tedious to the programmer to write a lengthy program.

Programming Or Implementation Phase Symbolic Language or Assembly Language A symbolic language or assembly language is closely related to machine language in that, one symbolic instruction will translate into one machine-language instruction. Contain fewer symbols, and these symbols may be letters and special characters, as well as numbers. As example, a machine language instruction 16 128 64 8 can be rewritten in assembly language as ADD LOC1 LOC2 LOC3 Which means, add content of location LOC1 to location LOC2 and put the result in location LOC3.

Programming Or Implementation Phase Procedure – Oriented Language Programmer has to know the computer hardware before he can write program in machine and assembly language. It means the language is machine dependent. Using procedure – oriented language, the programmer can run the program in any computer hardware. A special program called a compiler will translate program written using procedure – oriented language to machine language.

Programming Or Implementation Phase Some example of the language: COBOL (COmmon Business Oriented Language) FORTRAN (FORmula TRANslation) Pascal C C++ BASIC, etc. These languages are also called high-level programming language

Programming Or Implementation Phase Computer Language Instruction Format Machine language Assembly language BASIC FORTRAN COBOL Pascal C 16 128 64 8 ADD LOC1 LOC2 LOC3 LET T = R + 0 TOTAL = RPAY + OPAY ADD RPAY, OPAY GIVING TOTAL TOTAL : = RPAY + OPAY

Programming Or Implementation Phase Compiling and Debugging Compiling is a process of a compiler translates a program written in a particular high–level programming language into a form that the computer can execute. The compiler will check the program code known also as source code so that any part of the source code that does not follow the format or any other language requirements will be flagged as syntax error. This syntax error in also called bug, when error is found, the programmer will debug or correct the error and then recompile the source code again. The debugging process is continued until there is no more error in the program.

Programming Or Implementation Phase Testing The program code that contains no more error is called executable program. It is ready to be tested. When it is tested, the data is given and the result is verified so that it should produced output as intended. Though the program is error free, sometimes it does not produced the right result. In this case the program faces logic error. Incorrect sequence of instruction is an example that causes logic error.

Programming Or Implementation Phase Documentation and Maintenance When the program is thoroughly tested for a substantial period of time and it is consistently producing the right output, it can be documented. Documentation is important for future reference. Other programmer may take over the operation of the program and the best way to understand a program is by studying the documentation. Trying to understand the logic of the program by looking at the source code is not a good approach. Studying the documentation is necessary when the program is subjected to enhancement or modification. Documentation is also necessary for management use as well as audit purposes.

Cohesion and Coupling Especially important concepts to the modern programmer, who in all probability will be working with many other programmers on the same problem. Cohesion allows a programmer to write a module of a large program and test it independently. Coupling allows all programmers to use necessary variables without losing the cohesion.

Cohesion Cohesion relates to the functional independence of the module and to the performance of a single task within the module. The objective is to separate the problem into parts. Each module is independent of each other module, with single entrance and a single exit, such as entering data, printing data, initialising data.

Coupling Coupling allows modules to be connected by an interface, which enables the programmer to transfer data from one module to another. Three coupling techniques are: Parameter Modules names Global variables. Allows for communication between modules. Coupling allows all programmers to use necessary variable without losing the cohesion of the module.

Cohesion and Coupling Module 1 Module 2 Module 3 Module 4 Cohesion is the ability for each module to be independent of other modules. Coupling allows modules to share data

The Modules and The Functions The programmer breaks the problem into modules, each with specific function. It is much easier to write and test many small modules than a single large program. Modules are arranged according to processing order in interactivity chart.

The rules for designing modules Each module is an entity and has one entrance and one exit. Each module has a single function such as printing, calculating or entering data. Each module is short enough to be easily read and modified. The length of module governed by its function and the number of instruction to be executed. A module is developed to control the order of processing.

Types of modules Control module Show the overall flow of data through the program. All other modules are subordinate to it. Init module Also called the preparation module, process instruction that are executed only once – at the beginning. Process Data module May be processed only once, or may be part of a loop. Calculation Modules Do arithmetic calculations.

Types of modules Wrap-up module Execute only once at the end. Print Modules Print output lines. Read and Data validation modules Read or input data, validate data Validation modules separate from read modules Wrap-up module Execute only once at the end. Include closing file and printing totals. Event module Such as mouse down, mouse up, key entry.

Local and Global Variables The concept of local and global variables to allow cohesion and coupling to occur. Local variables defined within a module used only by the module itself Global variables defined outside of the individual modules can be used by all modules

Scope of Local and Global Variables Variables: A, B, C CONTROL MODULE Variables: X, Y, Z MODULE1 Variables: D, E, F MODULE2 Variables: G, H, I Global to all modules Local to CONTROL MODULE Local to MODULE1 Local to MODULE2

Parameters Parameters are local variables that are passed or sent from one module to another. Parameters are another way of facilitating coupling that allows the communication of data between modules. Eg: Read(A, B, C) – A, B & C are parameters There are two types of parameters: Actual Parameter list of parameters that follow the module name being processed in the calling module Formal Parameter list of parameters that follow the module name at the beginning of the module.

Parameter Terminology

Beginning Problem-Solving Concepts for the Computer Data used in processing Constant is a value that never changes during the processing of all instructions in a solution Constant is given a location in memory and a name. The value of a variable may change during processing

Rules for naming and using variables: Name according to what it represented Do not use spaces in a variable name Do not a dash Consistent in the use of variable names Consistent when using upper and lowercase characters

Data Types Data are unorganized facts Goes as input and is processed to produce output, information Computers must be told the data type of each variable and constant 3 common types: numeric, character, and logical Other data types: date data type and user- defined data types

Rules of Data Types Programmer designates the data type during the programming process Data types cannot be mixed Each data types used data set Calculations involved only numeric data type.

Functions Small sets of instructions that perform specific task and return values Used as part of instruction in a solution Divided into classes: Mathematical functions – used in science and business String functions – used to manipulate string variables Conversion functions – used to convert data from one data type to another Statistical functions – used to calculate things such as maximum value Utility functions – access information outside the program, i.e. date and time function Functions use data, called parameters. Functions normally do not alter parameters Functionname(parameters list)

Operators They are data connectors within expressions and equations. They tell computer how to process the data Operands are data the operator connects and processes Resultant is the answer Data type of the operand and the resultant depends on the operator: Mathematical operators Relational operators Logical operators Operators have a hierarchy or precedence

Expressions and Equations Expression processes data, the operands, through the use of operators Equation stores the resultant of an expression in a memory location in the computer through the equal (=) sign. Equations are often called assignment statements