Escolar Documentos
Profissional Documentos
Cultura Documentos
Área: Algoritmos
Linha: Desenvolvimento
Brası́lia - 2017
i
1 Sintaxe Básica do Java
Apresentando várias maneiras de se escrever texto. Email: cnecsistemas2016@gmail.com
• O método print imprime na tela e o cursor permanece exatamente após o último caracetere impresso,
ou seja, qualquer outra coisa q for impressa ou digitada virá imediatamente após (colada) ao text
impresso pelo print.
• O println imprime e dá uma quebra de linha (enter), o cursor ficará posicionado na próxima linha,
tudo q for impresso ou digitado após o println virá na linha imediatamente abaixo do q foi impresso
pelo println.
• O printf (método da versão 5 de java, vale lembrar) é um método que imprime seguindo uma
formatação ditada por uma String. Sendo mais explı́cito: O primeiro parâmetro desse método
deve ser uma String contendo todos os comando de formatação (comandos de escape) para que em
seguida se passa uma lista de argumentos q seguirão a formatação definida no primeiro parâmetro
String passado.
10 }
1 package senac
2
3 /* *
4 *
5 * @author lucas
6 */
7 public class SENAC {
8 public static void main ( String [] args ) {
9 System . out . printf ( " % s \ n % s \ n " , " bem vindo " , " a Asa Sul !!! " ) ;
10 }
11
12 }
1 package senac ;
2 /* *
3 *
1
4 * @author lucas
5 */
6 import java . util . Scanner ;
7
23 }
24 }
Exercicio:
Adeque o código acima para receber valores em ponto flutuante, e somente valores positivos.
1.2 Aritmética
1. Operações de multiplicação, divisão e módulo são aplicadas primeiro. Se uma expressão contiver
várias dessas operações elas serão aplicadas da esquerda para a direita. Os operadores citados
anterioremente tem o mesmo nı́vel de precedência.
3. Para evitar redundância o desenvolvedor pode utilizar parênteses ”(”, ”)”exemplo: (x*y)+ z ou x
* (y+z).
2
1.3 Operadores de Igualdade e Operadores Relacionais
Exemplo:
1 package senac ;
2
3 /* *
4 *
5 * @author lucas
6 */
7 import java . util . Scanner ;
8
3
33 System . out . printf ( " %d >=% d \ n " , num1 , num2 ) ;
34 }
35 }
36 }
Exercı́cio:
Implemente um algoritmo que lê um inteiro, determina e imprime se ele é impar ou par. Dica: utilize o
operador de módulo.
2 Classes e Métodos
Nosso próximo exemplo declara a classe SENAC com um método MostraMensagem que exibe o
nome do curso como parte da mensagem de boas vindas.
1 package senac ;
2
3 /* *
4 *
5 * @author lucas
6 */
7 import java . util . Scanner ;
8
15
22 String nomecurso ;
23
4
O exemplo a seguir apresenta o método setNomeCurso o qual armazena o nome do curso de uma
instituição e o método getNomeCurso obtém o nome do curso. O método MostraMensagem agora não
contém parâmetro, e utiliza o valor obtido pelo método getNomeCurso para mostrar a mensagem.
1 package senac ;
2
3 /* *
4 *
5 * @author lucas
6 */
7 import java . util . Scanner ;
8
31 String nomecurso ;
32
5
2.1.1 Modificadores de Acesso public e private
A maioria das declarações de variável instância é precedida pela palavra-chave private. Como public,
a palavra-chave private é um modificador de acesso. Variáveis ou métodos declarados com private só
são acessı́veis a métodos da classe em que são declarados. Assim, a variável nomeCurso só pode ser
utilizada nos métodos setNomeCurso e getNomeCurso e MostraMensagem da classe UBC.
1 package senac ;
2
3 /* *
4 *
5 * @author lucas
6 */
7 import java . util . Scanner ;
8
11 String nomeCurso ;
12
13 // construtor da classe
14 public SENAC ( String nome ) {
15 nomeCurso = nome ;
16 }
17
6
37 obj . MostraMensagem () ; // lembrar de passar o parametro
38 }
39 }
2.2.1 Observação
Uma diferença importante entre construtores e métodos é que os construtores não podem retornar
valores, portanto não podem especificar um tipo de retorno (nem mesmo void). Normalmente, os cons-
trutores são declarados como public. Caso declare um construtor para a classe, o compilador java não
criará um construtor default para a classe.
1 package ucb ;
2
3 /* *
4 *
5 * @author lucas
6 */
7 import java . util . Scanner ;
8
19 // realizar deposito
20 public void Deposito ( double acrescimo ) {
21 balanco = balanco + acrescimo ;
22 }
23
7
29 public static void main ( String args []) {
30
60 } // fim classe
1 package senac ;
2
3 /* *
4 *
5 * @author lucas
6 */
7 import javax . swing . JOptionPane ; // importar classe
8
8
10
1 package senac ;
2
3 /* *
4 *
5 * @author lucas
6 */
7 import javax . swing . JOptionPane ; // importar classe
8
Exercicio: Adeque a classe Conta para utilizar a classe JoptionPane para capturar e retornar
resultados.
• Instrução de sequência:
– É nativo do java. A não ser que seja instruı́do de outra forma, o computador executa as
instruções java uma depois da outra na ordem em que elas são escritas.
• Instruções de seleção:
– Instrução if realiza uma ação se uma condição for verdadeira ou pula a ação se a condição for
falsa.
– Instrução if...else realiza uma ação se uma condição for verdadeira e realiza uma ação diferente
se a condição for falsa.
– Instrução switch realiza uma de muitas ações diferentes, dependendo do valor de uma ex-
pressão.
9
• Instruções de repetição (loop): permitem que programas executem instruções repetidamente con-
tanto que uma condição (chamada condição de continuação do loop) permaneça verdadeira.
– Instruções while e for realizam a ação ou grupo de ações no seu corpo zero ou mais vezes (se
a condição de continuação de loop for inicialmente falsa, a ação não será executada).
– Instrução Do...while realiza a ação ou grupo de ações no seu corpo uma ou mais vezes.
1 if ( notaAluno >= 7)
2 System . out . println ( " Aprovado " ) ;
1 if ( notaAluno >= 7)
2 System . out . println ( " Aprovado " ) ;
3 else
4 System . out . println ( " Reprovado " ) ;
1 if ( notaAluno >= 9)
2 System . out . println ( " A " ) ;
3
10
10 else if ( notaAluno >= 6)
11 System . out . println ( " D " ) ;
12
13 else
14 System . out . println ( " F " ) ;
2. Faça um programa em java que leia o nome, o sexo e o estado civil de uma pessoa. Caso sexo seja
”F”e estado civil seja ”CASADA”, solicitar o tempo de casada (anos).
3. Faça um programa para receber um número qualquer e informar na tela se é par ou ı́mpar.
4. Faça um programa em java que leia dois valores inteiros A e B se os valores forem iguais deverá
se somar os dois, caso contrário multiplique A por B. Ao final de qualquer um dos cálculos deve-se
atribuir o resultado para uma variável C e mostrar seu conteúdo na tela.
5. Encontrar o dobro de um número caso ele seja positivo e o seu triplo caso seja negativo, imprimindo
o resultado.
6. Faça um programa em java que leia uma variável e some 5 caso seja par ou some 8 caso seja ı́mpar,
imprimir o resultado desta operação.
7. Escreva um programa em java que leia três valores inteiros e diferentes e mostre-os em ordem
decrescente.
8. O IMC- Índice de Massa Corporal é um critério da Organização Mundial de Saúde para dar uma
indicação sobre a condição de peso de uma pessoa adulta. A fórmula é IMC = peso / ( altura *
altura). Elabore um programa que leia o peso e a altura de um adulto e mostre sua condição de
acordo com a tabela abaixo:
9. Escreva um programa em java que calcule o que deve ser pago por um produto, considerando o
preço normal de etiqueta e a escolha da condição de pagamento. Utilize os códigos da tabela a
seguir para ler qual a condição de pagamento escolhida e efetuar o cálculo adequado:
11
3.5 Instrução de repetição while
Permite especificar que um programa deve repetir uma ação enquanto alguma condição permancece
verdadeira. Ex: Acumulador de indı́ces com 5 iterações. No java o trecho de código que satifaz a condição
acima seria:
1 package ucb ;
2
5 /* *
6 *
7 * @author lucas
8 */
9 public class LivrodeNotas {
10
13 // construtor da classe
14 public LivrodeNotas ( String nome ) {
15 nomeCurso = nome ;
16 }
17
31 System . out . printf ( " Bem vindo ao Livro de Notas : % s \ n " , getnomeCurso () ) ;
12
32
56 // metodo principal
57 public static void main ( String args []) {
58
Exercı́cio: Altere o teste do exemplo anterior. Altere o nome da disciplina para ”Algoritmos”, em
seguida utilize o método get para mostrar o nome definido anteriormente. Além disso, crie um novo
objeto com a disciplina ”IA”, imprima as boas vindas ao usuário, e calcule a média das notas dos alunos
pertencentes ao novo objeto.
13
3.6 Formulando algoritmos: repetição controlada por sentinela
Desenvolva um programa para tirar a média da classe que processe as notas de acordo com um número
arbitrário de alunos toda vez que é executado.
Nesse exemplo, nenhuma indicação é dada de quantas notas o usuário irá inserir durante a execução
do programa. O problema aqui será como podemos determinar quando parar de inserir as notas e como
saber quando calcular e imprimir a média da classe.
1 package ucb ;
2
5 /* *
6 *
7 * @author lucas
8 */
9 public class LivrodeNotas {
10
13 // construtor da classe
14 public LivrodeNotas ( String nome ) {
15 nomeCurso = nome ;
16 }
17
31 System . out . printf ( " Bem vindo ao Livro de Notas : % s \ n " , getnomeCurso () ) ;
32
14
43
44 // fase de processamento
45 // solicita entrada e le a nota do usuario
46 System . out . print ( " Entre com a nota : " ) ;
47 nota = input . nextInt () ;
48
67
70 // metodo principal
71 public static void main ( String args []) {
72
15
3.8 Operadores de incremento e decremento
O java fornece dois operadores unários para adicionar 1 a uma variável ou para subtrair 1 do valor
de uma variável numérica. Esses são o operador de incremento unário, ++ e o operador de decremento
unário –.
16
• Princı́pios básicos da repetição controlada por controlador.
• Utilizar intruções de repetição for e do...while para executar instruções em um programa repetida-
mente.
• Utilizar operadores lógicos para formar express?es condicionais complexas em instruções de controle.
3. O incremento (ou decremento) pelo qual a variável de controle é modificada a cada passagem pelo
loop ou cada iteração do loop.
1 package ucb ;
2
3 /* *
4 *
5 * @author lucas
6 */
7 public class ContadorWhile {
8 public static void main ( String [] args )
9 {
10
18 }
19 }
1 package ucb ;
2
3 /* *
4 *
5 * @author lucas
6 */
17
7 public class ContadorFor {
8 public static void main ( String [] args )
9 {
10 for ( int counter =1; counter <=10; counter ++)
11 {
12 System . out . printf ( " % d " , counter ) ;
13 } // fim for
14 } // fim main
15 } // fim classe
Veja Figura 4.1 para entender os componentes de cabeçalho de instrução for. O formato geral da instrução
for é:
for (inicialização; condiçãoDeContinuaçãoDoLoop; incremento)
instrução
1 package ucb ;
2
3 /* *
4 *
18
5 * @author lucas
6 */
7 public class JurosCompostos {
8
12 // construtor da classe
13 public JurosCompostos ( double principal , double taxa ) {
14 this . principal = principal ;
15 this . taxa = taxa ;
16 }
17
37 }
1 package senac ;
2
3 /* *
4 *
5 * @author lucas
6 */
19
7 public class DowhileTeste {
8
11 int contador = 1;
12 do {
13 System . out . printf ( " % d " , contador ) ;
14 contador ++;
15
18 }
19 }
1 package ucb ;
2 import java . util . Scanner ;
3 /* *
4 *
5 * @author lucas
6 */
7 public class LivrodeNotas {
8
9 private String Nomecurso ; // nome do curso que esse livro de notas representa
10 private int total ;
11 private int contaNotas ;
12 private int contaA ; // conta as notas A
13 private int contaB ; // conta as notas B
14 private int contaC ;
15 private int contaD ;
16 private int contaF ;
17
28 return Nomecurso ;
20
29 }
30
50 case 6:
51 contaD ++; // nota entre 60 e 69
52 break ;
53
59 } // fim metodo i nc r em en t aC o nt ad o rN ot a s
60
21
77 } // fim metodo inputNotas
78
106 LivrodeNotas livro = new LivrodeNotas ( " LP2 " ) ; // criando objeto da classe
107 livro . mostraMensagem () ; // exibe a mensagem de boas vindas
108 livro . inputNotas () ; // le notas fornecidas pelo usuario
109 livro . Relatorio () ; // exibe o relatorio
110 }
111 } // fim classe
22
4.5.1 Instrução break
Quando executada em um while, for, do...while ou switch, ocasiona a saı́da imediata dessa instrução.
Exemplo:
1 package ucb ;
2
3 /* *
4 *
5 * @author lucas
6 */
7 public class Breaktest {
8
15 if ( contador ==5) {
16 break ; // termina o loop
17 } // fim if
18 System . out . printf ( " % d " , contador ) ;
19 } // fim for
20
21 System . out . println ( " \ nBreak no loop com contador = " + contador ) ;
22 }
23 }
Quando executada em um while, for ou do...while, pula as instruções restantes no corpo do loop e
prossegue com a próxima iteração do loop. Exemplo:
1 package ucb ;
2
3 /* *
4 *
5 * @author lucas
6 */
7 public class Continuetest {
8
23
17
18 }
19 }
Exercı́cios:
1. Desenvolver um algoritmo que efetue a soma de todos os números ı́mpares que são múltiplos de
três e que se encontram no conjunto dos números de 1 até 500.
2. Desenvolver um algoritmo que leia a altura de 15 pessoas. Este programa deverá calcular e mostrar
:
3. Implemente um programa que leia um número não determinado de valores e calcule e escreva
a média aritmética dos valores lidos, a quantidade de valores positivos, a quantidade de valores
negativos e o percentual de valores negativos e positivos.
4. Implemente um programa que leia uma quantidade desconhecida de números e conte quantos deles
estão nos seguintes intervalos: [0-25], [26-50], [51-75] e [76-100]. A entrada de dados deve terminar
quando for lido um número negativo.
5. Implemente um programa que leia uma quantidade não determinada de números positivos. Calcule
a quantidade de números pares e ı́mpares, a média de valores pares e a média geral dos números
lidos. O número que encerrará a leitura será zero.
6. Implemente um programa que gera e escreve os números ı́mpares entre 100 e 200.
7. Implemente um programa que leia um valor para uma variável N de 1 a 10 e calcule a tabuada de
N. Mostre a tabuada na forma: 0 ∗ N = 0, 1 ∗ N = 1N, 2 ∗ N = 2N, · · · , 10 ∗ N = 10N .
8. Implemente um programa que leia um valor inicial A e imprima a sequência de valores do cálculo
de A! e o seu resultado. Ex: 5! = 5 ∗ 4 ∗ 3 ∗ 2 ∗ 1 = 120.
24