Você está na página 1de 16

Apostila 1.

1 de Exerccios JAVA
Sistema: Trigonometria

Histrico de Revises
Data
24/02/2009 26/02/2009

Verso
1.0 1.1

Descrio
Criao da primeira verso da apostila Incluso do programa com menu que apresenta ao usurio, opes de clculo de rea de Circunferncia e Tringulo com dicas e sugestes Incluso de exemplo de implementao de classe, classe Circunferencia Incluso de exemplos com classe Scanner

Autor
HEngholmJr HEngholmJr

Sumrio
Histrico de Revises........................................................................................................................... 2 1 Exemplos ...................................................................................................................................... 3 1.1 Criao do primeiro programa em JAVA ............................................................................. 3 1.2 Criao de programa que possui entrada de dados tipo String em JAVA ............................ 4 1.3 Criao de programa que possui entrada de dados tipo String e real em JAVA ................... 5 Primeiro exemplo de aplicao de console em JAVA ..................................................................... 6 1.4 Segundo exemplo de aplicao de console em JAVA .......................................................... 7 1.5 Exemplo de aplicao de console que utiliza classe Scanner em JAVA .............................. 8 1.6 Criao de programa que possui entrada de dados tipo String e real utilizando classe Scanner em JAVA ............................................................................................................................ 9 1.7 Exemplo de implementao de classe em JAVA .................................................................. 9 Classe Circunferencia ...................................................................................................................... 9 1.8 Exemplo de utilizao de classe em JAVA ......................................................................... 12 2 Exerccios ................................................................................................................................... 13 2.1 Aplicao de console para clculo de rea de tringulo, sem consistncia na entrada de dados 13 2.2 Aplicao de console para clculo de rea de tringulo, com consistncia na entrada de dados 13 2.3 Implementao da classe Circunferencia ............................................................................ 13 2.4 Implementao de aplicao de console para utilizao da classe Circunferencia ............. 13 2.5 Implementao da classe Triangulo .................................................................................... 14 2.6 Implementao de aplicao de console para utilizao da classe Triangulo ..................... 14 2.7 Implementao de aplicao de console com menu para clculo de rea de figuras trigonomtricas............................................................................................................................... 15

Apostila 1 Exerccios JAVA - HEngholmJr vr 1.1.doc

Vr: 1.0

01/03/2009

Pgina 2 de 16

1 Exemplos
1.1 Criao do primeiro programa em JAVA
Descrio: Aplicao de console que imprime mensagem de Bem vindo ao usurio. Para implementar seu primeiro programa sem utilizar IDE, siga os passos: i. Abra o editor de texto Notepad (prefira o JEdit que pode ser baixado gratuitamente, procure o mesmo no site www.google.com) ii. Digite o programa (cdigo fonte) abaixo que, quando executado, apresentar na janela do DOS a frase Bem vindo ao sistema public class HelloWorld { public static void main(String[] args) { System.out.println("Bem vindo ao sistema"); } } ATENO: A linguagem de programao Java case sensitive, ou seja, letras minsculas e maisculas so consideradas diferentes. Voc deve digitar o cdigo acima exatamente como est. J a frase Bem vindo ao sistema pode ser escrita da maneira que convier. iii. Aps digitar o cdigo fonte de seu primeiro programa, voc dever salv-lo. Selecione um diretrio e salve-o como HelloWorld.java dentro do mesmo. Observe que o nome de seu programa fonte deve ser exatamente o mesmo da public class com a terminao .java Vamos supor que C:\programasJava voc salvou o arquivo HelloWorld.java no diretrio

3 - Compilando e executando seu primeiro programa i. Abra o prompt do DOS ii. V ao diretrio C:\programasJava onde voc gravou seu arquivo fonte iii. Compile seu primeiro programa com o comando: javac HelloWorld.java iv. Configure a varivel de ambiente CLASSPATH atravs do comando: set CLASSPATH=. Este comando necessrio para que sua aplicao possa ser executada (execute uma nica vez). v. Execute seu primeiro programa com o comando: java HelloWorld

