0% found this document useful (0 votes)
114 views17 pages

13.1, 13.2 User Defined Datatype & File Organi

1. The document discusses user-defined data types in computer programming, including non-composite types like enumerated and pointer data types, and composite types like records, sets, and classes. 2. Enumerated data types define a list of possible values for a variable, like days of the week, while pointer data types reference the memory location of another variable rather than storing the data itself. 3. The document provides examples of defining enumerated and pointer data types in pseudocode and Visual Basic, and explains how to declare pointer variables, initialize them to memory addresses, and dereference pointers to access the data at that memory location.

Uploaded by

Bradley Muganyi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
114 views17 pages

13.1, 13.2 User Defined Datatype & File Organi

1. The document discusses user-defined data types in computer programming, including non-composite types like enumerated and pointer data types, and composite types like records, sets, and classes. 2. Enumerated data types define a list of possible values for a variable, like days of the week, while pointer data types reference the memory location of another variable rather than storing the data itself. 3. The document provides examples of defining enumerated and pointer data types in pseudocode and Visual Basic, and explains how to declare pointer variables, initialize them to memory addresses, and dereference pointers to access the data at that memory location.

Uploaded by

Bradley Muganyi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

Computer Science 9618

(Paper 3 - Sec. 13) Data Representation


with Majid Tahir

Syllabus Content:
13. Data representation
13.1- User-defined data types
Show understanding of why user-defined types are necessary
Define and use non-composite types
Define and use composite data types
Choose and design an appropriate user-defined data type for a given problem
Notes and guidance
Including enumerated, pointer (Non-Composite)
Including set, record and class / object (composite)

13.2 File organisation and access


Show understanding of the methods of file organisation and select an
appropriate method of file organisation and file access for a given problem
Show understanding of methods of file access
Show understanding of hashing algorithms
Notes and guidance
Including serial, sequential (using a key field), random (using a record
key)
Sequential access for serial and sequential files
Direct access for sequential and random files

User defined Data Type


You have already met a variety of built-in data types with integers, strings, chars and
more. But often these limited data types aren't enough and a programmer wants to build
their own data types. Just as an integer is restricted to "a whole number from -
2,147,483,648 through 2,147,483,647", user-defined data types have limits placed on
their use by the programmer.
A user defined data type is a feature in most high level programming languages which
allows a user (programmer) to define data type according to his/her own requirements

There are two categories of user defined data types.:

1. Non-composite data type


a. Enumerated data type
b. Pointer data type
2. Composite
a. Record data type
b. Set data type
c. Objects and classes

www.majidtahir.com Contact: +923004003666 Email: [email protected]


1
Computer Science 9618
(Paper 3 - Sec. 13) Data Representation
with Majid Tahir

Non-composite user-defined data type:


A non-composite data type is defined without referencing another data type. They don’t
combine different built-in data types in one data type. Non-Composite data types are:

Enumerated data type


Pointers

Enumerated data type

An enumerated data type defines a list of possible values. The following pseudocode
shows two examples of type definitions:
TYPE <identifier> = (value1, value2, value3, …)

Pseudocode of data Type for Working Days can be declared as TWdays:

Types names are normally start with T to facilitate the programmer

TYPE TWdays = (Monday, Tuesday, Wednesday, Thursday, Friday)

These values are ordinal and you can use mathematical and
comparison operators on them.

These values are not strings so not enclosed in “quotation marks”

Variables can then be declared and assigned values, for example:

DECLARE Workdays : TWdays


DECLARE thisday : TWdays
DECLARE nextday : TWdays
today Monday
nextday Monday + 1

nextday is now set to Tuesday by applying mathematical operator +

It is important to note that the values of the enumerated type look like string values but
they are not. They must not be enclosed in quote marks.This makes the second

www.majidtahir.com Contact: +923004003666 Email: [email protected]


2
Computer Science 9618
(Paper 3 - Sec. 13) Data Representation
with Majid Tahir

