2ª Lista de exercícios de PG

Propaganda
Instituto Superior de Engenharia de Lisboa
Licenciatura em Engenharia de Electrónica e Telecomunicações e de Computadores
2ª Lista de exercícios de PROGRAMAÇÃO
Semestre de Verão 2012-2013 (Março 2013)
1. Elabore um programa que lê do teclado um valor inteiro longo n e calcule:
1.1 Quantos algarismos têm.
1.2 Qual é o maior algarismo e em que posição significativa se encontra (a unidade é posição 0, a
dezenas é posição 1 e assim sucessivamente ….).
1.3 Somar todos os algarismos entre si.
1.4 Inverter os algarismos do número, ou seja, a unidade troca com o algarismo mais significativo e
assim sucessivamente; (exemplo: 7523 para 3257).
1.5 Formar dois novos números com os algarismos do nº lido em que o primeiro só contém os
algarismos pares e o segundo só contém os algarismos ímpares.
import java.util.Scanner; public class Lista2Exer01AnalizarNumero{ public static void main( String[] args ){ Scanner teclado = new Scanner(System.in); System.out.println("digite o valor inteiro longo "); long n = teclado.nextLong(); /* Completar com código java tal que concretize o exercício proposto */ } } 2. Elabore um programa que leia do standard input dois valores n1, n2 positivos e calcula se esses
dois números lidos são ”amigos”, se o forem então escreva essa mensagem em standard output ou
”não amigos” em caso contrário. Diz-se que dois números são amigos se cada um deles é igual à
soma dos divisores próprios do outro. Os divisores próprios de um número positivo n são todos os
divisores inteiros positivos excepto o próprio n. Um exemplo de números amigos são os números
284 e o 220, uma vez que a soma dos divisores de 220 dá 284 e vice-versa, como se mostra em:
Divisores de 220-> 1 + 2 + 4 + 5 + 10 + 11 + 20 + 22 + 44 + 55 + 110 = 284
Divisores de 284-> 1 + 2 + 4 + 71 + 142 = 220
3. Elabore um programa que leia do standard input um valor n positivo maior que 2 que faz a
geração em standard output dos n valores da sequência dos números de Tribonnaci. Um número
Tribonnaci de uma dada sequência é dado pela soma dos 3 anteriores, ou seja, o termo t(i) dessa
sequência é dado por t(i) = t(i-1) + t(i-2) + t(i-3), sendo os 3 primeiros termos da sequência prédefinidos com 0, 2, 2. Se n=3 o output será 0, 2, 2, se n=6 o ouput será: 0, 2, 2, 4, 8, 14.
4. Elabore um programa que leia do standard input dois valores n1,n2 inteiros e calcula a
multiplicação pelo processo da ”soma russa”. Este processo está descrito em:
http://www.eb23-guifoes.rcts.pt/NetMate/sitio/curiosidades.htm#Multiplicação%20russa
5. Elabore o programa que lê do teclado sequência de números inteiros terminada por zero e calcule:
5.1 Quantos números foram lidos;
5.2 Total de mudanças de sinal de número positivo para número negativo;
5.3 Quantos números têm a maior subsequência crescente;
5.4 Qual é o maior e em que posição se encontra.
6. Elabore um método que recebe em parâmetro dois inteiros e calcula e devolve o máximo divisor
comum entre esses dois números.
Ver detalhes em: http://pt.wikipedia.org/wiki/M%C3%A1ximo_divisor_comum
7. Elabore um método que recebe em parâmetro dois inteiros e calcula e devolve o menor múltiplo
comum entre esses dois números.
Ver detalhes em: http://pt.wikipedia.org/wiki/M%C3%ADnimo_m%C3%BAltiplo_comum
8. Elabore um método que recebe em parâmetro um inteiro e verifica se é ou não número primo,
devolvendo true ou false respectivamente.
Ver detalhes em: http://pt.wikipedia.org/wiki/N%C3%BAmero_primo
9. Elabore um método que recebe em parâmetro um inteiro e verifica se é ou não número capicua,
devolvendo true ou false respectivamente.
Ver detalhes em: http://pt.wikipedia.org/wiki/Capicua
10. Elabore um programa onde deve definir os métodos referidos em 7. 8. 9. 10. para que os possa
chamar e testar dentro da função main. Escreva os resultados no ecrã (console output).
11. Elabore um programa que gera o “Pinheiro de Natal” (fig.1). O mesmo programa deve ser
estruturado em termos de métodos. Vamos dar uma ajuda, escrevendo o código java do main.
import java.util.Scanner; public class Lista2Exer12PinheiroNatal{ /** Definir todos os métodos chamados em main. Poderá caso ache Necessário definir outros métodos que ajudam à resolução */ public static void main( String[] args ){ Scanner teclado = new Scanner(System.in); int alt = ler(teclado, “Altura do triangulo entre[3,7]”); fazTriangulo(alt); fazTriangulo(alt); fazTriangulo(alt); FazPe(alt, 5); } } * *** ***** ******* ********* * *** ***** ******* ********* * *** ***** ******* ********* ***** ***** ***** ***** ***** Neste exemplo a altura é 5 12. Elabore um programa que gera uma tabela com os primeiros 200 número primos, em que deve
colocar 16 em cada linha e todos alinhados à direita em colunas. O programa deve ser estruturado
em termos de métodos.
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 ……. 
Download