Caso voc tenha seguido os passos exatamente como indicados, voc ter na tela do DOS o que apresentado abaixo: C:\programasJava\javac HelloWorld.java C:\programasJava\ set CLASSPATH=. Apostila 1 Exerccios JAVA - HEngholmJr vr 1.1.doc

Vr: 1.0

01/03/2009

Pgina 3 de 16

C:\programasJava\java HelloWord C:\programasJava\Hello world Obs: Sua vida ser muito mais simples se utilizar um IDE de mercado para trabalhar, e.g., Eclipse, Jcreator, Netbeans. Todos so gratuitos e podem ser encontrados atravs do site Google. Neles voc precisa, de maneira simplista, apenas digitar o cdigo fonte e mandar compilar/executar o programa.

1.2 Criao de programa que possui entrada de dados tipo String em JAVA
Descrio: Aplicao de console que solicita nome do usurio e sada o mesmo. import java.io.*; //necessria para a entrada/sada de dados public class IO1 { public static void main(String[] args) { String nome="Visitante"; System.out.println("\n\n\nBem vindo ao programa!"); //JAVA exige try-catch para a entrada de dados //necessrio para a entrada de dados BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Digite seu nome:"); nome = in.readLine(); } catch (IOException e) { // Catch any IO exceptions. e.printStackTrace(); } //Sada dos dados na tela System.out.println("\n\nSr(a)" + nome + ", bem vindo ao sistema!"); } } try{

Apostila 1 Exerccios JAVA - HEngholmJr vr 1.1.doc

Vr: 1.0

01/03/2009

Pgina 4 de 16

1.3 Criao de programa que possui entrada de dados tipo String e real em JAVA
Descrio: Aplicao de console que solicita descrio e preo de produto ao usurio, imprimindo estas informaes a seguir. import java.io.*; //necessria para a entrada/sada de dados public class IO2 { public static void main(String[] args) { String descricao=""; double preco=0; System.out.println("\n\n\nDigite os dados do produto"); try{ //JAVA exige try-catch para a entrada de dados //necessrio para a entrada de dados

BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Descricao:"); descricao = in.readLine(); System.out.print("Preco:"); preco = Double.parseDouble(in.readLine()); } catch (IOException e) { // Catch any IO exceptions. e.printStackTrace(); } //Sada dos dados na tela System.out.println("\n\nDados do produto"); System.out.println("Descricao:" + descricao); System.out.println("Preco:" + preco);

Apostila 1 Exerccios JAVA - HEngholmJr vr 1.1.doc

Vr: 1.0

01/03/2009

Pgina 5 de 16

1.4

Segundo exemplo de aplicao de console em JAVA

Descrio: Aplicao de console que solicita o raio de uma circunferncia e mostra a rea da mesma na tela, verificando se raio positivo e se valor vlido. //Importando o headerFile para utilizar interfaces do pacote JAVA import javax.swing.JOptionPane; //Importando o headerFile para utilizar formatadores de casas decimais import java.text.DecimalFormat; public class CircunferenciaMain2 { //Declarando o mtodo principal da aplicao de console public static void main(String[] args) { //Declarando variveis String da aplicao String mensagem="Digite o raio da circunferencia:", raioString=""; //Declarando variveis do tipo real para utilizar na aplicao double raio, area; //Declarando varivel para formatar o nmero real a ser mostrado na interface DecimalFormat doisDigitos = new DecimalFormat("0.00"); //Lao for de repetio infinito. S interrompido pelo comando break for(;;){ try{ //Solicitando ao usurio digitar o raio da circunferncia e //armazenando o mesmo como string raioString = JOptionPane.showInputDialog(mensagem); //Tranformando o nmero digitado, armazenado como string, para //nmero real e //armazenando o mesmo em varivel real (double) raio = Double.parseDouble(raioString); infinito interrompido //Se tiver sido digitado valor vlido maior que zero, o lao for

if(raio >=0) break; JOptionPane.showMessageDialog(null, "Valor negativo no permitido!\nDigite novamente!", "Mensagem de erro", JOptionPane.ERROR_MESSAGE); // Catch any IO exceptions. Caso ocorra exceo, o cdigo a seguir executado } catch (java.lang.NumberFormatException e) { JOptionPane.showMessageDialog(null, "No foi digitado valor vlido!\nDigite novamente!", "Mensagem de erro", JOptionPane.ERROR_MESSAGE); } }

