27
Decision Structure - 1 ISYS 350

Decision Structure - 1 ISYS 350. Decision: Action based on condition Examples Simple condition: – If total sales exceeds $300 then applies 5% discount;

Embed Size (px)

Citation preview

Page 1: Decision Structure - 1 ISYS 350. Decision: Action based on condition Examples Simple condition: – If total sales exceeds $300 then applies 5% discount;

Decision Structure - 1

ISYS 350

Page 2: Decision Structure - 1 ISYS 350. Decision: Action based on condition Examples Simple condition: – If total sales exceeds $300 then applies 5% discount;

Decision: Action based on conditionExamples

• Simple condition:– If total sales exceeds $300 then applies 5%

discount; otherwise, no discount.• More than one condition:

• Taxable Income < =3000 no tax• 3000 < taxable income <= 10000 5% tax• Taxable income > 10000 15% tax

• Complex condition:– If an applicant’s GPA > 3.0 and SAT > 1200:

admitted

Page 3: Decision Structure - 1 ISYS 350. Decision: Action based on condition Examples Simple condition: – If total sales exceeds $300 then applies 5% discount;

Relational Operators

• A relational operator determines whether a specific relationship exists between two values

Operator Meaning Expression Meaning

> Greater than x > y Is x greater than y?

< Less than x < y Is x less than y?

>= Greater than or equal to x >= y Is x greater than or equal to y?

<= Less than or equal to x <= y Is x less than or equal to you?

== Equal to x == y Is x equal to y?

!= Not equal to x != y Is x not equal to you?

Page 4: Decision Structure - 1 ISYS 350. Decision: Action based on condition Examples Simple condition: – If total sales exceeds $300 then applies 5% discount;

A Simple Decision Structure• The flowchart is a single-alternative decision

structure

• It provides only one alternative path of execution

• In C#, you can use the if statement to write such structures. A generic format is:

if (expression)

{

Statements;

Statements;

etc.;

}

• The expression is a Boolean expression that can be evaluated as either true or false

Coldoutside

Wear a coat

True

False

Page 5: Decision Structure - 1 ISYS 350. Decision: Action based on condition Examples Simple condition: – If total sales exceeds $300 then applies 5% discount;

if Statement with Boolean Expression

if (sales > 50000){ bonus = 500;}

sales > 50000

bonus = 500

True

False

Page 6: Decision Structure - 1 ISYS 350. Decision: Action based on condition Examples Simple condition: – If total sales exceeds $300 then applies 5% discount;

Tuition Calculation (1)• Tuition is $1200. If you take more than 12

units, each unit over 12 will be charged $200.

private void button1_Click(object sender, EventArgs e) { int units; double tuition; units = int.Parse(textBox1.Text); tuition = 1200.00; if (units > 12) { tuition = 1200.00 + 200 * (units - 12); } textBox2.Text = tuition.ToString("C"); }

Page 7: Decision Structure - 1 ISYS 350. Decision: Action based on condition Examples Simple condition: – If total sales exceeds $300 then applies 5% discount;

Example of if-else Statement

temp >40

display “hot”display “cold”

TrueFalse

if (temp > 40){ MessageBox.Show(“hot”);}else{ MessageBox.Show(“cold”);}

Page 8: Decision Structure - 1 ISYS 350. Decision: Action based on condition Examples Simple condition: – If total sales exceeds $300 then applies 5% discount;

Tuition Calculation (2)If total units <= 12, then tuition = 1200Otherwise, tuition = 1200 + 200 per additional unit

private void button1_Click(object sender, EventArgs e) { int units; double tuition; units = int.Parse(textBox1.Text); if (units <= 12) tuition = 1200.00; else tuition = 1200.00 + 200 * (units - 12); textBox2.Text = tuition.ToString("C"); }

Note: If the if block contains only one line code, then the { } is optional.

Page 9: Decision Structure - 1 ISYS 350. Decision: Action based on condition Examples Simple condition: – If total sales exceeds $300 then applies 5% discount;

Compute Weekly Wage• For a 40-hour work week, overtime hours over 40

are paid 50% more than the regular pay.

private void button1_Click(object sender, EventArgs e) { double hoursWorked, hourlyPay, wage; hoursWorked = double.Parse(textBox1.Text); hourlyPay = double.Parse(textBox2.Text); if (hoursWorked <= 40) wage=hoursWorked*hourlyPay; else wage=40*hourlyPay + 1.5*hourlyPay*(hoursWorked-40); textBox3.Text = wage.ToString("C"); }

