Capítulo 12 Loop for
O loop for
em R é uma estrutura de controlo de fluxo que permite
executar repetidamente um bloco de código para cada elemento de uma
sequência. Ele é particularmente útil quando o número de iterações é
conhecido de antecipadamente. O loop for
é amplamente utilizado em R
para iterar sobre vetores, listas, data frames, e outras estruturas de
dados.
variável: Uma variável de controlo que, em cada iteração, assume o valor do próximo elemento da sequência.
sequência: Uma estrutura de dados como um vetor, lista, ou outro objeto sobre o qual se deseja iterar.
bloco de código: As instruções a serem executadas a cada iteração do loop.
Funcionamento do Loop for
Inicialização: Antes de iniciar o loop, a variável de controlo é definida com o primeiro elemento da sequência.
Iteração: Para cada iteração, a variável de controlo é atualizada com o próximo valor da sequência.
Execução do Bloco de Código: O bloco de código dentro do loop é executado para cada valor da variável de controlo.
Finalização: O loop termina quando todos os elementos da sequência tiverem sido processados.
Exemplo 1: Imprima os números de 0 a 10 no ecrã.
for (i in 0:10) {
print(i)
}
## [1] 0
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
## [1] 6
## [1] 7
## [1] 8
## [1] 9
## [1] 10
Exemplo 2: Soma dos elementos de um vetor.
numeros <- c(1, 2, 3, 4, 5)
soma <- 0
for (num in numeros) {
soma <- soma + num
}
print(paste("A soma dos números é:", soma))
## [1] "A soma dos números é: 15"
Exemplo 3: Uso do for
com índices. Também pode usar o loop for
para iterar sobre índices de vetores ou listas, o que pode ser útil
quando se deseja aceder ou modificar elementos em posições específicas.
numeros <- c(10, 20, 30, 40, 50)
for (i in 1:length(numeros)) {
numeros[i] <- numeros[i] * 2
}
print("Elementos do vetor multiplicados por 2:")
print(numeros)
## [1] 20 40 60 80 100
Exemplo 4: Iterar sobre matrizes. O loop for
também pode ser
utilizado para percorrer elementos de uma matriz, seja por linha ou por
coluna. No exemplo abaixo, calculamos a soma dos elementos de cada linha
de uma matriz.
matriz <- matrix(1:9, nrow=3, ncol=3)
soma_linhas <- numeric(nrow(matriz))
for (i in 1:nrow(matriz)) {
soma_linhas[i] <- sum(matriz[i, ])
}
print("Soma dos elementos de cada linha:")
print(soma_linhas)
## [1] 12 15 18
Exemplo 5: Cálculo de Médias de Colunas num Data Frame. Neste
exemplo, calculamos a média de cada coluna de um data frame usando um
loop for
.
dados <- data.frame(
A = c(1, 2, 3),
B = c(4, 5, 6),
C = c(7, 8, 9)
)
medias <- numeric(ncol(dados))
for (col in 1:ncol(dados)) {
medias[col] <- mean(dados[, col])
}
print("Médias das colunas do data frame:")
print(medias)
## [1] 2 5 8
12.1 Exercícios
1. Escreva um programa em R que use um loop for
para imprimir
todos os números de 1 a 10.
2. Escreva um programa em R que use um loop for
para imprimir o
quadrado de cada número de 1 a 5.
3. Escreva um programa em R que some todos os elementos do vetor
numeros <- c(2, 4, 6, 8, 10)
usando um loop for
.
4. Escreva um programa em R que calcule a média das notas no vetor
notas <- c(85, 90, 78, 92, 88)
usando um loop for
.
5. Escreva um programa em R que imprima todos os números ímpares do
vetor valores <- c(1, 3, 4, 6, 9, 11, 14)
. Utilize um loop for
.
6. Escreva um programa em R que leia um número inteiro e use um loop
for
para imprimir sua a tabuada de 1 a 10.
7. Escreva um programa em R que leia um número inteiro e use um loop for
para criar o vetor c(1,2,...,n-1,n)
.
8. Escreva um programa em R que leia um número inteiro e use um loop
for
para determinar se o número é perfeito ou não. Um número perfeito
é aquele cuja soma de seus divisores próprios é igual ao próprio número
(por exemplo, 6 tem divisores próprios 1, 2 e 3, e 1+2+3 = 6).
9. Escreva um programa em R que use um loop for
para encontrar e
imprimir todos os números perfeitos entre 1 e 1000.
10. Escreva um programa em R que leia dois inteiros \(n\) e \(m\) e
imprima os números entre \(0\) e \(n\), inclusive, com um intervalo de \(m\)
entre eles. Utilize um loop for
para o efeito.
11. Escreva um programa que calcule a média de um conjunto de notas
fornecidas pelo utilizador. O número de notas a serem inseridas é
indicado pelo utilizador antes da entrada das notas. Utilize um loop
for
para recolher as notas e calcular a média. Segue-se um exemplo da
interação com o computador:
Digite o número de notas que serão inseridas: 4
Digite a nota: 12
Digite a nota: 13
Digite a nota: 15.5
Digite a nota: 16
A média das notas é 14.125
12. Crie uma matriz \(4\times4\) com números de 1 a 16. Utilizando o
comando de repetição for
calcule:
a média da terceira coluna da matriz.
a média da terceira linha da matriz.
a média de cada coluna da matriz.
a média de cada linha da matriz.
a média dos números pares de cada coluna da matriz.
a média dos números ímpares de cada linha da matriz.
Obs: Use estruturas de decisão (if
…else
…) sempre que
necessário para condicionar a lógica dentro dos loops.