Apostila 1 Exerccios JAVA - HEngholmJr vr 1.1.doc

Vr: 1.0

01/03/2009

Pgina 7 de 16

//Calculando a rea da circunferncia e armazenando na varivel de nome area area = Math.PI * Math.pow(raio, 2); //Math.PI * raio * raio; //Imprimindo o resultado para o usurio JOptionPane.showMessageDialog(null, "Dados da circunferencia\nRaio:" + raio + "\nArea:" + doisDigitos.format(area), "Dados da circunferncia", JOptionPane.INFORMATION_MESSAGE); } }

1.5 Exemplo de aplicao de console que utiliza classe Scanner em JAVA


Descrio: Aplicao de console que utiliza classe Scanner para entrada de dados (Necedssita do JDK 1.5 para ser compilado e executado). import java.util.Scanner; //necessria para a entrada/sada de dados public class Scanner1{ public static void main(String[] args) { String nome="Visitante"; System.out.println("\n\n\nBem vindo ao programa!"); try{ //JAVA exige try-catch para a entrada de dados //necessrio para a entrada de dados java.util.Scanner teclado = java.util.Scanner(System.in); System.out.print("Digite seu nome:"); nome = teclado.next(); } catch (IOException e) { // Catch any IO exceptions. e.printStackTrace(); } //Sada dos dados na tela System.out.println("\n\nSr(a)" + nome + ", bem vindo ao sistema!");

} }

Apostila 1 Exerccios JAVA - HEngholmJr vr 1.1.doc

Vr: 1.0

01/03/2009

Pgina 8 de 16

1.6 Criao de programa que possui entrada de dados tipo String e real utilizando classe Scanner em JAVA
Descrio: Aplicao de console que solicita descrio e preo de produto ao usurio, imprimindo estas informaes a seguir. import java.util.Scanner; //necessria para a entrada/sada de dados public class Scanner2 { public static void main(String[] args) { String descricao=""; double preco=0; java.util.Scanner teclado = new Scanner(System.in); System.out.println("\n\n\nDigite os dados do produto"); System.out.print("Descricao:"); descricao = teclado.next(); System.out.print("Preco:"); preco = teclado.nextDouble(); //Sada dos dados na tela System.out.println("\n\nDados do produto"); System.out.println("Descricao:" + descricao); System.out.println("Preco:" + preco);

} }

1.7

Exemplo de implementao de classe em JAVA Classe Circunferencia


Implementando a classe Circunferencia Voc dever salvar este cdigo em arquivo de nome Circunferencia.java e compilar o mesmo no IDE, ou atravs do comando javac Circunferencia.java em janela DOS.

Apostila 1 Exerccios JAVA - HEngholmJr vr 1.1.doc

Vr: 1.0

01/03/2009

Pgina 9 de 16

//Importando a classe que ser utilizada como interface com o usurio (GUI) import javax.swing.JOptionPane; //Definindo a classe Circunferencia public class Circunferencia{ //Declarando o membro de dados raio private double raio; //Definindo os Construtores da classe. Podemos ter tantos quanto julgarmos ser relevantes //Construtor que recebe valor do raio na criao do objeto //e seta valor do raio=0 caso seja fornecido valor negativo. public Circunferencia(double raio){ if(raio>=0) this.raio = raio; else raio = 0; } //Construtor que no recebe parmetros. public Circunferencia(){ } //Metodo privado para uso interno da classe private double retornaArea(){ return Math.PI * raio * raio; } //Metodo <<acessor>> //Mtodo acessor aquele que acessa o membro de dado do objeto. //Mtodo que apresenta dados da circunferncia ao usurio, atravs de interface grfica. public void mostraDados() { JOptionPane.showMessageDialog(null, "Dados da circunferencia\nRaio:" + raio + "\nArea:" + retornaArea(), "Dados da circunferencia", JOptionPane.INFORMATION_MESSAGE); } //Mtodo que retorna o valor do raio da circunferncia no formato real (acessor) public double getRaio(){ return raio; } //Metodos <<mutator>> //Mtodo que altera o membro de dado raio do objeto, consistindo se maior que zero. //caso seja fornecido valor negativo, o mutator armazena zero para o valor do raio Apostila 1 Exerccios JAVA - HEngholmJr vr 1.1.doc Vr: 1.0 01/03/2009 Pgina 10 de 16

