Colaborador: Ing. Francisco Valverde P.hD en informatica

EJERCICIO 1

Calcule los valores numericos aproximados de:

\[ \frac{0.3*0.15}{0.3*0.15+0.2*0.8+0.5*0.12} , \frac{5^6}{6!}e^{-5} , {20 \choose 7}0.4^70.6^{13}\] Planteamiento del problema: Realizar un programa en el cual nos permita obtener los resultados de los ejercicios planteados y nos muestre el resultado correspondiente.

1.Para el primer calculo, simplemente usamos operaciones sencillas de multiplicacion y division:

r1<- (0.3*0.15)/((0.3*0.15)+(0.2*0.8)+(0.5*0.12))
r1
## [1] 0.1698113
  1. Para el siguiente calculo tenemos un numero factorial para ello ocuparemos las funciones,factorial y exp que representa a euler:
r2<-(5^6/factorial(6))*exp(-5)
r2
## [1] 0.1462228
  1. En ese punto utilizaremos la formula del coeficiente binomial,que esta dado por la formula:

\[ {n \choose k} = \frac{n!}{k!(n-k)!} \]

n<-20
k<-7
r3<-factorial(n)/(factorial(k)*factorial(n-k))*(0.4^7)*(0.6^13)
r3
## [1] 0.1658823

EJERCICIO 2

Realiza las siguientes sumas:

\[ 1.\ 1+2+3+...+1000+1+2+3+...+1000 \\ 2. \ 1+2+4+8+16+...+1024+2+4+8+16...+1024 \] Planteamiento del problema: Elaborar un programa en el cual nos permita realizar las sumas y obtener la solución correspondiente.

  1. La primera la realizaremos utilizando vectores de secuencias,y sum para la suma de este vector.Luego uniremos las dos sumas en un solo vector
vector1 <- (1:1000)
suma1 <- sum(vector1)
suma1
## [1] 500500
vector2 <- (1:1000)
suma2 <- sum(vector2)
suma2
## [1] 500500
vector_result <- c(suma1,suma2)
vector_result
## [1] 500500 500500
  1. En la segunda suma utilizaremos While que viene dado por la siguiente sintaxis:
 #while(condicion) {
  #operaciones
#}

Con esto le decimos a R: MIENTRAS esta condición sea VERDADERA, haz estas operaciones.

n1<-1
suma1<-0

while (n1<=1024)
{suma1=suma1+n1

n1=n1*2
}
print(suma1)
## [1] 2047
resultado<-c(suma1,suma1)
resultado
## [1] 2047 2047

EJERCICIO 3

El vector alumnos representa los nombres de una serie de alumnos

Planteamiento del problema: Desarrollar un programa en el que nos permita crear vectores que represente el nombre de 20 alumnos y realizar las preguntas planteadas

  1. Crear el vector alumnos con 20 nombres y vizualizarlo en la pantalla
Alumnos <- c("Jose","luis","Mario","Ana","Maria","Veronica","Kathy", "Mauricio",
             "Ana","Rene","Salome","Luis","Alfredo","Camila","Sandra","Andy",
             "Elena","David","Lore","Alisson")
Alumnos
##  [1] "Jose"     "luis"     "Mario"    "Ana"      "Maria"    "Veronica"
##  [7] "Kathy"    "Mauricio" "Ana"      "Rene"     "Salome"   "Luis"    
## [13] "Alfredo"  "Camila"   "Sandra"   "Andy"     "Elena"    "David"   
## [19] "Lore"     "Alisson"
  1. ¿Cuantos componentes tiene el vector alumnos?

Para ello utilizaremos la funcion length

length(Alumnos)
## [1] 20
  1. ¿En que posiciones del vector alumnos esta la letra A?

