Este documento apresenta 13 exercícios de programação em Java sobre diferentes tópicos como: impressão de mensagens, entrada de dados do usuário, cálculo de volumes, raízes de equações, conversão de segundos para horas/minutos/segundos e validação de números pares/ímpares e anos bissextos. Os exercícios variam em complexidade e abordam diferentes estruturas condicionais e de repetição da linguagem Java.
Direitos autorais:
Attribution Non-Commercial (BY-NC)
Formatos disponíveis
Baixe no formato PDF, TXT ou leia online no Scribd
Este documento apresenta 13 exercícios de programação em Java sobre diferentes tópicos como: impressão de mensagens, entrada de dados do usuário, cálculo de volumes, raízes de equações, conversão de segundos para horas/minutos/segundos e validação de números pares/ímpares e anos bissextos. Os exercícios variam em complexidade e abordam diferentes estruturas condicionais e de repetição da linguagem Java.
Este documento apresenta 13 exercícios de programação em Java sobre diferentes tópicos como: impressão de mensagens, entrada de dados do usuário, cálculo de volumes, raízes de equações, conversão de segundos para horas/minutos/segundos e validação de números pares/ímpares e anos bissextos. Os exercícios variam em complexidade e abordam diferentes estruturas condicionais e de repetição da linguagem Java.
Direitos autorais:
Attribution Non-Commercial (BY-NC)
Formatos disponíveis
Baixe no formato PDF, TXT ou leia online no Scribd
Este documento apresenta 13 exercícios de programação em Java sobre diferentes tópicos como: impressão de mensagens, entrada de dados do usuário, cálculo de volumes, raízes de equações, conversão de segundos para horas/minutos/segundos e validação de números pares/ímpares e anos bissextos. Os exercícios variam em complexidade e abordam diferentes estruturas condicionais e de repetição da linguagem Java.
Direitos autorais:
Attribution Non-Commercial (BY-NC)
Formatos disponíveis
Baixe no formato PDF, TXT ou leia online no Scribd
Fazer download em pdf ou txt
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; ]
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).