<<Voltar | <<Python | Início>> |
Python-Lição 3 |
Ciclos: While; If, elif else; e Range. |
|
Exercício 3.1) Usar o ciclo While. |
Objetivo: "O menor múltiplo de 4 maior ou igual a um número dado." Resolver o seguinte problema: Dado um número qualquer, esse número pode ser múltiplo de 4 ou não. Se for múltiplo de 4, aceitamos esse número. Se o número não for múltiplo de 4, procuremos o menor múltiplo de 4 que ultrapassa esse número. Por exemplo, se for dado o 12, aceitamos o 12 como resultado final. Se for dado o 25, vamos obter o 28 como resultado final. |
|
RUN ex: b= 25 |
|
Notas: comentário ao programa: k=1 Esta constante começa no valor 1, e vai aumentando de um em um, até atingirmos o objetivo estabelecido no while, como veremos. | Aqui introduzimos o valor b que será trabalhado e que no exemplo acima foi o 25. Podia ser outro. | Lembremos que acima, fizemos k=1. Se o b for, por exemplo 3, será menor que 4*1=4. E neste caso, o programa saltará para a instrução seguinte e irá apresentar (print) o número 4. Se b for 9, então b é maior que 4*1, e nesse caso, o programa faz k=1+1=2 e volta a comparar 9 com 4*2=8. Como 9 ainda é maior que 8, o programa faz k=2+1=3, pelo que obteremos 4k=4*3=12. Como b já não é maior que 12, o programa apresentará o 12. Muito importante: Depois do While tem de vir sempre uma condição e dois pontos (:) e o procedimento a realizar surge na linha seguinte colocada com um ligeiro afastamento para a direita (1 tab). | print("O menor múltiplo de 4 maior ou igual que b é: ", 4*k) Quando deixa de ser verificada a condição estabelecida pelo while, passamos para a instrução seguinte, que neste caso é print, isto é, apresentar o 4k pretendido. |
Sugestão: Como variante, construa um programa que procure: "O menor múltiplo de 10 maior ou igual a um número dado", ou invente um novo programa de raiz que onde utilize estes comandos. |
|
Exercício 3.2) Usar o ciclo: if, elif, else. |
Objetivo: Adivinhar um número inteiro entre zero e dez. Vamos escolher e esconder o 8. O utilizador vai introduzir um número para tentar acertar. Se acertar, aparecerá no ecrã: "Acertou!...". Se falhar, aparecerá "Falhou: É maior!" ou "Falhou: É menor!", consoante a situação. |
|
RUN ex: 6 |
|
Notas: Aqui vamos esconder o número que queremos que o jogador tente adivinhar. | Vamos chamar adv à tentativa do jogador, ao tentar adivinhar o número escondido. | Se o palpite adv for menor que 8, o ecrã aparecerá a mensagem indicada. Repare nos dois pontos depois da condição e que o print fica na linha seguinte, alinhado ligeiramente à direita. (1 tab) | Se o palpite adv for menor que 8, aparecerá a respetiva mensagem no ecrã. | Se o palpite adv for igual a 8, aparecerá a respetiva mensagem no ecrã. Muito importante: Depois de if, elif e else, tem de vir sempre uma condição e dois pontos (:) e o procedimento a realizar surge na linha seguinte colocada com um ligeiro afastamento para a direita (1 tab). |
Sugestão: Como variante, reescreva este programa com outro valor para num, ou invente um novo programa de raiz que onde utilize estes comandos. |
|
Exercício 3.3) Usar os ciclos while e if, elif, else. |
Objetivo: Adivinhar um número inteiro entre zero e dez. Vamos escolher e esconder o 8. O utilizador vai introduzir um número para tentar acertar. Se acertar, aparecerá no ecrã: "Acertou!...". Se falhar, aparecerá "Falhou: É maior!" ou "Falhou: É menor!", consoante a situação. Enquanto não acertar, poderá fazer mais tentativas. |
|
RUN Tentativas: 2; 9 e 8. |
|
Notas: Este programa é muito parecido ao problema anterior, mas com uma nova variante, a possibilidade de tentar novamente enquanto a tentativa do jogador não for igual ao valor procurado. | adv=0 Começamos por atribuir o valor zero a adv, para dar sentido à condição que se segue. | while adv!=num: Enquanto o adv for diferente (!=) de num, vamos repetindo o que se segue, isto é, pedir um número para ir tentando. Este ciclo while só terminará quando o número tentado for igual ao num, que é estabelecido inicialmente como o 8. Muito importante: Depois do While tem de vir sempre uma condição e dois pontos (:) e o procedimento a realizar surge na linha seguinte colocada com um ligeiro afastamento para a direita (1 tab). Por sua vez, depois do if, elif e else, deverá vir novo espaço à direita, como podemos ver na escrita do programa. |
Sugestão: Como variante, reescreva este programa com outro valor para num, ou invente um novo programa de raiz que onde utilize estes comandos. |
||
Exercício 3.4) Usar o range. |
Objetivo: Usando o comando range, escrever a tabuada dos 7, isto é, os 10 primeiros múltiplos de 7: 7; 14; 21; .....;70 |
|
RUN |
|
Notas: O range percorre a lista, mas o valor final pode enganar um pouco. Ao escrevermos range(1,11), o programa faz 11-1=10 e considera que deve fazer uma sequência de 10 valores, começando em i=1. Se escrevermos apenas range (11), ele escreve de zero a 10. |
Sugestão: Reescreva este programa fazendo várias variantes. Por exemplo, com range (10), range(2, 10),etc. Tire conclusões a partir das experiências feitas. |
|
Outras sugestões: |
Pode ser útil consultar a lista mais instruções sobre while e if...: |
https://docs.python.org/pt-br/3/reference/compound_stmts.html |
Outro tutorial: |
https://www.w3schools.com/python/python_while_loops.asp |
|