SlideShare una empresa de Scribd logo
1 de 28
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... Snap!
 Computador como máquina programável
 Conceitos de
 línguas naturais
 linguagens de programação de baixo e alto nível
 linguagens máquina
 Noções de algoritmo e de programa
2013/2014 Fundamentos de Programação 22
 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
2013/2014 Fundamentos de Programação 33
2013/2014 4
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
Fundamentos de Programação 4
2013/2014 5
 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
Fundamentos de Programação 5
2013/2014 6Fundamentos de Programação 6
Fonte: Fundamentos de Programação em Java 2 (Mendes e Marcelino, 2005, p. 7)
2013/2014 7
 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…
Fundamentos de Programação 7
2013/2014 8
 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)
Fundamentos de Programação 8
2013/2014 9
 Instruções em linguagem visual
 Facilita compreensão por noviços
 Evita-se problemas sintáticos
 Obtém-se resultados visíveis imediatamente
 Tradução fácil para outras linguagens de
programação
Fundamentos de Programação
2013/2014 10
 Valores são números, texto, etc.
 Variáveis
 Guardam diferentes valores ao longo do tempo
 Identificadas por nome
 Variável n guarda valor 7:
Fundamentos de Programação 10
n
7
Mentirita! n é na
realidade uma
referência para um
objecto numérico
algures na memória.
2013/2014 11
 Referência para objecto com:
 tipo (e.g., número, texto, booleano, lista)
 Valor (e.g., 123, «Olá mundo!», verdadeiro)
 Definição
 Nome (reflecte o que a variável guarda)
 Valor inicial implícito (referência para número
com valor 0)
Fundamentos de Programação 11
2013/2014 12
 Variável normal
 Completar frase «Actor, esta variável guarda …»
 Variável para valores booleanos
 Completar frase «Actor, esta variável indica se …»
Fundamentos de Programação 12
2013/2014 13
 Variável:
 Declaração:
Fundamentos de Programação 13
n
0
No Snap! o valor por
omissão é 0 (zero).
2013/2014 14
 atribui o valor que se coloca na ranhura
à variável m
 Exemplo
Fundamentos de Programação 14
x
2
y
5
x
5
y
6
+ 1
2013/2014 Fundamentos de Programação 1515
…condicional e de
selecção
…de iteração, ciclos
…de entrada/saída
personalizado...
personalizado... personalizado...
2013/2014 Fundamentos de Programação 1616
conjunção
disjunção
negação
2013/2014 Fundamentos de Programação 1717
adição
subtracção
multiplicação
divisão
resto da divisão
2013/2014 Fundamentos de Programação 1818
igualdade
diferença
desigualdades
personalizado...
personalizado...
personalizado...
2013/2014 19
 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)?
Fundamentos de Programação 19
2013/2014 20
 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
Fundamentos de Programação 20
x é divisível por y se o resto da
divisão inteira de x por y for zero.
2013/2014 21
 0 < mdc(m, n), ou seja, 1 ≤ mdc(m, n)
 mdc(m, n) ≤ min(m, n)
Fundamentos de Programação 21
Porquê?
Há mais…
 Onde começar a procurar?
 Como evoluir?
 Quando parar?
2013/2014 Fundamentos de Programação 22
2013/2014 23
Entradas: m e n inteiros
Saídas: mdc inteiro
No Snap!...
Fundamentos de Programação
 Entradas: m e n inteiros
 Saídas: mdc inteiro
2013/2014 Fundamentos de Programação 24
2013/2014 25Fundamentos de Programação 25
No Snap!…
2013/2014 26
 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
Fundamentos de Programação 26
Em muitos casos
pode-se demonstrar
que um algoritmo é
óptimo relativamente
a uma dada
característica.
2013/2014 27
 Revisão do Snap!
 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
Fundamentos de Programação 27
2013/2014 28
 Programação como arte de resolver problemas
 Algoritmo como sequência finita de instruções
que resolvem um dado problema
 Implementação de algoritmos em Snap!
 Variáveis
 Instruções de selecção
 Iterações e ciclos
 Instruções de leitura/escrita
Fundamentos de Programação 28

Más contenido relacionado

La actualidad más candente

Decoupagem do roteiro - VIDEOCLIPE
Decoupagem do roteiro - VIDEOCLIPEDecoupagem do roteiro - VIDEOCLIPE
Decoupagem do roteiro - VIDEOCLIPE
leticiag94
 
