SlideShare une entreprise Scribd logo
1  sur  27
Télécharger pour lire hors ligne
Introdução à algoritmia
Carlos Santos
LabMM 3 - NTC - DeCA - UA
Aula 02, 15-09-2011
O que é um programa?

• Um programa é um conjunto de instruções que:

  • tem como objectivo 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.
O que é programar?

• É o acto de ordenar um conjunto de instruções pré-definidas de forma
  lógica, com o objectivo 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.
Passos a seguir no acto de programar

1. 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,
   Actionscript, Pascal, Java, C, C++, Objective C,….);

5. Testar e corrigir erros;

6. Documentar o programa.
1. Definição do problema

• Identificar claramente:

   • Qual o objectivo final a atingir com a resolução do problema?

   • Quais os dados e que tipo de dados estão em causa?

   • Quais as variantes que o problema pode ter e em que situações?

   • Quais os limites dos dados?
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)
2. Estratégias ou métodos de resolução de
problemas

• 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 correcta.
2. Estratégias ou métodos de resolução de
problemas

• 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 adopção de estratégias é não “desesperar” perante um problema
  que pode parecer demasiado complicado!
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 objectivos, 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.
Características de um algoritmo

• Etapas fundamentais de um algoritmo:

  • input de dados

  • processamento

  • output de dados
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.)
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.
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 objectividade
Como “escrever” um algoritmo?

 • Fluxograma ou diagramas de blocos

   + representação por diagramas padronizados

   + objectivo 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 directamente na
     linguagem de programação. Não deve ser considerada uma técnica de
     representação de algoritmos
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 1 ou vários FIM

• Termos e expressões reservadas em MAIÚSCULAS

• Exemplo ferramenta: http://fernando.softdr.com/produtos/ipe.html
Pseudo-código
Pseudo-código (exemplo)

• Exemplo de um algoritmo para lavar a roupa na máquina (1) - 3 passos

       INICIO

          Colocar a roupa na máquina

          Iniciar o programa de lavagem
          Retirar a roupa da máquina
       FIM
Pseudo-código (exemplo)

• Exemplo de um algoritmo para lavar a roupa na máquina (2)

       INICIO
          Colocar a roupa na máquina
          Fechar o óculo da máquina
          Colocar detergente na máquina
          Iniciar o programa de lavagem
          REPETIR ENQUANTO o programa não termina
             ver estado do programa
          FIM DE REPETIÇÃO
          Retirar a roupa da máquina
       FIM
Pseudo-código (exemplo)

• Exemplo de um algoritmo para lavar a roupa na máquina (3)

       INICIO
           SE óculo da máquina fechado
               ENTÃO abrir óculo da máquina
           FIM SE
           Colocar a roupa na máquina
             Fechar o óculo da máquina
             Colocar detergente na máquina (...)
             Iniciar o programa de lavagem
             EXECUTAR programa de lavagem
             REPETIR ENQUANTO o programa não termina
                ver estado do programa
             FIM DE REPETIÇÃO
             Abrir óculo da máquina
             Retirar a roupa da máquina
             Fechar óculo da máquina
       FIM
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

  + objectividade

  + clareza na interpretação

  + facilita a transposição para qualquer linguagem de programação
Fluxograma

• Principais símbolos utilizados num fluxograma ou num diagrama de blocos
  (norma ISO 5807: 1985)
Fluxogramas

• Como desenhar?

  • Papel e lápis são sempre um excelente ponto de partida!

  • Ferramentas específicas:

     • Aplicações locais:

        • Microsoft Visio

        • OmniGraffle (mac)

     • Online:

        • Gliffy

        • ...
Fluxograma (exemplo)

• Exemplo de um algoritmo para lavar a roupa na máquina (1) - 3 passos

 	 INICIO

 
   Colocar a roupa na máquina

 	   Iniciar o programa de lavagem

 
   Retirar a roupa da máquina

 	 FIM
Fluxograma (exemplo)

• Exemplo de um algoritmo para lavar a roupa na máquina (2)

       INICIO
             Colocar a roupa na máquina
             Fechar o óculo da máquina
             Colocar detergente na máquina
             Iniciar o programa de lavagem
             REPETIR ENQUANTO o programa não termina
                 ver estado do programa
             FIM DE REPETIÇÃO
             Retirar a roupa da máquina
       FIM
