Department of
Computer Science
University of
Illinois at Urbana-Champaign
Computer Science
101: Mid Term Exam (75 minutes)
Name: NetID:
Lab Section: Date: July 5, 2006
No questions will be answered during this
examination. If you do not understand a
question, read it again. If you still do
not understand it, make reasonable assumptions and write them down.
(Points will be deducted if unreasonable assumptions are made.)
DO NOT CHEAT: Cheating includes not only copying from another person but
also allowing someone to copy from you.
Anyone who copies or allows someone to copy will receive a score of
zero. So be defensive and protect your
work.
This examination contains 10 pages including this page. Check that your copy is complete, and ask for a replacement if it is not. Do all your work on these pages. For your own protection, in case pages come apart, write your NetID at the TOP of each page before beginning work.
The number of points for a question is roughly proportional to the amount of time you may need for it. Don’t spend too much time on any one question.
Do not forget to sign the attendance list and to write your signature on the line below:
_______________________________________________________________________
(If your exam is misplaced and you did not sign the attendance list then you
will receive a zero score for the exam.)
You may not use any electronic devices, book, notes or other references during this examination.
Section |
Possible Score |
Score |
Grader |
|
9 |
|
|
|
|
2 |
12 |
|
|
|
3 |
8 |
|
|
|
4 |
4 |
|
|
|
5 |
10 |
|
|
|
6 |
8 |
|
|
|
7 |
10 |
|
|
|
8 |
8 |
|
|
|
9 |
12 |
|
|
|
10 |
10 |
|
|
|
11 |
9 |
|
|
|
12 |
12 |
|
|
|
13 |
10 |
|
|
|
14 |
10 |
|
|
|
15 |
8 |
|
|
|
16 |
12 |
|
|
|
17 |
13 |
|
|
|
Total |
165 |
|
|
1.
Assume that a matrix named x exists in your workspace. Write a single Matlab command to do each of the following:
a) Write a command to display the number of rows and columns of
the matrix x:
>> ______________________________________________________
b) Write a command to add all the values in the matrix x and display this value.
>> _____________________________________________________
c) Write a command to display the values for ex where
x is a matrix.
>> _________________________________________________
2.
Write a function named calculate_sales to calculate sales tax. This function should take as input a single parameter named sales and return the amount of sales tax. Assume the sales tax rate
is 6.25%. Your function must return the amount of sales tax and
should not print the value to the screen. Hint: to compute the sales tax on 100
dollars in sales you would calculate 100 * .0625 .
3. a) Write one or more Matlab commands to create a 100 by 100 matrix consisting of the vector 1:100
on the main diagonal and zeros
elsewhere.
b) Write one or more Matlab commands to create a vector containing exactly 1000 numbers equally
spaced between 0 and 1 (including the
numbers 0 and 1).
4.
Write a single Matlab command to create a column vector
consisting of 1000 sevens. Do not write
(or abbreviate) 1000 sevens.
>>
_____________________________________________________
5.
Fill in the
blanks to make a 3D plot of the function z = sin(x) + cos(y) for x ranging from
-2π to 2π and y ranging from -2π to 2π. Use the meshgrid
function to create a grid of 100 x 100 points in the x-y plane. You may use any
of the built-in Matlab 3D plot functions.
>>
x = linspace( ______________________________________ );
>> y = x;
>> [XGrid, YGrid] =
____________________________________ ;
>> ZGrid = ___________________________________________
;
>>
____________________________________________________ ;
6.
Given the vectors:
>>
x = 1:100;
>> y = 101:200;
Which of the following are
equivalent to the command:
>>
plot(x,y)
(Circle any that are
equivalent.)
a) plot(x)
b)
plot(y)
c) plot(y,x)
d) fplot(x,y)
7. Write Matlab command(s) to approximate the definite integral,