História da informática
História da informáticaHistória da informática
História da informática
Aron Sporkens
 
Projeto Meios de Comunicaçao prof Rosane 2012 -
Projeto Meios de Comunicaçao  prof Rosane 2012 -Projeto Meios de Comunicaçao  prof Rosane 2012 -
Projeto Meios de Comunicaçao prof Rosane 2012 -
Rosane Ribeiro
 
Trabalho De Robotica Final1
Trabalho De Robotica Final1Trabalho De Robotica Final1
Trabalho De Robotica Final1
HELDERTRBALHO
 
História e evolução da informática
História e evolução da informáticaHistória e evolução da informática
História e evolução da informática
Fabiano Santos
 
50 questoes de informatica basica
50 questoes de informatica basica50 questoes de informatica basica
50 questoes de informatica basica
Fernanda Firmino
 

La actualidad más candente (20)

Arquitetura de Von Neumann
Arquitetura de Von NeumannArquitetura de Von Neumann
Arquitetura de Von Neumann
 
Decoupagem do roteiro - VIDEOCLIPE
Decoupagem do roteiro - VIDEOCLIPEDecoupagem do roteiro - VIDEOCLIPE
Decoupagem do roteiro - VIDEOCLIPE
 
História da informática
História da informáticaHistória da informática
História da informática
 
Plano de curso 9 ano
Plano de curso 9 anoPlano de curso 9 ano
Plano de curso 9 ano
 
Orçamento e Reperage
Orçamento e ReperageOrçamento e Reperage
Orçamento e Reperage
 
Revestimentos ceramicos escopo bsico
Revestimentos ceramicos escopo bsicoRevestimentos ceramicos escopo bsico
Revestimentos ceramicos escopo bsico
 
aulalinguagemaudiovisual01-120316095342-phpapp01.pdf
aulalinguagemaudiovisual01-120316095342-phpapp01.pdfaulalinguagemaudiovisual01-120316095342-phpapp01.pdf
aulalinguagemaudiovisual01-120316095342-phpapp01.pdf
 
Projeto Meios de Comunicaçao prof Rosane 2012 -
Projeto Meios de Comunicaçao  prof Rosane 2012 -Projeto Meios de Comunicaçao  prof Rosane 2012 -
Projeto Meios de Comunicaçao prof Rosane 2012 -
 
Trabalho De Robotica Final1
Trabalho De Robotica Final1Trabalho De Robotica Final1
Trabalho De Robotica Final1
 
Guião Literário
Guião LiterárioGuião Literário
Guião Literário
 
Arquitetura de computadores Módulo 4
Arquitetura de computadores Módulo 4Arquitetura de computadores Módulo 4
Arquitetura de computadores Módulo 4
 
Introdução à linguagem audiovisual
Introdução à linguagem audiovisualIntrodução à linguagem audiovisual
Introdução à linguagem audiovisual
 
E trabalhar poesia em sala de aula
E trabalhar poesia em sala de aulaE trabalhar poesia em sala de aula
E trabalhar poesia em sala de aula
 
História e evolução da informática
História e evolução da informáticaHistória e evolução da informática
História e evolução da informática
 
Elementos narrativos do cinema - Parte 2 (Ângulos e Efeitos Psicológicos)
Elementos narrativos do cinema - Parte 2 (Ângulos e Efeitos Psicológicos)Elementos narrativos do cinema - Parte 2 (Ângulos e Efeitos Psicológicos)
Elementos narrativos do cinema - Parte 2 (Ângulos e Efeitos Psicológicos)
 
Planodeaula
PlanodeaulaPlanodeaula
Planodeaula
 
Animação 1 - Storyboard
Animação 1 - StoryboardAnimação 1 - Storyboard
Animação 1 - Storyboard
 
Texto informativo 1
Texto informativo 1Texto informativo 1
Texto informativo 1
 
50 questoes de informatica basica
50 questoes de informatica basica50 questoes de informatica basica
50 questoes de informatica basica
 
A narrativa cinematográfica - André Gaudreault e François Jost - capítulos 5 e 6
A narrativa cinematográfica - André Gaudreault e François Jost - capítulos 5 e 6A narrativa cinematográfica - André Gaudreault e François Jost - capítulos 5 e 6
A narrativa cinematográfica - André Gaudreault e François Jost - capítulos 5 e 6
 

