460 likes | 613 Views
Overview of C++. By Dr. Awad Khalil Computer Science Department. 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.
E N D
Overview of C++ By Dr. Awad Khalil Computer Science Department
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 CSCI 106, Overview of C++, by Dr. Awad Khalil
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 CSCI 106, Overview of C++, by Dr. Awad Khalil
Compiler Directives • Stream data type • Object that is a stream of characters • Defined iniostream • Entered on the keyboard (cin) • Displayed on monitor (cout) CSCI 106, Overview of C++, by Dr. Awad Khalil
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 CSCI 106, Overview of C++, by Dr. Awad Khalil
Executable Statements • cout get output cout << “Enter the fabric size in square meters: ”; • cin get input cin >> sizeInSqmeters; • Assignment sizeInSqyards = metersToYards * izeInSqmeters; CSCI 106, Overview of C++, by Dr. Awad Khalil
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 • Special symbols • C++ has rules for special symbols = * ; { } ( ) // << >> CSCI 106, Overview of C++, by Dr. Awad Khalil
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 CSCI 106, Overview of C++, by Dr. Awad Khalil
User-Defined Identifier • An Identifier must always begin with a letter or underscore symbol (not recommended) • An identifier must consist of letters, digits, or underscore only. • You cannot use a C++ reserved word as an identifier. CSCI 106, Overview of C++, by Dr. Awad Khalil
Invalid Identifiers 1Letter Float Const Two*Four Joe’s Two-dimensional User-Defined Identifier CSCI 106, Overview of C++, by Dr. Awad Khalil
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 • bool (boolean) • true • false • char (Characters) • Represent characters CSCI 106, Overview of C++, by Dr. Awad Khalil
Data Type: int • 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 • Different types allow programmers to use resources more efficiently • Standard arithmetic and relational operations are available for these types CSCI 106, Overview of C++, by Dr. Awad Khalil
Data Type: float • 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 • C++ provides three floating-point types • float • double • long double CSCI 106, Overview of C++, by Dr. Awad Khalil
Data Type: char • char (characters) • Individual character value (letter or number) • Character literal enclosed in single quotes ‘A’ • Character type char isrelated to the integer types • Characters are encoded using a scheme where an integer represents a particular character CSCI 106, Overview of C++, by Dr. Awad Khalil
Character Encoding Schemes • 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 CSCI 106, Overview of C++, by Dr. Awad Khalil
Character Encoding Schemes • UNICODE CSCI 106, Overview of C++, by Dr. Awad Khalil
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 CSCI 106, Overview of C++, by Dr. Awad Khalil
string Class • String literal • “A” • “1234” • “Enter the distance” • Additional data types included in library #include <string> • Various operations on strings CSCI 106, Overview of C++, by Dr. Awad Khalil
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 Examples char response; int minelement; float score; float temperature; int i; int n; char c; float x; Declarations CSCI 106, Overview of C++, by Dr. Awad Khalil
Constant Declarations • Types of constants • integer • float • char • bool • string objects • Associate meaningful terms • const float PAYRATE = 10.25; CSCI 106, Overview of C++, by Dr. Awad Khalil
Hello.cpp // FILE: Hello.cpp // DISPLAYS A USER'S NAME #include <iostream> #include <string> using namespace std; int main () { 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; } CSCI 106, Overview of C++, by Dr. Awad Khalil
Executable Statements • Memory status • Before and after • Assignments Form: result = expression; sizeInSqyards = metersToYards * sizeInMeters; sum = sum + item; CSCI 106, Overview of C++, by Dr. Awad Khalil
Arithmetic Operators • + Addition • - Subtraction • * Multiplication • / Division • % Modulus CSCI 106, Overview of C++, by Dr. Awad Khalil
Input / Output Operations • Input #include <iostream> library cin >> sizeInSqmeters; • Output #include <iostream> library cout << squareArea; CSCI 106, Overview of C++, by Dr. Awad Khalil
Program Input: cin Form: cin >> dataVariable; cin >> age >> firstInitial; • Extracted from cin (input stream) • >> Directs input to variable • cin associated with keyboard input (stdin) • Used with int, float, char, bool and strings • 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 CSCI 106, Overview of C++, by Dr. Awad Khalil
Program Output: cout Form: cout << dataVariable; cout << squareArea; • Output stream cout • << Output operator (insertion operator) cout << “my height in inches is: “ << height; • Blank lines endl; or “\n”; CSCI 106, Overview of C++, by Dr. Awad Khalil
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 CSCI 106, Overview of C++, by Dr. Awad Khalil
General Form of a C++ Program • General form of function body parts • Declaration statements • Variables and constants • Executable statements • C++ statements CSCI 106, Overview of C++, by Dr. Awad Khalil
General Form of a C++ Program • General form // File: filename // Program description: #include directives int main() { Declarations section Executable statements section } CSCI 106, Overview of C++, by Dr. Awad Khalil
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 CSCI 106, Overview of C++, by Dr. Awad Khalil
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 CSCI 106, Overview of C++, by Dr. Awad Khalil
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; CSCI 106, Overview of C++, by Dr. Awad Khalil
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 CSCI 106, Overview of C++, by Dr. Awad Khalil
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); CSCI 106, Overview of C++, by Dr. Awad Khalil
Example 1: Milesbatch.cpp // File: milesBatch.cpp // Converts distance in miles to kilometers. #include <iostream> using namespace std; int main() // start of main function { const float KM_PER_MILE = 1.609; float miles, kms; CSCI 106, Overview of C++, by Dr. Awad Khalil
Milesbatch.cpp // Get the distance in miles. cin >> miles; cout << "The distance in miles is " << miles << endl; // Convert the distance to kilometers. kms = KM_PER_MILE * miles; // Display the distance in kilometers. cout << "The distance in kilometers is " << kms << endl; return 0; } CSCI 106, Overview of C++, by Dr. Awad Khalil
Milesbatch.cpp Program output The distance in miles is 10 The distance in kilometers is 16.09 CSCI 106, Overview of C++, by Dr. Awad Khalil
Example 2: 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 CSCI 106, Overview of C++, by Dr. Awad Khalil
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 CSCI 106, Overview of C++, by Dr. Awad Khalil
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 CSCI 106, Overview of C++, by Dr. Awad Khalil
Coins.cpp // File: coins.cpp // Determines the value of a coin collection #include <iostream> #include <string> using namespace std; int main() { // 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; CSCI 106, Overview of C++, by Dr. Awad Khalil
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; // 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; } CSCI 106, Overview of C++, by Dr. Awad Khalil
Coins.cpp Program output Enter your first name and press return: Sally Enter number of nickels and press return: 30 Enter number of pennies and press return: 77 Good work sally! Your collection is worth 2 dollars and 27 cents. CSCI 106, Overview of C++, by Dr. Awad Khalil
Interactive Mode, Batch and Data Files • Two modes interactive or batch • Keyboard input interactive • Batch mode data provided prior to start • File as input • Input / output redirection • Direct input to program use ‘<‘ symbol • Direct output to a file use ‘>‘ symbol CSCI 106, Overview of C++, by Dr. Awad Khalil
Input / Output Redirection • Program name < datafile Metric < mydata • Program name > outFile Metric > outFile • Input and output redirection Metric < inFile > outFile CSCI 106, Overview of C++, by Dr. Awad Khalil
Common Programming Errors • Syntax • Programs rarely compile • Something always goes wrong • Systematic solutions • Compiler not descriptive • Look at line number before and after error • Watch missing ; and } • Run-time errors • Illegal operation (divide by 0) • Logic errors • Program functions differently than you expect CSCI 106, Overview of C++, by Dr. Awad Khalil