<?xml version='1.0' encoding='US-ASCII'?>
<!DOCTYPE slides PUBLIC "-//Norman Walsh//DTD Slides XML V3.0b1//EN"
	"http://docbook.sourceforge.net/release/slides/3.0b1/slides.dtd">
<slides>
	<slidesinfo>
		<title>Variables, Constants, Methods, &amp; Calculations (Chapter 3)</title>
		<abstract>
			<para>CIS 125, Visual Basic .NET I, Spring 2006</para>
		</abstract>
	</slidesinfo>
	<foilgroup>
		<title>Variables</title>
		<foil>
			<title>What is a Variable?</title>
			<variablelist>
				<varlistentry>
					<term>Variable</term>
					<listitem>
						<para> Computer memory locations where programmers can
							temporarily store data. The data may be entered by the user at
							the keyboard, or it may be read from a file, or it may be the
							result of a calculation made by the computer.</para>
						<para>The memory locations are called variables because the
							contents of the locations can change as the application is
							running. </para>
						<para>Every varialbe has a
							<emphasis>name</emphasis>,
							<emphasis>data type</emphasis>,
							<emphasis>scope</emphasis>, and
							<emphasis>lifetime</emphasis>.</para>
					</listitem>
				</varlistentry>
			</variablelist>
		</foil>
		
		<foil>
			<title>Data Type for a Variable</title>
			<para>See Figure 3.1 page 72</para>
			<variablelist>
				<varlistentry>
					<term>Boolean</term>
					<listitem>
						<para>True, False</para>
					</listitem>
				</varlistentry>
				<varlistentry>
					<term>Byte</term>
					<listitem>
						<para>0 to 255</para>
					</listitem>
				</varlistentry>
				<varlistentry>
					<term>Char</term>
					<listitem>
						<para>One Unicode character</para>
						<para>A, B, C, ...</para>
					</listitem>
				</varlistentry>
				<varlistentry>
					<term>Date</term>
					<listitem>
						<para>Thu, 01 Jan 1970 00:00:00 GMT</para>
					</listitem>
				</varlistentry>
				<varlistentry>
					<term>Decimal</term>
					<listitem>
						<para>16 bytes</para>
						<para>fixed-point number, no rounding</para>
						<para>33.3333333</para>
					</listitem>
				</varlistentry>
				<varlistentry>
					<term>Double</term>
					<listitem>
						<para>8 bytes</para>
						<para></para>
					</listitem>
				</varlistentry>
				<varlistentry>
					<term>Integer</term>
					<listitem>
						<para>4 bytes</para>
						<para>1,2,3,-10</para>
					</listitem>
				</varlistentry>
				<varlistentry>
					<term>Long</term>
					<listitem>
						<para>8 bytes</para>
						<para>1,2,3,-10</para>
					</listitem>
				</varlistentry>
				<varlistentry>
					<term>Object</term>
					<listitem>
						<para>Default data type to a variable</para>
					</listitem>
				</varlistentry>
				<varlistentry>
					<term>Short</term>
					<listitem>
						<para>-32,768 to 32,767</para>
					</listitem>
				</varlistentry>
				<varlistentry>
					<term>Single</term>
					<listitem>
						<para>11.56, -12.99</para>
					</listitem>
				</varlistentry>
				<varlistentry>
					<term>String</term>
					<listitem>
						<para>"Hello, World"</para>
					</listitem>
				</varlistentry>
			</variablelist>
		</foil>
		<foil>
			<title>Naming Variables</title>
			<para>See Figure 3.2</para>
			<para>Start with a 3 character id</para>
			<para>intScore, intRegionWest</para>
			<para>m can be used to stand for
				<emphasis>module scope</emphasis>, mintScore</para>
			<para>names must begin with a letter</para>
			<para>names can not contain punctuation</para>
			<para>names can contain numbers, but the number can not be at beginning,
				dec2002Sales</para>
		</foil>
		<foil>
			<title>Declaring a Variable</title>
			<variablelist>
				<varlistentry>
					<term>Syntax</term>
					<listitem>
						<para>accessibility variablename [As datatype][=
							initialvalue]</para>
					</listitem>
				</varlistentry>
			</variablelist>
			<para>Dim decPrice As Decimal</para>
			<para>Private mblnDataOk As Boolena = True</para>
		</foil>
		<foil>
			<title>Assigning Data To an Existing Variable</title>
			
			<programlisting>
				<![CDATA[
Dim dblRate As Double 
dblRate = .5 ]]>
			</programlisting>
			<programlisting>
				<![CDATA[
Dim decPrice As Decimal 
decPrice = .03D]]]>
					</programlisting>
		</foil>
		<foil>
			<title>Literal Type Charecters</title>
			<programlisting>
				<![CDATA[
shrAge = 35S
intHours = 4I
lngPopulation = 20500L
decRate = .03D
sngRate = .03F
dblSales = 2356R
charInitial = "A"C																									
					]]>
			</programlisting>
		</foil>
		<foil>
			<title>Convert</title>
				<programlisting>
					<![CDATA[
Convert.ToDouble (value)
Convert.ToInt16 (value)
Convert.ToInt32 (value)
Convert.ToSingle (value)
Convert.ToString (value)]]>
				</programlisting>
		</foil>
		<foil>
			<title>Writing Arithmetic Expressions</title>
			<itemizedlist>
