Escolar Documentos
Profissional Documentos
Cultura Documentos
Universidade de Braslia
Computao Bsica 2004.1
Professor Jorge H. C. Fernandes
Lista de Exerccios 3 Programao Bsica em Java
Resolva os exerccios abaixo usando a Linguagem Java. Dica: para facilitar a compreenso do
programa utilize comentrios digitando dois sinais de barra (//) numa linha qualquer, o que permite
que o texto at o final da linha seja ignorado pelo compilador. A figura abaixo mostra um exemplo
de um programa em Java que apresenta na sada o produto de dois nmeros recebidos como
entrada..
class Multiplica { // declara classe de nome Multiplica
public static void main(String[] args) { // declara mtodo main
IO.println("Informe o primeiro numero"); // solicita entrada de dados
int a = IO.readInt();
// l numero 1
IO.println("Informe o segundo numero"); // solicita entrada de dados
int b = IO.readInt();
// l numero 2
int produto = a * b;
// calcula produto
IO.println(a+" * "+b+" = "+produto);
}
}
O programa abaixo l uma lista de nmeros inteiros positivos terminada por 1 e imprime o resto
da diviso do maior deles dividido pelo menor deles.
class RestosMenoresMaiores {
public static void main(String[] args) {
int n;
n = IO.readInt();
if (n <= 0) return;
int menor, maior;
menor = n;
maior = n;
while ((n = IO.readInt()) > 0) {
if (n > maior) maior = n;
if (n < menor) menor = n;
}
int resto = maior % menor;
IO.println(resto);
}
}
Exerccio 0 Quadrados.java - Crie um programa que recebe uma lista de pares de nmeros
inteiros positivos, terminada por 1, e, para cada par de nmeros n1 e n2, imprime a potncia de
n1 elevada a n2.
Exemplo:
Entrada // Comentrios
Sada // Comentrios
2 // n1 base
32 // 2 quinta potncia
5 // n2 expoente
225 // 15 ao quadrado
15 // n1 base
2 // n2 expoente
-1 // fim da lista
varincia de uma srie de nmeros igual ao desvio quadrado dos nmeros da srie dividido pela
quantidade de nmeros que a compem, subtrada de um. O desvio padro de uma srie de
valores numricos igual raiz quadrada da varincia da srie. As frmulas abaixo descrevem
matematicamente:
Mdia(v1, v2, ..., vn) = (v1 + v2 + ... + vn)/n
DesvioQuadrado(v1, v2, ..., vn) =
2
2
2
(v1 - Mdia(v1, v2, ..., vn)) + (v2 - Mdia(v1, v2, ..., vn)) + ... + (vn - Mdia(v1, v2, ..., vn))
Varincia(v1, v2, ..., vn) = DesvioQuadrado(v1, v2, ..., vn) / (n-1)
DesvioPadro (v1, v2, ..., vn) = RaizQuadrada (Varincia (v1, v2, ..., vn))
Implemente os mtodos de uma classe chamada Estatistica, conforme o cdigo abaixo, que
responsvel por calcular cada uma das medidas descritas acima (desvio padro, varincia, desvio
quadrado e mdia aritmtica). Cada um dos mtodos recebe a srie de valores atravs de array de
ponto flutuante (float) e ret orna um float contendo a medida adequada. Observao: para calculo
da raiz quadrada utilize o mtodo static float sqrt(float f) da classe Math, que recebe um nmero em
ponto flutuante e retorna a raiz quadrada do nmero recebido. O mtodo main na classe Estatistica
recebe como argumentos de linha de comando uma lista de numerais de ponto flutuante e faz
alguns testes com o uso das funes, como mostrado abaixo.
class Estatistica {
static float desvioPadrao(float[] serie) { return 0f;}
static float variancia(float[] serie) { return 0f;}
static float desvioQuadrado(float[] serie) { return 0f;}
static float mediaAritmetica(float[] serie) { return 0f;}
public static void main(String[] args) {
// converte os valores digitados na linha de comando
float[] serie = new float[args.length];
for (int i = 0; i < args.length; i++) {
serie[i] = Float.parseFloat(args[i]);
}
IO.println("Media["+mediaAritmetica(serie)+"]");
IO.println("Desvio Quadrado["+desvioQuadrado(serie)+"]");
IO.println("Variancia["+variancia(serie)+"]");
IO.println("Desvio Padrao["+desvioPadrao(serie)+"]");
}
}
Exerccio 06 EhPrimo.java. Escreva um programa java que l uma lista de nmeros inteiros
positivos, terminada por 1, e para cada nmero da lista, imprime 0 ou 1, caso o nmero seja ou
no primo.
Exemplos:
Entrada
Sada
1
0
3
1
2
1
4
0
6
0
78
0
5
1
4
0
3
1
21
0
3
1
4
0
56
0
76
0
8
0
9
0
554
0
2
1
-1
1
0
Exerccio 07 NEsimoPrimo.java. Escreva um programa java que l uma lista de nmeros inteiros
positivos, terminada por 1, e para cada nmero n da lista, imprime o n-esimo nmero primo.
NEsimoPrimo pode usar o cdigo da classe EhPrimo se for possvel. Por definio 2 o 1-simo
nmero primo, 3 o 2-simo nmero primo, 5 o 3-simo nmero primo, etc.
Exemplos:
Entrada
Sada
1
2
2
3
3
5
4
7
5
11
6
13
-1
Exerccio 08 DifPrimos.java - Escreva um programa que l uma lista de pares de nmeros
inteiros positivos x e y, menores do que 100, onde x menor que y, e imprima a diferena entre Xsimo e o Y-simo nmeros primos. A lista de nmeros terminada quando o primeiro nmero do
par for1. Por definio 2 o 1-simo nmero primo, 3 o 2-simo nmero primo, 5 o 3-simo
nmero primo, etc. Busque os nmeros primos na faixa de 1 a 1000000. DifPrimos pode usar o
cdigo da classe NEsimoPrimo se for possvel.
Exemplos:
Entrada
Sada
1
3
3
4
2
538
4
0
2
100
1
1
-1
Exerccio 9 ConversorBinarioOctalDecimalHexa.java. Crie um programa que converte a
representao de nmeros entre qualquer base. A sintaxe EntradaSada (E/S) de dados do
programa apresenta o seguinte formato:
ES ::= E[CdBase] E[CdBase] (E[Numeral] S[Numeral])* E[-1].
CdBase ::= b | 0 | d | x
Numero ::= [0-F]*
Os cdigos de bases b, 0, d e x representam, respectivamente as bases binrio, octal,
decimal e hexadecimal.
Exemplo de Execuo onde se deseja converter de binrio para decimal:
Entrada
Sada
b // numerais sero digitados em binrio
0 // 0 binrio convertido para decimal
d // numerais sero impressos em decimal
2 // 10 binrio convertido para decimal
0 // converte
14 // 1100 binrio convertido para decimal
10
127 // 1111111 binrio convertido para decimal
1110
1111111
-1
d // numerais sero digitados em decimal
x // numerais sero impressos em hexadecimal
2
5
15
259
560
-1
D // numerais sero digitados em decimal
B // numerais sero impressos em binrio
2
5
15
259
-1
01
101
1111
110000001