#Chapitre 1 : solution des exercices

# Supplement en ligne, solution exercice 1.1
# q1
maVariable <- 10
maVariable
## [1] 10
# q2
str(maVariable)
##  num 10
# q3
maVariable * 2
## [1] 20
# q4
maVariable * maVariable
## [1] 100
# q5
maVariable <- maVariable + 1
maVariable
## [1] 11
# q6
maVariable2 <- NULL 
maVariable2
## NULL
# q7
str(maVariable2)
##  NULL
# q8
maVariable3 <- "Hello World"
maVariable3
## [1] "Hello World"
# q9
str(maVariable3)
##  chr "Hello World"
# Supplement en ligne, solution exercice 1.2
# q1
1:10
##  [1]  1  2  3  4  5  6  7  8  9 10
# q2
a <- 1:10
a
##  [1]  1  2  3  4  5  6  7  8  9 10
# q3, avec RStudio ou avec la fonction str
str(a)
##  int [1:10] 1 2 3 4 5 6 7 8 9 10
# q4
a+a
##  [1]  2  4  6  8 10 12 14 16 18 20
# q5. Oui car a est un vecteur contenant des nombres.
10*a
##  [1]  10  20  30  40  50  60  70  80  90 100
# q6
a>5
##  [1] FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE
# q7
a[a>5]
## [1]  6  7  8  9 10
# q8
b <- 5:8
# q9
b[1]
## [1] 5
b[4]
## [1] 8
b[5]
## [1] NA
# Ou d'un seul coup
b[c(1,4,5)]
## [1]  5  8 NA
# Comme il n'y a pas de cinquieme element dans b, R affiche NA pour Not Available, ce qui est logique puisqu'il n'y a rien comme valeur.
# q10
b[7]<-9
b
## [1]  5  6  7  8 NA NA  9
# Comme b n'a que quatre elements, R affecte la valeur NA aux cinquiemes et sixiemes elements de b puis la valeur 9 au septieme element de b.
# q11
seq(5,30,by=5)
## [1]  5 10 15 20 25 30
# Supplement en ligne, solution exercice 1.3
# q1
f <- function(x){return ((5*x^5)/4)}
f
## function(x){return ((5*x^5)/4)}
str(f)
## function (x)  
##  - attr(*, "srcref")= 'srcref' int [1:8] 61 6 61 36 6 36 61 61
##   ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment: 0x7fd9ff1a03a0>
# q2
f(3)
## [1] 303.75
# q3
# Avec la fonction curve
curve(f,from=-10,to=10)

# Avec la fonction plot qui fait appel \u00e0 la fonction curve lorsqu'elle est appliquee \u00e0 un objet de classe fonction
plot(f,xlim=(c(-10,10)))

# q4
g <- function(x,a) { return (a*x^2) }
g
## function(x,a) { return (a*x^2) }
# Supplement en ligne, solution exercice 1.4
for (i in 1:5) {print("Hello world")}
## [1] "Hello world"
## [1] "Hello world"
## [1] "Hello world"
## [1] "Hello world"
## [1] "Hello world"