# ignorar esta funcion, solo es para separar la salida en pantalla pregunta <- function(n){ cat("\n") cat(paste(rep("*", 40), sep = "", collapse = "")) cat(paste(" Pregunta", n, "")) cat(paste(rep("*", 40), sep = "", collapse = "")) cat("\n") } #-------------------------------------------------------- # Pregunta 1 #-------------------------------------------------------- pregunta(1) consecutivo <- function(x){ c <- 1 max_largo <- 1 for (i in 2:length(x)){ if (x[i] == x[i - 1]){ c <- c + 1 } else { if (c > max_largo){ max_largo <- c } c <- 1 } } max_largo } x <- c(5, 1, 1, 3, 2, 2, 2, 7) print(consecutivo(x)) x <- c(8, 3, 1, 3, 8) print(consecutivo(x)) #-------------------------------------------------------- # Pregunta 2 #-------------------------------------------------------- pregunta(2) granizo <- function(n){ h <- integer(); while (n > 1){ h <- c(h, n); if (n %% 2 == 0){ n <- n %/% 2; } else{ n <- 3 * n + 1; } } h <- c(h, 1) } print(granizo(2)) print(granizo(3)) print(granizo(5)) #-------------------------------------------------------- # Pregunta 3 #-------------------------------------------------------- pregunta(3) notas <- read.csv("notas_2016.csv", header=TRUE) Prom.Lab <- NULL for (i in 1:nrow(notas)){ labs <- notas[i, 4:11] prom <- mean(as.numeric(sort(labs)[4:8])) Prom.Lab <- c(Prom.Lab, prom) } Prom.Con <- (notas[12]+notas[13])/2 colnames(Prom.Con) <- c("Prom.Con") Nota.Final <- 0.2 * Prom.Lab + 0.4 * Prom.Con + 0.4 * notas[14] colnames(Nota.Final) <- c("Nota.Final") Calificacion <- ifelse(Nota.Final >= 80, "sobresaliente", ifelse(Nota.Final >= 65, "notable", ifelse(Nota.Final >= 50, "satisfactorio", "reprobado"))) colnames(Calificacion) <- c("Calificacion") notas <- data.frame(notas, Prom.Lab, Prom.Con, Nota.Final, Calificacion) print(table(notas$Calificacion, notas$Seccion))