Lógica de Programação - Universidade dos Açores

Propaganda
Lógica de Programação
Universidade dos Açores
Departamento de Matemática
www.uac.pt/~hguerra
!!
do Gr. logiké, arte de raciocinar
!!
s. f., ciência que tem por objecto o estudo dos métodos e
princípios que permitem distinguir raciocínios válidos de
outros não válidos;
ligação de ideias;
coerência;
parte da Filosofia que estuda as leis do raciocínio;
continuidade no raciocínio.
2008/09
Algoritmos
2
!!
Coerência
!!
Racionalidade
!!
É a arte de bem pensar
2008/09
!!
Algoritmos
3
Uso correcto
!! das leis do pensamento, da “ordem e da razão”
!! de processos de raciocínio e de simbologias formais
que conduz ao desenvolvimento de técnicas para a
produção de soluções
2008/09
Algoritmos
4
!!
do Lat. ratiociniu, cálculo
!!
s. m., acto ou faculdade de raciocinar;
!!
uso da razão;
!!
encadeamento de argumentos ou juízos para chegar a
uma demonstração;
!!
juízo;
!!
ponderação.
2008/09
Algoritmos
!!
É algo abstracto e intangível
!!
Pode-se representar de diferentes formas (verbais,
5
escritas)
!!
Na lógica da programação pode-se representar em
diferentes linguagens de programação
2008/09
Algoritmos
6
!!
Representação do raciocínio da lógica de programação
!!
É uma sequencia de passos (instruções) não ambíguos
que especificam exactamente o que deve ser feito
2008/09
!!
Algoritmos
7
É uma sequencia de instruções não ambíguas que podem ser
executadas automaticamente em tempo finito
!!
É um algoritmo escrito numa linguagem de programação
!! Está sempre associado a um determinado objectivo
!! Constitui a solução do problema
!!
A execução do programa (algoritmo) garante que o seu objectivo
é atingido
2008/09
Algoritmos
8
do Lat.! algorithmos < Ár. Alkharizmi
!! s. m., Mat.,
!!
!! forma da geração dos números;
!! processo de cálculo em que um certo número de regras
formais resolvem, na generalidade e sem excepções, problemas
da mesma natureza;
!! qualquer procedimento que permita mecanizar a obtenção de
resultados de tipo determinado, podendo um resultado ser
obtido por mais do que um algoritmo;
!!
S.m., Inform., conjunto de etapas bem definidas
necessárias para chegar à resolução de um problema.
!!
Rigoroso
!!
Eficaz
!!
Termina
2008/09
Algoritmos
9
2008/09
Algoritmos
10
!!
Sim.
!! Permite que nos concentremos na (lógica da construção da)
solução, abstraindo-nos de detalhes computacionais que
podem ser acrescentados mais tarde
!! Podem ser reutilizáveis em diferentes linguagens de
programação
2008/09
!!
Algoritmos
11
Problema: Uma lâmpada de um candeeiro de tecto
não acende
2008/09
Algoritmos
12
!!
Estuda metodologias de desenvolvimento de programas
!!
Estuda a arquitectura dos programas
!!
Utiliza técnicas desenvolvidas em vários domínios da Informática
(Inteligência Artificial, Bases de Dados, Interacção gráfica,
…)
!!
Abordada seguindo diferentes paradigmas (imperativo, com
objectos, funcional, lógico,…)
!!
Desenvolvimento de aplicações concretas
!!
Desenvolvimento de sistemas operativos
É um mundo em constante evolução
2008/09
Algoritmos
13
Arquitectura de
programas
Imperativo
I. A.
funcional
Bases de dados
Técnicas
PROGRAMAÇÃO
Paradigmas
Com objectos
Interfaces
gráficas
Lógico
Sistemas
operativos
Arquitectura de
computadores
2008/09
Algoritmos
14
Matemática
discreta
Arquitectura de
computadores
Álgebra
Especificações
Estruturas de
informação
Processadores
de linguagens
Controle
Abstrações
Processo
computacional
Programa
Linguagem
Estudo de
linguagens
formais
Complexidade
computacional
Algoritmo
Computabilidade
Fundamentos
2008/09
Teoria da
Computação
Algoritmos
15
Nos cerca de 50 anos de vida da Informática, largas centenas de
linguagens de programação foram desenvolvidas. Algumas, frutos de
modas e caprichos, tiveram uma vida muito curta, outras
sobreviveram dezenas de anos. Seja qual for a evolução futura das
linguagens de programação, os conceitos subjacentes às
linguagens persistem. Daí a sua grande importância neste mundo
em constante evolução que é a Programação.
[J. P. Martins e M R. Cravo, Programação em scheme, IST Press, 2004]
2008/09
Algoritmos
16
!!
Um homem precisa atravessar um rio com um barco que possui
capacidade para apenas uma pessoa e um lobo, ou uma cabra ou
um repolho. O que é que o homem tem de fazer para atravessar
o rio sem perder o lobo, a cabra e o repolho, atendendo a que o
lobo e a cabra não podem ficar sozinhos numa das margens, nem
a cabra e o repolho. Escreva um algoritmo que mostre todas as
acções necessárias para efectuar uma travessia segura.
2008/09
!!
Algoritmos
17
Três jesuítas e três canibais pretendem atravessar um rio. Para
tal, dispõem de um barco com capacidade para duas pessoas. Por
segurança, não se deve permitir que numa das margens o número
de Jesuítas seja inferior ao número de canibais.
Elabore um algoritmo que mostre as acções que concretizam
uma travessia segura.
2008/09
Algoritmos
18
!!
Elabore um algoritmo que mostre os passos necessários para
trocar um pneu de um carro nas seguintes situações:
(i)
Troca do pneu esquerdo traseiro;
(ii)
Troca do pneu esquerdo traseiro, verificando antes se o
pneu de reserva está em condições de ser usado
(iii) Verificar se existe algum pneu furado; se houver, verificar
o pneu de reserva e trocar o pneu correcto.
2008/09
!!
Algoritmos
19
O puzzle da Torre de Hanói é constituído por três postes verticais,
nos quais podem ser colocados discos de diâmetros diferentes
furados no centro, variando o número de discos de puzzle para
puzzle. O puzzle inicia-se com todos os discos no poste da esquerda
e a finalidade é movimentar todos os discos para o poste da direita
de acordo com as seguintes regras
(1) apenas se pode movimentar um disco de cada vez
(2) em cada poste, apenas se pode movimentar o disco de cima
(3) nunca se pode colocar um disco sobre outro disco de
diâmetro menor
2008/09
Algoritmos
20
!!
Considere uma calculadora comum com quatro operações
(soma, subtracção, multiplicação e divisão) mas que tem
inoperacionais as teclas de multiplicação e divisão.
!!
Escreva algoritmos que resolvam as seguintes expressões
matemáticas, usando apenas as operações de soma e subtracção
!!
!!
!!
!!
!!
12 x 4
23 x 11
10 / 2
175 / 7
2^8
2008/09
!!
Algoritmos
21
Resolva o problema das Torres de Hanói com 3 discos
2008/09
Algoritmos
22
!!
Resolva o problema das Torres de Hanói com 4 discos
2008/09
Algoritmos
23
Download