example much more useful because the ordering can be put to many uses in a
program. For example, a comparison statement can be used with the values and
variables of the enumerated data type:

Enumerated data type in vb.net


Enum Example

When you are in a situation to have a number of constants that are logically related to each
other, you can define them together these constants in an enumerator list. An enumerated type
is declared using the enum keyword.

Syntax:

Enumerated declaration in VB (Sample Program)

www.majidtahir.com Contact: +923004003666 Email: [email protected]


3
Computer Science 9618
(Paper 3 - Sec. 13) Data Representation
with Majid Tahir

When the code is executed, following output will be produced:

An enumeration data type has a name, an underlying data type, and a set of members.

Each member represents a constant.

It is useful when you have a set of values that are functionally significant and fixed.

Another example of Enumerated Data Type in Visual Basic is given


below:

www.majidtahir.com Contact: +923004003666 Email: [email protected]


4
Computer Science 9618
(Paper 3 - Sec. 13) Data Representation
with Majid Tahir

Pointer Data Type:


A pointer data type is used to reference a memory location.

This data type needs to have information about the type of data that will be stored in
the memory location. In pseudocode the type definition has the following structure,
in which ^ shows that the type being declared is a pointer and <TYPENAME> is the
type of data to be found in the memory location: for example INTEGER or REAL: or
any user-defined data type.

For example: a pointer for months of the year could be defined as follows:

www.majidtahir.com Contact: +923004003666 Email: [email protected]


5
Computer Science 9618
(Paper 3 - Sec. 13) Data Representation
with Majid Tahir

It could then be used as follows:

If the contents of the memory location are required rather than the address of the
memory location: then the pointer can be dereferenced. For example: myMonth can
be set to the value stored at the address monthpointer is pointing to:

DECLARE myMonth : month myMonth e-monthPointer


monthPointer has been dereferenced
The pointer data type is unique among the FreeBasic numeric data types.
Instead of containing data, like the other numeric types, a pointer
contains the memory address of data.

The main non-composite, derived type is the pointer, a data type whose value refers
directly to (or "points to") another value stored elsewhere in the computer
memory using its address.
It is a primitive kind of reference. (In everyday terms, a page number in a book could
be considered a piece of data that refers to another one). Pointers are often stored in a
format similar to an integer; however, attempting to dereference or "look up" a pointer
whose value was never a valid memory address would cause a program to crash. To
ameliorate this potential problem, pointers are considered a separate type to the type
of data they point to, even if the underlying representation is the same.

As you can see there are three basic steps to using pointers.

www.majidtahir.com Contact: +923004003666 Email: [email protected]


6
Computer Science 9618
(Paper 3 - Sec. 13) Data Representation
with Majid Tahir

1. Declare a pointer variable.


2. Initialize the pointer to a memory address.
3. Dereference the pointer to manipulate the data at the pointed-to memory
location.

This isn't really any different than using a standard variable, and you use pointers in
much the same way as standard variables. The only real difference between the two is
that in a standard variable, you can access the data directly, and with a pointer you
must dereference the pointer to interact with the data.

A pointer references a location in memory, and obtaining the value stored at that
location is known as dereferencing the pointer. As an analogy, a page number in a
book's index could be considered a pointer to the corresponding page; dereferencing
such a pointer would be done by flipping to the page with the given page number and
reading the text found on the indexed page.

Pseudocode for the definition of a pointer is illustrated by:

Declaration of a variable of pointer type does not require the caret symbol ^ to be used:

A special use of a pointer variable is to access the value stored at the address pointed to. The pointer variable is said
to be 'dereferenced'

Composite user-defined data types


A composite user-defined data type has a definition with reference to at least one other type.
Three examples are considered here.

Record data type

A record data type is the most useful and therefore most widely used. It allows the
programmer to collect together values with different data types when these form a coherent
whole.