Use the trapz function with 100 values from 0 to
.
8. a) Given a vector z of any length, write a single Matlab command to reverse the order of z. For example if z = [ 1 2 3 4 5] then after excuting your command z equals [ 5 4 3 2 1]. Your code should work for any vector z and not just z = [ 1 2 3 4 5].
>> z = ____________________________________________________________________
b) Given the vector V of any length, write a single Matlab command to prepend a 0 to the beginning of
V. For example if V = [ 1 3 5 7] then after executing your command V equals [ 0 1 3 5 7]. Your code
should work for any vector V and not just V = [ 1 3 5 7].
>> V = ____________________________________________________________________
9. Suppose the following Matlab statement has been executed:
>> A = [1 2 3 4 ; 5 6 7 8];
Write the correct response that Matlab would display when executing the following commands. If an
error would result then write ERROR.
a) >> B = [ A’ , [9 ; 10 ; 11 ; 12] ]
_________________________________________________________
b) >> A(1,end)
________________________________________________________
c) >> A(2,[2 3]) = 9;
>> A
A =
___________________________________________________________________
10. Let A be a 3 x 2 matrix. Which of the following are valid operations? Circle each correct answer.
A + A' A ./ A
A .^ A A * A A .* A
11. Fill in the blanks to convert the following linear equations into the form A* b = c:
5X + 2Z = 30
3X + 5Y + 6Z = 27
7Z + 3Y + 9X = 51
where A is a matrix of coefficients and c is a column vector of constants.
>>
A =
>>
c =
Now write the Matlab statement to solve the system for b (Do not solve the system manually):
>> b =
12. Complete the code for the function named polyd (below) that computes the derivative of a polynomial (and only polynomials). The input to your function is a vector that represents a polynomial. The output of your function is a vector that represents the derivative of the polynomial. For example, given the input polynomial p = [4 0 6 3 -4] (which is 4x4 + 6x2 + 3x – 4) your function would return
[16 0 12 3] (which is 16x3 + 12x + 3) Hint: Notice that for this example,
p .* [4 3 2 1 0] = [16 0 12 3 0] , which is almost the correct answer.
Your code should work for any polynomial and not just p = [4 0 6 3 -4] . You may create any
variables you need to use in your function.
function
dp = polyd( p )
13. Assume the following code has been saved in a file named script.m :
L
= 5;
d = [1 2 3];
K = [4 5 6];
Suppose the following statements are typed at the Matlab prompt. Write the correct output that Matlab
would display.
>> clear
>> L = 9;
>> script
>> D = d ./ K;
>> who
_________
>>
clear
>>
L = 9;
>> who
_________________________________________________
14. Complete the following by filling in the blanks with the correct Matlab code.
Assume that the following commands have been entered at the Matlab prompt:
>>
syms x
>>
syms y
a) Write code to find the symbolic
(not definite) integral of f(x) = x100sin(x). Do not write the
actual answer, just write the Matlab code that would generate the correct
answer.
_________________________________________________________________
b) Write
code to find the symbolic second derivative
of g(y) = yy . Do not write the actual answer, just write
the Matlab code that would generate the correct answer.
________________________________________________________________
15. Using the built-in function fzero write the Matlab command(s) to find a root of the function
with an initial guess
of x = 1. (Don't write the root)
16. Assume
the function named f
is defined below and saved in the file f.m :
function
z = f(x)
global
g
g =
max([g,x]);
g = g
+ x;
z = g;
At the Matlab prompt in the command window, the following code is run without errors:
>> clear
>>
g = 0;
>>
z = f(3);
>>
b = f(2);
After the above commands have been typed the commands below are typed in the sequence they
appear. Write the output the following commands produce. If the command produces an error then
write ‘ERROR’.
>>
who
______________________________________________________________
>>
g
_____________
>>
z
____________
>>
b
____________
17. Complete
the Matlab function below named min_dist
that computes the distance in the plane of the closest point to the origin. Assume
that the two parameters x and y contain the x-coordinates and y-coordinates
respectively of a list of points. For example,
>> x = [5 0 2 -7 8];
>>
y = [3 -3 9 4 8];
represent the points (5,3), (0,-3), (2,9), (-7,4), and (8,8). After
you write the min_dist function and then type,
>> result = min_dist(x,y);
then since the five points above have distances of 5.83, 3, 9.22, 8.06, and 11.31 from the origin,
respectively, the minimum distance from the origin is 3. Thus the variable named result will be assigned
the value 3 in this example. Your code should work correctly for any number of points.
Hint: Given one point (x1 , y1
) in the x-y plane then the distance from this point to the origin (0,0) is
.
For two points x = [ x1 x2 ] and
y = [ y1 y2 ] then we could write the
distances as
.
The same idea extends to any number of points.
function result = min_dist(x,y)