Logo Saci
Projeto Programando o Futuro
Programação para Iniciantes (Blockly+Python)
registrar
login
Aula 8 - Execuções condicionais encadeadas
Avalie esta aula
 
Avalie esta revisão

Execuções condicionais encadeadas

Suponha que ao invés de escrever a nota final de um aluno (valores de 0 a 100), a prof. Vilma queira escrever um conceito, como A, B, ou C. O conceito do aluno é determinado da seguinte forma:

  1. se a média é maior do que ou igual a 80, o conceito é A;
  2. se a média é menor do que 80, mas maior do que ou igual a 50, o conceito é B; e
  3. se a média é menor do que 50, o conceito é C.

Esse caso é um exemplo condições encadeadas. Note que as condições não são independentes, pois dependem de uma mesma variável (a nota do aluno). Ou seja, a condição (2) depende de a condição (1) não ser verdadeira, e a condição (3) depende de as condições (1) e (2) não serem verdadeiras. Por isso, não podemos usar simplesmente dois comandos condicionais um em seguida do outro, porque a lógica não estará correta. Por exemplo, o programa

não implementa corretamente as restrições da Profa. Vilma, porque embora produza o resultado correto se a nota for menor do que 80, se a nota for por exemplo 85 serão impressas duas linhas, uma com o conceito "A" e outra com o conceito "B".

Uma forma correta de implementar as restrições da Profa. Vilma pode ser vista no programa abaixo, em que um bloco se-então-senão é "encaixado" (ou "encadeado") em outro bloco se-então-senão:

Programas com blocos se-então encadeados são tão frequentes que a linguagem Python tem uma forma abreviada para essa construção, e em Blockly o bloco se-então pode ser modificado para construir execuções condicionais encadeadas. Para modificar o bloco se-então clique no botão de opções do bloco:

Arraste o bloco senão-se e encaixe-o abaixo do bloco se. O bloco bloco se-então muda de aspecto e inclui um novo encaixe para uma nova condição marcada com o rótulo "senão se" e um nova abertura para encaixar blocos, marcada com o rótulo "então":

Você pode encadear quantos blocos condicionais for necessário para sua aplicação, como neste exemplo:

Para fechar o painel, clique novamente no botão de opções do bloco.

Como exemplo de uso do bloco de execução condicional no formato se-então-senão-se-então, o programa acima, que implementa o critério de aprovação da profa. Vilma, pode ser implementado da seguinte forma:

Veja esse programa na linguagem Python:

nota = int(input())
if nota >= 80:
  print('A')
elif nota >= 50:
  print('B')
else:
  print('C')

 

 

Entrada
Saída
Avalie este desafio

Basquete de robôs

A organização da OIBR, Olimpíada Internacional de Basquete de Robô, está implantando uma nova pontuação para o jogo, de acordo com a distância do robô para o início da quadra. A quadra tem 2000 centímetros de comprimento, como na figura abaixo:

Dada a distância D do robô até o início da quadra, onde está a cesta, a nova regra é:

  • Se D ≤ 800, a cesta vale 1 ponto;
  • Se 800 < D ≤ 1400, a cesta vale 2 pontos;
  • Se 1400 < D ≤ 2000, a cesta vale 3 pontos.

A organização da OIBR precisa de ajuda para automatizar o placar do jogo. Dado o valor da distância D, você deve implementar um programa para calcular o número de pontos do lançamento.

Entrada

A primeira e única linha da entrada contém um inteiro D indicando a distância do robô para o início da quadra, em centímetros, no momento do lançamento.

Saída

Seu programa deve produzir uma única linha, contendo um inteiro, 1, 2 ou 3, indicando a pontuação do lançamento.

Restrições

  • 0 ≤ D ≤ 2000

Exemplos

Entrada
1720
Saída
3
	

 

Entrada
250
Saída
1
	

 

Entrada
1400
Saída
2
	

 

 

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

Blockly

Python

# Solução do Desafio 1 da Aula 8

distancia = int(input())
if distancia <= 800:
  print(1)
elif distancia < 1400:
  print(2)
else:
  print(3)
      

 

 

Avalie este desafio

Cartas

Um novo game de realidade aumentada tem, dentro dele, um mini-game que aparece em certas situações para aumentar o ganho de pontos do game principal. O mini-game é um joguinho de memória com quatro cartas, formando dois pares de cartas iguais. Quer dizer, duas cartas têm um número inteiro N marcado em uma de suas faces e as outras duas cartas têm um outro número inteiro M, sendo que N ≠ M. Neste problema, o jogador já virou três cartas, como mostrado na figura.

Claro que, dadas as condições, a carta que falta virar vai formar par com uma das três que já foram viradas. No caso da figura, o número marcado na carta que ainda falta virar é 11.

Implemente um programa que, dados os números de três cartas já viradas, imprima o número da carta que ainda falta virar.

Entrada

A primeira linha da entrada contém um inteiro A, indicando a primeira carta já virada. A segunda linha contém o inteiro B, indicando a segunda carta já virada. A terceira linha contém o inteiro C, indicando a terceira carta já virada.

Saída

Seu programa deve produzir na saída uma única linha, contendo um único número inteiro, o número da carta que ainda falta virar.

Restrições

  • 0 ≤ A ≤ 100
  • 0 ≤ B ≤ 100
  • 0 ≤ C ≤ 100

Exemplos

Entrada
40
11
40
Saída
11
	

 

Entrada
8
8
96
Saída
96
	

 

 

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

Blockly

Python

# Solução do Desafio 2 da Aula 8

cartaA = int(input())
cartaB = int(input())
cartaC = int(input())
if cartaA == cartaB:
  print(cartaC)
elif cartaA == cartaC:
  print(cartaB)
else:
  print(cartaA)