Documente Academic
Documente Profesional
Documente Cultură
Programao II
Professora: Norminda Luiza
Lgica
Podemos relacionar a lgica com a
correo do pensamento, pois uma
de suas preocupaes determinar
quais operaes so vlidas e quais
no so fazendo anlises das formas e
leis do pensamento.
Poderamos dizer tambm que a arte de
bem pensar, que a cincia das
formas do pensamento. Visto que a
forma mais complexa do pensamento o
raciocnio, a lgica estuda a correo do
pensamento.
Lgica
Todo mamfero um animal.
Todo cavalo um mamfero.
Portanto, todo cavalo um animal.
Esse exemplo ilustra silogismos, que no estudo da
Lgica Proposicional (ou clculo sentencial)
representam um argumento composto de duas
premissas e uma concluso; e est estabelecendo
uma relao, que pode ser vlida ou no.
Esse um dos objetivos da lgica, o estudo de
tcnicas de formalizao, deduo e anlise que
permitam vefiricar a validade de argumentos.
Lgica de Programao
Significa o uso correto das leis do
pensamento, da ordem da razo e de
processos de raciocnio e simbolizao
formais na programao de computadores,
objetivando
racionalidade
e
o
desenvolvimento de tcnicas que cooperam
para a produo de solues logicamente
vlidas e coerentes, que resolvam com
qualidade os problemas que se deseja
programar.
Para representar mais fielmente o raciocnio
da Lgica de Programao, utilizamos os
Algoritmos.
Algoritmo
a descrio de um conjunto de
comandos que, obedecidos, resultam
numa sucesso finita de aes.
Ao um acontecimento que, a partir de
um estado inicial, aps um perodo de
tempo finito, produz um estado final
previsvel e bem definido.
Geralmente, um algoritmo se destina a
resolver um problema: fixa um padro de
comportamento a ser seguido, uma norma de
execuo a ser trilhada, para se atingir, como
resultado final, a soluo de um problema.
Algoritmo
Um algoritmo pode ser definido como uma
sequncia de passos que visam a atingir um
objetivo bem definido
Para especificar uma sequncia de passos,
necessrio utilizar ordem, ou seja, pensar com
ordem, portanto precisamos utilizar lgica.
Algoritmo
Por que importante construir um algoritmo?
Representar mais fielmente o raciocnio envolvido na
Lgica de Programao.
Pode ser traduzida para qualquer linguagem de
programao.
Exemplo (utilizando um portugus coloquial)
Algoritmo 1.1 - Troca de lmpada
pegar uma escada;
posicionar a escada embaixo da lmpada;
buscar uma lmpada nova;
subir na escada;
retirar a lmpada velha;
colocar a lmpada nova.
Algoritmo
Algoritmo 1.2 - Troca de lmpada com teste
pegar uma escada;
posicionar a escada embaixo da lmpada;
buscar uma lmpada nova;
acionar o interruptor;
se a lmpada no acender, ento
subir na escada;
retirar a lmpada queimada;
colocar a lmpada nova.
Algoritmo
Algoritmo 1.3 - Troca de lmpada com teste no incio
acionar o interruptor;
se a lmpada no acender, ento
pegar uma escada;
posicionar a escada embaixo da lmpada;
buscar uma lmpada nova;
subir na escada;
retirar a lmpada queimada;
colocar a lmpada nova.
Algoritmo
Algoritmo 1.4 - Troca de lmpada com teste e repetio indefinida
acionar o interruptor;
subir na escada;
retirar a lmpada queimada;
colocar a lmpada nova.
se a lmpada no acender, ento
retirar a lmpada queimada;
colocar a lmpada nova.
se a lmpada no acender, ento
retirar a lmpada queimada;
colocar a lmpada nova.
se a lmpada no acender, ento
retirar a lmpada queimada;
colocar a lmpada nova. at quando?
Algoritmo
Algoritmo 1.5 parada
acionar o interruptor;
se a lmpada no acender, ento
pegar uma escada;
posicionar a escada embaixo da lmpada;
buscar uma lmpada nova;
subir na escada;
retirar a lmpada queimada;
colocar uma lmpada nova;
Enquanto a lmpada no acender, faa
retirar a lmpada queimada;
colocar uma lmpada nova;
Algoritmo
Um homem precisa atravessar um rio com um barco
que possui capacidade de transportar apenas ele
mesmo e mais uma de suas trs cargas, que so: um
lobo, um bode e um mao de alfafas. O que o homem
deve fazer para conseguir atravessar o rio sem perder
suas cargas?
Informaes:
um barco
um homem
um lobo
um bode
um mao de alfafa
Ao:
atravessar o rio sem perder as cargas
Algoritmo
Resultado:
todas as cargas na outra margem do rio
algoritmo:
atravessar homem e bode
voltar homem
atravessar homem e lobo
voltar homem e bode
atravessar homem e alfafa
voltar homem
atravessar homem e bode
fim algoritmo
Algoritmo
Elabore um algoritmo que mova trs discos
de uma Torre de Hani, que consiste em trs
hastes (a-b-c), uma das quais serve de
suporte para trs discos de tamanhos
diferentes (1-2-3), os menores sobre os
maiores. Pode-se mover um disco de cada
vez para qualquer haste, contanto que
nunca seja colocado um disco maior sobre o
menor. O objetivo transferir os trs discos
para outra haste.
Informaes:
Algoritmo
3 discos
3 hastes
Aes:
movimentar um disco de cada vez de forma que fiquem
ordenado
Resultado:
discos transferidos o ordenados para outra haste
algoritmo
- mover o disco 1 para a haste b
- mover o disco 2 para a haste c
- mover o disco 1 para a haste c
- mover o disco 3 para a haste b
- mover o disco 1 para a haste a
- mover o disco 2 para a haste b
- mover o disco 1 para a haste b
fim algoritmo
Torre de Hani
Torre de Hani
Algoritmo
Escrever os termos da sequncia de Fibonacci
inferiores a um valor numrico L.
A Sequncia de Fibonacci se define como tendo os
dois primeiros termos iguais a 1 e cada termo
seguinte igual a soma dos dois termos
imediatamente anteriores.
L = 50
1
1
L = 13
1
1
13
21
34
L=1
Algoritmo
Escreva os termos de Fibonacci inferiores a L
fim algoritmo
Algoritmo
Algoritmo {Escrita dos termos de Fibonacci inferiores a L}
Receba o valor de L.
{Processamento dos 2 primeiros termos}
Atribua o valor 1 ao primeiro termo
Se ele for menor que L
ento escreva-o
fim se
Atribua o valor 1 ao segundo termo
Se ele for menor que L
ento escreva-o
fim se
{Processamento dos termos restantes.}
Repita
Calcule novo termo somando os 2 anteriores
Se novo termo for maior ou igual a L
ento interrompa
fim se
Escreva novo termo
fim repita
fim algoritmo
Algoritmos Estruturados
So tcnicas que permitem sistematizar e
ajudar o desenvolvimento de algoritmos para a
resoluo de grandes e complexos problemas
nos computadores: so as tcnicas de
desenvolvimento estruturado de algoritmos.
Objetivos:
facilitar o desenvolvimento dos algoritmos;
facilitar o seu entendimento pelos humanos;
antecipar a comprovao da sua correo;
facilitar a sua manuteno e a sua modificao;
permitir que o seu desenvolvimento possa ser
empreendido simultaneamente por uma equipe de
pessoas.
Algoritmos Estruturados
Para atingir estes objetivos, o
desenvolvimento estruturado preconiza que:
os algoritmos sejam desenvolvidos por
refinamentos sucessivos. Este desenvolvimento
tambm se denomina construo hierrquica de
algoritmos e desenvolvimento de cima para
baixo (em ingls, top-down);
os sucessivos refinamento so mdulos, que
delimitam poucas funes e so o mais
independente possvel, isto , conservam poucos
vnculos com outros mdulos;
nos mdulos deve ser usado um nmero limitado
de diferentes comandos e de diferentes
estruturas de controle.
Linguagens de Programao
Para armazenar um algoritmo na memria de um
computador e para que ele possa, em seguida, comandar
as operaes a serem executadas, necessrio que ele
seja programado, isto , que seja transcrito para uma
linguagem que o computador possa entender, direta ou
indiretamente.
Os computadores s podem executar diretamente os
algoritmos expressos em linguagem de mquina, que
um conjunto de instrues capazes de ativar diretamente
os dispositivos eletrnicos do computador.
Compilador: um programa que traduz o algoritmo escrito
na linguagem escolhida para a linguagem de mquina
Interpretador: um programa que interpreta cada
comando do programa e executa uma srie de instrues
que a ele correspondem.