Destacado

Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
Mauro Pereira
 
Apostila - Linguagem de Programação I
Apostila - Linguagem de Programação IApostila - Linguagem de Programação I
Apostila - Linguagem de Programação I
Sidney Roberto
 

Destacado (20)

4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de Programação4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de Programação
 
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
 
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
 
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
 
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...
 
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
 
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
 
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
 
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...
 
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
 
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
 
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
 
Semana 1: Programação como arte de resolver problemas, algoritmos e problema...
Semana  1: Programação como arte de resolver problemas, algoritmos e problema...Semana  1: Programação como arte de resolver problemas, algoritmos e problema...
Semana 1: Programação como arte de resolver problemas, algoritmos e problema...
 
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
 
Guia prático para criar algoritmos
Guia prático para criar algoritmosGuia prático para criar algoritmos
Guia prático para criar algoritmos
 
Apostila - Linguagem de Programação I
Apostila - Linguagem de Programação IApostila - Linguagem de Programação I
Apostila - Linguagem de Programação I
 
Programação Orientada por Objectos - Aula 6
Programação Orientada por Objectos - Aula 6Programação Orientada por Objectos - Aula 6
Programação Orientada por Objectos - Aula 6
 
Programação Orientada por Objectos - Aula 1
Programação Orientada por Objectos - Aula 1Programação Orientada por Objectos - Aula 1
Programação Orientada por Objectos - Aula 1
 
Introdução à programação orientada para aspectos
Introdução à programação orientada para aspectosIntrodução à programação orientada para aspectos
Introdução à programação orientada para aspectos
 

Similar a 2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de Programação

Primeira aula sp1
Primeira aula sp1Primeira aula sp1
Primeira aula sp1
gastaovalle
 
Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2
Robson Ferreira
 
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdfTREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
ssuser059c2c1
 
C a linguagem de programação
C   a linguagem de programaçãoC   a linguagem de programação
C a linguagem de programação
Andrei Bastos
 
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013
Gabriel Rubens
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigo
Mauro Pereira
 
Lógica de programação 1
Lógica de programação 1Lógica de programação 1
Lógica de programação 1
Diego Rodrigues
 

Similar a 2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de Programação (20)

Primeira aula sp1
Primeira aula sp1Primeira aula sp1
Primeira aula sp1
 
Programacao Funcional em Java, Expressoes Lambda
Programacao Funcional em Java, Expressoes LambdaProgramacao Funcional em Java, Expressoes Lambda
Programacao Funcional em Java, Expressoes Lambda
 
Profissão programador práticas para melhoria contínua fatec pg setembro 2013
Profissão programador práticas para melhoria contínua fatec pg setembro 2013Profissão programador práticas para melhoria contínua fatec pg setembro 2013
Profissão programador práticas para melhoria contínua fatec pg setembro 2013
 
FC-Logic
FC-LogicFC-Logic
FC-Logic
 
Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2
 
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdfTREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
 
C a linguagem de programação
C   a linguagem de programaçãoC   a linguagem de programação
C a linguagem de programação
 
Algoritmos - Aula 04 A - Principios de Resolucao de Problemas
Algoritmos - Aula 04 A - Principios de Resolucao de ProblemasAlgoritmos - Aula 04 A - Principios de Resolucao de Problemas
Algoritmos - Aula 04 A - Principios de Resolucao de Problemas
 
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOCURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
 
C curso - notas de aula
C   curso - notas de aulaC   curso - notas de aula
C curso - notas de aula
 
4-Introducao programacao-convertido.pptx
4-Introducao programacao-convertido.pptx4-Introducao programacao-convertido.pptx
4-Introducao programacao-convertido.pptx
 
01 fundamentos de programação
01   fundamentos de programação01   fundamentos de programação
01 fundamentos de programação
 
Macro br
Macro brMacro br
Macro br
 
Logica usando c_-_aula_1
Logica usando c_-_aula_1Logica usando c_-_aula_1
Logica usando c_-_aula_1
 
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013
 
mod1-algoritmia
mod1-algoritmiamod1-algoritmia
mod1-algoritmia
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigo
 
portugol
portugolportugol
portugol
 
Introdução a programação
Introdução a programaçãoIntrodução a programação
Introdução a programação
 
Lógica de programação 1
Lógica de programação 1Lógica de programação 1
Lógica de programação 1
 

