Transcript Welcome to

Introduction to VB
Programming
Chapter 3
7/17/2015
VBN2008-03
1
Quotes for Today
When faced with a decision, I always ask,
“What would be the most fun?”
Peggy Walker
It is a capital mistake to theorize before
one has data.
Arthur Conan Doyle
7/17/2015
VBN2008-03
2
Creating a Project With Code
A Simple Program
7/17/2015
VBN2008-03
3
Two Types of Applications
(2 of the many)
• Windows Applications
– Access Windows environment
• Console Applications
– Access DOS environment
7/17/2015
VBN2008-03
4
Anatomy of a Simple
Program
Green =
Comments
‘ Welcome1.vb
‘ Simple Visual Basic program
Identifiers
Module modFirstWelcome
Sub Main()
‘entry point of program
‘() indicates a procedure
Keywords
Console.WriteLine(“Welcome to Visual Basic!”)
End Sub
‘Ends Main Procedure
End Module
‘Ends modFirstWelcome
Class Method
7/17/2015
VBN2008-03
String
5
A Module
• Collectively called a module definition
• Console modules consist of logical
groupings of procedures
– simplify program organization
• Convention:
– Begin all modules with “mod”
• Example:
modWelcome
– Not case sensitive
7/17/2015
VBN2008-03
6
An Identifier
• A series of characters
– Consist of letters, digits & underscores (_)
– Not case sensitive
Primitive Data Types:
• Cannot
– Begin with a digit
– Contain spaces
• Examples
Boolean
Date
Integer
Short
Uinteger
Byte
Decimal
Long
Single
Ulong
Char
Double
Sbyte
String
UShort
– Valid: modFirstWelcome, num1, SalesTax
– Invalid: 123xyz, My Tax, 753 Room
7/17/2015
VBN2008-03
7
A Keyword (Reserved Word)
• A particular word that has a specific
meaning within each programming
language
• Examples:
– Module, End, Sub, If, For, Loop
– For more examples refer to Pages 76
– Not case sensitive, but VB will
automatically convert to “proper” case
7/17/2015
VBN2008-03
8
Keywords
(or Reserved Words)
• Do not try to use these words as variable
names.
– Misspelling a keyword may cause a syntax
error
– VB will assume you are creating a new
identifier.
– But…the program will not work correctly.
7/17/2015
VBN2008-03
9
Spacing (Whitespace)
• VB ignores spaces and tabs between
identifiers
– Vertically and horizontally
• Use vertical blank lines, tabs and
horizontal spaces to make projects easier
to read.
7/17/2015
VBN2008-03
10
Statements
• Console.WriteLine(“Hi!”)
– (“Hi”) is the argument
• Note the dot notation…
– Classes organize groups of related methods
• WriteLine is the method
• Console is the class to which the method belongs
7/17/2015
VBN2008-03
11
The Simple Program
Revised
• Pg 78;
–
–
–
–
–
–
–
File>New Project>Console Application
Name = WelcomeConsole
Program Name = Welcome1.vb
Reserved words are blue, text is black
Change name of Module to ModWelcome
Writing code
Run program
• Tools>Options personalizes environment
7/17/2015
VBN2008-03
12
Features
• IntelliSense
– When the dot (.) is keyed after Console, a list of
available methods is displayed
– Options
• List Members – lists the members of an object.
• Parameter Info – Lists the members of an object.
• Quick Info – displays information in tool tips as the mouse rests on
elements in your code.
• Complete Word – completes typed words
• Automatic Brace Matching – adds parentheses or braces as needed.
7/17/2015
VBN2008-03
13
Documenting Code
Commenting…
7/17/2015
VBN2008-03
14
Consistency, Consistency!
• Just as important as commenting code
• Reduces reader frustration
• Makes comments & code
– easier to understand
• Makes debugging
– easier
– faster
7/17/2015
VBN2008-03
15
Commenting Code
• Used to identify the purpose of a piece of code,
the author, creation date, requirements
– Required in this class!
• Indicator is the apostrophe.
– Ex.
‘This is a comment.
• The default color for VB is green.
– Note: for those of you who might be colorblind to
green, the comment color property can be changed
within the environment controls.
But…Don’t do it in here or in the Lab…
7/17/2015
VBN2008-03
16
Comments
• Explains
– what is going on or
– what is being described
• Denoted by a single quotation mark (‘)
• Example
‘Input variable
Dim Principal As Single ‘The original loan amount
Dim Address As String ‘Shipping address for client
7/17/2015
VBN2008-03
17
Comment Levels
• Application Level
– Name - name of application
– Author/Company - who created it
– Add-ins - are there any other modules or code
objects necessary to run this program
– Purpose of Program - what is the program
supposed to do?
– System Requirements - what is the system upon
which this program will operate
7/17/2015
VBN2008-03
18
Comment Levels
• Module Level
– Necessary when multiple programmers are
working on a project.
– Useful when planning to reuse the code.
– Same parameters as before, but with
addition of
• Dependencies –
– declares what is required as input for the module to work (Passing
parameters)
7/17/2015
VBN2008-03
19
Comment Levels
• Procedure Level
– Used to describe to programmers what the
procedure does and how it does it.
– Used for user-defined and non-obvious
procedures and functions.
• Ex. A new form of the Square Root function
– Helps during a multi-programmer project
• Lets other programmers know who to contact when there are
questions or problems with the code.
7/17/2015
VBN2008-03
20
Comment Levels
• Code Level
– To specify what a piece code is doing
– To specify that a piece of code needs further
attention
– Use these as suggestions for consistency
–‘
Generic comment - explanation
– ‘???
Questionable code - useful for debugging
– ‘!!!
Code requires attention - useful for reminders
or where to provide additional work.
– ‘-MLM7/17/2015
Include your initials for comment referencing
VBN2008-03
21
Comment, Comment,
Comment!
• Provides
– meaning to code
– additional information to other
programmers
– reasons why one method was used over
another for future maintenance
• Makes Maintenance EASIER!
7/17/2015
VBN2008-03
22
Console.WriteLine Revisited
• Dim number1 as Integer
• Number1 = Console.ReadLine()
– ReadLine() is a method that causes the program to pause
and wait for user input.
– After the value is entered by keyboard, the user presses
the Enter key to send the value to the program.
• Example:
Console.WriteLine(“The sum is ” & sumofNumbers)
7/17/2015
VBN2008-03
23
Basic Components of VB
Variables &
Assignment Statements
7/17/2015
VBN2008-03
24
Variables
• A Variable
– Is a temporary storage location for
information
– Clears upon exit of either the program or
the procedure
– Examples:
• Sum
SalesTax
SquareRoot
• Count
Sales_Tax Principal
7/17/2015
VBN2008-03
25
Variable Declarations
• Name of a variable is any valid identifier
–
–
–
–
Cannot be keywords
Maximum length is 255 characters
Must begin with a letter
Must contain only letters, numbers and
underscores.
– VB is not case sensitive so
• uppercase and lowercase letters are treated in the same way.
• Variable’s Type - what type of information
each variable may contain.
7/17/2015
VBN2008-03
26
Variable Declarations
• Declaration of Variables
– Provides the Variable Name and its data
type
– Ex.
Dim sum As Integer
Variable Identifier
Variable’s Data Type
– VB always initializes variables to Zero for
numbers and the Null set for characters
and strings
7/17/2015
VBN2008-03
27
Variable Data Types
Data Type
Boolean
Char
String
Date
Byte
SByte
Integer
.NET
Runtime
Type
"System."
Boolean
Char
String
DateTime
Byte
SByte
Int32
Storage
Size
2 bytes
2 bytes
depends
8 bytes
1 byte
1 byte
4 bytes
Long
UShort
Int64
UInt16
8 bytes
2 bytes
UInteger
ULong
Object
UInt32
Int64
Object
Single
Double
Single
Double
Decimal
User-defined
Decimal
ValueType
7/17/2015
Purpose
True or False
0 to 65535
0 to approx 2 billion Unicode characters
January 1, 0001 to December 31, 9999
0 to 255 (unsigned)
-128 to 127
-2,147,483,648 to 2, 147,483,647
-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
0 to 65,535, inclusive
A numeric variable, holds values in range -2147483648 to
2147483647
4 bytes
0 to 18,446,744,073,709,551,615 (unsigned)
8 bytes
Any type can be stored in a variable of type Object
4 bytes
-3.402823E38 to -1.41298E-45 for negative #'s &
1.401298E-45 to 3.402823E38 for positive #'s
4 bytes
A floating point numeric variable even bigger than Single
8 bytes
+/- 79228162514264337593543950335 w/no decimal
16 bytes +/7.9228162514264337593543950335 w/28 decimal places
depends more about these later
VBN2008-03
28
Variable Declarations
Changes from VB6 to VB.Net
• New data types
• Lost data types
– Char
– Unsigned Integers
•
•
•
•
– Currency
– Variant – A great
thing!
– Image (use
PictureBox instead)
Ulong - 8 bytes
Uinteger - 4 bytes
Ushort - 2 bytes
Sbyte - 1 byte
Note about Unsigned Integers They are non-CLS compliant and
not supported by all .Net languages
--Avoid using-7/17/2015
VBN2008-03
29
More Changes
from VB6 to VB.Net
• Replacements
– RadioButtons replaces OptionButton
– GroupBox replaces Frame
– SelectedIndex in ListBox replaces ListIndex
– Images are added to PictureBox’s by using
the System.Drawing.Image.FromFile
method
7/17/2015
VBN2008-03
30
Variable Declarations
• Declarations made
– in the General Declaration Section are
available throughout the entire program.
• This is Global Scope.
– inside a procedure are available only within
the procedure
• This is Local Scope.
• Both will be discussed in more detail
later.
7/17/2015
VBN2008-03
31
Assignment Statements
• Assigns a value, variable or expression to a
variable
– Syntax: VariableName = value or variable or expression
– A variable is placed on the left of the equal sign (=)
• Think of the “=” as “takes on the value of”
– The value to be stored in the variable appears on
the right.
• The value is made up of the following:
– A value
– An expression
– A variable (Identifier)
– Ex.
7/17/2015
sum = count + 3
VBN2008-03
32
Assignment Statements
– When a value is stored in a variable (on the
left side of the assignment operator), it replaces
the existing data.
• This is known as destructive read-in.
– Ex.
sum = 3 + 5
– When a variable is used (on the right side of
the assignment operator), the value stored in
the variable is preserved.
• This is known as nondestructive read-in.
– Ex.
7/17/2015
sum = count + 1
VBN2008-03
33
Arithmetic in VB
And Operator Precedence
7/17/2015
VBN2008-03
34
Arithmetic in VB
• The arithmetic operators used in VB use
several special characters:
– ^ indicates exponentiation
– * indicates multiplication
– \ indicates Integer division
• Arithmetic expressions are written in
straight-line form.
– Ex.
7/17/2015
a^b
VBN2008-03
35
Arithmetic in VB
• Most operators are binary, requiring 2
operands.
– Ex.
sum + value
• However, the unary operator (+, -)
requires only one operand.
– Ex.
7/17/2015
-3, +3
VBN2008-03
36
Arithmetic Operators
VB Operation
Arithmetic Algebraic
Operator Expression
Addition
+
Subtraction
VB
Expression
x+y
-
x+y
z -8
Multiplication
*
yb
y*b
Division (float)
/
v/u
v/ u
Division (Integer)
\
none
v\ u
Exponentiation
^
qP
q^p
Unary Minus & Plus
- or +
-e or +e
-e or +e
Modulus
Mod
q modulo r
q Mod r
7/17/2015
VBN2008-03
z-8
37
Special Arithmetic
Operators
• Integer Division (\)
– Supports Byte, Short, Integer, or Long Data Types
– results in an Integer result
• Ex.
8 \ 2 = 4 and 9 \ 5 = 1
– Note: Floating point numbers are coerced to Long
(a narrowing conversion) quietly (behind the scene)
before Integer Division takes place.
• Ex.
7.7 \ 4 = 2 because 8 \ 4 = 2.
• the whole part of the floating point result and the rest is truncated.
7/17/2015
VBN2008-03
38
Integer Division Examples
Operation
Result
Result = 11 \ 4
2
Result = 11.4 \ 4
2
Result = 11.8 \ 4
3
Result = 11 \ 4.2
2
Result = 11 \ 4.8
2
7/17/2015
VBN2008-03
39
Special Arithmetic
Operators
• Modulus (Mod) results in an Integer
remainder after Integer Division.
• Ex. X Mod Y = the remainder after X is divided by Y.
If the result is 0, then X is evenly divisible by Y.
• Ex. 10 Mod 4 = 2; 10.8 Mod 4 = 3
– Note:
• if the Result is defined as a floating point, the result will
be the floating point remainder
• Use of the Mod with floating point will introduce a
hidden conversion from Single or Double to Integer –
possible loss of data
7/17/2015
VBN2008-03
40
Modulus Examples
Operation
Result = 10 Mod 4
2
Result = 10.4 Mod 4
2
Result = 10.8 Mod 4
3
Result = 10 Mod 4.2
2
Result = 10 Mod 4.8
0
*Dim Result As Integer
7/17/2015
2
Result
VBN2008-03
4 ) 10
8
2
2
4.8) 10.0
10
0
4.8 rounds to 5
41
Modulus Examples
Operation
Result
Result = 10 Mod 5
0
Result = 10 Mod 3
1
Result = 12 Mod 4.3
3.4
Result = 12.6 Mod 5
2.6
Result = 47.9 Mod 9.35
1.15
*Dim Result As Double
7/17/2015
VBN2008-03
2
5 ) 12.6
10
2.6
5
9.35) 47.90
46.75
1.15
42
Comparison Operators
Standard
algebraic equality
operator or
VB
relational
Comparison Ex. of VB
operator
Operator
Condition
=
=
D=G

