1 / 31

Decision: Action based on Conditions

Learn about decision structures and how to write code that performs actions based on specific conditions. Explore examples of simple and complex conditions using if statements in C#.

jwashington
Download Presentation

Decision: Action based on Conditions

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Decision Structure ISYS 350

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

  3. Relational Operators • A relational operatordetermines whether a specific relationship exists between two values

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

  5. if Statement with Boolean Expression sales > 50000 if (sales > 50000) { bonus = 500; } True bonus = 500 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. temp >40 False True display “cold” display “hot” Example of if-else Statement 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. 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); } 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."): }

  13. Use Try/Catch to Detect Data Syntax Error try { 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); } catch (Exception ex) { MessageBox.Show(ex.Message); }

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

  15. Complex Condition with Logical Operators • The logical AND operator (&&) and the logical OR operator (||) allow you to connect multiple Boolean expressions to create a compound expression • The logical NOT operator (!) reverses the truth of a Boolean expression

  16. Logical Operators: &&, ||, ! • && • Cond1 Cond2 Cond1 && Cond2 T T T F F T F F • || • Cond1 Cond2 Cond1 || Cond2 T T T F F T F F • ! • Cond ! Cond T F

  17. Examples • Write a complex condition for: 12 <= Age <= 65 • Use a complex condition to describe age not between 12 and 65. • X <= 15 is equivalent to: X<15 AND X =15? (T/F)

  18. More Complex Conditions • University admission rules: Applicants will be admitted if meet one of the following rules: • 1. Income >= 100,000 • 2. GPA > 2.5 AND SAT > 900 • An applicant’s Income is 150,000, GPA is 2.9 and SAT is 800. Admitted? • Income >= 100,000 OR GPA > 2.5 AND SAT >900 • How to evaluate this complex condition? • AND has higher priority

  19. Scholarship: Business students with GPA at least 3.2 and major in Accounting or CIS qualified to apply: • 1. GPA >= 3.2 • 2. Major in Accounting OR CIS • Is a CIS student with GPA = 2.0 qualified? • GPA >= 3.2 AND Major = “Acct” OR Major = “CIS” • Is this complex condition correct? • Parenthesis, ( )

  20. NOT Set 1: Young: Age < 30 Set 2: Rich: Income >= 100,000 Young Rich

  21. Young: Age<30Rich: Income >100000 private void button1_Click(object sender, EventArgs e) { double Age, Income; Age = double.Parse(textBox1.Text); Income = double.Parse(textBox2.Text); if (Age < 30 && Income > 100000) MessageBox.Show("You are young and rich"); else MessageBox.Show("You are not young or not rich"); }

  22. Boolean (bool) Variables and Flags • You can store the values true or false in bool variables, which are commonly used as flags • A flag is a variable that signals when some condition exists in the program • False – indicates the condition does not exist • True – indicates the condition exists Boolean good; // bool good; if (mydate.Year == 2011) { good = true; } else { good = false; } MessageBox.Show(good.ToString());

  23. Using Boolean Variables and && private void button1_Click(object sender, EventArgs e) { bool Young=false, Rich=false; double Age, Income; Age = double.Parse(textBox1.Text); Income = double.Parse(textBox2.Text); if (Age < 30) Young = true; if (Income > 100000) Rich = true; if (Young && Rich) MessageBox.Show("You are young and rich"); else MessageBox.Show("You are not young OR not rich"); }

  24. Using Boolean Variables and || private void button1_Click(object sender, EventArgs e) { bool Young=false, Rich=false; double Age, Income; Age = double.Parse(textBox1.Text); Income = double.Parse(textBox2.Text); if (Age < 30) Young = true; if (Income > 100000) Rich = true; if (Young || Rich) MessageBox.Show("You are young OR rich"); else MessageBox.Show("You are not young and not rich"); }

  25. 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 { } 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"); }

  26. Compare the two programs 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"); } if (grade < 60) { MessageBox.Show("F"); } if (grade >=60 && grade < 70) { MessageBox.Show("D"); } if (grade >= 70 && grade < 80) { MessageBox.Show("C"); } if (grade >= 80 && grade < 90) { MessageBox.Show("B"); } if (grade >=90 ) { MessageBox.Show("A"); }

  27. 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");

  28. if-else-if Example private void button1_Click(object sender, EventArgs e) { bool Young=false, Rich=false; double Age, Income; Age = double.Parse(textBox1.Text); Income = double.Parse(textBox2.Text); if (Age < 30) Young = true; if (Income > 100000) Rich = true; if (Young && Rich) MessageBox.Show("You are young and rich"); else if (Young && !Rich) MessageBox.Show("You are young but not rich"); else if (!Young && Rich) MessageBox.Show("You are not young but rich"); else MessageBox.Show("You are not young and not rich"); }

  29. Working with DateTime • Get current date: • DateTime thisDate=DateTime.Today; • Get current date and time: • DateTime thisDate=DateTime.Now; • Calculate # of days between two dates: • myDate = DateTime.Parse(textBox1.Text); • DaysBetween = thisDate.Subtract(myDate).Days;

  30. Compute Age Given DOB:Age<30, Young30<=Age<65, Middle Age>=65, Old DateTime myDate, thisDate=DateTime.Today; double Age; myDate = DateTime.Parse(textBox1.Text); Age = (thisDate.Subtract(myDate).Days / 365); MessageBox.Show(Age.ToString()); If (Age<30) MessageBox.Show(“Young”); elseif (Age<65) MessageBox.Show(“Middle”); else MessageBox.Show(“Old”);

  31. Date Comparison DateTime thisDate, currentDate = DateTime.Today; thisDate = DateTime.Parse(textBox1.Text); if (currentDate>thisDate) MessageBox.Show("after"); else MessageBox.Show("before");

More Related