Você está na página 1de 21

nformtIca - Eng.

CIvIl - ExercicIos em JA7A: Package#1


Pg. 1 de 21
ExerccIos em JAVA: Package#1

Introduo ao ambIente de programao em Java

1. Escreva um programa que mostre uma mensagem de boas vIndas, composta peIo
seu nome, Idade e n. de AIuno.

class DIa [
publIc statIc voId maIn(StrIng[] args) [
System.out.prIntln(Dl !);
System.out.prIntln(D meu nome : + Joo); // |ostra o meu nome
System.out.prIntln(A mInha Idade : + 19 + " anos"); // dade
System.out.prIntln(D meu n. de aluno : + 5678J44J); // N. aluno
]
]



0A0DS, INSTPUDES 0E ATPIUID E SELECD


1. CrIe um programa para mostrar uma mensagem de boas vIndas personaIIzada,
pedIndo o nome ao utIIIzador.

class emvIndo [
publIc statIc voId maIn(StrIng args[]) [
StrIng nome;
System.out.prInt(ntroduza o seu nome: );
nome = Keyboard.readLIne();
System.out.prIntln(Dl, + nome + 8emvIndo ao JA7A !);
]
]


2. ConsIdere o seguInte cdIgo Java:

Int I = 5, j, k;
j = I;
k = j++;
I += 10;

0epoIs da execuo do codIgo, qual ser o valor das varIveIs I, j e k:
SoIuo: i = 14, j = 5, k = 4


nformtIca - Eng. CIvIl - ExercicIos em JA7A: Package#1
Pg. 2 de 21
3. ConsIdere o seguInte programa. uaI o vaIor das varIveIs a, b, c, d no fInaI do
programa! CompIIe-o e confIrme os vaIores.

class Inc0ec [
publIc statIc voId maIn(StrIng args[]) [
Int a = 1;
Int b = 2;
Int c = ++b;
Int d = a++;
c++;
System.out.prIntln(a = + a);
System.out.prIntln(b = + b);
System.out.prIntln(c = + c);
System.out.prIntln(d = + d);
]
]
SoIuo: a = 2, b = 3, c = 4, d = 1

4. 0etermIne o vaIor de cada varIveI depoIs de efectuadas as seguIntes Instrues.
Assuma que cada varIveI InIcIaIIzada com o vaIor InteIro 5.

a) produto *= x++;
b) quocIente /= ++x;

SoIuo:
a) produto = 25, x = 6;
b) quocIente = 0, x = 6;

5. Escreva um programa que caIcuIe o voIume de uma embaIagem, a partIr da sua
aItura, comprImento e Iargura.

class VoIume [
publIc statIc voId maIn(StrIng args[]) [
double altura, comprImento, largura, volume;
System.out.prInt(ntroduza a altura: );
altura = Keyboard.read0ouble();
System.out.prInt(ntroduza o comprImento: );
comprImento = Keyboard.read0ouble();
System.out.prInt(ntroduza a largura: );
largura = Keyboard.read0ouble();
volume = comprImento * altura * largura;
System.out.prIntln(7olume da CaIxa = + volume);
]
]


nformtIca - Eng. CIvIl - ExercicIos em JA7A: Package#1
Pg. J de 21
6. Escreva um programa que caIcuIe o permetro de uma cIrcunferncIa, sendo pedIdo
ao utIIIzador o tamanho do seu raIo ao utIIIzador.

class CIrcunferencIa [
publIc statIc voId maIn(StrIng[] args) [
double pI = J.14;
double raIo, perImetro;
System.out.prInt(ntroduza o valor do raIo: );
raIo = Keyboard.read0ouble();
perImetro = 2 * pI * raIo;
System.out.prIntln(D perImetro : +perImetro);
]
]

7. Escreva um programa que determIne o Inverso de um nmero reaI. Proteja
devIdamente o cdIgo.

class Inverso [
publIc statIc voId maIn(StrIng[] args) [
float num;
System.out.prInt(ntroduza n: );
num = Keyboard.readFloat();
If (num != 0)
System.out.prIntln(D Inverso de + num + : + 1/num);
else
System.out.prIntln(Dperao InvlIda!);
]
]

