Aula4 introducao-a-algoritmos-110926191723-phpapp02

38
Introdução a Algoritmos e Linguagens de Programação Apresentação Luiz Augusto de M. Morais Aula 4 | Algoritmos

Transcript of Aula4 introducao-a-algoritmos-110926191723-phpapp02

Page 1: Aula4 introducao-a-algoritmos-110926191723-phpapp02

Introdução a Algoritmos e

Linguagens de Programação

ApresentaçãoLuiz Augusto de M. Morais

Aula 4 | Algoritmos

Page 2: Aula4 introducao-a-algoritmos-110926191723-phpapp02

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Roteiro

●O que é um algoritmo?●Estrutura de um algoritmo●Resolvendo problemas do mundo real●Representações de algoritmos

Algoritmos

●De máquina●De montagem(Assembly)

Tipos de linguagem●De programação

● Compilada● Interpretada● Híbrida

Page 3: Aula4 introducao-a-algoritmos-110926191723-phpapp02

Algoritmos

O que é um algoritmo?

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Page 4: Aula4 introducao-a-algoritmos-110926191723-phpapp02

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

O que é um algoritmo?

“É uma sequência de passos finitos para atingir um objetivo específico”

Page 5: Aula4 introducao-a-algoritmos-110926191723-phpapp02

Algoritmos

Estrutura de um algoritmo

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Page 6: Aula4 introducao-a-algoritmos-110926191723-phpapp02

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Estrutura de um algoritmo

Entrada

Processamento

Saída

Page 7: Aula4 introducao-a-algoritmos-110926191723-phpapp02

Algoritmos

Resolvendo problemasdo mundo real

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Page 8: Aula4 introducao-a-algoritmos-110926191723-phpapp02

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Resolvendo problemas do mundo real

Receita de bolo

Page 9: Aula4 introducao-a-algoritmos-110926191723-phpapp02

●2 xícaras de açúcar●3 xícaras de farinha de trigo●4 colheres de margarina bem cheias●3 ovos●1 1/2 xícara de leite aproximadamente●1 colher (sopa) de fermento em pó bem cheia

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Receita de bolo

Ingredientes

Page 10: Aula4 introducao-a-algoritmos-110926191723-phpapp02

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Receita de bolo

1.Bata as claras em neve2.Reserve3.Bata bem as gemas com a margarina e o açúcar4.Acrescente o leite e farinha aos poucos sem parar de bater5.Por último agregue as claras em neve e o fermento6.Coloque em forma grande de furo central untada e enfarinhada7.Asse em forno médio, pré – aquecido, por aproximadamente 40 minutos8.Quando espetar um palito e sair limpo estará assado

Modo de preparo

Page 11: Aula4 introducao-a-algoritmos-110926191723-phpapp02

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Resolvendo problemas do mundo real

Trocar uma lâmpada

Page 12: Aula4 introducao-a-algoritmos-110926191723-phpapp02

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Trocar uma lâmpada | Tentativa 1

1.Troque a lâmpada!

Page 13: Aula4 introducao-a-algoritmos-110926191723-phpapp02

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Trocar uma lâmpada | Tentativa 2

1. Pegar uma escada2. Posicionar a escada embaixo da lâmpada3. Buscar uma lâmpada nova4. Subir na escada5. Retirar a lâmpada velha6. Colocar a lâmpada nova7. Descer da escada

Detalhado

E se a lâmpada não estivesse queimada?

Page 14: Aula4 introducao-a-algoritmos-110926191723-phpapp02

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Trocar uma lâmpada | Tentativa 3

1. Pegar uma escada2. Posicionar a escada embaixo da lâmpada3. Buscar uma lâmpada nova4. Acionar o interruptor5. Se a lâmpada acender, encerre.6. Subir na escada7. Retirar a lâmpada velha8. Colocar a lâmpada nova9. Descer da escada

Incluindo o teste da lâmpada

Deveríamos verificar antes!

Page 15: Aula4 introducao-a-algoritmos-110926191723-phpapp02

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Trocar uma lâmpada | Tentativa 4

1. Acionar interruptor2. Se a lâmpada acender, encerre.3. Pegar uma escada4. Posicionar a escada embaixo da lâmpada5. Buscar uma lâmpada nova6. Subir na escada7. Retirar a lâmpada velha8. Colocar a lâmpada nova9. Descer da escada

Verificando antes

Se a lâmpada nova também não acender?

Page 16: Aula4 introducao-a-algoritmos-110926191723-phpapp02

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Trocar uma lâmpada | Tentativa 5

1. Acionar interruptor2. Se a lâmpada acender, encerre.3. Pegar uma escada4. Posicionar a escada embaixo da lâmpada5. Buscar uma lâmpada nova6. Subir na escada7. Retirar a lâmpada velha8. Colocar a lâmpada nova9. Descer da escada10. Se lâmpada nova acender, encerre11. Repita os passos 5 a 10

