Aula 4
Lógica de Programação e Algoritmos Conversa Inicial
Prof. Vinicius Pozzobon Borin
1 2
Aprenderemos:
O objetivo desta aula é construir while (enquanto)
algoritmos com estruturas de repetição for (para)
Laços de repetição aninhados
3 4
Exemplo lúdico
Estrutura de repetição
ivector/shutterstock - Incomible/shutterstock
5 6
Exemplo lúdico Descrição narrativa do movimento
Início
1. Mover
2. Mover
MOVER MOVER MOVER MOVER MOVER
3. Mover
4. Mover
5. Mover
Fim
ivector/shutterstock - Incomible/shutterstock
7 8
Motivação Estrutura de repetição
Escrever Mover cinco vezes
não parece trabalhoso, certo? Estrutura no programa em que
todas as instruções contidas nela se
Imagine escrever 100 ou repetem de maneira indefinida, até
1000 vezes. Não é prático que uma condição seja satisfeita
Para resolver problemas assim, Sinônimos: estrutura iterativa,
linguagens de programação laço de repetição ou loop de repetição
utilizam estruturas de repetição
9 10
Estrutura de repetição while
Vejamos no Python um exemplo
11 12
while (enquanto) while (enquanto)
Repete um bloco de instruções
condição F
enquanto determinada condição
se mantiver verdadeira
Caso contrário, ocorre o desvio Loop V
para a primeira linha de código
após este bloco de repetição Instrução(ões)
Fonte: Borin, 2020.
13 14
Python
Parênteses
(opcionais)
Estrutura de Condição Vamos praticar no Python
repetição lógica
Atenção com a indentação
while ( x>y ) :
Fonte: Borin, 2020.
15 16
Variável de controle Variáveis contadoras e acumuladoras
Define a condição de parada Contadoras
com que o laço é executado Acrescentam valores
Chamamos de iterador a variável de constantes em uma variável
controle que realiza a contagem do número Acumuladoras
de vezes que o laço está sendo executado
Acumulam totais,
Voltamos ao Python como um somatório
17 18
Exercício com contador Exercício com acumulador
Escreva um algoritmo que imprima Escreva um algoritmo que calcule a sua
na tela somente valores dentro de média de notas em determinada disciplina
um intervalo especificado pelo Vamos assumir que a média final é dada pela
usuário e que sejam número pares média aritmética de cinco notas digitadas
19 20
Operadores especiais de atribuição
Operador Exemplo Equivalente
+= x += 1 x=x+1
Tópicos importantes
-= x -= 1 x=x-1
com laços em Python
*= x *= 2 x=x*2
/= x /= 2 x=x/2
**= x **= 2 x = x ** 2
//= x //= 4 x = x // 4
21 22
Validando dados de entrada
Exemplo
Crie um algoritmo que receba um
valor do tipo inteiro via teclado
Vamos praticar operadores
especiais de atribuição no Python No entanto, o programa só deve
aceitar, obrigatoriamente,
valores inteiros e positivos
Qualquer valor negativo, ou igual a
zero, deve ser rejeitado pelo programa
e um novo valor deve ser solicitado
23 24
Instrução break
A instrução break serve para encerrar
Vejamos no Python
um laço de repetição abruptamente,
independentemente do estado da
variável de controle do laço
25 26
Exercício
Escreva um algoritmo que fique recebendo
frases ou palavras digitadas pelo usuário Voltamos ao Python
Encerre o algoritmo quando
a palavra “sair” for digitada
27 28
Instrução continue Exercício
O comando continue serve para retornar Escreva um algoritmo que
o laço ao início a qualquer momento, realize um login em um sistema
independentemente do estado da variável O usuário deve informar
de controle da condicional do laço seu nome e senha
29 30
Valores Truthy e Falsey
Dados não booleanos também podem
ser tratados como True ou False em
uma condição, seja esta de uma
Voltamos ao Python estrutura condicionada ou de um laço
Falsey/False
Número zero (int ou float) e string vazia
Truthy/True
Qualquer outro dado
31 32
Estrutura de repetição for
Voltamos ao Python
33 34
for (para) Python
Parênteses
Assim como o while, essa estrutura (obrigatórios)
repete um bloco de instruções Estrutura Estrutura
de de Valor final
enquanto uma condição repetição repetição do iterador
se mantiver verdadeira
No entanto, diferentemente do while,
for i in range ( 6 ) :
o for é empregado em situações em
que o número de vezes que o laço irá
executar é finito e bem definido
Fonte: Borin, 2020.
35 36
for (para)
Vamos praticar no Python Podemos definir o valor inicial do iterador?
Sim
Atenção com a indentação
Podemos definir o passo?
Sim
37 38
Python: com três parâmetros
Variável de controle
Parênteses
Estrutura
(obrigatórios)
de Função de
repetição intervalo
Vamos praticar no Python
for i in range ( 0 , 6 , 1 ) :
Valor inicial Valor final Passo do
do iterador do iterador iterador
Fonte: Borin, 2020.
39 40
Varredura de string
Vamos praticar no Python
Podemos passar por todos os caracteres
de uma string usando um laço for
41 42
Comparativo while e for Exercício
x=1
while (x < 6): for i in range(1,6,1):
print(x)
print(i) Escreva um algoritmo que calcule a média
x=x+1
dos números pares de 1 até 100 (1 e 100
Valor inicial do iterador
inclusos). Implemente o laço usando for
Valor final do iterador
Passo do iterador
43 44
Podemos inserir laços dentro de outro laço
Estruturas de repetição aninhadas Não existe limite para quantos laços
podemos colocar dentro de outro
Podemos misturar while e for
45 46
Exercício
Vamos resolver no Python
Escreva um algoritmo em Python diferentes implementações
que calcule a tabuada de todos os
2-while
números de 1 até 10, e, para cada
número, vamos calcular a tabuada 2-for
multiplicando-o pelo while+for
intervalo de 1 até 10
47 48