Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


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

1 Decision Structure - 1 ISYS 350

2 Decision: Action based on condition Examples 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 > 1000015% tax Complex condition: – If an applicant’s GPA > 3.0 and SAT > 1200: admitted

3 Relational Operators A relational operator determines whether a specific relationship exists between two values OperatorMeaningExpressionMeaning >Greater thanx > yIs x greater than y? <Less thanx < yIs x less than y? >=Greater than or equal tox >= yIs x greater than or equal to y? <=Less than or equal tox <= yIs x less than or equal to you? ==Equal tox == yIs x equal to y? !=Not equal tox != yIs x not equal to you?

4 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; etc.; } The expression is a Boolean expression that can be evaluated as either true or false Cold outside Wear a coat True False

5 if Statement with Boolean Expression if (sales > 50000) { bonus = 500; } sales > 50000 bonus = 500 True False

6 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"); }

7 Example of if-else Statement temp >40 display “hot”display “cold” TrueFalse if (temp > 40) { MessageBox.Show(“hot”); } else { MessageBox.Show(“cold”); }

8 Tuition Calculation (2) If total units <= 12, then tuition = 1200 Otherwise, 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.

9 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"); }

10 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”.

11 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); }

12 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.

13 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

14 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 { }

15 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")); }

16 Example Special tax: –CA: 1% –WA: 1.5% –NY: 1.2% –Other states: 0.5%

17 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")); }

18 Tax Rate Schedule Rules to determine tax rate: – Taxable Income < =3000 no tax – 3000 < taxable income <= 10000 5% tax – 10000<Taxable income <= 5000015% tax – Taxable income>5000025% 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");

19 Rules to determine letter grade Avg>=90 A 80<=Avg<90 B 70<=Avg<80C 60<=Avg<70D Avg<60F

20 Compare these two programs double 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"); }

21 Compare these two programs 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"); } double grade = double.Parse(textBox1.Text); if (grade >=90) { MessageBox.Show("A"); } if (grade >=80) { MessageBox.Show("B"); } if (grade >=70) { MessageBox.Show("C"); } if (grade >=60) { MessageBox.Show("D"); } if (grade < 60) { MessageBox.Show("F"); }

22 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

23 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. Event procedure: private void textBox1_Validating(object sender, CancelEventArgs e) Two arguments: sender, e

24 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;

25 Throwing an Exception I n the following example, the user may entered invalid data (e.g. null, non- digit characters, etc) 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); }

26 Use Try/Catch to Detect Data 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."): }

27 Testing for digits only This 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.

28 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"); }


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

Similar presentations


Ads by Google