Aula anterior
This presentation is the property of its rightful owner.
Sponsored Links
1 / 34

Aula anterior... PowerPoint PPT Presentation


  • 69 Views
  • Uploaded on
  • Presentation posted in: General

Formulação do problema Salientando a forma como o computador será utilizado (e.g. ler do teclado ... calcular ... e escrever no écran ...) Especificação Identificação/caracterização dos dados de entrada Identificação/caracterização dos dados de saída

Download Presentation

Aula anterior...

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Aula anterior

Formulação do problema

Salientando a forma como o computador será utilizado (e.g. ler do teclado ... calcular ... e escrever no écran ...)

Especificação

Identificação/caracterização dos dados de entrada

Identificação/caracterização dos dados de saída

Identificação do método ou solução para chegar dos dados de entrada aos de saída

Aula anterior...

Departamento de Electrónica e Telecomunicações - Universidade de Aveiro


Aula anterior cont

Definição do algoritmo (aquilo que realmente interessa)

Usando vocabulário e sintaxe próximas do Pascal

Decompor o método ou solução que se pretende seguir numa sequência de passos

Escrita do Programa

Se o algoritmo estiver bem definido e detalhado esta parte poderá resumir-se a uma simples tradução daquele para Pascal

Aula anterior... (cont.)

Departamento de Electrónica e Telecomunicações - Universidade de Aveiro


Esta aula

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

Esta Aula ...

Departamento de Electrónica e Telecomunicações - Universidade de Aveiro


Decomposi o hier rquica

nome: asdzxc

begin

passo 1

passo 2

passo 3

end.

Decomposição hierárquica

Nível 2

Nível 1

nome: passo 1

begin

passo 1.1

passo 1.2

passo 1.3

end

...

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

nome: passo 3

begin

passo 3.1

passo 3.2

passo 3.3

passo 3.4

end

Departamento de Electrónica e Telecomunicações - Universidade de Aveiro


Convers o de dist ncias milhas para quil metros

Sua formulação para resolução no computador: Dada uma distância, expressa em milhas, que é lida do teclado, convertê-la para quilómetros e escrevê-la no écran do monitor vídeo.

Variável de entrada:MILHAS (distância expressa em milhas)

valor numérico positivo ou nulo

Variável de saída:KILOMETROS (distância expressa em quilómetros)

valor numérico representado com 3 casas decimais

Solução: KILOMETROS = 1.609 * MILHAS

Conversão de distâncias (milhas para quilómetros)

Departamento de Electrónica e Telecomunicações - Universidade de Aveiro


Convers o de dist ncias milhas para quil metros1

(Decomposição ao nível 1)

Algoritmo:

nome: Conversão de distâncias (milhas para quilómetros)

begin

leitura com validação de uma distância expressa em milhas (MILHAS);

conversão da distância de milhas para quilómetros (MILHAS, KILOMETROS);

impressão da distância expressa em quilómetros (KILOMETROS)

end

Conversão de distâncias (milhas para quilómetros)

Departamento de Electrónica e Telecomunicações - Universidade de Aveiro


Convers o de dist ncias milhas para quil metros2

(Decomposição ao nível 2)

nome: Leitura com validação de uma distância expressa em milhas

begin

repetir

escrita no écran do monitor vídeo da mensagem ‘Distância em milhas? ‘;

leitura do valor introduzido pelo teclado (MILHAS)

até que MILHAS >= 0.0

end

Conversão de distâncias (milhas para quilómetros)

nome: Conversão da distância de milhas para quilómetros

begin

KILOMETROS = 1.609 * MILHAS

end

Departamento de Electrónica e Telecomunicações - Universidade de Aveiro


Convers o de dist ncias milhas para quil metros3

(Decomposição ao nível 2)

nome: Escrita no écran do monitor vídeo da distância expressa em quilómetros

begin

escrita no écran do monitor vídeo da mensagem ‘Distância em quilómetros é ‘;

escrita no écran do monitor vídeo do valor de KILOMETROS com 3 casas decimais;

mudança de linha

end

Conversão de distâncias (milhas para quilómetros)

Departamento de Electrónica e Telecomunicações - Universidade de Aveiro


Convers o de dist ncias milhas para quil metros4

program conv_dist;

const Km_por_milha= 1.609;

var Km, milhas: real;

begin

repeat

write(‘Escreva uma distância em milhas: ‘);

readln(milhas);

until milhas >= 0.0;

Km:= Km_por_milha * milhas;

writeln(‘A distância em Kilómetros é: ‘,Km:0:3);

end

Conversão de distâncias (milhas para quilómetros)

Departamento de Electrónica e Telecomunicações - Universidade de Aveiro


Resolu o da equa o de 2 grau

Sua formulação para resolução no computador: Dados os parâmetros A, B e C, que são lidos do teclado, determinar as raízes da equação de 2º grau, Ax2+Bx+C=0, e escrevê-las no écran do monitor vídeo.

Variáveis de entrada:A, B, C (parâmetros da equação)

A é um valor numérico não nulo, B e C são valores numéricos quaisquer

Variáveis de saída:X1R, X1I, X2R, X2I (raízes da equação)

