Apresentação da semana 3 da unidade curricular de Introdução à Programação do DCTI do ISCTE-IUL. Alterações de Manuel Menezes de Sequeira sobre versão original por vários autores do DCTI, incluindo Luís Nunes e André Santos.
2. Das aulas anteriores… Algoritmos em pseudocódigo Variáveis Instruções de selecção Instruções de iteração Funções Listas 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 2
3. Fases da resolução de problemas 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] 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 3 3
4. Linguagem de programação orientada para objectos Paradigma dominante Existem outros paradigmas Programação procedimental Programação funcional Programação lógica Independente da plataforma: programas executáveis em diferentes sistemas operativos Muito utilizada na indústria Java 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 4
5. Código em bytecode Java (linguagem máquina para JVM) (Olá.class) Código fonte em Java (e.g., Olá.java) Compiladorde Java (javac.exe) JVM Java: construção 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 5 Java Virtual Machine (Máquina Virtual Java) Significa “texto escrito na linguagem Java”… Interpretador de linguagemmáquina para a JVM(java.exe) Processador
6. Variáveis 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 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 6
7. Variáveis: boas práticas 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” 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 7
11. Variáveis e identificadores Nomes de variáveis são identificadores Identificadores não podem ser repetidos no mesmo contexto 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 11
12. Identificadores: formato 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) 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 12
13. Identificadores: convenções para variáveis Primeira palavra em minúsculas Restantes palavras com maiúscula inicial Exemplo: numberOfStudents 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 13
14. Identificadores: boas práticas Em língua natural Sem abreviaturas Gramática correcta Adequados à entidade que identificam Claros Significativos Expressivos 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 14
20. Rotinas Podem ser funções ou procedimentos Funções – calculam e devolvem algum valor Procedimentos – realizam uma dada acção 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 20 A ver mais tarde…
21. Métodos 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 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 21
22. Helloworld! 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(...) é primeiro a ser invocado ao se executar um programa 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 22
23. Versão Java do MDC public class GcdTester { // Precondition: either m ≠ 0 or n ≠ 0. public static intgcd(int m, int n) { while (m != 0) { int temporary = m; m = n % m; n = temporary; } return n; } public static void main(final String[] arguments) { final intfirstValue = 25; final intsecondValue = 30; final intgcd = gcd(firstValue, secondValue); System.out.println("The GCD is " + gcd + "."); // or simply: // System.out.println("The GCD is " + gcd(25, 30) + "."); } } 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 23
24. Comentários Usados para clarificar código menos claro Java ignora texto entre // e o fim da linha e texto entre /* e */ “Comentários” iniciados com /** são documentação, que veremos mais tarde 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 24
25. A reter Java Variáveis Instrução de selecção if-else Instruções de iteração while e do-while Rotinas vs. 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 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 25
26. 2010/2011 26 A ler... Capítulos 1 a 4 do livro: Y. Daniel Liang, Introduction to Java Programming, 8.ª edição, Prentice-Hall, 2010. ISBN: 978-0-13-213080-6 Introdução à Programação - DCTI - ISCTE-IUL 26
27. Sumário Introdução à linguagem de programação Java 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 27