You are on page 1of 28

Lecture 2: First Program1

1
Topics of this lecture

 Introduce first program


 Explore inputs and outputs of a program
 Arithmetic using C++
 Introduce the conditional statement

2
General Notes About C++
and This Book
 Book geared toward novice programmers
 Stress programming clarity
 C and C++ are portable languages
 Portability
 C and C++ programs can run on many different
computers
 Compatibility
 Many features of current versions of C++ not
compatible with older implementations

3
Introduction to C++ Programming
 C++ language
 Facilitates structured and disciplined approach to
computer program design
 Following several examples
 Illustrate many important features of C++
 Each analyzed one statement at a time
 Structured programming
 Object-oriented programming

4
A Simple Program: Printing a Line of Text
 Comments
 Document programs
 Improve program readability
 Ignored by compiler
 Single-line comment
 Begin with //
 Preprocessor directives
 Processed by preprocessor before compiling
 Begin with #

5
Basics of a Typical C++ Environment
 Input/output
 cin
 Standard input stream
 Normally keyboard
 cout
 Standard output stream
 Normally computer screen
 cerr
 Standard error stream
 Display error messages

6
1 // Fig. 1.2: fig01_02.cpp
Single-line comments.
2 // A first program in C++.
3 #include <iostream>
Function main returns Preprocessor
an directive to
4 integer value. include input/output stream
5 Left brace
// function main begins program header file <iostream>.
{ begins execution
function
body. Function main appears
6 int main() exactly once in every C++ Statements end with a
7 { semicolon ;.
program.
8 std::cout << "Welcome to C++!\n";
9
10 return 0; // indicate that cout
program
Corresponding
Name rightbelongs
Stream brace }to operator.
ended
insertion successfully
11 ends function body.
namespace std.
12 } // end function main Keyword return is one of
several means to exit
function; value 0 indicates
Welcome to C++!
program terminated
successfully.

7
A Simple Program: Printing a Line of Text
 Standard output stream object
 std::cout
 “Connected” to screen
 <<
 Stream insertion operator
 Value to right (right operand) inserted into output stream
 Namespace
 std:: specifies using name that belongs to “namespace”
std
 std:: removed through use of using statements
 Escape characters
 \
 Indicates “special” character output

8
A Simple Program: Printing a Line of Text
Escape Sequence Description

\n Newline. Position the screen cursor to the


beginning of the next line.
\t Horizontal tab. Move the screen cursor to the next
tab stop.
\r Carriage return. Position the screen cursor to the
beginning of the current line; do not advance to the
next line.
\a Alert. Sound the system bell.
\\ Backslash. Used to print a backslash character.
\" Double quote. Used to print a double quote
character.

9
1 // Fig. 2.4: fig02_04.cpp
2 // A first program in C++.
3 #include <iostream>
4
5 // function main begins program execution
6 int main()
7 {
8 std::cout << "Welcome";
9 std::cout << “ to C++!\n";
10 } // end function main

Welcome to C++!

10
Printing Multiple Lines of Text with a Single Statement
1 // A first program in C++.
2 #include <iostream>
3
4 // function main begins program execution
5 int main()
6 {
7 std::cout << "Welcome \n to \n C++ !";
09 } // end function main

Welcome
to
C++!

11
Another Simple Program: Adding Two Integers
 Variables
 Location in memory where value can be stored
 Common data types
 int - integer numbers
 char - characters
 double - floating point numbers
 Declare variables with name and data type before use
int integer1;
int integer2;
int sum;
 Can declare several variables of same type in one declaration
 Comma-separated list
int integer1, integer2, sum;

12
Another Simple Program: Adding Two Integers

 Variables
 Variable names
 Valid identifier
 Series of characters (letters, digits, underscores)
 Cannot begin with digit
 Case sensitive
 Naming Conventions
 start with a lower case letter
 mix of lower and uppercase letters and numbers
 short but meaningful
 generally avoid single letter variables

13
Another Simple Program: Adding Two Integers

 Input stream object


 >> (stream extraction operator)
 Used with std::cin
 Waits for user to input value, then press Enter (Return) key
 Stores value in variable to right of operator
 Converts value to variable data type
 = (assignment operator)
 Assigns value to variable
 Binary operator (two operands)
 Example:
sum = variable1 + variable2;

14
1 // Fig. 1.6: fig01_06.cpp
2 // Addition program.
3 #include <iostream>
4 // function main begins program execution
5 int main() {
Declare integer variables.
6 int integer1; // first number to be input by user
7 int integer2; // second number to be input by user
8 int sum; // variable in which sum will be stored
Use stream extraction
9 operator with standard input
10 std::cout << "Enter firststream
integer\n";
to obtain//user
prompt
input.
11 std::cin >> integer1; // read an integer
12
13 std::cout << "Enter second integer\n"; // prompt
14 std::cin >> integer2; // read an integer
Calculations can be performed in output
Stream
statements:
manipulator
alternative for
15 lines 16 and 17: std::endl outputs a
16 sum = integer1 + integer2; // assign result to sum newline, then “flushes output
std::cout << "Sum is " << integer1 + integer2 << std::endl;
buffer.”
17 std::cout << "Sum is " << sum << std::endl; // print sum
18
19 return 0; // indicate that program ended successfully
Concatenating, chaining or
20 } // end function main CS 630
cascading stream insertion
15
operations.
Microsoft Visual C++ numeric data types
Type Name Bytes Other Names Range of Values

int * signed, signed int System dependent

unsigned int * unsigned System dependent

__int8 1 char, signed char –128 to 127

__int16 2 short, short int, –32,768 to 32,767