valores numéricos representados em notação científica, com 4 algarismos significativos na mantissa

Solução:

Resolução da equação de 2º grau

Departamento de Electrónica e Telecomunicações - Universidade de Aveiro


Resolu o da equa o de 2 grau1

Algoritmo:(Decomposição ao nível 1)

nome: Resolução da equação de 2º grau Ax2+Bx+C = 0

begin

leitura com validação dos coeficientes da equação (A, B, C);

determinação das raízes da equação por aplicação da fórmula resolvente

(A, B, C, X1R, X1I, X2R, X2I);

impressão das raízes (X1R, X1I, X2R, X2I)

end

Resolução da equação de 2º grau

Departamento de Electrónica e Telecomunicações - Universidade de Aveiro


Resolu o da equa o de 2 grau2

(Decomposição ao nível 2)

nome: Leitura com validação dos coeficientes da equação

begin

escrita mais ou menos centrada no écran da mensagem

‘Resolução da equação de 2º grau Ax^2+Bx+C = 0‘;

mudança de linha;

repetir

escrita no écran da mensagem ‘A = ‘;

leitura do valor introduzido pelo teclado (A)

até que A <> 0.0;

escrita no écran da mensagem ‘B = ‘;

leitura do valor introduzido pelo teclado (B);

escrita no écran da mensagem ‘C = ‘;

leitura do valor introduzido pelo teclado (C)

end

Resolução da equação de 2º grau

Departamento de Electrónica e Telecomunicações - Universidade de Aveiro


Resolu o da equa o de 2 grau3

(Decomposição ao nível 2)

nome: Determinação das raízes da equação por aplicação da fórmula resolvente

begin

DELTA := B2 - 4AC;

se DELTA >= 0.0 então

begin (* raízes reais *)

X1R := (-B + (DELTA)) / 2A;X1I := 0.0;

X2R := (-B - (DELTA)) / 2A;X2I := 0.0

end

ou então

begin (* raízes complexas conjugadas *)

X1R := -B / 2A;X1I := (-DELTA) / 2A;

X2R := X1R;X2I := -X1I

end

end

Resolução da equação de 2º grau

Departamento de Electrónica e Telecomunicações - Universidade de Aveiro


Resolu o da equa o de 2 grau4

nome: Impressão das raízes(Decomposição ao nível 2)

begin

(* os valores relativos às raízes deverão ser escritos em notação científica, com 4 algarismos significativos na mantissa *)

escrita no écran da mensagem ‘X1 = ‘; (* X1 = (X1R) + i (X1I) *)

seguida do valor de X1R,

seguido da mensagem ‘ + i‘;

seguida do valor de X1I;

mudança de linha;

escrita no écran da mensagem ‘X2 = ‘;

seguida do valor de X2R,

seguido da mensagem ‘ + i‘;

seguida do valor de X2I;

mudança de linha;

end

Resolução da equação de 2º grau

Departamento de Electrónica e Telecomunicações - Universidade de Aveiro


Mudan a da roda de um autom vel que tem um pneu furado

Formulação:

Dados um automóvel que tem um pneu furado, uma roda suplente, uma chave de cruz e um macaco, descrever as operações necessárias à mudança da roda com o pneu furado.

Mudança da roda de um automóvel que tem um pneu furado

Departamento de Electrónica e Telecomunicações - Universidade de Aveiro


Mudan a da roda de um autom vel que tem um pneu furado1

Algoritmo:(Decomposição ao nível 1)

nome: Mudança da roda de um automóvel que tem um pneu furado

begin

se há tampão então

tirar o tampão;

soltar as porcas;

posicionar o macaco e levantar o carro;

desapertar e retirar as porcas;

trocar as rodas;

colocar e apertar as porcas;

baixar o carro e retirar o macaco;

dar um aperto forte às porcas;

se há tampão então

colocar o tampão

end

Mudança da roda de um automóvel que tem um pneu furado

Departamento de Electrónica e Telecomunicações - Universidade de Aveiro


Mudan a da roda de um autom vel que tem um pneu furado2

(Exemplo de decomposição ao nível 2)

nome: Soltar as porcas

begin

para todas as porcas (1 de cada vez) fazer

begin

posicionar a chave de cruz sobre a porca;

repetir

aplicar o binário à chave no sentido do desaperto;até a chave rodar;

retirar a chave da porca;

end

end

Mudança da roda de um automóvel que tem um pneu furado

Departamento de Electrónica e Telecomunicações - Universidade de Aveiro


Mudan a da roda de um autom vel que tem um pneu furado3

(Exemplo de decomposição ao nível 2)

nome: Posicionar o macaco e levantar o carro;

begin

enquanto não se encontrar o encaixe do macaco fazer

begin

procurar encaixe;

end

colocar macaco no encaixe;

repetir

rodar uma volta no macaco;

até que roda furada esteja no ar;

end

Mudança da roda de um automóvel que tem um pneu furado

Departamento de Electrónica e Telecomunicações - Universidade de Aveiro


Mudan a da roda de um autom vel que tem um pneu furado4

(Exemplo de decomposição ao nível 2)

nome: Desapertar e retirar as porcas

