SlideShare uma empresa Scribd logo
Introdução à linguagem de programação Java
 Algoritmos implementados em Snap!
 Variáveis
 Instruções de selecção
 Instruções de iteração
 Funções
 Listas
2013/2014 Fundamentos de Programação 2
 Especificar problema [humano]
 Desenvolver algoritmo que o resolva [humano]
 Concretizar algoritmo na linguagem de
programação [humano]
 Traduzir programa para linguagem máquina
[compilador, numa máquina]
 Executar programa para caso particular [máquina
física ou virtual]
2013/2014 Fundamentos de Programação 33
 Linguagem de programação
 Orientada por objectos
 (e também imperativa, procedimental e estruturada)
 Independente da plataforma: programas executáveis
em diferentes sistemas operativos
 Muito utilizada na indústria
2013/2014 Fundamentos de Programação 4
2013/2014 Fundamentos de Programação 5
Fonte: http://trendyskills.com/
JVM
Compilador
de Java (javac.exe)
Código em bytecode Java
(linguagem máquina para JVM)
(Greeter.class)
Código fonte
em Java
(e.g., Greeter.java)
2013/2014 Fundamentos de Programação 6
JavaVirtual Machine
(MáquinaVirtual Java)
Significa “texto escrito na
linguagem Java”…
Interpretador de linguagem
máquina para a JVM (java.exe)
Processador
 Declaração e inicialização obrigatórias!
 Declaração indica nome e tipo (conjunto dos
valores)
 Inicialização indica valor inicial
 Utilizadas para guardar valores
 Atribuição altera valor de variável
2013/2014 Fundamentos de Programação 7
Snap! Java Observações
- int i = 1; Declaração com inicialização.
int gcd;
if (m < n)
gcd = m;
else
gcd = n;
Declaração sem inicialização seguida
de duas inicializações alternativas.
prime = 2; Atribuição (se prime estiver já
inicializada).
i = i + 1; Incrementação (há melhores
formas…).
n = temporary;
2013/2014 Fundamentos de Programação 8
Não existe em Snap!,
pelo que usa declaração
e atribuição.
 Declarar tão próximo quanto possível da
primeira utilização
 Declarar de modo a minimizar âmbito da
variável
 Inicializar logo que possível
 Não inicializar apenas “para calar o
compilador”
2013/2014 Fundamentos de Programação 9
Tipo Descrição Bits Exemplos
int Subconjunto dos inteiros. 32 int numberOfStudents;
double Vírgula flutuante. Subconjunto dos
racionais.
64 double averageGrade;
boolean Booleanos ou lógicos. 8 boolean isPrime;
char Caracteres. 16 char response;
String Texto, cadeias de caracteres. - String studentName;
2013/2014 Fundamentos de Programação 10
Há mais!
Tipo Descrição Bits
byte Pequeno subconjunto dos inteiros. 8
short Subconjunto dos inteiros, entre byte e int. 16
long Subconjunto dos inteiros, maior que int. 64
float Vírgula flutuante. Subconjunto dos racionais , menor gama e
menor precisão que double.
32
2013/2014 Fundamentos de Programação 11
 Nomes de variáveis são identificadores
 Identificadores não podem ser repetidos no
mesmo contexto
2013/2014 Fundamentos de Programação 12
 Constituídos por
 letras (a, À, ε, …)
 dígitos (0 a 9)
 _
 $
 Primeiro caractere não pode ser dígito
 Maiúsculas e minúsculas são distinguidas
 Não podem ser palavras-chave do Java (e.g., for,
while, int, if ou for)
2013/2014 Fundamentos de Programação 13
 Primeira palavra em minúsculas
 Restantes palavras com maiúscula inicial
 Exemplo: numberOfStudents
2013/2014 Fundamentos de Programação 14
 Em língua natural
 Sem abreviaturas
 Gramática correcta
 Adequados à entidade que identificam
 Claros
 Significativos
 Expressivos
 Para variáveis, são continuação de «This
