370 likes | 482 Views
Computer Science 1620. C++ - Basics. #include <iostream> using namespace std; int main() { return 0; }. A very basic C++ Program. When writing your first programs, always start with this template. The code that you should write should go here.
E N D
Computer Science 1620 C++ - Basics
#include <iostream> using namespace std; int main() { return 0; } • A very basic C++ Program. • When writing your first programs, always start with this template. • The code that you should write should go here. • The details of this template (what each component means) will become clear as the semester progresses.
cout • consoleoutput • sends data to the current output stream • for us, this will typically mean the screen • this can be re-routed to other output devices if necessary • when you wish to display something to the screen, use the following syntax: a valid C++ expression cout <<
C++ Expression • an expression in C++ is an entity that represents a value • this value can take on many types • we will look at one type of expressions first • string literal
String Literal • a string literal is a sequence of characters • enclosed in quotation marks • Examples: • "Hello" • "Computer Science 1620" • ”Dolly Parton"
Back to cout • to display a string literal to the screen, include it on the right side of the << operator • Example: • write a program that displays the text "Hello world!" on the computer screen.
#include <iostream> using namespace std; int main() { cout <<"Hello World!"; cout << endl; return 0; } String literal
Notice the semicolon at the end of each line • all of your C++ constructs will end in a semicolon (unless otherwise instructed) • indicates the end of an instruction
What about the second cout command? • cout << endl; • endl causes the data to be flushed from the buffer (explained in class), and moves the input to the next line • your output should always include a call to endl (at some point)
cout concatenation • instead of having two separate cout statements, you can include them on the same line
#include <iostream> using namespace std; int main() { cout <<"Hello World!" << endl; return 0; }
#include <iostream> using namespace std; int main() { cout <<"Hello " << "World!" << endl; return 0; }
Example: Write a program that writes your name and address to the screen: #include <iostream> using namespace std; int main() { cout <<"Robert Benkoczi" << endl; cout << "123 Sunset Blvd" << endl; cout << "Hollywood, CA" << endl; cout << "90210" << endl; return 0; }
applepie $ g++ -o print-adr print-adr.cc applepie $ ./print-adr Robert Benkoczi 123 Sunset Blvd Hollywood, CA 90210 applepie $
Recap: structure of a C++ program #include <iostream> using namespace std; int main( ) { statement 1; statement 2; return 0; } // end of program • the first 2 lines are almost always included in a C++ program. • every program begins with “main ( )”. • main begins with { and ends with } • the brackets ( ) after main are required. • program starts and ends in “main”. • return 0 is put right before the closing } • statements always end with a semicolon. • Anything preceded with // is a comment and the compiler ignores it.
Other data types • C++ Data Types • simple • structured (struct, class) • pointers • function we will deal with these later
Other data types • C++ Data Types • four categories of simple data • integer • whole numbers, no fractional part • floating point • real numbers • enumeration • boolean
Integer types • a number without a decimal part • integers: • 10, -24, 5800, -9600, etc… • non-integers • 14.5, -24.6, 5800.0, -8 x 106 • How are integers written in C++? • in the simplest case, exactly as you would expect • no spaces or punctuation (commas, dollar signs, etc)
Note that a number in C++ is an expression • hence, the number 34 is an expression • typically called an integer literal • the value of this expression is 34 • because it is an expression, it can be used wherever an expression is permitted • eg. as data to cout
Write a program that displays your name on the first line, and age on the second line. Display your name as a string, and your age as an integer. #include <iostream> using namespace std; int main() { return 0; }
Integer types • there are actually several flavours of "integer" in C++ • by default, all integer literals are ints • we will defer discussion about the others until we take variables * compiler dependent
Internal vs source code representations • Type: • used to specify the internal representation of a value (or expression). EX: how is that value stored in the computer memory. • Source code representation: • how do we write a literal in the source code
Representation of integers • Representing numbers: • roman: I, II, III, IV, V, VI, VII, VIIII, IX, X • arabic: coins with face value 1, 10, 100, 1000 etc • Base 2 numbering (face value 1, 2, 4, 8...) 13 = 10 + 3 13 = 8 + 4 + 1 = 1101 (meaning 1 x 8, 1 x 4, 0 x 2, 1 x 1)
Representation of integers • Representing numbers: • roman: I, II, III, IV, V, VI, VII, VIIII, IX, X • arabic: coins with face value 1, 10, 100, 1000 etc • Base 2 numbering (face value 1, 2, 4, 8...) 13 = 10 + 3 13 = 8 + 4 + 1 = 1101 (meaning 1 x 8, 1 x 4, 0 x 2, 1 x 1) • Addition is easy with arabic numerals! bits
Representation of integers • char (8 bits or 1 byte) 0 1 1 1 1 1 1 1 = +127 • int, long - same idea, more bits. represents the sign (+/-)
Representation of integers • negative integers 1 0 0 0 0 0 0 0 = -0 (?) • This one’s complement representation. Not nice to have negative 0! • We would like to add + and - integers using the same procedure as for adding + integers. represents the sign (+/-)
Representation of integers • two’s complement representation 1 ? ? ? ? ? ? ? = -x Goal: x + (-x) = x - x = 0 = 0 0 0 0 0 0 0 0 represents the sign (+/-)
Unsigned integers • Use when there is no need to represent negative integers. We can represent more positive integers.
Floating Point Numbers • a number with a decimal part • floating point numbers: • 10.8, -24.8372, 5800.0, etc… • non-fps • 14, 28, 96, -49 • How are fp numbers written in C++? (source code representation) • in the simplest case, exactly as you would expect • no spaces or punctuation (commas, dollar signs, etc) • scientific notation: <mantissa> E <exponent> = <mantissa> 10<exponent>
Write a program that displays your name on the first line, age on the second line, and bank account balance on the 3rd. #include <iostream> using namespace std; int main() { return 0; }
Floating Point types • there are actually several flavours of fps in C++ • by default, all floating point literals are doubles • we will defer discussion about the others until we take variables * compiler dependent
Integers vs. Floating Point • why would you use a floating point instead of an integer? • when you are working with real numbers • why would you use an integer instead of a floating-point number? • 1) Integers use less memory than doubles • 2) Integers are more precise than floats • more on this when we take variables
Why would you use either number type instead of a string? • after all, could we not just say: cout << "Car Price:" << endl; cout << "32999" << endl; • two reasons • 1) Cannot do arithmetic on a string • 2) Strings typically require more space than the number.
1) Cannot do arithmetic on a string • next class, we will perform arithmetic on numbers • cout << (32999 – 5000) << endl; • you cannot perform the same operation on the string representation • cout << ("32999" – "5000") << endl;
2) Strings typically require more space than a number • as mentioned, an int requires 4 bytes of memory • a string requires x+1 bytes, where x is the number of characters in the string • 32999 requires 4 bytes to store • "32999" requires 6 bytes to store
Exercise: Determine an appropriate data type (int, fp, string) for each of the following? • 1) The average height of the class • 2) The number of desks in the class • 3) The name of the class • 4) The distance from my office to the classroom