Aqui utilizaremos la funcion substr(“x”, “star=”, “stop=”). Donde x es un vector caracter o texto del que se desea extraer una subcadena.star indica el orden inicial, es decir, la posición inicial de la que se empezará a extraer. Por último,stop indica el orden final. El orden inicial y final viene expresado por números. Y la funcion which que muestra la posicion de un componente del vector

Letra <- substr(Alumnos,1,1)
Letra
##  [1] "J" "l" "M" "A" "M" "V" "K" "M" "A" "R" "S" "L" "A" "C" "S" "A" "E" "D" "L"
## [20] "A"
which(Letra=="A")
## [1]  4  9 13 16 20

EJERCICIO 4

El vector notas representa la nota de un examen, de los mismos alumnos cuya lista se ha guardado en el vector alumnos y en el mismo orden 

Planteamiento del problema: Elaborar un programa que nos permita crear un vector al cual se le asignará el nombre de “notas”, que representa la nota de examen de cada alumno del anterior vector, ya creado

  1. Visualizarlo en pantalla
notas <-  c(7,9,2,4,6,3,10,6,2,0,1,2,3,4,5,6,7,8,9,9)
notas
##  [1]  7  9  2  4  6  3 10  6  2  0  1  2  3  4  5  6  7  8  9  9
  1. ¿Cuántos componentes tiene?
length(notas)
## [1] 20
  1. ¿Cuánto suman las notas?
sum(notas)
## [1] 103
  1. Media aritmetica de todas las notas
mean(notas)
## [1] 5.15
  1. ¿En que posiciones estan las notas mayores a 7?
which(notas >=7)
## [1]  1  2  7 17 18 19 20
  1. Visualizar las notas ordenadas de menor a mayor
sort(notas)
##  [1]  0  1  2  2  2  3  3  4  4  5  6  6  6  7  7  8  9  9  9 10
  1. Visualizar las notas ordenadas de mayor a menor
sort(notas,decreasing = T)
##  [1] 10  9  9  9  8  7  7  6  6  6  5  4  4  3  3  2  2  2  1  0
  1. ¿Cuál ha sido la nota maxima?
max(notas)
## [1] 10
  1. ¿En que posicion del vector está la nota maxima?
which.max(notas)
## [1] 7

EJERCICIO 5

 A partir de los vectores y notas asignados:

Planteamiento del problema: Elaborar un programa en el cual nos permita crear vectores para realizar sus respectivos análisis y obtener sus resultados.

Alumnos <- c("Jose","luis","Mario","Ana","Maria","Veronica","Kathy", "Mauricio","Ana","Rene",
             "Salome","Luis","Alfredo","Camila","Sandra","Andy","Elena","David","Lore","Alisson")
notas <- c(7,9,2,4,6,3,10,6,2,0,1,2,3,4,5,6,7,8,9,9)
names(notas) <- Alumnos
notas
##     Jose     luis    Mario      Ana    Maria Veronica    Kathy Mauricio 
##        7        9        2        4        6        3       10        6 
##      Ana     Rene   Salome     Luis  Alfredo   Camila   Sandra     Andy 
##        2        0        1        2        3        4        5        6 
##    Elena    David     Lore  Alisson 
##        7        8        9        9
  1. Presentar las 10 primeras notas Lo haremos de dos maneras la primera sera creando un vector de secuencia que vaya desde la posicion 1 hasta la 10. Y la segunda es utilizando la funcion head,que devuelve las primeras n filas del conjunto de datos.
notas[1:10]
##     Jose     luis    Mario      Ana    Maria Veronica    Kathy Mauricio 
##        7        9        2        4        6        3       10        6 
##      Ana     Rene 
##        2        0
head(notas,10)
##     Jose     luis    Mario      Ana    Maria Veronica    Kathy Mauricio 
##        7        9        2        4        6        3       10        6 
##      Ana     Rene 
##        2        0
  1. Suma las notas de los primeros 10 alumnos del vector
sum(notas[1:10])
## [1] 49
sum(head(notas,10))
## [1] 49
  1. Cuantos alumnos hay en total
