Percursos
/
Ruby
Ruby
/
Exercícios
/
Espectador de cinema
Espectador de cinema

Espectador de cinema

Exercício de aprendizagem

Introdução

O operador ternário

Uma condicional ternária é uma forma mais curta de escrever condicionais if/else simples. Se uma condicional if/else tiver apenas dois ramos, um para quando a condição é verdadeira e outro para quando é falsa, pode ser reescrita como uma condicional ternária.

As condicionais ternárias usam uma combinação dos símbolos ? e : para dividir uma condicional:

condition ? true_branch : false_branch

O código à esquerda do ? é a condição, e o código à direita contém os dois ramos possíveis, separados pelo :. Se a condição for verdadeira, executa-se o código à esquerda do :. Se a condição for falsa, executa-se o código à direita do :.

Por exemplo:

if traffic_light == 'green'
  cross_the_road
else
  wait
end

pode ser reescrito como:

traffic_light == 'green' ? cross_the_road : wait

Instruções

Neste exercício vais criar as regras para o site de um cinema.

1. Verifica se um espectador tem direito ao desconto para seniores

O cinema oferece um desconto para "reformados". Quem tiver 60 anos ou mais paga 10.00 pelo bilhete. Quem for mais novo paga os 15.00 completos.

Escreve o método Moviegoer#ticket_price com uma instrução ternária.

Moviegoer.new(21).ticket_price
#=> 15

Moviegoer.new(65).ticket_price
#=> 10

2. Verifica se um espectador pode ver filmes assustadores

O cinema tem um sistema simplificado de verificação de idade. Se tiveres 18 anos ou mais, podes ver filmes assustadores. Se fores mais novo, não podes.

Implementa o método Moviegoer#watch_scary_movie?. Deve devolver se a pessoa tem ou não permissão para ver o filme.

Moviegoer.new(21).watch_scary_movie?
#=> true

Moviegoer.new(17).watch_scary_movie?
#=> false

3. Verifica se um espectador tem direito a pipocas grátis

O cinema tem um programa Movie Club. Os membros recebem pipocas grátis quando veem qualquer filme.

Implementa o método Moviegoer.claim_free_popcorn!. Se o espectador for membro do Movie Club, deve receber as suas pipocas grátis. Se não for, o método deve lançar a exceção UnsupportedOperation definida no topo do código.

Moviegoer.new(21, member: true).claim_free_popcorn!
#=> 🍿

Moviegoer.new(17, member: false).claim_free_popcorn!
#=> Exception was raised! (NotMovieClubMemberError)
Note

Neste exercício, espera-se que definas a exceção UnsupportedOperation para um âmbito específico.

Editar via GitHub A ligação abre numa nova janela ou separador
Ruby Exercism

Estás pronto para começar Espectador de cinema?

Inscreve-te no Exercism para aprenderes e dominares Ruby com 21 conceitos121 exercícios, e mentoria humana real, tudo grátis.