Linguagem de Programação I



Documentos relacionados
2 Orientação a objetos na prática

Programação Orientada a Objetos em Java

CURSO DE PROGRAMAÇÃO EM JAVA

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

Sintaxe Básica de Java Parte 1

Resumo da Matéria de Linguagem de Programação. Linguagem C

Programação WEB I Estruturas de controle e repetição

Python Condicionais e Loops. Introdução à Programação SI1

Java. Marcio de Carvalho Victorino

CURSO BÁSICO DE PROGRAMAÇÃO AULA 9. Introdução a linguagem C Estruturas de decisão

Orientação a Objetos

Faculdade de Ciências Universidade Agostinho Neto Departamento de Matemática e Engenharia Geográfica Ciências da Computação

ESTRUTURA DE UM PROGRAMA EM C++ Estrutura de um Programa em C++

2. OPERADORES ALGORITMOS, FLUXOGRAMAS E PROGRAMAS FUNÇÕES... 10

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

Noções sobre Objetos e Classes

insfcanceof new public switch transient while byte continue extends for int null

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

Java - Introdução. Professor: Vilson Heck Junior. vilson.junior@ifsc.edu.br

Algoritmia e Programação APROG. Linguagem JAVA. Básico. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

BC0501 Linguagens de Programação

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans.

Algoritmos com VisuAlg

ESTRUTURA CONDICIONAL

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.

Programação Básica em Arduino Aula 2

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP

DEFINIÇÃO DE MÉTODOS

1. Estrutura de seleção. Seleção: algumas etapas (passos) do algoritmo são executadas dependendo do resultado de uma condição

CURSO BÁSICO DE PROGRAMAÇÃO AULA 7

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

José Romildo Malaquias

Linguagens de. Aula 02. Profa Cristiane Koehler

Aula 04 Operadores e Entrada de Dados. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Aula 3 Desvio Condicional

Criar a classe Aula.java com o seguinte código: Compilar e Executar

2 echo "PHP e outros.";

INTRODUÇÃO À LINGUAGEM C++

Java 2 Standard Edition Como criar classes e objetos

A Linguagem Java. Alberto Costa Neto DComp - UFS

Introdução a Algoritmos Parte 04

CURSO BÁSICO DE PROGRAMAÇÃO AULA 9. Revisão Aula Anterior Estruturas de Decisão (If e Switch)

Aluísio Eustáquio da Silva

Aula 2. Objetivos Conceitos; Instalação do Text Pad; Entendendo o código java do AloMundo1 Codificação do AloMundo2,AloMundo3 e AloMundo4.

UNIVERSIDADE FEDERAL DO PARANÁ

EXERCÍCIOS. 2. Faça um algoritmo que receba dois números e ao final mostre a soma, subtração, multiplicação e a divisão dos números lidos.

Programação de Computadores - I. Profª Beatriz Profº Israel

Introdução a Java. Hélder Nunes

Programação online em Java

Prof. Esp. Adriano Carvalho

Componentes da linguagem C++

OPERADORES E ESTRUTURAS DE CONTROLE

NOVIDADES DO JAVA PARA PROGRAMADORES C

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }

Projeto de Software Orientado a Objeto

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: Prof. Dr. Raimundo Moura

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

Algoritmos em Javascript

Unidade IV: Ponteiros, Referências e Arrays

Exercícios de Fixação Pseudocódigo e Estruturas Básicas de Controle

INTRODUÇÃO AO JAVA PARA PROGRAMADORES C

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

Roteiro 1: Dados, variáveis, operadores e precedência

CONVENÇÃO DE CÓDIGO JAVA

Exercícios de Revisão Java Básico

JSP - ORIENTADO A OBJETOS

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP

Algoritmos Computacionais ( Programas )

Estrutura Condicional em Java

A Linguagem Algorítmica Estrutura de Repetição. Ex. 2

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

Algoritmos e Estrutura de Dados. Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira

Prof. Esp. Adriano Carvalho

Organização de programas em Java. Vanessa Braganholo

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Algoritmos e Programação Estruturada

Aula 1. // exemplo1.cpp /* Incluímos a biblioteca C++ padrão de entrada e saída */ #include <iostream>

O código JavaScript deve ser colocado entre tags de comentário para ficar escondido no caso de navegadores antigos que não reconhecem a linguagem.

P r o g r a m a ç ã o d e C o m p u t a d o r e s 1 o S e m P r o f. A n d r é A m a r a n t e L u i z L A B 5 tag %2d while printf PE1:

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Introdução à Lógica de Programação (cont.)

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

Linguagem algorítmica: Portugol

Para testar seu primeiro código utilizando PHP, abra um editor de texto (bloco de notas no Windows) e digite o código abaixo:

Capítulo 14. Herança a e Polimorfismo. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo

Estruturas de Repetição

7. Estrutura de Decisão

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO UFRPE

Utilizem a classe Aula.java da aula passada:

9 Comandos condicionais

Programação de Computadores - I. Profª Beatriz Profº Israel

VisuALG Estruturas de Repetição. Professores: Vilson Heck Junior Felipe Schneider Costa

Sumário. INF01040 Introdução à Programação. Elaboração de um Programa. Regras para construção de um algoritmo

2ª LISTA DE EXERCÍCIOS CLASSES E JAVA Disciplina: PC-II. public double getgeracaoatual() {return geracaoatual;}

