| Preface |
|
xi | |
| Assumptions about the Reader |
|
xiii | |
| Programming Exercises |
|
xiii | |
| Conventions Used in this Book |
|
xiv | |
| PART I PROGRAPH PROGRAMMING FUNDAMENTALS |
|
1 | (44) |
|
Introduction: Why Do I Need Prograph? |
|
|
3 | (24) |
|
|
|
3 | (23) |
|
Conventional High Level Computer Languages |
|
|
3 | (2) |
|
|
|
5 | (2) |
|
Creating Prograph Programs |
|
|
7 | (19) |
|
|
|
26 | (1) |
|
Elements of a Prograph Program |
|
|
27 | (18) |
|
|
|
27 | (17) |
|
|
|
27 | (1) |
|
|
|
28 | (6) |
|
Built-In Methods---The Prograph Primitive Set |
|
|
34 | (1) |
|
Decision-Making with Matches, Controls, and Cases |
|
|
35 | (2) |
|
Calculations with Evaluations |
|
|
37 | (1) |
|
Data Types---Constants, Variables, and Persistents |
|
|
38 | (3) |
|
|
|
41 | (1) |
|
|
|
41 | (1) |
|
|
|
42 | (1) |
|
|
|
42 | (1) |
|
|
|
42 | (1) |
|
|
|
42 | (1) |
|
|
|
43 | (1) |
|
|
|
43 | (1) |
|
|
|
43 | (1) |
|
|
|
43 | (1) |
|
|
|
44 | (1) |
| PART II BACKGROUND FOR OOP---PROCEDURAL PROGRAMMING TECHNIQUES |
|
45 | (104) |
|
|
|
47 | (18) |
|
|
|
47 | (17) |
|
|
|
47 | (6) |
|
Structured Programming of Bigger Programs Having Many Methods |
|
|
53 | (9) |
|
Setting Detailed Help Information for Your Methods |
|
|
62 | (2) |
|
|
|
64 | (1) |
|
|
|
65 | (22) |
|
|
|
65 | (19) |
|
Decision-Making and Cases |
|
|
65 | (1) |
|
|
|
66 | (4) |
|
|
|
70 | (6) |
|
|
|
76 | (1) |
|
|
|
76 | (1) |
|
|
|
77 | (1) |
|
|
|
77 | (1) |
|
|
|
77 | (1) |
|
|
|
78 | (1) |
|
|
|
78 | (4) |
|
|
|
82 | (2) |
|
|
|
84 | (3) |
|
|
|
87 | (14) |
|
|
|
87 | (13) |
|
|
|
87 | (5) |
|
Prograph Version of a For-Next Loop |
|
|
92 | (2) |
|
Looping an Indefinite Number of Times |
|
|
94 | (3) |
|
|
|
97 | (3) |
|
|
|
100 | (1) |
|
|
|
101 | (14) |
|
|
|
101 | (13) |
|
|
|
101 | (1) |
|
|
|
102 | (2) |
|
|
|
104 | (1) |
|
|
|
105 | (1) |
|
|
|
106 | (8) |
|
|
|
114 | (1) |
|
|
|
115 | (22) |
|
|
|
115 | (21) |
|
Lists---Collections of Things |
|
|
115 | (1) |
|
|
|
116 | (3) |
|
Getting and Setting Individual Elements |
|
|
119 | (2) |
|
|
|
121 | (5) |
|
Nested Lists (two dimensional, or higher-dimensional lists) |
|
|
126 | (7) |
|
Filling and Using a New List |
|
|
133 | (3) |
|
|
|
136 | (1) |
|
Applying Procedural Programming |
|
|
137 | (12) |
|
|
|
137 | (10) |
|
The Programmer's Calculator Program |
|
|
137 | (2) |
|
Converting Numbers to Decimal Format |
|
|
139 | (4) |
|
Reconverting Decimal Formatted Text to Numbers |
|
|
143 | (4) |
|
|
|
147 | (2) |
| PART III OBJECT - ORIENTED PROGRAMMING TECHNIQUES |
|
149 | (132) |
|
Principles of Object-Oriented Programming |
|
|
151 | (26) |
|
|
|
151 | (23) |
|
Why Should You Use Object-Oriented Programming? |
|
|
151 | (3) |
|
Solving Problems by Using Classes and Objects |
|
|
154 | (3) |
|
|
|
157 | (2) |
|
Communication With and Between Objects---Requests to Perform Actions |
|
|
159 | (2) |
|
Software Reuse---Inheritance and Subclassing |
|
|
161 | (2) |
|
|
|
163 | (2) |
|
Deciding What the Classes and Objects Should Be |
|
|
165 | (1) |
|
|
|
166 | (2) |
|
Class-Responsibility-Collaborator (CRC) Cards |
|
|
168 | (2) |
|
Changing a Class' Behavior by Subclassing |
|
|
170 | (1) |
|
|
|
170 | (2) |
|
Software Reuse---Extending a Class using Composition |
|
|
172 | (1) |
|
Incorporating Instances of Other Classes |
|
|
172 | (2) |
|
|
|
174 | (3) |
|
Applying OOP with Prograph---Classes |
|
|
177 | (20) |
|
|
|
177 | (19) |
|
Creating Classes with Prograph |
|
|
177 | (1) |
|
|
|
178 | (3) |
|
|
|
181 | (5) |
|
User-defined Get and Set Methods |
|
|
186 | (6) |
|
Setting Default Attribute Values |
|
|
192 | (1) |
|
Putting Objects to Use in Prograph Programs |
|
|
192 | (4) |
|
|
|
196 | (1) |
|
Extending Classes---Subclasses and Inheritance |
|
|
197 | (30) |
|
|
|
197 | (28) |
|
Subclassing (Inheritance) |
|
|
198 | (1) |
|
|
|
199 | (4) |
|
IntArray---The First Subclass of the Array Class |
|
|
203 | (1) |
|
Instance or Initialization Methods |
|
|
204 | (2) |
|
Overriding and Accessing Superclass Methods |
|
|
206 | (3) |
|
One Form of Polymorphism in Subclasses |
|
|
209 | (3) |
|
Creating a Second Array Subclass---RealArray |
|
|
212 | (2) |
|
|
|
214 | (3) |
|
|
|
217 | (8) |
|
|
|
225 | (2) |
|
Using the Full Power of OOP |
|
|
227 | (14) |
|
|
|
227 | (13) |
|
|
|
227 | (5) |
|
|
|
232 | (8) |
|
|
|
240 | (1) |
|
Applying OOP---Creating Utility Classes |
|
|
241 | (40) |
|
|
|
241 | (39) |
|
|
|
241 | (6) |
|
|
|
247 | (7) |
|
|
|
254 | (7) |
|
|
|
261 | (19) |
|
|
|
280 | (1) |
| PART IV OBJECT-ORIENTED USER INTERFACE MANAGEMENT |
|
281 | (120) |
|
The ABCs of Interclass Communication |
|
|
283 | (24) |
|
|
|
283 | (23) |
|
Prograph GUI Construction Tools |
|
|
284 | (1) |
|
What are Application Frameworks? |
|
|
285 | (2) |
|
The ABCs as an Enhanced Application Framework |
|
|
287 | (4) |
|
The Application Builder Classes and Interclass Communication |
|
|
291 | (1) |
|
The Application Builder Editors as GUI Designers |
|
|
292 | (3) |
|
The Application Builder Editors as Action Designers |
|
|
295 | (11) |
|
|
|
306 | (1) |
|
Applying the ABCs---User Interface Construction |
|
|
307 | (32) |
|
|
|
307 | (31) |
|
The Calculator Program---Version 1 |
|
|
308 | (2) |
|
Designing the User Interface of the Calculator Program |
|
|
310 | (7) |
|
Modifying Prograph's GUI Editors |
|
|
317 | (9) |
|
Writing the Calculator Program Code |
|
|
326 | (12) |
|
|
|
338 | (1) |
|
Applying the ABCs---Part 2: Son of Calculator |
|
|
339 | (22) |
|
|
|
339 | (21) |
|
The Calculator Program---Version 2 |
|
|
339 | (2) |
|
Designing the User Interface of the Calculator Program |
|
|
341 | (5) |
|
Writing the Calculator Program Code |
|
|
346 | (14) |
|
|
|
360 | (1) |
|
Applying the ABCs---Graphical Display of Documents |
|
|
361 | (40) |
|
|
|
361 | (40) |
|
The Graphical Data Plotter Program |
|
|
362 | (16) |
|
Writing the Code for the Data Plotter Program |
|
|
378 | (23) |
| PART V EPILOGUE |
|
401 | (8) |
|
|
|
403 | (6) |
|
|
|
403 | (6) |
|
|
|
404 | (1) |
|
|
|
405 | (1) |
|
|
|
406 | (1) |
|
|
|
407 | (1) |
|
Electronic Bulletin Boards |
|
|
408 | (1) |
|
|
|
408 | (1) |
| Index |
|
409 | |