public void setRaio(double raio){ if(raio>=0) this.raio = raio; else raio = 0; } //Mtodo que apresenta interface para o usurio digitar o valor do raio, realizando a consistncia na entrada de dados public void solicitaDados(){ //Mtodo responsvel por solicitar os dados da circunferncia. No caso, simplesmente o raio. double raio = -1; //Lao for infinito. S interrompido pelo comando break for(;;){ try{ //Solicitando o raio ao usurio com InputDialog e armazenando o valor digitado j transformado para valor inteiro, na varivel raio raio = Double.parseDouble(JOptionPane.showInputDialog("Digite o raio da circunferencia:")); //caso o raio digitado seja valor vlido e maior que zero executado comando break que quebra o lao infinito if(raio >=0) break; //Caso o valor digitado seja negatio fornecida mensagem ao usurio JOptionPane.showMessageDialog(null, "Valor negativo nao e permitido!\nDigite novamente!", "Mensagem de erro", JOptionPane.ERROR_MESSAGE); exceptions. } catch (java.lang.NumberFormatException e) { // Catch any IO

//Caso o valor digitado no seja numrico, ser gerada uma exceo que ser capturada pelo catch //Neste caso, mostra-se mensagem relacionada a exceo ao usurio JOptionPane.showMessageDialog(null, "Na foi digitado valor valido!\nDigite novamente!", "Mensagem de erro", JOptionPane.ERROR_MESSAGE); } } //Armazenando o contedo da varivel local raio, no membro de dado raio da classe Circunferencia this.raio = raio; } } Apostila 1 Exerccios JAVA - HEngholmJr vr 1.1.doc Vr: 1.0 01/03/2009 Pgina 11 de 16

1.8

Exemplo de utilizao de classe em JAVA Classe CircunferenciaMain


Voc dever salvar este cdigo em arquivo de nome CircunferenciaMain.java e compilar o mesmo no IDE, ou atravs do comando javac CircunferenciaMain.java em janela DOS. public class CircunferenciaMain { public static void main(String[] args) { //Declarando objeto da classe Circunferencia utilizando o construtor //que no recebe parmetro Circunferencia c = new Circunferencia(); //Chamando o mtodo do objeto que solicita o raio //ao usurio do programa c.solicitaDados(); //Imprimindo os dados da Circunferncia c.mostraDados();

} }

Apostila 1 Exerccios JAVA - HEngholmJr vr 1.1.doc

Vr: 1.0

01/03/2009

Pgina 12 de 16

2 Exerccios
Desenvolva os programas abaixo.

2.1 Aplicao de console para clculo de rea de tringulo, sem consistncia na entrada de dados
Implemente uma aplicao de console que solicita a base e a altura de um tringulo e mostra a rea do mesmo na tela, sem executar consistncia na entrada do valor do raio. Baseie-se no exemplo 1.1 desta apostila.

2.2 Aplicao de console para clculo de rea de tringulo, com consistncia na entrada de dados
Implemente uma aplicao de console que solicita a base e a altura de um tringulo e mostra a rea do mesmo na tela, verificando se as arestas so de valores vlidos e positivos. Baseie-se no exemplo 1.2 desta apostila.

2.3

Implementao da classe Circunferencia


Circunferencia -raio: double +solicitaDados() +mostraArea() +mostraDados()

Implemente a classe Circunferencia descrita a seguir

Inicie o valor do raio com1 para identificar se o usurio realizou o input do mesmo A funo solicitaDados() no deve permitir valores negativos e invlido para o membro de dado raio A funo mostraArea() deve mostrar a mensagem rea da circunferncia: xx A funo mostraDados() deve mostrar a mensagem

Dados da circunferncia Raio: xx rea: yy

