Professional Documents
Culture Documents
Programa c ao 2 (P2)
02 Programa c ao estruturada em Java
Programa c ao 2 (P2)
alexandre146@gmail.com
Objetivos
Objetivos Descrever como criar e executar programas Java Apresentar os conceitos b asicos de programa c ao na linguagem Java:
tipos de dados e declara c ao de vari aveis; operadores relacionais, l ogicos e matem aticos; convers oes entre tipos de dados; entrada e sa da de dados.
Programa c ao 2 (P2)
alexandre146@gmail.com
Python
1 print Hello world !
C
1 main ( ) { 2 p r i n t f ( H e l l o World ! ) ; 3 }
Java
1 public class Executavel { 2 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { 3 System . o u t . p r i n t l n ( H e l l o World ! ) ; 4 } 5 }
Programa c ao 2 (P2)
alexandre146@gmail.com
Interpreta c ao em Python
Programa c ao 2 (P2)
alexandre146@gmail.com
Compila c ao em C
Programa c ao 2 (P2)
alexandre146@gmail.com
Programa c ao 2 (P2)
alexandre146@gmail.com
Programa c ao 2 (P2)
alexandre146@gmail.com
Programa c ao 2 (P2)
alexandre146@gmail.com
Instala c ao da m aquina virtual Java http://www.java.com/pt_BR/download/help/index_ installing.xml https://help.ubuntu.com/community/Java (en) http://wiki.ubuntu-br.org/Java (pt br, JVM antiga) Observa c oes: JDK (para desenvolvimento) e JRE (para execu c ao) Oracle JVM ser a usada na disciplina (JVM OpenJDK possui APIs diferentes) Vers ao mais recente JVM 1.7 (Java 7 update 45) Download da JVM em: http://www.oracle.com/ technetwork/java/javase/downloads/index.html
Programa c ao 2 (P2) alexandre146@gmail.com 9
Python Multiparadigma Tipagem forte e din amica Multiplataforma Puramente interpretada Ambiente interativo
Java Orientada a objetos Tipagem forte e est atica Multiplataforma H brida (compilada e interpretada) -
Programa c ao 2 (P2)
alexandre146@gmail.com
10
Programa c ao 2 (P2)
alexandre146@gmail.com
11
Compilando o programa
1 $ javac Primeiro . java
Programa c ao 2 (P2)
alexandre146@gmail.com
12
Vis ao no terminal
1 $ javac Primeiro . java 2 $ java Primeiro 3 Meu p r i m e i r o programa em J a v a !
Programa c ao 2 (P2)
alexandre146@gmail.com
13
Observa c oes:
1
O nome do arquivo deve ser igual ao nome da classe Primeiro.java Fun c ao(M etodo) main determina o in cio do programa Os blocos de c odigo s ao delimitados por { e } Identa c ao n ao determina os blocos (mas continue usando) Instru c oes s ao nalizadas com ; Sempre que alterar o c odigo e necess ario compilar novamente (javac)
2 3 4 5 6
Programa c ao 2 (P2)
alexandre146@gmail.com
14
Python e uma linguagem com tipagem forte e din amica Java e uma linguagem com tipagem forte e est atica C e uma linguagem com tipagem forte e est atica E necess ario declarar uma vari avel em Java e estabelecer seu tipo, que ser a imut avel durante toda a execu c ao do programa
Programa c ao 2 (P2)
alexandre146@gmail.com
15
int - para representar n umeros inteiros; byte - para representar n umeros inteiros entre 128 e 127; short - para representar n umeros inteiros entre 32.768 e 32.767; long - para representar n umeros inteiros entre 263 e 263 1
Programa c ao 2 (P2)
alexandre146@gmail.com
16
oat - para representar n umeros reais (ponto-utuante); double - para representar n umeros reais (ponto-utuante), com maior precis ao que oat; boolean - para representar valores l ogicos: true (verdadeiro) ou false (falso); char - para representar um caractere Unicode; String - para representar cadeias de caracteres Unicode;
Programa c ao 2 (P2)
alexandre146@gmail.com
17
Algumas regras para nomear vari aveis em Java n ao podem iniciar com n umeros caixa (alta ou baixa) diferencia os nomes (case sensitive) Algumas conven c oes para nomear vari aveis em Java CamelCase - nome deve iniciar com min usculas e cada nome composto deve ter sua inicial mai uscula (ex. nome, nomeCompleto, nomePessoaFisica) n ao iniciar nomes de vari aveis com
Observe todas as recomenda c oes em: http://www.oracle.com/technetwork/java/codeconv-138413.html
ou $
Programa c ao 2 (P2)
alexandre146@gmail.com
18
1 2 3 4 5 6 7 8 9 10 11 12
Programa c ao 2 (P2)
alexandre146@gmail.com
19
Atribui c ao ( = )
1 int a = 5;
Compara c ao ( = = )
1 int a = 5; 2 int b = 5; 3 a == b r e s u l t a em t r u e
Programa c ao 2 (P2)
alexandre146@gmail.com
20
Programa c ao 2 (P2)
alexandre146@gmail.com
21
Resto da divis ao ( % )
1 6 / 3 r e s u l t a em 0
Programa c ao 2 (P2)
alexandre146@gmail.com
22
1 int a = 6; 2 int b = 3; 3 b /= a ; // e q u i v a l e n t e a b = b / a ;
Programa c ao 2 (P2)
alexandre146@gmail.com
23
Incrementos (x + +, + + x )
1 2 3 4 5 6 7 8 // x++ P r i m e i r o u t i l i z a o v a l o r da v a r i avel , depois incrementa int x = 0; System . o u t . p r i n t l n ( x++) ; System . o u t . p r i n t l n ( x ) ; // ++x P r i m e i r o i n c r e m e n t a o v a l o r da v a r i avel , depois u t i l i z a int x = 0; System . o u t . p r i n t l n (++x ) ; System . o u t . p r i n t l n ( x ) ;
Decrementos (x , x )
1 2 3 4 5 6 7 8 // x P r i m e i r o u t i l i z a o v a l o r da v a r i a v e l , depois decrementa int x = 2; System . o u t . p r i n t l n ( x); System . o u t . p r i n t l n ( x ) ; // x P r i m e i r o d e c r e m e n t a o v a l o r da v a r i avel , depois u t i l i z a int x = 2; System . o u t . p r i n t l n (x ) ; System . o u t . p r i n t l n ( x ) ;
Programa c ao 2 (P2)
alexandre146@gmail.com
24
Opera c ao l ogica OU ( || )
1 t r u e | | f a l s e r e s u l t a em t r u e 2 t r u e | | t r u e r e s u l t a em t r u e
Programa c ao 2 (P2)
alexandre146@gmail.com
25
Impl cita - quando a vari avel que recebe a atribui c ao possui um tipo mais abrangente que o valor que ser a recebido
1 float a; 2 int b = 5; 3 a = b;
Programa c ao 2 (P2)
alexandre146@gmail.com
26
Expl cita (ou cast) - quando a vari avel que recebe a atribui c ao possui um tipo menos abrangente que o valor que ser a recebido
1 f l o a t a = 5.3 f ; 2 int b; 3 b = ( int ) a ;
Programa c ao 2 (P2)
alexandre146@gmail.com
27
Programa c ao 2 (P2)
alexandre146@gmail.com
28
Programa c ao 2 (P2)
alexandre146@gmail.com
29
Exemplo
1 import j a v a . u t i l . Scanner ; 2 3 public c l a s s EntradaSaida01 { 4 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { 5 S c a n n e r s = new S c a n n e r ( System . i n ) ; 6 7 System . o u t . p r i n t l n ( D i g i t e s e u nome ) ; 8 S t r i n g nome = s . n e x t L i n e ( ) ; 9 10 System . o u t . p r i n t l n ( D i g i t e s u a i d a d e ) ; 11 int idade = s . nextInt () ; 12 13 System . o u t . p r i n t l n ( nome + tem + i d a d e + a n o s . ) ; 14 } 15 }
Obs. 1: A classe scanner e localizada em diferentes pacotes depdndendo da JVM utilizada Obs. 2: O exemplo em exibido foi implementado com a JVM da sun/oracle
Programa c ao 2 (P2)
alexandre146@gmail.com
30
Sa da a partir de um painel
1 JOptionPane . showMessageDialog ( n u l l , t e x t o ) ;
Programa c ao 2 (P2)
alexandre146@gmail.com
31
Exemplo
1 import j a v a x . swing . JOptionPane ; 2 3 public c l a s s EntradaSaida02 { 4 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { 5 S t r i n g nome = J O p t i o n P a n e . s h o w I n p u t D i a l o g ( D i g i t e s e u nome ) ; 6 S t r i n g i d a d e S t r = JOptionPane . s h o w I n p u t D i a l o g ( D i g i t e sua i d a d e ) ; 7 int idade = Integer . parseInt ( idadeStr ) ; 8 9 J O p t i o n P a n e . s h o w M e s s a g e D i a l o g ( n u l l , nome + tem + i d a d e + a n o s . ) ; 10 } 11 }
Programa c ao 2 (P2)
alexandre146@gmail.com
32
Strings s ao classes em Java, portanto possuem m etodos j a implementados O operador + serve para concatena c ao de strings Alguns m etodos:
equals - verica se duas strings possuem o mesmo conte udo toLowerCase - transforma o conte udo da string para caixa baixa toUpperCase - transforma o conte udo da string para caixa alta length() - retorna o tamanho da string
Programa c ao 2 (P2)
alexandre146@gmail.com
33
Exemplo
1 public class ExString { 2 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { 3 String str = Seu nome e ; 4 S t r i n g nome1 = Alexandre ; 5 S t r i n g sobrenome = Barbosa ; 6 S t r i n g nome2 = Alexandre ; 7 S t r i n g nome3 = new S t r i n g ( A l e x a n d r e ) ; 8 9 System . o u t . p r i n t l n ( s t r + nome1 + s o b r e n o m e ) ; 10 System . o u t . p r i n t l n ( nome1 . t o L o w e r C a s e ( ) ) ; 11 System . o u t . p r i n t l n ( nome1 . t o U p p e r C a s e ( ) ) ; 12 System . o u t . p r i n t l n ( nome1 . e q u a l s ( s o b r e n o m e ) ) ; 13 System . o u t . p r i n t l n ( nome1 == s o b r e n o m e ) ; 14 System . o u t . p r i n t l n ( nome1 . e q u a l s ( nome2 ) ) ; 15 System . o u t . p r i n t l n ( nome1 == nome2 ) ; 16 System . o u t . p r i n t l n ( nome1 == nome3 ) ; 17 } 18 }
Programa c ao 2 (P2)
alexandre146@gmail.com
34
Exemplo
1 p u b l i c c l a s s Comentarios { 2 / 3 r a i z c a l c u l a r a i z quadrada e r e t o r n a o v a l o r 4 @param i o n u mero p a r a o q u a l s e d e s e j a c a l c u l a r a r a i z q u a d r a d a 5 @ r e t u r n um d o u b l e c o r r e s p o n d e n d o a r a i z q u a d r a d a de i 6 / 7 p u b l i c s t a t i c double r a i z ( f l o a t i ) { 8 // c a l c u l a r a i z q u a d r a d a e r e t o r n a o v a l o r 9 r e t u r n Math . s q r t ( i ) ; 10 } 11 12 / 13 @param a r g s a r g u m e n t o s da l i n h a de comando 14 / 15 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { 16 / 17 Um programa s i m p l e s p a r a c a l c u l a r 18 o v a l o r da r a i z q u a d r a d a de um n u mero 19 / 20 f l o a t valor = 4.0 f ; 21 System . o u t . p r i n t l n ( r a i z ( v a l o r ) ) ; 22 } 23 24 }
Programa c ao 2 (P2)
alexandre146@gmail.com
35
Exemplo
1 p u b l i c c l a s s LinhaComando { 2 3 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { 4 System . o u t . p r i n t l n ( a r g s [ 0 ] ) ; 5 System . o u t . p r i n t l n ( a r g s [ 1 ] ) ; 6 } 7 8 }
Programa c ao 2 (P2)
alexandre146@gmail.com
36
Resumo Java e uma linguagem multiplataforma e orientada a objetos, que foi criada com base na linguagem C++ O projeto da linguagem tornou alguns conceitos transparentes ao programador (ex. ponteiros e aloca c ao de mem oria) Todo programa Java deve ser criado em uma classe Cada classe deve ser denida em seu proprio arquivo Os tipos de dados primitivos existentes em Java s ao: byte, short, int, long, oat, double e char Os tipos de dados representados por classes em Java s ao: Byte, Short, Integer, Long, Float, Double, Character e String
Programa c ao 2 (P2)
alexandre146@gmail.com
37
Resumo Operadores relacionais Java s ao os mesmos adotados em C: <, >, <=, >=, ! =. == e = Operadores matem aticos Java s ao os mesmos adotados em C: +, -, /, % e * Operadores l ogicos Java s ao representados por: && (E l ogico), || (OU l ogico) e !(Nega c ao l ogica) Entrada e sa da em Java pode ser realizada pelo console (System / in / out / Scanner) Entrada e sa da em Java pode ser realizada atrav es da classe JOptionPane
Programa c ao 2 (P2)
alexandre146@gmail.com
38
2 3
receber dois valores fornecidos pelo usu ario e apresentar o resultado das quatro opera c oes calcular a m edia de duas notas fornecidas pelo usu ario apresentar um menu de op c oes para o usu ario, onde cada op c ao deve ser exibida em uma linha diferente ler dois valores fornecidos pelo usu ario, armazenar nas vari aveis A e B, e realizar a troca do conte udo destas ler um texto e um caractere fornecidos pelo usuario e indicar se o caractere est a presente ou n ao no texto ler um texto e um caractere fornecidos pelo usuario e indicar qual a primeira posi c ao que o caractere e exibido ler um texto e um caractere fornecidos pelo usuario e substituir as ocorr encias do caractere no texto
Programa c ao 2 (P2) alexandre146@gmail.com 39
Exerc cio
1 2 3
Revise a implementa c ao dos algoritmos implementados nas diciplinas P1 e LP1 Exerc cios das p aginas 52 e 53 do livro Java 6 - Ensino Did atico Exerc cios 4 e 5 das p aginas 94 e 95 do livro Java 6 - Ensino Did atico
Programa c ao 2 (P2)
alexandre146@gmail.com
40
Leituras recomendadas
FURGERI, S. Java 6 - Ensino Did atico Cap tulo 01: Java 6 - Linguagem e plataforma Cap tulo 02: Aspectos fundamentais sobre Java Se c ao 4.2: Fun c oes com strings Caelum Java e Orienta c ao a Objetos, 2011. Cap tulo 01: Como aprender Java? Cap tulo 02: O que e Java Cap tulo 03: Vari aveis primitivas e Controle de uxo
Programa c ao 2 (P2)
alexandre146@gmail.com
41
Bibliograa
Caelum Java e Orienta c ao a Objetos, 2011. Allen B. Downey How to Think Like a Computer Scientist - Java Version, 2008.
Programa c ao 2 (P2)
alexandre146@gmail.com
42
Perguntas?
Alexandre de Andrade Barbosa alexandre146@gmail.com
Programa c ao 2 (P2)
alexandre146@gmail.com
43