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
Download

Sumário