Orientação a Objetos com Java

Criando um script simples

Transcrição:

Linguagem Java FACEB Faculdade Cenecista de Brasília Professora: Lucélia Oliveira

2º. Semestre de 2007 2

Como Surgiu a Linguagem Java A Sun criou um time (conhecido como Green Team) para desenvolver inovações tecnológicas em 1992. Esse time foi liderado por James Gosling, considerado o pai do Java. O time voltou com a idéia de criar um interpretador para pequenos dispositivos, facilitando a reescrita de software para aparelhos eletrônicos, como vídeo cassete, televisão e aparelhos de tv a cabo. Máquina Virtual Em uma linguagem de programação como C e Pascal, o código fonte é compilado para uma plataforma e sistema operacional específico. Muitas vezes, o próprio código fonte é desenvolvido visando uma única plataforma! Já a Linguagem Java utiliza-se do conceito de máquina virtual, onde existe uma camada extra entre o sistema operacional e a aplicação, responsável por traduzir o que sua aplicação deseja fazer para as respectivas chamadas do sistema operacional no qual ela está rodando no momento. Dessa forma, a maneira a qual você abre uma janela no Linux ou no Windows é a mesma: você ganha independência de sistema operacional. Uso de maiúsculas e minúsculas Java é uma linguagem sensível ao caixa, isto é, distingue maiúsculas de minúsculas: nome é diferente de Nome, por exemplo. Comentários São os textos usados para anotar explicações no próprio programa e desconsiderados pelo compilador. Símbolo Descrição // Comentário de uma linha /* */ Comentário de bloco (pode ter muitas linhas) /** */ Comentário de documentação Exemplos: //Comentário de uma linha /*Comentário de bloco que pode conter Mais de uma linha normalmente*/ /**Comentário de documentação Classe que define ponto no espaço 3D*/ public class Ponto3D... Os comentários de documentação, colocados antes da declaração dos elementos do programa, podem ser extraídos pela ferramenta javadoc e produzir páginas de documentação em HTML. Operadores Operador Descrição + Adição - Subtração * Multiplicação / Divisão % Resto da divisão Operadores Aritméticos Operadores Incremento e decremento 3

Operador Descrição ++ Incremento unitário (adiciona uma unidade) -- Decremento unitário (subtrai uma unidade) Se usado como prefixo (antes da variável), a operação é realizada antes do uso do valor da variável. Exemplo: int a = 1, b; b = ++a; // b recebe 2, a passa a valer 2 Se usado como sufixo (depois da variável), a operação é realizada depois do uso do valor da variável. Exemplo: int a = 1, b; b = a++; // b recebe 1, a passa a valer 2 Operador Descrição == Igual!= Diferente > Maior que >= Maior ou igual a < Menor que <= Menor ou igual a Operadores Relacionais OBS.: O operador de igualdade == não deve ser confundido com o operador de atribuição =. Não podem ser usados para comparar strings (literal) Operador Descrição && E lógico (and) Ou lógico (or)! Negação (not) Operadores Lógicos Operador Ternário É um valor simples que permite usar o valor de duas expressões diferentes conforme o resultado da condição. Sua sintaxe é: <cond>? <expressão_se_verdadeiro> : <expressão_se_falso> Se a expressão cond é verdadeira, éretornado o resultado de expressão_se_verdadeiro, senão é retornado o resultado de expressão_se_falso. Operadores de atribuição compostos Expressões assim: Variável = variável operador expressão a = a + 1; Podem ser escritas assim: Variável operador = expressão a +=1; Operador Descrição += Soma e atribui -= Subtrai e atribui *= Multiplica e atribui /= Divide e atribui %= Calcula o resto e atribui Precedência dos operadores: 4

São as regras que determinam a ordem com que os diferentes operadores serão processados nas expressões: Nível Operadores 1 ( ) 2 ++ -- 3 * / % 4 + - 5 ==!= 6 && 7 8?: 9 = += - + *= /= %= Parênteses são usados para alterar a ordem natural das expressões. Variáveis A declaração de variáveis em Java requer: um tipo de dados, um nome (identificador) e, opcionalmente, um valor inicial. Exemplo: Int i; Tipos de dados primitivos: Definem o conjunto de valores que podem ser armazenados em uma variável e também as operações sobre seus valores. A linguagem Java possui oito tipos primitivos de dados: Tipo Descrição Tamanho Intervalo byte Inteiros positivos e negativos 1-128 a +127 short Inteiros positivos e negativos 2-32.768 a +32.767 int Inteiros positivos e negativos 4-2.147.483.648 a 2.147.483.647 long Inteiros positivos e negativos 8-2^64 a +2^64-1 float Valores em ponto flutuante 4 1,40239846E-45 a 3.40282347E+38 double Valores em ponto flutuante 8 4,9406564E-324 a 1.79769313E+308 char Caracteres individuais - - boolean Tipo lógico, só assume false ou true - - Diretivas (statements) São as instruções de um programa Java, separadas uma das outras por um; (ponto e vírgula). Podendo ocupar linhas distintas ou uma mesma linha. //Diretivas simples em seqüência diretiva1; diretiva2; diretiva3; Blocos São um conjunto de diretivas simples, agrupadas através de pares de chaves e (statement block). Os blocos são tratados como uma única diretiva composta. //diretivas em blocos diretiva1; diretiva2; diretiva3; 5