Más de Manuel Menezes de Sequeira

Más de Manuel Menezes de Sequeira (15)

Semana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instânciasSemana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
 
Semana 9: toString, classes, instâncias e objectos, Scanner
Semana  9: toString, classes, instâncias e objectos, ScannerSemana  9: toString, classes, instâncias e objectos, Scanner
Semana 9: toString, classes, instâncias e objectos, Scanner
 
Semana 8: Classes e instâncias, cadeias de caracteres
Semana  8: Classes e instâncias, cadeias de caracteresSemana  8: Classes e instâncias, cadeias de caracteres
Semana 8: Classes e instâncias, cadeias de caracteres
 
Semana 6: Matrizes multidimensionais, estratégias de resolução de problemas
Semana  6: Matrizes multidimensionais, estratégias de resolução de problemasSemana  6: Matrizes multidimensionais, estratégias de resolução de problemas
Semana 6: Matrizes multidimensionais, estratégias de resolução de problemas
 
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referênciaSemana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
 
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana  4: Atribuições especiais, matrizes, ciclos, classes pacoteSemana  4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacote
 
Semana 3: Introdução à linguagem de programação Java
Semana  3: Introdução à linguagem de programação Java Semana  3: Introdução à linguagem de programação Java
Semana 3: Introdução à linguagem de programação Java
 
Semana 2: Funções e listas, variáveis
Semana  2: Funções e listas, variáveisSemana  2: Funções e listas, variáveis
Semana 2: Funções e listas, variáveis
 
Semana 0: Computadores, linguagens e linguagens de programação, Noções de al...
Semana  0: Computadores, linguagens e linguagens de programação, Noções de al...Semana  0: Computadores, linguagens e linguagens de programação, Noções de al...
Semana 0: Computadores, linguagens e linguagens de programação, Noções de al...
 
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
 
Eng.ª do Software - 10. Testes de software
Eng.ª do Software - 10. Testes de softwareEng.ª do Software - 10. Testes de software
Eng.ª do Software - 10. Testes de software
 
Eng.ª do Software - 9. Verificação e validação
Eng.ª do Software - 9. Verificação e validaçãoEng.ª do Software - 9. Verificação e validação
Eng.ª do Software - 9. Verificação e validação
 
Eng.ª do Software - 8. Desenho de interfaces com o utilizador
Eng.ª do Software - 8. Desenho de interfaces com o utilizadorEng.ª do Software - 8. Desenho de interfaces com o utilizador
Eng.ª do Software - 8. Desenho de interfaces com o utilizador
 
Eng.ª do Software - 7. Desenho arquitectónico
Eng.ª do Software - 7. Desenho arquitectónicoEng.ª do Software - 7. Desenho arquitectónico
Eng.ª do Software - 7. Desenho arquitectónico
 
Eng.ª do Software - 6. Gestão de projectos
Eng.ª do Software - 6. Gestão de projectosEng.ª do Software - 6. Gestão de projectos
Eng.ª do Software - 6. Gestão de projectos
 

Último

2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
LeloIurk1
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
TailsonSantos1
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
LeloIurk1
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
AntonioVieira539017
 
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdfGEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
RavenaSales1
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
WagnerCamposCEA
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
marlene54545
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
rosenilrucks
 

Último (20)

2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
Seminário Biologia e desenvolvimento da matrinxa.pptx
Seminário Biologia e desenvolvimento da matrinxa.pptxSeminário Biologia e desenvolvimento da matrinxa.pptx
Seminário Biologia e desenvolvimento da matrinxa.pptx
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
Camadas da terra -Litosfera conteúdo 6º ano
Camadas da terra -Litosfera  conteúdo 6º anoCamadas da terra -Litosfera  conteúdo 6º ano
Camadas da terra -Litosfera conteúdo 6º ano
 
praticas experimentais 1 ano ensino médio
praticas experimentais 1 ano ensino médiopraticas experimentais 1 ano ensino médio
praticas experimentais 1 ano ensino médio
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
Nós Propomos! Autocarros Elétricos - Trabalho desenvolvido no âmbito de Cidad...
Nós Propomos! Autocarros Elétricos - Trabalho desenvolvido no âmbito de Cidad...Nós Propomos! Autocarros Elétricos - Trabalho desenvolvido no âmbito de Cidad...
Nós Propomos! Autocarros Elétricos - Trabalho desenvolvido no âmbito de Cidad...
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdfGEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
 

