Logo Saci
Projeto Programando o Futuro
Programação para Iniciantes (Blockly+Python)
registrar
login
Aula 12 - Bloco de repetição controlada por variável
Avalie esta aula
 
Avalie esta revisão

Contando quantas vezes um laço foi executado

Na aula anterior vimos o seguinte problema, que resolvemos com o bloco Repita:

Dada uma lista com N números inteiros, escrever na saída o primeiro número da lista que é par. Se não existe número par, escreva -1 na saída.

E se ao invés de escrever na saída o número encontrado, quisermos escrever a posição do número encontrado na lista?

Ou seja, para a lista

1371352922122235
posição123 45 67

ao encontrarmos o número 22, devemos escrever 7 na saída, significando que o primeiro par é o sétimo número da lista.

Para contar quantas vezes o laço foi executado podemos usar uma variável com valor inicial zero e somar um ao valor da variável no início de cada passo da repetição.

Veja este pequeno exemplo em Blockly:

A variável i, utilizada como contador de repetições, é chamada de variável de controle do laço. Quando esse trecho de programa é executado, ele escreve quatro linhas na saída:

1
2
3
fim

O uso de uma variável de controle de laço é tão frequente que existe um bloco específico para esse caso.

O bloco de repetição controlada por variável

O bloco de repetição controlada por variável é encontrado no menu Laços da Barra de Ferramentas:

O bloco de tem

Suponha que a variável de controle seja i, como no bloco acima. O bloco é executado:

Por exemplo, o trecho de programa

Quando executado produz a saída
1
2
3
fim
Note que os dois trechos de programa abaixo produzem exatamente a mesma saída. O bloco de repetição controlada por variável é apenas uma forma mais compacta, que consegue o mesmo resultado usando um número menor de blocos.
   

Veja esses dois trechos programa na linguagem Python (não precisa entender o programa em Python, o exemplo é apenas para você ter uma ideia da linguagem Python; mais adiante no curso vamos ver os comandos em Python em detalhes):

for i in range(1,4):
  print(i)
print('fim')
       
i = 0
for count in range(3):
  i = i + 1
  print(i)
print('fim')

 

 

Entrada
Saída
Avalie este desafio

Premio do milhão

Alice e Bia criaram uma página na Internet com informações sobre o Macaco-prego-de-peito-amarelo, uma espécie em extinção. A página mostra como todos podem ajudar a manter o seu habitat natural para evitar que a espécie seja extinta.

Uma empresa gostou tanto da iniciativa de Alice e Bia que prometeu doar um prêmio para que as duas amigas possam realizar outras iniciativas semelhantes. A empresa decidiu que o prêmio seria dado quando a soma do número de acessos à página chegasse a um milhão.

Dada a lista de acessos diários que ocorreram à página de Alice e Bia, escreva um programa para determinar quantos dias foram necessários para a soma dos acessos chegar a 1 milhão e as amigas ganharem o prêmio.

Entrada

A primeira linha da entrada contém um número inteiro N, que indica o número de dias que a lista contém. Cada uma das linhas seguintes contém um único inteiro A, o número de acessos em um dia. O primeiro número dado indica o número de acessos no primeiro dia, o segundo número dado indica o número de acessos no segundo dia, e assim por diante.

Saída

Seu programa deve escrever na saída uma única linha, contendo um único número inteiro, o número de dias que foram necessários para a soma dos acessos à pagina de Alice e Bia chegar a um milhão.

Restrições

  • 1 ≤ N ≤ 1.000 (um mil)
  • 0 ≤ A ≤ 1.000.000 (um milhão)
  • A soma de todos os valores A da lista é maior do que ou igual a um milhão (ou seja, Alice e Bia certamente ganham o prêmio).

Exemplos

Entrada
5
100
99900
400000
500000
600000
Saída
4
	

Entrada
1
1000000
Saída
1
	

 

Solução

Aqui você encontra um exemplo de solução para o desafio. Mas antes de ver a solução tente resolvê-lo, criando a sua própria solução.

Solução do Desafio
Solução do Desafio

Vamos usar uma variável soma para armazenar o número total de acessos e um bloco de repetição controlada por variável para ler as os acessos de cada dia. A cada passo da repetição, adicionamos o número de acessos daquele dia ao número total de acessos e verificamos se o número total de acessos é igual a ou maior do que um milhão; se for, interrompemos o laço. O resultado é o número de vezes que o laço foi executado, ou seja, o valor da variável de controle i.

Blockly

Python

# Solução do Desafio da Aula 12

soma = 0
N = int(input())
for i in range(1,N+1):
    x = int(input())
    soma = soma + x
    if soma >= 1000000:
        break
print(i)