Fluxograma (exemplo)

• Ex. de um algoritmo para lavar a roupa na máquina (3)

       INICIO
           SE óculo da máquina fechado
               ENTÃO abrir óculo da máquina
           FIM SE
           Colocar a roupa na máquina
             Fechar o óculo da máquina
             Colocar detergente na máquina (...)
             Iniciar o programa de lavagem
             EXECUTAR programa de lavagem
             REPETIR ENQUANTO o programa não termina
                ver estado do programa
             FIM DE REPETIÇÃO
             Abrir óculo da máquina
             Retirar a roupa da máquina
             Fechar óculo da máquina
       FIM
Outras questões a resolver...

• E se a máquina de lavar estivesse a funcionar?

• (sugestões de outros problemas...)
Fluxograma (exemplo)

• Ex. de um algoritmo para lavar a roupa na máquina (3)

       INICIO
           SE óculo da máquina fechado
               ENTÃO abrir óculo da máquina
           FIM SE
           Colocar a roupa na máquina
             Fechar o óculo da máquina
             Colocar detergente na máquina (...)
             Iniciar o programa de lavagem
             EXECUTAR programa de lavagem
             REPETIR ENQUANTO o programa não termina
                ver estado do programa
             FIM DE REPETIÇÃO
             Abrir óculo da máquina
             Retirar a roupa da máquina
             Fechar óculo da máquina
       FIM

Contenu connexe

Tendances

Rectas notáveis em planos definidos por rectas.pdf
Rectas notáveis em planos definidos por rectas.pdfRectas notáveis em planos definidos por rectas.pdf
Rectas notáveis em planos definidos por rectas.pdfHugo Correia
 
Pintura do quattrocento
Pintura do quattrocentoPintura do quattrocento
Pintura do quattrocentoAna Barreiros
 
AULA DE TRIGONOMETRIA
AULA DE TRIGONOMETRIAAULA DE TRIGONOMETRIA
AULA DE TRIGONOMETRIACECIERJ
 
Cultura do Palácio - Arquitectura renascentista
Cultura do Palácio - Arquitectura renascentistaCultura do Palácio - Arquitectura renascentista
Cultura do Palácio - Arquitectura renascentistaCarlos Vieira
 
Cultura do Mosteiro - Arte paleocristã e bizantina
Cultura do Mosteiro - Arte paleocristã e bizantinaCultura do Mosteiro - Arte paleocristã e bizantina
Cultura do Mosteiro - Arte paleocristã e bizantinaCarlos Vieira
 
Conjunções e Locuções Conjuncionais
Conjunções e Locuções ConjuncionaisConjunções e Locuções Conjuncionais
Conjunções e Locuções ConjuncionaisRosalina Simão Nunes
 
Exercícios Resolvidos: Equação da reta tangente
Exercícios Resolvidos: Equação da reta tangenteExercícios Resolvidos: Equação da reta tangente
Exercícios Resolvidos: Equação da reta tangenteDiego Oliveira
 
A arquitetura gótica
A arquitetura góticaA arquitetura gótica
A arquitetura góticaAna Barreiros
 

Tendances (20)

Rectas notáveis em planos definidos por rectas.pdf
Rectas notáveis em planos definidos por rectas.pdfRectas notáveis em planos definidos por rectas.pdf
Rectas notáveis em planos definidos por rectas.pdf
 
Aula 10 ponto e sistemas de projeções
Aula 10   ponto e sistemas de projeçõesAula 10   ponto e sistemas de projeções
Aula 10 ponto e sistemas de projeções
 
Integral Definida
Integral DefinidaIntegral Definida
Integral Definida
 
Pintura do quattrocento
Pintura do quattrocentoPintura do quattrocento
Pintura do quattrocento
 
Frei luis de sousa
Frei luis de sousaFrei luis de sousa
Frei luis de sousa
 
Potencia de base 10
Potencia de base 10Potencia de base 10
Potencia de base 10
 
