Introduction

Download Report

Transcript Introduction

Problem Solving with the Sequential Logic Structure Lesson 5

McManus COP1006 1

Overview

• Algorithm Instructions • Sequential Logic Structure • Solution Development McManus COP1006 2

Flowchart Symbols

• Terminal – Starts, Stops, Ends Terminal • Input/Output – Input data, Output information • Assign – Apply values to variables Assign • Process – Execute instructions Input/ Output Process McManus COP1006 3

Sequential Logic Structure

• The oldest logic structure • The most used logic structure • The easiest structure to understand • Is one statement after another statement, after another statement, after another statement, etc.

McManus COP1006 4

Examples

• Enter Name • Enter Address • Enter City • Enter State • Enter Zip • Enter Hours • Enter Wage • Pay = Hours * Wage McManus COP1006 • Print Name • Print Address • Print City • Print State • Print Zip • Print Pay 5

Let’s work a problem…

McManus COP1006 6

The Problem…

• Sadie invests $5,000 in a savings account that yields 5% (.05) annual interest.

• Assuming that all interest is left on deposit along with the original deposited amount – What will be the equation to calculate the amount that will be in the account at the end of 10 years?

– How much will the interest be at the end of the 10 years?

McManus COP1006 7

The Solution

• First: Research banking algorithms – We wind up with Two Equations: • First…the Tough one – Amount = Principal * ((1 + Interest Rate) ^ Time) » Principal – amount to be invested » Interest Rate – yearly percentage rate » Time – investment period in years » Amount – principal + interest earned • Next…the Easy one – Interest = Amount – Principal » Interest – the actual amount of Interest McManus COP1006 8

Structure Chart of Solution

Calculate Savings Get input Calculate Print McManus Calculate Amount Calculate Interest Print Amount Print Interest COP1006 9

McManus

Pseudocode Solution

• Get Principal Amount • Get Yearly Interest Rate • Get Time Intervals • Calculate Amount of Principal + Interest – Amount = Principal * ((1 + Rate) ^ Time) • Calculate Amount of Interest – Interest = Amount - Principal • Print Amount of Ending Principal + Interest • Print Amount of Interest COP1006 10

Coding the Problem

In Visual Basic Note: Up to this point it didn’t matter what language we use… COP1006 11 McManus

Data Dictionary

Variable Name Principal Data Type Decimal InterestRate Time Amount Interest Double Short Single Single Module GetInput Calculate GetInput Calculate GetInput Calculate Calculate PrintResult Calculate PrintResult McManus COP1006 Defined Domain Scope 0 < n < 1 million Global 0 < n < 1 to 14+ digits 0 < n < 32,767 Global Global 0 < n < 1 million Global 0 < n < 1 million Global 12

VB Solution – Declare Variables

' Input Values by User Dim Principal As Decimal Dim InterestRate As Double Dim Time As Short Internal Documentation taking the form of Comments ' Output Values Dim Amount As Single Dim Interest As Single McManus COP1006 13

VB Solution – Get Input

Private Sub cmdGetInput_Click() Principal = CDec(InputBox("In Dollar amount " & _ “ (5000)", "Please Enter Principal Amount")) InterestRate = CDbl(InputBox(" Ex. 5% " & _ “ would be entered as .05", "Please " & _ “ Enter Annual Interest Rate")) Time = CShort(InputBox("An Integer " & _ “ with no decimals", "Please Enter Length " & _ “ of Time in Years")) End Sub McManus COP1006 14

VB Solution – Calculate Result

Private Sub cmdCalculate_Click() ' Calculates Principal + Interest over time Amount = Principal * ((1 + InterestRate) ^ Time) ' Calculates amount of total Interest at end of ' time period Interest = Amount - Principal End Sub McManus COP1006 15

VB Solution – Produce Output

Private Sub cmdPrintResult_Click() lstOutput.Items.Add(" The Amount of Principal + " & _ “Interest Paid on") lstOutput.Items.Add(" the Principal Amount of " & _ VB6.Format(Principal, "Currency") & " for ") lstOutput.Items.Add(Time & " years is") lstOutput.Items.Add(" " & _ VB6.Format(Amount, "Currency")) lstOutput.Items.Add(" and the Amount of Interest is") lstOutput.Items.Add(" " & _ End Sub VB6.Format(Interest, "Currency")) McManus COP1006 16

VB Solution – the Form

McManus COP1006 17

Getting the Input

1 st step 2 nd step McManus 3 rd step COP1006 18

Calculating the Solution

McManus COP1006 19

McManus COP1006 20

• Internal Documentation – Takes the form of comments within the program – Helped by using Mnemonic terms • Creates self-documenting code • External Documentation – Takes the form of • User Manuals • Help Screens • System Documentation McManus COP1006 21

Testing the Solution

• Input Variables to be tested – Principal • any numeric value greater than 0 – InterestRate • any numeric value greater than 0 and less than 1 – Time • any integer greater than 0 • Note: We didn’t do any Error checking in this problem.

McManus COP1006 22

Testing the Solution

• Output Variables – Would expect to see the Amount a positive number greater than the Principal amount – Would expect to see the Interest greater than zero.

• Why are these statements important?

McManus COP1006 23

Summary

• Analyze the problem – Being able to restate the problem is one indicator that you understand the problem • Develop the structure chart • Develop the algorithms • Develop the data dictionary • Develop the code • Test the solution McManus COP1006 24

Next?

McManus COP1006 25