Estruturas iterativas
-
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!
-
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:
$$F_{i} = F_{i-1} + F_{i-2} \mbox{ e } F_1, F_2 = 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.
-
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 $V\,\mbox{cm}^3$. Faça um programa que imprima todas as dimensões inteiras em centímetros possíveis para essa caixa.
-
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.
-
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".
-
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.
-
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 $a^b$.
-
Séries:
a) Faça um programa que lê um número n e que compute e imprima o valor
$$ \sum_{i=1}^n i. $$
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
$$ \sum_{i=1}^j i $$
para $j$ de 1 até $n$. Você usaria uma fórmula fechada para imprimir cada elemento da série?
-
Faça um programa que lê um número n e imprima os valores entre 2 e n, que são divisores de n.
-
No exemplo dos números primos visto em aula, não precisamos testar todos os números entre $2, \dots, (n−1)$, 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,\dots, \sqrt{n}$. Por quê?
-
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.
-
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
-
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}')
-
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
-
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$ é $X_1 = \frac{Y}{2}$
b) as sucessivas aproximações serão $X_{n+1} = \frac{X^2_n + Y}{2 X_n}$.
-
Faça um algoritmo para calcular e escrever o fatorial de um determinado número lido.
-
A conversão de graus Farenheit para centígrados é obtida por:
$C= \frac{5}{9} (F – 32)$
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.
-
Considere o programa para determinar se uma sequência de n números digitados pelo usuário está ordenada ou não.
-
Múltiplas sequências:
-
Faça um algoritmo que calcule e escreva o valor de S:
$$ S= \frac{1}{1} + \frac{3}{2} + \frac{5}{3} + \frac{7}{4} + \dots + \frac{99}{50} $$
-
Faça um algoritmo que calcule e escreva o valor de S:
$$ S= \frac{2^1}{50} + \frac{2^2}{49} + \frac{2^3}{48} + \frac{2^4}{47} + \dots + \frac{2^{50}}{1} $$
-
Faça um algoritmo que calcule o valor de S:
$$ S= \frac{1}{1} - \frac{2}{4} + \frac{3}{9} - \frac{4}{16} + \dots - \frac{10}{100} $$
-
-
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.
-
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.
-
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
-
Escreva um programa que leia um número inteiro n e escreva uma figura similar à seguinte, mas com n linhas.
...*......*... ..***....***.. .*****..*****. **************
-
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