Slides - Canisius College Computer Science

advertisement
CSC 107 – Programming For Science
LECTURE 3:
VARIABLES
Announcements
 Textbook available from library’s closed reserve
Your First C++ Program
#include <iostream>
using std::cout;
int main() {
/* Hi, Mom. This is a comment
that goes over 2 line. */
cout << “Hello world!”;
return 0; // This comment goes to the line’s end
}
Pre-processor Directives
 Code “pre-processed” before compilation
 No need to request it --- automatically occurs
 Easier-to-read code results from this process
 Just like using comments -- notice a recurring theme?
 Pre-processor directives start with #
 One directive per line & nothing else on the line
 Directives should not span multiple lines
Symbolic Constants
 Directive can be used to name a constant
 Any/all lines BELOW directive can use this constant
 Pre-processor replaces name with value
 Compiler sees value as if that were written there
 When reading the code, programmer sees name
 Makes code much easier to read, write, debug
 Names traditionally in all CAPITAL letters
 THIS IS NOT REQUIRED, but “good style”
What You Write And Work With
#define PI 3.1415962
#define AVOGADRO 6.022E23
#define MY_NAME “Matthew Hertz”
#define DUMB_EXAMPLE MY_NAME
double area = PI * (r * r);
cout << MY_NAME;
cout << DUMB_EXAMPLE;
What The Compiler Sees
#define PI 3.1415962
#define AVOGADRO 6.022E23
#define MY_NAME “Matthew Hertz”
#define DUMB_EXAMPLE MY_NAME
double area = PI * (r * r);
cout << MY_NAME;
cout << DUMB_EXAMPLE;
What The Compiler Sees
#define AVOGADRO 6.022E23
#define MY_NAME “Matthew Hertz”
#define DUMB_EXAMPLE MY_NAME
double area = 3.1415962 * (r * r);
cout << MY_NAME;
cout << DUMB_EXAMPLE;
What The Compiler Sees
#define AVOGADRO 6.022E23
#define MY_NAME “Matthew Hertz”
#define DUMB_EXAMPLE MY_NAME
double area = 3.1415962 * (r * r);
cout << MY_NAME;
cout << DUMB_EXAMPLE;
What The Compiler Sees
#define MY_NAME “Matthew Hertz”
#define DUMB_EXAMPLE MY_NAME
double area = 3.1415962 * (r * r);
cout << MY_NAME;
cout << DUMB_EXAMPLE;
What The Compiler Sees
#define DUMB_EXAMPLE “Matthew Hertz”
double area = 3.1415962 * (r * r);
cout << “Matthew Hertz”;
cout << DUMB_EXAMPLE;
What The Compiler Sees
double area = 3.1415962 * (r * r);
cout << “Matthew Hertz”;
cout << “Matthew Hertz”;
What The Compiler Sees
double area = 3.1415962 * (r * r);
cout << “Matthew Hertz”;
cout << “Matthew Hertz”;
Variables
 Variable gives name to address where data stored
 When variable created, its initial value is unknown
 Assignments update memory location with new value
 Locations in memory updated by assignment ONLY
 When variable is used in program…
 …uses current value at that memory location
 Just about everything (interesting) uses variables
Variable Declarations
 Variables must be declared before can be used
 Way of getting computer to make space for variable
 States how to interpret memory in future uses
 Allows the compiler to check if uses are legal
 Declarations must include two pieces:
 Each variable must have legal, unique name
 Type of data that the variable stores
Variable Names
 Begin with letter or underscore (_)
 Then use any letters, numbers, or underscore
 C++ case-sensitive when naming variables
 Will treat as different Mass, mass, & masS
 Unique name* needed for each variable
 Computer wouldn't know which of 1,000 bobs to use
 Reserved words are… reserved and can't be used
 Includes all types listed on p. 83 of book
 void, unsigned, class also reserved words
Variable Name Conventions
 Usually names begin with lowercase letter
 Helps clarify variables & symbolic constants
 Best if name specifies datum variable stores
 Split multiple uses into multiple variables
 Some things always make for bad names
 tmp, b, l (lowercase letter L)
 Anything would not say to grandparent, priest, boss…
Variable Name Conventions
 Usually names begin with lowercase letter
 Helps clarify variables & symbolic constants
 Best if name specifies datum variable stores
 Split multiple uses into multiple variables
 Some things always make for bad names
 tmp, b, l (lowercase letter L)
 Anything would not say to grandparent, priest, boss…
Data Types
 Each variable also has data type
 How program treats variable’s value defined by this
 Single true or false value held by bool
 C/C++ defines 7 numeric data types
 Integer types: short, int, long, long long
 Decimal types: float, double, long double
 Ranges for each type is not really standardized
 Non-negative versions using unsigned ______
 char data type can hold a character
Representing Text
 Most computers you find follow ASCII standard
 American Standard Code for Information Interchange
 256 (= 28) possible characters in extended definition
 Since computers are stupid, need to set fixed size
 Computers use 0s & 1s ONLY – its all they know
 Number still stored, but character is displayed
 For number 97, a is printed
 Prints & for number 38
 For number 55, 7 is printed
ASCII Table
There Is No Character
 For computer, there are no characters
 Add to actual number just like normal addition:
’M’ + 3 = 77 + 3 = 80 (’P’)
’0’ + 5 = 48 + 5 = 53 (’5’)
9 + ’1’ = 49 + 9 = 58 (’:’)
’1’+’0’ = 49 + 48= 97 (’a’)
 Can also use to subtract, divide, any other operation
Writing Variable Declarations
 Single variable declared as: type name;
double goodNameExample;
short bad;
 Can also declare multiple variables at once:
int i, j;
long double k, l, m, n, o, p;
float thisIsAReallyLongName,
thisIsAnotherLongName;
Writing Variable Declarations
 Could also specify initial value for variable
 Variable, constant, literal, or expression can be used
int i = 0.0;
long j = -1;
long double k = -0.000232847812;
long l = j, many, minusJ = -j;
char c = 'i';
char newLine = '\n';
char tab = '\t';
Writing Variable Declarations
 Could also specify initial value for variable
 Variable, constant, literal, or expression can be used
int i = 0 ;
long j = -1;
long double k = -0.000232847812;
long l = j, many, minusJ = -j;
char c = 'i';
char newLine = '\n';
char tab = '\t';
Constants
 Constants very similar to variables
 Must be declared with a data type and unique name
 const data_type var_name declares variable
 Value of constant fixed when declared, however
 Variables & constants treated and used similarly
Your Turn
 Get in groups & work on following activity
For Next Lecture
 Read sections 6.1 – 6.7 for Wed.
 What operations exist for us to use with variables?
 What can we use these variable to do anything?
 How are data types used when computing something?
 What do we mean by order of operations?
 Week #1 weekly assignment due Tuesday
 Problems available on Angel & should be doable
 If problem takes more than 10 minutes, TALK TO ME!
Download