2 Project 1 Exercise # 8, page 57 Bohl & Rynn’s textbook Due date: February 3rd, 2003
3 Learning ObjectivesUnderstand the relation between Algorithm and Pseudocode or program flowchartDraw flowchartsWrite pseudocodes
4 Recall form Class 2 & 3 Use of tools by analyst/programmer in SDLC Design/Programming tools used for:Specifying problem-solving logicSTARTREAD EMPLOYEE DATACOMPUTE GROSS PAYCOMPUTE DEDUCTIONS COMPUTE NET PAYWRITE EMPLOYEE PAYCHECKSTOPExamplePseudocode:English-language statements that describe the processing steps of a program in paragraph form.
5 Algorithm ? Step-by-step procedure to solve a problem An algorithm can be expressed using:A System FlowchartA Program FlowchartA Pseudocode, etc.Any algorithm must meet the following requirements:Use operations from only a given set of basic operations (+,-,/,*,<,>…)Produce solution in a finite number of such operations
6 Example of algorithm (program flowchart) Algorithm for determining salespersons’ payIREGSALES = Regular sales amountSALESALES = Reduced sales amountREGCOM = Regular commission (6%)SALESCOM = Sales commission (3%)PAY = Total pay duePO
7 Algorithm vocabulary SYMBOLS NAME USE START STOP Terminal interrupt symbolsTerminal point (start, stop, or break)STOPReading data from an input medium or writing data to an output mediumInput/Output symbolProcess symbolProcessing input data
8 Algorithm vocabulary SYMBOLS NAME USE Flowline symbol Sequence of operations and direction of data flowDecision symbolDecision-making operationsPredefined-process symbolOperations specified elsewhere (not in the current algorithm)
9 Algorithm vocabulary SYMBOLS NAME USE Connector symbol Exit to, or entry from, another part of the FlowchartPreparation symbolControl operations: Set limit on loop-control variables, Initialize accumulators, etc.
10 Algorithm vocabulary Item Meaning Example Comment Variables 1) Variables names are place-holders for values2) Variable names are chosen by programmer3) Names should be descriptiveData items whose values may change, or vary during processingVariablesREADREGSALES,SALESALESUsing Variables instead of their specific values gives a program the capacity to perform processing on any set of input data.Data independenceREAD$1000,$3000Assignment statementStatement that assign a value (calculated or not) to a variableThe computer will perform the calculation first, and then, assign the result to REGCOMREGCOM =REGSALES*.06ConstantA value that doesn’t change.06
11 IFTHENELSE / DECISION SYMBOL General formAn Example:READAMOUNTIsConditionTrue ?AMOUNT> 200 ?NOYESNOYESProcessing 1DISCOUNT =AMOUNT * .10Processing 3SUBBIL=AMOUNTCould be many processings,…Processing 2SUBBIL =AMOUNT –DISCOUNTCould be many processings,…::
12 Exercise 1: Tuition bill Problem Write the program flowchart to prepare a tuition bill. The input will contain the student name, Social Security Number, and total number of credits for which the student has enrolled. The bill will contain the student name, Social Security Number, and computed tuition. Total credits of 10 or more indicate that the student is full-time. Full-time students pay a flat rate of $1000 for tuition. Total credits of less than 10 indicate that the student is part-time. Part-time students pay $100 per credit for tuition.Exercise 11 (Chapter 3)
13 Exercise 1’s solution: (Part 1: System Flowchart) (To be done in class)
14 Exercise 1 solution: (Part 2: Program Flowchart) (To be done in class)
15 Project 1Write a program flowchart and corresponding pseudocode to solve the following problem: Assume the input for a student is name, student number, and three grades. Output the student name and an S (Success) if the average of the three grades is 65 or more. Otherwise (else), output the student’s name, a U (Unsuccess), and the number of additional points needed for an S.
16 Exercise 2: Billing problem Exercise 11 (Chapter 2)Look at the program flowchart on the next slide, and answer the following questions:For what variables are values read as input ?What variables’ values are output ?What constants are used ?Simulate the execution of this algorithm, assuming the values shown below are read as input for the first four variables named.NAMEMrs. A. B. WallaceITEMBlouseQTY3PRICE49.99AMTODDISCOUNTSUBBILLTAXESBILL
19 Pseudocode for Tuition problem (see Slide12) Other common way to represent algorithmsSimilar to programming languages like Visual Basic butDoes not require strict rules as programming languagesPseudocode for Tuition problem (see Slide12)StartRead NAME, SSN, CREDITSIF CREDITS >= 10 THENTUITION = 1000ELSETUITION = 100 * CREDITSENDIFWrite NAME, SSN, TUITIONStopUPPERCASE for variable namesUPPERCASE for Reserved wordsTitlecaseLowercase for non- reserved words
20 Pseudocode for Tuition problem (see Slide12) StartRead NAME, SSN, CREDITSIF CREDITS >= 10 THENTUITION = 1000ELSETUITION = 100 * CREDITSENDIFWrite NAME, SSN, TUITIONStopUse of indentation (i.e. clauses are indented a few positions) for clarity
21 Exercise 3: Weekly Payroll problem Exercise 19 (Chapter 4)Construct a program flowchart and corresponding pseudocode to solve the following problem: ABC company needs a weekly payroll report for its salespeople. Input to the program is a salesperson’s name, number, and weekly sales. Output is the salesperson’s name, number, and pay. Each salesperson receives a base pay of $300 as well as a 10% commission on his or her total sales up to and including $500. Any sales over $500 merit a 15% commission for the employee. (For example, if sales = $600, then pay = $300 + $50 [or .10 * 500] + $15 [.15 * 100] = $350). Use a DOWHILE loop and a counter to compute the weekly payroll for exactly 20 employees.
23 Exercise 3 solution: (Part 2: Program Flowchart) (To be done in class)
24 Exercise 3 solution: (Part 3: Pseudocode) (To be done in class)
25 Algorithm Development Process Design verification, in order to:Prevent errors from occurringDetect and correct errors soonSelection of Review Team members for:Informal design review orStructured design reviewStructured Design Review:Selection of representative values of input (data normally expected, extreme values, invalid data)Following designed algorithms to determine what output are produce.
26 Summary Questions1. Distinguish between Algorithm on the one hand, and Program flowchart and Pseudocode on the other hand. Discuss the relations between the two.2. (a) List the main keywords used in Pseudocodes. (b) What control structures they represent.You should know how to design program logic using Program Flowcharts & Pseudocodes (Review Exercises 1,2,3 above & Exercise 15 Ch.4 and answer on page 339)