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 Padoca Calado

Apresentações semelhantes


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

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

2 Introdução à linguagem Java
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 2008

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

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) Máquina Virtual Java Processador Interpretador de linguagem máquina para a JVM 2008

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) 2008

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! 2008

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 2008

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

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 2008

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. 2008

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) 2008

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

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 2008

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

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 2008

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?) 2008

18 Algoritmo do MDC 1 ( no quadro ) 2 3 4 5 6 7 8 2008

19 Algoritmo do MDC se m < n então k = m senão k = n
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 2008

20 Programa MDC em Java public class CalculadorDoMDC {
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 + "."); } 2008

21 Comentários ao programa
1 ( no quadro ) 2 3 4 5 6 7 8 2008

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

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

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

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 2008

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) 2008

27 Algoritmo do MMC 1 ( no quadro ) 2 3 4 5 6 7 8 2007/2008

28 Algoritmo do MMC 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 escrever mmc // enviar resultado para o monitor 2008

29 Programa MMC em Java (1) public class CalcMMC1 {
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 + "."); 2008

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 + "."); 2008

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 + "."); 2008

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 2008

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] 2008

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 2008

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: 2008

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 2008


Carregar ppt "Programação II Licenciatura de Ciências da Computação Padoca Calado"

Apresentações semelhantes


Anúncios Google