# Session Two: Getting Better | Fund. de Lógica
Erik Alexandre da Silva
INFO B
N°10
[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=
using System;
public class IngressoCinema
{
public int QtdInteira {get; set;}
public int QtdMeia {get; set;}
public double Preco {get; set;}
public string Filme {get; set;}
}
public string ingresso (IngressoCinema filmes)
{
double a = (filmes.QtdInteira * filmes.Preco) + filmes.QtdMeia * (filmes.Preco / 2);
double b = filmes.QtdInteira + filmes.QtdMeia;
string c = $"O valor da compra de {b} ingressos referente ao Filme {filmes.Filme} é R${a}";
return c;
}
IngressoCinema r = new IngressoCinema();
r.QtdInteira = 5;
r.QtdMeia = 2;
r.Preco = 20;
r.Filme = "Gente Grande";
string x = ingresso (r);
Console.WriteLine(x);
//O valor da compra de 7 ingressos referente ao Filme Gente Grande é R$120
```
## 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=
using System;
public class Partida
{
public string j1;
public string j2;
}
public bool PT (Partida jokenpo)
{
bool a = jokenpo.j1 == "tesoura" && jokenpo.j2 == "papel";
bool b = jokenpo.j1 == "pedra" && jokenpo.j2 == "tesoura";
bool c = jokenpo.j1 == "papel" && jokenpo.j2 == "pedra";
bool d = (a||b||c);
return d;
}
Partida r = new Partida();
r.j1 = "pedra";
r.j2 = "tesoura";
bool x = PT (r);
Console.WriteLine($"Jogador 1 Venceu: {x}");
//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=
using System;
public class HospedagemHotel
{
public DateTime Checkin {get; set; }
public DateTime Checkout {get; set; }
public int QtdPessoas {get; set; }
}
public double TotalDias (DateTime ida, DateTime volta)
{
TimeSpan a = volta - ida;
double b = a.TotalDays + 1;
return b;
}
public double EstadiaHotel (HospedagemHotel hotel)
{
double a = TotalDias (hotel.Checkin, hotel.Checkout);
double b = a * hotel.QtdPessoas * 120;
return b;
}
HospedagemHotel r = new HospedagemHotel();
r.Checkin = new DateTime (2021,5,15);
r.Checkout = new DateTime (2021,5,16);
r.QtdPessoas = 2;
double x = EstadiaHotel (r);
Console.WriteLine($"A Hospedagem ficou {x}");
//A Hospedagem ficou 480
```
## 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=
using System;
public class PassagemArea
{
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 a = volta - ida;
double b = a.TotalDays + 1;
return b;
}
public double Passagem (PassagemArea passagem)
{
double a = TotalDias (passagem.Ida, passagem.Volta);
double b = (a * passagem.QtdAdultos * 200) + (a * passagem.QtdCriancas * 100);
return b;
}
PassagemArea r = new PassagemArea();
r.Ida = new DateTime (2021,3,15);
r.Volta = new DateTime (2021,5,20);
r.QtdAdultos = 2;
r.QtdCriancas = 3;
r.Origem = "Acre";
r.Destino = "Portugal";
double x = Passagem (r);
Console.WriteLine($"A Viagem ficou {x}");
//A Viagem ficou 33500
```
## 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=
using System;
public class HospedagemHotel
{
public DateTime Checkin {get; set; }
public DateTime Checkout {get; set; }
public int QtdPessoas {get; set; }
}
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 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 a = volta - ida;
double b = a.TotalDays + 1;
return b;
}
public double EstadiaHotel (HospedagemHotel hotel)
{
double a = TotalDias (hotel.Checkin, hotel.Checkout);
double b = a * hotel.QtdPessoas * 120;
return b;
}
public double Passagem (PassagemAerea passagem)
{
double a = TotalDias (passagem.Ida, passagem.Volta);
double b = (a * passagem.QtdAdultos * 200) + (a * passagem.QtdCriancas * 100);
return b;
}
public Comprovante PacoteViagem(PassagemAerea passagem, HospedagemHotel hotel)
{
double a = EstadiaHotel(hotel);
double b = Passagem(passagem);
double c = TotalDias(passagem.Ida, passagem.Volta);
Comprovante r = new Comprovante();
r.TotalHotel = a;
r.TotalPassagem = b;
r.Total = a + b;
r.Mensagem = $"A compra do Pacote de {c} dias para o destino {passagem.Destino} foi finalizado com sucesso! O total incluindo todas despesas é de R$ {r.Total}";
return r;
}
HospedagemHotel r1 = new HospedagemHotel();
r1.Checkin = new DateTime (2021,5,15);
r1.Checkout = new DateTime (2021,5,17);
r1.QtdPessoas = 5;
PassagemAerea r2 = new PassagemAerea();
r2.Ida = new DateTime (2021,5,15);
r2.Volta = new DateTime (2021,5,17);
r2.QtdAdultos = 2;
r2.QtdCriancas = 3;
r2.Origem = "São Paulo";
r2.Destino = "Madrid";
Comprovante r3 = PacoteViagem(r2, r1);
Console.WriteLine(r3.Total);
Console.WriteLine(r3.TotalHotel);
Console.WriteLine(r3.TotalPassagem);
Console.WriteLine(r3.Mensagem);
//3900
//1800
//2100
//A compra do Pacote de 3 dias para o destino Madrid foi finalizado com sucesso! O total incluindo todas despesas é de R$ 3900
```