# COMP-200: Intro to Computer Systems ## Assignment 1 ### mo khan - 3431709 Choose ONE exercise each from Chapters 2 and 3 Chapter 2: 4. 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 ```plaintext 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 ```ruby def calculate_total(price, quantity, tax = 0.06) (price * quantity) * (1.0 + tax) end ``` Chapter 3: 21. 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 ```plaintext 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 ```ruby 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 | 2. 22 | 00 | 01 | 02 | 03 | 04 | | -- | -- | -- | -- | -- | | 18 | 21 | 22 | 31 | 43 | 3. 31 | 00 | 01 | | -- | -- | | 31 | 43 | 4. 43 | 00 | | -- | | 43 |