# Session Two: Getting Better | Csharp
autora: Isabela Silva Sousa
[toc]
## Exercício 01
- **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=
using System;
public class CalcularIngressoCinemark
{
public int QtdInteira { get; set; }
public int QtdMeia { get; set; }
public double Preco { get; set; }
public string Filme { get; set; }
}
public string CalcularIngresso (CalcularIngressoCinemark ingresso)
{
int totalIngressos = ingresso.QtdInteira + ingresso.QtdMeia;
double totalInteira = ingresso.QtdInteira * ingresso.Preco;
double totalMeia = ingresso.QtdMeia * (ingresso.Preco / 2);
double total = totalInteira + totalMeia;
string resposta =$"O valor da compra de {totalIngressos} ingressos referente ao filme {ingresso.Filme} é R$ {total}";
return resposta;
}
CalcularIngressoCinemark a = new CalcularIngressoCinemark();
a.QtdInteira = 2;
a.QtdMeia = 3;
a.Preco = 17.50;
a.Filme = "Um lugar silencioso 2";
string b = CalcularIngresso(a);
Console.WriteLine(b);
```
## Exercício 02
- **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=
using System;
public class CalcularPartida
{
public string Jogador1 { get; set; }
public string Jogador2 { get; set; }
}
public bool Jokenpo (CalcularPartida partida)
{
bool jogador1venceu = (partida.Jogador1 == "Papel" && partida.Jogador2 == "Tesoura")
||
(partida.Jogador1 == "Pedra" && partida.Jogador2 == "Tesoura")
||
(partida.Jogador1 == "Papel" && partida.Jogador2 == "Papel");
return jogador1venceu;
}
CalcularPartida a = new CalcularPartida();
a.Jogador1 = "Papel";
a.Jogador2 = "Tesoura";
bool b = Jokenpo(a);
Console.WriteLine("Jogador venceu: " + b);
```
## Exercício 03
- **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=
using System;
public class CalcularHospedagem
{
public DateTime Checkin { get; set; }
public DateTime Checkout { get; set; }
public int QtdPessoas { get; set; }
}
public double TotalDias1(DateTime ida, DateTime volta)
{
TimeSpan dif = volta - ida;
double dias = dif.TotalDays + 1;
return dias;
}
public double HospedagemHotel(CalcularHospedagem hotel)
{
double dias = TotalDias1(hotel.Checkin, hotel.Checkout);
double a = dias * hotel.QtdPessoas * 120;
return a;
}
CalcularHospedagem b = new CalcularHospedagem();
b.Checkin = new DateTime(2021, 5, 5);
b.Checkout = new DateTime(2021, 5, 6);
b.QtdPessoas = 4;
double c = HospedagemHotel(b);
Console.WriteLine("Hospedagem ficou " + c);
```
## Exercício 04
- **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=
using System;
public class PassagemAereaCalcular
{
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 CalcularTotalDias2(DateTime ida, DateTime volta)
{
TimeSpan dif = volta - ida;
double a = dif.TotalDays + 1;
return a;
}
public double CalcularPassagemAerea(PassagemAereaCalcular passagem)
{
double dias = CalcularTotalDias2(passagem.Ida, passagem.Volta);
double b = (dias * passagem.QtdAdultos * 200) + (dias * passagem.QtdCriancas * 100);
return b;
}
PassagemAereaCalcular c = new PassagemAereaCalcular();
c.Ida = new DateTime(2021, 5, 5);
c.Volta = new DateTime(2021, 5, 6);
c.QtdAdultos = 4;
c.QtdCriancas = 5;
c.Origem = "SP";
c.Destino = "Dublin";
double d = CalcularPassagemAerea(c);
Console.WriteLine("Total da Viagem: " + d);
```
## Exercício 05
- **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=
using System;
public class EstadioHotel2
{
public DateTime Checkin { get; set; }
public DateTime Checkout { get; set; }
public int QtdPessoas { get; set; }
}
public class PassagemAerea2
{
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 Comprovante
{
public double Total { get; set; }
public double TotalHotel { get; set; }
public double TotalPassagem { get; set; }
public string Mensagem { get; set; }
}
public double TotalDias3(DateTime ida, DateTime volta)
{
TimeSpan dif = volta - ida;
double a = dif.TotalDays + 5;
return a;
}
public double CalcularPassagemAerea(PassagemAerea2 passagem)
{
double dias = TotalDias3(passagem.Ida, passagem.Volta);
double b = (dias * passagem.QtdAdultos * 250) + (dias * passagem.QtdCriancas * 130);
return b;
}
public double HospedagemHotel(EstadioHotel2 hotel)
{
double dias = TotalDias3(hotel.Checkin, hotel.Checkout);
double c = dias * hotel.QtdPessoas * 200;
return c;
}
public Comprovante PacoteViagem(PassagemAerea2 passagem, EstadioHotel2 estadia)
{
double totalHotel = HospedagemHotel(estadia);
double totalPassagem = CalcularPassagemAerea(passagem);
double dias = TotalDias3(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;
}
PassagemAerea2 d = new PassagemAerea2();
d.Ida = new DateTime(2021, 5, 5);
d.Volta = new DateTime(2021, 5, 6);
d.QtdAdultos = 4;
d.QtdCriancas = 5;
d.Origem = "SP";
d.Destino = "Dublin";
EstadioHotel2 e = new EstadioHotel2();
e.Checkin = new DateTime(2021, 5, 5);
e.Checkout = new DateTime(2021, 5, 6);
e.QtdPessoas = 9;
Comprovante comprovante = PacoteViagem(d, e);
Console.WriteLine(comprovante.Total);
Console.WriteLine(comprovante.TotalPassagem);
Console.WriteLine(comprovante.TotalHotel);
Console.WriteLine(comprovante.Mensagem);
```