Numeros complexos
Numeros complexosNumeros complexos
Numeros complexos
 
FunçãO QuadráTica
FunçãO QuadráTicaFunçãO QuadráTica
FunçãO QuadráTica
 
AULA DE TRIGONOMETRIA
AULA DE TRIGONOMETRIAAULA DE TRIGONOMETRIA
AULA DE TRIGONOMETRIA
 
Arcadismo.
Arcadismo.Arcadismo.
Arcadismo.
 
Cultura do Palácio - Arquitectura renascentista
Cultura do Palácio - Arquitectura renascentistaCultura do Palácio - Arquitectura renascentista
Cultura do Palácio - Arquitectura renascentista
 
Fórmulas matemáticas
Fórmulas matemáticasFórmulas matemáticas
Fórmulas matemáticas
 
Aula 2 introdução geometria descritiva
Aula 2   introdução geometria descritivaAula 2   introdução geometria descritiva
Aula 2 introdução geometria descritiva
 
Cultura do Mosteiro - Arte paleocristã e bizantina
Cultura do Mosteiro - Arte paleocristã e bizantinaCultura do Mosteiro - Arte paleocristã e bizantina
Cultura do Mosteiro - Arte paleocristã e bizantina
 
Conjunções e Locuções Conjuncionais
Conjunções e Locuções ConjuncionaisConjunções e Locuções Conjuncionais
Conjunções e Locuções Conjuncionais
 
Intersecções (GD)
Intersecções (GD)Intersecções (GD)
Intersecções (GD)
 
05a-integrais de linha
05a-integrais de linha05a-integrais de linha
05a-integrais de linha
 
Exercícios Resolvidos: Equação da reta tangente
Exercícios Resolvidos: Equação da reta tangenteExercícios Resolvidos: Equação da reta tangente
Exercícios Resolvidos: Equação da reta tangente
 
A arquitetura gótica
A arquitetura góticaA arquitetura gótica
A arquitetura gótica
 
alfabeto plano
alfabeto planoalfabeto plano
alfabeto plano
 

Similaire à Introdução à algoritmia - O que é um programa e programar

(A02) LabMM3 - Introdução à programação
(A02) LabMM3 - Introdução à programação(A02) LabMM3 - Introdução à programação
(A02) LabMM3 - Introdução à programaçãoCarlos Santos
 
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...Alex Camargo
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascalangelicamenegassi
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascalangelicamenegassi
 
Introdução aos algoritmos e à algoritmia.pptx
Introdução aos algoritmos e à algoritmia.pptxIntrodução aos algoritmos e à algoritmia.pptx
Introdução aos algoritmos e à algoritmia.pptxPaulo Cardoso
 
Algoritmia (Conceitos)
Algoritmia (Conceitos)Algoritmia (Conceitos)
Algoritmia (Conceitos)Sandro Lopes
 
Apostila algoritmos
Apostila algoritmosApostila algoritmos
Apostila algoritmosPedro Nelson
 
53392229 apostila-de-algoritmo-2009
53392229 apostila-de-algoritmo-200953392229 apostila-de-algoritmo-2009
53392229 apostila-de-algoritmo-2009starley lobo
 
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptxAula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptxaronoliveira3
 
1 - Introdução à Lógica de Programação - Comandos Básicos.pptx
1 - Introdução à Lógica de Programação - Comandos Básicos.pptx1 - Introdução à Lógica de Programação - Comandos Básicos.pptx
1 - Introdução à Lógica de Programação - Comandos Básicos.pptxJONATHANSILVADEOLIVE
 
Algoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoAlgoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoJose Augusto Cintra
 
Aula 01 introdução a linguagem pascal
Aula 01   introdução a linguagem pascalAula 01   introdução a linguagem pascal
Aula 01 introdução a linguagem pascalTácito Graça
 
INFORMATICA LOGICA DE PROGRAMAÇÃO E ALGORITIMOS AULA- 01.ppt
INFORMATICA LOGICA DE PROGRAMAÇÃO E ALGORITIMOS AULA- 01.pptINFORMATICA LOGICA DE PROGRAMAÇÃO E ALGORITIMOS AULA- 01.ppt
INFORMATICA LOGICA DE PROGRAMAÇÃO E ALGORITIMOS AULA- 01.pptPatricaNascimento1
 

