Lecture 21 Some Important Applications of Computers

advertisement
Lecture 21
3/29/04 23:59
Lecture 21
Using & Managing Data:
Spreadsheets
(S&G, §§11.1
–11.2)
§§11.1–
3/29/04
CS 100 - Lecture 21
1
Some Important Applications of
Computers
• Spreadsheets
• Databases
• Symbolic & numeric computation
• Networks
• Artificial Intelligence
3/29/04
CS 100
CS 100 - Lecture 21
2
1
Lecture 21
3/29/04 23:59
Relation to Algorithms
• Algorithmic problem solving is used in
these applications
• Algorithmic problem solving uses these
applications
3/29/04
CS 100 - Lecture 21
3
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
3/29/04
CS 100
CS 100 - Lecture 21
4
2
Lecture 21
3/29/04 23:59
Example Spreadsheet
Column
Cells
Row
Cursor
3/29/04
CS 100 - Lecture 21
5
Cells
• Each cell has a “name”
– 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”
3/29/04
CS 100
CS 100 - Lecture 21
6
3
Lecture 21
3/29/04 23:59
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
3/29/04
CS 100 - Lecture 21
7
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
3/29/04
CS 100
CS 100 - Lecture 21
8
4
Lecture 21
3/29/04 23:59
Run Excel Spreadsheet Example
3/29/04
CS 100 - Lecture 21
9
Beginning Spreadsheet
3/29/04
CS 100
CS 100 - Lecture 21
10
5
Lecture 21
3/29/04 23:59
Formula Entered in F2
3/29/04
CS 100 - Lecture 21
11
Result of Formula in F2
3/29/04
CS 100
CS 100 - Lecture 21
12
6
Lecture 21
3/29/04 23:59
Formula Copied into Rest of
Column
3/29/04
CS 100 - Lecture 21
13
Result of Formulas in Column F
3/29/04
CS 100
CS 100 - Lecture 21
14
7
Lecture 21
3/29/04 23:59
Example Pie Chart of Column F
3/29/04
CS 100 - Lecture 21
15
Scatter Chart of Columns D vs. C
3/29/04
CS 100
CS 100 - Lecture 21
16
8
Lecture 21
3/29/04 23:59
Compute Sum of Column F
3/29/04
CS 100 - Lecture 21
17
Resulting Sum
3/29/04
CS 100
CS 100 - Lecture 21
18
9
Lecture 21
3/29/04 23:59
Formula for Projected Base Pay
Increase
3/29/04
CS 100 - Lecture 21
19
Resulting New Pay
3/29/04
CS 100
CS 100 - Lecture 21
20
10
Lecture 21
3/29/04 23:59
Formula Relativized to Row 3
3/29/04
CS 100 - Lecture 21
21
Formula Relativized to Row 4
3/29/04
CS 100
CS 100 - Lecture 21
22
11
Lecture 21
3/29/04 23:59
Change Format of Column G
3/29/04
CS 100 - Lecture 21
23
Resulting Reformated Column G
3/29/04
CS 100
CS 100 - Lecture 21
24
12
Lecture 21
3/29/04 23:59
Insert Column for Merit Raises
3/29/04
CS 100 - Lecture 21
25
New Formula to Include Merit
Raises
3/29/04
CS 100
CS 100 - Lecture 21
26
13
Lecture 21
3/29/04 23:59
Resulting Projected New Total
3/29/04
CS 100 - Lecture 21
27
Bar Chart of Old and New Pay
3/29/04
CS 100
CS 100 - Lecture 21
28
14
Lecture 21
3/29/04 23:59
Goal Seeking: Adjust Base Rate
so Total = $12,000
3/29/04
CS 100 - Lecture 21
29
Calculated Base Rate to Meet
Goal
3/29/04
CS 100
CS 100 - Lecture 21
30
15
Lecture 21
3/29/04 23:59
Computer Science Issues
3/29/04
CS 100 - Lecture 21
31
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)
3/29/04
CS 100
CS 100 - Lecture 21
32
16
Lecture 21
3/29/04 23:59
Indirect Dependency
3/29/04
CS 100 - Lecture 21
33
Result
3/29/04
CS 100
CS 100 - Lecture 21
34
17
Lecture 21
3/29/04 23:59
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:
1. check all cells & update those directly dependant on D2
2. keep a list of them
3. check all cells & update those directly dependent on those
in list
4. keep a list of these, and return to (3)
5. continue until there are no changes
3/29/04
CS 100 - Lecture 21
35
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
3/29/04
CS 100
CS 100 - Lecture 21
36
18
Lecture 21
3/29/04 23:59
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
3/29/04
CS 100
CS 100 - Lecture 21
37
19
Download