46
MIS 3200 – Unit 3 What can computers do Follow a sequence of instructions Follow different paths of instructions based on decisions Do things over and over again – loops This unit focuses mainly on decisions dealing with conditions if statement nesting if statements and / or shortcut operators

MIS 3200 – Unit 3

  • Upload
    erica

  • View
    42

  • Download
    0

Embed Size (px)

DESCRIPTION

MIS 3200 – Unit 3. What can computers do Follow a sequence of instructions Follow different paths of instructions based on decisions Do things over and over again – loops This unit focuses mainly on decisions dealing with conditions if statement nesting if statements and / or - PowerPoint PPT Presentation

Citation preview

Page 1: MIS 3200  – Unit 3

MIS 3200 – Unit 3

• What can computers do– Follow a sequence of instructions– Follow different paths of instructions based on decisions– Do things over and over again – loops

• This unit focuses mainly on decisions– dealing with conditions– if statement– nesting if statements– and / or– shortcut operators

Page 2: MIS 3200  – Unit 3

Basic program structures

• Computers are good at doing a series of operations one after the other• One way to view this is shown here

– The sequence has a starting point– There are one or more steps

• Any number of steps is possible– There is a stopping point

• For example– The click event methods you have been working

with have a sequence of steps that start with the open { and end with the closing }

– The instructions within a method are always executed top to bottom (or start to stop like you see above)

Page 3: MIS 3200  – Unit 3

REALLY IMPORTANT!

• Common Errors– Using variables before they are declared– Using the value of a variable before it has been assigned– Outputting final results before they are calculated

• Normal processing starts at the top and moves towards the bottom – ALWAYS - the only “exception” is when you are in a loop!!

Page 4: MIS 3200  – Unit 3

Program structures 2

• Computers need to make decisions• They do that by testing conditions – Is this person over 18?– Is this sale taking place in Ohio?– Is this package going to shipping zones 5 or 6?– Did the Bobcats beat the Miami?– Is this employee eligible for overtime pay and if they are

did they work enough hours to earn it?– Is this student and MIS major or a Finance major or a

Marketing major?

Page 5: MIS 3200  – Unit 3

Decisions 2• Some decisions are one-sided – if the condition is true

do something (B), if not just skip to the next thing (C)• One way to show this is

• If the condition is true– Do the things at B– Once B is complete move to C

• If the condition is false– Go directly to C

TRUE or FALSE: regardless of the condition, will you always end up at C?

Page 6: MIS 3200  – Unit 3

Decisions 3• Some decisions are two-sided– Do one thing if the condition is true (B)– Do something different (C) if the condition is false

TRUE or FALSE: Regardless of which branch you take, will you always end up at (D)?

Page 7: MIS 3200  – Unit 3

Program structures 3• Computers need to do some things over and over in

a loop (the technical term is iteration)• There are several ways to create loops but the most

common one looks like this– test a condition– if the condition is true, do the

things at B– once finished with B go back

and test the condition again– if the condition is true go to B, if not, go to C

What do you think will happen if the condition is false from the beginning?

Page 8: MIS 3200  – Unit 3

Decision making in C#• The most common structure in C# of making

decisions is the if statement– One sided decision if

– Two sided decision if else

Page 9: MIS 3200  – Unit 3

Conditions• Conditions, or logical expressions, have only two

possible value: true and false– Can be as simple as a Boolean variable (true/false)

– Can be a relational expression!!

Page 10: MIS 3200  – Unit 3

Relational operators

• There are six types of relations that can be tested

Relationship Relational operator

Equality ==

Inequality (not equal) !=

Greater than >

Greater than or equal >=

Less than <

Less than or equal <=

Page 11: MIS 3200  – Unit 3

Relational expressions

• Only have two possible values: true or false

Page 12: MIS 3200  – Unit 3

Two-sided if statement• Sometimes you want to do one thing if a condition is

true and something different if it is false

Page 13: MIS 3200  – Unit 3

Nested if

• Sometimes we need to consider two or more conditions before we can act

• One approach– Put one if statement inside another so you only look at it if