2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de Programação

  • 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... Snap!
  • 2.  Computador como máquina programável  Conceitos de  línguas naturais  linguagens de programação de baixo e alto nível  linguagens máquina  Noções de algoritmo e de programa 2013/2014 Fundamentos de Programação 22
  • 3.  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 2013/2014 Fundamentos de Programação 33
  • 4. 2013/2014 4 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 Fundamentos de Programação 4
  • 5. 2013/2014 5  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 Fundamentos de Programação 5
  • 6. 2013/2014 6Fundamentos de Programação 6 Fonte: Fundamentos de Programação em Java 2 (Mendes e Marcelino, 2005, p. 7)
  • 7. 2013/2014 7  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… Fundamentos de Programação 7
  • 8. 2013/2014 8  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) Fundamentos de Programação 8
  • 9. 2013/2014 9  Instruções em linguagem visual  Facilita compreensão por noviços  Evita-se problemas sintáticos  Obtém-se resultados visíveis imediatamente  Tradução fácil para outras linguagens de programação Fundamentos de Programação
  • 10. 2013/2014 10  Valores são números, texto, etc.  Variáveis  Guardam diferentes valores ao longo do tempo  Identificadas por nome  Variável n guarda valor 7: Fundamentos de Programação 10 n 7 Mentirita! n é na realidade uma referência para um objecto numérico algures na memória.
  • 11. 2013/2014 11  Referência para objecto com:  tipo (e.g., número, texto, booleano, lista)  Valor (e.g., 123, «Olá mundo!», verdadeiro)  Definição  Nome (reflecte o que a variável guarda)  Valor inicial implícito (referência para número com valor 0) Fundamentos de Programação 11
  • 12. 2013/2014 12  Variável normal  Completar frase «Actor, esta variável guarda …»  Variável para valores booleanos  Completar frase «Actor, esta variável indica se …» Fundamentos de Programação 12
  • 13. 2013/2014 13  Variável:  Declaração: Fundamentos de Programação 13 n 0 No Snap! o valor por omissão é 0 (zero).
  • 14. 2013/2014 14  atribui o valor que se coloca na ranhura à variável m  Exemplo Fundamentos de Programação 14 x 2 y 5 x 5 y 6 + 1
  • 15. 2013/2014 Fundamentos de Programação 1515 …condicional e de selecção …de iteração, ciclos …de entrada/saída personalizado... personalizado... personalizado...
  • 16. 2013/2014 Fundamentos de Programação 1616 conjunção disjunção negação
  • 17. 2013/2014 Fundamentos de Programação 1717 adição subtracção multiplicação divisão resto da divisão
  • 18. 2013/2014 Fundamentos de Programação 1818 igualdade diferença desigualdades personalizado... personalizado... personalizado...
  • 19. 2013/2014 19  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)? Fundamentos de Programação 19
  • 20. 2013/2014 20  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 Fundamentos de Programação 20 x é divisível por y se o resto da divisão inteira de x por y for zero.
  • 21. 2013/2014 21  0 < mdc(m, n), ou seja, 1 ≤ mdc(m, n)  mdc(m, n) ≤ min(m, n) Fundamentos de Programação 21 Porquê? Há mais…
  • 22.  Onde começar a procurar?  Como evoluir?  Quando parar? 2013/2014 Fundamentos de Programação 22
  • 23. 2013/2014 23 Entradas: m e n inteiros Saídas: mdc inteiro No Snap!... Fundamentos de Programação
  • 24.  Entradas: m e n inteiros  Saídas: mdc inteiro 2013/2014 Fundamentos de Programação 24
  • 25. 2013/2014 25Fundamentos de Programação 25 No Snap!…
  • 26. 2013/2014 26  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 Fundamentos de Programação 26 Em muitos casos pode-se demonstrar que um algoritmo é óptimo relativamente a uma dada característica.
  • 27. 2013/2014 27  Revisão do Snap!  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 Fundamentos de Programação 27
  • 28. 2013/2014 28  Programação como arte de resolver problemas  Algoritmo como sequência finita de instruções que resolvem um dado problema  Implementação de algoritmos em Snap!  Variáveis  Instruções de selecção  Iterações e ciclos  Instruções de leitura/escrita Fundamentos de Programação 28