A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Programação II Licenciatura de Ciências da Computação Original: Docentes ISCTE Padoca Calado.

Apresentações semelhantes


Apresentação em tema: "Programação II Licenciatura de Ciências da Computação Original: Docentes ISCTE Padoca Calado."— Transcrição da apresentação:

1 Programação II Licenciatura de Ciências da Computação Original: Docentes ISCTE Padoca Calado

2 Aula 2 Introdução à linguagem Java

3 da Aula 1... Programar: resolver problemas de modo a obter soluções finitas, bem definidas e eficazes Tipos de linguagens: naturais, de programação de alto nível, máquina, etc. Necessidade de um meio de tradução: LPAN LPBN Tradução realizada através de programas: compiladores

4 O que é a linguagem Java? Vai uma chávena?

5 Linguagem de programação Java cód-fonte: Ling. Java (p.e. Ola.java) byte-codes: Linguagem para a máquina virtual Java (JVM) (p.e. Ola.class) Compilador de Java (javac) Interpretador de linguagem máquina para a JVM Processador Máquina Virtual Java

6 Criar, compilar e executar um programa em JAVA Nota: esquema retirado do livro Fundamentos de Programação em Java 2 (Mendes e Marcelino, 2005, p. 21)

7 Exemplo de programa simples em Java // Benvindo.java: Este programa mostra no ecrã // a mensagem Benvindo ao JAVA! public class Benvindo { public static void main(String[] argumentos) { System.out.println(Benvindo ao JAVA!"); } Nota: a classe deve sempre ter o mesmo nome do ficheiro com o cód. fonte!

8 Arte de Resolver Problemas Diz-se que só se compreende realmente um assunto depois de o ter ensinado a alguém. Na realidade, só se compreende realmente um assunto depois de o ter ensinado a um computador. Donald E. Knuth

9 Resolução de um Problema/Tarefa (exemplo de algoritmo para fazer um bolo) Bolo Misturar os ingredientes Cozinhar o bolo Nota: esquema adaptado de Fundamentos de Programação em Java 2 (Mendes e Marcelino, 2005, p. 7)

10 Programação de computadores Início da aprendizagem da programação Fundamental: Desenvolver aptidões para criar soluções e para traduzir essas soluções em programas Aptidões para escrita de programas contendo: mecanismos de escolha de instruções mecanismos de repetição de instruções agregados (grupos) de dados relacionados

11 Algoritmo Descreve como um dado problema é resolvido Apresenta-se essencialmente como: Conjunto de acções a ser executado A ordem pela qual essas acções são executadas Ajudam o programador: Planificação do programa antes de o escrever (codificar) numa dada linguagem de programação Para o programador noviço, codificar directamente não é fantasticamente natural.

12 Algoritmo Método de resolução de um problema Características: Finitude: tem de terminar Definitude: cada passo bem definido Entradas: zero ou mais, de conjunto bem definido Saídas: uma ou mais, dependem das entradas Eficácia: operações todas executáveis (em tempo útil)

13 Problema Cálculo do máximo divisor comum de dois inteiros positivos (m e n)

14 Problema Cálculo do máximo divisor comum de dois inteiros positivos (m e n) Entradas: m e n Saídas: k, tal que k = mdc(m, n), i.e: m e n são divisíveis por k (o resto da divisão por k é zero), e não há nenhum número maior que k que divida m e n

15 Propriedades conhecidas 0 < mdc(m, n), ou seja, 1 <= mdc(m, n) mdc(m, n) <= min(m, n)

16 Descrever a solução usando apenas … (pseudo-código) Se … então …senão … Enquanto … fazer: … Fazer... até que:... Números e variáveis Operações lógicas: e, ou

17 Descrever a solução usando apenas … Operações lógico-aritméticas: x < y (x menor que y?), x + y (soma de x e y) x – y (subtracção de x e y) x / y (resultado da divisão de x por y) x * y (resultado da multiplicação de x por y) x % y (resto da divisão de x por y) x = y (x passa a ter o valor de y) x == y (x é igual a y?), x != y (x é diferente de y?)

18 Algoritmo do MDC 1 ( no quadro )

19 Algoritmo do MDC 1 ler m, n// ler 2 inteiros a partir do teclado se m < n então 2 k = m 3 senão 4 k = n 5 enquanto m % k != 0 ou n % k != 0 fazer: 6 k = k – 1 7 fim do enquanto 8 escrever k// enviar resultado para o monitor

