Introdução à algoritmiaCarlos SantosLabMM 3 - NTC - DeCA - UAAula 02, 14-09-2012
O que é um programa?• Um programa é um conjunto de instruções que:  • tem como objetivo a resolução de um ou vários proble...
O que é programar?• É o acto de ordenar um conjunto de instruções pré-definidas de forma  lógica, com o objetivo de resolve...
Passos a seguir no acto de programar1. Definir o problema e identificar todas as suas especificidades;2. Escolher a estratégi...
1. Definição do problema• Identificar claramente:   • Qual o objetivo final a atingir com a resolução do problema?   • Quais ...
1. Definição do problema• Para dar resposta a estas questões devem ser definidas:  • Especificações de entrada (input de dado...
2. Estratégias ou métodos de resolução deproblemas• Estratégia Top-down  • baseada na divisão do problema em sub-problemas...
2. Estratégias ou métodos de resolução deproblemas• E na prática?  • divisão entre estratégias não é totalmente “estanque”...
3. Resolução do problema• ... desenvolver um algoritmo capaz de dar resposta a todas as  necessidades do problema.  • O qu...
Características de um algoritmo Os algoritmos, segundo Donald E. Knuth, têm cinco características importantes:  • Finitude...
Características de um algoritmo • Entrada   • Para a definição de um algoritmo é necessário identificar os dados de     entr...
Características de um algoritmo• Etapas fundamentais de um algoritmo:  • entrada de dados (input)  • processamento dos dad...
Desafio para a próxima OT• Exercício a lançar para recordar entrada e saída de dados com JavaScript  • enunciado lançado on...
Como “escrever” um algoritmo? Diferentes técnicas de representação:  • Pseudo-código     + linguagem próxima de língua nat...
Como “escrever” um algoritmo? • Fluxograma ou diagramas de blocos   + representação por diagramas padronizados   + objetiv...
Pseudo-código• Português estruturado e simplificado para evitar redundâncias• Menos rigoroso que as L.P. para facilitar o e...
Pseudo-código
Fluxograma• Conceito  • Representação padronizada, pela utilização de símbolos definidos, da    sequência de instruções e p...
Fluxograma• Principais símbolos utilizados num fluxograma ou num diagrama de blocos  (norma ISO 5807: 1985)
Fluxograma• Principais símbolos utilizados num fluxograma ou num diagrama de blocos  (norma ISO 5807: 1985)   X   X X X
Fluxogramas• Como desenhar?  • Papel e lápis são um excelente ponto de partida!  • Ferramentas específicas:     • Aplicaçõe...
E “no antigamente”? :)IBM Data Processing Techniques, FlowchartingTechniques (1969)http://www.fh-jena.de/~kleine/history/s...
Exemplos de aplicação• um recurso com exemplos básicos (pseudo-código e fluxograma)  • http://www.comp.dit.ie/rlawlor/prob_...
Como mudar um pneu furado de um carro?• que passos são necessário?
Como mudar um pneu furado de um carro?                               Ver possível solução em:                             ...
Exemplos• exemplo da troca de pneu furado e outros exemplos com diferentes níveis de  complexidade  • http://www.rff.com/flo...
Próximos SlideShares
Carregando em…5
×

(A02) LabMM3 - Introdução à programação

1.363 visualizações

Publicada em

Publicada em: Educação
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.363
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
136
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

