Pascal Programming Records, Stacks & Queues Pascal Programming Record data types—a complex type that combines different data types into a single record. Sometimes called set types. The individual elements of a record are called fields or components or component fields. Pascal Programming Each field has a name . . .the field identifier. The field identifiers provide a means of accessing each field in the record, similar to an array index. Each field has a type, which is established when the record is declared. The value of a record is a collection of values. There is a value in each field. Pascal Programming The component of a record variable is a component variable. . field identifier . . .specifies a component variable. – e g: Business1.PresidentsLastName Though a record is a collection of values, it can sometimes be treated as a single value. Pascal Programming So . . . – The record variable describes the raw record. – Record value indicates all the values in the record. – Component values indicate the field values. – Field identifiers name the fields in record. Pascal Programming Syntax . . . type – Business = • record – – – – – BusinessName: string; StreetAddress: string City: string; State: string; zip: integer; • end; Pascal Programming A programmer may want to structure data with a hierarchy of records. e g: – student identification – birth date and age – core courses . . .etc . . . Pascal Programming Records for a group may be read into an array. Thus, we see that . . . – data structures are a means of organizing, storing and manipulating data. How do we chose which structure to use? – Everything being equal, chose the one that can be understood and worked with most easily. Pascal Programming If all items are of the same type . . .a single array of that type works best. If items differ in type, use an array of records. Or, use parallel arrays. Pascal Programming with statements . . . With provides instruction(s) to carry out an operation. Syntax – with record_variable_list do • statement (usually compound) The records_variable_list is separated by commas. Pascal Programming Stacks and Queues The stack, a specialized data structure, compares to a stack of shoe boxes. New data goes into a box on the top of the stack. To read from the stack, access the first box, discard it, read the second box, discard it etc . . .. Pascal Programming Stacks serves the purpose of reversing the order of data -- first in, last out. e g: stacktop = (TopValue) -1 . . . This creates a decrementation of the stack. The text illustrated using the stack to match parenthesis. Find and save a left parenthesis then look for the right one, eliminate all characters in between. Cry fowl when a left parenthesis occurs again without a right one. Pascal Programming Queue . . . A data structure for first in/first out data handling. The opposite of the stack. Like a waiting line . . .first come . . .first served. A queue can be implemented so that as the array empties and reaches the end the beginning fills again. It becomes circular. Pascal Programming Pascal Sets Sets contain data like a list but that data is unordered. To use sets in a variable, we use set types The ordinals in the sets are its elements. These are the Base_type of the set. Pascal Programming Example type – Grade = set of 0 .. 100; constant – superior: grade = [94 .. 100] The first illustrates the declaration of a set and the second the appending of a typed constant.