SlideShare ist ein Scribd-Unternehmen logo
1 von 28
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

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Linguagem SQL
Linguagem SQLLinguagem SQL
Linguagem SQL
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL Basico
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 
Banco De Dados
Banco De DadosBanco De Dados
Banco De Dados
 
Lógica de Programação - Vetor
Lógica de Programação - VetorLógica de Programação - Vetor
Lógica de Programação - Vetor
 
Linguagem C - Vetores
Linguagem C - VetoresLinguagem C - Vetores
Linguagem C - Vetores
 
POO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosPOO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a Objetos
 
JAVA - Orientação a Objetos
JAVA - Orientação a ObjetosJAVA - Orientação a Objetos
JAVA - Orientação a Objetos
 
Programação Orientado a Objetos
Programação Orientado a ObjetosProgramação Orientado a Objetos
Programação Orientado a Objetos
 
Programação Orientada a Objetos parte 1
Programação Orientada a Objetos parte 1Programação Orientada a Objetos parte 1
Programação Orientada a Objetos parte 1
 
POO - Aula 1
POO - Aula 1POO - Aula 1
POO - Aula 1
 
Algoritmo aula 01-f
Algoritmo   aula 01-fAlgoritmo   aula 01-f
Algoritmo aula 01-f
 
Fundamentos de banco de dados 01 indrodução
Fundamentos de banco de dados   01 indroduçãoFundamentos de banco de dados   01 indrodução
Fundamentos de banco de dados 01 indrodução
 
06 Modelagem de banco de dados: Modelo Lógico
06  Modelagem de banco de dados: Modelo Lógico06  Modelagem de banco de dados: Modelo Lógico
06 Modelagem de banco de dados: Modelo Lógico
 
Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01   Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01
 
Linguagem C 07 Registros
Linguagem C 07 RegistrosLinguagem C 07 Registros
Linguagem C 07 Registros
 
Introducao ao C#
Introducao ao C#Introducao ao C#
Introducao ao C#
 
Banco de Dados Conceitos
Banco de Dados ConceitosBanco de Dados Conceitos
Banco de Dados Conceitos
 
Sistemas Distribuidos Java
Sistemas Distribuidos JavaSistemas Distribuidos Java
Sistemas Distribuidos Java
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 

Andere mochten auch

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...Manuel Menezes de Sequeira
 
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 – ...Manuel Menezes de Sequeira
 
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...Manuel Menezes de Sequeira
 
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çãoManuel Menezes de Sequeira
 
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...Manuel Menezes de Sequeira
 
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...Manuel Menezes de Sequeira
 
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 ...Manuel Menezes de Sequeira
 
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...Manuel Menezes de Sequeira
 
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...Manuel Menezes de Sequeira
 
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 ...Manuel Menezes de Sequeira
 
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...Manuel Menezes de Sequeira
 
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...Manuel Menezes de Sequeira
 
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...Manuel Menezes de Sequeira
 
Guia prático para criar algoritmos
Guia prático para criar algoritmosGuia prático para criar algoritmos
Guia prático para criar algoritmosMauro Pereira
 
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 aspectosManuel Menezes de Sequeira
 

Andere mochten auch (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
 

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

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 Manuel Menezes de Sequeira
 
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 CJose Augusto Cintra
 
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 embarcadoshenriqueprossi
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem Capolllorj
 
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.pptxjudsonBg3
 
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 1João Piedade
 
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çãoJose Augusto Cintra
 
Cartilhado arduino ed10
Cartilhado arduino ed10Cartilhado arduino ed10
Cartilhado arduino ed10SEDUCCE
 
CartilhadoArduino_ed9.pdf
CartilhadoArduino_ed9.pdfCartilhadoArduino_ed9.pdf
CartilhadoArduino_ed9.pdfalexandre768088
 
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 CSchoolByte
 
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 CJoberthSilva
 

Ähnlich wie 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 ed10
Cartilhado arduino ed10Cartilhado arduino ed10
Cartilhado arduino ed10
 
CartilhadoArduino_ed9.pdf
CartilhadoArduino_ed9.pdfCartilhadoArduino_ed9.pdf
CartilhadoArduino_ed9.pdf
 
Cartilhado arduino ed1
Cartilhado arduino ed1Cartilhado arduino ed1
Cartilhado arduino ed1
 
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
 

Mehr von Manuel Menezes de Sequeira

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ânciasManuel Menezes de Sequeira
 
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, ScannerManuel Menezes de Sequeira
 
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 caracteresManuel Menezes de Sequeira
 
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 problemasManuel Menezes de Sequeira
 
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ênciaManuel Menezes de Sequeira
 
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 pacoteManuel Menezes de Sequeira
 
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...Manuel Menezes de Sequeira
 
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...Manuel Menezes de Sequeira
 
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)Manuel Menezes de Sequeira
 
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çãoManuel Menezes de Sequeira
 
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 utilizadorManuel Menezes de Sequeira
 
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ónicoManuel Menezes de Sequeira
 

Mehr von 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
 

Kürzlich hochgeladen

Orações subordinadas substantivas (andamento).pptx
Orações subordinadas substantivas (andamento).pptxOrações subordinadas substantivas (andamento).pptx
Orações subordinadas substantivas (andamento).pptxKtiaOliveira68
 
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptxthaisamaral9365923
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024Jeanoliveira597523
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxLuizHenriquedeAlmeid6
 
Simulado 2 Etapa - 2024 Proximo Passo.pdf
Simulado 2 Etapa  - 2024 Proximo Passo.pdfSimulado 2 Etapa  - 2024 Proximo Passo.pdf
Simulado 2 Etapa - 2024 Proximo Passo.pdfEditoraEnovus
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.silves15
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresLilianPiola
 
Governo Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 BrasilGoverno Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 Brasillucasp132400
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Mary Alvarenga
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfEditoraEnovus
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividadeMary Alvarenga
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxOsnilReis1
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalJacqueline Cerqueira
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxkarinedarozabatista
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?Rosalina Simão Nunes
 
ANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma AntigaANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma AntigaJúlio Sandes
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADOcarolinacespedes23
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBAline Santana
 

Kürzlich hochgeladen (20)

Orações subordinadas substantivas (andamento).pptx
Orações subordinadas substantivas (andamento).pptxOrações subordinadas substantivas (andamento).pptx
Orações subordinadas substantivas (andamento).pptx
 
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
 
Simulado 2 Etapa - 2024 Proximo Passo.pdf
Simulado 2 Etapa  - 2024 Proximo Passo.pdfSimulado 2 Etapa  - 2024 Proximo Passo.pdf
Simulado 2 Etapa - 2024 Proximo Passo.pdf
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
 
Governo Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 BrasilGoverno Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 Brasil
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdf
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividade
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem Organizacional
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?
 
ANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma AntigaANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
 
Em tempo de Quaresma .
Em tempo de Quaresma                            .Em tempo de Quaresma                            .
Em tempo de Quaresma .
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
 

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