SlideShare una empresa de Scribd logo
1 de 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

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Sistema operacional introdução
Sistema operacional introduçãoSistema operacional introdução
Sistema operacional introdução
 
Aula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de ComputadoresAula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de Computadores
 
Introdução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosIntrodução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos Básicos
 
Dispositivos móveis
Dispositivos móveisDispositivos móveis
Dispositivos móveis
 
Visualg
VisualgVisualg
Visualg
 
Algoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoAlgoritmos - Lógica de Programação
Algoritmos - Lógica de Programação
 
Aula 04 - Medidas de Armazenamento
Aula 04 - Medidas de ArmazenamentoAula 04 - Medidas de Armazenamento
Aula 04 - Medidas de Armazenamento
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threads
 
POO - 11 - Prática de Herança
POO - 11 - Prática de HerançaPOO - 11 - Prática de Herança
POO - 11 - Prática de Herança
 
Comandos do linux
Comandos do linuxComandos do linux
Comandos do linux
 
Slide placa mãe
Slide placa mãeSlide placa mãe
Slide placa mãe
 
Memórias
MemóriasMemórias
Memórias
 
Java modulo 01 - Introdução
Java modulo 01 - IntroduçãoJava modulo 01 - Introdução
Java modulo 01 - Introdução
 
Historia Sistema Operacional Linux
Historia Sistema Operacional LinuxHistoria Sistema Operacional Linux
Historia Sistema Operacional Linux
 
Aula 04 barramentos de expansão
Aula 04   barramentos de expansãoAula 04   barramentos de expansão
Aula 04 barramentos de expansão
 
Aula 01 chipset
Aula 01   chipsetAula 01   chipset
Aula 01 chipset
 
SSD - Solid State Drive
SSD - Solid State DriveSSD - Solid State Drive
SSD - Solid State Drive
 
Informatica basica
Informatica basicaInformatica basica
Informatica basica
 
Manual de portugol
Manual de portugolManual de portugol
Manual de portugol
 
Evolução dos sistemas operativos
Evolução dos sistemas operativosEvolução dos sistemas operativos
Evolução dos sistemas operativos
 

Destacado

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
 

Destacado (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
 

Similar a 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
 

Similar 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 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
 

Más de 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
 

Más 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

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
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesMary Alvarenga
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdfJorge Andrade
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxleandropereira983288
 
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxIsabelaRafael2
 
Lírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptxLírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptxfabiolalopesmartins1
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalJacqueline Cerqueira
 
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
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 
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
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveaulasgege
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniCassio Meira Jr.
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOColégio Santa Teresinha
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasRosalina Simão Nunes
 
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
 
Slides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSlides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSilvana Silva
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.keislayyovera123
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfAdrianaCunha84
 

Último (20)

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
 
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das Mães
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptx
 
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
 
Em tempo de Quaresma .
Em tempo de Quaresma                            .Em tempo de Quaresma                            .
Em tempo de Quaresma .
 
Lírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptxLírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptx
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem Organizacional
 
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)
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 
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?
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
 
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
 
Slides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSlides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptx
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.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