Similaire à Introdução à algoritmia - O que é um programa e programar (20)

(A02) LabMM3 - Introdução à programação
(A02) LabMM3 - Introdução à programação(A02) LabMM3 - Introdução à programação
(A02) LabMM3 - Introdução à programação
 
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascal
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascal
 
Aula02
Aula02Aula02
Aula02
 
Introdução aos algoritmos e à algoritmia.pptx
Introdução aos algoritmos e à algoritmia.pptxIntrodução aos algoritmos e à algoritmia.pptx
Introdução aos algoritmos e à algoritmia.pptx
 
Algoritmia (Conceitos)
Algoritmia (Conceitos)Algoritmia (Conceitos)
Algoritmia (Conceitos)
 
Apostila algoritmos
Apostila algoritmosApostila algoritmos
Apostila algoritmos
 
53392229 apostila-de-algoritmo-2009
53392229 apostila-de-algoritmo-200953392229 apostila-de-algoritmo-2009
53392229 apostila-de-algoritmo-2009
 
Algoritmos com java script
Algoritmos com java scriptAlgoritmos com java script
Algoritmos com java script
 
Algoritmos - Pascal
Algoritmos - PascalAlgoritmos - Pascal
Algoritmos - Pascal
 
Aula01
Aula01Aula01
Aula01
 
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptxAula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
 
1 - Introdução à Lógica de Programação - Comandos Básicos.pptx
1 - Introdução à Lógica de Programação - Comandos Básicos.pptx1 - Introdução à Lógica de Programação - Comandos Básicos.pptx
1 - Introdução à Lógica de Programação - Comandos Básicos.pptx
 
Aula 1 lpa
Aula 1   lpaAula 1   lpa
Aula 1 lpa
 
Algoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoAlgoritmos e Lógica de Programação
Algoritmos e Lógica de Programação
 
Aula 01 introdução a linguagem pascal
Aula 01   introdução a linguagem pascalAula 01   introdução a linguagem pascal
Aula 01 introdução a linguagem pascal
 
122172 1445
122172 1445122172 1445
122172 1445
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
INFORMATICA LOGICA DE PROGRAMAÇÃO E ALGORITIMOS AULA- 01.ppt
INFORMATICA LOGICA DE PROGRAMAÇÃO E ALGORITIMOS AULA- 01.pptINFORMATICA LOGICA DE PROGRAMAÇÃO E ALGORITIMOS AULA- 01.ppt
INFORMATICA LOGICA DE PROGRAMAÇÃO E ALGORITIMOS AULA- 01.ppt
 

Plus de Carlos Santos

Is AI the Spice of our future?
Is AI the Spice of our future?Is AI the Spice of our future?
Is AI the Spice of our future?Carlos Santos
 
Mentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantesMentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantesCarlos Santos
 
1º Encontro Científico TCEdu
1º Encontro Científico TCEdu1º Encontro Científico TCEdu
1º Encontro Científico TCEduCarlos Santos
 
Tecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicialTecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicialCarlos Santos
 
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunosAVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunosCarlos Santos
 
AVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunosAVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunosCarlos Santos
 
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...Carlos Santos
 
Tecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho práticoTecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho práticoCarlos Santos
 
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)Carlos Santos
 
SAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning EnvironmentSAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning EnvironmentCarlos Santos
 
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO CampusRepensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO CampusCarlos Santos
 
A technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus projectA technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus projectCarlos Santos
 
SAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoSAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoCarlos Santos
 
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCARepensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCACarlos Santos
 
T20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidT20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidCarlos Santos
 
T19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoT19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoCarlos Santos
 
T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)Carlos Santos
 

Plus de Carlos Santos (20)

Is AI the Spice of our future?
Is AI the Spice of our future?Is AI the Spice of our future?
Is AI the Spice of our future?
 
Mentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantesMentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantes
 
1º Encontro Científico TCEdu
1º Encontro Científico TCEdu1º Encontro Científico TCEdu
1º Encontro Científico TCEdu
 
Tecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicialTecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicial
 
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunosAVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
 
AVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunosAVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunos
 
chmod 777 education
chmod 777 educationchmod 777 education
chmod 777 education
 
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
 
Tecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho práticoTecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho prático
 
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
 
chmod 777 education
chmod 777 educationchmod 777 education
chmod 777 education
 
SAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning EnvironmentSAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning Environment
 
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO CampusRepensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
 
A technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus projectA technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus project
 
SAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoSAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativo
 
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCARepensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
 
T20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidT20_LM3: APIs e Scoreoid
T20_LM3: APIs e Scoreoid
 
T19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoT19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificação
 
T18_LM3: Ajax
T18_LM3: AjaxT18_LM3: Ajax
T18_LM3: Ajax
 
T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)
 

Dernier

Mesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasMesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasRicardo Diniz campos
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasCassio Meira Jr.
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Currículo escolar na perspectiva da educação inclusiva.pdf
Currículo escolar na perspectiva da educação inclusiva.pdfCurrículo escolar na perspectiva da educação inclusiva.pdf
Currículo escolar na perspectiva da educação inclusiva.pdfIedaGoethe
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxOsnilReis1
 
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfHenrique Pontes
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfManuais Formação
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasCassio Meira Jr.
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasRosalina Simão Nunes
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxIsabellaGomes58
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Centro Jacques Delors
 
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdfO Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdfPastor Robson Colaço
 
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxIsabelaRafael2
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveaulasgege
 
Atividade com a letra da música Meu Abrigo
Atividade com a letra da música Meu AbrigoAtividade com a letra da música Meu Abrigo
Atividade com a letra da música Meu AbrigoMary Alvarenga
 
Educação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SPEducação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SPanandatss1
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfAdrianaCunha84
 
A galinha ruiva sequencia didatica 3 ano
A  galinha ruiva sequencia didatica 3 anoA  galinha ruiva sequencia didatica 3 ano
A galinha ruiva sequencia didatica 3 anoandrealeitetorres
 
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxSlide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxconcelhovdragons
 

Dernier (20)

Mesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasMesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecas
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e Específicas
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
 
Currículo escolar na perspectiva da educação inclusiva.pdf
Currículo escolar na perspectiva da educação inclusiva.pdfCurrículo escolar na perspectiva da educação inclusiva.pdf
Currículo escolar na perspectiva da educação inclusiva.pdf
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
 
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdf
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades Motoras
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029
 
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdfO Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
 
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
 
Atividade com a letra da música Meu Abrigo
Atividade com a letra da música Meu AbrigoAtividade com a letra da música Meu Abrigo
Atividade com a letra da música Meu Abrigo
 
Educação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SPEducação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SP
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdf
 
A galinha ruiva sequencia didatica 3 ano
A  galinha ruiva sequencia didatica 3 anoA  galinha ruiva sequencia didatica 3 ano
A galinha ruiva sequencia didatica 3 ano
 
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxSlide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
 
Em tempo de Quaresma .
Em tempo de Quaresma                            .Em tempo de Quaresma                            .
Em tempo de Quaresma .
 