Repetindo até conseguir

Page 17: Aula4 introducao-a-algoritmos-110926191723-phpapp02

Algoritmos

Representações de algoritmos

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Page 18: Aula4 introducao-a-algoritmos-110926191723-phpapp02

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Representações de algoritmos

Linguagem natural

1. Pegar uma escada2. Posicionar a escada embaixo da lâmpada3. Buscar uma lâmpada nova4. Subir na escada5. Retirar a lâmpada velha6. Colocar a lâmpada nova7. Descer da escada

1. Pegar uma escada2. Posicionar a escada embaixo da lâmpada3. Buscar uma lâmpada nova4. Subir na escada5. Retirar a lâmpada velha6. Colocar a lâmpada nova7. Descer da escada

Page 19: Aula4 introducao-a-algoritmos-110926191723-phpapp02

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Representações de algoritmos

Pseudo-código

leia (x, y)se x > y então

escreva (x é maior)senão

se y > x entãoescreva (y é maior)

senãoescreva (x e y são iguais)

fim-sefim-se

leia (x, y)se x > y então

escreva (x é maior)senão

se y > x entãoescreva (y é maior)

senãoescreva (x e y são iguais)

fim-sefim-se

Page 20: Aula4 introducao-a-algoritmos-110926191723-phpapp02

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Representações de algoritmos

Fluxograma

Page 21: Aula4 introducao-a-algoritmos-110926191723-phpapp02

Tipos de linguagem

Linguagem de Máquina

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Page 22: Aula4 introducao-a-algoritmos-110926191723-phpapp02

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Linguagem de Máquina

Binário

Page 23: Aula4 introducao-a-algoritmos-110926191723-phpapp02

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Linguagem de Máquina

● O computador só entende zeros e uns● Extremamente difícil de entender

Page 24: Aula4 introducao-a-algoritmos-110926191723-phpapp02

Tipos de linguagem

Linguagem de Montagem

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Page 25: Aula4 introducao-a-algoritmos-110926191723-phpapp02

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Linguagem de Montagem

Assembly

Page 26: Aula4 introducao-a-algoritmos-110926191723-phpapp02

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Linguagem de Montagem

● Muito difícil de entender● Incompatibilidade entre processadores

Page 27: Aula4 introducao-a-algoritmos-110926191723-phpapp02

Tipos de linguagem

Linguagem de Programação

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Page 28: Aula4 introducao-a-algoritmos-110926191723-phpapp02

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Linguagem de Programação

● Baixo nível● Alto Nível● Altíssimo Nível

●Compiladas●Interpretadas●Híbridas

Tipo Execução

Page 29: Aula4 introducao-a-algoritmos-110926191723-phpapp02

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Linguagem de Programação | Tipo

● Parecidas com código de máquina● Linguagens de microprocessador e de montagem

Baixo nível

Page 30: Aula4 introducao-a-algoritmos-110926191723-phpapp02

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Linguagem de Programação | Tipo

● Guardam semelhanças da linguagem natural● C, C++, Pascal, Java

Alto nível

Page 31: Aula4 introducao-a-algoritmos-110926191723-phpapp02

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Linguagem de Programação | Tipo

● Muito semelhantes à linguagem natural● Ruby, Python

Altíssimo nível

Page 32: Aula4 introducao-a-algoritmos-110926191723-phpapp02

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Linguagem de Programação | Execução

Linguagens compiladas

Código-fonte Código de máquinaCompilador

Execução

Page 33: Aula4 introducao-a-algoritmos-110926191723-phpapp02

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Linguagem de Programação | Execução

● Rapidez● C, C++, Pascal

Linguagens compiladas

Page 34: Aula4 introducao-a-algoritmos-110926191723-phpapp02

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Linguagem de Programação | Execução

Linguagens interpretadas

Código-fonte Interpretador Execução

Page 35: Aula4 introducao-a-algoritmos-110926191723-phpapp02

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Linguagem de Programação | Execução

● Portabilidade● Python, Lua

Linguagens interpretadas

Page 36: Aula4 introducao-a-algoritmos-110926191723-phpapp02

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Linguagem de Programação | Execução

Linguagens híbridas

Código-fonte BytecodeCompilador

Execução Interpretador

Page 37: Aula4 introducao-a-algoritmos-110926191723-phpapp02

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Linguagem de Programação | Execução

● Mais rápidas que linguagens interpretadas● Portabilidade● Java

Linguagens híbridas

Page 38: Aula4 introducao-a-algoritmos-110926191723-phpapp02

Referências

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETO HERMES

FERRARI, Fabrício; CECHINEL, Cristian.Introdução a Algoritmos e Programação. [S. l. : s. n.]