length(Alumnos)
## [1] 20
  1. Suma de las notas de los alumnos
sum(notas)
## [1] 103
  1. Cuantos alumnos han aprobado
a <- length(notas)
j <- 1
cont<-0
cont1<-0
aprobados <- 1:a
aprobados[1] <- NA
for(i in 1:a){
  if(notas[i]>=7){
    aprobados[j] <- "aprobado" 
    cont<-cont+1
  }else{
    aprobados[j] <- "reprobado" 
    cont1<-cont1+1
  }
  j <- j+1
}
aprobados
##  [1] "aprobado"  "aprobado"  "reprobado" "reprobado" "reprobado" "reprobado"
##  [7] "aprobado"  "reprobado" "reprobado" "reprobado" "reprobado" "reprobado"
## [13] "reprobado" "reprobado" "reprobado" "reprobado" "aprobado"  "aprobado" 
## [19] "aprobado"  "aprobado"
names(notas) <- aprobados
notas
##  aprobado  aprobado reprobado reprobado reprobado reprobado  aprobado reprobado 
##         7         9         2         4         6         3        10         6 
## reprobado reprobado reprobado reprobado reprobado reprobado reprobado reprobado 
##         2         0         1         2         3         4         5         6 
##  aprobado  aprobado  aprobado  aprobado 
##         7         8         9         9
names(Alumnos) <- aprobados
Alumnos
##   aprobado   aprobado  reprobado  reprobado  reprobado  reprobado   aprobado 
##     "Jose"     "luis"    "Mario"      "Ana"    "Maria" "Veronica"    "Kathy" 
##  reprobado  reprobado  reprobado  reprobado  reprobado  reprobado  reprobado 
## "Mauricio"      "Ana"     "Rene"   "Salome"     "Luis"  "Alfredo"   "Camila" 
##  reprobado  reprobado   aprobado   aprobado   aprobado   aprobado 
##   "Sandra"     "Andy"    "Elena"    "David"     "Lore"  "Alisson"
  1. Cuantos alumnos han aprobado
a <- length(notas)
j <- 1
cont<-0
cont1<-0
for(i in 1:a){
  if(notas[i]>=7){
    aprobados[j] <- "aprobado" 
    cont<-cont+1
  }else{
    aprobados[j] <- "reprobado" 
    cont1<-cont1+1
  }
  j <- j+1
}
cat("Aprobaron",cont,"alumnos\n","Y desaprobaron",cont1,"alumnos")
## Aprobaron 7 alumnos
##  Y desaprobaron 13 alumnos
  1. Porcentaje de alumnos que han aprobado
porcentajealu <-(cont*100)/a
cat("Han aprobado ",porcentajealu,"% de alumnos")
## Han aprobado  35 % de alumnos
  1. Cuales han sido las notas maximas y minimas
q <- max(notas)
cat("La nota maxima es de",q)
## La nota maxima es de 10
s <- min(notas)
cat("La nota minima es de",s)
## La nota minima es de 0
  1. De que alumnos son la nota maxima y minima
d <- which.max(notas)
d
## aprobado 
##        7
f <- which.min(notas)
f
## reprobado 
##        10
cat("La mayor nota es de",Alumnos[d],"con una calificacion de",notas[d])
## La mayor nota es de Kathy con una calificacion de 10
cat("La menor nota es de",Alumnos[f],"con una calificacion de",notas[f])
## La menor nota es de Rene con una calificacion de 0
  1. Media solo de los que han aprobado
a <- length(notas)
cont <- 0
sum <- 0
for(i in 1:a){
  if(notas[i]>=7){
    cont <- cont+1
    sum <- sum+notas[i]
  } 
}
media <- sum/cont
medi<- round(media,2)
cat("La nota media de los alumnos teniendo en cuenta solo los que han aprobado es de",medi)
## La nota media de los alumnos teniendo en cuenta solo los que han aprobado es de 8.43