590 likes | 885 Views
Overview of C++. Chapter 2. 2.1 C++ Language Elements. Comments make a program easier to understand // Used to signify a comment on a single line /* Text text */ use if comments on multi lines Don’t embed comments within /* */ comments. Compiler Directives. #include Compiler directive
E N D
Overview of C++ Chapter 2
2.1 C++ Language Elements • Comments make a program easier to understand • // Used to signify a comment on a single line • /* Text text */use if commentson multilines • Don’t embed comments within /* */ comments
Compiler Directives • #include • Compiler directive • Processed at compilation time • Instructs compiler on what you want in the program • #include <iostream> • Adds library files to program • Used with < > • Also “ “ user defined
Compiler Directives • Stream data type • Object that is a stream of characters • Defined iniostream • Entered on the keyboard (cin) • Displayed on monitor (cout)
Declarations • Direct compiler on requirements • Based on data needs (data identifiers) • Each identifier needed must be declared • Comma used to separate identifiers • cin and cout are undeclared identifiers • Special elements called streams • cin - input stream , cout - output stream • Included with the iostream not declared
Executable Statements • cout get output • cout << “Enter the fabric size in square meters: ”; • cin get input • cin >> sizeInSqmeters; • Assignment • sizeInSqyards = metersToYards * sizeInSqmeters;
2.2 Reserved Words and Identifiers • Reserved words have special meanings • Can NOT be used for other purposes (const, float and void are some examples) • Identifiers (variables) • Used to store data by the program (user defined) • Valid identifiers - letter, letter1, _letter • Invalid identifiers - 1letter, const, hell o
Reserved Words and Identifiers • Special symbols • C++ has rules for special symbols • = * ; { } ( ) // << >> • Appendix B • Examples of reserved words • Special characters
Upper and Lower Case • C++ case sensitive • Compiler differentiates upper & lower case • Identifiers can be either • Be careful though (cost != Cost) • Blank spaces • Use space to make program readable • Use care in placing spaces
2.3 Data Types and Declarations • Predefined data types • int (integers) • Positive or negative whole numbers • 1000 12 199 100000 • INT_MAX - largest int allowed by compiler • float (real numbers) • Positive or negative decimal numbers • 10.5 1.2 100.02 99.88
Data Types and Declarations • Predefined data types • bool (boolean) • true • false • char (Characters) • Represent characters
Data Types and Declarations • The basic integer type is int • The size of an int depends on the machine and the compiler • On pc’s it is normally 16 or 32 bits • Other integers types • short: typically uses less bits • long: typically uses more bits
Data Types and Declarations • Different types allow programmers to use resources more efficiently • Standard arithmetic and relational operations are available for these types
Data Types and Declarations • Floating-point types represent real numbers • Integer part • Fractional part • The number108.1517 breaks down into the following parts • 108 - integer part • 1517 - fractional part
Data Types and Declarations • C++ provides three floating-point types • float • double • long double
Data Types and Declarations • Predefined data types • char (characters) • Individual character value (letter or number) • Character literal enclosed in single quotes ‘A’ • bool (true / false) • Ordinal types • int bool char • Values can be listed
Data Types and Declarations • Character type char isrelated to the integer types • Characters are encoded using a scheme where an integer represents a particular character
Data Types and Declarations • ASCII is the dominant encoding scheme • Examples • ' ' encoded as 32 • '+' encoded as 43 • 'A' encoded as 65 • 'Z' encoded as 90 • ’a' encoded as 97 • ’z' encoded as 122
string Class • String object data type • A literal string constant is a sequence of zero or more characters enclosed in double quotes • "Are you aware?\n" • Individual characters of string are stored in consecutive memory locations • The null character ('\0') is appended to strings so that the compiler knows where in memory strings ends
string Class • String literal • “A” • “1234” • “Enter the distance” • Additional data types included in library #include <string> • Various operations on strings
Declarations • Identifiers should be • Short enough to be reasonable to type (single word is norm) • Standard abbreviations are fine (but only standard abbreviations) • Long enough to be understandable • When using multiple word identifiers capitalize the first letter of each word
Declarations • Examples • char response; • int minelement; • float score; • float temperature; • int i; • int n; • char c; • float x;
Constant Declarations • Types of constants • integer • float • char • bool • string objects • Associate meaningful terms • const float PAYRATE = 10.25;
Hello.cpp // FILE: Hello.cpp // DISPLAYS A USER'S NAME #include <iostream> #include <string> using namespace std; int main () {
Hello.cpp char letter1, letter2; string lastName; // Enter letters and print message. cout << "Enter 2 initials and last name: "; cin >> letter1 >> letter2 >> lastName; cout << "Hello " << letter1 << ". " << letter2 << ". " << lastName << "! "; cout << "We hope you enjoy studying C++." << endl; return 0; }
Hello.cpp Program output Enter first two initials and last name and press return: EBKoffman Hello E. B. Koffman! We hope you enjoy studying C++.
2.4 Executable Statements • Memory status • Before and after • Assignments • Form: result = expression; • sizeInSqyards = metersToYards * sizeInMeters; • sum = sum + item;
Arithmetic Operators • + Addition • - Subtraction • * Multiplication • / Division • % Modulus
Input / Output Operations • Input • #include <iostream> library • cin >> sizeInSqmeters; • Extracted from cin (input stream) • >> Directs input to variable • cin associated with keyboard input (stdin) • Used with int, float, char, bool and strings
Data Types and cin • Don’t mix types with cin int x; cin >> x; Keyboard input 16.6 Value placed in x would be 16
Other Characteristics of cin • Leading blanks ignored (floats, int, char, bool and strings) • Char read 1 at a time (1 non blank) • Case issues • int or float will read until space • Stings same as int and float
General Form for cin Form: cin >> dataVariable; cin >> age >> firstInitial;
Program Output • Output stream cout • << Output operator (insertion operator) • cout << “my height in inches is: “ << height; • Blank lines • endl; or “\n”; Form: cout << dataVariable;
2.5 General Form of a C++ Program • General program form • Function basic unit (collection of related statements) • A C++ program must contain a main function void main () • int - function returns integer value • main - lower case with () • { } - Braces define the function body
General Form of a C++ Program • General form of function body parts • Declaration statements • Variables and constants • Executable statements • C++ statements
General Form of a C++ Program • General form // File: filename // Program description: #include directives int main() { Declarations section Executable statements section }
General Form // Name: Mike Hudock // Date: March 10, 2000 // Files: file1.cpp file2.cpp // Changes : // Program description:
General Form • Use comments throughout code to highlight points of interest • Strange identifiers • Function explanations • Algorithm definitions
2.6 Arithmetic Expressions • int data type • + - * /, Assignment, input and output on int • % Only used with int • Examples of integer division 15 / 3 = 5 15 / 2 = 7 0 / 15 = 0 15 / 0 undefined
Modulus and Integer • Used only with integer and yields remainder • Examples of integer modulus 7 % 2 = 1 299 % 100 = 99 49 % 5 = 4 15 % 0 undefined
Mixed-type Assignments • Expression evaluated • Result stored in the variable on the left side • C++ can mix types float a, b, x; int m, n; a=10; b=5; x = m / n;
Expressions With Multiple Operators • Operator precedence tells how to evaluate expressions • Standard precedence order • () Evaluated first, if nested innermost done first • * / % Evaluated second. If there are several, then evaluate from left-to-right • + - Evaluate third. If there are several, then evaluate from left-to-right
Mathematical Formulas in C++ • a = bc not valid C++ syntax • * Operator a = b * c; • m = y - b x - a • ( ) And / m = (y - b) / (x - a);
Coin Collection Case Study • Problem statement • Saving nickels and pennies and want to exchange these coins at the bank so need to know the value of coins in dollars and cents. • Analysis • Count of nickels and pennies in total • Determine total value • Use integer division to get dollar value • / 100
Coin Collection Case Study • Analysis (cont) • Use modulus % to get cents value • % 100 • Design • Prompt for name • Get count of nickels and pennies • Compute total value • Calculate dollars and cents • Display results
Coin Collection Case Study • Implementation • Write C++ code of design • Verify correct data types needed • Mixed mode types and promotion • Testing • Test results using various input combinations
Coins.cpp // File: coins.cpp // Determines the value of a coin collection #include <iostream> #include <string> using namespace std; int main() {
Coins.cpp // Local data ... string name; int pennies; int nickels; int dollars; int change; int totalCents; // Prompt sister for name. cout << "Enter your first name: "; cin >> name;
Coins.cpp // Read in the count of nickels and pennies. cout << "Enter the number of nickels: "; cin >> nickels; cout << "Enter the number of pennies: "; cin >> pennies; // Compute the total value in cents. totalCents = 5 * nickels + pennies; // Find the value in dollars and change. dollars = totalCents / 100; change = totalCents % 100;
Coins.cpp // Display the value in dollars and change. cout << "Good work " << name << '!' << endl; cout << "Your collection is worth " << dollars << " dollars and " << change << " cents." << endl; return 0; }