Introdução à algoritmia - O que é um programa e programar

  • 1. Introdução à algoritmia Carlos Santos LabMM 3 - NTC - DeCA - UA Aula 02, 15-09-2011
  • 2. O que é um programa? • Um programa é um conjunto de instruções que: • tem como objectivo 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. O que é programar? • É o acto de ordenar um conjunto de instruções pré-definidas de forma lógica, com o objectivo 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. Passos a seguir no acto de programar 1. 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, Actionscript, Pascal, Java, C, C++, Objective C,….); 5. Testar e corrigir erros; 6. Documentar o programa.
  • 5. 1. Definição do problema • Identificar claramente: • Qual o objectivo final a atingir com a resolução do problema? • Quais os dados e que tipo 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. 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. 2. Estratégias ou métodos de resolução de problemas • 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 correcta.
  • 8. 2. Estratégias ou métodos de resolução de problemas • 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 adopção de estratégias é não “desesperar” perante um problema que pode parecer demasiado complicado!
  • 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 objectivos, 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. Características de um algoritmo • Etapas fundamentais de um algoritmo: • input de dados • processamento • output de dados
  • 11. 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.)
  • 12. 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.
  • 13. 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 objectividade
  • 14. Como “escrever” um algoritmo? • Fluxograma ou diagramas de blocos + representação por diagramas padronizados + objectivo 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 directamente na linguagem de programação. Não deve ser considerada uma técnica de representação de algoritmos
  • 15. 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 1 ou vários FIM • Termos e expressões reservadas em MAIÚSCULAS • Exemplo ferramenta: http://fernando.softdr.com/produtos/ipe.html
  • 17. Pseudo-código (exemplo) • Exemplo de um algoritmo para lavar a roupa na máquina (1) - 3 passos INICIO Colocar a roupa na máquina Iniciar o programa de lavagem Retirar a roupa da máquina FIM
  • 18. Pseudo-código (exemplo) • Exemplo de um algoritmo para lavar a roupa na máquina (2) INICIO Colocar a roupa na máquina Fechar o óculo da máquina Colocar detergente na máquina Iniciar o programa de lavagem REPETIR ENQUANTO o programa não termina ver estado do programa FIM DE REPETIÇÃO Retirar a roupa da máquina FIM
  • 19. Pseudo-código (exemplo) • Exemplo de um algoritmo para lavar a roupa na máquina (3) INICIO SE óculo da máquina fechado ENTÃO abrir óculo da máquina FIM SE Colocar a roupa na máquina Fechar o óculo da máquina Colocar detergente na máquina (...) Iniciar o programa de lavagem EXECUTAR programa de lavagem REPETIR ENQUANTO o programa não termina ver estado do programa FIM DE REPETIÇÃO Abrir óculo da máquina Retirar a roupa da máquina Fechar óculo da máquina FIM
  • 20. 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 + objectividade + clareza na interpretação + facilita a transposição para qualquer linguagem de programação
  • 21. Fluxograma • Principais símbolos utilizados num fluxograma ou num diagrama de blocos (norma ISO 5807: 1985)
  • 22. Fluxogramas • Como desenhar? • Papel e lápis são sempre um excelente ponto de partida! • Ferramentas específicas: • Aplicações locais: • Microsoft Visio • OmniGraffle (mac) • Online: • Gliffy • ...
  • 23. Fluxograma (exemplo) • Exemplo de um algoritmo para lavar a roupa na máquina (1) - 3 passos INICIO Colocar a roupa na máquina Iniciar o programa de lavagem Retirar a roupa da máquina FIM
  • 24. Fluxograma (exemplo) • Exemplo de um algoritmo para lavar a roupa na máquina (2) INICIO Colocar a roupa na máquina Fechar o óculo da máquina Colocar detergente na máquina Iniciar o programa de lavagem REPETIR ENQUANTO o programa não termina ver estado do programa FIM DE REPETIÇÃO Retirar a roupa da máquina FIM
  • 25. Fluxograma (exemplo) • Ex. de um algoritmo para lavar a roupa na máquina (3) INICIO SE óculo da máquina fechado ENTÃO abrir óculo da máquina FIM SE Colocar a roupa na máquina Fechar o óculo da máquina Colocar detergente na máquina (...) Iniciar o programa de lavagem EXECUTAR programa de lavagem REPETIR ENQUANTO o programa não termina ver estado do programa FIM DE REPETIÇÃO Abrir óculo da máquina Retirar a roupa da máquina Fechar óculo da máquina FIM
  • 26. Outras questões a resolver... • E se a máquina de lavar estivesse a funcionar? • (sugestões de outros problemas...)
  • 27. Fluxograma (exemplo) • Ex. de um algoritmo para lavar a roupa na máquina (3) INICIO SE óculo da máquina fechado ENTÃO abrir óculo da máquina FIM SE Colocar a roupa na máquina Fechar o óculo da máquina Colocar detergente na máquina (...) Iniciar o programa de lavagem EXECUTAR programa de lavagem REPETIR ENQUANTO o programa não termina ver estado do programa FIM DE REPETIÇÃO Abrir óculo da máquina Retirar a roupa da máquina Fechar óculo da máquina FIM