Buscar

20170817 Slide IntroduaoaosAlgoritmos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 44 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 44 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 44 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Algoritmos
Aula 2
17/08/2017 diegoquirino@gmail.com 1
Agenda
Na aula de hoje iremos aprender:
1. O processo para a geração de um programa
2. Definição de algoritmo
3. Dinâmica: desafio da Torre de Hanói
4. Representação dos algoritmos
• Descrição Narrativa
• Fluxograma
• Pseudocódigo
5. O Pseudocódigo
• Variáveis (e seus tipos), Instruções (E/S), Operadores 
e Expressões
17/08/2017 diegoquirino@gmail.com 2
Geração de Programas
Processo de geração
17/08/2017 diegoquirino@gmail.com 3
Elaboração de um 
Programa...
Problema Programa
17/08/2017 diegoquirino@gmail.com 4
A forma correta de 
elaborar um programa
Problema
Análise
Algoritmo
Programa
17/08/2017 diegoquirino@gmail.com 5
Processo de Geração de 
um Programa (I)
1. Problema: aspiração (ou a necessidade) que se 
deseja resolver/satisfazer.
2. Análise do Problema: conjunto de atividades 
relacionadas ao entendimento do problema.
• Ler atentamente o enunciado do problema até 
entendê-lo
• Identificar os dados de entrada
• Identificar as saídas (resultados esperados)
• Identificar o que o programa deve fazer (seu objetivo)
• Identificar se existes valores ou dados intermediários
necessários para transformar entradas em saídas
17/08/2017 diegoquirino@gmail.com 6
Processo de Geração de 
um Programa (II)
1. Analisado o Problema, devemos pensar em 
como estruturar uma solução viável
(dentre as muitas disponíveis)!
2. Para resolver um problema no computador 
é necessário que seja, primeiramente, 
encontrada uma maneira de descrever este 
problema de uma forma clara e precisa!
3. É preciso definir o caminho a ser tomado...
17/08/2017 diegoquirino@gmail.com 7
Algoritmo 
Definição e características fundamentais
17/08/2017 diegoquirino@gmail.com 8
Definição
•Algoritmo é uma sequência finita
de passos lógicos necessários para 
realizar uma determinada tarefa
17/08/2017 diegoquirino@gmail.com 9
Exemplo
•Na informática, o ALGORITMO é o PROJETO DO 
PROGRAMA.
•O ALGORITMO NÃO É A (ÚNICA) SOLUÇÃO DE UM 
PROBLEMA! MAS UM DENTRE OS CAMINHOS 
EXISTENTES PARA SE CHEGAR A ELA!
17/08/2017 diegoquirino@gmail.com 10
Características 
Fundamentais
1. Ter início e fim.
2. Ser escrito em termos de ações ou
comandos bem definidos.
1. Deve ser fácil de interpretar e de codificar.
• Ou seja, deve ser intermediário entre a linguagem 
falada e a linguagem de programação
2. Ter uma sequência lógica.
17/08/2017 diegoquirino@gmail.com 11
Para mim, que nunca fiz um bolo, 
vai ficar difícil fazer um desse 
jeito!
Os algoritmos estão 
presentes no dia-a-dia!
Preparo de Bolo (dado os ingredientes disponíveis), segue o 
modo de preparo:
1. Bata a margarina, as gemas e o açúcar até ficar cremoso
2. Junte o leite e a farinha e continue batendo
3. Acrescente o fermento e as claras em neve
4. Unte a forma com manteiga e leve ao forno para assar
17/08/2017 diegoquirino@gmail.com 12
Os algoritmos estão 
presentes no dia-a-dia!
Preparo de Bolo (dado os ingredientes disponíveis), segue o 
modo de preparo:
1. Bata a margarina, as gemas e o açúcar por 15 minutos
2. Junte o leite e a farinha e bata por 5 minutos à mão
3. Acrescente o fermento e, por último, as claras em neve
4. Unte a forma com manteiga e, em seguida, deposite a 
massa
5. Leve ao forno para assar por 30 minutos
17/08/2017 diegoquirino@gmail.com 13
Desafio: Torre de Hanói
• Escreva um algoritmo informal para resolver o problema 
da Torre de Hanói. Atente que, na Torre de Hanói:
1. Deve-se mover todos os discos do primeiro eixo para o 
terceiro mantendo-se a ordem original;
2. Em cada movimento, pode-se mover apenas um disco;
3. Um disco nunca poderá ser sobreposto por outro 
maior.
17/08/2017
diegoquirino@gmail.com
14
Passo 1
•1. Mova o disco MENOR para o TERCEIRO 
eixo
17/08/2017 diegoquirino@gmail.com 15
Passo 2
•2. Mova o disco MÉDIO para o SEGUNDO eixo
17/08/2017 diegoquirino@gmail.com 16
Passo 3
•3. Mova o disco MENOR para o SEGUNDO eixo
17/08/2017 diegoquirino@gmail.com 17
Passo 4
•4. Mova o disco MAIOR para o TERCEIRO eixo
17/08/2017 diegoquirino@gmail.com 18
Passo 5
•5. Mova o disco MENOR para o PRIMEIRO eixo
17/08/2017 diegoquirino@gmail.com 19
Passo 6
•6. Mova o disco MÉDIO para o TERCEIRO eixo
17/08/2017 diegoquirino@gmail.com 20
Passo 7
•7. Mova o disco MENOR para o TERCEIRO 
eixo
17/08/2017 diegoquirino@gmail.com 21
Algoritmo 
Início
1. Mova o disco MENOR para o TERCEIRO eixo
2. Mova o disco MÉDIO para o SEGUNDO eixo
3. Mova o disco MENOR para o SEGUNDO eixo
4. Mova o disco MAIOR para o TERCEIRO eixo
5. Mova o disco MENOR para o PRIMEIRO eixo
6. Mova o disco MÉDIO para o TERCEIRO eixo
7. Mova o disco MENOR para o TERCEIRO eixo
Fim
17/08/2017 diegoquirino@gmail.com 22
Representação 
As formas de especificar os algoritmos
17/08/2017 diegoquirino@gmail.com 23
Formas de Representação
1. Descrição Narrativa
2. Fluxograma convencional
3. Pseudocódigo
17/08/2017 diegoquirino@gmail.com 24
Descrição Narrativa
1. Especificação verbal dos passos em 
linguagem natural. 
2. Desvantagens: 
• A linguagem natural é imprecisa (possibilita 
ambiguidades). 
• Proporciona maior trabalho na codificação. 
3. Devem ser escritos de maneira que todas as 
linhas contenham uma única instrução.
17/08/2017 diegoquirino@gmail.com 25
Descrição Narrativa:
Exemplos
17/08/2017 diegoquirino@gmail.com 26
1. Receita (para cozinhar, por exemplo)
2. Manual de instrução (para realizar uma 
atividade: instalar um equipamento, fazer
3. Descrever um trajeto (mapas, localização)
4. Descrever as atividades realizadas no dia
(entre outras)
Fluxograma
1. Uso de símbolos para representar as instruções. 
2. Apresenta a lógica de um algoritmo, enfatizando 
passos individuais (objetos gráficos) e o fluxo 
de execução (setas).
3. Desvantagens: 
• Fluxogramas detalhados podem obscurecer a 
estrutura do programa. 
• Permite transferências arbitrárias de controle
17/08/2017 diegoquirino@gmail.com 27
Elementos do Fluxograma
17/08/2017 diegoquirino@gmail.com 28
Fluxograma: Exemplo
Algoritmo da Soma de dois 
termos:
Descrição Narrativa
Início
1. Ter o 1º número
2. Ter o 2º número
3. Some o primeiro com o 
segundo número
4. Exiba o resultado
Fim
17/08/2017 diegoquirino@gmail.com 29
Início
Fim
Ter o 2º número
Ter o 1º número
Some o primeiro com o 
segundo número
Exiba o resultado
Pseudocódigo
Português estruturado ou ainda portugol (português + 
algoritmo)
17/08/2017 diegoquirino@gmail.com 30
Pseudocódigo
1. Funciona como uma linguagem simplificada 
de programação, logo, facilita a codificação 
futura.
2. É uma descrição textual, estruturada e 
regida por regras que descrevem os passos 
executados no algoritmo.
3. Possui características similares às linguagens 
de programação:
• Utiliza palavras-chave (ex: escreva, se-então, 
etc.); 
• Identação/Endentação (alinhamento dos blocos de 
comandos); 
• Possui um comando por linha; 
17/08/2017 diegoquirino@gmail.com 31
Conceitos Importantes
1. Constantes:
• Informações (dados) que permanecem sempre 
com o mesmo conteúdo, é um valor fixo 
(invariável). Exemplos: números, letras, 
palavras etc.
2. Variáveis:
• É um espaço da memória do computador que 
"reservamos" para guardar informações (dados).
17/08/2017 diegoquirino@gmail.com 32
Variáveis
1. Conteúdo:
• O conteúdo de uma variável 
pode variar de acordo com 
as instruções do algoritmo. 
2. Identificador:
• As variáveis são 
referenciadas através de 
um nome (identificador). 
Exemplos: produto,idade, 
a, x, nota1, peso, etc
17/08/2017 diegoquirino@gmail.com 33
Regras sobre 
Identificadores
17/08/2017 diegoquirino@gmail.com 34
Principais tipos de 
conteúdo
17/08/2017 diegoquirino@gmail.com 35
Palavras Reservadas
17/08/2017 diegoquirino@gmail.com 36
Atribuição
•A atribuição é uma notação utilizada para 
atribuir um valor a uma variável. A operação 
de atribuição, normalmente, é representada 
por uma seta apontando para a esquerda.
17/08/2017 diegoquirino@gmail.com 37
Instruções
• Instruções são os comandos básicos que 
efetuam tarefas essenciais para a operação 
dos computadores, como entrada e saída de 
dados, e movimentação dos mesmos na 
memória.
1. Instruções de Saída de dados: ESCREVER
• SINTAXE: escreva(<conteúdo,variáveis,etc.>)
2. Instrução de Entrada de dados: LER
• SINTAXE: leia(<variável>)
17/08/2017 diegoquirino@gmail.com 38
Observação sobre E/S
•A interface com o usuário deve ser amigável, 
portanto:
1. Toda vez que um programa estiver esperando 
que o usuário forneça a ele um determinado 
dado (operação de leitura), ele deve antes 
enviar uma mensagem dizendo ao usuário o 
que ele deve digitar, por meio de uma 
instrução de saída de dados;
2. Antes de enviar qualquer resultado ao usuário, 
um programa deve escrever uma mensagem 
explicando o significado do mesmo.
17/08/2017 diegoquirino@gmail.com 39
Bloco de Comandos
•Definição: Um bloco de instruções apresenta o início 
e o término do conjunto de instruções que serão 
executados em sequência.
17/08/2017 diegoquirino@gmail.com 40
Algoritmo “<nome do algoritmo>”
Var
<declaração de variáveis>: <tipo das variáveis>
início
<primeira instrução do bloco>
<segunda instrução do bloco>
...
<última instrução do bloco>
fimalgoritmo
Comentários
1. Os comentários são declarações não 
compiladas que podem conter qualquer 
informação textual que você queira adicioná-
lo ao código-fonte para referência e 
documentação de seu programa.
2. São representados por duas barras normais ( // 
). Todo texto que você digitar após as duas 
barras será comentário.
3. Exemplo:
17/08/2017 diegoquirino@gmail.com 41
Vamos ao VisuAlg
Praticar os conceitos aprendidos
Algoritmo da soma
17/08/2017 diegoquirino@gmail.com 42
Bibliografia Complementar
17/08/2017 diegoquirino@gmail.com 43
1. FORBELLONE, A. L. V.; 
EBERSPÄCHER, H. F. Lógica de 
Programação: a construção de 
algoritmos e estrutura de dados. 3ª 
ed. São Paulo: Prentice Hall, 2005.
2. Paul Barry, David Griffiths. Use a 
Cabeça! Programação. 1ª Ed. São 
Paulo: Alta Books, 2010
3. CODE. Site: http://code.org/learn
4. University of Rhode Island. Site: 
http://www.urionlinejudge.com.br
Dúvidas?
Contato:
diegoquirino@gmail.com
17/08/2017 diegoquirino@gmail.com 44

Outros materiais