Page 10: Decision Structure - 1 ISYS 350. Decision: Action based on condition Examples Simple condition: – If total sales exceeds $300 then applies 5% discount;

Example: if with a block of statements

If total sales is greater than 1000, then the customer will get a 10% discount ; otherwise, the customer will get a 5% discount. Create a form to enter the total sales and use a button event procedure to compute and display the net payment in a textbox. And display a message “Thank you very much” if then total sales is greater than 1000; otherwise display a message “Thank you”.

Page 11: Decision Structure - 1 ISYS 350. Decision: Action based on condition Examples Simple condition: – If total sales exceeds $300 then applies 5% discount;

private void button1_Click(object sender, EventArgs e) { double totalSales, discountRate, netPay; string myMsg; totalSales=double.Parse(textBox1.Text); if (totalSales <= 1000) { discountRate = .05; netPay = totalSales * (1 - discountRate); myMsg = "Thank you!"; } else { discountRate = .1; netPay = totalSales * (1 - discountRate); myMsg = "Thank you very much!"; } textBox2.Text = netPay.ToString("C"); MessageBox.Show(myMsg); }

Page 12: Decision Structure - 1 ISYS 350. Decision: Action based on condition Examples Simple condition: – If total sales exceeds $300 then applies 5% discount;

Practices• 1. The average of two exams is calculated by this rule:

60% * higher score + 40% * lower score. Create a form with two textboxes to enter the two exam scores and use a button event procedure to compute and display the weighted average with a MessageBox.Show statement.

• 2. An Internet service provider offers a service plan that charges customer based on this rule:

• The first 20 hours: $10

• Each additional hour: $1.5

Create a form with a textbox to enter the hours used and use a button event procedure to compute and display the service charge with a MessageBox.Show statement.

Page 13: Decision Structure - 1 ISYS 350. Decision: Action based on condition Examples Simple condition: – If total sales exceeds $300 then applies 5% discount;

The if-else-if Statement• Example:

– Rules to determine bonus:• JobCode = 1, Bonus=500• JobCode = 2, Bonus = 700• JobCode = 3, Bonus = 1000• JobCode = 4, Bonus=1500

Page 14: Decision Structure - 1 ISYS 350. Decision: Action based on condition Examples Simple condition: – If total sales exceeds $300 then applies 5% discount;

The if-else-if Statement• You can also create a decision structure that evaluates multiple conditions

to make the final decision using the if-else-if statement• In C#, the generic format is:

if (expression){}else if (expression){}else if (expression){}…else {}

Page 15: Decision Structure - 1 ISYS 350. Decision: Action based on condition Examples Simple condition: – If total sales exceeds $300 then applies 5% discount;

Code Example

private void button1_Click(object sender, EventArgs e) { int jobCode; double bonus; jobCode = int.Parse(textBox1.Text); if (jobCode == 1) { bonus = 500; } else if (jobCode == 2) { bonus = 700; } else if (jobCode == 3) { bonus = 1000; } else { bonus = 1500; } MessageBox.Show("Your bonus is: " + bonus.ToString("c")); }

Page 16: Decision Structure - 1 ISYS 350. Decision: Action based on condition Examples Simple condition: – If total sales exceeds $300 then applies 5% discount;

Example• Special tax:

– CA: 1%– WA: 1.5%– NY: 1.2%– Other states: 0.5%

Page 17: Decision Structure - 1 ISYS 350. Decision: Action based on condition Examples Simple condition: – If total sales exceeds $300 then applies 5% discount;

Code

private void button1_Click(object sender, EventArgs e) { string state; double taxRate; state = textBox1.Text; if (state == "CA") { taxRate = 0.01; } else if (state == "WA") { taxRate = 0.015; } else if (state == "NY") { taxRate = .012; } else { taxRate = .005; } MessageBox.Show("The tax rate is: " + taxRate.ToString("p")); }

Page 18: Decision Structure - 1 ISYS 350. Decision: Action based on condition Examples Simple condition: – If total sales exceeds $300 then applies 5% discount;

Tax Rate Schedule • Rules to determine tax rate:

– Taxable Income < =3000 no tax– 3000 < taxable income <= 10000 5% tax– 10000<Taxable income <= 50000 15% tax– Taxable income>50000 25%

double taxableIncome, taxRate, tax; taxableIncome = double.Parse(textBox1.Text); if (taxableIncome <= 3000) { taxRate = 0; } else if (taxableIncome<=10000) { taxRate= .05; } else if (taxableIncome <= 50000) { taxRate = .15; } else { taxRate = .25; } tax = taxableIncome * taxRate; textBox2.Text = tax.ToString("C");