the first one is true• The if statement inside begins before the oen outside

– This is called nesting and the second if statement can be on either the true or false side of the first if statement

Page 14: MIS 3200  – Unit 3

Nested if - example

You only get to this part if the employee is an Hourly employee

If the employee is not Hourly, you immediately skip to here

Page 15: MIS 3200  – Unit 3

Another approach

• Nested if statements are often used when we need to test two or more conditions at the same time. Sometimes we need– All conditions to be true before we do something– Any one of several conditions to be true before we do

something• C# provides a way to test more than one condition in

a single if statement

Page 16: MIS 3200  – Unit 3

Multiple conditions, all true• && which is called an AND operation– Do something ONLY if all conditions are true– Don’t do it if ANY condition is false– For example, and employee is an hourly employee AND

has worked more than 40 hours– In C# the AND operation is represented by &&

Both sides of the && operator must be logical conditions – they must have or produce a value of either true or false

Page 17: MIS 3200  – Unit 3

Multiple conditions, at least one of which is true

• || which is called an OR operation– Do something if one or more of the conditions is true– Don’t do it if ALL conditions are false– For example, give a discount to a young person or an older

person– In C# the OR operation is indicated by || (note, this symbol is

normally found over the \ key on most keyboards)

Both sides of the || operator must be logical conditions – they must have or produce a value of either true or false

Page 18: MIS 3200  – Unit 3

Web Controls for Decisions

LIST CONTROLS• CheckBoxList• DropDownList• ListBox• RadioButtonList

NON- LIST CONTROLS• CheckBox• RadioButton

Some are lists, while others are not!

Page 19: MIS 3200  – Unit 3

Handling different controls

NON-LIST• Use CheckChanged for

method name• Use .Checked in the if

statement• Used with checkboxes• Values stored in .Text

LIST• Use SelectedIndexChanged for

method name• Use .SelectedValue in the if

statement• Used with CBL & RBL• Values stored in Items

Page 20: MIS 3200  – Unit 3

RadioButtonList: Adding

– Similar to RadioButtons but easier to use when you have multiple choices

– Choices are represented by a series of ListItems– ListItems are created using the EditItems… option

of the smart menu

New RadioButtonList

Smart menu button

RadioButtonList with expanded smart menu – click on Edit Items…

Page 21: MIS 3200  – Unit 3

RadioButtonList: Editing

Click to add a new ListItem

New ListItem with Text and Value set

The Text property is what the user sees

The Value property is what the program sees and and the value used in decisions

Completed RadioButtonList with its RepeatDirection property set to Vertical

Completed RadioButtonList with its RepeatDirection property set to Horizontal

Page 22: MIS 3200  – Unit 3

RadioButtonList: Processing

• There is only one event, a SelectedIndexChanged event, for the entire RadioButtonList

• Once the event fires there are several ways to determine which button is clicked

Page 23: MIS 3200  – Unit 3

Shortcut operator are of two types• Accumulation – A value is added to the value & stored in another variable– And the result is stored back in the same variable

• Moving by one value– When the new value only changes by ONE (+1 or -1)

Shortcut operators

Page 24: MIS 3200  – Unit 3

Accumulation

Standard operationintCnt = intCnt + 1;intDaysLeft = intDaysLeft – 1;decDoubleSeries = decDoubleSeries * 2.0M;decDiminish = decDiminish / 100.00M;strNameList = strNameList + “, ” + strNew

It works for string concatenation (i.e. accumulation) too!

shortcutintCnt += 1;intDaysLeft -= 1;decDoubleSeries *= 2.0M;decDiminish /= 100.00M;strNameList += “, ” + strNew

Page 25: MIS 3200  – Unit 3

Adding or Subtracting by ONE

• This is a simplification of Accumulation

intCnt +=1; intCnt++;intCnt -=1; intCnt--;

Page 26: MIS 3200  – Unit 3

Try it – L1

• This exercise will give you a chance to use if statements and test different conditions

1. Be sure ASPPub is on your desktop, open VWD and open ASPPub as your website

2. Select Unit3 under MIS3200 and add a new web page called yourLastNameU3L1.aspx