8. Escreva um programa que IeIa um vaIor InteIro e o cIassIfIque (como posItIvo,
negatIvo ou zero).

class CIassNumero [
publIc statIc voId maIn(StrIng args[]) [
Int num;
System.out.prInt(ntroduza o numero: );
num = Keyboard.readnt();
If(num 0)
System.out.prIntln(D numero negatIvo);
else If (num 0)
System.out.prIntln(D numero posItIvo);
else
System.out.prIntln(D numero zero);

]
]


nformtIca - Eng. CIvIl - ExercicIos em JA7A: Package#1
Pg. 4 de 21
. Escreva um programa que caIcuIe a hIpotenusa de um trInguIo rectnguIo, a partIr
das dImenses dos catetos.

class TrIanguIo [
publIc statIc voId maIn(StrIng args[]) [
double cateto1, cateto2, hIpotenusa;
System.out.prInt(ntroduza a dImenso do Cateto 1: );
cateto1 = Keyboard.read0ouble();
System.out.prInt(ntroduza a dImenso do Cateto 2: );
cateto2 = Keyboard.read0ouble();
hIpotenusa = |ath.sqrt(cateto1 * cateto1 + cateto2 * cateto2);
System.out.prIntln(HIpotenusa = + hIpotenusa);
]
]

10. Escreva um programa para caIcuIar as duas razes de uma equao de segundo grau,
sendo dados os vaIores dos coefIcIentes a, b e c.

class SegundoCrau [
publIc statIc voId maIn(StrIng args[]) [
Int a, b, c;
double raIz1, raIz2, det;
System.out.prInt(ntroduza o valor de a: );
a = Keyboard.readnt();
System.out.prInt(ntroduza o valor de b: );
b = Keyboard.readnt();
System.out.prInt(ntroduza o valor de c: );
c = Keyboard.readnt();
det = b*b 4*a*c;
If (det =0) [
raIz1 = (b + |ath.sqrt(det)) / (2*a);
raIz2 = (b |ath.sqrt(det)) / (2*a);
System.out.prIntln(FaIz1 = + raIz1);
System.out.prIntln(FaIz2 = + raIz2);
]
else
System.out.prIntln(A equao no tem raizes reaIs!);
]
]

11. Escreva um programa que permIta converter um nmero de segundos (fornecIdo
peIo utIIIzador) no nmero equIvaIente de horas, mInutos e segundos.

publIc class Converte_segundos [
publIc statIc voId maIn(strIng args[]) [
Int totalSegs, horas, mInutos, segundos, segs;
//L o numero de segundos
System.out.prInt(Numero total de segundos: ");
totalSegs = Keyboard.readnt();
//Calcula o numero de horas(dIvIso InteIra por J600)
//Uma hora tem J600 segundos
nformtIca - Eng. CIvIl - ExercicIos em JA7A: Package#1
Pg. 5 de 21
horas = totalSegs / J600;
//Calcula o numero de segundos que sobram
segs = totalSegs J600;
//Calcula o numero de mInutos que exIstem nesses segundos
mInutos = segs / 60;
//Calcula o numero de segundos que sobram
//(resto da dIvIso anterIor)
segundos = segs 60;
System.out.prIntln(totalSegs + segundos correspondem a + horas + hora(s) +
mInutos + mInuto(s) e + segundos + segundo(s));
]
]


12. Escreva um programa que determIne se um nmero, fornecIdo peIo utIIIzador,
par ou mpar.

class ParouImpar [
publIc statIc voId maIn(StrIng args[]) [
Int num;
System.out.prInt(Qual o numero:);
num = Keyboard.readnt();
If (num 2 == 0) [
System.out.prIntln( D numero +num+ par);
] else [
System.out.prIntln( D numero + num + impar);
]
]
]

13. Escreva um programa que determIne se um determInado ano IntroduzIdo peIo
utIIIzador bIssexto. No se esquea que so bIssextos os anos mItIpIos de 4 que
no so mItIpIos de 100, e aInda os anos mItIpIos de 400. Por exempIo, os anos
16 e 2000 so bIssextos, enquanto que os anos 18 e 100 so comuns.

class Issexto [
publIc statIc voId maIn(StrIng args[]) [
Int ano;
System.out.prInt(Qual o ano: );
ano = Keyboard.readnt();

If (((ano 4 ==0) EE (ano 100 != 0)) (ano 400==0))
System.out.prIntln( D ano +ano+ bIssexto);
else
System.out.prIntln( D ano +ano+ comum);
]
]


nformtIca - Eng. CIvIl - ExercicIos em JA7A: Package#1
Pg. 6 de 21

CDNT. INSTPUDES 0E ATPIUID E SELECD


1) Escreva um programa que assocIe um vaIor quaIItatIvo a uma nota quantatIva. (1=hau,
2=hedocre, 3=SufIcIente, 4=om, 5=ExceIente).
class Notas [
publIc statIc voId maIn(StrIng[] args) [
Int nota;
System.out.prInt(Qual a nota: );
nota = Keyboard.readnt();
swItch (nota) [
case 1: System.out.prIntln(|au);
break;
case 2: System.out.prIntln(|ediocre );
break;
case J: System.out.prIntln(SufIcIente );
break;
case 4:System.out.prIntln(8om );
break;
case 5:System.out.prIntln(Excelente );
break;
default: System.out.prIntln(Nota InvlIda!);
]
]
]

