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!