3. Click in the MainContent area and press Enter several times4. In the top paragraph type UNIT 3 – L1 – USING IF

STATEMENTS

If you have problems with any of this, please refer back to L1 instructions in previous units.

Page 27: MIS 3200  – Unit 3

L1 #25. Convert the text to an h2 heading and make it have white

letters on a dark green background6. Add a table to the second paragraph. The table should have 8

rows and 3 columns7. In the first row

– first column, type Enter a state abbreviation – Drop a TextBox immediately after the text– Change the (ID) to txtState

8. Drop a button in the second column– Name the (ID) to btnState– Change the Text to Test State

Page 28: MIS 3200  – Unit 3

L1 #39 Drop a Label in the third column

– Change the (ID) to lblState– Clear the Text

10 Double-click the Test State button– Add appropriate method level comments– Add the following code within the button’s method {}

11 Run the page and test with different values in the text box

Page 29: MIS 3200  – Unit 3

L1 #412 In the second row, first column

– Type Enter a negative whole number– Drop a TextBox after the words

• Change its (ID) to txtNegative

– Drop a RequiredFieldValidator after the TextBox• Change the (ID) to rfvNegativeNumber• Change the ControlToValidate to txtNegative• Change the ErrorMessage to The negative number is required• Change the Text to *• Change the ForeColor to Red• Change the ValidationGroup to group1

Note: Validation controls are normally in a single group. If you want to have a few controls work together you put them in a ValidationGroup much like can place radio buttons in a group.

Page 30: MIS 3200  – Unit 3

L1 #5– Drop a CompareValidator after the RequiredFieldValidator

• Set the (ID) to cvNegative• Set the ControlToValidate to txtNegative• Set ErrorMessage to The negative number must be a whole number• Set the Text to *• Set ForeColor to Red• Set Operator to DataTypeCheck• Set Type on Integer• Set ValidationGroup to group1

– Drop a ValidationSummary after the CompareValidator• Set the (ID) to vsNegative• Set ForeColor to Red• Set ShowMessageBox to true• Set ShowSummary to false• Set ValidationGroup to group1

Page 31: MIS 3200  – Unit 3

L1 #613 In the second column of the second row

– Drop a Button• Set the (ID) to btnNegative• Set Text to Test Number• Set ValidationGroup to group1

14 In the third column of the second row– Drop a Label

• Set the (ID) to lblNegative• Clear the text

15 Double-click the Test Number button– Convert the contents of txtNegative to an integer– Test to see if the value is negative and display a message

(see next slide)

Related Validators, ValidationSummaries and Buttons all have to be in the same ValidationGroup

Page 32: MIS 3200  – Unit 3

L1 #7

– Add appropriate method level comments– Run the page and test to be sure everything is working

Page 33: MIS 3200  – Unit 3

L1 #813 In the first column of the third row

– Type Enter a number that is less than 18 or greater than 64– Drop a TextBox after the message

• Set the (ID) to txtOrTest

14 In the middle column of the third row– Drop a Button

• Set the (ID) to btnOrTest• Set the Text to Test Number

15 In the third column– Drop a Label

• Set the (ID) to lblOrTest• Clear the Text

(NOTE: you would normally use Validators here to assure good data but we are omitting them for now to save time. Just remember that L3 assignments always require validation!)

Page 34: MIS 3200  – Unit 3

L1 #916 Double-click the Test Number button in this row

– Enter appropriate method level comments– Convert the context of txtOrTest to an integer– Test it to see if it meets the criteria and display a message

• In this example we have two disconnected values that are acceptable, either less than 18 OR greater than 64, so the test we need to use is the OR operator

17 Verify - run the page and test to be sure you get the correct results

Page 35: MIS 3200  – Unit 3

L1 #1018 In the first column of the fourth row– Type Enter a number that is between 18 and 64 inclusive– Drop a TextBox after the message

• Set the (ID) to txtAndTest

19 In the middle column of the fourth row– Drop a Button

• Set the (ID) to btnAndTest• Set the Text to Test Number

20 In the third column– Drop a Label

