Prof. Dr. Leandro Alves Neves
Prof. Dr. Adriano Cansian
Algoritmos e Programação
Informática II
Ciência da Computação
A&P
1
Sumário
Noções de lógica
Representação do Conhecimento
Lógica na Programação
Lógica e Algoritmo: Resolução de um Problema
Algoritmos: formas de apresentação
Descrição Narrativa
Fluxograma
Pseudocódigo
Estruturas Básicas de Controle
Sequenciação
Seleção
Repetição
2
1
A&P
Noções de Lógica
Lógica: estudo filosófico do raciocínio válido
Sequência coerente, regular e necessária de
acontecimentos
Consequência Lógica (Exemplos)
Lógica: se Sócrates é homem e todos os homens são mortais,
então Sócrates é mortal
Definição: se Carlos é solteiro, então ele não é casado
Causal: se chover, então o telhado fica molhado
Decisão: se o Santos ganhar, eu vou festejar
O que essas implicações têm em comum?
Não pode acontecer de o antencedente ser verdadeiro e o consequente ser falso
A&P
3
Representação do Conhecimento: um exemplo
Argumento: sequência de premissas seguida de uma conclusão
Formalização de Argumentos
Se neva, então faz frio.
Está nevando.
Logo, está fazendo frio.
Conclusão
Representação: Vocabulário
p : “neve”
q : “frio”
Formalização
{p→q, p} |= q
Consequência
Lógica
4
2
A&P
Lógica na programação
Qual a importância da Lógica na programação?
Representar o raciocínio
Permite focar a resolução do problema
A&P
5
Lógica na programação
Para desenvolver um software:
Representar uma abstração da realidade.
Abstração por quê?
Porque um software não é algo palpável, “real”
Ele simula uma realidade.
Por exemplo: Facebook, o software estabelece uma
realidade de que as pessoas estão se comunicando
6
3
A&P
Lógica na programação
A construção de um software considera:
Representar uma realidade (Abstração e Lógica)
Selecionar os dados relacionados ao problema
que será resolvido
Processar os dados
Definir operações
Obter os resultados esperados
A&P
7
Lógica e Algoritmo
Algoritmo: sequência ordenada de operações, e sem
ambiguidades, para resolução de um problema
Ex: Receita de Bolo
Entradas?
Saída?
Processos?
Descrição dos
passos?
8
4
A&P
Lógica e Algoritmo
A&P
9
Lógica e Algoritmo
Características Fundamentais:
1.
Não ser ambíguo;
2.
Permitir entrada de dados;
3.
Fornecer informações como saída;
4.
Cada etapa deve ser realizada em um tempo finito;
5.
Ter fim.
10
5
A&P
Algoritmos: Formas de
apresentação
Algoritmos podem ser representados por:
Descrição Narrativa
Fluxograma
Pseudocódigo
A&P
11
Descrição narrativa
Uso da língua nativa para descrever cada etapa.
Exemplo: Receita de Bolo
1.
2.
3.
4.
5.
6.
7.
8.
Providencie manteiga, ovos, 2 Kg de farinha, leite, etc
Misture os ingredientes
Despeje a mistura na fôrma de bolo
Leve a fôrma ao forno
Espere 20 minutos
Retire a fôrma do forno
Deixe esfriar
Prove
12
6
A&P
Descrição narrativa
Vantagens:
A língua nativa é bastante conhecida por nós
Não é necessário aprender nenhum conceito novo
Desvantagens:
Imprecisão
Pode proporcionar diferentes interpretações
Extenso
Normalmente, escreve-se muito, para dizer pouca coisa
A&P
13
Fluxograma
Uso de símbolos gráficos para representar
cada etapa.
Início
Leia NUM
Os símbolos são
padronizados
DOBRO ← NUM*2
Escreva DOBRO
Fim
14
7
A&P
Fluxograma
Vantagens:
Entendimento gráfico é mais simples
Padrão amplamente conhecido
Desvantagens:
Conhecer os símbolos
Pouca atenção aos dados, dificultando a transcrição
para um programa
Complica-se à medida que o algoritmo cresce.
A&P
15
Pseudocódigo ou Portugol
Uso de pseudo-linguagem de programação para
representar cada etapa lógica
Comandos e instruções são em português ou inglês.
Algoritmo CALCULA_DOBRO
1.
2.
3.
4.
5.
início
Leia NUM
DOBRO 2 * NUM
Escreva DOBRO
fim
16
8
A&P
Pseudocódigo ou Portugol
Vantagens:
Independência da solução.
Usa o português como linguagem de base;
Permite definir quais e como os dados são estruturados;
Trata-se de solução lógica apenas.
Não interessa quem vai executar.
Passagem quase imediata do algoritmo para uma linguagem
de programação qualquer.
Desvantagens:
Exige a definição de uma linguagem não real para trabalho;
Não padronizado.
Estruturas Básicas de Controle
Algoritmos e Programação
Informática II
17
18
9
A&P
Estruturas Básicas de Controle
Qualquer estruturação lógica depende de
estruturas de controle:
Sequenciação
Seleção
Repetição
A&P
19
Exemplo: Sequenciação
Problema: Trocar uma lâmpada
Solução (Algoritmo explorando sequenciação)
Algoritmo trocar_lâmpada_versão1
1.
2.
3.
4.
5.
6.
7.
pegar uma escada;
posicionar a escada embaixo da lâmpada;
buscar uma lâmpada nova;
subir na escada;
retirar lâmpada queimada;
colocar lâmpada nova;
descer da escada;
20
10
A&P
Exemplo: Seleção ou Decisão
Problema: Trocar uma lâmpada
Solução (Algoritmo explorando sequenciação e seleção)
Algoritmo trocar_lâmpada_versão2
acionar o interruptor;
se a lâmpada não acender, então
1.
2.
pegar uma escada;
posicionar a escada embaixo da lâmpada;
buscar uma lâmpada nova;
subir na escada;
retirar lâmpada queimada;
colocar lâmpada nova.
descer da escada;
a.
b.
c.
d.
e.
f.
g.
A&P
21
Exemplo: Repetição
Problema: Trocar 10 lâmpadas queimadas
Solução (Algoritmo explorando sequenciação, seleção e
repetição)
Algoritmo trocar_lâmpada_versão3
Para 10 lâmpadas, faça
1.
i.
ii.
iii.
2.
ir até o interruptor da lâmpada 1 de 10;
acionar o interruptor;
se a lâmpada não acender, então
a.
pegar uma escada;
b.
posicionar a escada embaixo da lâmpada;
c.
buscar uma lâmpada nova;
d.
subir na escada;
e.
retirar lâmpada queimada;
f.
colocar lâmpada nova;
g.
Descer da escada;
Repetir etapas para próxima lâmpada
22
11
A&P
• Até aqui vimos o seguinte:
23
12