2.4 Implementao de aplicao de console para utilizao da classe Circunferencia


Implemente um programa que utilize a classe Circunferencia acima para clculo de rea de um tringulo.
Apostila 1 Exerccios JAVA - HEngholmJr vr 1.1.doc Vr: 1.0 01/03/2009 Pgina 13 de 16

2.5

Implementao da classe Triangulo


Triangulo -base: double -altura: double +solicitaDados() +mostraArea() +mostraDados()

Implemente a classe Triangulo descrita a seguir.

Inicie os valores da base e altura com o valor 1 para identificar se o usurio realizou o input dos mesmos A funo solicitaDados() no deve permitir valores negativos para os membros de dados base e altura A funo mostraArea() deve mostrar a mensagem rea do tringulo: xx A funo mostraDados() deve mostrar a mensagem Dados do tringulo Base: x Altura: xx rea: yy

2.6 Implementao de aplicao de console para utilizao da classe Triangulo


Implemente um programa que utilize a classe Triangulo acima para clculo de rea de um tringulo.

Apostila 1 Exerccios JAVA - HEngholmJr vr 1.1.doc

Vr: 1.0

01/03/2009

Pgina 14 de 16

2.7 Implementao de aplicao de console com menu para clculo de rea de figuras trigonomtricas
Implemente um programa que atenda aos seguintes requisitos: O Programa dever apresentar um menu com a seguinte interface: Programa de clculo de reas de figuras trigonomtricas Opes: 1 rea de uma circunferncia 2 rea de um tringulo 3 Sair Digite sua opo: O programa dever utilizar a biblioteca JOptionPane para as interfaces O programa somente poder ser encerrado quando o usurio selecionar a opo 3 O programa dever realizar a consistncia na entrada da opo. Opes invlidas digitadas decvero ser ignoradas

Dicas & Sugestes Permita ao usurio selecionar a opo atravs da digitao de nmero inteiro Armazene o menu em varivel String
menu = " Programa de clculo de reas de figuras trigonomtricas; menu += "\n\nOpes: \n1 rea de uma circunferncia; menu += \n2 rea de um tringulo \n3-Sair \n\n Digite sua opo:;

Utilize um lao for infinito para apresentar as opes de menu ao usurio Utilize a estrutura try-catch para identificar se usurio digitou opo diferente de numrica Utilize o mtodo parseInt para transformar o valor digitado de string para nmero inteiro
//Varivel para armazenar o valor digitado pelo usurio no formato String String valorDigitado = ; //Varivel utilizada para armazenar a opo digitada no formato inteiro int opcao = 0; //Comando que apresenta menu ao usurio, recebe o valor digitado pelo //usurio e armazena na varivel valorDigitado valorDigitado = JOptionPane.showInputDialog(menu); //Comando para transformar valor digitado do formato String para inteiro //Pode gerar exceo caso usurio no digite valor inteiro, mas sim //qualquer outra coisa. Utilize try- catch opcao = Integer.parseInt(valorDigitado); Apostila 1 Exerccios JAVA - HEngholmJr vr 1.1.doc Vr: 1.0 01/03/2009 Pgina 15 de 16

//Utilizando try-catch

Utilize a estrutura de linguagem swith-case para tratar as opes do sistema


for(;;){ try{

valorDigitado = JOptionPane.showInputDialog(mensagem); opcao = Integer.parseInt(valorDigitado); switch(opcao){ case 1: //Cdigo para clculo da rea da Circunferncia break; case 2: //Cdigo para clculo da rea do Tringulo break;

default: JOptionPane.showMessageDialog(null, "Opcao nao implementada!", "Alerta", JOptionPane.INFORMATION_MESSAGE); break; } //Fim do try catch (java.lang.NumberFormatException e) { // Catch any IO exceptions. JOptionPane.showMessageDialog(null, "Na foi digitada opcao valida!\nDigite novamente!", "Mensagem de erro", JOptionPane.ERROR_MESSAGE); } //Fim do catch } //Fim do lao for

Apostila 1 Exerccios JAVA - HEngholmJr vr 1.1.doc

Vr: 1.0

01/03/2009

Pgina 16 de 16

Você também pode gostar