• Set the (ID) to lblAndTest• Clear the Text

Page 36: MIS 3200  – Unit 3

21 Double-click the Test Number button in this row– Enter appropriate method level comments– Convert the context of txtAndTest to an integer– Test it to see if it meets the criteria and display a message

• In this example we have a continuous range of acceptable values so the test we need to use is the AND operator

22 Run the page and test to be sure you get the correct results

L1 #11

Page 37: MIS 3200  – Unit 3

L1 #1223 Double check to be sure everything works24 Open your MIS3200 home page and and a link to this L1

assignment25 Copy ASPPub back to your ASPNET account and submit your

MIS Portfolio public URL to the Unit 3.1 L1 drop box.

Page 38: MIS 3200  – Unit 3

L2

1 Open ASPPub2 Copy your xU3L1.aspx file, paste it back in the Unit3 directory

and rename it yourLastNameU3L2.aspx3 In the first column of row 5 of the new file

– Drop a CheckBox• Set the (ID) to ckbAge• Set AutoPostBack to true• Set the Text to 18 and over

4 Skip the the right-most column– Drop a Label

• Change (ID) to lblAge• Clear the Text

We will talk about this more during the next class, but the AutoPostBack property needs to be set to true if we want to process the CheckBox as soon as its value changes

Page 39: MIS 3200  – Unit 3

L2 #25 Double-click the CheckBox– This method needs to see if the CheckBox is checked and

output an appropriate message

Page 40: MIS 3200  – Unit 3

L2 #35 In the first column of row 6– Type Gender with Radio Buttons– Drop a RadioButton after the text

• Set (ID) to rbMale• Set Text to Male• Set AutoPostBack to true and set the GroupName to gender

– Drop another RadioButton after the first one• Set (ID) to rbFemale• Set Text to Female• Set AutoPostBack to true and set the GroupName to gender

6 In the right-most column of row 6– Drop a Label

• Set (ID) to lblGender1• Clear the Text

Page 41: MIS 3200  – Unit 3

L2 #47 Double-click rbMale– Enter code to determine if the button is checked and display an

appropriate message it if is

8 Double-click rbFemale– Enter code to determine if the button is checked and display an

appropriate message it if is

9 Run the page and test to be sure the new row works correctly (Notice any weird behavior? How could we address it? This is typically why we will use RadioButtonLists instead of RadioButtons)

Page 42: MIS 3200  – Unit 3

L2 #5

10 In the left-most column of row seven– Type Gender with a Radio Button List– Drop a RadioButtonList after the text• Set (ID) to rblGender• Set AutoPostBack to True• Click the smart menu (see slide 20) and select Edit Items…– Add an item with Text = Male and Value = Male and– Add a 2nd item with Text = Female and Value = Female

11 In the right-most column of row seven– Drop a Label• Set (ID) to lblGender2• Clear the Text

Page 43: MIS 3200  – Unit 3

12 Double-click the RadioButtonList– Write code to see which button is selected and output an

appropriate message

13 Run the page and test to see that the new code works properly (did we really need to nest the 2nd if statement? In this case, no,

L2 #6

Page 44: MIS 3200  – Unit 3

L2 #714 In the first cell of row eight– Drop a Button• Set (ID) to btnClearEverything• Set Text to Clear Everything

15 Double-click the button– Write code that clears the Text of all the Labels and

TextBoxes– Write code to set the Checked property of all CheckBoxes

and RadioButtons to false (this unselects everything)– Write code to set the SelectedIndex property of the

RadioButtonList to -1 (-1 indicates that no value is selected in the list)

Page 45: MIS 3200  – Unit 3

L2 #8

16 Test everything again17 Link this page to your MIS3200 homepage18 Copy ASPPub back to your ASPNet account and submit your MIS Portfolio

public URL to the Unit 3.1 L2 drop box

Page 46: MIS 3200  – Unit 3

Think About It!• What does an if statement allow us to do?• What is a nested if statement?• What function is performed by these shortcut

operators?– += -= *= /=

• What about relational operators?– == != > >= < <=

• How are increment/decrement operators used?• ++ --