SlideShare a Scribd company logo
1 of 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

More Related Content

What's hot

Aula de inglês 38 uso de have to e has to
Aula de inglês 38   uso de have to e has toAula de inglês 38   uso de have to e has to
Aula de inglês 38 uso de have to e has to
pytheasenglish
 
Riscos naturais
Riscos naturaisRiscos naturais
Riscos naturais
Mayjö .
 
Conjunções e Locuções Conjuncionais
Conjunções e Locuções ConjuncionaisConjunções e Locuções Conjuncionais
Conjunções e Locuções Conjuncionais
Rosalina Simão Nunes
 
Massas de ar; perturbação frontal; tipos de precipitação
Massas de ar; perturbação frontal; tipos de precipitaçãoMassas de ar; perturbação frontal; tipos de precipitação
Massas de ar; perturbação frontal; tipos de precipitação
elsaki72
 
Variação da temperatura geografia
Variação da temperatura   geografia Variação da temperatura   geografia
Variação da temperatura geografia
Thepatriciamartins12
 

What's hot (20)

FT- coordenação e subordinação
FT-  coordenação e subordinaçãoFT-  coordenação e subordinação
FT- coordenação e subordinação
 
Funções Sintáticas - 9º Ano.doc
Funções Sintáticas - 9º Ano.docFunções Sintáticas - 9º Ano.doc
Funções Sintáticas - 9º Ano.doc
 
Aula de inglês 38 uso de have to e has to
Aula de inglês 38   uso de have to e has toAula de inglês 38   uso de have to e has to
Aula de inglês 38 uso de have to e has to
 
PPT6 -sintaxe-funções
PPT6 -sintaxe-funçõesPPT6 -sintaxe-funções
PPT6 -sintaxe-funções
 
Frase activa e frase passiva
Frase activa e frase passivaFrase activa e frase passiva
Frase activa e frase passiva
 
AULA 8 ANO - RESENHA CRÍTICA.pptx
AULA 8 ANO - RESENHA CRÍTICA.pptxAULA 8 ANO - RESENHA CRÍTICA.pptx
AULA 8 ANO - RESENHA CRÍTICA.pptx
 
Variabilidade da radiação solar geral
Variabilidade da radiação solar geralVariabilidade da radiação solar geral
Variabilidade da radiação solar geral
 
Atos de fala.pptx
Atos de fala.pptxAtos de fala.pptx
Atos de fala.pptx
 
Riscos naturais
Riscos naturaisRiscos naturais
Riscos naturais
 
Cena do Enforcado - Auto da Barca do Inferno
Cena do Enforcado - Auto da Barca do InfernoCena do Enforcado - Auto da Barca do Inferno
Cena do Enforcado - Auto da Barca do Inferno
 
A interjeição
A interjeiçãoA interjeição
A interjeição
 
Advérbio
AdvérbioAdvérbio
Advérbio
 
Conjunções e Locuções Conjuncionais
Conjunções e Locuções ConjuncionaisConjunções e Locuções Conjuncionais
Conjunções e Locuções Conjuncionais
 
Ficha formativa_ Recursos Expressivos (I)
Ficha formativa_ Recursos Expressivos (I)Ficha formativa_ Recursos Expressivos (I)
Ficha formativa_ Recursos Expressivos (I)
 
Conjugação pronominal reflexa
Conjugação pronominal reflexaConjugação pronominal reflexa
Conjugação pronominal reflexa
 
Materia do 9º ano portugues
Materia do 9º ano portuguesMateria do 9º ano portugues
Materia do 9º ano portugues
 
Ficha informativa textoargumentativo
Ficha informativa textoargumentativoFicha informativa textoargumentativo
Ficha informativa textoargumentativo
 
Massas de ar; perturbação frontal; tipos de precipitação
Massas de ar; perturbação frontal; tipos de precipitaçãoMassas de ar; perturbação frontal; tipos de precipitação
Massas de ar; perturbação frontal; tipos de precipitação
 
Variação da temperatura geografia
Variação da temperatura   geografia Variação da temperatura   geografia
Variação da temperatura geografia
 
Relação entre as palavras
Relação entre as palavrasRelação entre as palavras
Relação entre as palavras
 

Viewers also liked

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
 

Viewers also liked (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 to 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 to 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
 

More from Manuel Menezes de Sequeira

More from 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
 

Recently uploaded

8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
tatianehilda
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
TailsonSantos1
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
HELENO FAVACHO
 
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
 

Recently uploaded (20)

8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
 
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 ...
 
Araribá slides 9ano.pdf para os alunos do medio
Araribá slides 9ano.pdf para os alunos do medioAraribá slides 9ano.pdf para os alunos do medio
Araribá slides 9ano.pdf para os alunos do medio
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
Produção de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptxProdução de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptx
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
Aula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIXAula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIX
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 
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
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
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
 
Texto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptTexto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.ppt
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
 

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