CSM18 Statements in VB

Download Report

Transcript CSM18 Statements in VB

CSM18 Further Constructs in VB
• A statement is the fundamental syntactical element of
a program
• smallest piece of code that the language will accept in its
own right
• A statement can be used to
•
•
•
•
•
set aside space for data storage (variables)
assign a value to a variable
perform a calculation and assign its result to a variable
execute a previously-defined operation
control other statements
CSM18 Visual Basic Section 2
1
Department of Computing UniS
CSM18 Example Statements
Dim x As Integer, y As Single
Declares variables
Assigns a value to the
variable
x=2
x=x+4
Assigns the result of
an expression
y = Sqr(x)
Print y
Uses an in-built
function
Executes a predefined operation
CSM18 Visual Basic Section 2
2
Department of Computing UniS
CSM18 Forms
• Forms are Windows but are also VB Objects
which contain other objects - Interaction Objects
eg input, output and command controls
• Input - InputBox, Text Box, Check Box, Lists
etc.
• Command - buttons, menus etc
• Output - Text Box, Message Box, Picture Box
etc
• A Form should allow user-input in any order
• Processing triggered when a command is
issued
• Users should be kept informed of appropriate
actions required and results of actions
CSM18 Visual Basic Section 2
3
Department of Computing UniS
CSM18 Event Driven Program
• A special form of Subroutine (Sub) that
Visual Basic associates with an event
• Mouse operation
• Key-press
• Signal from another application
• An event handler is called automatically
when the event happens
• Program can respond to external stimuli
Private Sub Botton1_Click()
Statements….
End Sub
CSM18 Visual Basic Section 2
4
Department of Computing UniS
CSM18 Input & Output
• Input use an InputBox or TextBox
• Output use a MsgBox or TextBox or Print
Private Sub Botton1_Click()
Dim Data As Integer
Data = InputBox(“Enter a number”)
Text1.Text = “The number is “ & Data
Print “The number is “ & Data
End Sub
CSM18 Visual Basic Section 2
5
Department of Computing UniS
CSM18 Event-Driven User Interfaces
• Interaction Objects are
created on the Form
• User interacts with objects to
input data, control the program
and to receive
data/information.
• Objects have a set of
Properties that describe the
state of the object.
• Values of Properties can be
changed by program
statements
CSM18 Visual Basic Section 2
6
Department of Computing UniS
CSM18 Event-Driven User Interfaces
• To make the button visible set
it’s property ‘visible’ to True
• Button1.Visible = False
CSM18 Visual Basic Section 2
7
Department of Computing UniS
CMS18 Structures within Software
• Structure is apparent at a number of levels
• A project can involve a number of modules, each occupying a
separate file
• Each module will contain a number of procedures (Subs and
Functions) and variable declarations
• Within a Sub or Function, certain standard code constructs are
used to define whether actions happen or not, or how often
they are executed
• Data variables in a module can be grouped in several ways to
form data structures
• The last two categories are central to the idea of
‘Structured Programming’
CSM18 Visual Basic Section 2
8
Department of Computing UniS
CSM18 Structured Programming
• Born out of chaotic nature of software designs
before late 1960s
• Idea is to limit the power of the programmer to
direct a program with no restrictions
• Code statements are organised in a small
number of standard forms
• Structure of data should mirror real-life
information structure wherever possible
CSM18 Visual Basic Section 2
9
Department of Computing UniS
CSM18 Program Control Constructs
Three main structuring principles
• Code statements should be grouped into functional
units
• Subs, Functions
• Possible to select whether one or more statements
will execute or not, based on a simple logical
criterion
• If...Then, If...Then...Else, Select Case
• Possible to repeat a statement or group of statements
either a given number of times or until a specific
condition is true
• For...Next, Do...Loop, While...WEnd
CSM18 Visual Basic Section 2
10
Department of Computing UniS
CSM18 Conditions
• Central to the principles of programming
• The flow of execution depends on prevailing
conditions within a program
• A condition is an expression that evaluates to
True or False. Can be…
• A single Boolean variable
• A combination of Boolean variables
• The result of a comparison for equality or relative
size
• A combination of such comparisons
CSM18 Visual Basic Section 2
11
Department of Computing UniS
CSM18 Logical Conditions
These are not assignments:
X=0
‘ True if X is zero, False otherwise
Y=X
‘ True if Y equals X
X<Y
‘ True is X is bigger than Y
X = 0 And Y >2
‘ True if both are true
X = 0 Or Y > 2
‘ True if either is true
CSM18 Visual Basic Section 2
12
Department of Computing UniS
CSM18 Conditions to control flow…
• Using a condition, can direct the flow of a
program…
If Time > “12:00” Then
Sub Afternoon()
Else
Sub Morning()
End If
CSM18 Visual Basic Section 2
13
Department of Computing UniS
CSM18 If...Then - flexible control
If Time < “12:00” Then
MsgBox “Good morning”
ElseIf Time > “12:00” And Time < “18:00” Then
MsgBox “Good afternoon”
Else
MsgBox “Good evening”
End If
CSM18 Visual Basic Section 2
14
Department of Computing UniS
CSM18 Case Structure
• When dealing with many possible conditions use a
Case Construct
• To Select one of a number of possible Cases
• Select Case Variable
Select Case MonthNo
Case 4, 6, 9, 11
MsgBox “This month has 30 days”
Case 2
MsgBox “This month has 28 days”
Case Else
MsgBox “This month has 31 days”
End Select
CSM18 Visual Basic Section 2
15
Department of Computing UniS
CSM18 Iteration
Iteration is repetition of code
• Can execute one or more statements
• A given number of times
• Until a condition becomes True
• While a condition remains True
• This allows the same code to be reused
• For a number of similar variables
• For the same variable(s) containing a succession of values eg
• Print a number of pages
• Get input from a user until a valid entry
• Calculate a succession of loan payments
CSM18 Visual Basic Section 2
16
Department of Computing UniS
CSM18 Iteration
For index = 1 To 12
‘ Print a table of squares
Print index, index * index
Next
Do
‘ Repeat until user enters something
Name = InputBox(“Enter your name”)
Loop Until Name <> “”
CSM18 Visual Basic Section 2
17
Department of Computing UniS
CSM18 Iteration
While Time < “18:00”
DoWork ()
‘Sub DoWork()
defined elsewhere
Wend
Note: This code will not be executed unless the initial
condition is met.
Compare with Do…Loop which executes the code at least
once.
CSM18 Visual Basic Section 2
18
Department of Computing UniS
CSM18 Structured Data
• May need
to work with sets of data
• Classes of students
• Lists of library books
• Normally, information is complex and has structure
• Items are related by..
• Similarity (e.g. class of students)
• Hierarchy (e.g. a book has several chapters)
• Grouping (e.g. a person has a name, address, phone
number, national insurance number, credit cards, etc..)
• We use data structures to group information together
CSM18 Visual Basic Section 2
19
Department of Computing UniS
CSM18 Arrays
• Simplest form of data structure
• A number of variables of the same type, related in
some way
• A list of names
• A Table of profit figures
• All elements share the same name
• Each element has an index indicating its position
in the array
CSM18 Visual Basic Section 2
20
Department of Computing UniS
CSM18 Arrays
Dim Profits(1998 To 2000, 1 To 4) As Single
Dim Students(1 To 6) As String
Index
Students
1
2
3
4
5
6
John Smith
Jane Green
Mary Brown
Mike Stone
Ashok Din
Profits
Quarters
1
2
3
4
1998
1999
2000
1240.00
1450.25
1603.33
1775.50
1825.23
1733.24
1602.45
1743.10
1679.95
1100.70
1250.50
1432.55
1-Dimensional Array
Index
CSM18 Visual Basic Section 2
21
2-Dimensional Array
Element
Department of Computing UniS
CSM18 Programming with Arrays
• Use For..Next construct to loop through an array
Dim ID As Integer, Year As Integer, Quarter As Integer
…….
For ID = 1 To 6
Print Students(ID)
Next
For Year = 1998 To 2000
‘ Note nested For loops
For Quarter = 1 To 4
TotalProfit = TotalProfit + Profits(Year, Quarter)
Next
Next
CSM18 Visual Basic Section 2
22
Department of Computing UniS
CSM18 Program in a Module
• Use a module to provide code accessible form
•
•
•
•
any where in the project
Add Module, make
Option Explicit - forces declaration of variables
- good practice
Data Storage with Private Procedures
Access with Public Procedures
CSM18 Visual Basic Section 2
23
Department of Computing UniS
CSM18 Program in a Module
Option Explicit
‘Forces declaration of variables
Private Const Max = 10
Private Names (1 To Max) As String
Public Sub AddEntry()
…..
Public Sub DisplayList()
…..
CSM18 Visual Basic Section 2
24
Department of Computing UniS