Semana  1: Programação como arte de resolver problemas, algoritmos e problemas, pseudocódigo
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Semana 1: Programação como arte de resolver problemas, algoritmos e problemas, pseudocódigo

  • 3,914 views
Uploaded on

Apresentação da semana 1 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......

Apresentação da semana 1 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.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
3,914
On Slideshare
3,722
From Embeds
192
Number of Embeds
4

Actions

Shares
Downloads
110
Comments
0
Likes
3

Embeds 192

http://www.jornaljava.com 181
http://storify.com 7
http://static.slidesharecdn.com 3
http://www.linkedin.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Aula 1 Programação como arte de resolver problemas Algoritmo como sequência finita de instruções que resolvem um dado problema Descrição de algoritmos em pseudocódigo
  • 2. Da aula anterior… Computador como máquina programável Conceitos de línguas naturais linguagens de programação de baixo e de alto nível linguagens máquina Noções de algoritmo e de programa 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 2 2
  • 3. Programar Compreender/analisar bem problema e dados envolvidos Averiguar melhor forma de resolver problema e representar os dados Determinar instruções duma linguagem de programação que resolvem (de forma genérica) esse problema Essas instruções formam um programa 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 3 3
  • 4. 2010/2011 4 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 Introdução à Programação - DCTI - ISCTE-IUL 4
  • 5. 2010/2011 5 Algoritmos (primeira abordagem) Como uma receita, mas mais precisa:Conjunto finito de regras, traduzíveis numa sequência de operações/instruções, que permitem resolver um determinado tipo de problema. Donald E. Knuth Introdução à Programação - DCTI - ISCTE-IUL 5
  • 6. 2010/2011 6 Algoritmo para fazer um bolo Introdução à Programação - DCTI - ISCTE-IUL Fonte: Fundamentos de Programação em Java 2 (Mendes e Marcelino, 2005, p. 7) 6
  • 7. 2010/2011 7 Algoritmo Método de resolução de problema Forma Conjunto de instruções a executar Ordem pela qual são executadas Pensar na estrutura ajuda programador a planificar programa antes de o escrever (codificar) numa linguagem de programação e a pensar numa linguagem próxima da sua – para um programador noviço, codificar directamente não é natural… Introdução à Programação - DCTI - ISCTE-IUL 7
  • 8. 2010/2011 8 Propriedades de um algoritmo Finitude – Tem de terminar Definitude – Todos os passos bem definidos Entradas – Zero ou mais, de conjunto bem definido Saídas – Uma ou mais, dependem das entradas Eficácia – Todas as operações executáveis (em tempo útil) Introdução à Programação - DCTI - ISCTE-IUL 8
  • 9. 2010/2011 9 Pseudocódigo Instruções em linguagem simplificada Facilita compreensão por humanos Não serve para programar directamente Descreve algoritmos Algoritmos implementáveis em diferentes linguagens de programação Introdução à Programação - DCTI - ISCTE-IUL
  • 10. 2010/2011 10 Pseudocódigo: dados Valores são números inteiros (para já…) Variáveis Guardam diferentes valores ao longo do tempo Identificadas por nome Variável i guarda valor 7: Introdução à Programação - DCTI - ISCTE-IUL i 7 10
  • 11. 2010/2011 11 Pseudocódigo: atribuição m←n – atribui valor de n a m, i.e., altera o valor de m para o valor contido em n Exemplo x← 2 y← 5 x←y y←y + 1 Introdução à Programação - DCTI - ISCTE-IUL x y x y 2 5 5 6 + 1 11
  • 12. 2010/2011 12 Pseudocódigo: instruções Se […], então […], senão, […]. Enquanto […], fazer […]. Fazer […] até que […]. Ler […] de/do/da […]. Escrever […] em/no/na […]. Introdução à Programação - DCTI - ISCTE-IUL …de selecção …de iteração, ciclos …de entrada/saída 12
  • 13. 2010/2011 13 Pseudocódigo: operações lógicas pɅq – “e”, conjunção das proposições p e q pVq – “ou”, disjunção das proposições p e q ¬p – “não”, negação da proposição p Introdução à Programação - DCTI - ISCTE-IUL 13
  • 14. 2010/2011 14 Pseudocódigo: operações aritméticas m+n – adição de m e n m-n – m subtraído de n m/n – quociente da divisão inteira de m por n m×n – produto de m e n m÷n – resto da divisão inteira de m por n Introdução à Programação - DCTI - ISCTE-IUL 14
  • 15. 2010/2011 15 Pseudocódigo: igualdade, diferença e operações relacionais m<n – valor da proposição “m é menor que n” m=n – valor da proposição “m é igual a n” m≠n – valor da proposição “m é diferente de n” Introdução à Programação - DCTI - ISCTE-IUL valores lógicos 15
  • 16. 2010/2011 16 Problema Qual o máximo divisor comum (mdc) de dois inteiros positivos arbitrários m e n, i.e., qual o valor de mdc(m, n)? Introdução à Programação - DCTI - ISCTE-IUL 16
  • 17. 2010/2011 17 Máximo divisor comum de m e n inteiros, positivos e arbitrários Entradas: m e n Saídas: mdc Condições a verificar pela saída: mdc = mdc(m, n) Ou seja: m e n são divisíveis por mdc e não há inteiro maior que mdc que seja divisor de m e n Introdução à Programação - DCTI - ISCTE-IUL x é divisível por y se o resto da divisão inteira de x por y for zero. 17
  • 18. 2010/2011 18 Propriedades conhecidas 0 < mdc(m, n), ou seja, 1 ≤ mdc(m, n) mdc(m, n) ≤ min(m, n) Introdução à Programação - DCTI - ISCTE-IUL Há mais… Porquê? 18
  • 19. 2010/2011 19 Algoritmo Entradas: m e ninteiros Saídas: mdcinteiro No quadro… Introdução à Programação - DCTI - ISCTE-IUL
  • 20. 2010/2011 20 Algoritmo Entradas: m e ninteiros Saídas: mdcinteiro Se m < n, então mdc←m, senão, mdc←n. Enquanto m ÷ mdc≠0 V n÷mdc≠ 0, fazer mdc← mdc - 1. Introdução à Programação - DCTI - ISCTE-IUL
  • 21. 2010/2011 21 Traçado do algoritmo Introdução à Programação - DCTI - ISCTE-IUL No quadro… 21
  • 22. 2010/2011 22 Algoritmos Múltiplas formas de resolver um problema! Não há algoritmos perfeitos… …mas há algoritmos “mais perfeitos” que outros (menos memória, mais rápidos, …) ⇓ Importante procurar soluções simples, claras, estruturadas e eficientes Introdução à Programação - DCTI - ISCTE-IUL 22
  • 23. 2010/2011 23 A reter Pseudocódigo Variáveis Instruções de selecção Iterações e ciclos Instruções de leitura/escrita Algoritmo Sequência finita de instruções que resolve um dado tipo de problema Introdução à Programação - DCTI - ISCTE-IUL 23
  • 24. 2010/2011 24 A ler... Capítulos 1 e 2 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 24
  • 25. 2010/2011 25 Sumário Programação como arte de resolver problemas Algoritmo como sequência finita de instruções que resolvem um dado problema Descrição de algoritmos em pseudocódigo Variáveis Instruções de selecção Iterações e ciclos Instruções de leitura/escrita Introdução à Programação - DCTI - ISCTE-IUL 25