2) Escreva um programa que IeIa 2 ns InteIros e apresente a sua soma se ambos forem
pares, o seu produto se ambos forem mpares ou o nmero mpar se um deIes for par e
o outro mpar.
class ParesImpares [
publIc statIc voId maIn(StrIng[] args) [
Int num1, num2;
System.out.prInt(1 N: );
num1 = Keyboard.readnt();
System.out.prInt(2 N: );
num2 = Keyboard.readnt();
If (num12==0)
If (num22==0)
System.out.prIntln(Ambos so pares. Fesultado: + (num1 + num2));
else
System.out.prIntln(1 par, 2 impar. Fesultado: + num2);
else
If (num22!=0)
System.out.prIntln(Ambos so impares. Fesultado: + num1*num2);
else
System.out.prIntln(1 impar, 2 par. Fesultado: + num1);
]
]

nformtIca - Eng. CIvIl - ExercicIos em JA7A: Package#1
Pg. 7 de 21
3) Escreva um programa que gere um n aIeatrIo, o apresente e cIassIfIque como par ou
mpar.
class AIeatorIo [
publIc statIc voId maIn(StrIng[] args) [
double aleat;
Int num;
aleat = |ath.random()*10;
num = (Int) aleat;
If (num 2 ==0)
System.out.prIntln(SaIu um n par: + num);
else
System.out.prIntln(SaIu um n impar: + num);
]
]

4) Escreva um programa que caIcuIa o mxImo, o mnImo, a soma e a mdIa de um
conjunto de vaIores InteIros. D n de vaIores a IntroduzIr deve ser tambm pedIdo ao
utIIIzador.

class hax_mIn [
publIc statIc voId maIn(StrIng[] args) [
Int n, x, maxImo=0, mInImo=0, soma=0;
System.out.prInt(Quantos valores so: );
n = Keyboard.readnt();
for (Int I = 1; I = n; I++)
[
System.out.prInt(I + : );
x = Keyboard.readnt();
soma += x;
If (I == 1 x maxImo)
maxImo = x;
If (I == 1 x mInImo)
mInImo = x;
]

If (n 0) [
System.out.prIntln(|xImo: + maxImo);
System.out.prIntln(|inImo: + mInImo);
System.out.prIntln(Soma: + soma);
System.out.prIntln(|dIa: + soma/n);
]
]
]






nformtIca - Eng. CIvIl - ExercicIos em JA7A: Package#1
Pg. 8 de 21
5) Escreva um programa que, dados os comprImentos dos Iados de um trInguIo,
determIne se esse trInguIo equIItero, IssceIes ou escaIeno.

