43
Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO INTRODUÇÃO A ALGORITMOS Maurício Moreira Neto 1 1 Universidade 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

INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 2: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 3: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 4: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 5: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 6: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 7: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 8: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 9: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 10: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 11: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 12: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 13: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 14: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 15: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 16: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 17: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 18: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 19: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 20: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 21: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 22: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 23: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 24: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 25: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 26: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 27: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 28: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 29: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 30: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 31: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 32: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 33: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 34: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 35: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 36: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 37: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 38: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 39: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 40: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 41: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 42: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

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

Page 43: INTRODUÇÃO A CIÊNCIA DA COMPUTAÇÃO - INTRODUÇÃO A …

Algoritmo Tipos de Algoritmos Narrativa Fluxograma Pseudocódigo Portugol Exemplos Linguagem

Obrigado!

[email protected]

Maurício Moreira Neto UFC INTRODUÇÃO A ALGORITMOS 31 de janeiro de 2020 43 / 43