Read sections 6.1-6.6 in chapter 6 of the textbook Explorations in Computing.
def print_sum(matrix) sum = 0 for row in 0..matrix.length-1 do for col in 0..matrix[row].length-1 do sum = sum + matrix[row][col] end end print sum, "\n" end
Show how to modify this function so that it prints the sum of each row of the two-dimensional array. (HINT: Two of the statements will have to move to different places in the function.)
Algorithm 1: Songs are stored in the computer's memory in arbitrary order. Each song has a code that indicates the location in memory of the song that plays next. The player keeps track of the location of the first song in the playback sequence only.Algorithm 2: Songs are stored in the computer's memory in the order of playback starting at a specific fixed location in computer memory which cannot be changed.
rpn = [23, 3, "-", 4, 6, "+", "/"]
Recall the algorithm to compute the value of a RPN expression using a stack:
1. Set i equal to 0. 2. Set x equal to rpn[i]. 3. Set s equal to an empty stack. 4. While i is not equal to the length of the rpn array, do the following: a. If x is a number, then push x on stack s. b. If x is a string (i.e. operator), then do the following: i. Pop stack s and store number in b. ii. Pop stack s and store number in a. iii. If operator is "+", push a+b on stack s. iv. If operator is "-", push a-b on stack s. v. If operator is "*", push a*b on stack s. vi. If operator is "/", push a/b on stack s. c. Add 1 to i. 5. Pop stack s and return this number.
Trace how this algorithm computes the value of the following RPN expression stored as an array:
rpn = [7, 3, "+", 4, 2, "-", "*", 8, 2, "/", 1, "+", "/"]
(Draw a new stack whenever a number is pushed or popped to show how the stack progresses throughout the computation.)
Suppose we represent a queue using an array named q such that the first element in the array (at index 0) is the front of the queue and the last element in the array (at index q.length-1) is the rear of the queue.
def h(string, table_size) k = 0 for i in 0..string.length-1 do k = string[i] + k * 256 end return k % table_size end
In the function above, string[i] returns the ASCII code of the ith character of string. Here are the ASCII codes for the lowercase letters:
a b c d e f g h i j k l m 97 98 99 100 101 102 103 104 105 106 107 108 109 n o p q r s t u v w x y z 110 111 112 113 114 115 116 117 118 119 120 121 122
59 24 35 78 61 42 90 88 15 57
66 22 81 23 50 73 39 33 42
NOTE: For this problem, you should show the max-heap after each individual element is inserted so you don't get lost.
inf = 1.0/0.0 vertices = ["New York", "Pittsburgh", "Los Angeles", "Dallas", "Atlanta"] edges = [ [inf, 5, 2, 6, 1], [5, inf, 8, inf, 3], [2, 8, inf, 7, 4], [6, inf, 7, inf, 9], [1, 3, 4, 9, inf] ]