Upload
others
View
10
Download
0
Embed Size (px)
Citation preview
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
INTRODUÇÃO A CIÊNCIA DACOMPUTAÇÃO
INTRODUÇÃO A ALGORITMOS
Maurício Moreira Neto1
1Universidade Federal do CearáDepartamento de Computação
31 de janeiro de 2020
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 1 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Sumário
1 Algoritmo2 Tipos de Algoritmos3 Narrativa4 Fluxograma
5 Pseudocódigo6 Portugol7 Exemplos8 Linguagem
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 2 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Algoritmo
“Algoritmo é uma sequência da passos que visa atingir umobjetivo bem definido.” (FORBELLONE, 1999)
“Algoritmo é a descrição de uma sequência de passos quedeve ser seguida para a realização de uma tarefa.”(Ascencio, 1999)
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 3 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Algoritmo
Solucionar algum problema
Realizar determinada ação
O número de passos deve ser finito
Importância na programaçãoRepresentar o raciocínio lógico
Focaliza-se primeiro na resolução algorítmica do problema,possibilitando sua codificação em qualquer linguagem deprogramação
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 4 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Método para a Construção de Algoritmos
Compreender o problema
Definir os dados de entrada
Definir o processamento
Definir os dados de saída
Construir o algoritmo
Testar o algoritmo
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 5 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Algoritmo
Os algoritmos são comuns no cotidiano
Estamos sempre realizando uma sequência de passospara realizar alguma ação
Exemplo: Receita de bolo
1 Bata as claras em neve e reserve2 Misture as gemas, a margarina e o açúcar até obter uma
massa homogênea3 Acrescente o leite e a farinha de trigo aos poucos, sem
parar de bater4 Por último, adicione as claras em neve e o fermento5 ...
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 6 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Algoritmo
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 7 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Algoritmo
Escreva um algoritmo do seu cotidiano
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 8 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Tipos de Algoritmos
Descrição narrativa
Fluxograma
Pseudocódigo ou portugol
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 9 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Descrição Narrativa
Consiste em analisar o enunciado doproblema e escrever, utilizando umalinguagem natural, os passos a seremseguidos para sua resolução
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 10 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Descrição Narrativa
Descrição Narrativa
Uma das formas mais simples
Linguagem natural e no idioma nativo
Consiste em apenas escrever, de forma textual, o queprecisa ser feito
É pouca utilizada por conta da não eficiência
Pode gerar más interpretações, ambiguidade, imprecisão
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 11 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Descrição Narrativa
Exemplo 1
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 12 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Descrição Narrativa
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 13 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Fluxograma
Consiste em analisar o enunciado do problema eescrever, utilizar símbolos gráficos predefinidos, os passosa serem seguidos para sua resolução
Tal propriedade facilita o entendimento das ideias contidasnos algoritmos e justifica sua popularidade
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 14 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Fluxograma
Simbologia:Fluxo de dados
Indica o sentido do fluxo dedadosConecta os demais símbolos
TerminalIndica o INÍCIO ou FIM deum processamentoExemplo: Início do algoritmo
ProcessamentoProcessamento em geralExemplo: Calculo de doisnúmeros
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 15 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Fluxograma
Simbologia:Entrada
Operação de entrada dedadosExemplo: Leitura de dadospelo teclado
SaídaMostra informações ouresultadosExemplo: Mostre o resultadodo cálculo
DecisãoPermite elaborar processosde decisão
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 16 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Fluxograma
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 17 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Fluxograma
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 18 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Pseudocódigo
Pseudocódigo
Esta forma de representação de algoritmos é rica emdetalhes. Por assemelhar-se bastante à forma em que osprogramas são escritos, encontra muita aceitação
É linguagem intermediária entre a linguagem natural euma linguagem de programação
É mais simples a implementação
As regras do pseudocódigo devem ser aprendidas!
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 19 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Pseudocódigo
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 20 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Pseudocódigo
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 21 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Pseudocódigo
Escreva um algoritmo pseudocódigo
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 22 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Vantagens e Desvantagens
Vantagens e Desvantagens de cada tipo de representação
Vantagens Desvantagens
Narrativa Fácil EscreverLinguagem Natural
Más InterpretaçõesAmbiguidade
Pseudocódigo Fácil transição para alinguagem de programação
Necessário aprenderregras do pseudocódigo
Fluxograma Fácil de VisualizarFluxo Lógico Aprender os Símbolos
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 23 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Portugol
Consiste em analisar o enunciado doproblema e escrever, por meio de regraspredefinidas, os passos a serem seguidospara sua resolução
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 24 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Portugol
Exemplo 1
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 25 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Etapas no Desenvolvimento de um Programa
Análise: estuda-se o problema para definir os dados deentrada, o processamento e os dados de saída
Algoritmo: Utiliza-se para descrever o problema comsuas soluções
Codificação: Transforma o algoritmo em códigos de umalinguagem de programação
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 26 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Exemplo de Problemas
Problema da Torre de Hanói
Seja a seguinte situação:
Deve-se mover todos os discos do primeiro eixo para oterceiro mantendo-se a ordem original
Em cada movimento, pode-se mover apenas um disco
Um disco nunca poderá ser sobreposto por outro maior
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 27 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Exemplo de Problemas
Passo 1:
mova disco menor para terceiro eixo
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 28 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Exemplo de Problemas
Passo 2:
mova disco médio para segundo eixo
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 29 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Exemplo de Problemas
Passo 3:
mova disco menor para segundo eixo
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 30 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Exemplo de Problemas
Passo 4:
mova disco maior para terceiro eixo
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 31 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Exemplo de Problemas
Passo 5:
mova disco menor para primeiro eixo
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 32 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Exemplo de Problemas
Passo 6:
mova disco médio para terceiro eixo
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 33 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Exemplo de Problemas
Passo 7:
mova disco menor para terceiro eixo
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 34 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Exemplo de Problemas
Sequência de Passos Completa:
Passo 1: mova disco menor para terceiro eixo
Passo 2: mova disco médio para segundo eixo
Passo 3: mova disco menor para segundo eixo
Passo 4: mova disco maior para terceiro eixo
Passo 5: mova disco menor para primeiro eixo
Passo 6: mova disco médio para terceiro eixo
Passo 7: mova disco menor para terceiro eixo
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 35 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Jogo da Travessia do Rio
Como jogar:
As regras são as seguintes:
1 Somente o pai, a mãe e o policial sabem pilotar o barco
2 A mãe não pode ficar sozinha com os filhos
3 O pai não pode ficar sozinho com as filhas
4 O prisioneiro não pode ficar sozinho com nenhumintegrante da família
5 O barco só pode transportar 2 pessoas por vez
6 Você pode ir e vir com as pessoas quantas vezes precisar
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 36 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Jogo da Travessia do Rio
Jogo da Travessia do Rio
Vamos ao desafio!!
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 37 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Jogo da Travessia do Rio
1 ida = policial + bandida2 volta = policial3 ida = policial + menino4 volta = policial + bandida5 ida = pai + menino6 volta = pai7 ida = pai + mãe8 volta = mãe9 ida = policial + bandida
10 volta = pai11 ida = pai + mãe12 volta = mãe13 ida = mãe + menina14 volta = policial + bandida15 ida = policial + menina16 volta = policial17 ida = policial + bandida
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 38 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Linguagens de Programação
Utilizada para escrever programas onde o computador eo criador deste programa compreendam
Linguagens Compiladas e Linguagens Interpretadas
Paradigmas de Programação (dois mais conhecidos)
Programação Estruturada
Exemplos: Pascal e CProgramação Orientada a Objetos
Exemplos: C++ e Java
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 39 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Compiladores
Um compilador tem a finalidade:
Converter uma linguagem – Linguagem Fonte – de fácilescrita e leitura para os programadores, numa linguagem –Linguagem alvo ou objeto – que possa ser executadapelas máquinas
O código executável gerado pelo compilador édependente do Sistema Operacional e da linguagem demáquina para o qual o código fonte foi traduzido
Exemplos de Linguagens Compiladas:
Pascal
C, C++
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 40 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
InterpretadoresO funcionamento dos interpretadores é muito parecidoao dos compiladores
O interpretador traduz o código linha a linha
O código fonte não é totalmente traduzido antes de serexecutado
Não existem fases distintas nem se produz códigointermediário
Passa o tempo todo a ler e a traduzir código
Exemplo de Linguagens Interpretadas:HTMLPHPASP
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 41 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Compiladores x Interpretadores
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 42 / 43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem
Obrigado!
Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 43 / 43