質問 |
答え |
学び始める
|
|
Abstraction means separating the top level usefulness of a thing from the details of its implementation so that the programmers is freed from worrying about details.
|
|
|
what are the 2 modern methods for abstraction 学び始める
|
|
control/process abstraction and data abstraction
|
|
|
explain control/process abstraction 学び始める
|
|
Process abstraction is necessary for achieving program modularity, which means dividing up a system into components or modules, each of which can be designed, implemented, tested, reasoned about, and reused separately from the rest of the system.
|
|
|
学び始める
|
|
Data abstraction enforces a clear separation between the abstract properties of a data type and the concrete details of its implementation.
|
|
|
what does an ADT consist of 学び始める
|
|
a set of data, and necessary operations on the data.
|
|
|
what are Abstract Data Types (ADTs) 学び始める
|
|
An abstract data type is a user-defined data type
|
|
|
学び始める
|
|
For example, List is a widely used data structure Data: a collection of items, each item has a position in a sequential order. Operations: add/remove an item, sort the items,...
|
|
|
what must be decieded when designing an ADT 学び始める
|
|
a set of core operations for users to use the data type. The core operations support the basic uses of the data
|
|
|
what are the basic rules for ADT design 学び始める
|
|
[1] Basic information should not be difficult to obtain [2] The set of operations should be adequate [3] Each operation should have a well-defined purpose [4] Have a few simple operations that can be combined to perform more complex operations.
|
|
|
what do you need when Implementing an ADT 学び始める
|
|
To implement an ADT, you need to choose: a data representation and algorithms.
|
|
|
what is ADT data representation 学び始める
|
|
[1] internal storage container is used to hold the items in the collection, e. g an array [2] users of the ADT need not know the representation [3] users not allowed to tamper with the representation [4] all data private [5] use accessors and mutators
|
|
|
学び始める
|
|
[1] An algorithm for each of the necessary operations, e.g., an algorithm for sorting a list. [2] All auxiliary (helper) operations that are not in the contract should be private.
|
|
|