Presentation is loading. Please wait.

Presentation is loading. Please wait.

CMSC 202 Lesson 2 C++ Primer.

Similar presentations


Presentation on theme: "CMSC 202 Lesson 2 C++ Primer."— Presentation transcript:

1 CMSC 202 Lesson 2 C++ Primer

2 Warmup Create an array called ‘data’
Define a constant called DATA_SIZE with value 127 Write a loop to fill the array with integers from the user

3 Announcements My Office Hours TA Office Hours No Labs this week
Tuesday/Thursday 11:30-12:30 By appointment TA Office Hours Posted on Website by end of this week No Labs this week No TA Office Hours this week

4 Intro to C++ Minor differences from C Major additions to C Today
Semester Additions

5 Output cout << endl Example: Output stream Print to screen
Output stream separator Between every object in stream endl Output stream end of line character Example: cout << "Hello World!" << endl;

6 Input cin >> Example Input stream Standard input (keyboard)
Input stream separator Between every object in stream Example int age; cout << "What is your age?" << endl; cin >> age;

7 In Action! #include <iostream> using namespace std; int main( )
{ // greet the user cout << "Hello reader.\n" << "Welcome to C++.\n"; // prompt user and get response int numberOfLanguages; cout << "How many programming languages have you used? "; cin >> numberOfLanguages; // determine appropriate response if (numberOfLanguages < 1 ) cout << "Read the preface. You may prefer" << endl << "a more elementary book by the same author" << endl; else cout << "Enjoy the book." << endl; return 0; }

8 Formatting Decimals Magic code Example: cout.setf( ios::fixed );
cout.setf( ios::showpoint ); cout.precision( 2 ); Fix & show the decimal with 2 digits of precision Collection of flags, set until you UN-set them! Example: double temperature = 81.7; cout << temperature << endl; // 81.70

9 Casting Old C-style casting New C++-style casting Why?
double DegreesCelsius( int degreesFahernheit ) { return (double)5 / 9 * ( degreesFahrenheit - 32 ); } New C++-style casting return static_cast<double>( 5 ) / 9 * ( degreesFahrenheit - 32 ); Why? Compiler makes a check – so it’s safer

10 Constants Old C-style #defines New C++-style constant variables Why?
#define PI ; New C++-style constant variables const double PI = ; Why? Type-checking!

11 Enumerations enum Syntax: Example:
Allows you to define new, limited types Maps to integers (so comparisons are allowed) Syntax: enum TYPE_NAME { VAL1, VAL2, …, VALN }; Example: enum DAYS { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY }; DAYS today = TUESDAY;

12 Practice! Work with your neighbor
Rewrite the warmup to use the following C++ constructs: cout cin const Warmup Create an array called ‘data’ Define a constant called DATA_SIZE with value 127 Write a loop to fill the array with integers from the user

13 Review: C-style Strings
Declare a new string: char string1[4] = "abc"; char string2[ ] = "abc"; char *stringp = "abc"; // What about this? char string3[ ] = {'a', 'b', 'c'}; What’s the difference?

14 Review: C-style Strings
Library Functions strcpy -- copy a C-style string strcat -- concatenate two C-style strings strlen -- return the length of a C-style string strcmp -- compare two C-style strings

15 C++-style Strings Library header file Create an empty string
#include <string> Create an empty string string stringName; Create a string with initial value string carMake( “Nissan” ); string carModel = “Pulsar”; Create a copy of a string string newCarMake( carMake );

16 C++-style Strings Copy value into existing string
firstString = secondString; Access individual character (like arrays!) firstString[7] = ‘x’; Compare two strings (==, <, >, !=, …) if (firstString == “ham”) Concatenation string name = firstName + “ “ + lastName;

17 C++-style Strings Length of string Is string empty?
if (fileName.size() > 8) if (fileName.length() > 8) Is string empty? if (fileName.empty()) Treat C++-string as C-string (HINT: important for file streams!) string s1 = "bob"; char s2[] = "This is a C-style string"; // this code copies s1 onto s2 using strcpy() strcpy (s2, s1.c_str());

18 C++-style Strings Substring Syntax: Example
stringName.substr( index, length); Example string name = “Your Name”; string your = name.substr(0, 4); cout << your << endl; // “Your”

19 Input/Output with C++ Strings
Same as with other variables… cout << stringName << endl; Example string firstName = “Dana”; string lastName = “Wortman”; cout << firstName << “ “ << lastName;

20 Input/Output with C++ Strings
Same as with other variables One issue – strings are broken by whitespace cin >> stringName; Example: string name; cout << “Please enter your name” << endl; // User types in: Dana Wortman cin >> name; cout << name << endl; // “Dana” // “Wortman” is waiting // to be read…

21 Input/Output with C++ Strings
Input – Whole lines! Syntax: getline(inputStream, stringName); Getline reads until an end-of-line character is seen (return!) Example: string name; cout << “Please enter your name” << endl; // User types in: Dana Wortman getline(cin, name); cout << name << endl; // “Dana Wortman”

22 Strings In Action! R e v e r s e ! ! e s r e v e R
string Reverse (string s) { string result(s); // copy of original string int start = 0; // left-most character int end = s.length(); // right-most character // swap chars until end and start // meet in the middle while (start < end) --end; char c = result[end]; result[end] = result[start]; result[start] = c; ++start; } return result; R e v e r s e ! ! e s r e v e R

23 Practice! Prompt for 3 words from the user Read in 3 separate words
Concatenate them together into 1 string in REVERSE ORDER Print that string

24 Challenge! Part 1: Part 2: Part 3 (use your constants!):
Define a constant representing the minimum “Gateway” GPA (3.0) Request the user’s GPA for CMSC 201 Print it using 3 decimal points of precision Part 2: Define a constant representing the computer science major code (CMSC) Request the user’s 4-letter Major code Print it Part 3 (use your constants!): If the user is a CMSC major and their GPA is above the cuttof Print a congratulatory message If they are a CMSC major and their GPA is too low Tell them to retake 201 If they are any other major Tell them to change majors to CMSC – because it’s the best!


Download ppt "CMSC 202 Lesson 2 C++ Primer."

Similar presentations


Ads by Google