www.majidtahir.com Contact: +923004003666 Email: [email protected]


7
Computer Science 9618
(Paper 3 - Sec. 13) Data Representation
with Majid Tahir

As an example, a record could be used for a program using employee data. Pseudocode
for defining the type could be:

An individual data item can th en be accessed using a dot notation:

A particular use of a record is for the implementation of a data structure where one or
possibly two of the variables defined are pointer variables.

www.majidtahir.com Contact: +923004003666 Email: [email protected]


8
Computer Science 9618
(Paper 3 - Sec. 13) Data Representation
with Majid Tahir

Records in VB:

Sample code of Record Data Type in VB and its Output below:

www.majidtahir.com Contact: +923004003666 Email: [email protected]


9
Computer Science 9618
(Paper 3 - Sec. 13) Data Representation
with Majid Tahir

Record Data type with Arrays in VB.net:

www.majidtahir.com Contact: +923004003666 Email: [email protected]


10
Computer Science 9618
(Paper 3 - Sec. 13) Data Representation
with Majid Tahir

Set data type:


A set data type allows a program to create sets and to apply the mathematical
operations defined in set theory. The following is a representative list of the operations
to be expected:
Union
Difference
Intersection
include an element in the set
exclude an element from the set
Check whether an element is in a set.

A set is an unordered collection of items. Every element is unique (no duplicates) and
must be immutable (which cannot be changed).However, the set itself is mutable. We
can add or remove items from it. The number of elements in a SET data type can vary,
but no nulls are allowed.

Set can have any number of items and they may be of different types (integer, float,
string etc.).

Assume we wish to create a Set. In PSEUDOCODE the type definition has this
structure.

TYPE <set-identifier> = SET OF <Basetype>

The variable defination of set includes the elements of the set.


DECLARE <identifier> (value1, value 2, value3, …):

A set of vowels can be declared as follows:

TYPE Sletter = SET OF CHAR


DECLARE vowel (‘a’ , ‘e’ , ‘i’ , ‘o’ , ‘u’) : Sletter

Or we can declare sets in Pseudocodes this way


Here is another example

TYPE Sizes = SET OF String


DECLARE SweaterSizes : (XXLarge, XLarge, Large, Medium, Small, XSmall)

DECLARE Title: SET OF (Mr, Mrs, Ms, Miss, Dr)

NOTE: Of the three programming languages, Pascal and Python support the set data type.

www.majidtahir.com Contact: +923004003666 Email: [email protected]


11
Computer Science 9618
(Paper 3 - Sec. 13) Data Representation
with Majid Tahir

The following Python code illustrates that the set data type has operators – union and
intersection- which can be used in two sets:

How to create a set in PYTHON?


A set is created by placing all the items (elements) inside curly braces { }, separated by
comma or by using the built-in function set().
It can have any number of items and they may be of different types (integer, float, tuple,
string etc.). But a set cannot have a mutable element, like list, set or dictionary, as its
element.

You can try creating SET and its operations online on below link:
https://www.programiz.com/python-programming/set#operations

Python Set Operations


Sets can be used to carry out mathematical set operations like union, intersection,
difference and symmetric difference. We can do this with operators or methods.

Let us consider the following two sets for the following operations.

1. >>> A = {1, 2, 3, 4, 5}
2. >>> B = {4, 5, 6, 7, 8}

www.majidtahir.com Contact: +923004003666 Email: [email protected]


12
Computer Science 9618
(Paper 3 - Sec. 13) Data Representation
with Majid Tahir

Union of A and B is a set of all elements from both sets.


Union is performed using | operator. Same can be accomplished using the
method union().

Set Intersection

Intersection of A and B is a set of elements that are common in both sets.


Intersection is performed using & operator. Same can be accomplished using the
method intersection().

www.majidtahir.com Contact: +923004003666 Email: [email protected]


13
Computer Science 9618
(Paper 3 - Sec. 13) Data Representation
with Majid Tahir

