Aula 4 - Introducão a algoritmos

Preview:

Citation preview

Introdução a Algoritmos e

Linguagens de Programação

ApresentaçãoLuiz Augusto de M. Morais

Aula 4 | Algoritmos

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

Algoritmos

O que é um algoritmo?

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

O que é um algoritmo?

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

Algoritmos

Estrutura de um algoritmo

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Estrutura de um algoritmo

Entrada

Processamento

Saída

Algoritmos

Resolvendo problemasdo mundo real

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Resolvendo problemas do mundo real

Receita de bolo

●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

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

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Resolvendo problemas do mundo real

Trocar uma lâmpada

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Trocar uma lâmpada | Tentativa 1

1.Troque a lâmpada!

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?

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!

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?

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

Algoritmos

Representações de algoritmos

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

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

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

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Representações de algoritmos

Fluxograma

Tipos de linguagem

Linguagem de Máquina

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Linguagem de Máquina

Binário

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Linguagem de Máquina

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

Tipos de linguagem

Linguagem de Montagem

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Linguagem de Montagem

Assembly

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Linguagem de Montagem

● Muito difícil de entender● Incompatibilidade entre processadores

Tipos de linguagem

Linguagem de Programação

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

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

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

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Linguagem de Programação | Tipo

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

Alto nível

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Linguagem de Programação | Tipo

● Muito semelhantes à linguagem natural● Ruby, Python

Altíssimo nível

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Linguagem de Programação | Execução

Linguagens compiladas

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

Execução

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Linguagem de Programação | Execução

● Rapidez● C, C++, Pascal

Linguagens compiladas

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Linguagem de Programação | Execução

Linguagens interpretadas

Código-fonte Interpretador Execução

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Linguagem de Programação | Execução

● Portabilidade● Python, Lua

Linguagens interpretadas

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Linguagem de Programação | Execução

Linguagens híbridas

Código-fonte BytecodeCompilador

Execução Interpretador

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Linguagem de Programação | Execução

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

Linguagens híbridas

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.]