CS 1520 Lecture Notes - Haptics & Virtual Reality Laboratory

Download Report

Transcript CS 1520 Lecture Notes - Haptics & Virtual Reality Laboratory

Computer
Programming Basics
Jeon, Seokhee
Assistant Professor
Department of Computer Engineering,
Kyung Hee University, Korea
Structure of a C++ Program
Pre-compiler directive
Opening brace
Closing brace
Opening brace
Closing brace
Hello World!
Namespace std contains
all the classes, objects and
functions of the standard
C++ library.
Without namespace
#include <iostream>
int main () {
std::cout << "Hello world!\n";
return 0;
}
Preprocessor Directives
#include <iostream>
• “I want to use a predefined
library called iostream”
• Always start with a ‘#’
• iostream: a library for inputs
(from e.g., a user) and outputs
(to e.g., the monitor)
“using” Directives
using namespace std;
• “I want to use objects in a name group
‘std’ ”
• Tells the compiler where to look for
names in the library
• Can deal with the situation where two or
more objects in different libraries share a
same name (naming confliction).
– Read Appendix N for more about
namespace
main function
int main()
• The main body of the program.
• Compiler first tries to locate
“main()” to find where to begin
the program
• In the form of a function
– I will cover “function” soon
Comment
• Internal program document
• Not considered as a program code
Start of comment
End of comment
Start of comment
End of comment
Nested Block Comments are Invalid
Variables
• Named memory locations that have a type
– Named: identifier
– Type: needs declaration
• What you can do with variables
– Storing data
– Modifying data
– Reading data
Variables and Identifiers
Memory
Address of memory:
Hard to remember
Identifier: name of
address
Variables and Identifiers
Identifiers
studentID
studentGrade1
studentGrade2
Memory
Variables and Identifiers
Memory
studentID
studentGrade
studentName
Compiler keeps track
of [identifier-address]
table
Variables and Identifiers
In program
studentID_Total_Grade = studentGrade1 +
studentGrade2
Naming Identifiers
• Allowed characters: A-Z, a-z, 0-9, _ (underscore)
• Not allowed to start with a digit. E.g., 3class (x),
class3(o)
• The identifier cannot duplicate a reserved word. e.g.,
if, case, while…
• Good names  descriptive but short
• C++ is case sensitive; PI, Pi and pi are different.
Standard Data Types
Integer and Floating Point Types
2 Bytes
4 Bytes
2 or 4 Bytes
8 Bytes
4 Bytes
10 Bytes
Size of value type depends on computer architecture
Maximum/Minimum of Integer Value
Type
Type
short int/short
int (PC)
int (Mainframe)
long int/long
Sign
signed
unsigned
signed
unsigned
signed
unsigned
signed
unsigned
Byte
2
2
4
4
Minimum value
Maximum value
-32,768
32,767
0
65,535
-32,768
32,767
0
65,535
-2,147,483,648
2,147,483,647
0
4,294,967,295
-2,147,483,648
2,147,483,647
0
4,294,967,295
Maximum/Minimum of C++ data types
Variables Declaration
Variable Initialization
• Variable declaration ≠ variable initialization
• Should be initialized by a programmer before it is
used
e.g.,
int count;  declaration (o), initialization(x)
char grade = ‘d’; declaration (o), initialization(o)
Constants
• Data values that cannot be changed during program
execution
• E.g.,
– 3.141592
– ‘d’
– “Hello word”
– ‘\0’
To Remember
• A character constant is enclosed by the single quotes.
(e.g. ‘a’)
• Use double quotes for string constants. (e.g. “Jeon,
Seokhee”)
• bool types are treated as a number. True: non-zero.
False: zero.
Standard streams
• A mapping between data and input/output device
More about cout
• width(int) function sets the width for printing a
value
• Only works until the next insertion command comes
int x = 42;
cout.width(5);
cout << x << ‘\n’;
cout << x << ‘\n’;
// Outputs
42
// Outputs 42
More about cout
• fill(char) function sets the fill character.
• The character remains as the fill character until set
again.
int x = 42;
cout.width(5);
cout.fill(‘*’);
cout << x << ‘\n’;
// Outputs ***42
More about cout
• precision (int) sets the number of significant digits of
float type numbers
float y = 23.1415;
cout.precision(1);
cout << y << '\n'; // Outputs 2e+01
cout.precision(2);
cout << y << '\n'; // Outputs 23
cout.precision(3);
cout << y << '\n'; // Outputs 23.1
More about cout
• Output Manipulators (not a function)
endl - outputs a new line character, flushes output
dec - sets int output to decimal
hex - sets int output to hexadecimal
oct - sets int output to octal
#include <iomanip.h>
int x = 42;
cout << oct << x << endl; // Outputs 52\n
cout << hex << x << endl; // Outputs 2a\n
cout << dec << x << endl; // Outputs 42\n
Example codes reading (Program 2-2)
•
•
#include <iostream>
using namespace std;
•
•
•
•
•
•
int
{
main
int
int
int
int
(void)
a;
b;
c;
sum;
Welcome. This program adds
three numbers. Enter three numbers
in the form: nnn nnn nnn <return>
11 22 33
The total is: 66
Thank you. Have a good day.
•
•
•
cout << "Welcome. This program adds\n";
cout << "three numbers. Enter three numbers\n";
cout << "in the form: nnn nnn nnn <return>\n";
•
cin >> a >> b >> c;
•
•
// Numbers are now stored in a, b, and c. Add them.
sum = a + b + c;
•
•
•
•
}
cout << "\nThe total is: " << sum << "\n";
cout << "\nThank you. Have a good day.\n";
return 0;
// main
Try to understand other examples in
textbook!
• Program 2-3 ~ 2-13