Sunteți pe pagina 1din 8

P1: Introdução à Programação

Guião de apoio o laboratório de introdução á programação

Neste guião, apresentam-se diferentes propostas de atividades a realizar durante


o primeiro laboratório.

1 Questões de linguagem

As linguagens de programação, como qualquer outra linguagem, utiliza um conjunto de palavras


para compor frases que mais não são instruções para a execução de determinadas tarefas pelo
computador (ou qualquer outra entidade que se pretende programar). Para além das frases existe um
contexto e esse contexto permite utilizar determinados objetos, variáveis (como na matemática) e
instruções específicas que permitem que o programa seja executado com sucesso.

No primeiro exemplo em que vamos trabalhar, simplificamos ao máximo a linguagem e o contexto.


Vamos assumir que existe um pequeno robô tartaruga que se move dando saltos para a frente, de
casa em casa, virando para a direita ou para a esquerda num mundo quadrado. Quando a tartaruga
se desloca, desloca-se para trás ou para a frente, mas nunca para os lados. Ela também deixa um
registo do percurso que faz tal e qual se vê na figura 1, permitindo traçar linhas à medida que se
desloca.

Fig.1 O movimento do robô tartaruga.

Vamos encontrar este contexto na linguagem Python (Turtle) e vamos, no


laboratório P2 colocar no ecrã uma tartaruga a deslocar-se. Mas, por agora,
ficamos num ambiente de papel e lápis.

P1 – LINGUAGEM Departamento de Informática - Universidade dos Açores


2 Movimentar objeto no espaço

2.1 Considere que tem as seguintes palavras (instruções) que pode utilizar para
movimentar o triângulo. O vértice com os lados maiores indica para onde está
virado:

- baixar caneta: BC
- levantar caneta: LC
- virar 90 graus no sentido do relógio: DIR(90)
- virar 90 graus contrario ao sentido do relógio: ESQ(90)
- avançar n casas: F(n)
- recuar n casas: R(n)

Por exemplo,
BC F(1) F(1) DIR(90) ESQ(90) F(1) LC

a) Apresente um programa que mova a tartaruga da partida(P) até à meta(M).


b) Apresente o mesmo programa mas agora a tartaruga fazendo metade (exatamente
metade) do percurso a recuar.
c) Suponha agora que a tartaruga tem de passar pela casa (3,4) e pela casa (6,6)
antes de chegar à meta. Proponha o programa que execute o caminho mais curto.
d) Lance um desafio ao colega, espere que ele faça o programa, e depois teste-o
de forma a confirmar que o programa executa

2.2 Considere que pretende simplificar um pouco a programação que executou. Para
isso acrescentam-se o seguinte comando:
- Repete um conjunto de comandos n vezes:

repete <n>
<comandos>
fim_repete

Por exemplo,
BC
repete 4
F(10)
ESQ
fim_repete
LC

P1 – LINGUAGEM Departamento de Informática - Universidade dos Açores


a) Identifique que tipo de figura geométrica a tartaruga desenha.
b) Se quisesse fazer um retângulo como alterava o programa?
c) Considere o percurso desenhado deste o percurso à meta. Apresente o programa
que faça esse percurso. Utilize a instrução “repete” de forma a tornar o
programa com o menor número de instruções possível!

d) Apresente uma proposta alterando um comando existente para que a tartaruga


possa fazer triângulos.
e) Apresente um programa em que a tartaruga faça um desenho parecido com uma
casa, com duas janelas e uma porta. Vai ter de usar BC e LC (porquê?)

3 Movimento com obstáculos

P
O
M

O mundo agora tem um obstáculo que é móvel (OM). Ele pode ser colocado em
qualquer lugar exceto numa casa em que cubra a casa de partida ou cada da meta.
O problema é o mesmo, escrever um programa que faça a tartaruga cheguer a M em
qualquer dos casos.
Para isso precisamos de uma regra adicional e uma capacidade adicional da

P1 – LINGUAGEM Departamento de Informática - Universidade dos Açores


tartaruga:
- A tartaruga vê a casa que está À sua frente
- A tartaruga, se choca com o obstáculo na sua frente, fica na mesma posição.

