---
# System prepended metadata

title: 'F.L Session Two: Getting Better'

---

### 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
```