Exercícios

  1. Primeiro guarde nas variáveis a, b e c o tamanho dos lados de um triangulo qualquer. Em seguida implemente um código no R que imprime na tela uma mensagem informando se o triângulo em questão é equilátero, isósceles ou escaleno. Teste o código implementado para diferentes valores de a, b e c.

  2. Para cada item a seguir implemente um código no R para encontrar o que se pede. Não use a função seq() ou outra parecida. Dica: Comece com um vetor nulo e use o(s) controle(s) de fluxo que achar adequado para preenchê-lo.

    1. Crie um array com os 100 primeiros múltiplos de 3.
    2. Crie um array com todos os múltiplos de 3 menores que 100.
    3. Crie um array com os 100 primeiros números ímpares.
  3. Repita cada item do Exercício 2 acima usando um controle de fluxo diferente daquele que você usou quando resolveu esse exercício.

  4. Usando os controles de fluxo vistos em sala de aula, faça o que se pede. Dica: a partir do segundo item vai ser preciso usar dois controles de fluxo, um dentro do outro.

    1. Comece com uma matriz 10 \(\times\) 10 nula. Usando um dos controles de fluxos vistos em aula, implemente um código que preencha todas as posições da primeira linha dessa matriz com o número 1.
    2. Comece com uma matriz 10 \(\times\) 10 nula. Usando um dos controles de fluxos vistos em aula, implemente um código que preencha cada uma de suas linhas com o número que indica a linha em questão. Por exemplo, a primeira linha deve ser preenchida toda com o número 1, a segunda com o número 2 e assim por diante, até a décima linha que deve ser preenchida com 10.
    3. Comece com uma matriz 100 \(\times\) 100 nula. Usando um dos controles de fluxos vistos em aula, implemente um código que preenche cada coluna com o número que indica a coluna em questão (análogo ao item anterior).
    4. Agora comece com uma matriz 100 \(\times\) 100 nula. Usando um dos controles de fluxos vistos em aula, implemente um código que preenche as posições em linhas pares com o número 2 e as posições em linhas ímpares com o número 1.
  5. Comece cada item a seguir com uma matriz 100 \(\times\) 100 nula e não use a fução seq() ou outra parecida.

    1. Crie uma matriz diagonal 100 \(\times\) 100 cujos elementos da diagonal principal são os números de 1 até 100 em ordem crescente.
    2. Crie uma matriz diagonal 100 \(\times\) 100 cujos elementos da diagonal principal são os números de 1 até 100 em ordem decrescente.
  6. Usando os controles de fluxo vistos em aula crie as listas definidas em cada item a seguir.

    1. L1 é uma lista com 10 posições tal que cada posição i guarda o número i.
    2. L2 é uma lista com 10 posições tal que cada posição i guarda um vetor de tamanho i com todas as posições iguais a 1.
    3. L3 é uma lista com 10 posições tal que cada posição i guarda um vetor com os 10 primeiros múltiplos de i.
    4. L4 é uma lista com 10 posições tal que cada posição i guarda um vetor com os i primeiros múltiplos de 2.
    5. L5 é uma lista com 10 posições tal que cada posição i guarda a matriz identidade de tamanho i\(\times\)i.
  7. Usando as listas L1 e L3 do Exercício 6, faça o que se pede.

    1. Encontre o valor da soma de todos os números guardados em L1.
    2. Encontre o array tal que cada posição i guarda a soma de todos elementos guardados na posição i da lista L3.
  8. Usando a lista L4 do Exercício 6, faça o que se pede.

    1. Crie um array soma tal que a sua posição i guarda a soma dos elementos alocados na posição i da lista L4.
    2. Crie um array v de "character" tal que a sua posição i guarda o objeto soma[i] concatenado com o texto "é um múltiplo de 5" se a o valor de soma[i] for um múltiplo de 5. Caso contrário, guarde na posição i de v o objeto soma[i] concatenado com "não é um múltiplo de 5". Para concatenar textos use a função paste().
    3. A partir do array soma ou do array v criados nos itens anteriores, conte o número de arrays da lista L4 tais que a sua soma é um número múltiplos de 5. Não é para você visualizar soma ou v e contar, e sim para usar um controle de fluxo e uma variável que servirá de contador para realizar essa conta.
  9. Uma progressão aritmética (p.a.) é uma sequência numérica em que cada termo, a partir do segundo, é igual à soma do termo anterior com uma constante \(r\). O número \(r\) é chamado de razão. O primeiro termo da sequência será chamado de \(x_0\).

    1. Faça um código em R que cria um array y com os 100 primeiros termos da progressão aritmética cuja termo inicial é \(x_0 = 2\) e a razão é \(r=3\).
    2. Faça um código que determine a soma dos 35 primeiros termos dessa sequência. Compare o valor encontrado com o valor fornecido pela fórmula da soma de uma p.a.. Você lembra dessa fórmula?
    3. Faça um código que conte um número de elementos em y múltiplos de 4 (lembre do comando %% visto na semana passada, que fornece o resto da divisão).
    4. Faça um código que conte um número de elementos em y múltiplos de 4 e múltiplos de 5 simultaneamente.
    5. Faça um código que conte um número de elementos em y múltiplos de 4 ou múltiplos de 5.
    6. Faça um código que cria um novo array x a partir y, como descrito a seguir. O array x guarda na posição i o mesmo elemento que y guarda em i, caso esse elemento seja um número par. Se o elemento da posição i do array y for um número ímpar, x recebe na posição i o valor 0.
  10. A famosa sequência de Fibonacci é definida da seguinte maneira: os dois primeiros elementos são iguais a [1, 1] e a partir do terceiro elemento cada termo da sequência é definido como a soma dos dois termos anteriores. Por exemplo, o terceiro termo é 2 (= 1 + 1), o quarto termo é 3 (= 1 + 2), o quinto termo é 5 (= 2 + 3) e assim por diante.

    1. Faça um código em R que cria um array fib_12 com os 12 primeiros números da sequência de Fibonacci.
    2. Faça um código em R que cria um array fib_m_300 com todos os números da sequência de Fibonacci menores que 300.
    3. Faça um código em R que retorna o número de termos da sequência de Fibonacci menores que 1.000.000. Veja que nesse caso você não precisa (e nem deve!) guardar os termos da sequência, apenas precisa contar o número de elementos.