class TrIanguIos [
publIc statIc voId maIn(StrIng[] args) [
double l1, l2, lJ;
System.out.prInt(ntroduza o lado1: );
l1 = Keyboard.read0ouble();
System.out.prInt(ntroduza o lado2: );
l2 = Keyboard.read0ouble();
System.out.prInt(ntroduza o ladoJ: );
lJ = Keyboard.read0ouble();
If (l1 == l2)
If (l2 == lJ)
System.out.prIntln(D TrIngulo EquIltero);
else
System.out.prIntln(D TrIngulo sosceles);
else
If (l1 == lJ)
System.out.prIntln(D TrIngulo sosceles);
else
If (l2 == lJ)
System.out.prIntln(D TrIngulo sosceles);
else
System.out.prIntln(D TrIngulo Escaleno);

]
]

6) Escreva um programa que IeIa um n. correspondente a um ms do ano e devoIva o n.
de dIas desse ms.
class 0Ias_mes1 [
publIc statIc voId maIn(StrIng args[]) [
Int mes, dIas_mes;
System.out.prInt(ntroduza o ms (112): );
mes = Keyboard.readnt();
If (mes = 1 EE mes = 12) [
swItch (mes) [
case 1: dIas_mes = J1;
break;
case 2: dIas_mes = 28;
break;
case J: dIas_mes = J1;
break;
case 4: dIas_mes = J0;
break;
case 5: dIas_mes = J1;
break;
case 6: dIas_mes = J0;
break;
case 7: dIas_mes = J1;
break;
nformtIca - Eng. CIvIl - ExercicIos em JA7A: Package#1
Pg. 9 de 21
case 8: dIas_mes = J1;
break;
case 9: dIas_mes = J0;
break;
case 10: dIas_mes = J1;
break;
case 11: dIas_mes = J0;
break;
case 12: dIas_mes = J1;
break;
default: dIas_mes = 0;
]
System.out.prIntln(Esse ms tem + dIas_mes + dIas.);
]
else
System.out.prIntln(|s InvlIdo!);
]
]


7) Escreva um programa que apresente a estao do ano de um determInado ms (pedIdo
ao utIIIzador). CrIe, aIternatIvamente, uma soIuo usando seIeco mItIpIa.

class Estacaohes [
publIc statIc voId maIn(StrIng args[]) [
Int mes;
System.out.prInt(ntroduza o ms: );
mes = Keyboard.readnt();
StrIng estacao;
If (mes == 12 mes == 1 mes == 2) [
estacao = nverno;
] else If (mes == J mes == 4 mes == 5) [
estacao = PrImavera;
] else If (mes == 6 mes == 7 mes == 8) [
estacao = 7ero;
] else If (mes == 9 mes == 10 mes == 11) [
estacao = Dutono;
] else [
estacao = |s desconhecIdo;
]
System.out.prIntln(D ms + mes + est no(a) + estacao + .);
]
]
nformtIca - Eng. CIvIl - ExercicIos em JA7A: Package#1
Pg. 10 de 21
SoIuo aIternatIva (seIeco mItIpIa)

class SwItchEstacacohes [
publIc statIc voId maIn(StrIng args[]) [
Int mes;
System.out.prInt(ntroduza o ms: );
mes = Keyboard.readnt();
StrIng estacao;
swItch (mes) [
case 12:
case 1:
case 2:
estacao = nverno;
break;
case J:
case 4:
case 5:
estacao = PrImavera;
break;
case 6:
case 7:
case 8:
estacao = 7ero;
break;
case 9:
case 10:
case 11:
estacao = Dutono;
break;
default:
estacao = |s desconhecIdo;
]
System.out.prIntln(D ms + mes + est no(a) + estacao + .);
]
]



8) Escreva um programa para determInar o tIpo de bIIhete que cada vIsItante de um
parque de dIverses deve comprar. D tIpo de bIIhete determInado em funo da
Idade do vIsItante, de acordo com a seguInte tabeIa:











Idade IIhete
nferIor a 6 sento de pagamento
Entre 6 e 12 8Ilhete de crIana
Entre 1J e 65 8Ilhete normal
|aIs de 65 8Ilhete de J dade
nformtIca - Eng. CIvIl - ExercicIos em JA7A: Package#1
Pg. 11 de 21
class IIhete [
publIc statIc voId maIn(StrIng args[]) [
Int Idade;
// L a Idade do vIsItante
System.out.prInt(dade: );
Idade = Keyboard.readnt();
// Ter menos de 6 anos:
If (Idade = 5)
System.out.prIntln(sento de pagamento);
else
// Ter entre 6 e 12 anos :
If (Idade = 12)
System.out.prIntln(8Ilhete de crIana );
else
// Ter entre 12 e 65 anos :
If (Idade = 65)
System.out.prIntln(8Ilhete normal);
else
// Tem maIs do que 65 anos
System.out.prIntln(8Ilhete J Idade);

]
]


) Escreva um programa que IeIa um caracter (Ietra) e o cIassIfIque como consoante ou
vogaI.

class VogaIsConsoantes [
publIc statIc voId maIn(StrIng[] args) [
char c;
System.out.prInt(ntroduza a Letra: );
c = (char) System.In.read();
swItch(c) [
case 'a':
case 'e':
case 'I':
case 'o':
case 'u':
System.out.prIntln(A letra + c + uma vogal);
break;
default:
System.out.prIntln(A letra + c + uma consoante);
]
]
]




nformtIca - Eng. CIvIl - ExercicIos em JA7A: Package#1
Pg. 12 de 21
10) Escreva um programa que pea ao utIIIzador um nmero correspondente a um dIa da
semana e que apresente o nome desse dIa (utIIIzando o comando swItch).

class 0IaSemana [
publIc statIc voId maIn(StrIng[] args) [
Int dIa;
System.out.prInt(ntroduza o numero do dIa da semana: );
dIa = Keyboard.readnt();
swItch(dIa)
[
case 1: System.out.prIntln( 0Ia = 0omIngo);
break;
case 2: System.out.prIntln( 0Ia = SegundafeIra);
break;
case J: System.out.prIntln( 0Ia = TerafeIra);
break;
case 4: System.out.prIntln( 0Ia = QuartafeIra);
break;
case 5: System.out.prIntln( 0Ia = QuIntafeIra);
break;
case 6: System.out.prIntln( 0Ia = SextafeIra);
break;
case 7: System.out.prIntln( 0Ia = Sbado);
break;
default:
System.out.prIntln(0eve dIgItar um numero entre 1 e 7!!! 0Ia InvalIdo!);
]
]
]

11) Escreva um programa que recebe do utIIIzador doIs vaIores InteIros e um operador
arItmtIco (+, - * ou l), determIne o resuItado da operao por eIes defInIda. Proteja
devIdamente o cdIgo.

class Dpera [
publIc statIc voId maIn(StrIng args[]) [
Int num1, num2, resultado;
char op;
// L os operandos e o operador
System.out.prInt(PrImeIro operando: );
num1 = Keyboard.readnt();
System.out.prInt(Segundo operando: );
num2 = Keyboard.readnt();
System.out.prInt(Dperador: );

op = (char) System.In.read();

// Executa a operao em funo do operando fornecIdo
// A expresso do swItch apenas a proprIa varIvel op
swItch (op) [
case '+': resultado = num1 + num2; break;
nformtIca - Eng. CIvIl - ExercicIos em JA7A: Package#1
Pg. 1J de 21
case '': resultado = num1 num2; break;
case '*': resultado = num1 * num2; break;
//No caso da dIvIso necessrIo evItar a dIvIso por zero
case '/':
If (num2 != 0) [
resultado = num1 / num2;
]
break;
]
// Se o resultado for vlIdo, escreveo
If (op != '/' num2 != 0) [
System.out.prInt(num1+op+num2+ = +resultado);
] else [
System.out.prIntln(0IvIso por zero!!);
]
]
]


