# Session Two
autor: Guilherme Oliveira Verissimo
turma: InfoC
número: 21
[toc]
### Exercício 1
Faça uma função ÚNICA que a partir da base e altura, calcule a área do triângulo.
```csharp=
public class IngressoCinemark
{
public int qtdInteira;
public int qtdMeia;
public double preco;
public string filme;
}
public string CalcularIngresso (IngressoCinemark ingresso)
{
double valorInteira = ingresso.qtdInteira * ingresso.preco;
double valorMeia = ingresso.qtdMeia * (ingresso.preco / 2);
double valorTotal = valorInteira + valorMeia;
double qtdIngresso = ingresso.qtdInteira + ingresso.qtdMeia;
return "O valor da compra de " + qtdIngresso + " ingressos referente ao filme " + ingresso.filme + " é R$" + valorTotal;
}
IngressoCinemark ingresso = new IngressoCinemark();
ingresso.qtdInteira = 2;
ingresso.qtdMeia = 2;
ingresso.preco = 24;
ingresso.filme = "Homem Aranha";
string Teste = CalcularIngresso (ingresso);
Teste
// O valor da compra de 4 ingressos referente ao filme Homem Aranha é R$72
```
### 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 jogador1;
public string jogador2;
}
public bool Jokenpo (Partida partida)
{
bool posibilidade1 = (partida.jogador1 == "Pedra" && partida.jogador2 == "Tesoura");
bool posibilidade2 = (partida.jogador1 == "Tesoura" && partida.jogador2 == "Papel");
bool posibilidade3 = (partida.jogador1 == "Papel" && partida.jogador2 == "Pedra");
return posibilidade1 || posibilidade2 || posibilidade3;
}
Partida partida = new Partida ();
partida.jogador1 = "Pedra";
partida.jogador2 = "Tesoura";
bool Teste = Jokenpo (partida);
Console.WriteLine("Jogador 1: " + Teste);
// Jogador 1: 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 EstadiaHotel
{
public DateTime checkin;
public DateTime checkout;
public int qtdPessoas;
}
public double TotalDias (DateTime volta, DateTime ida)
{
TimeSpan dif = volta - ida;
return dif.TotalDays + 1;
}
public double HospedagemHotel (EstadiaHotel hotel)
{
double Dias = TotalDias(hotel.checkout, hotel.checkin);
return Dias * hotel.qtdPessoas * 120;
}
EstadiaHotel hotel = new EstadiaHotel ();
hotel.checkin = new DateTime (2021, 04,07);
hotel.checkout = new DateTime (2021, 04,09);
hotel.qtdPessoas = 2;
double Teste = HospedagemHotel (hotel);
Console.WriteLine("Valor total da estadia: R$" +Teste);
// Valor total da estadia: R$720
```
### 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 PassagemAerea
{
public DateTime ida;
public DateTime volta;
public int qtdAdultos;
public int qtdCriancas;
public string origem;
public string destino;
}
public double TotalDias (DateTime volta, DateTime ida)
{
TimeSpan dif = volta - ida;
return dif.TotalDays + 1;
}
public double PassagemAereaa (PassagemAerea passagem)
{
double Dias = TotalDias(passagem.volta, passagem.ida);
return (Dias * passagem.qtdAdultos * 200) + (Dias * passagem.qtdCriancas * 100);
}
PassagemAerea passagem = new PassagemAerea ();
passagem.ida = new DateTime (2021, 2, 25);
passagem.volta = new DateTime (2021, 3, 3);
passagem.qtdAdultos = 2;
passagem.qtdCriancas = 2;
passagem.origem = "Dubai";
passagem.destino = "Etiópia";
double Teste = PassagemAereaa (passagem);
Console.WriteLine ("O valor total da compra de passagem é: R$" + Teste);
// O valor total da compra de passagem é: R$4200
```
### 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 EstadiaHotel
{
public DateTime checkin;
public DateTime checkout;
public int qtdPessoas;
}
public class PassagemAerea
{
public DateTime ida;
public DateTime volta;
public int qtdAdultos;
public int qtdCriancas;
public string origem;
public string destino;
}
public class Comprovante
{
public double total;
public double totalHotel;
public double totalPassagem;
public string mensagem;
}
public double TotalDias (DateTime volta, DateTime ida)
{
TimeSpan dif = volta - ida;
return dif.TotalDays + 1;
}
public double PassagemAereaa (PassagemAerea passagem)
{
double Dias = TotalDias(passagem.volta, passagem.ida);
return (Dias * passagem.qtdAdultos * 200) + (Dias * passagem.qtdCriancas * 100);
}
public double HospedagemHotel (EstadiaHotel hotel)
{
double Dias = TotalDias(hotel.checkout, hotel.checkin);
return Dias * hotel.qtdPessoas * 120;
}
public Comprovante PacoteViagem(PassagemAerea passagem, EstadiaHotel hotel)
{
double Hotel = HospedagemHotel(hotel);
double Passagem = PassagemAereaa(passagem);
double Dias = TotalDias(passagem.volta, passagem.ida);
Comprovante comprovante = new Comprovante();
comprovante.totalHotel = Hotel;
comprovante.totalPassagem = Passagem;
comprovante.total = Hotel + Passagem;
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;
}
PassagemAerea passagem = new PassagemAerea ();
passagem.ida = new DateTime (2021, 2, 25);
passagem.volta = new DateTime (2021, 3, 3);
passagem.qtdAdultos = 2;
passagem.qtdCriancas = 0;
passagem.origem = "Dubai";
passagem.destino = "Etiópia";
EstadiaHotel hotel = new EstadiaHotel ();
hotel.checkin = new DateTime (2021, 2, 25);
hotel.checkout = new DateTime (2021, 3, 3);
hotel.qtdPessoas = 2;
Comprovante comprovante = PacoteViagem(passagem, hotel);
Console.WriteLine(comprovante.totalHotel);
Console.WriteLine(comprovante.totalPassagem);
Console.WriteLine(comprovante.total);
Console.WriteLine(comprovante.mensagem);
// 1680
// 2800
// 4480
// A compra do Pacote de 7 dias para o destino Etiópia foi finalizado com sucesso! O total incluindo todas despesas é de R$4480
```