begin

para todas as porcas (1 de cada vez) fazer

begin

posicionar a chave de cruz sobre a porca;

repetir

aplicar o binário à chave no sentido do desaperto;até soltar porca do parafuso;

retirar a chave e a porca;

end

end

Mudança da roda de um automóvel que tem um pneu furado

Departamento de Electrónica e Telecomunicações - Universidade de Aveiro


Programar um micro rato

Problema: Programar o robot para ir da posição de partida (P) para a posição de chegada (C) desviando-se dos obstáculos que encontrar pelo caminho.

P

C

Programar um Micro-Rato

Comandos reconhecidos pelo robot (instruções):

Virar à direita/esquerda

Andar em frente/parar

Possui sensores (variáveis de entrada):

de obstáculos (dir/fre/esq/nenhum)

de chegada (dir/fre/esq/baixo)

Departamento de Electrónica e Telecomunicações - Universidade de Aveiro


Programar um micro rato1

nome: micro-ratoNível 1

begin

enquanto não estiver na Chegada fazer

begin

orientar-se para a chegada

andar em frente

se encontra obstáculo

então desviar-se de obstáculo

end

parar

end

P

C

Não existem no vocabulário básico!

É necessário prosseguir a decomposição...

Programar um Micro-Rato

Comandos reconhecidos pelo robot:

Virar à direita/esquerda

Andar em frente/parar

Possui sensores:

de obstáculos (dir/fre/esq/ne)

de chegada (dir/fre/esq/cima)

Departamento de Electrónica e Telecomunicações - Universidade de Aveiro


Programar um micro rato2

Nível 2

nome: orientar-se para a chegada

begin

repetir

se Chegada à direita então

virar à direita

ou então

se Chegada à esquerda então

virar à esquerda

até que Chegada em frente

end

P

C

Programar um Micro-Rato

Comandos reconhecidos pelo robot:

Virar à direita/esquerda

Andar em frente/parar

Possui sensores:

de obstáculos (dir/fre/esq)

de chegada (dir/fre/esq/cima)

Departamento de Electrónica e Telecomunicações - Universidade de Aveiro


Programar um micro rato3

Nível 2

nome: desviar-se de obstáculo

begin

repetir

se obstáculo à direita então

virar à esquerda

se obstáculo à esquerda então

virar à direita

se obstáculo em frente então

virar à esquerda

até que nenhum obstáculo

andar em frente

end

P

C

Programar um Micro-Rato

Comandos reconhecidos pelo robot:

Virar à direita/esquerda

Andar em frente/parar

Possui sensores:

de obstáculos (dir/fre/esq)

de chegada (dir/fre/esq/cima)

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.

O robot Francisco

Departamento de Electrónica e Telecomunicações - Universidade de Aveiro


O robot francisco1

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;

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;

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;

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).

O robot Francisco

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.

Variáveis de entrada:

A, B, C(coordenadas lineares de posição dos vasos A, B, C)

A

B

C

Separação dos berlindes

Departamento de Electrónica e Telecomunicações - Universidade de Aveiro


Separa o dos berlindes1

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.

AUX

A

B

C

Separação dos berlindes

Departamento de Electrónica e Telecomunicações - Universidade de Aveiro


Separa o dos berlindes2

Algoritmo:(Decomposição ao nível 1)

nome: Separação dos berlindes

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

Separação dos berlindes

Departamento de Electrónica e Telecomunicações - Universidade de Aveiro


Separa o dos berlindes3

(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

Separação dos berlindes

Departamento de Electrónica e Telecomunicações - Universidade de Aveiro


Separa o dos berlindes4

(Decomposição ao nível 2)

nome: Há berlindes no vaso

função booleana

retornaTRUE, 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

Separação dos berlindes

Departamento de Electrónica e Telecomunicações - Universidade de Aveiro


Separa o dos berlindes5

(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

Separação dos berlindes

Departamento de Electrónica e Telecomunicações - Universidade de Aveiro


Separa o dos berlindes6

(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

Separação dos berlindes

Departamento de Electrónica e Telecomunicações - Universidade de Aveiro


Separa o dos berlindes7

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, existentes no 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.

Separação dos berlindes

Departamento de Electrónica e Telecomunicações - Universidade de Aveiro


Charada com berlindes

Sua formulação: Considere de novo três vasos cilíndricos, A, B, C, colocados sobre uma mesa, que contêm berlindes de vidro de duas cores diferentes, rosa e azul, e procure descobrir em que situação ficam os vasos, após a realização das operações seguintes:

1)Se o vaso C contiver berlindes, desloque-os todos para o vaso A;

2)Se o vaso A contiver, pelo menos, um berlinde rosa, desloque um berlinde rosa do vaso A para o vaso C;

3)Se o vaso B contiver, pelo menos, um berlinde azul, desloque um berlinde azul do vaso B para o vaso A;

4)Se o vaso B, ou o vaso C, contiver berlindes azuis, regresse ao passo 2.

Descreva a seguir uma solução do problema que possa ser realizada pelo Francisco!

Charada com berlindes

Departamento de Electrónica e Telecomunicações - Universidade de Aveiro


  • Login