ExerccIos AdIcIonaIs
Escreva programas para cada um dos seguIntes problemas:
12) 0ados trs numeros InteIros posItIvos:
a) 0etermInar se estes J numeros podem ser os comprImentos dos lados de um trIngulo
rectngulo;
b) 0etermInar a soma dos seus quadrados;
c) 0etermInar o quadrado da sua soma;
d) 0etermInar a sua mdIa arItmtIca.
1J) Ler trs numeros InteIros e determInar o maIor e o menor deles.
14) Calcular o preo de saldo de um artIgo, sabendo que os descontos em funo do preo
actual P so os seguIntes:




15) |odIfIque o programa 0Ias_mes1, por forma a IncluIr a condIo de ano bIssexto na
determInao do n de dIas do ms de FevereIro.


Preo 0esconto
P10000 40
5000 P = 10000 20
2500 P = 5000 10
outros 5
nformtIca - Eng. CIvIl - ExercicIos em JA7A: Package#1
Pg. 14 de 21
INSTPUDES 0E PEPETID

1. Escreva um programa que ImprIma todos os nmeros compreendIdos entre 1 e 100.

class cIcIo1_100 [
publIc statIc voId maIn(StrIng[] args) [
for(Int I = 1; I = 100; I++)
System.out.prIntln(I);
]
]



2. Escreva um programa que some os nmeros de 1 a 10 e mostre o resuItado.

class Somanum [
publIc statIc voId maIn(StrIng[] args) [
Int soma = 0;
for (Int I = 1; I = 10; I++) [
soma += I;
]
System.out.prIntln(Soma = + soma);
]
]

3. Escreva um programa que escreva um quadrado de asterIscos. D tamanho do Iado
defInIdo peIo utIIIzador.

class AsterIscos [
publIc statIc voId maIn(StrIng[] args) [
Int lado;
System.out.prInt(Qual a dImenso do quadrado: );
lado = Keyboard.readnt();
If (lado 0) [
for (Int I = 1; I= lado; I++) [
for (Int j = 1; j =lado; j++)
System.out.prInt(*);
System.out.prIntln();
]
]
else
System.out.prIntln(Por favor, Introduza um valor posItIvo!);
]
]





nformtIca - Eng. CIvIl - ExercicIos em JA7A: Package#1
Pg. 15 de 21
4. Escreva um programa que caIcuIe e apresente o factorIaI de um nmero IntroduzIdo
peIo utIIIzador. Proteja devIdamente o cdIgo.

class FactorIaI [
publIc statIc voId maIn(StrIng[] args) [
Int num,factorIal;
System.out.prInt(Qual o numero: );
num = Keyboard.readnt();
If (num 0) [
factorIal = 1;
for (Int I = num; I 1; I)
factorIal = factorIal*I;
System.out.prInt(D factorIal de + num + e: + factorIal);
]
else
System.out.prIntln(Por favor, Introduza um valor posItIvo);
]
]

5. Escreva um programa que caIcuIe a mdIa de um conjunto de nmeros InteIros
posItIvos fornecIdos peIo utIIIzador. ConsIdere que o conjunto no-vazIo e
termIna quando IntroduzIdo um nmero negatIvo.

