Chapter 2 Introduction to C++ 1 Topics 2.1 Parts of a C++ Program 2.2 The cout Object 2.3 The #include Directive 2.4 Variables and Constants 2.5 Identifiers 2.6 Integer Data Types 2.7 The char Data Type 2.8 Floating-Point Data Types 2 Topics (continued) 2.9 The bool Data Type 2.10 Determining the Size of a Data Type 2.11 Variable Assignments and Initialization 2.12 Scope 2.13 Arithmetic Operators 2.14 Comments 2.15 Programming Style 2.16 Standard and Prestandard C++ 3 2.1 Parts of a C++ Program comment preprocessor directive which namespace to use // sample C++ program #include <iostream> using namespace std; beginning of int main() function named main beginning of { block for main output statement cout << "Hello, there!"; return 0; string constant } end of block send 0 to for main operating system 4 Special Characters Character Name Meaning // Double forward slash Pound sign Beginning of a comment # < > ( ) { } " " ; Beginning of preprocessor directive Open/close brackets Enclose filename in #include Open/close Used when naming a parentheses function Open/close brace Encloses a group of statements Open/close Encloses string of quotation marks characters Semicolon End of a programming statement 5 Ex. int main() } // A crazy mixed up program return 0; #include <iostream> cout<<“In 1492 Columbus sailed the ocean blue.”; { using namespace std; 6 2.2 The cout Object Displays information on computer screen Uses << to send information to cout: cout << "Hello, there!"; Can be used to send > 1 item to cout: cout << "Hello, " << "there!"; Or: cout << "Hello, "; cout << "there!"; 7 The cout Object To get multiple lines of output on screen: - Use endl cout << "Hello, there!" << endl; - Use \n in output string cout << "Hello, there!\n"; 8 Common Escape Sequences Escape sequence Name Description \n Newline Causes the cursor to go to the next line for subsequent print \t Horizontal tab Causes the cursor to skip over to the next tab stop \a Alarm Causes the computer to beep \b Backspace Causes the cursor to back up, or move left one position \r Return Causes the cursor to go to the beginning of the current line, not the next line \\ Backslash Causes a backslash to be printed \’ Single quote Causes a single quotation mark to be printed \’’ Double quota Causes a double quotation mark to be printed. 9 2.3 The #include Directive Inserts the contents of another file into the program Is a preprocessor directive • NOT part of the C++ language • #include lines not seen by compiler Do not use ; at end of #include line • Example: #include <iostream> No ; goes here 10 2.4 Variables and Constants Variable • Has a name and a type of data it can hold data type char letter; variable name • Is used to reference a location in memory where a value can be stored • Must be defined before it can be used • This value can be changed (i.e. can “vary”) 11 Variables • If a new value is stored in the variable, it replaces the previous value • The previous value is overwritten and can no longer be retrieved int age; age = 17; cout << age; age = 18; cout << age; // // // // age is 17 Displays 17 Now age is 18 Displays 18 12 Constants Constant • Data item whose value does not change during program execution • Constants are also called literals ‘A’ "Hello" 12 3.14 // // // // character constant string constant integer constant floating-point constant 13 Example // This program has literals and a variable. #include <iostream> using namespace std; String literals int main() { int apples; Integer literal apples = 20; cout << "Today we sold " << apples << " bushels of apples.\n"; return 0; } 14 2.5 Identifiers Programmer-chosen names to represent parts of the program: • variables, functions, etc. Name should represent the use of the variable Cannot use C++ key words as identifiers Must begin with alpha character or _, followed by alpha, numeric, or _ Upper- and lower-case characters are distinct 15 The rules for legal Identifiers The first character must be one of the letters a through z, A through Z, or an underscore character _. After the first character you may use the letters a through z or A through Z, the digits 0 through 9, or underscores. Uppercase and lowercase characters are distinct. No space in a variable name 16 Valid and Invalid Identifiers IDENTIFIER VALID? REASON IF INVALID totalSales total_Sales total.Sales 4thQtrSales totalSale$ 17 2.6 Data Types Data type determines the kind of information that a data may have Two kinds of data type • Numeric Integer Floating point • character 18 Integer Data Types Integer data type is designed to hold whole numbers • Can be signed or unsigned: 12 -6 +3 • Available in different sizes (number of bytes): short, int, and long • Size of short size of int size of long 19 Example //This program uses some of //the different integer type variables. #include <iostream> using namespace std; int main() { int length, width, height; unsigned int area; long volume; length = 100; width = 100; height = 100; area = 10000; volume = 1000000; …… return 0; } 20 Defining Variables Variables of the same type can be defined - On separate lines: int length; int width; unsigned int area; - On the same line: int length, width; unsigned int area; Variables of different types must be in different definitions 21 Integral Constants Integer constants stored in as ints by default To store an integer constant in a long memory location, put ‘L’ at the end of the number: 1234L Constants that begin with ‘0’ (zero) are base 8: 075 Constants that begin with ‘0x’ are base 16: 0x75A 22 2.7 The char Data Type Used to hold characters or very small integer values Usually 1 byte of memory Numeric value of character from character set is stored in memory: CODE: char letter; letter = 'C'; MEMORY: letter 67 23 The char Data Type ASCII: is a method for encoding characters A B C Is stored in memory as 65 66 67 Computer displays the character that corresponds with the numeric code 24 Character Literals Character literals • Enclosed in single quotation marks String literals • Enclosed in double quotation marks Example: ‘A’ --- character literals “A” --- string literals 25 Character Strings Can store a series of characters in consecutive memory locations: "Hello" Stored with the null terminator, \0, at the end: H e l l o \0 Comprised of the characters between the " “ 26 Example ‘A’ A 65 are stored as “A” A \0 65 0 char letter; letter =‘A’; //This will work letter =“A”; //This will not work All escape sequence, say \n, internally, are just 1 byte 27 2.8 Floating-Point Data Types Designed to hold real numbers 12.45 -3.8 Stored in a form similar to scientific notation All numbers are signed Available in different sizes (number of bytes): float, double, and long double Size of float size of double size of long double 28 Floating-point Constants Can be represented in - Fixed point (decimal) notation: 31.4159 0.0000625 - E notation: 3.14159e1 6.25e-5 Are double by default Can be forced to be float (3.14159f) or long double (0.0000625L) 29 Assigning Floating-Point Values to Integer Variables When a floating-point value (variable) is assigned to integer variable, the fractional part of the value is discarded. int number; float f; f=7.9; number=7.9; //assigns 7 to number number = f; //assigns 7 to number 30 2.9 The bool Data Type Represents values that are true or false bool variables are stored as small integers false is represented by 0, true by 1: bool allDone = true; bool finished = false; allDone finished 1 0 31 Example // A program for demonstrating boolean variables #include <iostream> using namespace std; int main() { bool boolValue; boolValue = true; cout << boolValue << endl; boolValue = false; cout << boolValue << endl; return 0; 1 0 } 32 2.10 Determining the Size of a Data Type The sizeof operator gives the size of any data type or variable: float amount; cout << "A float is stored in " << sizeof(float) << "bytes\n"; cout << "Variable amount is stored in " << sizeof(amount) << "bytes\n"; 33 Example // This program determines the size of integers, long integers, and long doubles. #include <iostream> using namespace std; int main() { long double apple; cout << "The size of an integer is " << sizeof(int); cout << " bytes.\n"; cout << "The size of a long integer is " << sizeof(long); cout << " bytes.\n"; cout << "An apple can be eaten in " << sizeof(apple); cout << " bytes!\n"; return 0; } The size of an integer is 4 bytes. The size of a long integer is 4 bytes. An apple can be eaten in 8 bytes! 34 2.11 Variable Assignments and Initialization Assignment: Uses the = operator Has a single variable on the left side and a value (constant, variable, or expression) on the right side Copies the value on the right into the variable on the left: item = 12; Operand lvalue operator Operand rvalue 35 Variable Assignments and Initialization Initialize a variable: assign it a value when it is defined: int length = 12; float interestRate=12.9; char stock=‘D’; long customerNum=459L; Can initialize some or all variables: int length = 12, width = 5, area; 36 2.12 Scope The scope of a variable: where the program can access the variable A variable cannot be used before it is defined // This program can't find its variable. #include <iostream> using namespace std; int main() { cout << value; // ERROR! value not defined yet! int value = 100; return 0; } 37 2.13 Arithmetic Operators Used for performing numeric calculations C++ has unary, binary, and ternary operators: • unary (1 operand) -5 • binary (2 operands) 13 - 7 • ternary (3 operands) exp1 ? exp2 : exp3 38 Binary Arithmetic Operators SYMBOL OPERATION EXAMPLE VALUE OF ans + addition ans = 7 + 3; 10 - subtraction ans = 7 - 3; 4 * multiplication ans = 7 * 3; 21 / division ans = 7 / 3; 2 % modulus ans = 7 % 3; 1 39 / Operator / (division) operator performs integer division if both operands are integers cout << 13 / 5; cout << 91 / 7; // displays 2 // displays 13 If either operand is floating point, the result is floating point cout << 13 / 5.0; cout << 91.0 / 7; // displays 2.6 // displays 13.0 40 % Operator % (modulus) operator computes the remainder resulting from integer division cout << 13 % 5; // displays 3 % requires integers for both operands cout << 13 % 5.0; // error 41 Example // This program calculates hourly wages #include <iostream> using namespace std; int main() { float regWages, basePay = 19.25, regHours = 40.0, otWages, otPay = 28.78, otHours = 10, totalWages; // calculated regular wages // base pay rate // hours worked less overtime // overtime wages // overtime pay rate // overtime hours worked // total wages regWages = basePay * regHours; otWages = otPay * otHours; totalWages = regWages + otWages; cout << "Wages for this week are $" << totalWages << endl; return 0; } Wages for this week are $1057.8 42 2.14 Comments Used to document parts of the program Intended for persons reading the source code of the program: • Indicate the purpose of the program • Describe the use of variables • Explain complex sections of code Are ignored by the compiler 43 C++ Style Comments Begin with // through to the end of line: int length = 12; // length in inches int width = 15; // width in inches int area; // calculated area // calculate rectangle area area = length * width; 44 C-Style Comments Begin with /*, end with */ Can span multiple lines: /* this is a multi-line C-style comment */ Can be used like C++ style comments: int area; /* calculated area */ • Be careful not reverse the beginning symbol with the ending symbol • Be sure not to forget the ending symbol 45 2.15 Programming Style The visual organization of the source code Includes the use of spaces, tabs, and blank lines Does not affect the syntax of the program Affects the readability of the source code 46 Programming Style Common elements to improve readability: Braces { } aligned vertically Indentation of statements within a set of braces Blank lines between declaration and other statements Long statements wrapped over multiple lines with aligned operators 47 Example #include <iostream> using namespace std;int main(){float shares=220.0; float avgPrice=14.67;cout<<"There were "<<shares <<" shares sold at $"<<avgPrice<<" per share.\n"; return 0;} 48 Example // This example is much more readable #include <iostream> using namespace std; int main() { float shares = 220.0; float avgPrice = 14.67; cout << "There were " << shares << " shares sold at $"; cout << avgPrice << " per share.\n"; return 0; } 49 2.16 Standard and Prestandard C++ Older-style C++ programs: • Use .h at end of header files: #include <iostream.h> • Do not use using namespace convention • May not compile with a standard C++ compiler 50 Class review Cout : displays information on computer screen cout << "Hello, there!" << endl; cout << "Hello, there!\n"; #include: a preprocessor directive #include <iostream> Variables and Constants char letter = ‘A’; Identifiers Data Type • Integer, floating-point, character, string, boolean 51 Class review Data Type • Integer, floating-point, character, string, boolean Size of data type sizeof(float); Variable assignments and Initialization item = 12; Scope of variable • A variable cannot be used before it is defined Arithmetic operations +,-,*,/,% Comments //, /* */ 52