Sunteți pe pagina 1din 4

Lista 1: Exerccios de reviso Computao 2

1) Faa um programa que leia uma palavra e diga se palndroma. Uma palavra palndroma se idntica quando lida de trs para diante. Por exemplo, "reler" um palndromo. 2) Faa um programa que leia duas palavras e responda se so palndromas mtuas. Uma palavra palindroma de outra se igual a esta escrita de trs para frente. Por exemplo, "roma" e "amor" so palndromas mtuas. 3) Faa um programa para verificar se uma frase palndroma de si prpria. Ex: a frase "SOCORRAM ME SUBI NO ONIBUS EM MARROCOS" palndroma de si prpria. 4) Faa um programa para imprimir: 1 1 2 1 2 3 ... 1 2 3 ... n para um n informado pelo usurio. Use uma funo que receba um valor n inteiro imprima at a n-sima linha. 5) Escreva um programa que chame uma funo maiorFreq(txt), que retorna uma tupla da forma (c, f ) onde c o caracter alfabtico mais frequente na string txt e f sua frequencia. Caracteres maisculos e minsculos so considerados equivalentes e caracteres acentuados ou no alfabticos no devem ser considerados. Por exemplo, maiorFreq ("Em terra de cego, quem tem um olho e caolho") retorna (e, 7).

6) Escreva um programa que encontre os dois maiores nmeros de uma lista. Voc pode usar o valor 0 para indicar o fim da lista de entrada. Assim, uma simples execuo do programa poderia se parecer com: Esse programa determina os dois maiores nmeros em uma lista de nmeros. Entre com um valor por linha, usando um 0 para sinalizar o fim da lista. Digite um nmero: 17 Digite um nmero: 42 Digite um nmero: 11 Digite um nmero: 19 Digite um nmero: 35 Digite um nmero: 0 O maior valor 42. O segundo maior 35. Obs: Se o usurio entrar com somente um valor antes do 0, o programa deve mostrar esse valor como sendo o maior e o menor nmero. Todos os nmeros digitados pelo usurio so inteiros positivos. Se o usurio entrar com o valor 0 na primeira linha de entrada, ento nenhum valor ter sido fornecido e seu programa deve apresentar uma mensagem ao usurio nesse sentido. Se o maior valor aparecer duas ou mais vezes na sequencia, esse valor deve ser listado como o maior valor e como o segundo maior valor. 7) Crie um mtodo que retorna True se o nmero fornecido um nmero de ostentao, e False em caso contrrio. Um nmero de ostentao um nmero positivo igual ou aproximadamente igual ao produto da soma dos seus dgitos pelo produto de seus dgitos (por aproximadamente iguais, queremos dizer que o nmero original e o produto construdo no diferem por mais de 10 unidades). Nmeros negativos e o zero nunca so nmeros de ostentao. Exemplo: O nmero 135 um nmero de ostentao, porque 135 igual a
(1 + 3 + 5)(1 * 3 * 5) = 9 * 15 = 135

O nmero 8633 tambm um nmero de ostentao, porque


(8 + 6 + 3 + 3)(8 * 6 * 3 * 3) = 20 * 432 = 8640

e 8640 somente 7 unidades maior do que o nmero original 8633. Crie o mtodo ehNumeroDeOstentacao(n) que recebe como parmetro um nmero inteiro (positivo ou negativo) e retorna True se e somente se o nmero fornecido um nmero de ostentao.

8) Considere o problema expresso pelo seguinte algoritmo: - tome um nmero inteiro positivo e chame-o de n - se n par, divide n por dois - se n mpar, multiplica n por trs e soma um ao resultado - continua esse processo at que n seja igual a um O exemplo a seguir mostra o algoritmo em execuo comeando com n = 15
>>> Entre um nmero: 15 15 impar, ento fao 46 par, ento pego a 23 impar, ento fao 70 par, ento pego a 35 impar, ento fao 106 par, ento pego a 53 impar, ento fao 160 par, ento pego a 80 par, ento pego a 40 par, ento pego a 20 par, ento pego a 10 par, ento pego a 5 impar, ento fao 16 par, ento pego a 8 par, ento pego a 4 par, ento pego a 2 par, ento pego a >>>

n = 3n + metade: n = 3n + metade: n = 3n + metade: n = 3n + metade: metade: metade: metade: metade: n = 3n + metade: metade: metade: metade:

1: 1: 1: 1:

1:

46 23 70 35 106 53 160 80 40 20 10 5 16 8 4 2 1

Como voc pode ver no exemplo, os nmeros aumentam e diminuem, mas, no final pelo menos para todos os nmeros que j foram testados o algoritmo converge para 1. Sua tarefa. Escreva um programa que leia um nmero fornecido pelo usurio e mostre a seqncia de valores gerada pelo algoritmo para esse nmero. O programa deve imprimir ainda o nmero de passos necessrios para a convergncia. Por exemplo, seu programa deveria ser capaz de produzir a seqncia mostrada a seguir:

>>> Entre um nmero: 17 17 impar, ento fao n = 3n + 1: 52 52 par, ento pego a metade: 26 26 par, ento pego a metade: 13 13 impar, ento fao n = 3n + 1: 40 40 par, ento pego a metade: 20 20 par, ento pego a metade: 10 10 par, ento pego a metade: 5 5 impar, ento fao n = 3n + 1: 16 16 par, ento pego a metade: 8 8 par, ento pego a metade: 4 4 par, ento pego a metade: 2 2 par, ento pego a metade: 1 O processo leva 12 passos para convergir >>>

S-ar putea să vă placă și