publIc class hedIaNumeros [
publIc statIc voId maIn(StrIng args []) [
float medIa;
Int num = 0, soma = 0, conta = 0;
// Fepete enquanto num no for negatIvo
whIle (num = 0) [
// L o proxImo numero, contao e somao se
// for maIor ou Igual que zero
System.out.prInt(ProxImo numero: ");
num = Keyboard.Feadnt();
If (num = 0) [
soma += num;
conta++;
]
// Calcula a mdIa e escreve o resultado
medIa = soma / conta;
System.out.prInt(A mdIa dos numeros +medIa);
]
]








nformtIca - Eng. CIvIl - ExercicIos em JA7A: Package#1
Pg. 16 de 21
6. Escreva um programa que pea ao utIIIzador um n. InteIro posItIvo e escreva todos
os nmeros InteIros entre 1 e esse nmero.

class Todosnumeros [
publIc statIc voId maIn(StrIng[] args) [
Int num = 0;
do [
System.out.prInt(ntroduza o n: );
num = Keyboard.readnt();
If (num = 1)
System.out.prIntln(Por favor, Introduza um valor maIor do que
1!);
] whIle (num =1);
for (Int I = 1; I num; I++) [
System.out.prIntln(I);
]

]
]


7. Escreva um programa que caIcuIe o menor e o maIor de 10 nmeros InteIros
IntroduzIdos peIo utIIIzador.

class haIormenor10 [
publIc statIc voId maIn(StrIng[] args) [
Int num, maIor=0, menor=0;

for (Int I=1;I=10;I++) [
System.out.prInt(ntroduza o + I + n: );
num = Keyboard.readnt();
If (I == 1) [
maIor = num;
menor = num;
]
If (nummenor)
menor=num;
If (nummaIor)
maIor=num;
]
System.out.prIntln(D maIor n IntroduzIdo foI: + maIor);
System.out.prIntln(D menor n IntroduzIdo foI: + menor);
]
]

8. Escreva um programa que, recebendo um quaIquer n. InteIro posItIvo, devoIva a
soma dos seus dgItos. Ex.: se o n. for 1234, o programa dever devoIver 10
(1+2+3+4).

nformtIca - Eng. CIvIl - ExercicIos em JA7A: Package#1
Pg. 17 de 21

class Soma0IgItos [
publIc statIc voId maIn(StrIng args []) [
double num;
Int dIgIto, soma;
// L o numero
System.out.prInt(Numero maIor que zero: );
num = Keyboard.read0ouble();
// Fepete enquanto num for posItIvo
soma = 0;
whIle (num 0) [
//Separa o algarIsmo das unIdades e somao
dIgIto = (Int) num 10;
num = num / 10;
soma = soma + dIgIto;
]
System.out.prInt(A soma dos digItos de +num+ +soma);
]
]

. Escreva um programa que apresente os quadrados das potncIas InteIras de base 2
InferIores a 1024, por ordem decrescente.
class potencIas [
publIc statIc voId maIn(StrIng[] args) [
Int I;
// Em cada Iterao, I passa a metade
for (I = 1024;I =1; I = I/2)
System.out.prIntln(I + : + I*I);
]
]


10. Escreva um programa que caIcuIe e ImprIma os nmeros prImos compreendIdos
entre 1 e um IImIte mxImo pedIdo ao utIIIzador.

class NumerosPrImos [
publIc statIc voId maIn(StrIng[] args) [
Int max;
System.out.prInt(Qual o valor lImIte:);
max = Keyboard.readnt();
for(Int I = 1; I max; I++) [
boolean prImo = true;
for(Int j = 2; j I; j++)
If(I j == 0) prImo = false;
If(prImo)
System.out.prIntln(I);
]
]
]


nformtIca - Eng. CIvIl - ExercicIos em JA7A: Package#1
Pg. 18 de 21
11. Escreva um programa para determInar o menor mItIpIo comum entre doIs ns
InteIros posItIvos, fornecIdos peIo utIIIzador.

class hmc [
publIc statIc voId maIn(StrIng[] args) [
Int n1,n2,m,y;
n1 = 0; n2 =0;
System.out.prInt(ntroduza o prImeIro n: );
n1 = Keyboard.readnt();
System.out.prInt(ntroduza o segundo n: );
n2 = Keyboard.readnt();
m = n1;
y = 0;
whIle (y==0) [
If (m n2==0)
y = 1;
else m = m + n1;
]
System.out.prIntln(D m.m.c entre + n1 + e + n2 + : + m);
]
]

12. Escreva um programa que, dado um ano (entre 100 e 2020) e o dIa da prImeIra
sexta-feIra desse ano, apresente todas as sextas-feIras 13 desse ano.
Ex:
Ano: 12
PrImeIra sexta-feIra: 5
PesuItados:
13 l l 12
13 l 12 l 12
Nota: as IeIturas de dados efectuadas devero ser vaIIdadas convenIentemente.
class SextaFeIra13 [
publIc statIc voId maIn (StrIng args[]) [
Int prImSexta, d, m, a, nd = 0;
//Ler prImeIra sexta do ano e o ano

do [
System.out.prInt(Qual o dIa da prImeIra sextafeIra do ano: );
prImSexta = Keyboard.readnt();
]whIle (prImSexta7) ;
do [
System.out.prInt(Qual o ano: );
a = Keyboard.readnt();
]whIle (a 1900 a 2020) ;
//Procurar sextasfeIras 1J
d = prImSexta;
for (m=1; m=12; m++) [
//obter nr. de dIas do ms
nformtIca - Eng. CIvIl - ExercicIos em JA7A: Package#1
Pg. 19 de 21
swItch(m) [
case 1:
case J:
case 5:
case 7:
case 8:
case 10:
case 12:
nd = J1;
break;
case 4:
case 6:
case 9:
case 11:
nd = J0;
break;
case 2:
If (a4 == 0)
nd = 29;
else
nd = 28;
]
whIle(d = nd) [
If (d == 1J)
System.out.prIntln(d + / + m + / + a);
d += 7;
]
d = d nd;
]
]
]

13. Escreva um programa que caIcuIe e apresente todos os dIvIsores de um nmero.

class 0IvIsores [
publIc statIc voId maIn(StrIng[] args) [
Int n, I;
System.out.prInt(ntroduz um numero: );
n = Keyboard.readnt();
System.out.prIntln(Ds dIvIsores de + n + so );
for( I = 1; I = n; I++ )
If( n I == 0 )
System.out.prIntln(I);
]
]





nformtIca - Eng. CIvIl - ExercicIos em JA7A: Package#1
Pg. 20 de 21
14. Escreva um programa capaz de escrever no ecran uma pIrmIde de nmeros com
um nmero de IInhas entre 1 e , fornecIdo peIo utIIIIzador. Por exempIo, se o
nmero de IInhas for 4, o resuItado pretendIdo :

1
121
12321
1234321

class PIramIde [
publIc statIc voId maIn(StrIng args []) [
Int num_lInhas, nlInha, I;
// L o numero de lInhas, verIfIcando se est entre 1 e 9

do [
System.out.prInt(Numero de lInhas (1 a 9): );
num_lInhas = Keyboard.readnt();

If (num_lInhas 1 num_lInhas 9)
System.out.prIntln(Numero Incorrecto!!!);
] whIle (num_lInhas 1 num_lInhas 9);

for (nlInha = 1; nlInha = num_lInhas; nlInha++) [
// Espaos
for (I = 1; I = num_lInhas nlInha; I++) [
System.out.prInt( );
]
// Parte crescente
for (I = 1; I = nlInha; I++) [
System.out.prInt(I);
]
// Parte decrescente
for (I = nlInha 1; I = 1; I) [
System.out.prInt(I);
]
// |uda de lInha
System.out.prIntln();
]
]
]







nformtIca - Eng. CIvIl - ExercicIos em JA7A: Package#1
Pg. 21 de 21
ExerccIos AdIcIonaIs
Escreva programas para cada um dos seguIntes problemas:
15. 0etermInar os multIplos de 5, no multIplos de J, entre 100 e 10000.
16. Ler um n InteIro e calcular a soma dos seus digItos que sejam dIvIsiveIs por 2
Ex.: 2J554 6
17. Um numero InteIro no negatIvo dIzse perfeIto se Igual soma dos seus dIvIsores
proprIos. Por exemplo, 6=2+J+1. 0ado n, determIne todos os numeros perfeItos
InferIores a n.
18. A srIe de FIbonnacI dada por:
F(0) = 0
F(1) = 1
F(n) = F(n2) + F(n1) (n=2)
Escreva um programa para apresentar os prImeIros 20 termos desta srIe.
19. 0etermInar o mxImo dIvIsor comum de doIs numeros InteIros n e m, fornecIdos pelo
utIlIzador.
20. Escrever um losango de asterIscos. D n de asterIscos da lInha central deste losango
deve ser pedIdo ao utIlIzador
21. Um hotel concebeu uma forma orIgInal de cobrar aos seus clIentes. A 1 noIte custa
506, a segunda 256 (506/2), a nsIma custa 506/n. Calcule a cobrana a efectuar a um
clIente que fIque n noItes no hotel (preo a pagar por noIte e o total).