View
213
Download
0
Category
Preview:
Citation preview
1
Algoritmos e Técnicas- Lógica -
Algoritmo textual informal
Modo de preparo:� Bata a margarina, as gemas e o açúcar até ficar
cremoso� Junte o leite, o coco e a farinha e continue
batendo� Acrescente o fermento e, por último, as claras em
neve� Unte uma forma com manteiga e leve ao forno
para assar
Quão cremoso?!?
De uma vez só?!?
Quanto tempo?!?
Quanto tempo?!?
id93996970 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com
2
Modo de preparo (refinado):� Bata a margarina, as gemas e o açúcar por 15
minutos� Junte o leite, o coco e a farinha e continue
batendo por mais 15 minutos� Acrescente 20 g de fermento e, por último, as
claras em neve� Unte uma forma com manteiga e leve ao forno
para assar por 30 minutos
Algoritmo textual informal
Problema da Torre de Hanói� Seja a seguinte situação:
deve-se mover todos os discos do primeiro eixo para o terceiro mantendo-se a ordem original
em cada movimento, pode-se mover apenas um disco
um disco nunca poderá ser sobreposto por outro maior
Algoritmo: Problemas Complexos
3
Passo 1:mova disco menor para terceiro eixo
Algoritmo: Problemas Complexos
Passo 2:mova disco médio para segundo eixo
Algoritmo: Problemas Complexos
4
Passo 3:mova disco menor para segundo eixo
Algoritmo: Problemas Complexos
Passo 4:mova disco maior para terceiro eixo
Algoritmo: Problemas Complexos
5
Passo 5:mova disco menor para primeiro eixo
Algoritmo: Problemas Complexos
Passo 6:mova disco médio para terceiro eixo
Algoritmo: Problemas Complexos
6
Passo 7:mova disco menor para terceiro eixo
Algoritmo: Problemas Complexos
Seqüência de passos completa:Passo 1: mova disco menor para terceiro eixo
Passo 2: mova disco médio para segundo eixoPasso 3: mova disco menor para segundo eixoPasso 4: mova disco maior para terceiro eixoPasso 5: mova disco menor para primeiro eixoPasso 6: mova disco médio para terceiro eixoPasso 7: mova disco menor para terceiro eixo
Algoritmo: Problemas Complexos
7
Lembre-se
Não existe um algoritmo para construir algoritmos
� a criação de um algoritmo é um exercício de criatividade (conhecimento) e experiência (técnica e prática)
O que é Programação?
= ABSTRAÇÃO!
A realidade é complexa e rica em detalhes!
8
Abstração
RealidadeRealidade
O que você O que você abstraiabstrai dessa realidade?dessa realidade?
Abstração
O que é abstração?
9
Abstração
Abstração=
Operação mental que observa a realidade e
captura apenas os aspectos relevantes para um contexto
11
Abstração
RealidadeRealidade
Sistema de Locadora de VeículoSistema de Locadora de Veículo
AbstraçãoAbstração++
ProgramaçãoProgramação
A tarefa de programar sistemas computacionais envolve o exercício constante da abstração da realidade e sua codificação em uma linguagem de programação
Sistema Computacional
O que é um Sistema Computacional?
12
Sistema Computacional
SoftwareHardware
Peopleware
Sistema Computacional
A programação de um sistema computacional pode ser resumida em 3 passos básicos
ProcessamentoEntrada Saída
Dispositivode Entrada
Dispositivode Saída
Memória
UCP
Sistema Computacional
13
Exemplo 1 � Exibir a média de dois números
ProcessamentoEntrada Saída
Dispositivode Entrada
Dispositivode Saída
Memória
UCP
6 , 8 (6 + 8) / 2 7
Sistema Computacional
Exemplo 2 � Exibir se o aluno está aprovado ou reprovado
ProcessamentoEntrada Saída
Dispositivode Entrada
Dispositivode Saída
Memória
UCP
Ana, 5, 3 Se (5+3)/2>=7aprovado
Senãoreprovado
Ana, reprovado
Sistema Computacional
14
Sistema Computacional
Arquitetura de um computador hipotético � Modelo de Von Neuman
Unidade Central de Processamento
(1)Dispositivode Entrada
(3)Unidade de Controle
(2)Unidade Lógica
e Aritmética
(4)Memória Principal
(5)Dispositivo
de Saída
Trajeto de dados
Trajeto de sinais de controle
Programação de Sistema Computacional
Tipos de Linguagens de Programação� 1 - Totalmente codificadas em binário (0´s e 1´s)� 2 - Usa instruções simbólicas para representar os 0´s e 1´s� 3 - Voltadas para facilitar o raciocínio humano
Linguagem Assembly
( Mnem ô nica )
LOAD R1, val1
LOAD R2, val2
ADD R1, R2
STORE R1, val2
Linguagem de
M á quina
0010 0001 1110
0010 0010 1111
0001 0001 0010
0011 0001 1111
Linguagem
de Alto N í vel
val2 = val1+val2
Baixo Nível Alto Nível
(1) (2) (3)
15
Noções de Lógica
A lógica é o ramo da filosofia que cuida das regras do bem pensar, ou do pensar correto, sendo, portanto, um instrumento do pensar.
É também a designação para o estudo de sistemas prescritivos de raciocínio, ou seja, sistemas que definem como se "deveria" realmente pensar para não errar, usando a razão, dedutivamente e indutivamente.
Noções de Lógica
Exemplos de aplicação da lógica
� O quarto está fechado e meu livro está no quarto. Então, preciso primeiro abrir o quarto para pegar o livro
� Rosa é mãe de Ana, Paula é filha de Rosa, Júlia é filha de Ana. Então, Júlia é neta de Rosa e sobrinha de Paula
� Todo mamífero é animal e todo cavalo é mamífero. Então, todo cavalo é animal
� Todo mamífero bebe leite e o homem bebe leite. Então, todo homem é mamífero e animal (mas não é um cavalo)
16
Atividade 1 (10min)
Resolva os seguintes problemas de lógica� P1 � Uma lesma deve subir um poste de 10m de
altura. De dia sobe 2m e à noite desce 1m. Em quantos dias atingirá o topo do poste?
� P2 - Três gatos comem três ratos em três minutos. Cem gatos comem cem ratos em quantos minutos?
� P3 - O pai do padre é filho do meu pai. O que eu sou do Padre?
� P4 - Se um bezerro pesa 75 kg mais meio bezerro, quanto pesa um bezerro inteiro?
Atividade 1 (10min)
� P5 � Qual o próximo número da seqüência 7,8,10,13,17,?
� P6 � Um pai de 80kg e suas 2 filhas (40kg cada), precisam sair de uma ilha com um barco. Porém a capacidade do barco é de 80kg. Como farão para sair da ilha?
� P7 � Usando uma jangada, um camponês precisa atravessar uma cabra, um leão e um fardo de capim para a outra margem do rio. A jangada sótem lugar para ele e mais outra coisa. O que ele deve fazer para atravessar o rio com seus pertences intactos?
17
RESPOSTAS - Atividade 1
� R1 - 9(nove) dias. No nono dia a lesma sobe 2(dois) metros, atinge o topo e evidentemente não desce 1 metro
� R2 � 3 (três) minutos� R3 � Tio
� R4 � 150 (cento e cinqüenta) kg
� R5 � 22
� R6 � Vão as duas filhas. Uma delas volta. O pai sai. A outra filha volta. As duas filhas saem juntas.
� R7 - Primeiro leve a cabra, volte e pegue o capim; deixe o capim e leve a cabra de volta; deixe a cabra e leve o leão, depois é sóvoltar e pegar a cabra.
Noções de Lógica
Em Lógica um conceito importanteé o de �Proposição�
Você sabe o que é umaPROPOSIÇÃO?
18
Noções de Lógica
Proposição: é um enunciado verbal, ao qual deve ser atribuído, sem ambigüidade, um valor lógico verdadeiro (V) ou falso (F).
� Exemplos de proposições: Robson Fidalgo é Professor (V)
3 + 5 = 10 (F)
5 < 8 (V)
� Contra-exemplos de Proposições: Onde você vai ? 3 + 5
Os estudantes jogam vôlei. (quais ?)
Noções de Lógica
Operações Lógicas: são usadas para formar novas proposições a partir de proposições existentes. � Considerando p e q duas proposições genéricas, pode-se
aplicar as seguintes operações lógicas básicas sobre elas
� Definindo a prioridade: Usar parênteses Ex:((p v q)^(~q)) ou Obedecer (~) > (^) > (v)
Operação Símbolo SignificadoNegação ~ Não
Conjunção ^ EDisjunção v OU
19
Noções de Lógica
F v F = FF ^ F = F
F v V = V F ^ V = F
~ F = V V v F = V V ^ F = F
~ V = F V v V = V V ^ V = V
Tabela ~ (Não)Tabela v (ou)Tabela ^ (e)
Tabela Verdade
Exemplos de aplicação das operações lógica� Considere:
p = 7 é primo = (V) q = 4 é impar = (F)
� Então: 4 NÃO é impar = ~q = (~F) = (V) 7 NÃO é primo = ~p = (~V) = (F) 7 é primo E 4 NÃO é impar = p ^ ~q = (V ^ (~F)) =
(V ^ V) = (V) 7 é primo E 4 é impar = p ^ q = (V ^ F) = (F) 4 é impar E 7 é primo = q ^ p = (F ^ V) = (F) 4 é impar E 7 NÃO é primo = q ^ ~p = (F ^ (~V)) =
(F ^ F) = (F)
Noções de Lógica
20
Exemplos de aplicação das operações lógica (Cont.)
� Considere:
p = 7 é primo = (V) q = 4 é impar = (F)
� Então: 7 é primo OU 4 NÃO é impar = p v ~q = (V v (~F)) =
(V v V) = (V) 7 é primo OU 4 é impar = p v q = (V v F) = (V) 4 é impar OU 7 é primo = q v p = (F v V) = (V) 4 é impar OU 7 NÃO é primo = q v ~p = (F v (~V)) =
(F v F ) = (F)
Noções de Lógica
Exemplos de aplicação das operações lógica
� Resumindo:
� Ou seja:
Não (~) troca o valor lógico. Se é F passa a ser V e vice-versa
E (^) só tem valor V quando as duas proposições forem V, basta uma proposição ser F para o resultado ser F
OU (v) só tem valor F quando as duas proposições forem F, basta uma proposição ser V para o resultado ser V
p q p ^ q p v qV V V V
V F F V
F V F V
F F F F
~pF
F
V
V
pp qq p ^ qp ^ q p v qp v qVV VV VV VV
VV FF FF VV
FF VV FF VV
FF FF FF FF
~p~pFF
FF
VV
VV
Noções de Lógica
21
Atividade 2
Considerando p = V e q = F, resolva as seguintes expressões lógicas
� ~p
� ~q� p ^ q
� p v q
� (~p) ^ q
� (~p) v q
� p ^ (~q)� p v (~q)
� (~p) ^ (~q)
� (~p) v (~q)
RESPOSTAS - Atividade 2
Considerando p = V e q = F, resolva as seguintes expressões lógicas
� ~p = F� ~q = V
� p ^ q = F
� p v q = V
� (~p) ^ q = F� (~p) v q = F
� p ^ (~q) = V
� p v (~q) = V
� (~p) ^ (~q) = F
� (~p) v (~q) = V
22
Lógica de Programação & Algoritmo
O que éProgramação
de computadores?
INSTRUÇÕES
Instruções Delimitadoras
Servem para especificar o início e o fim do algoritmo.
início...
fim
23
Declaração de Variáveis
Utilizado para especificar os nomes e os respectivos tipos das variáveis necessárias no algoritmo
declare <variáveis>: <tipo>;onde:<variáveis> - lista de nomes de variáveis
separados por vírgula<tipo> - inteiro, real, caracter, string, lógico
Declaração de Variáveis
Exemplos:
declare a,b,c: real;declare nome: string;declare sexo: caracter;declare pratica_esporte: lógico;
24
Bloco de Comentário
Serve para explicar um determinado trecho do algoritmo, para torna-lo mais claro, facilitando seu entendimento por outras pessoas ou posteriormente.
{ <comentário> }Exemplo:{ Isto é um exemplo de comentário }
Instrução de Entrada
Usada para ler dados de entrada do algoritmo.
leia(<variáveis>);
onde:<variáveis> - conterão os dados lidos.
25
Instrução de Entrada
Exemplos:
leia(a,b,c);leia(nome);leia(sexo);leia(pratica_esporte);
Instrução de Saída
Usada para mostrar os resultados do processamento dos dados de entrada.
escreva(<resultados>);
onde:<resultados> - geralmente é o conteúdo de
uma ou mais variáveis com a resposta do problema.
26
Instrução de Saída
Exemplos:
escreva(�O valor de D é: �, D);escreva(nome, sexo);escreva(�Pratica esporte.�);
Instrução de Atribuição
Utilizado para atribuir um determinado valor a uma variável.
<variável> <expressão>;onde:<variável> - nome de uma variável<expressão> - um valor do mesmo tipo da
variável ou uma expressão lógica ou aritmética.
Recommended