IPT - A Virtual Approach IPT A Virtual Approach by Peter Whitehouse
Quick Links:
 
 
Information and Intelligent Systems Social and Ethical Implications Human Computer Interaction Software and Systems Engineering eXercise Files Course Outline and Assessment A-Z of Geeky Acronyms Terrace Work Program 2004 Sillybus FAQ = Frequently Asked Questions Help
 
 
Algorithms and Programming eXercises #14

Compound Data Structures
The SET - Solutions

The following represent strategies/algorithms and NOT actual coded solutions - it is thought there is definite advantage here for students to actually wrestle with the actual code to get a working solution. There may be MANY different ways to encode these solutions - get creative and try to be efficient

1

  1. Procedure PrintSet(theSet:byteset);
    var loop : byte;
    begin
    ...for loop := 1 to 255 do
    ......if loop in theSet
    .........then write(loop,', ')
    end; {PrintSet}

  2. Procedure AddElement(var theSet:byteset; element : byte);
    begin
    ...theset := theset+ [element]
    end; {AddElement}

  3. Function Cardinality(theset:byteset):byte;
    var counter, loop : byte;
    begin
    ...counter := 0;
    ...for loop := 0 to 255 do
    ......if loop in theset
    .........then inc(counter);
    ...Cardinality := counter;
    end; {Cardinality}

  4. Procedure RemoveElement(var theSet:byteset; element : byte);
    begin
    ...theset := theset- [element]
    end; {AddElement}

  5. Procedure CreateRandomSet (var theset:byteset; num : byte);
    var thing, counter : byte;
    begin
    ...randomize;
    ...counter := 0;
    ...repeat
    ......thing := random(256);
    ......if not(thing in theset)
    .........then
    ............begin
    ...............theset := theset + [thing];
    ...............inc(counter)
    ............end
    ...until counter = num
    end; {dreate random set}

2. This program requires a simple set structure used over aand over using a loop. Each game, you clear the set, randomly insert a number of numbers into it (see 1(e) above) and then output the set before clearing it and starting again

3

  1. EnglishDays, MathematicsDays, ComputerDays, BiologyDays: Daysets

  2. EnglishDays := [mon, tue, thu]; and so on

  3. write(mon in EnglishDays)
    write((wed in BiologyDays) and (thu in BiologyDays))

wonko@wonko.info
©Copyright t 1992..2017+. Edition 25.150117
wonkosite
Creative Commons License
This work is licensed under a
Creative Commons Attribution-NonCommercial-ShareAlike 2.1 Australia License
.