Adicionamos uma nova instrução:


- Vê se a casa à sua frente tem obstáculo: ve_obstaculo()

Se existir obstáculo retorna o valor verdadeiro (True), caso contrário retorna o


valor falso (False).

E acrescentamos uma instrução de alternativa. Esta instrução, com dois formatos,


permite executar instruções dependendo de uma condição:

- Se <condicao> então:
<executa>
fim_se
- Se <condicao> então:
<executa_1>
senão:
<executa_2>
fim_se
No primeiro formato, o comando <executa_1> só é executado se a condição for
verdadeira.
Por exemplo,
Se ve_obstaculo() então:
ESQ(90)
senão:
F(1)
fim_se
A tartaruga vira para a esquerda 90 se o obstáculo está à sua frente, senão anda
em frente uma casa.

3.1 Considere as seguintes configurações do mundo

P P
O
M

OM
M M

a) Crie o programa que leva a tartaruga à meta sabendo que o obstáculo OM se


encontra numa das posições possíveis na coluna 5 e não se pode saber qual é a
sua posição no início do programa.
b) Crie o programa que leva a tartaruga à meta, sabendo que o obstáculo OM se
encontra numa das posições possíveis na linha 4 (o obstáculo toma uma posição
possível nessa linha) e não se pode sabe a sua posição no início do programa.
c) Considere a situação em que existem os dois obstáculos em simultâneo.
Apresente um programa que leva a tartaruga para a meta sempre que possível

P1 – LINGUAGEM Departamento de Informática - Universidade dos Açores


4. Estruturas
Nos exercícios que foram realizados, identificaram-se três tipos de estruturas
associadas à programação imperativa:

- Sequência: Dois comandos em sequência são sempre executados nessa sequência


uma única vez.

- Alternativa:
O comando alternativa tem o formato: “se <condição> então <execução>”. A
<condição> é uma expressão verdadeira ou falsa (expressão booleana). Se a
<condição> for verdadeira, o resto da instrução é executada, ou seja, o comando
<execução> é executado.

- Ciclo:
Um comando ciclo repete um determinado número de vezes uma instrução.

a) Considere o comando:

enquanto <condição> faz:


<execução>
fim_enquanto

Diga que tipo de comando é este, explicando o que é que ele faz.

b) Apresente exemplos da sua utilização, considerando que a condição é


substituída por ve_obstaculo().

P1 – LINGUAGEM Departamento de Informática - Universidade dos Açores


P1: QUESTÕES PARA APRESENTAR
5. Desafio #2
Nos diapositivos das aulas teóricas é apresentado um desafio (desafio #2)
parecido com o seguinte (ver figuras em baixo):
“A tartaruga tem de chegar à meta. Mas um obstáculo na linha 6 pode impedi-la.
Ajude-a sabendo que:
- O obstáculo tem comprimento variável, nunca ocupando todas as colunas do mundo
da tartaruga.
- O obstáculo pode estar colocado em qualquer coluna.”

Apresente um programa que resolva este problema.


Nota: Tem de utilizar o comando
enquanto <condição> faz:
<execução>

M M
6. Variáveis

A tartaruga vai deslocar-se no mundo e vai contar o número de casas em que


encontra um obstáculo. Para isso ela utiliza a variável “obst” do tipo inteiro.
Essa variável é inicializada a zero (obst=0). E, depois, a cada descoberta de um
obstáculo pela tartaruga, ela é incrementada (obst = obst + 1).

Existem duas condições:

- A tartaruga vê o obstáculo – ve_obstaculo() é condição verdadeira quando tem


obstáculo à frente)

- A tartaruga vê última linha – ultima_linha() é condição verdadeira quando


está na última linha.

Apresente o programa que leva a tartaruga à meta e que conta o número de


obstáculos para um mundo em que cada linha tem um obstáculo numa posição
indefinida (os obstáculos permitem sempre chegar à meta).

M
P1 – LINGUAGEM Departamento de Informática - Universidade dos Açores
P1 – LINGUAGEM Departamento de Informática - Universidade dos Açores
P1 – LINGUAGEM Departamento de Informática - Universidade dos Açores

S-ar putea să vă placă și