<>
S <> R
>
>
Y>I
<
<
P<M

>=
C >= E

<=
M <= S
7/17/2015
VBN2008-03
Meaning of VB Condition
D is equal to G
S is not equal to R
Y is greater than I
P is less than M
C is greater than or equal to E
M is less than or equal to S
43
Operator Precedence
• Reflects a hierarchical order
• Aids evaluation of expressions
– Boolean Relational Operators have the lowest
precedence. (to be discussed later)
• Using parentheses ( ) is recommended to:
– Avoid syntax errors
– Clarify the meaning of the comparison
• Evaluation Trees are used to check logic
7/17/2015
VBN2008-03
44
Order of Operator
Precedence
OPERATOR
()
^
+ * /
\
Mod
+ &
= <>
<= >= > <
Like Is TypeOf
Not
And AndAlso
Or OrElse
Xor
TYPE
Parentheses
Arithmetic
Arithmetic
Arithmetic
Arithmetic
Arithmetic
Arithmetic
Concatenation
Comparison
(all have same
level of precedence)
Logical
Logical
Logical
Logical
NAME
Parentheses
Exponent
Unary Plus & Unary Minus
Multiplication, floating-point division
Integer division
Modulus
Addition, subtraction
String concatenation
Equal to, not equal to, less than or equal to,
greater than or equal to, greater than, less than;
Like, Is, TypeComparison
Logical Negation
Logical And
Logical Or
Logical Exclusive Or
See Appendix A
7/17/2015
VBN2008-03
45
Line Continuation
• Permits a long line of code to be divided
into two lines.
– Must be surrounded by at least one space
– Must not have anything after the “_”
• Improves readability
• Example:
MessageBox.Show(“The Square Root of 2 is “ & root, _
“The Square Root of 2”)
7/17/2015
VBN2008-03
46
String Concatenation
• Concatenation Operator is the
ampersand “&”
• Is a binary operator
• Combines two strings
• Example:
MessageBox.Show(“The square root of 2 is ” & root)
• Note: If the variable (in this case root) is not a String, VB
will automatically create a String representation of the
argument.
7/17/2015
VBN2008-03
47
Common Programming Errors
Syntax Errors
7/17/2015
VBN2008-03
48
Syntax Errors
• A syntax error, also called a compile
error, is a violation of a language’s
syntax.
• Occurs when:
– statements are missing information
– statements have extra information
– names are misspelled
– punctuation is missing (missing
parentheses)
7/17/2015
VBN2008-03
49
Syntax Errors - Help
• VB
– indicates syntax errors by underlining the
suspect code with a red line
– provides an explanation in the Task List
window
– Provides a tool tip explaining what VB.Net
thinks is wrong, if you rest the mouse on
the error.
7/17/2015
VBN2008-03
50
Next?
7/17/2015
VBN2008-03
51