Você está na página 1de 4

Departamento de Computação e Eletrônica - CEUNES

Programação I / Programação Funcional


Prof. Oberlan Romão

Ferias?1
Eduardo e Mônica estão a tempo prometendo aos filhos João e Maria uma viagem internacional como
presente de natal. Entretanto, para a família poder viajar, as seguintes condições devem ser atendidas:

• João e Maria não ficarem de recuperação em nenhuma disciplina. Onde estudam, a nota mínima
para aprovação em cada matéria é 7;
• Eduardo e Mônica receberem autorização para tirar férias em dezembro;
• O salário de Eduardo ou o salário de Mônica ser pago, no máximo, até o dia 15 de dezembro;
• O valor total gasto com a reserva do hotel e com as passagens de avião ser menor ou igual a
R$10.000, 00. Em outras palavras, a soma do valor do hotel mais o valor das passagens não deve
ser superior a R$10.000, 00.

Notas João Notas Maria Férias Pagamento Salário Valores Irão


Port. Mat. Ciências Port. Mat. Ciências Eduardo Mônica Eduardo Mônica Hotel Passagens Viajar?
8.0 7.0 7.5 8.0 9.5 10.0 Sim Sim 10/12 05/12 R$ 3.500 R$ 5.000
7.0 6.5 8.0 7.0 5.5 8.0 Sim Nao 01/12 18/12 R$ 2.500 R$ 8.000
9.0 10.0 7.5 8.0 7.0 8.5 Sim Sim 20/12 20/12 R$ 3.000 R$ 7.000
7.8 6.0 9.5 6.5 7.0 7.5 Nao Nao 25/12 17/12 R$ 4.500 R$ 6.000
7.0 7.0 7.0 7.0 7.0 7.0 Sim Sim 05/12 05/12 R$ 3.500 R$ 7.500

Sua tarefa será implementar uma programa que irá ler dados semelhantes aos da tabela e indicar se a
família irá ou não viajar.

Trabalhando com o tipo bool


O tipo bool assume os valores True ou False e pode ser utilizado em atribuições, como argumentos
para funções e em expressões que controlam o fluxo de programas. Faça testes com os operadores and, or
e not na linha de comando:
 
>>> x = True
>>> print (x)
True
>>> y = not x
>>> print (y)
False
1
Baseado em: http://www.ic.unicamp.br/~mc102/mc102-2s2018/labs/roteiro-lab02.html

1
Programação I / Programação Funcional – Ferias?

>>> x = (10%2 == 0) #Uso dos parênteses é opcional


>>> print (x)
True
>>> x = (3/2 < 5/4 and 5/4 < 7/2)
>>> print (x)
False
 
Atenção: Em Python e outras linguagens, qualquer valor, diferente de zero, é considerado como True.
Por isso, cuidado ao fazer algumas expressões:
 
>>> b = bool(10)
>>> print (b)
True
>>> b = bool(0)
>>> print (b)
False
>>> a = -1; b = 2; c = 2
>>> # Tentativa ( errada ) de verificar se as três variáveis são > 0
>>> print (a and b and c > 0)
True
>>> # Maneira correta :
>>> print (a > 0 and b > 0 and c > 0)
False
 
Com o uso de variáveis do tipo bool, alguns comandos condicionais podem ficar muito mais simples.
Por exemplo:
 
if port >= 7:
mat_suficiente = True
else:
mat_suficiente = False
 
Pode (e deve) ser substituído pela única linha:
 
mat_suficiente = port >= 7
 

Descrição da entrada
O seu programa deverá ler os seguintes dados, um elemento por linha:

• três números reais referentes às notas de João;


• três números reais referentes às notas de Maria;
• duas strings Sim ou Nao referentes à aprovação das férias de Eduardo e Mônica;
• dois inteiros correspondentes aos dias em dezembro em que o salário de Eduardo e Mônica foram
pagos;
• dois números reais indicando os valores do hotel e das passagens.

2
Programação I / Programação Funcional – Ferias?

Veja o exemplo abaixo:


 
8
7
7.5
8
9.5
10
Sim
Sim
10
5
3500
5000
 

Descrição da saída
A saída deverá apresentar um breve relatório descrevendo se cada uma das condições foram atendidas
e se a família irá ou não viajar. Para o exemplo apresentado na seção anterior, a saída será:

Joao aprovado em todas as disciplinas? True


Maria aprovada em todas as disciplinas? True
Eduardo e Monica de ferias de dezembro? True
Pagamento de Eduardo ou Monica liberado a tempo? True
Valor total menor ou igual a R$10.000,00? True
Irao viajar? True

Para evitar problemas com codificação, todas as strings foram escritas propositalmente sem acentos.

O que entregar
Nesse miniEP você deve enviar, pelo AVA, apenas em um arquivo, chamado mEP4.py, contendo o
código do seu programa. O peso desse miniEP é 2.

Data de entrega: até às 6h do dia 03/10/2019.

Observações:

1. Não é permitido usar estruturas de repetição (loop), como while, for, funções impuras e ope-
rações que não sejam do Paradigma Funcional. A utilização dessas estruturas/funções implicará em
nota 0.

2. Use apenas instruções/comandos visto em sala de aula (teórica ou prática);

3
Programação I / Programação Funcional – Ferias?

3. A submissão de um código que não implementa o algoritmo requisitado, mas que exibe as saídas
esperadas dos testes abertos a partir da comparação de trechos da entrada será considerada fraude
e acarretará a atribuição de nota 0;
4. Em caso de plágio, será atribuído 0 a todos os envolvidos.

Você também pode gostar