main

COMP-200: Intro to Computer Systems

Assignment 1

mo khan - 3431709

Choose ONE exercise each from Chapters 2 and 3

Chapter 2:

  1. Write an algorithm that gets the price for item A plus the quantity purchased. The algorithm prints the total cost, including 6% sales tax.

    Pseudocode

    Get values for `price` and `quantity`
    Set the value of `tax` to 1.06
    Set the value of `total` to `price` multiplied by `quantity` multiplied by `tax`
    Print the value of `total`
    

    Ruby code

    def calculate_total(price, quantity, tax = 0.06)
      (price * quantity) * (1.0 + tax)
    end
    

Chapter 3:

  1. Use the binary search algorithm to decide whether 35 is in the following list: 3, 6, 7, 9, 12, 14, 18, 21, 22, 31, 43

    Pseudocode

    Get the list of numbers and assign to variable `items`
    Get the target number and assign to variable `target`
    Set variable `min` to 0
    Set variable `max` to total # of `items`
    Set variable `mid` to `max - min / 2`
    Set variable `found` to No
    while (mid > min && mid < max)
      Set the variable `current` to `items` at index `mid`
      if current = target
        Set variable `found` to Yes
        Set variable `mid` to `min - 1`
      else if target > current
        Set variable `min` to the value of `mid`
        Set the variable `mid` to `((max-min) / 2) + min`
      else
        Set variable `max` to the value of `mid`
        Set the variable `mid` to `((max-min) / 2) + min`
      end
    end of loop
    If Found = Yes
      print Found
    else
      print Not Found
    stop
    

    Ruby code

    def bsearch(target, items)
      min = 0
      max = items.size
      mid = (max - min) / 2
    
      while (mid > min && mid < max) do
        current = items[mid]
    
        if target == current
          return true
        elsif target > current
          min = mid
        else
          max = mid
        end
    
        mid = ((max - min) / 2) + min
      end
    
      return false
    end
    

    What numbers will be compared with 35?

    1. 14
    00 01 02 03 04 05 06 07 08 09 10
    03 06 07 09 12 14 18 21 22 31 43
    1. 22
    00 01 02 03 04
    18 21 22 31 43
    1. 31
    00 01
    31 43
    1. 43
    00
    43