# CSC 107 – Programming For Science. Final Exam Thurs., Dec. 10 th from 8AM – 10AM in OM 221 For exam, plan on using full 2 hours If major problem, come.

## Presentation on theme: "CSC 107 – Programming For Science. Final Exam Thurs., Dec. 10 th from 8AM – 10AM in OM 221 For exam, plan on using full 2 hours If major problem, come."— Presentation transcript:

CSC 107 – Programming For Science

Final Exam Thurs., Dec. 10 th from 8AM – 10AM in OM 221 For exam, plan on using full 2 hours If major problem, come talk to me ASAP Exam covers material from entire semester Open-book & open-note so bring what youve got My handouts, solutions, & computers are not allowed Cannot collaborate with a neighbor on the exam Problems will be in a similar style to 2 midterms

Positional Notation To convert d n... d 3 d 2 d 1 d 0 into decimal: From base-b d 0 * b 0 d 1 * b 1 d 2 * b 2 d 3 * b 3 … + d n * b n

Converting Decimal To Base-b General way to convert from decimal to base-b: While decimal number 0 Divide decimal number by b Move remainder to left end of answer Replace decimal number with quotient

NOT Gate Simplest gate: computes opposite of input Output false when input true; Output true when input false; Written in C++ as !a a is gates input !a is functions output a!a!a true false a !a!a

OR Gate Equivalent to addition in Boolean algebra If either input is true is going to be checked True when either a OR b are true; false otherwise Written in C++ as a || b a & b are inputs; a || b is output ab a || b false true false true a b a || b

AND Gate Equivalent to multiplication in Boolean algebra If both inputs are true is going to be checked True when a AND b are true; false otherwise Written in C++ as a && b a & b are inputs; a && b is output aba && b false true false true a b a && b

Monkeys!

Programming Using cin Used to read one or more values at once: cin >> variable ; cin >> variable1 >> variable2 ; Reads where last cin stopped reading input Automatically skips past whitespace Data type of variable determines what is read Stops reading at first non-usable value in input If input is not usable, will set variable equal to 0

Using cout to Print Already seen how to print text using cout cout << Hello World << endl; Prints out whatever is placed between quotes endl goes to next line and prints out immediately Can format output in variety of ways Print numbers to preset level of precision Use fixed format versus which ever makes sense

Priority of Operations Equations can become very complex 4 + 5 * 6 * 9 - 2 + 1 = …? Very Very strict order of operations used by computer ( ) Solve from inner- to outermost + (positive) & - (negative) Solve from right to left * & % & / (division) Solve from left to right + (addition) & - (subtraction) Solve from left to right use lots of parentheses My suggestion: use lots of parentheses

Compound Assignment Operators Short simple operators that allow us to be lazy Save some typing for several common actions Lowest priority operation; expression evaluated first OperatorEquivalent C++ Expression a += 2;a = a + 2;a = a + 2; b -= d;b = b – d;b = b – d; c *= 4 + 5.6;c = c * (4 + 5.6); d /= 0.3 * e;d = d / (0.3 * e);

Mathematical Functions Add #include at top of file All these functions return a value Will NOT change arguments value sin( x ), cos( x ), tan( x ), asin( x ), atan( x ), log10( x ), sqrt( x ), log( x ), exp( x ), pow( x, y ), floor( x ), ceil( x )

Relational Operators < ( less than) > ( greater than) <= ( less than of equal to) >= ( greater than of equal to) != ( inequality ) == ( equality – if two things have same value) NOT the same as assignment (=) NOT the same as assignment (=)

if (…) statement First evaluates expression in parenthesis Add opening brace ( { ) after closing parenthesis Can now write all statements to execute Add closing brace ( } ) to show where if ends If expression false, execution restarts at that point If expression is true, executes code in block Skips over block, when expression is false

if – else if – else Usage Must begin with if statement at the start This is required; what would we be saying else to? Only Only required part of this entire process Can then have zero or more else if s Tests can be anything; do not have to be related Until one is true, will be examined one-by-one Execute 1 st clause where true expression is found Only at the very end can have else clause If nothing else matches then else is executed

Executing switch Statement 1. Evaluates expression 2. Finds matching case or default (if it exists) If no default, may not have match - skips switch 3. Execution starts at 1 st matching label Execution will continue until break; found Will continue into next case if break; is not hit 4. Restarts running after switch once break hit May reach end of switch without a break Continues running code after switch

while Loop while (expression) { statement;... } Evaluates expression to find its value If true, executes entire loop body Re-check after each pass through loop, only Continue with loop while expression checks true

for Loop

Function Definition

return Statement

More Monkeys

Declaring Arrays

String Theory!

Program Basics For Files All built-in file I/O code means adding to header #include #include Place with other #include s to use files in program Even if no files are used, no cost to adding this line Must specify namespace of file I/O code, also If you really want, this can be done individual but… using namespace std; much easier and probably habit by now anyway

Opening a File Within program, may use file in 2 possible ways To read file, ifstream variables will be needed Need variable of type ofstream to write to file Open ofstream 2 different ways depending on use ofstream nukeIt("byebye.txt"); ofstream begone; begone.open("erasedOld.dat"); ofstream keepIt("saved", ios::app); ofstream faithAlone; faithAlone.open("preserve", ios::app); 3

Read File W/ ifstream Variable Used to read one or more values at once: ifstream myFile; myFile >> variable ; myFile >> variable1 >> variable2 ; Starts where last read stopped reading input Automatically skips past whitespace Data type of variable determines what is read Stops at first non-usable value found in the input If input is not usable, will set variable equal to 0

Print to File With ostream Easy to output: output via ostream variable ofstream outFile; outFile << Hello World << endl; Prints out whatever is placed between quotes Value of variable printed if variable not in quotes

Declaring an Pointer

& and * Operators variable & operator gets the address of a variable Used only with variables Used only with variables, including array elements Types must match, no automatic promotion possible Pointers to pointers okay, but needs to be type ** Follow the pointer to get value at location with * Only used with pointers, as * could also be multiply double x, *y = &x; int *a, *b = &a; float *c = a, d = *a;

Pointers versus Arrays Both types of variables store an address Can be assigned to one another if types match To access value, can either use * or [ index ] *p same as p[0] - they are "synonyms" in C++ Arithmetic works similarly - *(p+5) same as p[5] Do not get carried away exploiting this idea Unlike arrays, memory not reserved for pointer Arrays not used to alias other variables (usually)

Using struct s variables Can assign struct variables to one another Variables must be of identical struct types Copies value of all fields but still remain independent Locations will be same, since pointers & arrays aliased In all other situation, must use fields Cannot add, multiply, compare struct variables For any legal use, individual fields always available Arrays of struct s can also be declared Within the array, each entry is struct variable

And Finally…

And Finally Monkees

Subtle Hint

Final Exam Schedule Lab Mastery Exam is: Tues., Dec. 8 th from 9AM – 10AM in OM 115 Final Exam is: Thurs., Dec. 10 th from 8AM – 10AM in OM 221

Download ppt "CSC 107 – Programming For Science. Final Exam Thurs., Dec. 10 th from 8AM – 10AM in OM 221 For exam, plan on using full 2 hours If major problem, come."

Similar presentations