Objects and classes


In object-oriented programming, a program defines the classes to be used - they are all
user-defined data types. Then for each class the objects must be defined. Chapter 27
(Section 27.03) has a full discussion of this subject.

Why are user-defined data types necessary?


When object-oriented programming is not being used a programmer may choose not to
use any user-defined data types. However, for any reasonably large program it is likely
that their use will make a program more understandable and less error-prone. Once the
programmer has decided because of this advantage to use a data type that is not one
of the built-in types then user-definition is inevitable. The use of, for instance, an
integer variable is the same for any program. However, there cannot be a built-in
record type because each different problem will need an individual definition of a
record.

www.majidtahir.com Contact: +923004003666 Email: [email protected]


14
Computer Science 9618
(Paper 3 - Sec. 13) Data Representation
with Majid Tahir

Syllabus Content:
13.1 Data representation
13.2 File organisation and access
 file organisation: serial, sequential (using a key field) and random (using record key)
 file access: sequential access (serial & sequential files) – direct access (sequential &
random files)
 select an appropriate method of file organisation and file access for a given problem

(Sec 13.2)

File Organisation and Access:


Serial Files:
Serial file organisation is the simplest file organisation method. In serial files, records
are entered in the order of their creation. As such, the file is unordered, and is at best
in chronological order. Serial files are primarily used as transaction files in which the
transactions are recorded in the order that they occur.

Sequential Files:
The key difference between a sequential file and a serial file is that it is ordered in a
logical sequence based on a key field. This key is usually the primary key, though
secondary keys may be used as well. Sequential files are therefore files that are sorted
based on some key values.

Sequential files are primarily used in applications where there is a high file hit rate. Hit
rate is a measure of the proportion of the records that is accessed in a single run of the
application. Therefore, sequential files are ideal for master files and batch processing
applications such as payroll systems in which almost all records are processed in a
single run of the application.

Random Files:
In random file organisation, records are stored in random order within the file. Though
there is no sequencing to the placement of the records, there is however, a pre-defined
relationship between the key of the record and its location within the file. In other

www.majidtahir.com Contact: +923004003666 Email: [email protected]


15
Computer Science 9618
(Paper 3 - Sec. 13) Data Representation
with Majid Tahir

words, the value of the record key is mapped by an established function to the address
within the file where it resides. Therefore, any record within the file can be directly
accessed through the mapping function in roughly the same amount of time. The
location of the record within the file therefore is not a factor in the access time of the
record. As such, random files are also known in some literature as direct access files.

To create and maintain a random file, a mapping function must be established between
the record key and the address where the record is held. If M is the mapping function,
then

M(value of record key) => address of record

Hashing
There are various mapping techniques. Some involve using the key field to directly
map to the location with the file, while others refer to some lookup table for the
location. However, the more common method is to employ a hash function to derive
the address.

Hashing is the process of transforming the key value of a record to yield an address
location where the record is stored. In some literatures, it is also known as Key-to-
Address Transformation, Address-Calculation, Scatter Storage, or Randomization.

A hash function generates the record address by performing some simple operations on
the key or parts of the key. A good hashing function should be

quick to calculate

cover the complete range of the address space.

give an even distribution

not generate addresses that tend to cluster within a few locations, thus resulting
in frequent collisions.

www.majidtahir.com Contact: +923004003666 Email: [email protected]


16
Computer Science 9618
(Paper 3 - Sec. 13) Data Representation
with Majid Tahir

Refrences
 Book: AS and A-level Computer Science by
 http://www.bbc.co.uk/education/guides/zjfgjxs/revision/1
 https://www.tutorialspoint.com/vb.net/vb.net_constants.htm
 https://www.cs.drexel.edu/~introcs/F2K/lectures/5_Scientific/overflow.html
 https://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Data/underflow.html

www.majidtahir.com Contact: +923004003666 Email: [email protected]


17

You might also like