R
filesCreate and save the file p1.R
on your computer. All your work should be in p1.R
. You must work with one partner. You should work collaboratively. Both partners are responsible for being able to explain the work that’s been done to the preceptor.
Write code to store the value 98
in a variable named my.score
. Then, write code to output the value of my.score
to the console.
my.score <- 98
cat(my.score)
## 98
Suppose we’d like to adjust the score by multiplying it by 1.2, but making it so that the adjusted score is never above 100. So if my.score
is e.g. 60, the adjusted score would be 60*1.2=72, but if my.score
is 90, the adjusted score would be 100, since 108=1.290 is over 100. Write code to compute the adjusted score and store it in a variable named adj.score
.
The most likely solution is:
adj.score <- my.score * 1.2
if(adj.score > 100){
adj.score <- 100
}
The shortest possible solution is
adj.score <- min(100, 1.2 * my.score)
Another solution would be:
adj.score <- if(my.score * 1.2 > 100){
100
}else{
my.score * 1.2
}
Note that the whole expression on the right-hand side has a value, which we assign to adj.score
.
Write a function named compute.adj.score
which computes the adjusted score, as in 2(b). Write code that uses this function to display the results of adjusting the scores 60, 70, 80, 90, and 100
get.adj.score <- function(my.score){
if (my.score * 1.2 > 100){
100
}else{
my.score * 1.2
}
}
cat(get.adj.score(60))
## 72
cat(get.adj.score(70))
## 84
cat(get.adj.score(80))
## 96
cat(get.adj.score(90))
## 100
cat(get.adj.score(100))
## 100
Write a function named disc
which computes \(b^2 - 4ac\) for the inputs a
, b
, and c
. The first line of your solution code should look like
disc <- function(a, b, c){
Now use this function to compute the discriminant of two quadratic equations.
disc <- function(a, b, c){
b^2 - 4*a*c
}
cat(disc(2, 0, 1)) # 2x^2 + x
## -8
cat(disc(2, 0, -1)) # 2x^2 -1
## 8
Write a function named num.solns
which returns the number of the solutions of the quadratic equation \(ax^2 + bx + c\).
num.solns <- function(a, b, c){
d <- disc(a, b, c)
if(d > 0){
2
}else if(d == 0){
1
}else{
0
}
}
cat(num.solns(2, 0, 1))
## 0
cat(num.solns(2, 0, -1))
## 2
cat(num.solns(1, 2, 1))
## 1
Write a function qaud.roots
which prints (rather than returns) the solutions (if any) of a quadratic equation.
quad.roots <- function(a, b, c){
d <- disc(a, b, c)
if(d > 0){
cat((-b-sqrt(d))/(2*a), (-b+sqrt(d))/(2*a))
}else if(d == 0){
cat(-b/(2*a))
}else{
cat("No solutions")
}
}
cat(quad.roots(2, 0, 1))
## No solutions
cat(quad.roots(2, 0, -1))
## -0.7071068 0.7071068
cat(quad.roots(1, 2, 1))
## -1