variable stores the …»
2013/2014 Fundamentos de Programação 15
Há excepções,
nomeadamente as que nos
chegam do domínio da
matemática e que ganharam
estatuto de expressões
idiomáticas nas linguagens
de programação: i, j, m, n, x,
y e algumas outras, sempre
em casos muito particulares.
Snap! Java Significado Tipo
&& e Booleano
|| ou Booleano
! não Booleano
< menor Relacional
<= menor ou igual Relacional
> maior Relacional
>= maior ou igual Relacional
== igual Comparação
!= diferente Comparação
2013/2014 Fundamentos de Programação 16
Snap! Java
if (m < n) {
gcd = m;
} else {
gcd = n;
}
if (grade < 10) {
…
} else if (grade < 12) {
…
} else {
…
}
2013/2014 Fundamentos de Programação 17
Pode-se omitir as
chavetas quando contêm
apenas uma instrução.
Snap! Java
initialization
while (guard) {
action
progress
}
initialization
do {
action
progress
} while (guard);
2013/2014 Fundamentos de Programação 18
Pode-se omitir as
chavetas quando contêm
apenas uma instrução.
Snap! Java
System.out.print(something);
System.out.println(something);
2013/2014 Fundamentos de Programação 19
Passa para a linha
seguinte depois
de escrever.
Snap! Java
public static
int minimumOf(final int m,
final int n) {
if (m < n)
return m;
else
return n;
}
int number = minimumOf(5, 7);
2013/2014 Fundamentos de Programação 20
A ver mais tarde…A ver mais tarde…
Constante, inalterável.
 Podem ser funções ou procedimentos
 Funções – calculam e devolvem algum valor
 Procedimentos – realizam uma dada acção
2013/2014 Fundamentos de Programação 21
A ver mais tarde…
 Em programação orientada para objectos as
rotinas são conhecidas por métodos
 Podem ser de classe ou de instância
 Métodos de classe – com static
 Métodos de instância – sem static, a ver
mais tarde
2013/2014 Fundamentos de Programação 22
Mais tarde
distinguir-se-á
operações e
métodos.
A ver mais tarde…
public class Greeter {
public static void main(final String[] arguments) {
System.out.println("Hello world!");
}
}
 Ficheiro com o código fonte de classe tem de ter mesmo
nome que classe e extensão .java
 Método principal main(...) é um procedimento e é o
