41
Expression and Decision Structure ISYS 350

Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

Embed Size (px)

Citation preview

Page 1: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

Expression and Decision Structure

ISYS 350

Page 2: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

Performing Calculations• Basic calculations such as arithmetic calculation can be

performed by math operatorsOperator Name of the operator Description

+ Addition Adds two numbers

- Subtraction Subtracts one number from another

* Multiplication Multiplies one number by another

/ Division Divides one number by another and gives the quotient

% Modulus Divides one number by another and gives the remainder

Other calculations: Use Math class’s methods.Example: Math.Pow(x, y)

double x = 3.0, y = 2.0, z;z=Math.Pow(x,y);

Page 3: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

Formula to Expression

CD

BA

DC

ABCD

BA

ABAAB

22

DC

AB

CD

BA

B

A

X

X

Y

X

Page 4: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

Increment/Decrement Operators

++ Increment Adds 1 to the operand (x = x + 1).

-- Decrement Subtracts 1 from the operand (x = x - 1).

int x = 14;int y = 8;Int z = 10;int result7 = --y; // result7 = 7int result8 = ++x; // result8 = 15, x = 15++z; // z= 11

double a = 8.5;double b = 3.4;double result15 = --a; // result15 = 7.5double result16 = ++b; // result16 = 4.4

Page 5: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

Compound (Shortcut) Operators

Operator

+= Adding the operand to the starting value of the variable.-= Subtracting the operand from the starting value of the variable.

*= Multiplying the operand by the starting value of the variable./= Dividing the operand by the starting value of the variable.%= Remainder after dividing the right operand by the value in the variable.

Page 6: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

Statements that use the same variable on both sides of the equals sign

count = count + 1; // count is increased by 1 count = count – 1; // count is decreased by 1 total = total + 100.0; // total is increased by 100.0 total = total – 100.0; // total is decreased by 100 price = price * .8; // price is multiplied by 8 sum = sum + nextNumber; // sum is increased by value of nextNumber

Statements that use the shortcut operators to get the same results

count += 1; // count is increased by 1 count -= 1; // count is decreased by 1 total += 100.0; // total is increased by 100.0 total -= 100.0; // total is decreased by 100.0 price *= .8; // price is multipled by 8 sum += nextNumber; // sum is increased by the value of nextNumber

Page 7: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

Decrement/Increment by 1

private void button1_Click(object sender, EventArgs e) { int myInt; myInt = int.Parse(textBox1.Text); // myInt-=1; // myInt = --myInt; --myInt; textBox1.Text = myInt.ToString(); } private void button2_Click(object sender, EventArgs e) { int myInt; myInt = int.Parse(textBox1.Text); //myInt += 1; //myInt = ++myInt; ++myInt; textBox1.Text = myInt.ToString(); }

Page 8: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

Decrement/Increment by any Step Value

private void button1_Click(object sender, EventArgs e) { int stepValue; stepValue = int.Parse(textBox2.Text); int myInt; myInt = int.Parse(textBox1.Text); myInt -= stepValue; // myInt = myInt - stepValue; textBox1.Text = myInt.ToString(); } private void button2_Click(object sender, EventArgs e) { int stepValue; stepValue = int.Parse(textBox2.Text); int myInt; myInt = int.Parse(textBox1.Text); myInt += stepValue; // myInt = myInt + stepValue; textBox1.Text = myInt.ToString(); }

Page 9: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

Prefix/Postfix Increment/Decrement Operators int a = 5;int b = 5;int y = ++a; // a = 6, y = 6int z = b++; // b = 6, z = 5

•When you use an increment or decrement operator as a prefix to a variable, the variable is incremented or decremented and then the result is assigned. •When you use an increment or decrement operator as a postfix to a variable, the result is assigned and then the variable is incremented or decremented.

Page 10: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

Counter

• Example: Keep track the number of times a user clicks a button

• Need to declare a variable:int Counter=0;

• Need to increase the counter by 1 when the button is clicked:

Counter = Counter + 1; // Or

Counter+=1; // Or

++Counter;

Question: Where to declare this variable?

Page 11: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

Example

int Counter = 0;private void button1_Click(object sender, EventArgs e) { Counter = Counter + 1; textBox1.Text = Counter.ToString(); }

private void button1_Click(object sender, EventArgs e) { int Counter = 0; Counter = Counter + 1; textBox1.Text = Counter.ToString(); }

Incorrect:

Correct:

Page 12: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

Variable Scope• The scope of a variable determines its

visibility to the rest of a program.– Procedural-level scope: declared in a procedure

and visible only in the procedure.– Class-level scope: declared in a class but outside

any procedure; visible to all procedures in the class.

Page 13: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

Decision Structure

Page 14: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

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 15: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

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 16: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

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 17: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

if Statement with Boolean Expression

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

sales > 50000

bonus = 500

True

False

Page 18: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

Tuition Rules (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 19: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

Example of if-else Statement

temp >40

display “hot”display “cold”

TrueFalse

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

Page 20: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

Tuition Rules (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 21: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

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 22: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

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 23: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

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 24: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

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."):}

Page 25: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

Use Try/Catch to Detect Data Syntax Errortry { 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); }

Page 26: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

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 27: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

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

Operator Meaning Description

&& AND Both subexpression must be true for the compound expression to be true

|| OR One or both subexpression must be true for the compound expression to be true

! NOT It negates (reverses) the value to its opposite one.

Expression Meaning

x >y && a < b Is x greater than y AND is a less than b?

x == y || x == z Is x equal to y OR is x equal to z?

! (x > y) Is the expression x > y NOT true?

Page 28: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

Logical Operators: &&, ||, !

• && • Cond1 Cond2 Cond1 && Cond2

T TT FF TF F

• ||• Cond1 Cond2 Cond1 || Cond2

T TT FF TF F

• !• Cond ! Cond

TF

Page 29: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

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)

Page 30: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

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

Page 31: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

• 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, ( )

Page 32: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

NOTSet 1: Young: Age < 30

Set 2: Rich: Income >= 100,000

Young Rich

Page 33: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

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

Page 34: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

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());

Page 35: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

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

Page 36: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

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

Page 37: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

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

int 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 38: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

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

Page 39: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

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;

Page 40: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

Compute Age Given DOB:Age<30, Young

30<=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”);

Page 41: Expression and Decision Structure ISYS 350. Performing Calculations Basic calculations such as arithmetic calculation can be performed by math operators

Date Comparison

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