Logo Saci
Projeto Programando o Futuro
Programação para Iniciantes (Blockly+Python)
registrar
login
Aula 10 - Comandos de repetição
Avalie esta aula
 
Avalie esta revisão

Considere o seguinte problema:

Dada uma lista com três números de telefones de clientes, verificar quantos clientes têm número telefone que termina em 1234

Sabemos resolver esse problema? Certamente. Podemos usar três variáveis diferentes e ler da entrada os três números, atribuindo cada número a uma variável.

.

Então, para cada variável, verificamos se o número termina com 1234.

Mas e se ao invés de três, tivermos uma lista com três milhões de números? Bem, podemos usar três milhões de variáveis diferentes, até funcionaria, mas iria faltar espaço na tela do nosso computador para escrever o programa!

Será que não tem uma maneira melhor?

Bloco Repita

O bloco Repita permite que especifiquemos quantas vezes queremos repetir bloco ou grupo de blocos.

O bloco Repita pode ser encontrado no menu Laços da Barra de Ferramentas (em programação, chamamos a repetição de um grupo de comandos de um laço)

.

O bloco repita tem um espaço vago para inserirmos um valor inteiro, o número de vezes que os comandos encaixados na abertura com rótulo execute devem ser repetidos.

Por exemplo, podemos usar um bloco Número para especificar o número de repetições. O comando a ser repetido vai ser escrever na saída a cadeia de caracteres Não conversar na aula:

.
Quando o bloco Repita é executado, o computador escreve na saída 10.000 vezes a frase "Não conversar na aula". Quase tão bom como o método do Harry Potter!

Podemos também usar uma variável para especificar o número de repetições:

.

Nesse caso, o número de vezes que os comandos encaixados no bloco Repita são repetidos depende do valor corrente da variável num.

Para ilustrar o uso do bloco Repita vamos resolver um problema:

Problema Cofrinho

Lisa está guardando dinheiro para comprar uma bicicleta. Sempre que consegue economizar algum valor ela guarda no cofrinho e anota numa caderneta.

A nossa tarefa é, dada a lista dos valores anotados na caderneta da Liza, escrever um programa para calcular o total de dinheiro no cofrinho.

Entrada

A primeira linha da entrada contém um inteiro N o número de valores na caderneta de Lisa. Cada uma das N linhas seguintes contém um valor inteiro que foi anotado na caderneta de Lisa.

Saída

O programa deve produzir uma única linha na saída, contendo um único inteiro, o valor total no cofrinho de Lisa.

Exemplo

Entrada
3
12
7
5
Saída
24
	

Aqui está uma solução em Blockly para o problema:

Veja esse programa na linguagem Python:

total = 0
N = int(input())
for i in range(int(N)):
  x = int(input())
  total = total + x
print(total)

 

 

Entrada
Saída
Avalie este desafio

Campeã de streaming

Lucas conseguiu na Internet a lista das N músicas mais escutadas em aplicativos de streaming, com o número de vezes que cada música foi escutada. Lucas ficou curioso: quantas vezes foi escutada a música mais escutada? Em outras palavras, qual o maior número de vezes que uma música foi escutada?

Mas a lista não está ordenada e o número de músicas é muito grande. Você pode ajudá-lo?

Dada uma lista com o número de vezes que cada música foi escutada, escreva um programa para determinar qual o maior número de vezes que uma música foi escutada.

Entrada

A primeira linha da entrada contém um número inteiro N, o número de músicas na lista. Cada uma das N linhas seguintes contém um número inteiro Xi, o maior número de vezes que uma música foi escutada.

Saída

Seu programa deve escrever uma única linha na saída, contendo um único número inteiro, o maior número de vezes que uma música foi escutada.

Restrições

  • 1 ≤ N ≤ 100
  • 1 ≤ Xi ≤ 100000, para 1 ≤ i ≤ N

Exemplos

Entrada
3
4000
5000
4500
Saída
5000
	

Entrada
4
345
3000
1234
3000
Saída
3000
	

 

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, com o nome maisTocada, para armazenar o número de vezes que a música mais escutada foi escutada. Usamos um bloco Repita para ler o número de vezes que cada música foi escutada. Em cada passo do do laço de repetição, comparamos o número lido com o valor da variável maisTocada. Se o número lido é maior, encontramos uma música que foi mais escutada do que a que conhecemos até então, portanto atualizamos o valor da variável maisTocada com o número lido. Ao final das repetições, a variável maisTocada tem o resultado.

Blockly

Python

# Solução do Desafio da Aula 10

maisTocada = 0
N = int(input())
for i in range(N):
  num = int(input())
  if num > maisTocada:
    maisTocada = num
print(maisTocada)

      

 

 

Avalie este desafio

Saldo do Vovô

Vovô João vai ao banco todos os dias, realizar um depósito ou uma retirada de dinheiro, resultado diário da operação de sua banca de jornais.

Dada a movimentação diária da conta do banco do Vovô João, você deve escrever um programa que calcule o menor saldo da conta, no período dado.

Entrada

A primeira linha da entrada contém um número inteiro N que indica o número de dias do período de interesse. A segunda linha da entrada contém um número inteiro S que indica o saldo da conta no início do período. Cada uma das N linhas seguintes contém um número inteiro indicando a movimentação de um dia (valor positivo no caso de depósito, valor negativo no caso de retirada). A movimentação é dada para um período de N dias consecutivos: a primeira das N linhas corresponde ao primeiro dia do período de interesse, a segunda linha corresponde ao segundo dia, e assim por diante.

Saída

Seu programa deve imprimir uma única linha, contendo um único número inteiro, o menor valor de saldo da conta no período dado.

Restrições

  • 1 ≤ N ≤ 30
  • -1000 ≤ S ≤ 1000
  • -1000 ≤ cada movimentação ≤ 1000

Exemplos

Entrada
3
1000
100
-800
50
Saída
300
	
Entrada
6
-200
-100
-1000
1000
100
-50
1000
Saída
-300
	

 

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 para armazenar o saldo corrente (vamos chamá-la 'saldo') e uma variável para armazenar o menor saldo que conhecemos (vamos chamá-la de 'menor_saldo'). O valor inicial para essas duas variáveis é o valor do saldo inicial, lido da entrada.

Vamos ler da entrada o número de movimentações (cada movimentação é um depósito ou uma retirada). Para isso, usamos uma variável de nome 'N'. Para ler o valor de cada movimentação usamos um bloco Repita (com a variável N como número de repetições). Em cada passo do do laço de repetição, lemos uma movimentação da entrada, atualizamos o valor do saldo (que passa a valer saldo mais o valor da movimentação lida) e comparamos o saldo resultante com o valor da variável menor_saldo. Se o saldo resultante é menor, temos um saldo menor do que o que conhecemos até então, portanto devemos atualizar o valor da variável menor_saldo com o saldo atual. Ao final do laço, a variável menor_saldo tem o resultado.

Blockly

Python

# Solução do Desafio 2 da Aula 10

N = int(input())
saldo = int(input())
menor_saldo = saldo
for count in range(int(N)):
    x = int(input())
    saldo = saldo + x
    if saldo < menor_saldo:
        menor_saldo = saldo
print(menor_saldo)