Recap……Last Time [Variables, Data Types and Constants] Variable Definition • Variable Definition Syntax: type variable_name; • Note that: • • • • You must declare a variable before using it Variable declaration can be placed anywhere in the program Readability Purpose: beginning of the main function. type: Specifies two things Input with cin • The keyword cin represents a standard input stream. The input stream represents data coming from the keyboard. • The >> is the extraction operator or get from keyboard operator. Circle : 03 Write a program that calculates and displays the area and the circumference of a circle based on its radius entered from the keyboard. [Using Constants] const qualifier #define directive const Qualifier • The const Qualifier specifies the value of the variable will not change throughout the program and any attempt to do so will generate an error. const float PI = 3.14159; Question: Why bother with using a variable when we can simply place the literal constant in its place everywhere in the code? #define Directive • Constants can be specified using the preprocessor directive #define. • This directive sets up an equivalence between an identifier and a text phrase. #define PI 3.14159 Operators, Expressions and Statements Yared Semu Addis Ababa Institute of Technology April 2012 Operators • An operator is a symbol that takes one or more arguments (operands) and operates on them to product a result. • An Operand is something that an operator acts on. • A unary operator requires one operand. • A binary operator requires two operands. Operators • Five types of Operators – Arithmetic Operators – Assignment Operators – Increment/ Decrement Operators – Relational Operators – Logical Operators Arithmetic Operators • Are binary Mathematical Operators Note • No exponentiation operator • Single division operator • Operators are overloaded to work with more than one type of object (Work on both integer and floating point data types) Integer Division • Integer division produces an integer result – Truncates the result • Examples: – 3/2 evaluates to 1 – 4/6 evaluates to 0 – 10/3 evaluates to 3 Modulus • Produces the remainder of the division • Works only with integer variables • Examples: – 5 % 2 evaluates to 1 – 12 % 4 evaluates to 0 – 4 % 5 evaluates to 4 Arithmetic Assignment (Compound Assignment) Operators • It offers a way to shorten and clarify your code. • Common Statement is C++: » Total = Total + item; • Condensed Approached: >> Total += item; Compounded Arithmetic Operators • There are arithmetic assignment operators corresponding to all arithmetic operations +=, -=, *=, /=, and %=. Example: Predict the Output #include <iostream> using namespace std; int main() { int ans = 27; ans += 10; cout<<ans<<“, ”; ans -= 7; cout<<ans<<“,”; ans *= 2; cout<<ans<<“,”; ans %= 3; cout<<ans<<“,” <<endl; return 0; } Arithmetic Operators and Precedence • Consider m*x + b which of the following is it equivalent to: >> (m*x) + b >> m* (x + b) Operator precedence tells how to evaluate expressions Standard Precedence Order • () Evaluates first, if nested innermost done first. • */% Evaluated second. If there are several then evaluate form left-to-right. • +- Evaluated third. If there are several, then evaluate form left-to-right. Example: Arithmetic Operator Precedence Evaluate the Expression: 20 – 4/5 * 2 + 3 * 5 % 4 Step 1: Step 2: Step 3: Step 4: Step 5: Step 6: Step 7 : 20 – (4/5) * 2 + 3 * 5 % 4 20 – (0 * 2) + 3 * 5 % 4 20 - 0 + (3 * 5) % 4 20 - 0 + (15 % 4) (20 - 0) + 3 20 + 3 23 Assignment Operator • Assignment Operator = – Assigns value on left to variable on right – Binary Operator (two operands) – Example: • • • • • int a = 5; float b = 9.66; char ch = ‘d’; int m, n, p ; m = n = p = 100; Assignment Operator • The part on the left hand side of the assignment operator is known as lvalue • The part on the right hand side of the assignment operator is known as rvalue Assignment(=) Operator Increment & Decrement Operators • Increment operator: increment variable by 1 • Decrement operator: decrement variable by 1 – Pre-increment: ++variable – Post-increment: variable++ – Pre-decrement: --variable – Post-decrement: variable-- Increment & Decrement Operators • ++count; or count++; increments the value of count by 1 • --count; or count--; decrements the value of count by • If x = 5; and y = ++x; – After the second statement both x and y are 6 • If x = 5; and y = x++; – After the second statement y is 5 and x is 6 Relational Operators Operator Name Example == Equality 5 == 5 // gives 1 != Inequality 5 != 5 // gives 0 < Less Than 5 < 5.5 // gives 1 <= Less Than or Equal 5 <= 5 > Greater Than 5 > 5.5 // gives 0 >= Greater Than or Equal 6.3 >= 5 // gives 1 Relational operators // gives 1 Logical Operators • Like the relational operators, logical operators evaluate to 1 or 0. Operator Name Example ! Logical Negation !(5 == 5) // gives 0 && Logical And 5 < 6 && 6 < 6 // gives 1 || Logical Or 5 < 6 || 6 < 5 // gives 1 Logical operators • Example –!20 –10 && 5 –10 || 5.5 –10 && 0 // gives 0 // gives 1 // gives 1 // gives 0 Short Circuit • C++ only evaluates what is necessary from left to right to come up with the combined relational result, ignoring the rest • E.g. Expressions • Combine literals, variables, and operators to form expression. • The expressions could be Simple Expressions or Complex Expressions. – Complex Expressions : Consists of Simple Expressions Connected by Operator. Examples • Expressions can contain: – a number literal, – a variable, – a function call, – an operator between two expressions (binary operator), – an operator applied to one expression (unary operator), – expressions in parentheses. 3.14 count sum(x, y) a +b -discount (3.14-amplitude) Statements • Roughly Equivalent to sentences in natural languages • Forms a complete unit of execution – A complete direction instructing the computer to carry out some task. • Terminating expression with a semicolon (;) • Three Kind of Statements in C++: – Expression Statements – Declaration Statements – Control Flow Statements Type Conversion • A value in any of the built-in types can be converted – Called type cast • Syntax (<data – type>)value; or <data – type> (value); • Example: – – – – (int) 3.14 long (3.14) (double) 2 (char) 122 code is 122 – (unsigned short) 3.14 // converts 3.14 to an int to give 3 // converts 3.14 to a long to give 3L // converts 2 to a double to give 2.0 // converts 122 to a char whose // gives 3 as an unsigned short • Types are considered “higher” or “lower”, based roughly on the order show below Long double > double > float > long > int > short > char • Some times the compiler does the type casting – implicit type cast • Example: – >> double d = 1; – >> int i = 10.5; – >> i = i + d; // d receives 1.0 // i receives 10 Using Library Functions Mathematical Functions The mathematical functions allow us to do mathematical operations. These operations include: • raising a number to a certain power, • computing the square root of a number, • computing the cosine of an angle, etc... . These functions are defined in the header file math.h (or cmath in standard C++). Mathematical Functions … sqrt is the name of the function that performs the square root operation. This function takes one argument of type double and returns a result of type double. Mathematical Functions … The function that computes the power of two numbers is : More examples of mathematical functions are: Predict the output_02 #include <iostream> using namespace std; int main() { long x, y, z; x = y = z = 4; y += 2; y -= 1; z *= 3; cout<< x <<“ ”<< y << “ ” << z <<endl; return 0; } Predict the output _03 #include <iostream> using namespace std; #define WHO “Abebe” #define DID “ Won” #define WHAT “the Marathon” int main() { cout<<WHO <<“ ” << DID << “ ” << WHAT <<endl; return 0; } Fix the Errors #include <iostream> using namespace std; int main() { int number1, number2; cout<<“Enter two numbers and I will multiply\n” <<“them by 50 for you.\n” cin>>number1,number2; number1 *= 50; number2 =* 50; return 0; cout<<number1<<“ ”<<number2; } Quiz_1: Predict the output #include <iostream> using namespace std; int main() { int a, x=23; a = x % 2; cout<< x <<endl<< a<<endl; return 0; } Quiz _2 : Implement an Pseudocode Write a program that implements the following algorithm. Start Read the total hours the employee has worked, TotalHours Read the hourly rate of pay for the employee, HourlyRate GrossSalary = TotalHours * HourlyRate Tax = GrossSalary * 0.1 NetSalary = GrossSalary - Tax Display NetSalary Stop Quiz _3:Currency [Write a program that will convert U.S. dollar amounts to Japanese yen and to euros. The conversion factors to use are 1dollar = 108.5 yen and 1 dollar = 0.8218 euros]