ProgII - Lista 4

Fazer os seguintes programas:

  1. A seqüência a seguir é conhecida como a série de Fibonacci: 0, 1, 1, 2, 3, 5, 8, 13, 21, ... Ela começa com 0 e 1 e tem a propriedade de que cada numero subsequente de Fibonacci é a soma dos dois numeros de Fibonacci anteriores. Crie uma funcao que calcula o iésimo numero da sequencia de Fibonacci.
    Exemplo:
    Fibonacci(1) = 0
    Fibonacci(2) = 1
    Fibonacci(3) = 1
    Fibonacci(4) = 2
    Fibonacci(5) = 3
    ... 

    Solução: versão 1 - versão 2

  2. Escreva uma função multiplo que determine, para um par de números inteiros, se o segundo número é múltiplo do primeiro. A função deve ter dois argumentos inteiros e retornar 1 (verdadeiro) se o segundo número for múltiplo do primeiro, e 0 (falso) em caso contrário. Use essa função em um programa que pede para o usuário digitar 2 números, diz se o segundo é múltiplo do primeiro, pergunta se o usuário quer testar mais dois números e, se sim, pede novamente para o usuário digitar 2 números e assim por diante. Se o usuário responder que não quer mais testar dois números, o programa termina.

    Solução: versão 1 - versão 2

  3. Diz-se que um número inteiro é um número perfeito se a a soma de seus fatores, incluindo 1 (mas nao o numero em si), resulta no próprio número. Por exemplo, 6 é um número perfeito porque 6 = 1 + 2 + 3. Escreva uma função perfeito que determine se o parâmetro número é um número perfeito. Use esta função em um programa que determine e imprima todos os números perfeitos entre 1 e 1000. Imprima os fatores de cada número encontrado para confirmar que ele é realmente perfeito. Desafie o poder de seu computador testando numeros muito maiores do que 1000.

    Solução: versão 1 - versão 2

  4. Escreva um programa que ajudará alunos a aprender a multiplicar. Use a função rand para produzir dois inteiros positivos de um dígito (um algarismo). O programa deve, então imprimir uma pergunta do tipo: Quanto é 6 vezes 7? O aluno deve digitar a resposta. Seu programa deve examinar a resposta do aluno. Se ela estiver correta, o programa deve imprimir Muito bem! e fazer outra pergunta de multiplicação. Se a resposta estiver errada, o programa deve imprimir: Nao. Tente novamente, por favor. e então deixar que o aluno fique tentando acertar a mesma pergunta até que ele consiga.

    Solução

  5. Modifique o programa do exercício anterior de forma que sejam impressos vários comentários para cada resposta correta e incorreta como se segue:
    Comentarios para uma resposta correta:
    Muito bem!
    Excelente!
    Bom trabalho!
    Certo. Continue assim!
    Comentarios para uma resposta incorreta:
    Nao. Tente novamente, por favor.
    Errado. Tente mais uma vez.
    Nao desista!
    Nao. Continue tentando.

    Use o gerador de números aleatórios (a funcao rand( )) para escolher um número de 1 a 4 para selecionar o comentário apropriado para cada resposta. Use uma estrutura switch com instruções printf para imprimir as respostas.

    Solução


Por © Sidney Batista Filho - 15/04/2004