Lecture 21 Using & Managing Data: Spreadsheets (S&G, §§11.1–11.2) 9/22/2018 6:47 AM Lecture 21 Using & Managing Data: Spreadsheets (S&G, §§11.1–11.2) 9/22/2018 CS 100 - Lecture 21 CS 100
Some Important Applications of Computers Spreadsheets Databases Symbolic & numeric computation Networks Artificial Intelligence 9/22/2018 CS 100 - Lecture 21
Relation to Algorithms Algorithmic problem solving is used in these applications Algorithmic problem solving uses these applications 9/22/2018 CS 100 - Lecture 21
Spreadsheet Visual system for representing and manipulating tabular data Often used for: budgets & other financial data grades Useful for keeping dependant data consistent Examples: Visicalc, Excel, Lotus 1-2-3 9/22/2018 CS 100 - Lecture 21
Example Spreadsheet Column Cells Row Cursor 9/22/2018 CS 100 - Lecture 21
Cells Each cell has a “name” Cells can contain character data e.g. “D2” is the cell in column D and row 2 Cells can contain character data e.g., names, column headings Cells can contain numeric data in various formats e.g., integer, real, currency, date, time Cells can contain formulas e.g., “D2*E2” 9/22/2018 CS 100 - Lecture 21
Relative & Fixed Cell References A name of the form “D2” is a relative reference to the cell in column D and row 2 A name of the form “$D$2” is a fixed reference to the cell in column D and row 2 When a formula is copied into another cell: the fixed references refer to the same cells as they originally did the relative references refer to cells in the same relative positions 9/22/2018 CS 100 - Lecture 21
Example Suppose in G2 we have the formula: D2 * (1 + $C$8 / 100) * E2 When we copy it to G3 it will be: D3 * (1 + $C$8 / 100) * E3 When we copy it to G4 it will be: D4 * (1 + $C$8 / 100) * E4 And so forth 9/22/2018 CS 100 - Lecture 21
Run Excel Spreadsheet Example Lecture 21 9/22/2018 6:47 AM Run Excel Spreadsheet Example Demonstrate: Putting formula “=D2*E2” in F2 Copying into cells below (with copy/paste) Show how auto update Show Pie and Bar charts (using press and hold to preview) Select columns C & D and show scatter chart of age vs. pay rate Insert Totals for Pay column (note the variety of available functions) Show how auto updates Add “Base % Increase” in B8 and 2 in C8 In col. G put “New Pay” and formula “D2*(1+$C$8/100)*E2” (may be easier to see formula in Formula Toolbar) (note dif between relative and fixed cell references) Copy down to rest & fill in total Apply currency formatting (Format/Cell) Show how can change percent from 2 to 3 Insert new col. before G for Merit Change format to General; show adjusting col. widths Fill in new formula for NewPay col. Show changing Base % and Merit % Select the Pay to New Pay block and show a bar chart showing old and new Pay Show Goal Seek (under Tools) by asking it to set H9 to 12,000 by varying C8 9/22/2018 CS 100 - Lecture 21 CS 100
Beginning Spreadsheet 9/22/2018 CS 100 - Lecture 21
Formula Entered in F2 9/22/2018 CS 100 - Lecture 21
Result of Formula in F2 9/22/2018 CS 100 - Lecture 21
Formula Copied into Rest of Column 9/22/2018 CS 100 - Lecture 21
Result of Formulas in Column F 9/22/2018 CS 100 - Lecture 21
Example Pie Chart of Column F 9/22/2018 CS 100 - Lecture 21
Scatter Chart of Columns D vs. C 9/22/2018 CS 100 - Lecture 21
Compute Sum of Column F 9/22/2018 CS 100 - Lecture 21
Resulting Sum 9/22/2018 CS 100 - Lecture 21
Formula for Projected Base Pay Increase 9/22/2018 CS 100 - Lecture 21
Resulting New Pay 9/22/2018 CS 100 - Lecture 21
Formula Relativized to Row 3 9/22/2018 CS 100 - Lecture 21
Formula Relativized to Row 4 9/22/2018 CS 100 - Lecture 21
Change Format of Column G 9/22/2018 CS 100 - Lecture 21
Resulting Reformated Column G 9/22/2018 CS 100 - Lecture 21
Insert Column for Merit Raises 9/22/2018 CS 100 - Lecture 21
New Formula to Include Merit Raises 9/22/2018 CS 100 - Lecture 21
Resulting Projected New Total 9/22/2018 CS 100 - Lecture 21
Bar Chart of Old and New Pay 9/22/2018 CS 100 - Lecture 21
Goal Seeking: Adjust Base Rate so Total = $12,000 9/22/2018 CS 100 - Lecture 21
Calculated Base Rate to Meet Goal 9/22/2018 CS 100 - Lecture 21
Computer Science Issues 9/22/2018 CS 100 - Lecture 21
Update Strategies Reevaluate every cell Reevaluate only those cells containing formulas works on small spreadsheets Reevaluate only those cells that depend on the changed cell problem: indirect dependencies (ripple effect) 9/22/2018 CS 100 - Lecture 21
Indirect Dependency 9/22/2018 CS 100 - Lecture 21
Result 9/22/2018 CS 100 - Lecture 21
Problem of Indirect Dependencies Suppose change D2 Could look for all cells with a formula involving D2, and reevaluate those But suppose F9 depends on F2, and F2 depends on D2 Bad solution: check all cells & update those directly dependant on D2 keep a list of them check all cells & update those directly dependent on those in list keep a list of these, and return to (3) continue until there are no changes 9/22/2018 CS 100 - Lecture 21
Better Solution Keep with each cell a list of all other cells directly dependant on it Update this list whenever a formula is changed Whenever a cell’s value is changed: reevaluate all the cells that depend directly on it reevaluate all the cells that depend directly on those cells and so forth 9/22/2018 CS 100 - Lecture 21
Event-Driven Programming Lecture 21 9/22/2018 6:47 AM Event-Driven Programming Each cell contains either: data or a formula, which is a little program these formulas are interpreted directly (not compiled into machine code) Whenever a cell is modified: it creates an event which may trigger other events must end (no circular dependencies) There is no iteration except that provided through the built-in functions & tools May show creating a circular reference, like C8=D8+1, D8=C8+1 9/22/2018 CS 100 - Lecture 21 CS 100