### INFO B - Caroline Campos Lima, 04
# F.L Session Two: Getting Better
[toc]
## Exercício 1
Crie uma função que implemente a lógica para calcular o valor total a ser pago na compra de ingressos do Cinemark. A partir do total de ingressos inteiras, meias e o preço cheio do ingresso, realize o cálculo.
A função deve retornar uma mensagem no seguinte formato: “O valor da compra de XXX ingressos referente ao filme XXX é R$ XXX”
```csharp=
public class IngressoCinemark
{
public int QtdInteira {get; set;}
public int QtdMeia {get; set;}
public double Preco {get; set;}
public string Filme {get; set;}
}
public double CalcularIngresso(IngressoCinemark ingresso)
{
double inteira = ingresso.QtdInteira * ingresso.Preco;
double meia = ingresso.QtdMeia * (ingresso.Preco / 2);
return inteira + meia;
}
IngressoCinemark ic = new IngressoCinemark();
ic.QtdInteira = 3;
ic.QtdMeia = 2;
ic.Preco = 34.00;
ic.Filme = "Godzilla vs Kong";
double a = CalcularIngresso(ic);
Console.WriteLine("O valor da compra de " + ic.QtdInteira + ic.QtdMeia + " ingressos referente ao filme " + ic.Filme + " é R$" + a);
// O valor da compra de 32 ingressos referente ao filme Godzilla vs Kong é R$136
public class IngressoCinemark
{
public int QtdInteira {get; set;}
public int QtdMeia {get; set;}
public double Preco {get; set;}
public string Filme {get; set;}
}
public string CalcularIngresso(IngressoCinemark ingresso)
{
int qtdIngresso = ingresso.QtdInteira + ingresso.QtdMeia;
double inteira = ingresso.QtdInteira * ingresso.Preco;
double meia = ingresso.QtdMeia * (ingresso.Preco / 2);
double total = inteira + meia;
string mensagem = $"O valor da compra de {qtdIngresso} ingressos referente ao filme {ingresso.Filme} é R$ {total}";
return mensagem;
}
IngressoCinemark ic = new IngressoCinemark();
ic.QtdInteira = 3;
ic.QtdMeia = 2;
ic.Preco = 34.00;
ic.Filme = "Godzilla vs Kong";
string a = CalcularIngresso(ic);
Console.WriteLine(a);
```
## Exercício 2
Crie uma função que implemente a lógica do jogo Jokenpo entre 2 jogadores e retorne verd/falso se o jogador 1 venceu.
As possibilidades de jogada são “Papel”, “Pedra” e “Tesoura”.
```csharp=
public class Partida
{
public string Jogador1 {get; set;}
public string Jogador2 {get; set;}
}
public bool Jokenpo(Partida partida)
{
bool possibilidades = partida.Jogador1 == "pedra" && partida.Jogador2 == "tesoura"
|| partida.Jogador1 == "tesoura" && partida.Jogador2 == "papel"
|| partida.Jogador1 == "papel" && partida.Jogador2 == "padra";
return possibilidades;
}
Partida p = new Partida();
p.Jogador1 = "tesoura";
p.Jogador2 = "papel";
bool a = Jokenpo(p);
Console.WriteLine("O jogador 1 venceu? " + a);
// O jogador 1 venceu? True
```
## Exercício 3
Crie uma função composta que a partir das datas de checkin (entrada) e checkout (saída) em um hotel, considerando a quantidade de pessoas que serão hospedadas, calcule o valor total a ser pago, sendo que o valor da diária é R$ 120,00.
```csharp=
public class EstadiaHotel
{
public DateTime Checkin {get; set;}
public DateTime Checkout {get; set;}
public int QtdPessoas {get; set;}
}
public double TotalDias(DateTime ida, DateTime volta)
{
TimeSpan diferenca = volta - ida;
double dias = diferenca.TotalDays + 1;
return dias;
}
public double HospedagemHotel(EstadiaHotel hotel)
{
double totalDias = TotalDias(hotel.Checkin, hotel.Checkout);
double total = totalDias * hotel.QtdPessoas * 120;
return total;
}
EstadiaHotel eh = new EstadiaHotel();
eh.Checkin = new DateTime(2021, 7, 18);
eh.Checkout = new DateTime(2021, 7, 24);
eh.QtdPessoas = 5;
double a = HospedagemHotel(eh);
Console.WriteLine("Valor total da hospedagem: " + a);
// Valor total da hospedagem: 4200
```
## Exercício 4
Crie uma função composta que implemente a lógica para calcular o valor total de uma compra de passagem aérea. A companhia de viagem está com uma promoção que independente do destino, os passageiros serão cobrados por dia de viagem, onde cada dia custa R$ 200,00. Crianças são cobradas pela metade.
```csharp=
public class PassagemAerea
{
public DateTime Ida {get; set;}
public DateTime Volta {get; set;}
public int QtdAdultos {get; set;}
public int QtdCriancas {get; set;}
public string Origem {get; set;}
public string Destino {get; set;}
}
public double TotalDias(DateTime ida, DateTime volta)
{
TimeSpan diferenca = volta - ida;
double dias = diferenca.TotalDays + 1;
return dias;
}
public double CalcularPassagemAerea(PassagemAerea passagem)
{
double totalDias = TotalDias(passagem.Ida, passagem.Volta);
double total = (totalDias * passagem.QtdAdultos * 200) + (totalDias * passagem.QtdCriancas * 100);
return total;
}
PassagemAerea pa = new PassagemAerea();
pa.Ida = new DateTime(2021, 12, 23);
pa.Volta = new DateTime(2021, 12, 27);
pa.QtdAdultos = 3;
pa.QtdCriancas = 1;
pa.Origem = "São Paulo";
pa.Destino = "Berlim";
double a = CalcularPassagemAerea(pa);
Console.WriteLine("O valor total da viagem saindo de " + pa.Origem + " com destino para " + pa.Destino + " é de: " + a);
// O valor total da viagem saindo de São Paulo com destino para Berlim é de: 3500
```
## Exercício 5
Crie uma função composta que implemente a lógica da compra de um Pacote de Viagem em Família. Esse pacote é composto pela viagem aérea e hospedagem em um hotel. Utilize as mesmas regras descritas nos exercícios anteriores e retorne um comprovante da compra do pacote contendo os totais do hotel, passagem e o valor final da compra. O comprovante deve ter uma mensagem que segue o template abaixo: “A compra do Pacote de XXX dias para o destino XXX foi finalizado com sucesso! O total incluindo todas despesas é de R$ XXX”
```csharp=
public class PassagemAerea
{
public DateTime Ida {get; set;}
public DateTime Volta {get; set;}
public int QtdAdultos {get; set;}
public int QtdCriancas {get; set;}
public string Origem {get; set;}
public string Destino {get; set;}
}
public class EstadiaHotel
{
public DateTime Checkin {get; set;}
public DateTime Checkout {get; set;}
public int QtdPessoas {get; set;}
}
public class Comprovante
{
public double Total {get; set;}
public double TotalHotel {get; set;}
public double TotalPassagem {get; set;}
public string Mensagem {get; set;}
}
public double TotalDias(DateTime ida, DateTime volta)
{
TimeSpan diferenca = volta - ida;
double dias = diferenca.TotalDays + 1;
return dias;
}
public double HospedagemHotel(EstadiaHotel hotel)
{
double totalDias = TotalDias(hotel.Checkin, hotel.Checkout);
double total = totalDias * hotel.QtdPessoas * 120;
return total;
}
public double CalcularPassagemAerea(PassagemAerea passagem)
{
double totalDias = TotalDias(passagem.Ida, passagem.Volta);
double total = (totalDias * passagem.QtdAdultos * 200) + (totalDias * passagem.QtdCriancas * 100);
return total;
}
public Comprovante PacoteViagem(PassagemAerea passagem, EstadiaHotel hospedagem)
{
double totalHotel = HospedagemHotel(hospedagem);
double totalPassagem = CalcularPassagemAerea(passagem);
double dias = TotalDias(passagem.Ida, passagem.Volta);
Comprovante comprovante = new Comprovante();
comprovante.TotalHotel = totalHotel;
comprovante.TotalPassagem = totalPassagem;
comprovante.Total = totalHotel + totalPassagem;
comprovante.Mensagem = $"A compra do Pacote de {dias} dias para o destino {passagem.Destino} foi finalizado com sucesso! O total incluindo todas despesas é de R$ {comprovante.Total}";
return comprovante;
}
PassagemAerea pa = new PassagemAerea();
pa.Ida = new DateTime(2021, 12, 23);
pa.Volta = new DateTime(2021, 12, 27);
pa.QtdAdultos = 3;
pa.QtdCriancas = 1;
pa.Origem = "São Paulo";
pa.Destino = "Tóquio";
EstadiaHotel eh = new EstadiaHotel();
eh.Checkin = new DateTime(2021, 5, 7);
eh.Checkout = new DateTime(2021, 5, 9);
eh.QtdPessoas = 4;
Comprovante a = PacoteViagem(pa, eh);
Console.WriteLine(a.Mensagem);
// A compra do Pacote de 5 dias para o destino Tóquio foi finalizado com sucesso! O total incluindo todas despesas é de R$ 4940
```