Write a program that allows a user to input three numbers and then displays the smallest number. This technique is similar to that used in later programming subjects to find the smallest in a list of values.
Run Number 1 ? 5 Number 2 ? 3 Number 3 ? 8 Smallest number = 3
| Inputs | Processing | Output |
| number1, number2, number3 | Input number1, number2, number3 Determine the smallest number Display smallest |
smallest |
| Name | Data Type | Description |
| number1 | Double | The first number to be compared |
| number2 | Double | The second number to be compared |
| number3 | Double | The third number to be compared |
| smallest | Double | The smallest of the three numbers |
1 compareNumbers() 2 inputNumbers() 3 getSmallestNumber() 4 displaySmallest() 5 STOP
6 inputNumbers() 7 Input number1, number2, number3 8 EXIT
9 getSmallestNumber() 10 smallest = number1 11 IF number2 < smallest THEN 12 smallest = number2 13 ENDIF 14 IF number3 < smallest THEN 15 smallest = number3 16 ENDIF 17 EXIT
18 displaySmallest() 19 Display smallest 20 EXIT
Input data: number1 = 5, number2 = 3, number3 = 8; Correct result smallest = 3
' Name: CompareNumbers
' Purpose: Compare 3 numbers and display the smallest
' Author: Tim Whitfort
Option Compare Database
Option Explicit
' Declare global variables.
' Global variables are known throughout the program
Dim number1 As Double ' First number to be compared
Dim number2 As Double ' Second number to be compared
Dim number3 As Double ' Third number to be compared
Dim smallest As Double ' The smallest of he number input
Sub Main()
' Call the inputNumbers subroutine
inputNumbers
' call the getSmallestNumber subroutine
getSmallestNumber
' Call the displaySmallest subroutine
displaySmallest
End Sub
Write a program that uses a subroutine to swap two values. This technique is used in later programming subjects to sort a list into order.
Run Number 1 ? 5 Number 2 ? 3 After swap Number 1 = 3 Number 2 = 5
| Inputs | Processing | Output |
| number1, number2 | Input number1, number2, Swap number1 and number2 Display smallest |
number1, number2 |
We can't just assign number2 to number1 and vice-versa as this would loose the original value of number1. A temporary variable is needed to hold the value during the swap.
swapTwoNumbers()
inputNumbers()
swap()
displayNumbers()
STOP
inputNumbers()
Input number1, number2
EXIT
swap()
temp = number1
number1 = number2
number2 = temp
EXIT
displayNumbers()
Display number1, number2
EXIT
| Name | Data Type | Description |
| number1 | Double | The first number to be compared |
| number2 | Double | The second number to be compared |
| temp | Double | Temporary storage for number1 |
1 swapTwoNumbers() 2 inputNumbers() 3 swap() 4 displayNumbers() 5 STOP
6 inputNumbers() 7 Input number1, number2 8 EXIT
9 swap() 10 temp = number1 11 number1 = number2 12 number2 = temp 13 EXIT
14 displayNumbers() 15 Display number1, number2 16 EXIT
Input data: number1 = 5, number2 = 3; Correct results: number1 = 3, number2 = 5
' Name: SwapTwoNumbers
' Purpose: Input 2 numbers, swap them then display the new values
' Author: Tim Whitfort
Option Compare Database
Option Explicit
' Declare global variables.
Dim number1 As Double
Dim number2 As Double
Sub Main()
inputNumbers
swap
displayNumbers
End Sub
' Input the 2 numbers
Sub inputNumbers()
number1 = InputBox("Number 1 ?")
number2 = InputBox("Number 2 ?")
End Sub
' Swap the two numbers
Sub swap()
' Local variable. Temporary storage for number1
Dim temp As Double
temp = number1
number1 = number2
number2 = temp
End Sub
' Display the numbers
Sub displayNumbers()
Debug.Print "After swap"
Debug.Print "Number 1 = "; number1
Debug.Print "Number 2 = "; number2
End Sub
We have been using functions for some time!
Functions are a special type of subroutine that return a single value. We won't be writing functions in this subject, however we will look at a few functions that are provided by Basic.
InputBox function and the Format function are examples of functions that we have been using.
A parameter is supplied (passed to) the function to provide data required for the function to work, in this case the input prompt to be displayed.
A return value is the result that we are interested in finding out. In this case it is the value input by the user.
Dim cost As Double
cost = InputBox("Cost of an item ? ")
In the above example:
Dim costPer100Grams as Double Dim speed as Double costPer100Grams = 12.3 Debug.Print "Cost per 100 grams = "; Format(costPer100Grams, "$0.00") speed = 1234567.89 Debug.Print "Speed = "; Format(speed, "#,##0.0kph") 'Speed = 1,234,567.9kph
In the above example:
Here are some examples of mathematical functions provided in Basic:
Example
Dim cost As Double cost = 12.347 cost = Round(cost, 2) ' cost is now 12.35 cost = 12.347 cost = Round(cost, 1) ' cost is now 12.3
Example
Dim y As Double y = Sqr(x)
' Name: MathsFunctionDemo
' Author: Tim Whitfort
' Purpose: Demonstrate using built-in functions
Option Compare Database
Option Explicit
Sub Main()
' Local Declarations
Dim price As Double ' The price of an item before tax
Dim tax As Double ' The GST on an item
Dim x As Double ' A number
Dim y As Double ' The square root of x
' Input x and calculate its square root
x = InputBox("x ?")
y = Sqr(x)
Debug.Print "The square root of "; x; " is "; y
Debug.Print
' Input price and calculate its GST
price = InputBox("Price before GST ?")
tax = price * 10 / 100
Debug.Print "GST before rounding is = "; tax
tax = Round(tax, 2)
Debug.Print "GST rounded to the nearest cent is = "; tax
Debug.Print
End Sub
That's the end of the lectures on Software Development. For the next few weeks we will be looking at the UNIX operating system.
Written by Tim Whitfort.