docsity

Exemplo: For e Range

Vamos fazer um programa, usando "forfor", que receba 22 inteiros positivos nn e ii, e imprima todos os números que sejam múltiplos de ii e menores do que nn.


Primeiramente, vamos imaginar como esse programa vai funcionar. Para isso, vamos relembrar o funcionamento do forfor com rangerange. Quando digitamos:


forfor variavelvariavel inin rangerange (maximo)(maximo)


Fazemos um laço que atribui o valor 00 para variavelvariavel na primeira iteração, o valor 11 na segunda iteração, o valor 22

span>2 na terceira iteração, e assim por diante até maximo1maximo-1 (lembrando que não chega a atribuir o valor maximomaximo ).


Então a ideia é fazer um forfor que vá de 00 até nn, checando, de número a número, quais são os múltiplos de ii. Caso sejam múltiplos, imprimimos os números. Caso contrário, não fazemos nada.


Vamos iniciar o programa definindo a main()main():


def main(): 


A primeira coisa que o programa deve fazer é receber 22 inputsinputs do usuário. Um deles será salvo na variável nn e o outro será salvo na variável ii (por meio do inputinput). Note que ambos os números serão inteiros, portanto podemos convertê-los diretamente para variáveis do tipo intint:


 n = int(input("Digite o valor de n:")) i = int(input("Digite o valor de i:")) 


Agora, chegamos ao laço. Como precisamos checar se todos os números naturais desde 00 até n1n-1 são múltiplos de ii, vamos criar um forfor  que varie desde 00 até nn e que aumente de 11 em 11 unidade.


Este forfor fará que uma variável assuma todos os valores acima mencionados. Vamos chamar esta variável de kk.


Note que, como queremos iniciar o laço com kk valendo 00 e aumentar este valor de 11 em 11 unidade, basta criar um rangerange contendo o número em relação ao qual kk será sempre menor (não precisamos especificar condições de início e de incremento). Portanto:


 for k in range(n): 


Agora estamos dentro do loop e precisamos checar se cada valor que kk está assumindo é múltiplo de ii.


Para fazer isso, precisamos simplesmente checar se o resto da divisão de kk por ii vale 00. Se valer, ele será múltiplo e precisará ser impresso. Se não valer, não precisaremos fazer nada. Portanto, vamos usar um ifif para realizar esta checagem. O resto é calculado pelo operador %\%:


 if k%i == 0: 


Se este for o caso, precisaremos imprimir o valor que está em kk, portanto:


 print (k) 


Como não teremos que fazer nada caso o número armazenado em kk não seja múltiplo de ii, precisamos somente deixar que o laço realize todo o trabalho. Portanto, o programa completo é:


def main(): n = int(input("Digite o valor de n:")) i = int(input("Digite o valor de i:")) for k in range(n): if k%i == 0: print (k) 
Quer assistir a aula completa?
Torne-se Premium e tenha acesso ilimitado a todos os cursos.
lucas-valim-dias-7
ecv-133
ecv-121
yuri-boczko
pedro-oliveira-cr3
tiger-tiger-10
arthur-silva-do7
jose-ribeiro-tll
arthur-vianna-4
eliada-sao-jose
Outros alunos 741 estão fazendo este curso na Docsity
Premium
Anterior
Aulas
Materiais
Próximo