Estruturas iterativas

Estruturas iterativas

  1. Uma pergunta fundamental é um expressão aritmética com dois operandos inteiros não negativos, cujas operações permitidas são soma (+), subtração(-), multiplicação (*) e divisão (/) e que cujo resultado é 42. Escreva um programa que só termine quando o usuário digitar uma pergunta fundamental (um operando, um operador aritmético e outro operando).

    Exemplo de execução:

    Digite uma pergunta fundamental: 2 + 2
    Essa não é uma pergunta fundamental, tente de novo: 1 * 44
    Essa não é uma pergunta fundamental, tente de novo: 0 - 42
    Essa não é uma pergunta fundamental, tente de novo: 84 / 2
    Obrigado!
    
  2. Coelhos:

    a) Um homem quer começar a criar coelhos e quer saber quantos coelhos ele terá depois de n meses. Suponha que no primeiro mês ele compra uma parelha de coelhos jovens, que as parelhas amadurecem e reproduzem-se apenas após o segundo mês de vida sem problemas de cruzamento consanguíneo e em todos os meses. Também supunha que cada parelha fértil dá a luz a uma nova parelha e que os coelhos nunca morrem.

    Assim, no primeiro mês ele terá uma parelha, no segundo ainda 1, no terceiro 2, no quarto 3 e assim por diante. Essa é a sequência de Fibonacci.

    Escreva um programa que leia um número n e devolva o número de parelhas após n meses.

    b) Essa sequência é chamada de sequência de Fibonacci, que tem a seguinte lei de formação:

    Fi=Fi1+Fi2 e F1,F2=1

    Assim,

    F=(1,1,2,3,5,8,13,21,34,55,...)

    Faça um algoritmo que imprima os 20 primeiros termos da sequência de Fibonacci.

  3. Você possui um vergalhão de ferro de L centímetros e deseja construir a estrutura de uma caixa. A estrutura conterá um pedaço de vergalhão em cada aresta da caixa. Para evitar desperdício, a caixa deverá usar todo o vergalhão, mas ficará em um recinto de volume no máximo Vcm3. Faça um programa que imprima todas as dimensões inteiras em centímetros possíveis para essa caixa.

  4. Relembre que capicuas são números que lidos da esquerda para a direita é o mesmo que quando lido da direita para a esquerda. Exemplos:

    • 10201
    • 2002
    • 565
    • 99
    • 7

    Faça agora um algoritmo que verifique se um número é capicua independente do número de dígitos.

  5. Faça um algoritmo que, para cada número inteiro de 1 até 100, imprima "tic" se esse número for múltiplo de 3 e imprima "toc" se for múltiplo de "5".

  6. Faça um programa que imprima um menu de 4 pratos na tela e uma quinta opção para sair do programa. O programa deve imprimir o prato solicitado. O programa deve terminar quando for escolhido a quinta opção.

  7. Faça um programa que lê dois números inteiros positivos a e b. Utilizando laços, o seu programa deve calcular e imprimir o valor ab.

  8. Séries:

    a) Faça um programa que lê um número n e que compute e imprima o valor

    i=1ni.

    Não use formúlas como a da soma de uma P.A. Depois faça uma versão que usa uma fórmula fechada para a soma acima. Qual versão executa mais rapidamente? Por quê?

    b) Agora, faça um programa que lê um número n e imprima os valores da soma

    i=1ji

    para j de 1 até n. Você usaria uma fórmula fechada para imprimir cada elemento da série?

  9. Faça um programa que lê um número n e imprima os valores entre 2 e n, que são divisores de n.

  10. No exemplo dos números primos visto em aula, não precisamos testar todos os números entre 2,,(n1), para verificar se dividem ou não n. Basta testarmos até n/2. Por quê? Qual o maior divisor possível de n? Na verdade basta testarmos os números 2,,n. Por quê?

  11. Considere um programa para determinar se uma sequência de n números digitados pelo usuário está ordenada ou não. Implemente um programa usando uma variável contadora.

  12. Escreva um programa que lê um número n, e então imprime o menor número primo que é maior ou igual n, e imprime o maior primo que é menor ou igual a n. 1

  13. O que será impresso pelo programa abaixo? Assuma que o valor de D na declaração de x é o valor do último dígito do seu RA. Faça um teste de mesa, isso é, execute usando lápis e papel. Depois verifique sua resposta usando um computador. Finalmente, simule o algoritmo passo a passo utilizando um debugger e configurando breakpoints no início de cada iteração. Se não souber como utilizar um debugger, procure ajuda de um monitor.

    x = 5 + D
    y = 0
    while x != 0:
        y = (x % 2) + 10 * y
        x = x // 2
        print(f'x = {x}, y = {y}')
    while y != 0:
        x = y % 100
        y = y // 10
        print(f'x = {x}, y = {y}')
    
  14. Escreva um programa para ler n números do tipo float e imprimir quantos deles estão nos seguintes intervalos: [0 . . . 25], [26 . . . 50], [51 . . . 75] e [76 . . . 100]. Por exemplo, para n = 10 e os seguintes dez números 2.0, 61.5, −1.0, 0.0, 88.7, 94.5, 55.0, 3.1415, 25.5, 75.0, seu programa deve imprimir:

    Intervalo [0..25]: 3
    Intervalo [26..50]: 0
    Intervalo [51..75]: 3
    Intervalo [76..100]: 2
    
  15. Elabore um programa para calcular a raiz quadrada de um número positivo, usando o roteiro abaixo, baseado no método de aproximações sucessivas de Newton. O algoritmo deverá prover 20 aproximações. Seja Y o número:

    a) a primeira aproximação para a raiz quadrada de Y é X1=Y2

    b) as sucessivas aproximações serão Xn+1=Xn2+Y2Xn.

  16. Faça um algoritmo para calcular e escrever o fatorial de um determinado número lido.

  17. A conversão de graus Farenheit para centígrados é obtida por:

    C=59(F32)

    Faça um algoritmo que calcule e escreva uma tabela de centígrados em função de Farenheit, que variam de 50 a 150 de 1 a 1.

  18. Considere o programa para determinar se uma sequência de n números digitados pelo usuário está ordenada ou não.

  19. Múltiplas sequências:

    1. Faça um algoritmo que calcule e escreva o valor de S:

      S=11+32+53+74++9950

    2. Faça um algoritmo que calcule e escreva o valor de S:

      S=2150+2249+2348+2447++2501

    3. Faça um algoritmo que calcule o valor de S:

      S=1124+39416+10100

  20. Faça um algoritmo que leia o nome de cinco alunos, as notas de português, matemática e física de cada um deles, calcule a média de cada uma das disciplinas e a média geral. Escreva as médias de português, matemática, física e média geral.

  21. Seja S um texto formado por letras maiúsculas, vírgulas, pontos e brancos, terminado pelo caractere ‘#‘ (que somente ocorre no fim do texto). Escreva um programa que leia os caracteres de S, um por vez, e imprima o número de palavras com comprimento menor ou igual a 5.

  22. Escreva um programa que leia um número inteiro positivo n e em seguida imprima n linhas do chamado triângulo de Floyd. O exemplo abaixo mostra o triângulo de Floyd com 6 linhas.

    1
    2 3
    4 5 6
    7 8 9 10
    11 12 13 14 15
    16 17 18 19 20 21
    
  23. Escreva um programa que leia um número inteiro n e escreva uma figura similar à seguinte, mas com n linhas.

    ...*......*...
    ..***....***..
    .*****..*****.
    **************
    
  24. Escreva um programa que imprima uma tabela de números ímpares com m linhas e n colunas (m e n são lidos do teclado) como no seguinte formato de exemplo (para m=3 e n=4).

    01 03 05 07
    15 13 11 09
    17 19 21 23