---
# System prepended metadata

title: 'Session Two: Getting Better | Fund. Lógica'

---

# Session Two: Getting Better | Fund. Lógica
autor: Alan Oliveira Rocha Santiago
turma: InfoB
número: 02

[TOC]

## Exercicio 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 string CalcularIngressos(IngressoCinemark Ingresso)
{
    int TotalIngressos = Ingresso.QtdInteira + Ingresso.QtdMeia;
    double inteiras = Ingresso.QtdInteira * Ingresso.Preco;
    double meias = Ingresso.QtdMeia * (Ingresso.Preco / 2);
    double total = meias + inteiras;

    string mensagem = $"O valor da compra de {TotalIngressos} ingressos referente ao filme {Ingresso.Filme} é R${total}";
    return mensagem;
}

private const string V = "papel";
IngressoCinemark cine = new IngressoCinemark();
cine.QtdInteira = 2;
cine.QtdMeia = 2;
cine.Preco = 30;
cine.Filme = "Nascido Para Matar";

String ic = CalcularIngressos(cine);
Console.WriteLine(ic);
```
## Exercicio 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 x = partida.Jogador1 == "papel" && partida.Jogador2 == "pedra";
    bool y = partida.Jogador1 == "pedra" && partida.Jogador2 == "tesoura";
    bool z = partida.Jogador1 == "tesoura" && partida.Jogador2 == "papel";

    bool venceu = x == true || y == true || z == true;
    return venceu;
}

Partida jk = new Partida();
jk.Jogador1 = "papel";
jk.Jogador2 = "pedra";

bool pj = Jokenpo(jk);
Console.WriteLine("o Jogador 1 venceu? " + pj);
```
## Exercicio 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 entrada, DateTime saida)
{
    TimeSpan x = saida - entrada;
    double y = x.TotalDays + 1;
    return y;
}

public double HospedagemHotel(EstadiaHotel hotel)
{
    double x = TotalDias(hotel.Checkin, hotel.Checkout);
    double y = x * hotel.QtdPessoas * 120;
    return y;
}

EstadiaHotel estadia = new EstadiaHotel();
estadia.Checkin = new DateTime(2021,5,7);
estadia.Checkout = new DateTime(2021,5,9);
estadia.QtdPessoas = 4;

double ho = HospedagemHotel (estadia);
Console.WriteLine ("o valor total da hospedagem será de: " + ho);
```
## Exercicio 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 TotalDias2(DateTime ida,DateTime volta)
{
    TimeSpan x = volta - ida;
    double y = x.TotalDays + 1;
    return y;
}

public double PassagemAviao(PassagemAerea passagem)
{
    double dias = TotalDias2(passagem.Ida,passagem.Volta);
    double adultos = passagem.QtdAdultos * 200;
    double meias = passagem.QtdCriancas * (200/2);
    double total = (adultos + meias) * dias;
    return total;
}

PassagemAerea p = new PassagemAerea();
p.Ida = new DateTime(2021,05,18);
p.Volta = new DateTime(2021,05,20);
p.QtdAdultos = 2;
p.QtdCriancas = 2;
p.Origem = "SP";
p.Destino = "Miami";

double pa = PassagemAviao(p);
Console.WriteLine ("a viagem custará " + pa);
```
## Exercicio 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 PassagemAerea3
{
    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 EstadiaHotel3
{
    public DateTime Checkin { get; set; }
    public DateTime Checkout { get; set; }
    public int QtdPessoas { get; set; }
}


public class Comprovante3
{
    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 x = volta - ida;
    double y = x.TotalDays + 1;
    return y;
} 

public double HospedagemHotel3(EstadiaHotel3 hotel)
{
    double x = TotalDias3(hotel.Checkin, hotel.Checkout);
    double y = x * hotel.QtdPessoas * 120;
    return y;
}

public double PassagemAviao3(PassagemAerea3 passagem)
{
    double dias = TotalDias3(passagem.Ida,passagem.Volta);
    double adultos = passagem.QtdAdultos * 200;
    double meias = passagem.QtdCriancas * (200/2);
    double total = (adultos + meias) * dias;
    return total;
} 

public Comprovante3 PacoteViagem(PassagemAerea3 passagem,EstadiaHotel3 hospedagem)
{
    double pass = PassagemAviao3(passagem);
    double hosp = HospedagemHotel3(hospedagem);
    double dias = TotalDias3(passagem.Ida, passagem.Volta);

    Comprovante3 c = new Comprovante3();
    c.TotalHotel = hosp;
    c.TotalPassagem = pass;
    c.Total = hosp + pass;
    c.Mensagem = $"A compra do Pacote de {dias} dias para o destino {passagem.Destino} foi finalizado com sucesso! O total incluindo todas despesas é de R${c.Total}";
    return c;
}

PassagemAerea3 p3 = new PassagemAerea3();
p3.Ida = new DateTime(2021,05,18);
p3.Volta = new DateTime(2021,05,20);
p3.QtdAdultos = 2;
p3.QtdCriancas = 2;
p3.Origem = "SP";
p3.Destino = "Miami";

EstadiaHotel3 e3 = new EstadiaHotel3();
e3.Checkin = new DateTime(2021,5,7);
e3.Checkout = new DateTime(2021,5,9);
e3.QtdPessoas = 4;

Comprovante3 pv = PacoteViagem(p3,e3);
Console.WriteLine(pv.TotalHotel);
Console.WriteLine(pv.TotalPassagem);
Console.WriteLine(pv.Total);
Console.WriteLine(pv.Mensagem);
```