Page 19: Decision Structure - 1 ISYS 350. Decision: Action based on condition Examples Simple condition: – If total sales exceeds $300 then applies 5% discount;

Rules to determine letter grade

• Avg>=90 A• 80<=Avg<90 B• 70<=Avg<80 C• 60<=Avg<70 D• Avg<60 F

Page 20: Decision Structure - 1 ISYS 350. Decision: Action based on condition Examples Simple condition: – If total sales exceeds $300 then applies 5% discount;

Compare these two programsdouble grade = double.Parse(textBox1.Text);if (grade < 60) { MessageBox.Show("F"); }else if (grade < 70) { MessageBox.Show("D"); }else if (grade < 80) { MessageBox.Show("C"); }else if (grade < 90) { MessageBox.Show("B"); }else { MessageBox.Show("A"); }

double grade = double.Parse(textBox1.Text);if (grade >=90) { MessageBox.Show("A"); }else if (grade >=80) { MessageBox.Show("B"); }else if (grade >=70) { MessageBox.Show("C");}else if (grade >=60) { MessageBox.Show("D");}else { MessageBox.Show("F");}

Page 21: Decision Structure - 1 ISYS 350. Decision: Action based on condition Examples Simple condition: – If total sales exceeds $300 then applies 5% discount;

Throwing an Exception

• In the following example, the user may entered invalid data (e.g. null) to the milesText control. In this case, an exception happens (which is commonly said to “throw an exception”).

• The program then jumps to the catch block.• You can use the following to display an exception’s default error message:

catch (Exception ex) { MessageBox.Show(ex.Message); }

Page 22: Decision Structure - 1 ISYS 350. Decision: Action based on condition Examples Simple condition: – If total sales exceeds $300 then applies 5% discount;

Use Try/Catch to Detect Data Syntax Error

Note: Show a system generated error message:

catch (Exception ex) { MessageBox.Show(ex.Message); }

try{ double miles; double gallons; double mpg;

miles = double.Parse(milesTextBox.Text); gallons = double.Parse(gallonsTextBox.Text); mpg = miles / gallons; mpgLabel.Text = mpg.ToString();}catch{ MessageBox.Show("Invalid data was entered."):}

Page 23: Decision Structure - 1 ISYS 350. Decision: Action based on condition Examples Simple condition: – If total sales exceeds $300 then applies 5% discount;

Input Validation

• Numbers are checked to ensure they are:– Within a range of possible values– Reasonableness– Not causing problems such as division by 0.– Containing only digits

• IsNumeric

• Texts are checked to ensure correct format.– Phone #, SSN.

• Required field

Page 24: Decision Structure - 1 ISYS 350. Decision: Action based on condition Examples Simple condition: – If total sales exceeds $300 then applies 5% discount;

Text Box Validation

• Useful property:– CausesValidation: true

• Useful events– TextChanged: default event

• Triggered whenever the textbox is changed.

– Validating – useful for validating data entered in the box• Triggered just before the focus shifts to other control.

Page 25: Decision Structure - 1 ISYS 350. Decision: Action based on condition Examples Simple condition: – If total sales exceeds $300 then applies 5% discount;

Data Entered in Textbox1 cannot be greater than 2000

private void textBox1_Validating(object sender, CancelEventArgs e) { double enteredData; enteredData = double.Parse(textBox1.Text); if (enteredData > 2000) { MessageBox.Show("The data cannot be greater than 2000!"); e.Cancel=true; } }

Note: e.Cancel=true;

Page 26: Decision Structure - 1 ISYS 350. Decision: Action based on condition Examples Simple condition: – If total sales exceeds $300 then applies 5% discount;

Testing for digits onlyThis example uses the Double.Parse method trying to convert the data entered in the box to double. If fail then it is not numeric.

private void textBox1_Validating(object sender, CancelEventArgs e) { try { double.Parse(textBox1.Text); e.Cancel = false; } catch { e.Cancel = true; MessageBox.Show("Enter digits only"); } }

Note: VB has an IsNumeric function and Excel has an ISNumber function.

Page 27: Decision Structure - 1 ISYS 350. Decision: Action based on condition Examples Simple condition: – If total sales exceeds $300 then applies 5% discount;

Testing for digits only and cannot be greater than 2000

private void textBox1_Validating(object sender, CancelEventArgs e) { try { double myData; myData= double.Parse(textBox1.Text); if (myData>2000) { MessageBox.Show("The data cannot be greater than 2000!"); e.Cancel=true; } } catch { e.Cancel = true; MessageBox.Show("Enter digits only"); } }