WDWWDWD

Embed Size (px)

Citation preview

  • 8/18/2019 WDWWDWD

    1/5

    Stella Connaughton10.5.15

    Tracing & Understanding Algorithms1. What does the following algorithm do?

    Divide an integer by 2.

    2. TRA!"# A$#%R!T!'

    n(m)*

    1. while x=/= 0 repeat the following 

    (num=1) (result=””)

    2. appendLeft num mod 2 to result 

     (num=6)(result=”0”)

    3. set num to num div 2

    (num=3) (result=”0”) 4. end while loop

    (num=3) (result=”0”)

     

    (loop #2) num=3

    1. while x=/= 0 repeat the following 

    (num=3)(result=””)

    2. appendLeft num mod 2 to result 

      (num=3)(result=”1”)3. set num to num div 2

     (num=1) (result=”1”)

     4. end while loop

    (num=1) (result=”1”)

    (loop # 3) num=1

    1. while x=/= 0 repeat the following 

    (num=1)(result=””)2. appendLeft num mod 2 to result 

    (num=1) (result=”1”)

    3. set num to num div 2

    (num=0) (result=”1”)

     4. end while loop

  • 8/18/2019 WDWWDWD

    2/5

    Stella Connaughton10.5.15

    (num=0, so no more loops)(result=”1”)

    Num=13

    1. while x=/= 0 repeat the following 

    (num=13) (result=””)

    2. appendLeft num mod 2 to result 

    (num=13) (result=”1”)

    3. set num to num div 2

    (num=6) (result=”1”)

     4. end while loop

    (num=6) (result=”1”)

    (loop 2) num=6

    1. while x=/= 0 repeat the following 

    (num=6) (result=””)

    2. appendLeft num mod 2 to result 

    (num=6) (result=”0”)

    3. set num to num div 2

     (num=3) (result=”0”)

     4. end while loop

    (num=3) (result=”0”)

      (loop 3) num=3

    1. while x=/= 0 repeat the following 

      (num=3) (result=””)

    2. appendLeft num mod 2 to result 

    (num=3) (result=”1”)

    3. set num to num div 2

    (num=1) (result=”1”)

     4. end while loop(num=1) (result=”1”)

      (loop 4) num=1

    1. while x=/= 0 repeat the following 

    (num=1) (result=””)

    2. appendLeft num mod 2 to result 

  • 8/18/2019 WDWWDWD

    3/5

    Stella Connaughton10.5.15

    (num=1) (result=”1”)

    3. set num to num div 2

    (num=0) (result=”1”)

     4. end while loop

    (num=0, so no more loops) (result=”1”)

    Num=163

    1. while x=/= 0 repeat the following 

    (num=163) (result=””)

    2. appendLeft num mod 2 to result 

    (num=163) (result=”1”)

    3. set num to num div 2

    (num=!1) (result=”1”)

     4. end while loop

    (num=!1) (result=”1”)

    (loop 2) num=!1

    1. while x=/= 0 repeat the following 

    (num=!1) (result=””)

    2. appendLeft num mod 2 to result 

    (num=!1) (result=”1”)

    3. set num to num div 2

    (num=40) (result=”1”)

     4. end while loop

    (num=40) (result=”1”)

    (loop 3) num=40

    1. while x=/= 0 repeat the following 

    (num=40) (result=””)

    2. appendLeft num mod 2 to result 

    (num=40) (result=”0”)3. set num to num div 2

    (num=20) (result=”0”)

     4. end while loop

    (num=20) (result=”0”)

    (loop 4) num=20

  • 8/18/2019 WDWWDWD

    4/5

    Stella Connaughton10.5.15

    1. while x=/= 0 repeat the following 

    (num=20) (result=””)

    2. appendLeft num mod 2 to result 

    (num=20) (result=”0”)

    3. set num to num div 2

    (num=10) (result=”0”)

     4. end while loop

    (num=10) (result=”0”)

    (loop ") num=10

    1. while x=/= 0 repeat the following 

    (num=10) (result=””)

    2. appendLeft num mod 2 to result 

    (num=10) (result=”0”)

    3. set num to num div 2

    (num=") (result=”0”)

     4. end while loop

    (num=") (result=”0”)

    (loop 6) num="

    1. while x=/= 0 repeat the following 

    (num=") (result=””)

    2. appendLeft num mod 2 to result 

    (num=") (result=”1”)

    3. set num to num div 2

    (num=2) (result=”1”)

     4. end while loop

    (num=2) (result=”1”)

    (loop #) num=2

    1. while x=/= 0repeat the following 

    (num=2) (result=””)

    2. appendLeft num mod 2 to result 

    (num=2) (result=”0”)

    3. set num to num div 2

    (num=1) (result=”0”)

  • 8/18/2019 WDWWDWD

    5/5

    Stella Connaughton10.5.15

     4. end while loop

    (num=1) (result=”0”)

    (loop !) num=1

    1. while x=/= 0 repeat the following 

    (num=1) (result=””)

    2. appendLeft num mod 2 to result 

    (num=1) (result=”1”)

    3. set num to num div 2

    (num=0) (result=”1”)

     4. end while loop

    (num=0, so no more loops) (result=”1”)