sample'final$examination$ semester$1,$2016$ semester 1, …en1811/samples/17s2/final... ·...
TRANSCRIPT
The$University$of$New$South$Wales$
SAMPLE'Final$Examination$
Semester$1,$2016$
''
ENGG1811'Computing'for'Engineers'$$
Time$allowed:$2'hours'
Reading$time:$10'minutes$
Total$number$of$questions:$29,'in'3'Sections$
Total$number$of$marks:$100$
No$examination$materials$permitted$
Calculators$may$not$be$used$
Questions$are$not$worth$equal$marks$
Answer$all$questions$$
Tables$of$Matlab$and$OpenOffice$Basic$functions$and$operators$are$included$
This$paper$may$not$be$retained$by$the$candidate$
$Answers' must' be' written' in' ink.' Except' where' they'are'expressly' required,'pencils'may'be'used'only' for'drawing,'sketching'or'graphical'work.'
Family$Name:$_____________________________________________________________$ $
Given$Names:$_____________________________________________________________$ $
Student$Number:$$________________________________________________________$ $
Signature:$_________________________________________________________________$ $
'
B'
Semester 1, 2017Semester 2, 2017
ENGG1811 Sample Final Exam
Page$2$of$16$
Section'A:'Multiple'Choice'Questions'Answer'the'questions'in'this'section'on'the'answer'sheet'provided,'NOT'on'this'paper.'
Each$question$has$ four$ alternatives.$Once$you$have$ chosen$an$alternative,$ fill$ in$ the$ selected$letter$(e.g.,$“B”)$against$the$question$number$on$the$multipleVchoice$sheet.$Be$careful$that$you$fill$each$answer$in$on$the$correct$row$of$the$multipleVchoice$sheet,$and$erase$any$stray$marks.$
This$section$is$worth$30$marks$and$contains$24$questions.$Each$question$is$worth$1.25$marks.$There$ is$ no$ additional$ penalty$ for$ answering$ a$ question$ incorrectly.$ It$ is$ recommended$ that$you$spend$no$more$than$30$minutes$on$this$section.$
A1. Suppose that in an OpenOffice Calc spreadsheet cells A1, B1 and C1 contain the
values 2, 3, and 4 respectively. What value will be displayed in a cell containing the formula =(A1+C$1)/$A$1+B1+
A) 2 B) 4 C) 6 D) the formula is invalid
A2. Which of the following is not a valid formula when typed into the cell L5 in an
OpenOffice Calc worksheet? A) =AVERAGE(D6:D11)+++B) =AVERAGE(A$1:B4;+D2:$E$5)+++C) =AVERAGE(A2:10D)++++++D) =AVERAGE(A2)+++
++A3. Suppose that in an OpenOffice Calc spreadsheet, cell B2 contains the value 115, and
cell C2 contains the value 34. What value will be displayed in a cell containing the following formula?
+++=IF(AND(B2<0;C2>100);"Error";+IF(B2<50;"Fail";"Pass"))+
A) Error+B) Fail+C) Pass++D) none of the above
+
Page2
ENGG1811 Sample Final Exam
Page$3$of$16$
A4. Consider the following portion of an OpenOffice Calc worksheet.
Suppose that cell E4 contains the formula +=$B2+C$3 and that this cell is now copied to cell D5. What value will be shown in cell D5? A) 9 B) 10 C) 14 D) 16
A5. Consider the following portion of an OpenOffice Calc worksheet.
Suppose that cell C1 contains the formula =IF($B$1>35;"Hot";"Cool") and
that this cell is now copied to cell C2. What value will be shown in cell C2?
A) Hot B) Cool C) Error D) None of the above
A6. In OpenOffice Calc, the Correlation tool can be used to:
A) calculate the strength of linear relationship between two or more variables B) calculate a frequency distribution C) display Trendlines D) calculate an optimal solution
Page3
ENGG1811 Sample Final Exam
Page$4$of$16$
A7. Suppose that you want to use the Solver tool in OpenOffice Calc to solve an optimisation problem. For the optimisation problem, you are given a number of locations and the decision variables are the number of sensors to be placed at each location. The objective is to minimise the sensor placement cost. Which of the following is the most appropriate option to use?
A) Assume variables as integer B) Assume variables as non-negative C) Both of A) and B) D) None of A) and B)
A8. Which one of the following statements about names in Calc is true?
A) Names can only be applied to a single cell B) Names can only be used on the sheet where they are defined C) Names used in formulas must be quoted D) Names such as A1 are invalid because they look like cell addresses
A9. What are the values of x and y after this While loop terminates? x and y are variables of type Integer.
+ x+=+0:+y+=+0++ While+x+<+5++ + x+=+x+++1++ + y+=+x+++y++ Wend+
A) x+=+4,+y+=+10+B) x+=+5,+y+=+10+C) x+=+5,+y+=+15++++++D) x+=+6,+y+=+21+
A10. If+blnA and blnB are Boolean variables, which expression is equivalent to
+ + Not+(blnA+Or+Not+blnB)+
A) Not+blnA+Or+Not+blnB+B) Not+blnA+Or+blnB+C) Not+blnA+And+Not+blnB+D) Not+blnA+And+blnB++++++
Page4
ENGG1811 Sample Final Exam
Page$5$of$16$
A11. The following table lists the arithmetic operators used in OpenOffice Basic in decreasing order of precedence.
()(
+(–+(unary: sign)(
^+
*(/(
\(
Mod(
+(–+(binary: add, subtract)+
What is the value of this constant expression? + 4+*+3+T+T4^2
A) 76+B) 28+C) T4+++++D) T52+
A12. Which of the following statements about the Step keyword in OpenOffice Basic is
false? A) Step is only used with For statements. B) Step indicates how much a loop control variable changes at the end of each
iteration. C) Step must have a positive step amount. D) If Step and the amount are omitted, the step amount is assumed to be one.
A13. If x is 25, what is the value of y after the following block of code has been executed? + If+x+>+40+Then++ + y+=+1++ Elseif+x+<+30+Then++ ++ + y+=+2++ Elseif+x+>+20+Then+++ + y+=+3++ Elseif+x+<+10+Then++ + y+=+4++ End+If+
A) y+=+1+B) y+=+2+++++C) y+=+3+D) y+=+4+
Page5
ENGG1811 Sample Final Exam
Page$6$of$16$
A14. In the program below, what are the values of x and y displayed by the MsgBox command?
Sub+A13+++ Dim+x+As+Integer++ Dim+y+As+Integer+++ Dim+z+As+Integer+++ ++ x+=+1++ y+=+2+ ++ z+=+ZFunc(x,y)++ ++ MsgBox+"x+=+"+&+x+&+"y+=+"+&+y+++End+Sub++Function+ZFunc(ByVal+xCopy+As+Integer,ByRef+yCopy+As+Integer)+As+Integer+++ xCopy+=+3*xCopy++ yCopy+=+4*yCopy+++ ZFunc+=+xCopy+++yCopy+++End+Function+
A) x+=+1,+y+=+2+B) x+=+3,+y+=+2+C) x+=+1,+y+=+8++++D) x+=+3,+y+=+8+
A15. In the program below, what is the value of z at the end of the program?
Sub+A15++ Dim+x+as+Double++ Dim+y+as+Integer++ Dim+z+as+Variant+++ ++ x+=+1.7++ y+=+3.2++ ++ z+=+x+++y+++ ++ MsgBox+"z+=+"+&+z+++End+Sub+
A) z+=+4+B) z+=+4.7+++C) z+=+5++++D) z+=+5.9+
Page6
ENGG1811 Sample Final Exam
Page$7$of$16$
A16. Which of the following would not cause an error when used as an OpenOffice Basic identifier: A) 2Difficult B) Cat-Tail C) IAm18YearsYoung D) End
A17. Which of the following is equivalent to the Matlab expression linspace(0,5,11)?
A) 0:+5/11:+5+B) 0:+0.5+:+5++++C) 0:+5+:+0.5+D) 0:+0.5+:+11+
A18. Which Matlab statements do not produce the same result as the following: y+=+[1+,+2+,+3+;+4+,+5+,+6];+
A) y+=+[[1,4]’,+[2,5]’+,+[3+6]’];+B) y+=+[[1,4]’;+[2,5]’+;+[3+6]’];++++++++++C) x1+=+1:3;+x2+=+4:6;+y+=+[x1+;+x2];+D) z+=+1:6;+y+=+[z(1:3)+;+z(4:end)];+
A19. Given a Matlab matrix M with 10 rows and 20 columns. You would like to extract a
submatrix containing the 2nd, 4th, 6th , 8th and 10th rows of the M. Which of the following is not true:
A) You can use M(2:2:end,:) B) You can use M(2:2:length(M),:)+++++ C) You can use M(2:2:size(M,1),:) D) You can use any of the expressions in the above three choices
A20. Given two Matlab vectors v1+and+v2 that have the same dimension, the Matlab built-
in function dot(v1,+v2) forms the dot product of two vectors v1 and v2, that is, the sum of the product of the corresponding elements
v1(1)+*+v2(1)+++v1(2)+*+v2(2)+++…+++v1(N)+*+v2(N)++ where N is the number of elements in each vector. Which of the following produces
the same result as s+=+dot(v1,v2)?
A) s+=+sum(v1+*+v2);+B) s+=+sum(v1+.*+v2);+++++C) s+=+v1+\+v2;+D) s+=+prod(v1+++v2);+
Page7
ENGG1811 Sample Final Exam
Page$8$of$16$
A21. Given a vector v. You want to obtain a sub-vector of v, which contains all the
numbers in v that are less than U and greater than L. Which of the statements below can you use?
A) find((v+<+U)+&+(v+>+L));+B) v((v+<+U)+&&+(v+>+L));+C) v(find((v+<+U)+&+(v+>+L)));++++D) (v+<+U)+&&+(v+>+L);+
+A22. Given a matrix M, you want to find the number of rows in M that have all zeros in the
row. Which of the following Matlab statement allows you to do that?
A) sum(all(M,2));+B) sum(any(M,2));+C) size(M,1)Tsum(all(M,2));+D) size(M,1)Tsum(any(M,2));++++
+A23. Given a vector v, which of the following Matlab statement can you use to find the
smallest of all those numbers in v that are bigger than 5?
A) min(v+>+5);+B) max(v(v+>+5));+C) min(v(v+>+5));++++++++D) min(find(v+>+5));+
A24. The Matlab vector+v1 has a dimension of n-by-1 and the vector v2 has a dimension of
1-by-n, which of the following is true?
A) The+operation+v1+*+v2+does+not+return+an+error+B) The+operation+v2+*+v1+does+not+return+an+error+C) The+operation+v1+.*+v2+does+not+return+an+error++D) None+of+the+above+
'
Page8
Page - 9 -
Section B: OpenOffice Basic Answer the questions in this section in the answer book provided. This section contains 2 questions. Answer both questions. Each question is worth 15 marks.
Question B1 (15 marks) (This question is related to Assignment 1.) In Assignment 1, you were given a data series and a pattern, and the aim was to determine whether the pattern was found in the data series, and if yes, where the pattern was located. You did that by first computing a similarity measure between each segment of the data series and the pattern. After that, you scanned through the similarity measures to determine whether the pattern could be found and where it was. The setting of this question is similar except that the task for this question is to write a block of code to determine the value of the second largest similarity measure.
You can assume the following in your code:
• The similarity measures are stored in a column whose index is given by a constant called SIM_COL
• The first similarity measure is stored in row SIM_ROW_START which is a defined constant
• The last similarity measure is stored in row rowSimLast • There are at least two similarity measures in the column SIM_COL • All the similarity measures in the column SIM_COL are distinct, i.e. no two similarity
measures are equal. • Note that the above assumptions together mean the second largest similarity measure
exists and is unique. • The value and row number of the largest similarity measure have been found. The
value of the largest similarity measure is stored in a variable with the name valueSimMax. The row number at which the largest similarity measure is located is in the variable rowSimMax.
SIM_COL = 4 SIM_ROW_START = 2 rowSimLast = 8 valueSimMax = 3320 rowSimMax = 6 Your subprogram should find valueSecondMax, in this example it would be 2370
Page - 10 -
You can use any of the above constants and variables in your block of code. You should define any additional constants and variables that you need in your program.
Note that you are only required to determine the value of the second largest similarity measure.
Your sub program may look like below. Important: DO NOT write your solution on this pink paper, write your solution in the answer booklet provided, along with the following lines.
'Given Constants Const SIM_COL=4 'for column D Const SIM_ROW_START=2 Sub findSecondLargestValue ' The question assumes that the following have been found Dim rowSImLast As Double 'Last row of data Dim rowSimMax As Double 'The row where the maximum is found Dim valueSimMax As Double 'The value of the maximum Dim valueSecondMax As Double 'Value of the second largest maximum ' START - Solution to the Question below ' you can assume that variables rowSImLast, rowSimMax and ' valueSimMax have been found ' ... your solution here to find value of valueSecondMax ... End Sub
ENGG1811 Sample Final Exam
Page$10$of$16$
Question B2 (15 Marks) Your task for this question is to write a function that classifies two given data points x and y. The function has the prototype
Function+ClassifyData(x+As+Double,+y+As+Double)+As+String++ The function is required to perform the following:
1. Check that the data are valid. The data are valid if both x and y are (strictly) positive. If the data is invalid, then the function should return “Invalid data”. The function should only proceed to classification if the data are valid.
2. If the data are valid, then the function should classify the data into 3 classes. The function should return a string with the name of the class in which the data belong. The classification rules are:
a. The data belong to the class “Normal” if x+*+y+>+10 b. The data belong to the class “Fault1” if they do not belong to “Normal” and x+
>+y c. The data belong to the class “Fault2” if they do not belong to “Normal” and x+
<=+y You should define any constants and variables that you need in your program.
END OF SECTION B
Page11
ENGG1811 Sample Final Exam
Page$12$of$17$
Section'C:'Matlab' Answer$the$questions$in$this$section$in$the$answer$book$provided.$$$This$section$contains$3$questions.$Answer$all$3$questions.$Questions$C1$and$C3$are$worth$15$marks$each.$Question$C2$is$worth$10$marks.$$ Question C1 (15 Marks) (This question is related to Assignment 2.) (a) In Assignment 2, you did a simulation with a time vector which is equally spaced. In general, it is possible to do simulation with a non-equally spaced time vector. Assuming that you want to use simulation to determine the amount of bacteria. You are given a Matlab vector vecTime vecTime+=+[vecTime(1),+vecTime(2),+…,+vecTime(n)],+ with n elements but the elements in vecTime are not equally spaced. You are also given a Matlab function rate that returns the rate of change in the amount of bacteria. For example, if you write rate(vecTime(k))+ in Matlab, the value returned by the function is the rate of change of the amount of bacteria at time vecTime(k), i.e. the k-th element of the vector vecTime. Your aim is to use simulation to obtain the amount of bacteria at the time instances given in the vector vecTime. These amounts are to be stored in a Matlab vector called vecAmount. The initial amount of bacteria is in the Matlab variable initAmount. If you do not use iteration, these are the (n-1) Matlab statements you would use to do this simulation ++vecAmount(2)+=+vecAmount(1)+++(vecTime(2)+–+vecTime(1))+*+rate(vecTime(1));++vecAmount(3)+=+vecAmount+(2)+++(vecTime(3)+–+vecTime(2))+*+rate(vecTime(2));++vecAmount(4)+=+vecAmount+(3)+++(vecTime(4)+–+vecTime(3))+*+rate(vecTime(3));++%+To+be+continued+until+++vecAmount(n)=vecAmount(nT1)+++(vecTime(n)+–+vecTime(nT1))*rate(vecTime(nT1));++
(To be continued on the next page.)
ENGG1811 Sample Final Exam
Page$13$of$17$
Your task is to write a Matlab function simulateBacteriaAmount which takes two inputs
• The vector vecTime • Initial amount of bacteria initAmount
And returns the vector vecAmount as its output.
(b) Given a vector v, you want to compute the value of m1Tm2 where
• m1 is the largest value of v • m2 is the second largest value of v
Show how you can compute m1Tm2 using vectorisation in Matlab, i.e. loops must not be used. You can assume that all values in the vector v are distinct and finite.
ENGG1811 Sample Final Exam
Page$13$of$16$
Question C2 (10 Marks)
This question contains 2 parts: (a) and (b). Each part is worth 5 marks.
Each part of this question describes a task that you need to do in Matlab. Each task can be achieved without using any loops. You should provide the Matlab code and a short explanation of how you achieve the task. You must not use any loops in your answer.
a) Given two vectors x and y which have the same dimension. Both x and y have
length n. You want to compute the vector z, which has a length of n-1. The k-th element of z, i.e. z(k), is given by z(k) = (x(k)^2 + y(k)) / (x(k+1)^2 + y(k+1)) where k = 1, 2, …, n-1 Show how you can obtain z from x and y.
b) Given • A vector w, • 2 scalars L and U such that U > L • A scalar M
You want to obtain a vector v that has the same dimension as w, such that the k-th element of v and the k-element of w are related by:
• v(k) = 0 if w(k)+<=+L • v(k)+=+M if w(k)+>=+U • v(k)+=+w(k) otherwise
Show how you can compute vector v from vector w.
Page14
ENGG1811 Sample Final Exam
Page$14$of$16$
Question C3 (15 Marks) You have got some data stored in a Matlab matrix M. You also have a Matlab function isPropertySatisfied which determines whether a row of data in the matrix M satisfies a certain property or not. For example, if you want to determine whether the k-th row of the matrix M satisfies the property or not, you write: boo+=+isPropertySatisfied(M(k,:)); The variable boo has a value 1 if the k-th row of M satisfies the property, otherwise boo has a value 0.You can use this function in your answer. Your task is to write a Matlab function to determine the last two occurrences in the matrix M that satisfies the property. The following examples illustrates what the expected outcomes are:
1. Assuming only rows 1, 5, 8, 21, 27 and 35 of matrix M satisfy the property, then the last two occurrences are rows 27 and 35. The function should return a row vector with 2 elements containing [35 27]. Note that the first element of the output vector should contain the last occurrence and the second element of the output vector should contain the second last occurrence.
2. Assuming only rows 7 and 21 of matrix M satisfy the property, then the expected output of the function should be [21 7].
3. Assuming there is only one row in the matrix M satisfying the property and it is located at row 5. The function should return a scalar (or a vector with only one element) containing that row number. In this case, the expected output is [5].
4. If none of the rows in M satisfies the property, then the function should return an empty vector [].
The function should have the declaration
function+rowsWithProperty+=+findLastTwoOccurrences(M)++ As a simplification, you do not need to consider error checks on M and you can assume that M is not empty and M contains many rows (far more than 2) of data. There are many methods to implement this function. Some methods are efficient in that they stop processing once the last two occurrences are found. Some methods are inefficient in that they find all the occurrences in the matrix M first and then determine the output. You can only get full marks for this question if you use an efficient method. The maximum mark that you can earn by using an inefficient method is 60% of full marks. Note that if only 0 or 1 row in the matrix M satisfies the property, then there are no differences between efficient and inefficient methods. Efficiency can only be observed when there are 2 or more occurrences of the property in the rows of M.
END OF SECTION C
Page15
ENGG1811 Sample Final Exam
Page$15$of$16$
Selected'Matlab'Operators'and'Symbols'$Matrix$operators:$$ *+/+\+ $ $ Colon$range:$ $ min+:+incr+:+max$Array$operators:$ .*+./+.\+.^$ $ Literal$strings:$ $ 'text'+Transpose$(suffix):$ '$ $ $ $ Line$continuation:$ ...$Array$construction:$ [+]$ $ $ $ Equal,$not$equal:$ ==++~=$Row$separator:$ $ ;$ $ $ $ Boolean$and,$or,$not:$ &&+||+~$Element$separator:$ ,$or$space$ $ $ Comment:$ $ $ %$Output$suppression:$ ;$(after$command)$$$Matlab'Control'Structures''if+booleanexpr+ + if+booleanexpr+ + + if+booleanexpr+
statements+ + + statements+ + + + statements+end++ + + + else++ + + + + elseif+booleanexpr+
statements+ + + + statements+end++ + + + + + ...+
++ + + + + + + else+statements+
end++while+booleanexpr++ + for+variable+=+vector+
statements+ + + + statements+end++ + + + + end+$Selected'Matlab'Functions'All$accept$arrays$except$where$noted.$$size(array)$ $ $ $ $ Maximum$extent$of$each$dimension$length(array)$ $ $ $ (scalar)$equivalent$to$max(size(array))$disp([strings])$ $ $ $ Display$on$command$window$fprintf([format,+values])$ $ Formatted$display$abs(v),+exp(v),+log(v),++$ $$ Mathematical:$absolute$value,$ev,$ln$v,$√,$round$sqrt(v),+floor(v),+mod(a,b)++ down$to$integer,$remainder$from$a/b.$sum(v),+max(v),+min(v),$$ $ Aggregation,$array$to$scalar$mean(v),+median(v)+sin(v),+cos(v),+tan(v)$ $ Trigonometry$linspace(start,finish,pts)$ Equally$spaced$values$inv(m),+det(m)$ $ $ $ Matrix$inverse,$determinant$isempty(v),+isnumeric(v)$ $ Boolean$tests$$ $
Page16
ENGG1811 Sample Final Exam
Page$16$of$16$
'Table'of'OpenOffice'Functions'
Function'call$ Returns…$Int(num)+ Largest integer ≤ num Fix(num) num with fraction removed (truncates towards zero) Abs(num)+ Absolute value of num (same type) Val(str)+ Numeric data in str converted to Double Round(val,+dp) val rounded to dp decimal places (Double) CStr(num) num as a string CInt(arg) arg (number or string) as an integer, fraction truncated Sqr(num),Exp(num),Log(num)+ Mathematical functions Sin(a),+Cos(a),+Tan(a)+ Trigonometric functions Atn(r)+ Arctangent of r (returns radians) IsNumeric(v)+ True if v can be interpreted as a number (or the empty
string) Rnd()+ Next pseudo-random number between 0 and 1 (excluding 1) WorksheetFunction.func(…)+ Function func as used in Excel formulas
Selected'OpenOffice'Calc'Basic'Object'(VBA'Compatible)'
Object$ Refers'to...$ActiveCell+ The active cell, unique ActiveSheet.Cells(row,+col) Cell at given row and column ActiveSheet.Range(str) Cell or range with address or name str ActiveSheet.Rows(row) Complete row ActiveSheet.Columns(col) Complete column
Note: row, col and str are just example variable names.
Control structure
While+booleanexpr++ + For+variable+=+num1+To+num2+Step+num3++
statements+ + + + statements+Wend++ + + + + Next+variable+
If+booleanexpr+Then+ + +
statements+ + + +Elseif+booleanexpr+Then+++ statements+Else+++ statements+
End+If+
END OF PAPER
Page17