# 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
```
{"metaMigratedAt":"2023-06-16T00:09:21.970Z","metaMigratedFrom":"Content","title":"Session Two: Getting Better | Fund. Lógica","breaks":true,"contributors":"[{\"id\":\"f2f98191-1ff5-4afd-8e66-66ff77c4c5b1\",\"add\":7363,\"del\":14}]"}