2ª lista de exercicios

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 Inverno 2013-2014 (Outubro 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 o 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). Use o
critério de definir e testar um método de cada vez até concluir todos.
7. 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
8. 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
9. 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
10. 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
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.
public class Lista2Exer12PinheiroNatal{
/**
Definir todos os métodos chamados em main. Poderá caso
considere necessário definir outros métodos que
ajudam à resolução.
*/
public static void main( String[] args ){
int alt = ler("Altura do triangulo entre[3,7] ");
fazTriangulo(alt);
fazTriangulo(alt);
fazTriangulo(alt);
FazPe(alt, 5);
}
*
***
*****
*******
*********
*
***
*****
*******
*********
*
***
*****
*******
*********
*****
*****
*****
*****
*****
Exemplo: altura=5 e base=altura*2-1
}
12. Elabore um programa que gera uma tabela dos 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
59 61
…….
5
67
7
71
11
73
13
79
17
83
19
89
23 29 31 37 41 43 47 53
97 101 103 107 109 113 127 131
Download