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

aula 04 - Logica de programacao
aula 04 - Logica de programacaoaula 04 - Logica de programacao
aula 04 - Logica de programacaoAislan Rafael
 
Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Gercélia Ramos
 
Lógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosLógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosRoney Sousa
 
Pensamento Computacional
Pensamento ComputacionalPensamento Computacional
Pensamento ComputacionalLuiz Rocha
 
Logica Algoritmo 01 Introducao A Logica
Logica Algoritmo 01 Introducao A LogicaLogica Algoritmo 01 Introducao A Logica
Logica Algoritmo 01 Introducao A LogicaRegis Magalhães
 
Introdução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosIntrodução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosNécio de Lima Veras
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosMario Jorge Pereira
 
Sera que deus existe pp bruno josé fernando
Sera que deus existe pp bruno josé fernandoSera que deus existe pp bruno josé fernando
Sera que deus existe pp bruno josé fernandoHelena Serrão
 
Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Gercélia Ramos
 
Introdução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosIntrodução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosElaine Cecília Gatto
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetosCleyton Ferrari
 

Tendances (20)

Algoritmo - tipos de dados
Algoritmo - tipos de dadosAlgoritmo - tipos de dados
Algoritmo - tipos de dados
 
Linguagem C - Ponteiros
Linguagem C - PonteirosLinguagem C - Ponteiros
Linguagem C - Ponteiros
 
aula 04 - Logica de programacao
aula 04 - Logica de programacaoaula 04 - Logica de programacao
aula 04 - Logica de programacao
 
Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)
 
Lógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosLógica de Programação - Algoritmos
Lógica de Programação - Algoritmos
 
Paradigmas de programação
Paradigmas de programaçãoParadigmas de programação
Paradigmas de programação
 
Estrutura de Dados - Grafos
Estrutura de Dados - GrafosEstrutura de Dados - Grafos
Estrutura de Dados - Grafos
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
Pensamento Computacional
Pensamento ComputacionalPensamento Computacional
Pensamento Computacional
 
Logica Algoritmo 01 Introducao A Logica
Logica Algoritmo 01 Introducao A LogicaLogica Algoritmo 01 Introducao A Logica
Logica Algoritmo 01 Introducao A Logica
 
Algoritmos: Tipos de Dados
Algoritmos: Tipos de DadosAlgoritmos: Tipos de Dados
Algoritmos: Tipos de Dados
 
Introdução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosIntrodução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmos
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e Algoritmos
 
Sera que deus existe pp bruno josé fernando
Sera que deus existe pp bruno josé fernandoSera que deus existe pp bruno josé fernando
Sera que deus existe pp bruno josé fernando
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)
 
O que é programação?
O que é programação?O que é programação?
O que é programação?
 
Aula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e PseudocódigoAula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e Pseudocódigo
 
Introdução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosIntrodução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos Básicos
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 

Similaire à LabMM3 - Aula teórica 02

(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
 
Algoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmosAlgoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmosRodrigo Kiyoshi Saito
 

Similaire à LabMM3 - Aula teórica 02 (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
 
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
 
Algoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmosAlgoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmos
 

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

AULÃO de Língua Portuguesa para o Saepe 2022
AULÃO de Língua Portuguesa para o Saepe 2022AULÃO de Língua Portuguesa para o Saepe 2022
AULÃO de Língua Portuguesa para o Saepe 2022LeandroSilva126216
 
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...AnaAugustaLagesZuqui
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...PatriciaCaetano18
 
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM POLÍGON...
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM  POLÍGON...Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM  POLÍGON...
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM POLÍGON...marcelafinkler
 
Questões de Língua Portuguesa - gincana da LP
Questões de Língua Portuguesa - gincana da LPQuestões de Língua Portuguesa - gincana da LP
Questões de Língua Portuguesa - gincana da LPEli Gonçalves
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do séculoBiblioteca UCS
 
tensoes-etnicas-na-europa-template-1.pptx
tensoes-etnicas-na-europa-template-1.pptxtensoes-etnicas-na-europa-template-1.pptx
tensoes-etnicas-na-europa-template-1.pptxgia0123
 
Quiz | Dia da Europa 2024 (comemoração)
Quiz | Dia da Europa 2024  (comemoração)Quiz | Dia da Europa 2024  (comemoração)
Quiz | Dia da Europa 2024 (comemoração)Centro Jacques Delors
 
Sistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturasSistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturasrfmbrandao
 
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...azulassessoria9
 
Acessibilidade, inclusão e valorização da diversidade
Acessibilidade, inclusão e valorização da diversidadeAcessibilidade, inclusão e valorização da diversidade
Acessibilidade, inclusão e valorização da diversidadeLEONIDES PEREIRA DE SOUZA
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxJustinoTeixeira1
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...marcelafinkler
 
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdfRepública Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdfLidianeLill2
 
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024azulassessoria9
 
Caderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdfCaderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdfJuliana Barbosa
 
Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)Centro Jacques Delors
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024azulassessoria9
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.denisecompasso2
 
Apresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União EuropeiaApresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União EuropeiaCentro Jacques Delors
 

Dernier (20)

AULÃO de Língua Portuguesa para o Saepe 2022
AULÃO de Língua Portuguesa para o Saepe 2022AULÃO de Língua Portuguesa para o Saepe 2022
AULÃO de Língua Portuguesa para o Saepe 2022
 
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
 
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM POLÍGON...
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM  POLÍGON...Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM  POLÍGON...
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM POLÍGON...
 
Questões de Língua Portuguesa - gincana da LP
Questões de Língua Portuguesa - gincana da LPQuestões de Língua Portuguesa - gincana da LP
Questões de Língua Portuguesa - gincana da LP
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do século
 
tensoes-etnicas-na-europa-template-1.pptx
tensoes-etnicas-na-europa-template-1.pptxtensoes-etnicas-na-europa-template-1.pptx
tensoes-etnicas-na-europa-template-1.pptx
 
Quiz | Dia da Europa 2024 (comemoração)
Quiz | Dia da Europa 2024  (comemoração)Quiz | Dia da Europa 2024  (comemoração)
Quiz | Dia da Europa 2024 (comemoração)
 
Sistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturasSistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturas
 
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
 
Acessibilidade, inclusão e valorização da diversidade
Acessibilidade, inclusão e valorização da diversidadeAcessibilidade, inclusão e valorização da diversidade
Acessibilidade, inclusão e valorização da diversidade
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptx
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
 
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdfRepública Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
 
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
Caderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdfCaderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdf
 
Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.
 
Apresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União EuropeiaApresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União Europeia
 

LabMM3 - Aula teórica 02

  • 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