signed short int

__int32 4 signed, signed int –2,147,483,648 to 2,147,483,647

__int64 8 none –9,223,372,036,854,775,808 to


9,223,372,036,854,775,807

char 1 signed char –128 to 127

unsigned char 1 none 0 to 255

16
Microsoft Visual C++ numeric data types
Type Name Bytes Other Names Range of Values

short 2 short int, signed short int –32,768 to 32,767

unsigned short 2 unsigned short int 0 to 65,535

long 4 long int, signed long int –2,147,483,648 to 2,147,483,647

unsigned long 4 unsigned long int 0 to 4,294,967,295

enum * none Same as int

float 4 none 3.4E +/- 38 (7 digits)

double 8 none 1.7E +/- 308 (15 digits)

long double 10 none 1.2E +/- 4932 (19 digits)

17
Memory Concepts
 Variable names
 Correspond to actual locations in computer's
memory
 Every variable has name, type, size and value
 When new value placed into variable,
overwrites previous value
 Reading variables from memory
nondestructive

18
Memory Concepts
integer1 45
std::cin >> integer1;
 Assume user entered 45
integer1 45
integer2 72
std::cin >> integer2;
 Assume user entered 72
integer1 45
integer2 72
sum = integer1 + integer2; sum 117

19
Effect of Several Assignments

 What are the values of a and b after all


statements are executed?
int a = 1;
int b;
b = a;
a = 2;
 a = 2, b = 1

20
Arithmetic

 Arithmetic calculations
 *
 Multiplication
 /
 Division
 Integer division truncates remainder
 7 / 5 evaluates to 1
 %
 Modulus operator returns remainder
 7 % 5 evaluates to 2

21
Arithmetic
 Rules of operator precedence
 Operators in parentheses evaluated first
 Nested/embedded parentheses
 Operators in innermost pair first
 Multiplication, division, modulus applied next
 Operators applied from left to right
 Addition, subtraction applied last
 Operators applied from left to right
Operator(s) Operation(s) Order of evaluation (precedence)

() Parentheses Evaluated first. If the parentheses are nested, the


expression in the innermost pair is evaluated first. If
there are several pairs of parentheses “on the same level”
(i.e., not nested), they are evaluated left to right.
*, /, or % Multiplication Division Evaluated second. If there are several, they re
Modulus evaluated left to right.
+ or - Addition Evaluated last. If there are several, they are
Subtraction evaluated left to right.

X = 7 + 4 / 2 * (3 * ( 4 – 3) + 5) % 2 + 3 22
Order in which a second-degree polynomial is evaluated.
23
Decision Making: Equality and Relational
Operators
 if structure
 Make decision based on truth or falsity of condition
 If condition met, body executed
 Else, body not executed
 Equality and relational operators
 Lower precedence than arithmetic operators
 Equality operators
 Same level of precedence
 Relational operators
 Same level of precedence
 Associate left to right

24
Decision Making: Equality and
Relational Operators
Sta nd a rd a lg eb ra ic C++ eq ua lity Exa m p le Mea ning of
eq ua lity op era tor or or rela tiona l of C++ C++ c ond ition
rela tiona l op era tor op era tor c ond ition

Relational operators
> > x > y x is greater than y
< < x < y x is less than y

 >= x >= y x is greater than or equal to y

 <= x <= y x is less than or equal to y

Equality operators
= == x == y x is equal to y

 != x != y x is not equal to y

Notice:
“==“
25
(not “=“)
using statements

 Eliminate the need to use the std:: prefix


 Allow us to write cout instead of std::cout
 To use the following functions without the
std:: prefix, write the following at the top of
the program
 using std::cout;
 using std::cin;

 using std::endl;

26
1 // Fig. 2.13: fig02_13.cpp
2 // Comparing integers using if statements, relational operators
3 // and equality operators.
4 #include <iostream> // allows program to perform input and output
5
6 using std::cout; // program uses cout
7 using std::cin; // program uses cin using declarations eliminate
8 using std::endl; // program uses endl
need for std:: prefix
9
10 // function main begins program Declare variables
execution
11 int main()
12 {
13 int number1; // first integer cout and
to compare
Can write cin
14 int number2; // second integer to compare
without std:: prefix
15
16 cout << "Enter two integers to compare: "; //if statement
prompt compares
user for data values
17 of number1
cin >> number1 >> number2; // read two integers
If
from user and number2 to
condition is true (i.e.,
18 test for equality values are equal), execute this
19 if ( number1 == number2 ) if statement comparesstatement
values
20 of number1 and number2
cout << number1 << " == " << number2 << endl; to is true (i.e.,
If condition
21 test for inequality values are not equal), execute
22 if ( number1 != number2 ) this statement
23 cout << number1 << " != " << number2 << endl;
24
25 if ( number1 < number2 )
26 cout << number1 << " < " << number2 << endl;
Compares two numbers using
27 relational operator < and >
28 if ( number1 > number2 )
29 cout << number1 << " > " << number2 << endl;
30

27
31 if ( number1 <= number2 )
32 cout << number1 << " <= " << number2 << endl;Compares two numbers using
33
relational operators <= and >=
34 if ( number1 >= number2 )
35 cout << number1 << " >= " << number2 << endl;
36
37 return 0; // indicate that program ended successfully
38
39 } // end function main

Enter two integers to compare: 3 7


3 != 7
3 < 7
3 <= 7

Enter two integers to compare: 22 12


22 != 12
22 > 12
22 >= 12

Enter two integers to compare: 7 7


7 == 7
7 <= 7
7 >= 7

28