20 Programa MDC em Java import java.util.Scanner; public class CalculadorDoMDC { public static void main(String[] args) { Scanner teclado = new Scanner (System.in); System.out.print ("Introduza um inteiro positivo: "); int m = teclado.nextInt(); System.out.print("Introduza outro inteiro positivo: "); int n = teclado.nextInt(); int k = 0; if(m < n) k = m; else k = n; while(m % k != 0 || n % k != 0) --k; System.out.println("O mdc entre " + m + e " + n + " é " + k + "."); }

21 Comentários ao programa 1 ( no quadro )

22 Traçado do programa em execução ( no projector )

23 2007/2008Introdução à Programação, Aula2 23 Traçado do programa em execução (exemplo)

24 Problema Cálculo do mínimo múltiplo comum de dois inteiros positivos (m e n)

25 Problema Cálculo do mínimo múltiplo comum de dois inteiros positivos (m e n) Entradas: m e n Saídas: mmc, tal que mmc = mmc(m, n), i.e: mmc é múltiplo de m e de n (o resto da divisão de mmc pelo menor entre m e n é zero) não há nenhum número menor que mmc que seja simultaneamente múltiplo de m e n

26 Propriedades conhecidas mmc (m, n) >= m e mmc (m, n) > 0 mmc (m, n) >= n e mmc (m, n) > 0 mmc (m, n) >= max (m, n)

27 2007/ Algoritmo do MMC 1 ( no quadro )

28 Algoritmo do MMC teclado ler m, n// ler 2 inteiros a partir do teclado se m > n então maior = m menor = n senão maior = n menor = m fim do se inicializar mmc = maior enquanto mmc % menor != 0 fazer: mmc = mmc + maior fim do enquanto monitor escrever mmc// enviar resultado para o monitor

29 Programa MMC em Java (1) import java.util.Scanner; public class CalcMMC1 { public static void main (String args[]) { Scanner teclado = new Scanner (System.in); System.out.print ("Introduza um inteiro positivo: "); int n = teclado.nextInt(); System.out.print ("Introduza outro inteiro positivo: "); int m = teclado.nextInt(); int maior, menor, mmc; if (n < m) {// Calcular o maior e o menor entre m e n maior = m; menor = n; } else { maior = n; menor = m; } mmc = maior;// Inicializar mmc while (mmc % menor != 0)// Calcular mmc mmc = mmc + maior; System.out.println("O m.m.c. entre " + m + " e " + n + " é " + mmc + "."); }

30 Programa MMC em Java (2) import java.util.Scanner; public class CalcMMC2 { public static void main (String args[]) { (...) int mmc; /* Calcular o maior e o menor entre m e n * atribuir a m o maior valor e a n o menor * Inicializar mmc com o maior dos valores */ if (n < m) mmc = m; else { mmc = n; n = m; m = mmc; } // Calcular mmc while (mmc % n != 0) mmc = mmc + m; System.out.println("O m.m.c. entre " + m + " e " + n + " é " + mmc + "."); }

31 Programa MMC em Java (3) import java.util.Scanner; public class CalcMMC2 { public static void main (String args[]) { (...) int mmc; /* Calcular o maior e o menor entre m e n * atribuir a m o maior valor e a n o menor * Inicializar mmc com o maior dos valores */ if ( m < n ) { mmc = n; n = m; m = mmc; } mmc = m ;// Calcular mmc while (mmc % n != 0) mmc = mmc + m; System.out.println("O m.m.c. entre " + m + " e " + n + " é " + mmc + "."); }

32 Algoritmos - optimização Não existe uma única forma de resolver um problema Não existe um algoritmo perfeito... mas Alguns algoritmos são mais perfeitos do que outros Importa tentar encontrar a solução mais simples, clara, estruturada, eficaz e eficiente para um dado problema

33 Fases da resolução de problemas Especificação [humano] Desenvolvimento do algoritmo [humano] Concretização do algoritmo na linguagem de progra- mação [humano] Tradução do programa para linguagem máquina [computador/compilador] Execução do programa para problema particular (e.g., mdc(131, 47)) [computador/JVM]

34 A reter... Java como linguagem de programação de alto nível Algoritmo: receita finita, definida, com entradas, com saídas e eficaz Programa: concretização de algoritmo numa linguagem de programação Compilador: traduz programa de linguagem de programação para linguagem máquina

35 A ler... Capítulos 1 e 2 e secções 3.1 e 3.2 do livro: Y. Daniel Liang, "Introduction to Java Programming", 5ª Edição, Prentice-Hall, ISBN:

36 Aula 2: Sumário Noções de algoritmo e de programa Programa: concretização de um algoritmo Descrição de um algoritmo: resolução através de pseudo-código Programação: arte de resolver problemas Fases da resolução dum problema usando um computador


Carregar ppt "Programação II Licenciatura de Ciências da Computação Original: Docentes ISCTE Padoca Calado."

Apresentações semelhantes


Anúncios Google