(A02) LabMM3 - Introdução à programação

  1. 1. Introdução à algoritmiaCarlos SantosLabMM 3 - NTC - DeCA - UAAula 02, 14-09-2012
  2. 2. O que é um programa?• Um programa é um conjunto de instruções que: • tem como objetivo a resolução de um ou vários problemas; • é normalmente escrito com o apoio de uma linguagem de computador; • é interpretado e executado por uma máquina/computador.
  3. 3. O que é programar?• É o acto de ordenar um conjunto de instruções pré-definidas de forma lógica, com o objetivo de resolver um problema. • O que é a lógica ? • “É a ciência que estuda as leis e critérios de validade que regem o pensamento e a demonstração, ou seja, ciência dos princípios formais do raciocínio.” (Manzano, 2000: 3) • Usar o “raciocínio” lógico implica compreender os processos de geração de conhecimento, implica seguir uma sequência coerente e regular de acontecimentos.
  4. 4. Passos a seguir no acto de programar1. Definir o problema e identificar todas as suas especificidades;2. Escolher a estratégia ou método para a resolução do problema;3. Resolver o problema numa sequência lógica de instruções;4. Codificar essas instruções numa linguagem de programação (JavaScript, PHP, Actionscript, Pascal, Java, C, C++, Objective C,….);5. Testar e corrigir erros;6. Documentar o programa.
  5. 5. 1. Definição do problema• Identificar claramente: • Qual o objetivo final a atingir com a resolução do problema? • Quais os dados e que tipos de dados estão em causa? • Quais as variantes que o problema pode ter e em que situações? • Quais os limites dos dados?
  6. 6. 1. Definição do problema• Para dar resposta a estas questões devem ser definidas: • Especificações de entrada (input de dados) • Especificações de saída (output de dados) • Variações (condicionantes, variantes em função de determinadas condições)
  7. 7. 2. Estratégias ou métodos de resolução deproblemas• Estratégia Top-down • baseada na divisão do problema em sub-problemas resolvendo um a um para chegar ao todo. Abordagem dos problemas gerais para a especificidade. Aplica-se a programação estruturada.• Estratégia Bottom-up • baseada na divisão do problema em sub-problemas mas partindo das especificidades conhecidas, evolui definindo as condições de combinação das especificidades num todo complexo.• Estratégia tentativa-erro • sequência de tentativas e experiências até atingir a solução correta.
  8. 8. 2. Estratégias ou métodos de resolução deproblemas• E na prática? • divisão entre estratégias não é totalmente “estanque”; • uma combinação de métodos é aplicada dependendo do problema e da experiência do programador.• 1ª regra na adoção de estratégias é não “desesperar” perante um problema que pode parecer demasiado complicado!
  9. 9. 3. Resolução do problema• ... desenvolver um algoritmo capaz de dar resposta a todas as necessidades do problema. • O que é um algoritmo? • Um algoritmo é uma sequência de instruções delimitadas, um conjunto de passos claros e objetivos, que permitem resolver um problema ou problemas.• O acto de construir algoritmos é programar! • Descrever algoritmos consiste na representação gráfica ou numa linguagem próxima do homem dos processos de resolução e surge como um passo intermédio à codificação numa linguagem de computador.
  10. 10. Características de um algoritmo Os algoritmos, segundo Donald E. Knuth, têm cinco características importantes: • Finitude • Todos os passos definidos num algoritmo têm de ter um fim previsto, não podem ser deixados condicionantes que levem à infinitude. • Definitude • Um algoritmo e os seus passos têm de ser definidos até à exaustão, não pode ser deixada qualquer ambiguidade que leve à indefinição de instruções para o computador. (Donald E. Knuth, "Fundamental algorithms", V1 de "The Art of Computer Programming", 2ª edição, Addison- Wesley Publishing Company, Reading, Massachusetts, 1973.)
  11. 11. Características de um algoritmo • Entrada • Para a definição de um algoritmo é necessário identificar os dados de entrada, se existirem. • Saída • O algoritmo procura a resolução de um problema e portanto terá de produzir dados de saída, é necessário identificar os dados ou métodos de saída. • Eficácia • Os passos de um algoritmo não devem ultrapassar um nível de complexidade que não possam ser entendidos ou executados pelo programador; o que leva a problemas em implementar, testar e corrigir.
  12. 12. Características de um algoritmo• Etapas fundamentais de um algoritmo: • entrada de dados (input) • processamento dos dados • output de dados (output)
  13. 13. Desafio para a próxima OT• Exercício a lançar para recordar entrada e saída de dados com JavaScript • enunciado lançado online • resolução em casa • esclarecimento de dúvidas online e na OT
  14. 14. Como “escrever” um algoritmo? Diferentes técnicas de representação: • Pseudo-código + linguagem próxima de língua natural + facilidade de representação e entendimento - pode conduzir a erros de interpretação - menor objetividade
  15. 15. Como “escrever” um algoritmo? • Fluxograma ou diagramas de blocos + representação por diagramas padronizados + objetivo e sintético - exige o conhecimento dos símbolos e métodos de representação de processos • Linguagem de programação • programadores experimentes têm a capacidade e o conhecimento necessário para escrever soluções de problemas diretamente na linguagem de programação. Não deve ser considerada uma técnica de representação de algoritmos
  16. 16. Pseudo-código• Português estruturado e simplificado para evitar redundâncias• Menos rigoroso que as L.P. para facilitar o entendimento• Cada expressão deve ser colocada numa linha separada, usar a indentação• Colocar comentários precedidos de *• Cada algoritmo deve ser delimitado por INICIO e um ou vários FIM• Termos e expressões reservadas em MAIÚSCULAS
  17. 17. Pseudo-código
  18. 18. Fluxograma• Conceito • Representação padronizada, pela utilização de símbolos definidos, da sequência de instruções e processos lógicos de um algoritmo.• Vantagens + objetividade + clareza na interpretação + facilita a transposição para qualquer linguagem de programação
  19. 19. Fluxograma• Principais símbolos utilizados num fluxograma ou num diagrama de blocos (norma ISO 5807: 1985)
  20. 20. Fluxograma• Principais símbolos utilizados num fluxograma ou num diagrama de blocos (norma ISO 5807: 1985) X X X X
  21. 21. Fluxogramas• Como desenhar? • Papel e lápis são um excelente ponto de partida! • Ferramentas específicas: • Aplicações locais: • Microsoft Visio • OmniGraffle (mac) • Online: • Gliffy
  22. 22. E “no antigamente”? :)IBM Data Processing Techniques, FlowchartingTechniques (1969)http://www.fh-jena.de/~kleine/history/software/IBM-FlowchartingTechniques-GC20-8152-1.pdf
  23. 23. Exemplos de aplicação• um recurso com exemplos básicos (pseudo-código e fluxograma) • http://www.comp.dit.ie/rlawlor/prob_solv/flowcharts/ch03%20Flowchart %20and%20Pseudocode%20Examples.pdf
  24. 24. Como mudar um pneu furado de um carro?• que passos são necessário?
  25. 25. Como mudar um pneu furado de um carro? Ver possível solução em: http://www.rff.com/flat_tire.htm
  26. 26. Exemplos• exemplo da troca de pneu furado e outros exemplos com diferentes níveis de complexidade • http://www.rff.com/flowchart_samples.htm

×