Aula anterior...
• Definição do algoritmo
(continuação)
– Método de decomposição hierárquica utilizando níveis
crescentes de detalhe (abordagem top-down)
– Primeira noção de encapsulamento de operações
Departamento de Electrónica e Telecomunicações - Universidade de Aveiro
Decomposição hierárquica
Nível 1
nome: asdzxc
begin
passo 1
passo 2
passo 3
end.
nome: passo 1
begin
passo 1.1
passo 1.2
passo 1.3
end
nome: passo 3
begin
passo 3.1
passo 3.2
passo 3.3
passo 3.4
end
Nível 2
nome: passo 2
begin
passo 2.1
passo 2.2
end
...
Nível 3
nome: passo 3.2
begin
passo 3.2.1
passo 3.2.2
end
Departamento de Electrónica e Telecomunicações - Universidade de Aveiro
Esta aula...
• Definição do algoritmo
(continuação – mais exemplos)
– Encapsulamento de operações
• Noção geral de procedimento e de função
Departamento de Electrónica e Telecomunicações - Universidade de Aveiro
O robot Francisco
Apresentação: O Francisco é um robot formado por uma base móvel, que possibilita a
sua deslocação linear, para a esquerda e para a direita, por uma câmara vídeo, que
lhe permite a detecção rudimentar de objectos, presentes no cenário visualizado, e a
determinação da cor de objectos particulares, e por um braço articulado, terminado
numa pinça, que pode ser usado para pegar em objectos de pequenas dimensões.
Departamento de Electrónica e Telecomunicações - Universidade de Aveiro
O robot Francisco
Operações que o Francisco executa:
deslocar-se para a posição (X)
- dada uma coordenada linear de posição, o Francisco acciona o motor da sua base
móvel e desloca-se para a posição indicada; (procedimento)
pegar num objecto
- o Francisco usa a pinça do seu braço articulado para pegar num objecto que ele
detectou no cenário visualizado; (procedimento)
pousar um objecto
- o Francisco move o seu braço articulado para pousar, no centro da área visualizada,
o objecto que segura na pinça; (procedimento)
detecção de objectos
- com a sua câmara vídeo, o Francisco pode determinar se existem ou não objectos
no cenário que visualiza (função booleana);
cor do objecto
- igualmente com a sua câmara vídeo, o Francisco pode ainda determinar a cor do
objecto que segura na pinça (função que devolve o nome de uma cor).
Departamento de Electrónica e Telecomunicações - Universidade de Aveiro
Separação dos berlindes
Sua formulação: Dados três vasos cilíndricos, A, B, C, colocados sobre uma mesa,
que contêm berlindes de vidro de três cores diferentes, ensinar o Francisco a separálos, de modo a que os berlindes verdes fiquem no vaso A, os berlindes azuis no vaso
B e os berlindes rosa no vaso C.
A
B
C
Variáveis de entrada:
XA, XB, XC
(coordenadas lineares da posição dos vasos A, B, C)
Departamento de Electrónica e Telecomunicações - Universidade de Aveiro
Separação dos berlindes
Solução: Para resolver o problema, é necessário o recurso a um vaso auxiliar, onde os
berlindes são despejados, antes de se iniciar o processo de separação. A separação,
propriamente dita, vai consistir num processo repetitivo, em que cada berlinde é
retirado do vaso auxiliar e, de acordo com a cor que apresenta, é colocado no vaso
de destino.
A
B
C
A
U
X
Departamento de Electrónica e Telecomunicações - Universidade de Aveiro
Separação dos berlindes
Algoritmo:
(Decomposição ao nível 1)
Procedimento
nome: Separação dos berlindes
(Sequência de operações)
begin
deslocar todos os berlindes do vaso de partida para o vaso de destino (A, AUX);
deslocar todos os berlindes do vaso de partida para o vaso de destino (B, AUX);
deslocar todos os berlindes do vaso de partida para o vaso de destino (C, AUX);
while há berlindes no vaso (AUX) do
retirar um berlinde do vaso e arrumá-lo no vaso de destino correspondente (A, B, C)
end
Função
(Operação específica que resulta num dado valor)
Departamento de Electrónica e Telecomunicações - Universidade de Aveiro
Separação dos berlindes
(Decomposição ao nível 2)
nome: Deslocar todos os berlindes do vaso de partida para o vaso de destino
procedimento
variáveis de entrada: X - vaso de partida
Y - vaso de destino
begin
while há berlindes no vaso (X) do
begin
pegar num objecto;
colocar berlinde no vaso (Y)
end
end
Departamento de Electrónica e Telecomunicações - Universidade de Aveiro
Separação dos berlindes
(Decomposição ao nível 2)
nome: Há berlindes no vaso
função booleana
retorna TRUE, se existir pelo menos um berlinde no vaso
FALSE, em caso contrário
variável de entrada: X - vaso em análise
begin
deslocar-se para a posição (X);
TESTE := detecção de objectos;
retornar o valor de TESTE
end
Departamento de Electrónica e Telecomunicações - Universidade de Aveiro
Separação dos berlindes
(Decomposição ao nível 2)
nome: Retirar um berlinde do vaso e arrumá-lo no vaso de destino correspondente
begin
pegar num objecto;
COR := cor do objecto;
case COR of
VERDE: colocar berlinde no vaso (A);
AZUL: colocar berlinde no vaso (B);
ROSA: colocar berlinde no vaso (C)
end
end
Departamento de Electrónica e Telecomunicações - Universidade de Aveiro
Separação dos berlindes
(Decomposição ao nível 3)
nome: Colocar berlinde no vaso
procedimento
variável de entrada: Y - vaso de destino
begin
deslocar-se para a posição (Y);
pousar um objecto
end
Departamento de Electrónica e Telecomunicações - Universidade de Aveiro
Separação dos berlindes
Procedimento
Deslocar todos os berlindes
do vaso de partida para o
vaso de destino
Separação
dos
berlindes
Nível 1
Função
Há berlindes no vaso
Procedimento
Retirar um berlinde de um
vaso e arrumá-lo no vaso
de destino correspondente
Nível 2
Procedimento
Colocar
berlinde
no vaso
Nível 3
Departamento de Electrónica e Telecomunicações - Universidade de Aveiro
Separação dos berlindes
Observações
O problema, tal como foi formulado, não tem variáveis de saída, porque o Francisco é
um computador muito especial. Embora, como a generalidade dos computadores e dos
seres humanos, o Francisco processe informação, os resultados por ele obtidos
traduzem-se em acções concretas.
Contudo, se estivéssemos interessados numa solução que pudesse ser executada num
computador convencional, as três variáveis de entrada anteriores seriam substituídas por
nove variáveis de entrada / saída (variáveis de estado), do tipo N (vaso, cor), relativas ao
n.º de berlindes de cor cor,
cor existentes no vaso vaso.
vaso
A intenção expressa de implementar algumas das operações anteriores, através de
mecanismos de encapsulamento de informação, permitiu aumentar o vocabulário do
Francisco. Agora, além das cinco operações base, ele conhece mais três: deslocar todos
os berlindes de um vaso de partida para um vaso de destino, existência de berlindes num
vaso e colocar um berlinde num vaso.
Este mecanismo é extremamente importante, porque permite dar concisão, clareza e
robustez às descrições das soluções de problemas complexos.
Departamento de Electrónica e Telecomunicações - Universidade de Aveiro
Desenhar um triângulo isósceles e recto
Apresentação:
Utilizando asteriscos e espaços desenhe no écran um triângulo
isósceles e recto (ver figura) que tenha de lado um dado número (n)
de asteriscos fornecido como parâmetro de entrada.
15 espaços
*
*
*
*
*
*
* *
* * *
* * * *
Departamento de Electrónica e Telecomunicações - Universidade de Aveiro
Desenhar um triângulo isósceles e recto
Formulação:
Variáveis de entrada:
Variáveis de saída:
Solução/Método:
Departamento de Electrónica e Telecomunicações - Universidade de Aveiro
Desenhar um triângulo isósceles e recto
Algorítmo:
Departamento de Electrónica e Telecomunicações - Universidade de Aveiro
Download

aula 4 - Universidade de Aveiro › SWEET