Exercícios 1. Identifique o tipo dos dados: (a) int (b) float ou double (c) boolean (d) String ( ) true ( ) c*d ( ) false ( ) 1 2 3 4 ( ) aula ( ) 897 ( ) 345 ( ) -18.589 ( ) -0.342 ( ) 35.23 ( ) -23 ( ) Maria 2. Indique os identificadores (nomes das variáveis e não os seus conteúdos!) como válidos ou inválidos: (a) identificador válido (b) identificador inválido ( ) ano ( ) ai! ( ) 3/1 ( ) mediasalario ( ) A15B34 ( ) nome-aluno ( ) média ( ) aula ( ) 5ª 3. Faça a declaração de 2 variáveis do tipo inteira, 2 do tipo real, 2 de um único caractere e 2 do tipo cadeia de caracteres. 4. Indique qual o resultado das expressões aritméticas abaixo: Sendo: x = 6.0 y = 2 z = 4.0 a = 8 b = 7.5 d = 12 p = 4 r = 10 a) x + y z * a = d) ((z / a) + b * a) d = b) d % y = g) (a + r) * r = c) y % d = h) p * (r % p) q/2 5. Dadas as informações abaixo, informe qual o valor das relações (V ou F): a) a == 2.0 b == 9.0 nome == ana profissao == advogado b + 1 >= a*a ( ) nome!= ana ( ) profissao == médico ( ) 6

