Computer Science 1620
-
Upload
quintin-hollis -
Category
Documents
-
view
30 -
download
0
description
Transcript of Computer Science 1620
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.
coutconsole output
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
necessarywhen you wish to display something to the
screen, use the following syntax:
cout << a valid C++ expression
C++ Expressionan expression in C++ is an entity that
represents a value this value can take on many typeswe will look at one type of expressions first
string literal
String Literala string literal is a sequence of charactersenclosed in quotation marksExamples:
"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 lineall 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 Benkoczi123 Sunset BlvdHollywood, CA90210applepie $
Recap: structure of a C++ 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.
#include <iostream>#include <iostream>using namespace std;using namespace std;int main( )int main( ){ { statement 1;statement 1;
statement 2;statement 2;return 0;return 0;
} // end of program} // end of program
Other data types
C++ Data Typessimplestructured (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
enumerationboolean
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 expressionhence, 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
Type Range Size
char -128 .. 127* 1 byte
short -32768 .. 32767* 2 bytes
int -2147483648 … 2147483647* 4 bytes
long -2147483648 … 2147483647* 4 bytes
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, Xarabic: coins with face value 1, 10, 100, 1000 etc
Base 2 numbering (face value 1, 2, 4, 8...)13 = 10 + 313 = 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, Xarabic: coins with face value 1, 10, 100, 1000 etc
Base 2 numbering (face value 1, 2, 4, 8...)13 = 10 + 313 = 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 integers1 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 representation1 ? ? ? ? ? ? ? = -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.
Type Range Size
unsigned char
0 .. 255* 1 byte
unsigned short
0 .. 65536* 2 bytes
unsigned int
0 ... 4 294 967 295* 4 bytes
unsigned long
0 ... 4 294 967 295* 4 bytes
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
Type Range Size
float 1.17549e-38 ... 3.40282e+38 4 bytes
double 2.22507e-308 ... 1.79769e+308* 8 bytes
long double 3.3621e-4932 ... 1.18973e+4932* 10 bytes
Integers vs. Floating Pointwhy 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 doubles2) 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 numberas mentioned, an int requires 4 bytes of
memorya string requires x+1 bytes, where x is the
number of characters in the string32999 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 class2) The number of desks in the class3) The name of the class4) The distance from my office to the
classroom