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

Uma imagem com texto, garrafa, escuro

Descrição gerada automaticamente

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.

|
b=int(input("introduza um número inteiro positivo, b= "))

Aqui introduzimos o valor b que será trabalhado e que no exemplo acima foi o 25. Podia ser outro.  

|
while b>4*k:
    k=k+1

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.

Uma imagem com texto

Descrição gerada automaticamente

RUN    ex: 6

Notas:
num=8

Aqui vamos esconder o número que queremos que o jogador tente adivinhar.

 |
adv=int(input("Introduza um número inteiro entre 0 e 10:  ")

Vamos chamar adv à tentativa do jogador, ao tentar adivinhar o número escondido.

 |

if adv < num:
    print("Falhou: É maior!")

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)

 |

elif adv > num:
    print ("Fallhou: É menor!...")

Se o palpite adv for menor que 8, aparecerá a respetiva mensagem no ecrã.

 |

else:
    print("Acertou!...")  

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

Uma imagem com texto

Descrição gerada automaticamente

RUN    Tentativas: 2; 9 e 8.

Uma imagem com texto

Descrição gerada automaticamente

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

Uma imagem com texto

Descrição gerada automaticamente

RUN    

Uma imagem com texto

Descrição gerada automaticamente

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

https://www.w3schools.com/python/python_conditions.asp

https://www.w3schools.com/python/python_for_loops.asp

|

Lição 4-Listas e Strings>>

<<Voltar