Você está na página 1de 4

Prática 5 – INF100 – 2022/I – Valor: 2 pontos

INF100 – Introdução à Programação I


Roteiro Prática 06 a 09 de junho de 2022

Nome do arquivo a ser entregue: p05.py


Preparação: faça o “download” dos arquivos p05.py e fechadura.py para dentro da “pasta pessoal”.

Importante: Como qualquer outra prática de INF100 você deve:


1. Preencher o cabeçalho obrigatório (sem o cabeçalho com sua identificação, o valor da prática será 0)
2. Após finalizar o cabeçalho salve o arquivo com o nome correto
3. Leia as instruções até o final e, após finalizar sua leitura, inicie sua programação.

Obs.: Recomenda-se salvar o arquivo com certa frequência para não perder a digitação já feita caso haja uma
falha na rede elétrica.

Você se lembra de “Tut”, a “tartaruga virtual” que usamos na Prática 1 para percorrer o labirinto e pegar o
tomate? Vamos recordar alguns comandos usados para fazer Tut caminhar:

Comando Efeito

forward( n ) ou fd( n ) andar n passos para frente


backward( n ) ou bk( n ) andar n passos para trás
left( a ) virar a graus para a esquerda
right( a ) virar a graus para a direita

Por exemplo, para fazer Tut andar 100 passos para frente, virar para a direita e andar mais 50 passos, você
usaria a seguinte sequência de comandos:

Tut.fd( 100 )
Tut.right( 90 )
Tut.fd( 50 )

Nesta prática, você usará o rastro deixado pela tartaruga para desenhar uma “chave”. Essa chave deverá ser
única para cada número de matrícula.
A chave terá “dentes” que dependerão dos dígitos presentes no número de matrícula. Dígitos pares resultam
em dentes à direita da chave, e dígitos ímpares resultam em dentes à esquerda. Além disso, o comprimento
de cada dente depende do valor do dígito. Dois exemplos são mostrados abaixo:
Matrícula: 80347
Matrícula: 76543

Página 1 de 4
Prática 5 – INF100 – 2022/I – Valor: 2 pontos
Para desenhar cada “dente” correspondente a um dígito d, a tartaruga deverá:
1. Caminhar 40 passos para frente;
2. Se d for par:
a. Virar 90° para a direita;
b. Andar d *10 passos para frente;
c. Andar d *10 passos para trás;
d. Virar 90° para a esquerda;
Se d for ímpar:
a. Virar 90° para a esquerda;
b. Andar d *10 passos para frente;
c. Andar d *10 passos para trás;
d. Virar 90° para a direita;

Para obter cada dígito d sucessivamente, basta fazer a divisão inteira do número de matrícula por 10. Por
exemplo, se dividirmos 76543 por 10, teremos o quociente 7654 e o resto 3. Dessa forma, se tivermos o
número (76543) dentro da variável matricula, por exemplo, então matricula % 10 resultará em 3, e
matricula // 10 resultará em 7654. Se repetirmos essa divisão até que o quociente seja zero,
pegaremos cada dígito sucessivamente, da direita para a esquerda.
Para ter certeza de que você desenhou a chave corretamente, seu programa chamará uma função já pronta
que desenhará uma “fechadura” correspondente à sua chave. Como mostrado nos exemplos abaixo, a chave
(linha azul) deve se encaixar perfeitamente na fechadura (linha vermelha):

Obs.: seu programa deverá funcionar para qualquer número de matrícula entre 1 e 9.999.999. O programa só
deve desenhar a fechadura e a chave depois que o usuário digitar um valor dentro desse intervalo. Veja os
comentários dentro do arquivo p05.py para mais detalhes.
Segue abaixo um exemplo de execução do programa:

Página 2 de 4
Prática 5 – INF100 – 2022/I – Valor: 2 pontos

☞ Não esqueça de preencher o cabeçalho com seus dados e uma breve descrição do programa.

Após certificar-se que seu programa está correto, envie o arquivo do programa fonte (p05.py) através do
sistema do LBI. A entrega poderá ser feita até 23h59 do dia 9/06/2022.

Página 3 de 4
Prática 5 – INF100 – 2022/I – Valor: 2 pontos
Anexo I

Caso a sua aula teórica seja após a aula prática, assista ao primeiro vídeo da Unidade 2, disponível na
página da disciplina no PVANet Moodle (ava.ufv.br).

Nesta aula usaremos o comando repetitivo while para introduzir ações repetitivas em um programa. A
tabela abaixo resume a sintaxe desse comando:

Algoritmo Sintaxe Python Exemplo

while x > 0:
enquanto condição : while condição: x = x - 1
<comando(s)> <comando(s)> print( x )
próximo_comando próximo_comando print(‘fim’)

Nesse caso, enquanto “condição” for verdadeira, o bloco <comando(s)> será executado. Caso contrário, o
programa executará o próximo comando sequencial, após o comando repetitivo.

Lembre-se que, na linguagem Python, comandos em um mesmo bloco DEVEM TER A MESMA INDENTAÇÃO,
ou seja, mesmo espaçamento antes de cada um dos comandos do bloco, como mostrado no exemplo acima.

Veja o exemplo mais completo a seguir:


x = float( input('Entre com um número qualquer: '))
cont = 0 # um contador – número de execuções
while x > 0:
x = x – 1
cont = cont + 1 # incrementa o número de execuções
print( x )
print('O comando repetitivo foi executado %d vezes' %cont)

O que será escrito na tela pelo programa acima se você digitar o valor -5? E se você entrar com 3? Se estiver
em dúvida, execute esse programa dentro do IDLE para ver o que acontece e entender melhor o comando
repetitivo while.

Página 4 de 4

Você também pode gostar