SlideShare una empresa de Scribd logo
1 de 8
Descargar para leer sin conexión
UNIVERSITY OF CAMBRIDGE INTERNATIONAL EXAMINATIONS
                            General Certificate of Education
                     Advanced Subsidiary Level and Advanced Level

         COMPUTING
         Paper 2: Practical Tasks

                                                                                  May/June 2005




  READ THESE INSTRUCTIONS FIRST

  Write your Centre number, candidate number and name on all the work you hand in.
  Write in dark blue or black pen on both sides of the paper.
  Do not use staples, paper clips, highlighters, glue or correction fluid.

  Answer all questions.
  The number of marks is given in brackets [ ] at the end of each question or part question.




                        This document consists of 6 printed pages and 2 blank pages.
IB05 06_9691_02/FP
 UCLES 2005                                                                                   [Turn over




                                www.xtremepapers.net
2

                                         Answer all questions

Task 1 [22 marks]

This is a design and implementation task

At a university a lecturer may teach many modules and a module may be taught by many lecturers.

Lecturers have an office and a telephone number. Several lecturers, who may have to share a
telephone, may use an office. An office is identified by a 5-character code consisting of two
uppercase letters followed by three digits such as AB123. The telephone number consists of four
digits such as 0362. The lecturer’s name is the only personal data to be stored.

Modules have a module code consisting of two letters and four digits such as IT1002. Each module
has a title such as Information Technology.


    (a) Design a database, consisting of three tables, to store the data. You should include
        evidence showing the attributes of the tables together with their data types and any validation
        rules you have used. Screen dumps are acceptable for this purpose.                         [11]

Create sufficient data to complete the rest of this task. Provide copies of your completed tables.
Screen dumps are acceptable for this purpose.


    (b) (i) Create a form that will allow the user to add a lecturer to the appropriate table.

        (ii) Create a form that will allow the user to add a module to the appropriate table.

        (iii) Create a form that will allow a user to link a lecturer to a module. The form should allow
              the user to choose a lecturer from a list and to choose a module from a list.           [6]


    (c) Create a query that, when run, requests a user to select a lecturer and then lists all the
        modules taught by that lecturer. Include evidence that your query works correctly.      [2]


    (d) Create a report that lists the lecturers for each module. The report should group the
        information on module code and have appropriate headings. Include evidence that your
        report is correct.                                                                 [3]




© UCLES 2005                                  9691/02/M/J/05



                               www.xtremepapers.net
3

Task 2 [18 marks]

This is a white box test task. No implementation is required.

Read the following algorithm for a procedure, called Validate, in which each step has been numbered.

Validate(aString)
1 Length = Len(aString)
2     If Length = 0 Then
3        Output "Empty string is not allowed"
4     Else
5        OK = TRUE
6        DP = FALSE
7        Count = 1
8        Ch = 1st character of aString
9        IF Ch < "0" OR Ch > "9" THEN
10          OK = FALSE
11       ELSE
12          WHILE Count < Length AND OK DO
13             Count = Count + 1
14             Ch = next character in aString
15             IF Ch = "." THEN
16                IF DP THEN
17                   OK = FALSE
18                ELSE
19                   DP = TRUE
20                ENDIF
21             ELSE
22                IF Ch < "0" OR Ch > "9" THEN
23                   OK = FALSE
24                ENDIF
25             ENDIF
26          ENDWHILE
27       ENDIF
28       IF OK THEN
29          Output "Valid string"
30       ELSE
31          Output "Invalid string"
32       ENDIF
33    ENDIF
34 END PROCEDURE Validate

The function Len(aString) returns the number of characters in aString. For example, if aString =
"Computer", Len(aString) = 8.




© UCLES 2005                                9691/02/M/J/05                               [Turn over


                             www.xtremepapers.net
4

When the procedure is called with

    Validate("58")

the lines

    1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 21, 22, 24, 25, 26,12, 26, 27,
    28, 29, 30, 32, 33, 34

are executed and the output is

    Valid string.

The example test above can be described as shown in Table 2.1.

              Path                                                  Test Data    Expected Output

              1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 21, 22,
                                                                       58          Valid string.
              24, 25, 26,12, 26, 27, 28, 29, 30, 32, 33, 34

                                                    Table 2.1


Using a table similar to Table 2.1, write down the lines that are executed and the output when the
procedure is called with

            (i) Validate(".376");                                                                  [4]

        (ii) Validate("4.9");                                                                      [7]

        (iii) Validate("6.2.7").                                                                   [7]




© UCLES 2005                                       9691/02/M/J/05



                                    www.xtremepapers.net
5

Task 3 [20 marks]

This is a design and implementation task

You are to design and create a very simple binary calculator using a high-level language of your
choice. A binary calculator can only use the digits 0 and 1. This calculator will allow the user to enter
two unsigned binary numbers and will then allow the user to add, subtract, multiply or divide these
numbers. In the case of division, the result should be truncated to a whole number. This is
equivalent to integer division. The result is to be displayed in binary.

To do this you are advised to follow these steps.

    (a) Design an interface that will allow the user to input two unsigned binary numbers and will
        display them in two boxes. The user should then be able to choose addition, subtraction,
        multiplication or division. There should be a box to show the result of the calculation. The
        user should also be able to clear all the boxes. (No processing is required at this stage.) [4]

    (b) Create a function, called BinaryToDecimal, that will accept a binary number as a parameter
        and will return its decimal equivalent. For example,

                        BinaryToDecimal(101101) will return the decimal value 45.

         You may use the following algorithm to do this.

               Input the binary number as a string
               Total = 0
               For each binary digit in the string, starting on the left,
                     Total = Total * 2 + value of digit
               Return Total

         You should clearly annotate your code and use meaningful names for variables and other
         objects such as buttons and text boxes (if you use them). You should include a copy of your
         code as evidence.                                                                        [4]


    (c) Create a function, called DecimalToBinary, that will accept a decimal number as a parameter
        and will return its binary equivalent. For example,

                         DecimalToBinary (47) will return the binary value 101111.

         You may use the following algorithm to do this.

               Input the decimal number called Number
               Binary = ""                'Empty string
               Repeat
                     Remainder = remainder after Number is divided by 2
                     Number = Whole part of Number divided by 2
                     Binary = String value of Remainder & Binary
               Until Number = 0

         & means concatenation. For example

                                            "1010" & "1" = "10101"

         You should clearly annotate your code and use meaningful names for variables and other
         objects such as buttons. You should include a copy of your code as evidence.        [4]


© UCLES 2005                                      9691/02/M/J/05                             [Turn over


                                 www.xtremepapers.net
6

    (d) Create code for each of the operations of addition, subtraction, multiplication and division.
        You are advised to change the binary numbers input by the user to decimal, do the operation
        and then convert the result back to binary before displaying it. You should include a copy of
        your code as evidence.                                                                    [3]

    (e) Create a set of test data that shows that the operations of addition, subtraction, multiplication
        and division work and provide evidence that you have used this data. Screen dumps are
        acceptable but must show the data entered and the result of the operation.                     [5]




© UCLES 2005                                  9691/02/M/J/05



                               www.xtremepapers.net
7

      BLANK PAGE




       9691/02/M/J/05



www.xtremepapers.net
8

                                                                   BLANK PAGE




Every reasonable effort has been made to trace all copyright holders. The publishers would be pleased to hear from anyone whose rights we have unwittingly
infringed.

University of Cambridge International Examinations is part of the University of Cambridge Local Examinations Syndicate (UCLES), which is itself a department
of the University of Cambridge.

                                                                      9691/02/M/J/05



                                              www.xtremepapers.net

Más contenido relacionado

La actualidad más candente

La actualidad más candente (19)

Bis 311 final examination answers
Bis 311 final examination answersBis 311 final examination answers
Bis 311 final examination answers
 
CIS 115 Education Counseling--cis115.com
CIS 115 Education Counseling--cis115.comCIS 115 Education Counseling--cis115.com
CIS 115 Education Counseling--cis115.com
 
Object oriented programming
Object oriented programmingObject oriented programming
Object oriented programming
 
Python Programming
Python Programming Python Programming
Python Programming
 
Informatics Practices (new) solution CBSE 2021, Compartment, improvement ex...
Informatics Practices (new) solution CBSE  2021, Compartment,  improvement ex...Informatics Practices (new) solution CBSE  2021, Compartment,  improvement ex...
Informatics Practices (new) solution CBSE 2021, Compartment, improvement ex...
 
CBSE Sample Paper IP
CBSE Sample Paper IPCBSE Sample Paper IP
CBSE Sample Paper IP
 
Primitives
PrimitivesPrimitives
Primitives
 
Sample Question Paper IP Class xii
Sample Question Paper IP Class xii Sample Question Paper IP Class xii
Sample Question Paper IP Class xii
 
Question Paper Code 065 informatic Practice New CBSE - 2021
Question Paper Code 065 informatic Practice New CBSE - 2021 Question Paper Code 065 informatic Practice New CBSE - 2021
Question Paper Code 065 informatic Practice New CBSE - 2021
 
11th information practices paper CBSE INDIA 2012 2013
11th information practices paper CBSE INDIA 2012 201311th information practices paper CBSE INDIA 2012 2013
11th information practices paper CBSE INDIA 2012 2013
 
VISUAL BASIC 6 - CONTROLS AND DECLARATIONS
VISUAL BASIC 6 - CONTROLS AND DECLARATIONSVISUAL BASIC 6 - CONTROLS AND DECLARATIONS
VISUAL BASIC 6 - CONTROLS AND DECLARATIONS
 
CIS 115 Inspiring Innovation/tutorialrank.com
 CIS 115 Inspiring Innovation/tutorialrank.com CIS 115 Inspiring Innovation/tutorialrank.com
CIS 115 Inspiring Innovation/tutorialrank.com
 
Input output
Input outputInput output
Input output
 
Lesson plan on data representation
Lesson plan on data representationLesson plan on data representation
Lesson plan on data representation
 
INTRODUCTION TO MATLAB session with notes
  INTRODUCTION TO MATLAB   session with  notes  INTRODUCTION TO MATLAB   session with  notes
INTRODUCTION TO MATLAB session with notes
 
Qno 3 (a)
Qno 3 (a)Qno 3 (a)
Qno 3 (a)
 
Qno 2 (c)
Qno 2 (c)Qno 2 (c)
Qno 2 (c)
 
Proyecto parcial ii_grupo2.docx
Proyecto parcial ii_grupo2.docxProyecto parcial ii_grupo2.docx
Proyecto parcial ii_grupo2.docx
 
Midterm sols
Midterm solsMidterm sols
Midterm sols
 

Similar a June 05 P2

Mid term sem 2 1415 sol
Mid term sem 2 1415 solMid term sem 2 1415 sol
Mid term sem 2 1415 sol
IIUM
 
Monte Carlo Simulation for project estimates v1.0
Monte Carlo Simulation for project estimates v1.0Monte Carlo Simulation for project estimates v1.0
Monte Carlo Simulation for project estimates v1.0
PMILebanonChapter
 
Name _______________________________ Class time __________.docx
Name _______________________________    Class time __________.docxName _______________________________    Class time __________.docx
Name _______________________________ Class time __________.docx
rosemarybdodson23141
 
#include iostream#includectimeusing namespace std;void.docx
#include iostream#includectimeusing namespace std;void.docx#include iostream#includectimeusing namespace std;void.docx
#include iostream#includectimeusing namespace std;void.docx
mayank272369
 

Similar a June 05 P2 (20)

Mid term sem 2 1415 sol
Mid term sem 2 1415 solMid term sem 2 1415 sol
Mid term sem 2 1415 sol
 
Monte Carlo Simulation for project estimates v1.0
Monte Carlo Simulation for project estimates v1.0Monte Carlo Simulation for project estimates v1.0
Monte Carlo Simulation for project estimates v1.0
 
Computing Paper 2 Practical Tests may june 2004 general certificate of educat...
Computing Paper 2 Practical Tests may june 2004 general certificate of educat...Computing Paper 2 Practical Tests may june 2004 general certificate of educat...
Computing Paper 2 Practical Tests may june 2004 general certificate of educat...
 
M150 A Fall2010 T01
M150 A Fall2010 T01M150 A Fall2010 T01
M150 A Fall2010 T01
 
90 Informatics Practices.pdf
90 Informatics Practices.pdf90 Informatics Practices.pdf
90 Informatics Practices.pdf
 
Name _______________________________ Class time __________.docx
Name _______________________________    Class time __________.docxName _______________________________    Class time __________.docx
Name _______________________________ Class time __________.docx
 
Nov 02 P2
Nov 02 P2Nov 02 P2
Nov 02 P2
 
Cmis 102 Enthusiastic Study / snaptutorial.com
Cmis 102 Enthusiastic Study / snaptutorial.comCmis 102 Enthusiastic Study / snaptutorial.com
Cmis 102 Enthusiastic Study / snaptutorial.com
 
Cmis 102 Success Begins / snaptutorial.com
Cmis 102 Success Begins / snaptutorial.comCmis 102 Success Begins / snaptutorial.com
Cmis 102 Success Begins / snaptutorial.com
 
Cmis 102 Effective Communication / snaptutorial.com
Cmis 102  Effective Communication / snaptutorial.comCmis 102  Effective Communication / snaptutorial.com
Cmis 102 Effective Communication / snaptutorial.com
 
C++
C++C++
C++
 
#include iostream#includectimeusing namespace std;void.docx
#include iostream#includectimeusing namespace std;void.docx#include iostream#includectimeusing namespace std;void.docx
#include iostream#includectimeusing namespace std;void.docx
 
Mmt 001
Mmt 001Mmt 001
Mmt 001
 
Portfolio2
Portfolio2Portfolio2
Portfolio2
 
Chapter1.pptx
Chapter1.pptxChapter1.pptx
Chapter1.pptx
 
Md university cmis 102 week 4 hands on lab new
Md university cmis 102 week 4 hands on lab newMd university cmis 102 week 4 hands on lab new
Md university cmis 102 week 4 hands on lab new
 
Md university cmis 102 week 4 hands on lab new
Md university cmis 102 week 4 hands on lab newMd university cmis 102 week 4 hands on lab new
Md university cmis 102 week 4 hands on lab new
 
Ch3
Ch3Ch3
Ch3
 
Computing 9691 Test Paper Paper 3 for May / June 2007 Cambridge
Computing 9691 Test Paper Paper 3 for May / June 2007 CambridgeComputing 9691 Test Paper Paper 3 for May / June 2007 Cambridge
Computing 9691 Test Paper Paper 3 for May / June 2007 Cambridge
 
Computing 9195 Zimbabwe Zimsec syllabus Cambridge Computers may June 2007 pap...
Computing 9195 Zimbabwe Zimsec syllabus Cambridge Computers may June 2007 pap...Computing 9195 Zimbabwe Zimsec syllabus Cambridge Computers may June 2007 pap...
Computing 9195 Zimbabwe Zimsec syllabus Cambridge Computers may June 2007 pap...
 

Más de Samimvez (20)

Sql installation tutorial
Sql installation tutorialSql installation tutorial
Sql installation tutorial
 
Example3
Example3Example3
Example3
 
Coms1010 exam paper - nov10
Coms1010   exam paper - nov10Coms1010   exam paper - nov10
Coms1010 exam paper - nov10
 
Coms1010 exam paper - may 08
Coms1010   exam paper - may 08Coms1010   exam paper - may 08
Coms1010 exam paper - may 08
 
Example2
Example2Example2
Example2
 
Labsheet 3
Labsheet 3Labsheet 3
Labsheet 3
 
Labsheet 3,5
Labsheet 3,5Labsheet 3,5
Labsheet 3,5
 
EQ V3x
EQ V3xEQ V3x
EQ V3x
 
Eq v2
Eq v2Eq v2
Eq v2
 
3.6
3.63.6
3.6
 
3.2
3.23.2
3.2
 
3.10
3.103.10
3.10
 
3.1
3.13.1
3.1
 
3.3
3.33.3
3.3
 
3.8
3.83.8
3.8
 
3.4
3.43.4
3.4
 
3.7
3.73.7
3.7
 
3.5
3.53.5
3.5
 
3.9
3.93.9
3.9
 
Nov 05 P3
Nov 05 P3Nov 05 P3
Nov 05 P3
 

Último

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 

June 05 P2

  • 1. UNIVERSITY OF CAMBRIDGE INTERNATIONAL EXAMINATIONS General Certificate of Education Advanced Subsidiary Level and Advanced Level COMPUTING Paper 2: Practical Tasks May/June 2005 READ THESE INSTRUCTIONS FIRST Write your Centre number, candidate number and name on all the work you hand in. Write in dark blue or black pen on both sides of the paper. Do not use staples, paper clips, highlighters, glue or correction fluid. Answer all questions. The number of marks is given in brackets [ ] at the end of each question or part question. This document consists of 6 printed pages and 2 blank pages. IB05 06_9691_02/FP  UCLES 2005 [Turn over www.xtremepapers.net
  • 2. 2 Answer all questions Task 1 [22 marks] This is a design and implementation task At a university a lecturer may teach many modules and a module may be taught by many lecturers. Lecturers have an office and a telephone number. Several lecturers, who may have to share a telephone, may use an office. An office is identified by a 5-character code consisting of two uppercase letters followed by three digits such as AB123. The telephone number consists of four digits such as 0362. The lecturer’s name is the only personal data to be stored. Modules have a module code consisting of two letters and four digits such as IT1002. Each module has a title such as Information Technology. (a) Design a database, consisting of three tables, to store the data. You should include evidence showing the attributes of the tables together with their data types and any validation rules you have used. Screen dumps are acceptable for this purpose. [11] Create sufficient data to complete the rest of this task. Provide copies of your completed tables. Screen dumps are acceptable for this purpose. (b) (i) Create a form that will allow the user to add a lecturer to the appropriate table. (ii) Create a form that will allow the user to add a module to the appropriate table. (iii) Create a form that will allow a user to link a lecturer to a module. The form should allow the user to choose a lecturer from a list and to choose a module from a list. [6] (c) Create a query that, when run, requests a user to select a lecturer and then lists all the modules taught by that lecturer. Include evidence that your query works correctly. [2] (d) Create a report that lists the lecturers for each module. The report should group the information on module code and have appropriate headings. Include evidence that your report is correct. [3] © UCLES 2005 9691/02/M/J/05 www.xtremepapers.net
  • 3. 3 Task 2 [18 marks] This is a white box test task. No implementation is required. Read the following algorithm for a procedure, called Validate, in which each step has been numbered. Validate(aString) 1 Length = Len(aString) 2 If Length = 0 Then 3 Output "Empty string is not allowed" 4 Else 5 OK = TRUE 6 DP = FALSE 7 Count = 1 8 Ch = 1st character of aString 9 IF Ch < "0" OR Ch > "9" THEN 10 OK = FALSE 11 ELSE 12 WHILE Count < Length AND OK DO 13 Count = Count + 1 14 Ch = next character in aString 15 IF Ch = "." THEN 16 IF DP THEN 17 OK = FALSE 18 ELSE 19 DP = TRUE 20 ENDIF 21 ELSE 22 IF Ch < "0" OR Ch > "9" THEN 23 OK = FALSE 24 ENDIF 25 ENDIF 26 ENDWHILE 27 ENDIF 28 IF OK THEN 29 Output "Valid string" 30 ELSE 31 Output "Invalid string" 32 ENDIF 33 ENDIF 34 END PROCEDURE Validate The function Len(aString) returns the number of characters in aString. For example, if aString = "Computer", Len(aString) = 8. © UCLES 2005 9691/02/M/J/05 [Turn over www.xtremepapers.net
  • 4. 4 When the procedure is called with Validate("58") the lines 1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 21, 22, 24, 25, 26,12, 26, 27, 28, 29, 30, 32, 33, 34 are executed and the output is Valid string. The example test above can be described as shown in Table 2.1. Path Test Data Expected Output 1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 21, 22, 58 Valid string. 24, 25, 26,12, 26, 27, 28, 29, 30, 32, 33, 34 Table 2.1 Using a table similar to Table 2.1, write down the lines that are executed and the output when the procedure is called with (i) Validate(".376"); [4] (ii) Validate("4.9"); [7] (iii) Validate("6.2.7"). [7] © UCLES 2005 9691/02/M/J/05 www.xtremepapers.net
  • 5. 5 Task 3 [20 marks] This is a design and implementation task You are to design and create a very simple binary calculator using a high-level language of your choice. A binary calculator can only use the digits 0 and 1. This calculator will allow the user to enter two unsigned binary numbers and will then allow the user to add, subtract, multiply or divide these numbers. In the case of division, the result should be truncated to a whole number. This is equivalent to integer division. The result is to be displayed in binary. To do this you are advised to follow these steps. (a) Design an interface that will allow the user to input two unsigned binary numbers and will display them in two boxes. The user should then be able to choose addition, subtraction, multiplication or division. There should be a box to show the result of the calculation. The user should also be able to clear all the boxes. (No processing is required at this stage.) [4] (b) Create a function, called BinaryToDecimal, that will accept a binary number as a parameter and will return its decimal equivalent. For example, BinaryToDecimal(101101) will return the decimal value 45. You may use the following algorithm to do this. Input the binary number as a string Total = 0 For each binary digit in the string, starting on the left, Total = Total * 2 + value of digit Return Total You should clearly annotate your code and use meaningful names for variables and other objects such as buttons and text boxes (if you use them). You should include a copy of your code as evidence. [4] (c) Create a function, called DecimalToBinary, that will accept a decimal number as a parameter and will return its binary equivalent. For example, DecimalToBinary (47) will return the binary value 101111. You may use the following algorithm to do this. Input the decimal number called Number Binary = "" 'Empty string Repeat Remainder = remainder after Number is divided by 2 Number = Whole part of Number divided by 2 Binary = String value of Remainder & Binary Until Number = 0 & means concatenation. For example "1010" & "1" = "10101" You should clearly annotate your code and use meaningful names for variables and other objects such as buttons. You should include a copy of your code as evidence. [4] © UCLES 2005 9691/02/M/J/05 [Turn over www.xtremepapers.net
  • 6. 6 (d) Create code for each of the operations of addition, subtraction, multiplication and division. You are advised to change the binary numbers input by the user to decimal, do the operation and then convert the result back to binary before displaying it. You should include a copy of your code as evidence. [3] (e) Create a set of test data that shows that the operations of addition, subtraction, multiplication and division work and provide evidence that you have used this data. Screen dumps are acceptable but must show the data entered and the result of the operation. [5] © UCLES 2005 9691/02/M/J/05 www.xtremepapers.net
  • 7. 7 BLANK PAGE 9691/02/M/J/05 www.xtremepapers.net
  • 8. 8 BLANK PAGE Every reasonable effort has been made to trace all copyright holders. The publishers would be pleased to hear from anyone whose rights we have unwittingly infringed. University of Cambridge International Examinations is part of the University of Cambridge Local Examinations Syndicate (UCLES), which is itself a department of the University of Cambridge. 9691/02/M/J/05 www.xtremepapers.net