---
# System prepended metadata

title: Session Two

---

# 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
```