---
# System prepended metadata

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

---

# Session Two: Getting Better | Fund. Lógica
>[color=purple]**Autor:** Letícia Rodrigues da Silva
**Turma:** IndoD 
**Número:** 25

 [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 string CalcularIngresso (IngressoCinemark ingresso)
{
    int totalIngressos = ingresso.QtdInteira + ingresso.QtdMeia;
    double Inteira = ingresso.QtdInteira * ingresso.QtdMeia;
    double Meia = ingresso.QtdMeia * (ingresso.Preco / 2);
    double total = Inteira + Meia;
    string result = $"O valor da compra de {totalIngressos} ingressos referente ao filme {ingresso.Filme} é R$ {total}";
    return result;
}

IngressoCinemark i = new IngressoCinemark();
i.QtdInteira = 3;
i.QtdMeia = 2;
i.Preco = 20;
i.Filme = "Minha mãe é uma peça";

string a = CalcularIngresso(i);
Console.WriteLine(a);
Console.WriteLine();
// O valor da compra de 5 ingressos referente ao filme Minha mãe é uma peça é R$ 26
```


## 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;
	public string jogador2;
}


public bool Jokenpo (Partida partida)
{
	bool venceu = (partida.jogador1 == "Tesoura" && partida.jogador2 == "Papel")
				   || 
				  (partida.jogador1 == "Papel" && partida.jogador2 == "Pedra")
			       || 
			      (partida.jogador1 == "Pedra" && partida.jogador2 == "Tesoura");
	return venceu;	
}


Partida b = new Partida();
b.jogador1 = "Papel";
b.jogador2 = "Tesoura";

bool v = Jokenpo(b);
Console.WriteLine(v);
Console.WriteLine();
// False
```

## 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 data = volta - ida;
	double dias = data.TotalDays + 1;
	return dias;
}


public double HospedagemHotel (EstadiaHotel hotel)
{
	double dias = TotalDias(hotel.checkin, hotel.checkout);
	double total = dias * hotel.QtdPessoas * 120;
	return total;
}


EstadiaHotel c = new EstadiaHotel();
c.checkin = new DateTime(2021, 05, 10);
c.checkout = new DateTime(2021, 05, 15);
c.QtdPessoas = 3;

double total = HospedagemHotel(c);
Console.WriteLine(total);
Console.WriteLine();
// 2160 
```

## 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 TotalDiass (DateTime ida, DateTime volta)
{
    TimeSpan data = volta - ida;
    double dias = data.TotalDays + 1;
    return dias;
}

public double TotalPassagens (PassagemAerea passagem)
{
    double dias = TotalDiass(passagem.ida, passagem.volta);
    double total = (dias * passagem.QtdAdultos * 200) + (dias * passagem.QtdCriancas);
    return total;
}


PassagemAerea d = new PassagemAerea();
d.ida = new DateTime(2021, 01, 20);
d.volta = new DateTime(2021, 01, 31);
d.QtdAdultos = 2;
d.QtdCriancas = 3;
d.origem = "São Paulo";
d.destino = "Salvador";

double total1 = TotalPassagens(d);
Console.WriteLine(total1);
// 4836 
```

## 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 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 EstadiaHotel1
{
    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 Totaldiasss (DateTime ida, DateTime volta)
{
    TimeSpan data = volta - ida;
    double dias = data.TotalDays + 1;
    return dias;
}

public double TotalPassagens1 (PassagemAerea2 passagem)
{
    double dias = Totaldiasss(passagem.ida, passagem.volta);
    double total = (dias * passagem.QtdAdultos * 300) + (dias * passagem.QtdCriancas * 150);
    return total;
}

public double HospedagemHotel1 (EstadiaHotel1 hospedagem)
{
    double dias = Totaldiasss(hospedagem.checkin, hospedagem.checkout);
    double total = dias * hospedagem.QtdPessoas * 200;
    return total;
}

public Comprovante PacoteViagem (PassagemAerea2 passagem, EstadiaHotel1 hospedagem)
{
    double totalHotel = HospedagemHotel1(hospedagem);
    double TotalPassagem = TotalPassagens1(passagem);
    double dias = Totaldiasss(passagem.ida, passagem.volta);


    Comprovante c1 = new Comprovante();
    c1.totalHotel = totalHotel;
    c1.totalPassagem = TotalPassagem;
    c1.total = totalHotel + TotalPassagem;
    c1.mensagem = $"A compra do Pacote de {dias} dias para o destino {passagem.destino} foi finalizado com sucesso! O total incluindo todas despesas é de R$ {c1.total}";
    return c1;
}
PassagemAerea2 e = new PassagemAerea2();
e.ida = new DateTime(2021, 06, 12);
e.volta = new DateTime(2021, 06, 24);
e.QtdAdultos = 2;
e.QtdCriancas = 3;
e.origem = "Rio de Janeiro";
e.destino = "Brasília";


EstadiaHotel1 h = new EstadiaHotel1();
h.checkin = new DateTime(2021, 06, 12);
h.checkout = new DateTime(2021, 06, 24);
h.QtdPessoas = 5;

Comprovante c1 = PacoteViagem(e, h);
Console.WriteLine(c1.total);
Console.WriteLine(c1.totalHotel);
Console.WriteLine(c1.totalPassagem);
Console.WriteLine(c1.mensagem);
// A compra do Pacote de 13 dias para o destino Brasília foi finalizado com sucesso! O total incluindo todas despesas é de R$ 26650
```