Transcript Chapter 1

Chapter 3
Input, Variables, Constants,
And Calculations
Starting Out with Visual Basic .NET 2nd Edition
3.1
Introduction
Starting Out with Visual Basic .NET 2nd Edition
Chapter 3 Topics
• This chapter covers the use of text boxes to
gather input from users
• It also discusses the use of
•
•
•
•
variables
named constants
intrinsic functions
mathematical calculations
Starting Out with Visual Basic .NET 2nd Edition
3.2
Gathering Text Input
In This Section, We Use the Textbox
Control to Gather Input That the User
Has Typed on the Keyboard
Starting Out with Visual Basic .NET 2nd Edition
Placing Text into a Label, I
• We have done this already:
lblSet.Text = "Place this text in a TextBox"
• The lblSet.Text is in the form: Object.Property
Starting Out with Visual Basic .NET 2nd Edition
Placing Text into a Label, II
• The text can come from a textBox where
the user has typed in input:
lblSet.Text = txtInput.Text
• Notice two use of the form: Object.Property
Starting Out with Visual Basic .NET 2nd Edition
Clearing a Text Box, I
• This can be done with an assignment:
txtInput.Text = ""
• Two adjacent quote marks yields a null string
• So this statement replaces whatever text that
may have been in txtInput with "nothing" -- a
string with no characters in it
Starting Out with Visual Basic .NET 2nd Edition
Clearing a Text Box, II
• This can be done with a method:
txtInput.Clear()
• Clear is called a Method
• Methods do actions -- here clearing the text
• The syntax is similar to that of referring to a
Property:
Object.Method
Starting Out with Visual Basic .NET 2nd Edition
String Concatenation, I
• In our code we will often need to combine
two or more strings into a longer one
• This operation is called "Concatenation"
• Concatenation is signaled with the operator
'&' much in the same way that addition is
signaled by the operator '+'
Starting Out with Visual Basic .NET 2nd Edition
String Concatenation, II
• Say our user has entered their name into
txtUserName, a TextBox
• In label lblGreeting we want to say, Hello
• Simply:
lblGreeting.Text = "Hello " & txtUserName.Text
• Put "Hello" on the front of the user's name and
place the result into lblGreeting
Starting Out with Visual Basic .NET 2nd Edition
The Focus Method, I
• For a control to have the focus means that it
is ready to receive the user's input
• In a running form, one of the controls
always has the focus
• The control with the focus may be set by
program control using the Focus Method:
txtUserName.Focus()
Starting Out with Visual Basic .NET 2nd Edition
The Focus Method, II
• You can tell which control has focus by its
characteristics:
• When a TextBox has focus, it will have a blinking
cursor or the text inside of the box is highlighted
• When a button, radio button, or a check box has focus,
it will have a thin dotted line around the control
Starting Out with Visual Basic .NET 2nd Edition
Controlling a Form’s Tab Order
with the TabIndex Property
• Stepping the focus from one control to
another can be done using the Tab Key
• This order is set for a control relative to
others by the value of the TabIndex Property
• With each Tab Key hit, the focus will step to
the control with the next highest value of the
TabIndex Property
Starting Out with Visual Basic .NET 2nd Edition
Assigning Keyboard Access Keys
to Buttons
• Imagine your form has a button with the
text "Save" on it
• And you wish to allow the user to be able to
hit Alt-S to activate that button
• Simply change the button text to "&Save"
• The '&' tells Visual Basic .NET to use Alt-S
as an access key
Starting Out with Visual Basic .NET 2nd Edition
'&' is a Special Character
in Button Labels
• Note that the '&' in "&Save" does not
display on the button
• It simply establishes the Alt Key access
• In order to actually display an '&' on a
button, one must enter it as "&&" (then one
will appear and will not cause an Alt Key
access to be established)
Starting Out with Visual Basic .NET 2nd Edition
Using Access Keys with Labels, I
• Want to establish an access key for a
TextBox?
• The previous technique will not work
because the text of a TextBox is normally a
changing value
• However, there is a way to accomplish the
same effect
Starting Out with Visual Basic .NET 2nd Edition
Using Access Keys with Labels, II
• For a Label that immediately precedes a
TextBox
• Assign that Label an access key (labels do not
normally have access keys)
• Set the UseMnemonic Property to True
• When the user activates the Label's access
key, the following TextBox will receive the
focus
Starting Out with Visual Basic .NET 2nd Edition
Setting the Accept Button
• The Accept Button is the one that implicitly
will be activated if the user hits the Enter
Key
• The AcceptButton Property designates
which button on the form is to behave in
this manner
Starting Out with Visual Basic .NET 2nd Edition
Setting the Cancel Button
• The Cancel Button is the one that implicitly
will be activated if the user hits the Escape
Key
• The CancelButton Property designates
which button on the form is to behave in
this manner
Starting Out with Visual Basic .NET 2nd Edition
3.3
Variables
An Application Uses Variables to Hold
Information So It May Be Manipulated, Used to
Manipulate Other Information, or Remembered
for Later Use
Starting Out with Visual Basic .NET 2nd Edition
Why Have Variables?
• A variable is a storage location in the
computer’s memory, used for holding
information while the program is running
• The information that is stored in a variable
may change, hence the name “variable”
Starting Out with Visual Basic .NET 2nd Edition
What Can You Do With Variables?
• Copy and store values entered by the user, so they
may be manipulated
• Perform arithmetic on values
• Test values to determine that they meet some
criterion
• Temporarily hold and manipulate the value of a
control property
• Remember information for later use in the
program
Starting Out with Visual Basic .NET 2nd Edition
How to Think About Variables
• You the programmer make up a name for
the variable
• Visual Basic .NET associates that name
with a location in the computer's RAM
• The value currently associated with the
variable is stored in that memory location
Starting Out with Visual Basic .NET 2nd Edition
Setting the Value of a Variable
• An assignment statement is used to set the
(new) value of a variable, as in:
length = 112
greeting = "Good Morning " & txtName.Text
Starting Out with Visual Basic .NET 2nd Edition
Variable Declarations
• A variable declaration is a statement that
causes Visual Basic .NET to create a
variable in memory
• As in
Dim length As Integer
Starting Out with Visual Basic .NET 2nd Edition
Declaration Syntax
• The official syntax is
Dim VariableName As DataType
where
•
•
•
•
Dim (stands for Dimension) is a keyword
VariableName is the name to be used
As is a keyword
DataType is the type of the variable and will be
one of many possible keywords
Starting Out with Visual Basic .NET 2nd Edition
Visual Basic .NET Data Types
•
•
•
•
•
•
Boolean
Byte
Char
Date
Decimal
Double
•
•
•
•
•
•
Integer
Long
Object
Short
Single
String
Starting Out with Visual Basic .NET 2nd Edition
Variable Naming Rules
• The first character of a variable name must
be a character or an underscore
• Subsequent characters may be either of
those plus the numeric digits
• Thus variable names cannot contain spaces or
periods (or many other kinds of characters)
• Variable names must not be keywords
Starting Out with Visual Basic .NET 2nd Edition
Variable Naming Conventions
• Each variable name should describe its use,
e.g., itemsOrdered
• When multiple words are used in a name,
capitalize the initials, except for the first
one (again, itemsOrdered)
• As noted earlier, control names should have
a specific prefix, e.g. btn for Button controls
Starting Out with Visual Basic .NET 2nd Edition
Auto List Feature
• As you are entering your Visual Basic .NET
program, VB will often aid you by offering
a list of choices for that could be entered
next
• Right after you type "As" in a variable
declaration, Visual Basic .NET will offer
you a list of all of the established data types
• Either choose one or keep typing
Starting Out with Visual Basic .NET 2nd Edition
Variable Default Values
• When a variable is first created in memory,
Visual Basic .NET assigns it a default value
• numeric types are given a value of zero
• strings are given a value of Nothing
• dates default to 12:00:00 AM January 1,1
Starting Out with Visual Basic .NET 2nd Edition
Initialization of Variables
via the Declaration
• It is preferable to establish your program's
own initial value for variables that will not
otherwise be given values before they are
used
• In the declaration, simply append " = value"
Dim length As Integer = 112
Starting Out with Visual Basic .NET 2nd Edition
Scope of a Variable, I
• A variable’s scope is the part of the program
where the variable is visible and may be
accessed by programming statements
Starting Out with Visual Basic .NET 2nd Edition
Scope of a Variable, II
• The scope of a variable begins where it is declared
• And extends to the end of the procedure in which
it appears
• This kind of variable is called local
• A local variable is declared inside a procedure
• The variable is not visible outside of the procedure
and its name cannot be declared again within the
same procedure
Starting Out with Visual Basic .NET 2nd Edition
Lifetime of a Variable
• The storage for a variable is created upon
each use of the procedure
• The storage for a variable is destroyed as
soon as the procedure finishes executing
Starting Out with Visual Basic .NET 2nd Edition
Setting a Specific Date
• This can be done a number of ways:
startDate = #12/3/2002 1:00:00 AM#
startDate = System.Convert.ToDateTime(
"12/3/2002 1:00:00 AM")
Starting Out with Visual Basic .NET 2nd Edition
Setting the Current Date/Time
• A series of keywords yields the date and
time or just one or the other:
• Now
startTime = Now
• TimeOfDay startTime = TimeOfDay
• Today
startTime = Today
Starting Out with Visual Basic .NET 2nd Edition
The Val Function, I
• Suppose you wish to use text input as a
number:
number = txtInput.Text
• This will work without a run time error as
long as txtInput.Text is the text equivalent
of a numerical value (like "45")
• If it is not, there will be a run time error
Starting Out with Visual Basic .NET 2nd Edition
The Val Function, II
• The Val function is more lenient on
conversions from text to numeric values
• If the initial characters form a numeric
value, it will return that
• Otherwise, it will return a value of zero
Starting Out with Visual Basic .NET 2nd Edition
The Val Function, III
• Argument
•
•
•
•
•
•
•
•
"34.90"
"86abc"
"$24.95"
"3,789"
""
"x29"
"47%"
"Geraldine"
Val(Argument)
34.9
86
0
3
0
0
47
0
Starting Out with Visual Basic .NET 2nd Edition
ToString Method
• This is a Method that will convert any
variable to a string, as in
Dim number As Integer = 123
lblNumber.Text = number.ToString
Starting Out with Visual Basic .NET 2nd Edition
Option Strict On
• Placed at the very top of the code window
this will prevent Visual Basic .NET from
performing implicit data type conversion
• The code must perform all conversions
using Val or ToString (or another similar
conversion procedure such as CInt or
Integer.Parse)
Starting Out with Visual Basic .NET 2nd Edition
3.4
Performing Calculations
and Working With Numbers
Visual Basic .NET Provides Several Operators for
Performing Mathematical Operations
You May Also Use Parentheses to Group
Operations and Build More Complex Mathematical
Statements
Starting Out with Visual Basic .NET 2nd Edition
The Arithmetic Operators, I
• Visual Basic .NET provides operators for
the common arithmetic operations:
•
•
•
•
•
Addition
Subtraction
Multiplication
Division
Exponentiation
+
*
/
^
Starting Out with Visual Basic .NET 2nd Edition
The Arithmetic Operators, II
• Examples of use:
•
•
•
•
•
total = price + tax
area = length * width
average = total / items
salePrice = retail / 2
cubeArea = side ^ 3
Starting Out with Visual Basic .NET 2nd Edition
Special Integer Division Operator
• The backslash (\) is used as an integer
division operator
• The result is always an integer, created by
doing the division and then discarding any
remainder
• Any floating-point operand is first rounded
to the nearest integer
Starting Out with Visual Basic .NET 2nd Edition
Special Modulo (MOD) Operator
• This operator follows the same basic rules
as the backslash operator, but yields the
remainder after the division
• \ operator yields an integer result of division
• MOD operator yields the integer remainder
(after division using the \ operator)
Starting Out with Visual Basic .NET 2nd Edition
Arithmetic Operator Precedence, I
• Which operations are done first -precedence tells us -- highest to lowest:
•
•
•
•
•
Exponentiation (^)
Multiplicative (* and /)
Integer Division (\)
Modulus (MOD)
Additive (+ and -)
Starting Out with Visual Basic .NET 2nd Edition
Arithmetic Operator Precedence, II
• When two operators with the same
precedence share an operand, the operator
on the left works first, then the operator on
the right
Starting Out with Visual Basic .NET 2nd Edition
Arithmetic Operator Precedence, III
• Grouping with parentheses () forces the
expression within those parentheses to be
evaluated before others
• Roughly speaking, the order of evaluation
in Visual Basic .NET is similar to that used
in algebra (parenthesized expressions first,
then exponentiation, then multiplicative
operators, then the additive operators)
Starting Out with Visual Basic .NET 2nd Edition
Combined Assignment Operators, I
• Many assignment statements are similar to:
number = number - 5
• They modify a variable with one arithmetic
operator and store the result back into the
same variable
Starting Out with Visual Basic .NET 2nd Edition
Combined Assignment Operators, II
• There are special assignment operators to enhance
this usage:
•
•
•
•
•
•
+=
-=
*=
/=
\=
&=
add a value to the variable
subtract a value from the variable
multiple the variable by some value
divide the variable by some value
integer divide the variable by some value
concatenate the variable with some value
Starting Out with Visual Basic .NET 2nd Edition
Type Conversion Functions
•
•
•
•
•
•
•
•
•
•
•
•
Cbool
Cbyte
Cchar
Cdate
CDbl
CDec
Cint
CLng
Cobj
Cshort
CSng
CStr
To convert from String to number, it’s best to use Parse, e.g.:
Decimal.Parse or Integer.Parse
Starting Out with Visual Basic .NET 2nd Edition
Named Constants, I
• Whenever a program needs to use a constant
(e.g., the local sales tax percentage) it is a
good idea to give it a variable name
• However, a variable does not necessarily
have the same value throughout the program
as an assignment statement can change the
value
Starting Out with Visual Basic .NET 2nd Edition
Named Constants, II
• Visual Basic .NET provides for a variable
whose value, once established in the
declaration, cannot be modified afterwards:
Const salesTax As Single = 0.06
Starting Out with Visual Basic .NET 2nd Edition
3.5
Formatting Numbers for Output
Numbers May Be Formatted in
Various Ways for Output
Starting Out with Visual Basic .NET 2nd Edition
FormatNumber Function
• FormatNumber(expression [, DecimalPoints])
• The expression is evaluated and output as a
number
• The optional second argument gives the
number of requested decimal places
Starting Out with Visual Basic .NET 2nd Edition
FormatCurrency Function
• FormatCurrency(expression [, DecimalPoints])
• The expression is evaluated and output as a
currency value based on your PCs local options
• The optional second argument gives the
number of requested decimal places
Starting Out with Visual Basic .NET 2nd Edition
FormatPercent Function
• FormatPercent(expression [, DecimalPoints])
• The expression is evaluated and output as a
percentage value
• The optional second argument gives the
number of requested decimal places
Starting Out with Visual Basic .NET 2nd Edition
FormatDateTime Function
• FormatDateTime(expression [, Format])
• The expression is evaluated and output as a
date and time value based on Format
• The optional second argument gives the
requested format, e.g.
• DateFormat.GeneralDate
• DateFormat.LongDate
• Etc.
Starting Out with Visual Basic .NET 2nd Edition
3.6
Group Boxes, Form Formatting,
and the Load Event Procedure
In This Section We Discuss the GroupBox
Control, Which Is Used to Group Other
Controls, and How to Align and Center
Controls on a Form
Starting Out with Visual Basic .NET 2nd Edition
Group Box
• A Group Box creates a Logical and Physical
grouping of controls
• Physical: They are surrounded by a box and
have a title
• Logical: The controls within the box have a tab
ordering within the Group box
Starting Out with Visual Basic .NET 2nd Edition
Placing Controls within a Group Box
• Select the Group Box then double click a
control to add to the group, or
• Select the Group Box then click the desired
tool in the toolbox and draw the control
inside the Group Box, or
• Cut a control, select the Group Box, and
then paste the control
Starting Out with Visual Basic .NET 2nd Edition
Form Formatting, I
• The form defaults to an 8x8 "snap to" grid
• This can be modified by going to
Tools/Options and then selecting "Windows
Forms Designer"
• Modify the granularity of the grid
• Show the grid or not
• Either use "snap to" or not
Starting Out with Visual Basic .NET 2nd Edition
Form Formatting, II
• Multiple controls can be selected
simultaneously by:
• Click and dragging an area and/or
• Ctrl-Clicking individual objects
Starting Out with Visual Basic .NET 2nd Edition
Form Formatting, III
• Once selected controls may be organized via:
•
•
•
•
•
•
Align lefts
Align centers
Align rights
Align tops
Align middles
Align bottoms
Starting Out with Visual Basic .NET 2nd Edition
Form Formatting, IV
• Other submenu operations include:
•
•
•
•
Same Size
Horizontal and Vertical Spacing
Center in Form
Order
Starting Out with Visual Basic .NET 2nd Edition
Load Event Procedure
• Every form has a Load event procedure
• It is executed each time the form loads
into memory
• To to execute some code at that time:
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
' Code to be executed when the Form loads
End Sub
Starting Out with Visual Basic .NET 2nd Edition
3.8
More About Debugging:
Locating Logic Errors
Visual Basic .NET Allows You to Pause a Program,
Then Execute Its Statements One at a Time
After Each Statement Executes, You May Examine
Variable Contents and Property Values
Starting Out with Visual Basic .NET 2nd Edition
Debugging Problem
• The program does not work correctly (has
one or more logic errors)
• Running the program with various inputs
has not isolated where those logic errors are
hiding
• What can be done?
Starting Out with Visual Basic .NET 2nd Edition
Visual Basic .NET Debugging Aids, I
• Single Step through the program
• This amounts to executing the program a
statement at a time
• One can then see and examine:
• What is happening one statement at a time
• Where it is happening
• What the various data values are (Watches)
Starting Out with Visual Basic .NET 2nd Edition
Visual Basic .NET Debugging Aids, III
• Related debugging tools include
• Executing to a breakpoint (placed just before
you think the program's logic error may be)
• Examining the values of expressions
Starting Out with Visual Basic .NET 2nd Edition