csc 107 programming for science n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Lecture 41: Course Review PowerPoint Presentation
Download Presentation
Lecture 41: Course Review

Loading in 2 Seconds...

  share
play fullscreen
1 / 36
ianthe

Lecture 41: Course Review - PowerPoint PPT Presentation

103 Views
Download Presentation
Lecture 41: Course Review
An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. CSC 107 – Programming For Science Lecture 41:Course Review

  2. Final Exam • Fri., Dec. 14thfrom 12:30PM – 2:30PMin SH1028 • 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 you’ve got • My handouts, solutions, & computers are not allowed • Cannot collaborate with a neighbor on the exam • Problems will be in a similar style to midterms

  3. Positional Notation • To convert dn...d3d2d1d0 intodecimal:

  4. Converting Decimal To Base-b • General way to convert from decimal to base-b:Whiledecimal number ≠ 0Divide decimal number by bMoveremainder to left end of answerReplacedecimal number with quotient

  5. Programming Using cin • Used to read one or more values at once: cin >> variable; cin >> variable1 >> variable2; • Reads where last cinstopped 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

  6. Using coutto Print • Already seen how to print text using cout cout << “Hello World” << endl; • Prints out whatever is placed between quotes • endlgoes 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

  7. Priority of Operations • Equations can become very complex • 4 + 5 * 6 * 9 - 2 + 1 = …? • Verystrict 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 • My suggestion: use lots of parentheses

  8. 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

  9. Mathematical Functions • Add #include<cmath>at top of file • All these functions return a value • Will NOT change argument’s 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)

  10. 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 (=)

  11. a NOT Gate • Simplest gate: computes opposite of input • Output false when input true • Output true when input false • Written in C++ as !a ("bang a") • a is gate’s input

  12. a b OR Gate • Equivalent to addition in Boolean algebra • If either input istrue is going to be checked • true when either aORb aretrue; false otherwise • Written in C++ asa || b • a & b are inputs

  13. a b AND Gate • Equivalent to multiplication in Boolean algebra • If both inputs are true is going to be checked • True when aANDb are true; false otherwise • Written in C++ asa && b • a & b are inputs

  14. 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 ifends • If expression false, execution restarts at that point • If expression is true, executes code in block • Skips over block, when expression is false

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

  16. Executing switchStatement • Evaluates expression • Finds matching caseor default(if it exists) • If no default, may not have match - skips switch • Execution starts at 1stmatching label • Execution will continue until break; found • Will continue into next case if break; is not hit • Restarts running after switchonce breakhit • May reach end of switchwithout a break • Continues running code after switch

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

  18. forLoop for (initialization;expression;update) { statement; ...} • initializationrun once before loop start • Loop termination condition is expression • Boolean expression checked at start of each pass • Re-executes entire loop body if expression is true • Once expression found to be false, loop is over

  19. Function Definition • List prototypes for functions near top of file • Similar, but prototypes end with semi-colon • Return type, name, & parameterslisted at start • After these are listed, need an open brace • Function goes until closing bracefloat squareNumber(float x){…}double computeAvg(int x, int y){…}intpromptAndReadInput(){…}void noReturnAndNoParams(){…}

  20. returnStatement • Function ends when returnis executed • Any and all code after returnwill be ignored • Calling function will resume its execution • There are no errors or warnings for this common bug

  21. Declaring Arrays • With the array, have entries of given type • Each entry like variable & can be used as such • Each entry is independent of all other entries • Type, name, & sizeneeded for array declaration intplanetsWeight[NOT_PLUTO];float armada[MAX_SHIPS];double annualIncomes[MAX_LIFETIME];char responses[17];long timeToWait[35];

  22. String Theory! • cString type does not exist • Just an array of charmade to look fancy • One slight wrinkle: cString ends with null character • Since C++ does not know array’s size, but we need it • Null character is charwith value of 0 • Written as ‘\0’ if used in a program • Unprintable, only used to mark end of cString

  23. Program Basics For Files • All built-in file I/O code means adding to header #include <fstream> • Place with other #includes 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

  24. Opening a File 3 • Within program, may use file in 2 possible ways • To read file, ifstreamvariables will be needed • Need variable of type ofstreamto write to file • Open ofstream2 different ways depending on use ofstreamnukeIt("byebye.txt");ofstreambegone;begone.open("erasedOld.dat");ofstreamkeepIt("saved", ios::app);ofstreamfaithAlone;faithAlone.open("preserve", ios::app);

  25. Read File W/ifstreamVariable • Used to read one or more values at once: ifstreammyFile;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

  26. Print to File With ostream • Easy to output: output via ostreamvariable ofstreamoutFile;outFile << “Hello World” << endl; • Prints out whatever is placed between quotes • Value of variable printed if variable not in quotes

  27. Declaring an Pointer • Must declare pointer before use • This should not be surprise, just like any variable • Type &name required (as with all declarations) • As with any other variable, typical name rules apply • Include asterisk before name within declaration • Variable is now a pointer to requested type • Initial value is unknown int*jennifer;char*pointerToChar;double*down;

  28. & and * Operators • & operator gets the address of a variable • 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;

  29. 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)

  30. Using structs • Can assign structvariablesto 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 structvariables • For any legal use, individual fields always available • Arrays of structscan also be declared • Within the array, each entry is structvariable

  31. “Subtle” Hint Do NOT bother with memorization Be ready to lookup &use information quickly

  32. For Final • You can use on this final: • Your textbook & notes • At the same time, you may NOT use: • Computer, calculator, cell phone, or similar • Copies of daily activities and/or solutions • Friends, Romans, countrymen or their ears

  33. How to Prepare for Midterm DO DON'T • Redo activities, labs, weekly… • Make cheat sheets for the test • Review how parts of C/C++work • Assume notes replace studying • Ever, ever invade Russia in winter • Assume you'll pass cause you're cute

  34. How to Prepare for Midterm DO DON'T • Redo activities, labs, weekly… • Make cheat sheets for the test • Review how parts of C/C++work • Assume notes replace studying • Ever, ever invade Russia in winter • Assume you'll pass cause you're cute

  35. How to Prepare for Midterm DO DON'T • Redo activities, labs, weekly… • Make cheat sheets for the test • Review how parts of C/C++work • Add post-its to important pages • Assume notes replace studying • Ever, ever invade Russia in winter • Drink case of 40s before test • Use post-its as clothing

  36. Final Exam Schedule • Lab Mastery Exam is:Tues., Dec. 11th2:45PM – 3:45PM in SH1008 • Final Exam is:Fri., Dec. 14thfrom 12:30PM – 2:30PM in SH1028