SEMANA 06 - Operações de Repetição: acessar vetor em loop - Atividade B06

Gustavo Eduardo Marcatti

Questão (a)

while

vetor <- 15:200
N <- length(vetor)
i <- 1
while (i <= N) {
   #print(vetor[i]^2)
   cat("O quadrado de", vetor[i], "é", vetor[i]^2, "\n")
   i <- i + 1
}

for versão 1

vetor <- 15:200
for (i in 1:length(vetor)) {
   cat("O quadrado de", vetor[i], "é", vetor[i]^2, "\n")
}

for versão 2

vetor <- 15:200
for (elemento in vetor) {
   cat("O quadrado de", elemento, "é", elemento^2, "\n")
}

Questão (b)

while

i <- 1
while (i < 200) {
   if (i %% 4 == 0) {
      print(i)
   }
   i <- i + 1
}

for

for (i in 1:199) {
   if (i %% 4 == 0) {
      print(i)
   }
}

Questão (c)

Algoritmo de pesquisa

meu_vetor <- c(12, 32, 12, 45, 102, 2, 23, 19, 77, 5, 201,
               154, 303, 25, 12, 2, 534, 65, 91, 2)

pesq <- 401
existe <- "NAO"
for (i in 1:length(meu_vetor)) {
   if (meu_vetor[i] == pesq) {
      cat("Existe o número e seu índice é", i, "\n")
      existe <- "SIM"
   } 
}
if (existe == "NAO") {
   cat("NÃO existe o número... \n")
}

Converter em função

fun_pesq <- function(vetor, valor) {
   existe <- "NAO"
   for (i in 1:length(vetor)) {
      if (vetor[i] == valor) {
         cat("Existe o número e seu índice é", i, "\n")
         existe <- "SIM"
         # O break encerra o loop quando encontrar o primeiro elemento
         #break 
      } 
   }
   if (existe == "NAO") {
      cat("NÃO existe o número... \n")
   }
}

# executar a função para cada número de interesse
fun_pesq(meu_vetor, 401)
fun_pesq(meu_vetor, 102)
fun_pesq(meu_vetor, 1)
fun_pesq(meu_vetor, 77)
fun_pesq(meu_vetor, 12)

Extra: executar a função para cada número de interesse em um loop

vetor_pesq <- c(401, 102, 1, 77, 12)
for (num_pesq in vetor_pesq) {
   cat("----- Resultado para o valor", num_pesq, "-----\n")
   fun_pesq(meu_vetor, num_pesq)
}