primeiro método a ser invocado ao se executar um programa
2013/2014 Fundamentos de Programação 23
public class GcdTester {
// Precondition: m ≥ 0 and n ≥ 0 and either m ≠ 0 or n ≠ 0.
public static int gcd(int m, int n) {
while (m != 0) {
final int temporary = m;
m = n % m;
n = temporary;
}
return n;
}
public static void main(final String[] arguments) {
final int firstValue = 25;
final int secondValue = 30;
final int gcd = gcd(firstValue, secondValue);
System.out.println("The GCD is " + gcd + ".");
// or simply:
// System.out.println("The GCD is " + gcd(25, 30) + ".");
}
}
2013/2014 Fundamentos de Programação 24
 Java ignora
 texto entre // e o fim da linha e
 texto entre /* e */
 Usados para
 Comentar – clarificar código menos claro
 Documentar – gerar documentação
 Comentários Java iniciados com /** são
documentação, que veremos mais tarde
2013/2014 Fundamentos de Programação 25
 Usar para documentação
 Evitar usar para comentar código menos
claro
2013/2014 Fundamentos de Programação 26
 Java
 Variáveis
 Instrução de selecção if-else
 Instruções de iteração while e do-while
 Rotinas: funções e procedimentos
 Rotinas e métodos
 Métodos de classe (static) vs. métodos de instância
 Escrita no ecrã com System.out.println(…)
 Método principal main(…)
 Comentários e documentação
2013/2014 Fundamentos de Programação 27
 Introdução à linguagem de programação Java
2013/2014 Fundamentos de Programação 28

Mais conteúdo relacionado

Mais procurados

Redes de computadores II - 3.Roteamento
Redes de computadores II - 3.RoteamentoRedes de computadores II - 3.Roteamento
Redes de computadores II - 3.Roteamento
Mauro Tapajós
 
Linux comandos gerais e servidores de rede
Linux   comandos gerais e servidores de redeLinux   comandos gerais e servidores de rede
Linux comandos gerais e servidores de rede
fernandao777
 

Mais procurados (20)

Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidor
 
Banco de dados distribuídos mnt bd
Banco de dados distribuídos mnt bdBanco de dados distribuídos mnt bd
Banco de dados distribuídos mnt bd
 
Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídos
 
Algoritmos - Pseudocódigo
Algoritmos - PseudocódigoAlgoritmos - Pseudocódigo
Algoritmos - Pseudocódigo
 
Redes de computadores II - 3.Roteamento
Redes de computadores II - 3.RoteamentoRedes de computadores II - 3.Roteamento
Redes de computadores II - 3.Roteamento
 
Capítulo 2 modelos de redes
Capítulo 2   modelos de redesCapítulo 2   modelos de redes
Capítulo 2 modelos de redes
 
Aula 6 - Redes de Computadores A - Endereçamento IP
Aula 6 - Redes de Computadores A - Endereçamento IPAula 6 - Redes de Computadores A - Endereçamento IP
Aula 6 - Redes de Computadores A - Endereçamento IP
 
Endereçamento de memória
Endereçamento de memóriaEndereçamento de memória
Endereçamento de memória
 
Variaveis
VariaveisVariaveis
Variaveis
 
Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1
 
Modelo osi
Modelo osiModelo osi
Modelo osi
 
Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas Distribuídos
 
Jogo da forca - Diagrama de Classe
Jogo da forca - Diagrama de ClasseJogo da forca - Diagrama de Classe
Jogo da forca - Diagrama de Classe
 
Sistemas Operacionais - Aula 9 (Gerencia do Processador)
Sistemas Operacionais - Aula 9 (Gerencia do Processador)Sistemas Operacionais - Aula 9 (Gerencia do Processador)
Sistemas Operacionais - Aula 9 (Gerencia do Processador)
 
Trabalho linux
Trabalho linuxTrabalho linux
Trabalho linux
 
Linux comandos gerais e servidores de rede
Linux   comandos gerais e servidores de redeLinux   comandos gerais e servidores de rede
Linux comandos gerais e servidores de rede
 
Módulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informaçãoMódulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informação
 
SO - Kernel (Nucleo)
SO - Kernel (Nucleo)SO - Kernel (Nucleo)
SO - Kernel (Nucleo)
 
Historia das redes de computadores
Historia das redes de computadoresHistoria das redes de computadores
Historia das redes de computadores
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL Basico
 

Destaque

Destaque (20)

2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
 
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
 
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
 
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
 
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
 
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...
 
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
 
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...
 
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
 
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
 
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
 
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
 
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
 
Guia prático para criar algoritmos
Guia prático para criar algoritmosGuia prático para criar algoritmos
Guia prático para criar algoritmos
 
Programação Orientada por Objectos - Aula 7
Programação Orientada por Objectos - Aula 7Programação Orientada por Objectos - Aula 7
Programação Orientada por Objectos - Aula 7
 
Programação Orientada por Objectos - Aula 1
Programação Orientada por Objectos - Aula 1Programação Orientada por Objectos - Aula 1
Programação Orientada por Objectos - Aula 1
 
Programação Orientada por Objectos - Aula 6
Programação Orientada por Objectos - Aula 6Programação Orientada por Objectos - Aula 6
Programação Orientada por Objectos - Aula 6
 
Introdução à programação orientada para aspectos
Introdução à programação orientada para aspectosIntrodução à programação orientada para aspectos
Introdução à programação orientada para aspectos
 
Programação Orientada por Objectos - Aula 3
Programação Orientada por Objectos - Aula 3Programação Orientada por Objectos - Aula 3
Programação Orientada por Objectos - Aula 3
 
Programação Orientada por Objectos - Aula 2
Programação Orientada por Objectos - Aula 2Programação Orientada por Objectos - Aula 2
Programação Orientada por Objectos - Aula 2
 

Semelhante a 4. Introdução à linguagem de programação Java – Fundamentos de Programação

Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
apolllorj
 
Cartilhado arduino ed10
Cartilhado arduino ed10Cartilhado arduino ed10
Cartilhado arduino ed10
SEDUCCE
 

Semelhante a 4. Introdução à linguagem de programação Java – Fundamentos de Programação (20)

Semana 3: Introdução à linguagem de programação Java
Semana  3: Introdução à linguagem de programação Java Semana  3: Introdução à linguagem de programação Java
Semana 3: Introdução à linguagem de programação Java
 
Código limpo
Código limpoCódigo limpo
Código limpo
 
Qualidade de código Android
Qualidade de código AndroidQualidade de código Android
Qualidade de código Android
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação C
 
Codificação segura em C para sistemas embarcados
Codificação segura em C para sistemas embarcadosCodificação segura em C para sistemas embarcados
Codificação segura em C para sistemas embarcados
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
Aula 02 - Introdução a ALGORITMOS.pptx
Aula 02 - Introdução a ALGORITMOS.pptxAula 02 - Introdução a ALGORITMOS.pptx
Aula 02 - Introdução a ALGORITMOS.pptx
 
Conceitos base de programação - parte 1
Conceitos base de programação - parte 1Conceitos base de programação - parte 1
Conceitos base de programação - parte 1
 
Algoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoAlgoritmos e Lógica de Programação
Algoritmos e Lógica de Programação
 
Cartilhado arduino ed1 - cópia
Cartilhado arduino ed1 - cópiaCartilhado arduino ed1 - cópia
Cartilhado arduino ed1 - cópia
 
Cartilhado arduino ed1
Cartilhado arduino ed1Cartilhado arduino ed1
Cartilhado arduino ed1
 
Cartilhado arduino ed1
Cartilhado arduino ed1Cartilhado arduino ed1
Cartilhado arduino ed1
 
Cartilhado arduino ed10
Cartilhado arduino ed10Cartilhado arduino ed10
Cartilhado arduino ed10
 
CartilhadoArduino_ed9.pdf
CartilhadoArduino_ed9.pdfCartilhadoArduino_ed9.pdf
CartilhadoArduino_ed9.pdf
 
Java e orientação a objetos
Java e orientação a objetosJava e orientação a objetos
Java e orientação a objetos
 
Introdução a linguagem de programação C
Introdução a linguagem de programação CIntrodução a linguagem de programação C
Introdução a linguagem de programação C
 
Curso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CCurso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação C
 
Introducao Google GO
Introducao Google GOIntroducao Google GO
Introducao Google GO
 
Test-driven Development
Test-driven DevelopmentTest-driven Development
Test-driven Development
 
Java script
Java scriptJava script
Java script
 

Mais de Manuel Menezes de Sequeira

Mais de Manuel Menezes de Sequeira (15)

Semana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instânciasSemana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
 
Semana 9: toString, classes, instâncias e objectos, Scanner
Semana  9: toString, classes, instâncias e objectos, ScannerSemana  9: toString, classes, instâncias e objectos, Scanner
Semana 9: toString, classes, instâncias e objectos, Scanner
 
Semana 8: Classes e instâncias, cadeias de caracteres
Semana  8: Classes e instâncias, cadeias de caracteresSemana  8: Classes e instâncias, cadeias de caracteres
Semana 8: Classes e instâncias, cadeias de caracteres
 
Semana 6: Matrizes multidimensionais, estratégias de resolução de problemas
Semana  6: Matrizes multidimensionais, estratégias de resolução de problemasSemana  6: Matrizes multidimensionais, estratégias de resolução de problemas
Semana 6: Matrizes multidimensionais, estratégias de resolução de problemas
 
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referênciaSemana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
 
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana  4: Atribuições especiais, matrizes, ciclos, classes pacoteSemana  4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacote
 
Semana 2: Funções e listas, variáveis
Semana  2: Funções e listas, variáveisSemana  2: Funções e listas, variáveis
Semana 2: Funções e listas, variáveis
 
Semana 1: Programação como arte de resolver problemas, algoritmos e problema...
Semana  1: Programação como arte de resolver problemas, algoritmos e problema...Semana  1: Programação como arte de resolver problemas, algoritmos e problema...
Semana 1: Programação como arte de resolver problemas, algoritmos e problema...
 
Semana 0: Computadores, linguagens e linguagens de programação, Noções de al...
Semana  0: Computadores, linguagens e linguagens de programação, Noções de al...Semana  0: Computadores, linguagens e linguagens de programação, Noções de al...
Semana 0: Computadores, linguagens e linguagens de programação, Noções de al...
 
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
 
Eng.ª do Software - 10. Testes de software
Eng.ª do Software - 10. Testes de softwareEng.ª do Software - 10. Testes de software
Eng.ª do Software - 10. Testes de software
 
Eng.ª do Software - 9. Verificação e validação
Eng.ª do Software - 9. Verificação e validaçãoEng.ª do Software - 9. Verificação e validação
Eng.ª do Software - 9. Verificação e validação
 
Eng.ª do Software - 8. Desenho de interfaces com o utilizador
Eng.ª do Software - 8. Desenho de interfaces com o utilizadorEng.ª do Software - 8. Desenho de interfaces com o utilizador
Eng.ª do Software - 8. Desenho de interfaces com o utilizador
 
Eng.ª do Software - 7. Desenho arquitectónico
Eng.ª do Software - 7. Desenho arquitectónicoEng.ª do Software - 7. Desenho arquitectónico
Eng.ª do Software - 7. Desenho arquitectónico
 
Eng.ª do Software - 6. Gestão de projectos
Eng.ª do Software - 6. Gestão de projectosEng.ª do Software - 6. Gestão de projectos
Eng.ª do Software - 6. Gestão de projectos
 

Último

Obra - Curso de Direito Tributário - Doutrina Direito
Obra - Curso de Direito Tributário - Doutrina DireitoObra - Curso de Direito Tributário - Doutrina Direito
Obra - Curso de Direito Tributário - Doutrina Direito
rarakey779
 
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdfHans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
rarakey779
 
PERFIL M DO LUBANGO e da Administraçao_041137.pptx
PERFIL M DO LUBANGO e da Administraçao_041137.pptxPERFIL M DO LUBANGO e da Administraçao_041137.pptx
PERFIL M DO LUBANGO e da Administraçao_041137.pptx
tchingando6
 
5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf
5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf
5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf
edjailmax
 
INTRODUÇÃO A ARQUEOLOGIA BÍBLICA [BIBLIOLOGIA]]
INTRODUÇÃO A ARQUEOLOGIA BÍBLICA [BIBLIOLOGIA]]INTRODUÇÃO A ARQUEOLOGIA BÍBLICA [BIBLIOLOGIA]]
INTRODUÇÃO A ARQUEOLOGIA BÍBLICA [BIBLIOLOGIA]]
ESCRIBA DE CRISTO
 
Instrucoes_A_M_Pranchas_01_a_33_Encadern (4).pdf
Instrucoes_A_M_Pranchas_01_a_33_Encadern (4).pdfInstrucoes_A_M_Pranchas_01_a_33_Encadern (4).pdf
Instrucoes_A_M_Pranchas_01_a_33_Encadern (4).pdf
ssuserbb4ac2
 
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdfGRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
rarakey779
 

Último (20)

04_GuiaDoCurso_Neurociência, Psicologia Positiva e Mindfulness.pdf
04_GuiaDoCurso_Neurociência, Psicologia Positiva e Mindfulness.pdf04_GuiaDoCurso_Neurociência, Psicologia Positiva e Mindfulness.pdf
04_GuiaDoCurso_Neurociência, Psicologia Positiva e Mindfulness.pdf
 
Fotossíntese para o Ensino médio primeiros anos
Fotossíntese para o Ensino médio primeiros anosFotossíntese para o Ensino médio primeiros anos
Fotossíntese para o Ensino médio primeiros anos
 
Obra - Curso de Direito Tributário - Doutrina Direito
Obra - Curso de Direito Tributário - Doutrina DireitoObra - Curso de Direito Tributário - Doutrina Direito
Obra - Curso de Direito Tributário - Doutrina Direito
 
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdfHans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
 
Slides Lição 8, Central Gospel, Os 144 Mil Que Não Se Curvarão Ao Anticristo....
Slides Lição 8, Central Gospel, Os 144 Mil Que Não Se Curvarão Ao Anticristo....Slides Lição 8, Central Gospel, Os 144 Mil Que Não Se Curvarão Ao Anticristo....
Slides Lição 8, Central Gospel, Os 144 Mil Que Não Se Curvarão Ao Anticristo....
 
AULA Saúde e tradição-3º Bimestre tscqv.pptx
AULA Saúde e tradição-3º Bimestre tscqv.pptxAULA Saúde e tradição-3º Bimestre tscqv.pptx
AULA Saúde e tradição-3º Bimestre tscqv.pptx
 
PERFIL M DO LUBANGO e da Administraçao_041137.pptx
PERFIL M DO LUBANGO e da Administraçao_041137.pptxPERFIL M DO LUBANGO e da Administraçao_041137.pptx
PERFIL M DO LUBANGO e da Administraçao_041137.pptx
 
DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...
DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...
DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...
 
CIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptx
CIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptxCIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptx
CIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptx
 
5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf
5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf
5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf
 
DESAFIO FILOSÓFICO - 1ª SÉRIE - SESI 2020.pptx
DESAFIO FILOSÓFICO - 1ª SÉRIE - SESI 2020.pptxDESAFIO FILOSÓFICO - 1ª SÉRIE - SESI 2020.pptx
DESAFIO FILOSÓFICO - 1ª SÉRIE - SESI 2020.pptx
 
INTRODUÇÃO A ARQUEOLOGIA BÍBLICA [BIBLIOLOGIA]]
INTRODUÇÃO A ARQUEOLOGIA BÍBLICA [BIBLIOLOGIA]]INTRODUÇÃO A ARQUEOLOGIA BÍBLICA [BIBLIOLOGIA]]
INTRODUÇÃO A ARQUEOLOGIA BÍBLICA [BIBLIOLOGIA]]
 
Apresentação de vocabulário fundamental em contexto de atendimento
Apresentação de vocabulário fundamental em contexto de atendimentoApresentação de vocabulário fundamental em contexto de atendimento
Apresentação de vocabulário fundamental em contexto de atendimento
 
Slides Lição 9, CPAD, Resistindo à Tentação no Caminho, 2Tr24.pptx
Slides Lição 9, CPAD, Resistindo à Tentação no Caminho, 2Tr24.pptxSlides Lição 9, CPAD, Resistindo à Tentação no Caminho, 2Tr24.pptx
Slides Lição 9, CPAD, Resistindo à Tentação no Caminho, 2Tr24.pptx
 
Atividade-9-8o-ano-HIS-Os-caminhos-ate-a-independencia-do-Brasil-Brasil-Colon...
Atividade-9-8o-ano-HIS-Os-caminhos-ate-a-independencia-do-Brasil-Brasil-Colon...Atividade-9-8o-ano-HIS-Os-caminhos-ate-a-independencia-do-Brasil-Brasil-Colon...
Atividade-9-8o-ano-HIS-Os-caminhos-ate-a-independencia-do-Brasil-Brasil-Colon...
 
Tesis de Maestría de Pedro Sousa de Andrade (Resumen).pdf
Tesis de Maestría de Pedro Sousa de Andrade (Resumen).pdfTesis de Maestría de Pedro Sousa de Andrade (Resumen).pdf
Tesis de Maestría de Pedro Sousa de Andrade (Resumen).pdf
 
Instrucoes_A_M_Pranchas_01_a_33_Encadern (4).pdf
Instrucoes_A_M_Pranchas_01_a_33_Encadern (4).pdfInstrucoes_A_M_Pranchas_01_a_33_Encadern (4).pdf
Instrucoes_A_M_Pranchas_01_a_33_Encadern (4).pdf
 
Curso de Direito do Trabalho - Maurício Godinho Delgado - 2019.pdf
Curso de Direito do Trabalho - Maurício Godinho Delgado - 2019.pdfCurso de Direito do Trabalho - Maurício Godinho Delgado - 2019.pdf
Curso de Direito do Trabalho - Maurício Godinho Delgado - 2019.pdf
 
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdfGRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
 
Evangelismo e Missões Contemporânea Cristã.pdf
Evangelismo e Missões Contemporânea Cristã.pdfEvangelismo e Missões Contemporânea Cristã.pdf
Evangelismo e Missões Contemporânea Cristã.pdf
 

4. Introdução à linguagem de programação Java – Fundamentos de Programação

  • 1. Introdução à linguagem de programação Java
  • 2.  Algoritmos implementados em Snap!  Variáveis  Instruções de selecção  Instruções de iteração  Funções  Listas 2013/2014 Fundamentos de Programação 2
  • 3.  Especificar problema [humano]  Desenvolver algoritmo que o resolva [humano]  Concretizar algoritmo na linguagem de programação [humano]  Traduzir programa para linguagem máquina [compilador, numa máquina]  Executar programa para caso particular [máquina física ou virtual] 2013/2014 Fundamentos de Programação 33
  • 4.  Linguagem de programação  Orientada por objectos  (e também imperativa, procedimental e estruturada)  Independente da plataforma: programas executáveis em diferentes sistemas operativos  Muito utilizada na indústria 2013/2014 Fundamentos de Programação 4
  • 5. 2013/2014 Fundamentos de Programação 5 Fonte: http://trendyskills.com/
  • 6. JVM Compilador de Java (javac.exe) Código em bytecode Java (linguagem máquina para JVM) (Greeter.class) Código fonte em Java (e.g., Greeter.java) 2013/2014 Fundamentos de Programação 6 JavaVirtual Machine (MáquinaVirtual Java) Significa “texto escrito na linguagem Java”… Interpretador de linguagem máquina para a JVM (java.exe) Processador
  • 7.  Declaração e inicialização obrigatórias!  Declaração indica nome e tipo (conjunto dos valores)  Inicialização indica valor inicial  Utilizadas para guardar valores  Atribuição altera valor de variável 2013/2014 Fundamentos de Programação 7
  • 8. Snap! Java Observações - int i = 1; Declaração com inicialização. int gcd; if (m < n) gcd = m; else gcd = n; Declaração sem inicialização seguida de duas inicializações alternativas. prime = 2; Atribuição (se prime estiver já inicializada). i = i + 1; Incrementação (há melhores formas…). n = temporary; 2013/2014 Fundamentos de Programação 8 Não existe em Snap!, pelo que usa declaração e atribuição.
  • 9.  Declarar tão próximo quanto possível da primeira utilização  Declarar de modo a minimizar âmbito da variável  Inicializar logo que possível  Não inicializar apenas “para calar o compilador” 2013/2014 Fundamentos de Programação 9
  • 10. Tipo Descrição Bits Exemplos int Subconjunto dos inteiros. 32 int numberOfStudents; double Vírgula flutuante. Subconjunto dos racionais. 64 double averageGrade; boolean Booleanos ou lógicos. 8 boolean isPrime; char Caracteres. 16 char response; String Texto, cadeias de caracteres. - String studentName; 2013/2014 Fundamentos de Programação 10 Há mais!
  • 11. Tipo Descrição Bits byte Pequeno subconjunto dos inteiros. 8 short Subconjunto dos inteiros, entre byte e int. 16 long Subconjunto dos inteiros, maior que int. 64 float Vírgula flutuante. Subconjunto dos racionais , menor gama e menor precisão que double. 32 2013/2014 Fundamentos de Programação 11
  • 12.  Nomes de variáveis são identificadores  Identificadores não podem ser repetidos no mesmo contexto 2013/2014 Fundamentos de Programação 12
  • 13.  Constituídos por  letras (a, À, ε, …)  dígitos (0 a 9)  _  $  Primeiro caractere não pode ser dígito  Maiúsculas e minúsculas são distinguidas  Não podem ser palavras-chave do Java (e.g., for, while, int, if ou for) 2013/2014 Fundamentos de Programação 13
  • 14.  Primeira palavra em minúsculas  Restantes palavras com maiúscula inicial  Exemplo: numberOfStudents 2013/2014 Fundamentos de Programação 14
  • 15.  Em língua natural  Sem abreviaturas  Gramática correcta  Adequados à entidade que identificam  Claros  Significativos  Expressivos  Para variáveis, são continuação de «This variable stores the …» 2013/2014 Fundamentos de Programação 15 Há excepções, nomeadamente as que nos chegam do domínio da matemática e que ganharam estatuto de expressões idiomáticas nas linguagens de programação: i, j, m, n, x, y e algumas outras, sempre em casos muito particulares.
  • 16. Snap! Java Significado Tipo && e Booleano || ou Booleano ! não Booleano < menor Relacional <= menor ou igual Relacional > maior Relacional >= maior ou igual Relacional == igual Comparação != diferente Comparação 2013/2014 Fundamentos de Programação 16
  • 17. Snap! Java if (m < n) { gcd = m; } else { gcd = n; } if (grade < 10) { … } else if (grade < 12) { … } else { … } 2013/2014 Fundamentos de Programação 17 Pode-se omitir as chavetas quando contêm apenas uma instrução.
  • 18. Snap! Java initialization while (guard) { action progress } initialization do { action progress } while (guard); 2013/2014 Fundamentos de Programação 18 Pode-se omitir as chavetas quando contêm apenas uma instrução.
  • 19. Snap! Java System.out.print(something); System.out.println(something); 2013/2014 Fundamentos de Programação 19 Passa para a linha seguinte depois de escrever.
  • 20. Snap! Java public static int minimumOf(final int m, final int n) { if (m < n) return m; else return n; } int number = minimumOf(5, 7); 2013/2014 Fundamentos de Programação 20 A ver mais tarde…A ver mais tarde… Constante, inalterável.
  • 21.  Podem ser funções ou procedimentos  Funções – calculam e devolvem algum valor  Procedimentos – realizam uma dada acção 2013/2014 Fundamentos de Programação 21 A ver mais tarde…
  • 22.  Em programação orientada para objectos as rotinas são conhecidas por métodos  Podem ser de classe ou de instância  Métodos de classe – com static  Métodos de instância – sem static, a ver mais tarde 2013/2014 Fundamentos de Programação 22 Mais tarde distinguir-se-á operações e métodos. A ver mais tarde…
  • 23. public class Greeter { public static void main(final String[] arguments) { System.out.println("Hello world!"); } }  Ficheiro com o código fonte de classe tem de ter mesmo nome que classe e extensão .java  Método principal main(...) é um procedimento e é o primeiro método a ser invocado ao se executar um programa 2013/2014 Fundamentos de Programação 23
  • 24. public class GcdTester { // Precondition: m ≥ 0 and n ≥ 0 and either m ≠ 0 or n ≠ 0. public static int gcd(int m, int n) { while (m != 0) { final int temporary = m; m = n % m; n = temporary; } return n; } public static void main(final String[] arguments) { final int firstValue = 25; final int secondValue = 30; final int gcd = gcd(firstValue, secondValue); System.out.println("The GCD is " + gcd + "."); // or simply: // System.out.println("The GCD is " + gcd(25, 30) + "."); } } 2013/2014 Fundamentos de Programação 24
  • 25.  Java ignora  texto entre // e o fim da linha e  texto entre /* e */  Usados para  Comentar – clarificar código menos claro  Documentar – gerar documentação  Comentários Java iniciados com /** são documentação, que veremos mais tarde 2013/2014 Fundamentos de Programação 25
  • 26.  Usar para documentação  Evitar usar para comentar código menos claro 2013/2014 Fundamentos de Programação 26
  • 27.  Java  Variáveis  Instrução de selecção if-else  Instruções de iteração while e do-while  Rotinas: funções e procedimentos  Rotinas e métodos  Métodos de classe (static) vs. métodos de instância  Escrita no ecrã com System.out.println(…)  Método principal main(…)  Comentários e documentação 2013/2014 Fundamentos de Programação 27
  • 28.  Introdução à linguagem de programação Java 2013/2014 Fundamentos de Programação 28