Title: Computer Science 1620
1Computer Science 1620
2include ltiostreamgt 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.
3- cout
- console 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
necessary - when you wish to display something to the screen,
use the following syntax
a valid C expression
cout ltlt
4- 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
5- String Literal
- a string literal is a sequence of characters
- enclosed in quotation marks
- Examples
- "Hello"
- "Computer Science 1620"
- Dolly Parton"
6- Back to cout
- to display a string literal to the screen,
include it on the right side of the ltlt operator - Example
- write a program that displays the text "Hello
world!" on the computer screen.
7include ltiostreamgt using namespace std int
main() cout ltlt "Hello World!" cout ltlt
endl return 0
String literal
8(No Transcript)
9- 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
10- What about the second cout command?
- cout ltlt 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)
11- cout concatenation
- instead of having two separate cout statements,
you can include them on the same line
12include ltiostreamgt using namespace std int
main() cout ltlt "Hello World!" ltlt endl
return 0
13include ltiostreamgt using namespace std int
main() cout ltlt "Hello " ltlt "World!" ltlt
endl return 0
14- Example Write a program that writes your name
and address to the screen
include ltiostreamgt using namespace std int
main() cout ltlt "Robert Benkoczi" ltlt endl
cout ltlt "123 Sunset Blvd" ltlt endl cout ltlt
"Hollywood, CA" ltlt endl cout ltlt "90210" ltlt
endl return 0
15 applepie g -o print-adr print-adr.cc
applepie ./print-adr Robert Benkoczi 123
Sunset Blvd Hollywood, CA 90210 applepie
16Recap structure of a C program
include ltiostreamgt 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.
17Other data types
- C Data Types
- simple
- structured (struct, class)
- pointers
- function
we will deal with these later
18Other data types
- C Data Types
- four categories of simple data
- integer
- whole numbers, no fractional part
- floating point
- real numbers
- enumeration
- boolean
19- 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)
20- 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
21Write 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 ltiostreamgt using namespace std int
main() return 0
22- 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
Type Range Size
char -128 .. 127 1 byte
short -32768 .. 32767 2 bytes
int -2147483648 2147483647 4 bytes
long -2147483648 2147483647 4 bytes
compiler dependent
23Internal 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
24Representation 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)
25Representation 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
26Representation 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 (/-)
27Representation of integers
- negative integers
- 1 0 0 0 0 0 0 0 -0 (?)
- This ones 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 (/-)
28Representation of integers
- twos complement representation
- 1 ? ? ? ? ? ? ? -x
- Goal x (-x) x - x 0 0 0 0 0 0 0 0 0
represents the sign (/-)
29Unsigned 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
30- 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
- ltmantissagt E ltexponentgt ltmantissagt
10ltexponentgt
31Write a program that displays your name on the
first line, age on the second line, and bank
account balance on the 3rd.
include ltiostreamgt using namespace std int
main() return 0
32- 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
Type Range Size
float 1.17549e-38 ... 3.40282e38 4 bytes
double 2.22507e-308 ... 1.79769e308 8 bytes
long double 3.3621e-4932 ... 1.18973e4932 10 bytes
compiler dependent
33- 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
34- Why would you use either number type instead of a
string? - after all, could we not just say
- cout ltlt "Car Price" ltlt endl
- cout ltlt "32999" ltlt endl
- two reasons
- 1) Cannot do arithmetic on a string
- 2) Strings typically require more space than the
number.
35- 1) Cannot do arithmetic on a string
- next class, we will perform arithmetic on numbers
- cout ltlt (32999 5000) ltlt endl
- you cannot perform the same operation on the
string representation - cout ltlt ("32999" "5000") ltlt endl
36- 2) Strings typically require more space than a
number - as mentioned, an int requires 4 bytes of memory
- a string requires x1 bytes, where x is the
number of characters in the string - 32999 requires 4 bytes to store
- "32999" requires 6 bytes to store
37- 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