<listitem><para>^ (exponentiation, 4^2 = 4 * 4 = 16)</para></listitem>
<listitem><para>- (negation)</para></listitem>
<listitem><para>*, / (multiplication &amp; division)</para></listitem>
<listitem><para>\ (integer division)</para></listitem>
<listitem><para>Mod (modulus arithmetic)</para></listitem>
<listitem><para>+, -</para></listitem>
</itemizedlist>
				<programlisting>
				<![CDATA[
intAge=intAge + 1					
]]>
			</programlisting>
		</foil>
		<foil>
			<title>Scope &amp; Lifetime of a Variable</title>
				<variablelist>
				<varlistentry>
					<term>Scope</term>
					<listitem>
						<para>Where in the application's code the variable can be used</para>
					</listitem>
				</varlistentry>
				<varlistentry>
					<term>Lifetime</term>
					<listitem>
						<para>How long the variable remains in the computers internal memory.</para>
					</listitem>
				</varlistentry>

							
				<varlistentry>
					<term>Procedure-Level Variable</term>
					<listitem>
						<para>Has <emphasis>procedure scope</emphasis> becuase only that procedure can use the variable. See Figure 3.10</para>
					</listitem>
				</varlistentry>
				<varlistentry>
					<term>Module-Level Variable</term>
					<listitem>
						<para>Has <emphasis>module scope</emphasis> because it can be used by all of the procedures in the form. See Figure 3.11</para>
					</listitem>
				</varlistentry>
				<varlistentry>
					<term>Block-Level Variables</term>
					<listitem>
						<para>Has <emphasis>block scope</emphasis> because it can be used by block of code If...THen...Else or For...Next</para>
					</listitem>
				</varlistentry>
			</variablelist>

		</foil>
	</foilgroup>
	<foil>
		<title>Named Constants</title>
		<variablelist>
			<varlistentry>
				<term>Syntax</term>
				<listitem>
					<para>Const constantname [As datatype][=
						expression]</para>
				</listitem>
			</varlistentry>
		</variablelist>
		<para>Const decPI As Decimal = 3.141593D</para>
		<para>Const intMAX_HOURS As Integer = 40</para>
	</foil>
	<foil>
		<title>Internally Documenting the Program Code</title>
		<para>Place an apostrophe (') before the text you want to treat as a comment.</para>
	</foil>
	<foil>
		<title>Option Explicit &amp; Option Strict</title>
		<para>By default Visual Basic .NET creates undeclared variables for you</para>
				<variablelist>
					<varlistentry>
						<term>Option Explicit On</term>
						<listitem>
							<para>Variables must be declared</para>
						</listitem>
					</varlistentry>
					<varlistentry>
						<term>Option Strict On</term>
						<listitem>

							<itemizedlist>
								<listitem><para>Strings will not implicitly convert to numbers.</para></listitem>
								<listitem><para>Numeric data types will be implicity converted to less restrictive types.</para></listitem>
								<listitem><para>Implicit conversion to a more restrictive type will cause a  syntax error.</para></listitem>
							</itemizedlist>

						</listitem>
					</varlistentry>

			</variablelist>		
	</foil>
	<foil>
		<title>Pseudocode</title>
		<para>Use short phrases to describe the steps a procedure needs to take to accomplish its goal</para>
	</foil>

	<foil>
		<title>Flowcharts</title>
		<para>See Figure 3.19 page 90</para>
	</foil>	
	<foil>
		<title>Assign a Value to a Property</title>
			<programlisting>
				<![CDATA[
Me.txtName.Text = ""
Me.lblBonus.Text = Convert.ToString(decSales * .05D)
					]]>
			</programlisting>
	</foil>
	<foil>
		<title>Using the Focus Method</title>
			<programlisting>
				<![CDATA[
Me.txtname.Focus()
					]]>
			</programlisting>
	</foil>
	<foil>
		<title>Testing and Debugging</title>
		<variablelist>
			<varlistentry>
				<term>Valid Data</term>
				<listitem>
					<para>Expected Data - ???</para>
				</listitem>
			</varlistentry>
			<varlistentry>
				<term>Invalid Valid Data</term>
				<listitem>
					<para>Unexpected Data - ???</para>
				</listitem>
			</varlistentry>
			<varlistentry>
				<term>Debugging</term>
				<listitem>
					<para>Locating errors in a program</para>
				</listitem>
			</varlistentry>			
			<varlistentry>
				<term>Syntax Errors</term>
				<listitem>
					<para>Typing Errors</para>
				</listitem>
			</varlistentry>
			<varlistentry>
				<term>Logic Errors</term>
				<listitem>
					<para>You enter instructions that don't give the expected results.</para>
			<programlisting>
				<![CDATA[
decAverage = decNum1 + decNum2 / 2
					]]>
			</programlisting>
					</listitem>
			</varlistentry>			
		</variablelist>
	</foil>
	<foil>
		<title>Formatting Numeric Output</title>
		<programlisting>
				<![CDATA[
'Currency Format					
Me.lblCommission.Text = decCommission.ToString("C")
					
'2 Decimal Didgets					
Me.lblTotal.Text = decTotal.ToString("N2")
					
'Percent
Me.lblRate.Text = decRate.ToString("P")					
					]]>
		</programlisting>
	</foil>
</slides>