b) a == 6.0, b == 121.0, nome == Pedro profissao == médico a + 1 > = b/a ( ) nome!= Ana ( ) profissao == médico ( ) c) x == 3, y == 4, z == 16, nome == Maria, resultado == true ( x + y > z ) && (nome == Maria ) ( ) (resultado) ( y > = x ) ( ) (!resultado) && ( z % y + 1 == x ) ( ) (nome == Maria ) ( x + y + z < ( y * y )) ( ) 6. Em Casa: - Faça o download do JDK (A Sun fornece o download gratuito em seu site: http://java.sun.com/j2se) e instale-o em seu computador para realizar os próximos exercícios. ============================================================================================ Para fazer um programa na linguagem Java, necessitamos de um editor de texto simples, como o bloco de notas para digitar o código fonte: Exemplo 1: Programa que exibe uma mensagem public class MostraMensagem public static void main(string[ ] args) System.out.println("Mensagem"); Após digitar o código fonte, temos que salvar o arquivo com o mesmo nome da classe, inclusive iniciando com letra maiúscula. O programa acima deverá ser salvo com o nome: MostraMensagem.java Após salvar a classe devemos compilar o programa, usando, por exemplo o Prompt de Comando, entrando no diretório onde salvamos nossa classe e digitando a seguinte linha de comando: javac nome-do-arquivo.java O compilador irá verificar e informar os erros de sintaxe do programa. Devemos corrigir cada erro e compilar o programa novamente, até que não acuse mais nenhum erro. Após a compilação um novo arquivo é gerado no diretório onde está salva a classe. Agora temos que executar esse novo arquivo para ver o resultado do programa que fizemos. Para isso devemos digitar a seguinte linha de comando: java nome-do-arquivo. No exemplo acima seria: java MostraMensagem Exercícios 1. Agora digite o código abaixo, salve-o com o nome da classe: ExemploString.java. ATENÇÃO! Observe o que está em letra maiúscula e minúscula! Isso faz muita diferença! 7

// Programa para inserir um texto import javax.swing.joptionpane; public class ExemploString FACULDADE CENECISTA DE BRASÍLIA - FACEB public static void main(string[] args) String s = JOptionPane.showInputDialog("Digite um texto"); JOptionPane.showMessageDialog(null, s); 2. Agora tente compilar o exemplo: javac ExemploString.java 3. Se houver erros, corrija-os todos, sempre tentando compreender cada um deles, para não acontecer novamente. 4. Agora é só executar o programa: java ExemploString 5. Agora digite o código abaixo, salve-o //Programa para somar 2 números import javax.swing.joptionpane; public class ExemploSoma public static void main(string[] args) String numero1, numero2; float n1, n2, resultado; numero1 = JOptionPane.showInputDialog("Digite o primeiro número."); numero2 = JOptionPane.showInputDialog("Digite o segundo número."); //numero1 = args[0]; //numero2 = args[1]; n1 = Float.parseFloat(numero1); n2 = Float.parseFloat(numero2); resultado = n1 + n2; JOptionPane.showMessageDialog(null, "Resultado: " + resultado); 6. Agora tente compilar a classe 7. Se houver erros, corrija-os todos, sempre tentando compreender cada um deles, para não acontecer novamente. 8

8. Agora é só executar o programa! Exercícios 1. Faça um programa que receba quatro números inteiros, calcule e mostre a soma desses números. 2. Faça um programa que receba três notas e seus respectivos pesos. Calcule e mostre a média ponderada dessas notas. 3. Faça um programa que receba o valor do salário de um funcionário. Calcule e mostre o novo salário, sabendo-se que este sofreu aumento de 25%. 4. Faça um programa que receba o valor do salário de um funcionário e o percentual de aumento, calcule e mostre o valor do aumento e o novo salário. 5. Faça um programa que receba o valor do salário-base de um funcionário, calcule e mostre o salário a receber, sabendo-se que este funcionário tem gratificação de 5% sobre o salário-base e paga imposto de 7% sobre o salário-base. 6. Faça um programa que receba o valor do salário-base de um funcionário, calcule e mostre o salário a receber, sabendo-se que este funcionário tem gratificação de R$ 1.000,00 e paga imposto de 10% sobre o salário-base. 1ª. Lista para Casa 1. Faça um algoritmo que leia dois números, calcule e imprima a soma desses dois números. 2. Faça um programa que receba dois números inteiros, calcule e imprima a divisão do primeiro número pelo segundo. 3. Faça um programa que leia um número e informe a metade e o dobro desse número. 4. Escrever um programa que permita receber o nome e a idade de uma pessoa e em seguida, informar o nome digitado e a idade da pessoa daqui a 30 anos. 5. Faça um programa que leia três notas de um aluno, calcule e imprima a média aritmética entre essas notas. 6. Faça um programa que receba dois números inteiros, calcule e imprima: - soma do dois números; - subtração do primeiro pelo segundo; - subtração do segundo pelo primeiro; - produto dos dois números; - divisão do primeiro pelo segundo; - quociente inteiro da divisão do primeiro pelo segundo; - resto da divisão do primeiro pelo segundo. Desvios Condicionais 9

Uso da estrutura if-else Os programas desenvolvidos até aqui seguiram um mesmo padrão: entrava-se com dados, estes eram processados e alguma informação era mostrada na tela. Dessa forma, o computador mais parecia uma máquina de calcular. O aprendizado de novos conceitos, como a estrutura de seleção ou desvios condicionais, nos dará uma visão maior da complexidade de tarefas que ele poderá executar. O if em conjunto com o else, é uma estrutura que permite a seleção entre dois caminhos distintos para execução, dependendo do resultado da condição (verdadeiro ou falso). Se a condição for verdadeira, serão executadas as instruções que estiverem posicionadas antes do else. Se a condição for falsa, serão executadas as instruções que estiverem após a instrução else. Podemos constatar que esta estrutura faz parte do nosso cotidiano: - Se eu tiver prova, vou estudar; senão vou ao clube. - Se eu tiver aumento, troco de carro; senão espero o 13 salário. - Se minha média for maior ou igual a seis, estou aprovado; senão estou reprovado. A única coisa diferente é a forma como iremos escrevê-la, vamos adaptar os algoritmos do cotidiano para uma linguagem específica (em nosso caso Java) de um modo formal, obedecendo as regras da linguagem. Sintaxe: if (condição) Instruções pra condição verdadeira else Instruções pra condição para condição falsa Obs.: O uso do else não é obrigatório. Exemplo: Programa que verifica qual dos três números é o maior: a, b ou c: public class Exemplo01if public static void main(string[ ] args) int a,b,c; a=9; b=10; c=3; if ((a>b) && (a>c)) System.out.println("a"); else if (b>c) System.out.println("b"); 10

else System.out.println("c"); Exercícios 1. Ler um número qualquer e exibir na tela uma mensagem indicando se ele é positivo, negativo ou nulo (zero). Se ele for positivo, exibir também a raiz quadrada deste número. Se ele for negativo você deve escrever uma mensagem dizendo Não é possível calcular a raiz deste número. 2. Ler um número inteiro e exibir na tela a mensagem Par se ele for um número par, ou Ímpar se ele for um número ímpar. 3. Faça um programa que receba três notas de um aluno, calcule e mostre a média aritmética e as mensagens de acordo com a tabela abaixo. Para os alunos de exame, calcule e mostre a nota que deverá ser tirada no exame para aprovação, considerando que a média no exame é de 6,0. MÉDIA MENSAGEM [ 0,0 a ] 3,0 Reprovado [ 3,0 a ] 7,0 Exame [ 7,0 a 10,0 ] Aprovado 4. Faça um programa que receba três números e os mostre em ordem crescente. 5. Dados três valores X, Y e Z, verificar se eles podem ser os lados de um triângulo e, se forem, verificar se é um triângulo eqüilátero, isósceles ou escaleno. Se eles não formarem um triângulo informar ao usuário tal situação. Considerar que: Condição para ser triângulo: O comprimento de cada lado de um triângulo é menor que a soma dos outros dois lados. Chama-se triângulo eqüilátero o triângulo que tem os três lados iguais; Chama-se triângulo isósceles o que tem o comprimento de dois lados iguais; Chama-se triângulo escaleno o triângulo que têm os três lados diferentes. 2ª. Lista para Casa 1. Faça um programa que leia um número e informe se o dobro do número é maior que 35. 2. Faça um programa que leia um número e informe se a metade do número é menor que 12. 3. Faça um programa que leia dois números e informe se o primeiro é maior que o segundo. 4. Faça um programa que leia dois números e informe se o primeiro é maior, menor ou igual ao segundo. 5. Faça um programa que leia três números e informe qual dos três é o maior. 11

6. Fazer um programa que receba um número e mostre se ele é positivo, negativo ou nulo (0). 7. Faça um programa que leia a altura e o sexo de uma pessoa, calcule e imprima seu peso ideal, utilizando as seguintes fórmulas: Para homens: (72.7 * h) 58 Para mulheres: (62.1 * h) 44.7 (h = altura) 8. Faça um programa que receba quatro notas de um aluno, calcule e imprima a média aritmética das notas e a mensagem de aprovado para média superior ou igual a 7.0 ou a mensagem de reprovado para média inferior a 7.0. 9. Faça um programa que calcule e imprima o salário reajustado de um funcionário de acordo com a seguinte regra: - salários até R$ 300,00, reajuste de 50% - salários maiores que R$ 300,00, reajuste de 30% 10. A prefeitura do Rio de Janeiro abriu uma linha de crédito para os funcionários municipais. O valor máximo da prestação não poderá ultrapassar 30% do salário bruto. Fazer um algoritmo que permita entrar com o salário bruto e o valor da prestação e informar se o empréstimo pode ou não ser concedido. Comando switch-case A estrutura switch-case se refere a outra modalidade de desvio condicional, semelhante ao uso da instrução if. Ao trabalhar com uma grande quantidade de desvios condicionais contendo instruções if, a legibilidade do programa pode ser comprometida, deixando-o difícil de ser interpretado. A estrutura switch-case é uma forma mais adequada e eficiente para solucionar os mesmos problemas. A estrutura switch-case equivale a um conjunto de instruções if encadeadas, fornecendo maior inteligibilidade. Sintaxe: switch (expressão) case 1: instruções; break; case 2: instruções; break; case n: instruções; break; default: instruções; Exemplo: Este programa recebe um número de 0 a 9 e informa o seu valor por extenso. Caso o número não esteja neste intervalo, mostra a mensagem: Número desconhecido. import javax.swing.joptionpane; public class ExemploSwitchCase 12

public static void main (String args[ ]) String num; Int x; FACULDADE CENECISTA DE BRASÍLIA - FACEB num = JOptionPane.swhowInputDialog ( Informe um número entre 0 e 10 ); x = Integer.parseInt (num); switch (x) case 0: System.out.println("zero"); break; case 1: System.out.println("um"); break; case 2: System.out.println("dois"); break; case 3: System.out.println("tres"); break; case 4: System.out.println("quatro"); break; case 5: System.out.println("cinco"); break; case 6: System.out.println("seis"); break; case 7: System.out.println("sete"); break; case 8: System.out.println("oito"); break; case 9: System.out.println("nove"); break; default : System.out.println("Numero desconhecido"); Exercícios 1. Faça um programa que receba o código de origem de um produto e informe a sua procedência. A procedência obedece à seguinte tabela: Código de origem Procedência 1 Sul 2 Norte 3 Leste 4 Oeste 5 Nordeste 6 Sudeste 7 Centro-oeste 8 Noroeste 3. Escrever um programa que leia um peso na Terra e o número de um planeta e imprima o valor do seu peso neste planeta. A relação de planetas é dada a seguir juntamente com o valor das gravidade relativas à Terra: N gravidade relativa Planeta 1 0.37 Mercúrio 2 0.88 Vênus 13

3 0.38 Marte 4 2.64 Júpiter 5 1.15 Saturno 6 1.17 Urano Para calcular o peso no planeta escolhido use a seguinte fórmula: Peso no Planeta = Peso / 10 * gravidade. Estruturas de Repetição Vamos supor que nossos programas precisarão ser executados mais de uma vez e, para que não tenhamos que reescrever trechos idênticos que aumentariam consideravelmente o tamanho do programa, utilizaremos as estruturas de repetição. Comando while (enquanto) Esta estrutura é recomenda quando o número de repetições for desconhecido. Recomendações para que o programa que utiliza a estrutura while funcione corretamente: - É necessário um teste (uma condição) para interromper a repetição, esta estrutura testa a condição e só executa o que está dentro dela se for verdadeira. - A variável que testa a condição deverá ter seu valor atribuído no início do programa através de um comando de leitura ou de atribuição, antes da estrutura do enquanto e dentro da estrutura, como último comando. - O while começa com e termina com - Pode-se usar outras estruturas dentro do while, como: if, case, etc. Sintaxe: while (condição) Conjunto de instruções; Instruções sejam executadas pelo menos uma vez. Há outro tipo de laço condicional, o comando do-while, que é bem parecido com o while, porém o conjunto de instruções é executado antes da avaliação da expressão lógica. Isso faz com que essas Sintaxe: do 14

while (condição); FACULDADE CENECISTA DE BRASÍLIA - FACEB Conjunto de instruções; Exemplo: Este programa lê vários números e quando o usuário digitar -1 (menos um), o programa mostrará a soma dos números digitados até então, em seguida será encerrado. import javax.swing.joptionpane; public class ExemploWhile; public static void main (String [ ] args) String numero; int num = 0, soma = 0; numero = JOptionPane.showInputDialog ("Informe um número qualquer:"); num = Integer.parseInt(numero); while (numero!= -1) soma = soma + num; numero = JOptionPane.showInputDialog ("Informe um número qualquer ou digite -1 para encerrar:"); num = Integer.parseInt(numero); JOptionPane.showMessageDialog(null,"A soma dos números digitados é = " + soma); Exercícios 1. Faça um programa que receba vários números positivos ou negativos, terminada por zero. O programa deve fornecer como saída, a soma dos números positivos e a soma dos números negativos. 2. Faça um programa que leia os dados de vários alunos, contendo o número da matrícula, as três notas e a freqüência. Calcule e mostre: para cada aluno o número de matricula, a nota final e a mensagem (aprovado ou reprovado); a maior e a menor nota da turma; o total de alunos reprovados; 3. Faça um programa que receba a idade, a altura e o peso de várias pessoas. Calcule e mostre: A quantidade de pessoas com idade superior a 50 anos; A média das alturas das pessoas com idade entre 10 e 20 anos; 15

A percentagem de pessoas com peso inferior a 40 quilos entre todas as pessoas analisadas. 4. Uma empresa deseja aumentar seus preços em 20%. Faça um programa que leia o código, o preço de custo de vários produtos e que calcule o novo preço de cada um deles. Calcule também a média de preços com e sem aumento. Mostre o código e o novo preço de cada produto e, no final, as médias. A entrada de dados deve terminar quando for recebido um código de produto menor ou igual a zero. 5. Faça um programa que apresente um menu de opções para cálculo das seguintes operações entre dois números: adição, subtração, multiplicação e divisão. O programa deve permitir a escolha da operação desejada, a entrada dos números, a exibição do resultado e a volta ao menu de opções. O programa só termina quando for escolhida a opção de saída. 3ª. Lista para Casa 1. Entrar com vários números e imprimir quantos números foram digitados. 2. O IBGE fez uma pesquisa, ele quer saber quantos dentistas foram entrevistados. Fazer um programa que pergunte aos entrevistados qual a sua profissão e ao final diga quantas pessoas foram entrevistadas e quantas são dentistas (considerar dentista, Dentista e DENTISTA). 3. Uma fábrica produz e vende vários produtos e para cada um deles tem-se o nome, quantidade produzida e quantidade vendida. Criar um algoritmo que mostre: - Para cada produto, o nome, a quantidade no estoque e uma mensagem se o produto tiver menos de 50 itens no estoque, informando que o produto precisa de reposição. 4. Faça um programa que leia a idade e a altura de várias pessoas. Calcule e informe a média das alturas das pessoas com mais de 50 anos. Para encerrar o programa digite zero para idade. 5. Faça um programa que leia vários números, quando o zero for digitado o programa será finalizado. Mostre no final desse programa a soma dos números positivos, a soma dos negativos e a soma total dos positivos e negativos juntos. 6. O GDF realizou uma pesquisa entre vários habitantes do DF, coletando dados sobre o rendimento familiar e o número de filhos de cada família. O GDF quer saber: - A média dos rendimentos da população; - Média do número de filhos. 7. Uma empresa classifica seus funcionários em três níveis de acordo com um índice de produtividade. São eles (1) Excelente, (2) Bom e (3) Regular. Cada nível acrescenta um abono ao salário base do funcionário, de acordo com a seguinte tabela: - Excelente 80% do salário base; 16

- Bom 50% do salário base; - Regular 30% do salário base. FACULDADE CENECISTA DE BRASÍLIA - FACEB O programa deve ler a matrícula do funcionário, seu salário base e seu nível de abono. Calcular e imprimir o salário a ser pago (salário a ser pago é = salário base + abono). O programa será encerrado quando for digitado 0 para matrícula. Comando for É uma estrutura de repetição determinada, ou seja, o valor inicial da estrutura é conhecido e o valor final também. (Ao se iniciar a estrutura já se sabe quantas vezes o bloco de comandos será executado). O seu funcionamento é realizado por uma variável de controle do tipo contador, podendo ser crescente ou decrescente. Sintaxe: for (int x = 1; x<10; x++) <conjunto de instruções> Outros exemplos: for (double i = 1; i <=10; i = i+0.5) for (int i = 10; i >= 0; i = i -2); for (int i = a; i <= b; i++) Exemplo: Programa que mostra os números de 1 até 100. Public class ExemploFor Public static void main (String [ ] a) for (int i = 1; I <= 100; i++) System.out.print (i + ); System.out.println( FIM! ); Exercícios 1. Faça um programa que receba a idade de 10 pessoas. O programa deve calcular e mostrar a quantidade de pessoas com idade maior que 18 anos. 2. Faça um programa que mostre a tabuada de multiplicação (de 1 a 10) para os 6 primeiros números primos. Ao mudar de uma base para outra o programa deve mostrar uma mensagem ao usuário e aguardar que alguma tecla seja pressionada para então montar a tabuada para a próxima base. 3. Faça um programa que receba a idade de 15 pessoas, calcule e mostre a quantidade de pessoas em cada faixa etária. Faixa etária Idade 17

1 Até 15 anos 2 De 16 a 30 anos 3 De 31 a 45 anos 4 De 46 a 60 anos 5 Acima de 61 anos 4. Faça um programa que leia uma série de números positivos inteiros. Calcule e mostre o maior número digitado. A entrada de dados deve terminar quando um número negativo foi digitado. 5. Faça um programa que receba um número, calcule e mostre o fatorial desse número. Sabe-se que: n! = 1*2*3*...*(n-1)*n; 0! = 1, por definição. 1. Mostrar todos os números de 100 até 1. 4ª. Lista para Casa 2. Criar um programa que entre com cinco números e imprima o quadrado de cada número. 3. Criar um programa que imprima todos os números de 1 até 100 e a soma deles. 4. Escreva um programa que receba a idade de 10 pessoas, calcule e imprima a quantidade de pessoas maiores de idade (idade >= 18 anos). 5. Em uma eleição presidencial, existem três candidatos e 10 eleitores. Os votos são informados através de código. Os códigos utilizados são: 1, 2, 3 votos para os respectivos candidatos; 0 votos em branco outros códigos votos nulos Escreva um programa que calcule e imprima: - total de votos para cada candidato; - total de votos nulos; - total de votos em branco. 6. Criar um programa que deixe escolher qual a tabuada de multiplicar que se deseja mostrar. Orientação a Objetos Tópicos principais da Orientação a Objetos: - Classe: é um grupo de objetos. Exemplos: Pessoa, Veiculo, Cliente. - Objeto: é um exemplo de um determinado grupo. Exemplo: pessoa1 18

- Atributos: são características do objeto Exemplos: pessoa1.nome: = José pessoa1.idade = 21 pessoa1.endereco = QSA 10 - Métodos: são as operações realizadas dentro das classes. Para o nome do método, é padrão começar com letra minúscula. Exemplo: matricularaluno(); incluirpessoa(); - Método Construtor: é um método especial que inicializa os atributos de uma classe Toda classe tem um método construtor. A que menos precisa dele, é a classe que contém o método main, porque não tem muita afinidade com os conceitos de Orientação a Objetos. O método construtor tem o mesmo nome da classe, inclusive inicializando com letra maiúscula e não retorna nada, inclusive, não utiliza nem o void para expressar isto. - Herança: significa ser capaz incorporar os dados e métodos de uma classe previamente definida, de uma classe mãe. A classe filha é conhecida como sub-classe. Assim como a herança na vida real, a classe filha herda todos os atributos e métodos declarados na classe mãe (ou super classe ou classe progenitora). - Abstração: é a capacidade de abstrair do mundo real somente o que é relevante dentro de um determinado contexto. Por exemplo: ao desenvolver um sistema para uma universidade, não nos interessa o atributo tamanho do pé. Porém ao desenvolver um sistema para um órgão como o Renda Minha, que distribui uniforme e sapatos, é necessário o atributo tamanho do pé. - Polimorfismo: muitas formas. Ocorre quando uma classe filha possui um método com o mesmo nome e assinatura (número, tipo e ordem de parâmetros) de um método na sua superclasse. O polimorfismo ocorre quando precisamos reimplementar o mesmo método, para a mesma finalidade, mas de forma diferente. - Sobrecarga: é semelhante ao polimorfismo, diferenciando-se pelo fato de possuir outros parâmetros e não os mesmos como ocorre no polimorfismo. - Encapsulamento (visibilidade): Mecanismo utilizado visando obter segurança, modularidade e autonomia para objetos. Conseguido através da definição de visibilidade privada dos atributos, ganhando-se assim autonomia para definir o que o mundo externo ao objeto poderá visualizar e acessar, normalmente através de métodos públicos. Existem 3 níveis de encapsulamento: private (privado), protect (protegido) e public (público). Os atributos declarados fora do método são variáveis de objeto ou variáveis de instância ou propriedades ou atributos (para quem conhece programação estruturada é similar à variáveis globais) Essas variáveis de instâncias são inicializadas automaticamente com valores default: Numéricas = 0; String = null; boolean = false; char guarda o valor do caracter na tabela ASCII ou Unicode. As variáveis locais (declaradas dentro dos métodos) não são inicializadas automaticamente. Implementar uma classe com os atributos públicos: Classe Pessoa package oo; public class Pessoa public String nome; public int escolaridade; public int idade; 19

public Pessoa() public Classe Main package oo; public class Main public static void main(string[ ] args) Pessoa p1 = new Pessoa(); p1.escolaridade = 1; p1.idade = 25; p1.nome = "Ana Luiza"; System.out.println(p1.escolaridade); System.out.println(p1.idade); System.out.println(p1.nome); Pessoa p1 = new Pessoa( ); Pessoa => se refere à Classe, é como se utilizássemos uma declaração de String nos programas já conhecidos. p1 => é a referência ao objeto new => é o operador de instância, sempre será utilizado ao instanciar um novo objeto. Pessoa( ) => se refere ao Método Construtor. Modificar todos os atributos da classe Pessoa para private: package oo; public class Pessoa private String nome; private int escolaridade; private int idade; public Pessoa( ) O que acontece? R Todas as tentativas de acesso aos atributos da Classe Pessoa apresentarão erros na classe main, porque os atributos são privados. É possível acessá-los somente dentro da própria classe Pessoa. Como fazer para solucionar esse problema? R criar os métodos get() e set() públicos, para cada atributo que desejar tornar público. Obs. O método set( ) é o método modificador, seu objetivo é alterar o valor O método get( ) é o método acessor, pega o valor do atributo. public class Pessoa private String nome; private int escolaridade; 20

private int idade; public Pessoa() public String getnome() return nome; public void setnome(string nome) this.nome = nome; public int getescolaridade() return escolaridade; public void setescolaridade(int escolaridade) this.escolaridade = escolaridade; public int getidade() return idade; public void setidade(int idade) this.idade = idade; public void main setidade (int idade) this.idade = idade; this => faz referência genérica ao objeto em questão.idade => se refere ao atributo declarado no início da classe, fora dos métodos Idade => se refere ao parâmetro local. Classe Main public class Main public static void main(string[ ] args) Pessoa p1 = new Pessoa( ); p1.setescolaridade (1); p1.setidade(25); p1.setnome("ana Luiza"); System.out.println(p1.getEscolaridade( )); System.out.println(p1.getIdade( )); System.out.println(p1.getNome( )); 21

Os métodos get( ) e set( ) tem somente a funcionalidade de permitir acesso e modificação? R - Não. Por exemplo, pode ser usado para fazer uma validação como no exemplo a seguir: A idade será modificada somente se for maior que 0. public void setidade(int idade) if (idade >= 0) this.idade = idade; O método construtor pode ser declarado de várias formas: Exemplos: Na classe Pessoa: public Pessoa(int escolaridade) setescolaridade(escolaridade); setidade(0); setnome(" "); A classe Main: Pessoa p2 = new Pessoa(1); p2.setidade(27); p2.setnome("lucélia "); System.out.println (p2.getnome( )); Para não termos que repetir várias vezes os comandos de impressão, podemos criar um método que faça este trabalho na classe Pessoa e repetir somente a chamada ao método: Na Classe Pessoa: public void exibe() System.out.println(getNome()); System.out.println(getEscolaridade()); System.out.println(getIdade()); Na Classe Main: p1.exibe( ); p2.exibe( ); Método com parâmetros: Classe Pessoa public Pessoa(int identidade) setidentidade(identidade); setidade(0); setnome(" "); System.out.println("O construtor sobrecarregado que recebe identidade de Pessoa foi executado"); 22

Classe Main Pessoa p2 = new Pessoa(444); p2.setconta(2); p2.setidade(60); p2.setnome("josé "); Classe abstrata: é uma classe que não pode ser instanciada, ela tem o objetivo de fornecer os dados comuns às suas sub-classes e nada mais. - Como tornar uma classe abstrata? R = public abstract class Pessoa - Compilar a classe Pessoa - Tentar compilar a classe Main Criar Classe aluno: public class Aluno extends Pessoa private int matr; public Aluno() setmatr(0); public int getmatr() return matr; public void setmatr(int matr) this.matr = matr; - Verificar o método construtor padrão na classe Aluno - Para resolver o erro, inserir o comando na primeira linha do método construtor de aluno: Super(1); Ex: public Aluno() super(1); setmatr(0); Um construtor em aluno, utilizando um construtor da classe Pessoa: public Aluno(int identidade, int matr) 23

super(identidade); setmatr(matr); Outro método na classe aluno: public Aluno (int identidade, int idade, String nome, int matr) super (identidade, idade,nome); setmatr(matr); Na classe main: Aluno a5 = new Aluno(); a5.setconta(1); a5.setidade(-27); a5.setidentidade(111); a5.setnome(x); a5.setmatr(1); Aluno a6 = new Aluno(444, 2); a6.setconta(2); a6.setidade(60); //p2.setidentidade(222); a6.setnome(" José "); Os métodos exibe da classe Pessoa não tem matrícula, para solucionar este problema: public void exibe( ) super.exibe( ); System.out.println(getMatr( )); Exercícios 1. Crie um novo diretório (pasta) com o nome: orientacaoo. Todas as (três) classes criadas abaixo deverão ser salvas neste diretório. 2. Crie uma classe Veículo com dois atributos privados. public class Veiculo private String cor; private int ano; public Veiculo() 24

3. Crie uma classe Carro com dois atributos a sua escolha. A classe Carro deverá herdar tudo da classe Veículo. public class Carro extends Veiculo private int quantidadeportas; private double valoripva; 4. Crie os métodos de acesso - get() e de modificação - set() para todos os atributos definidos em ambas as classes. OBS.: A parte em negrito já estava pronta, acrescente somente a parte que não está em negrito. A classe Veiculo ficará assim: public class Veiculo private String cor; private int ano; public Veiculo() public String getcor() return cor; public void setcor(string cor) this.cor = cor; public int getano() return ano; public void setano(int ano) this.ano = ano; A classe Carro ficará assim: public class Carro extends Veiculo private int quantidadeportas; private double valoripva; public int getquantidadeportas() return quantidadeportas; public void setquantidadeportas(int quantidadeportas) this.quantidadeportas = quantidadeportas; public double getvaloripva() return valoripva; public void setvaloripva(double valoripva) this.valoripva = valoripva; 25

5. Crie uma classe Principal com o método main, crie nela um objeto da classe Veiculo e instancie os dois atributos que você declarou na classe Veículo. Crie também um objeto da classe Carro, utilizando os dois atributos declarados na própria classe e os dois herdados da classe Veículo. public class Principal public static void main (String [] args) Veiculo veiculo1 = new Veiculo(); veiculo1.setcor("prata"); veiculo1.setano(2007); Carro veiculo2 = new Carro(); veiculo2.setcor("branco"); veiculo2.setano(2006); veiculo2.setquantidadeportas(5); veiculo2.setvaloripva(900); 6. O método main deve exibir as informações dos dois objetos criados. OBS.: Acrescentar o código abaixo antes das duas chaves de fechamento do método main e da classe Principal. System.out.println("Veiculo 1 \ncor: "+veiculo1.getcor()+"\nano: "+veiculo1.getano()); System.out.println("-------------------------------"); System.out.println("Veiculo 2 \ncor: " + veiculo2.getcor() + "\nano: " + veiculo2.getano() + "\nquantidade de portas = " + veiculo2.getquantidadeportas() + "\nvalor do IPVA R$ = " + veiculo2.getvaloripva()); System.out.println("-------------------------------"); 26