# Tipo Composto 2 | Fund. Lógica
**Author:** Matheus Rafael Morato Rocha
**Turma:** InfoC
**Número:** 40
[TOC]
## Nível 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 CineMark
{
public int QtdInteira;
public int QtdMeia;
public double preco;
public string filme;
}
public double CineMarkVenda (CineMark cinema)
{
double Inteira = cinema.QtdInteira * cinema.preco;
double Meia = cinema.QtdMeia * (cinema.preco / 2);
double total = Meia + Inteira;
return total;
}
CineMark a = new CineMark();
a.QtdInteira = 5;
a.QtdMeia = 2;
a.preco = 25;
a.filme = "Interstellar";
System.Console.Write("O valor da compra de ");
System.Console.Write(a.QtdInteira + a.QtdMeia);
System.Console.Write(" ingressos referente ao filme ");
System.Console.Write(a.filme);
System.Console.Write(" é R$ ");
System.Console.Write(CineMarkVenda(a));
// O valor da compra de 5 ingressos referente ao filme Interstellar é R$ 150
```
## Nível 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 jokenpo
{
public string Jogador1;
public string Jogador2;
}
jokenpo x = new jokenpo();
x.Jogador1 = "Pedra";
x.Jogador2 = "Tesoura";
public bool Jogo (jokenpo Game)
{
bool Ganha1 = Game.Jogador1 == "Pedra" && Game.Jogador2 == "Tesoura";
bool Ganha2 = Game.Jogador1 == "Papel" && Game.Jogador2 == "Pedra";
bool Ganha3 = Game.Jogador1 == "Tesoura" && Game.Jogador2 == "Papel";
return Ganha1 || Ganha2 || Ganha3;
}
System.Console.Write(Jogo(x));
// True
```
## Nível 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 PassagemAerea
{
public System.DateTime Ida;
public System.DateTime Volta;
public int QtdAdulto;
public int QtdCriancas;
public string origem;
public string destino;
}
public double Dias (System.DateTime ida, System.DateTime volta)
{
System.TimeSpan dif = volta - ida;
double dias = dif.TotalDays + 1;
return dias;
}
public double PrecoPorPessoa (PassagemAerea Aerea)
{
double dias = Dias(Aerea.Ida, Aerea.Volta);
double Adulto = dias * Aerea.QtdAdulto * 200;
double Criança = dias * Aerea.QtdCriancas * 100;
double Total = Criança + Adulto;
return Total;
}
PassagemAerea a = new PassagemAerea();
a.Ida = new System.DateTime (2021, 1, 5);
a.Volta = new System.DateTime (2021, 1, 15);
a.QtdAdulto = 2;
a.QtdCriancas = 2;
a.origem = "São Paulo";
a.destino = "Acapulco";
double x = PrecoPorPessoa(a);
x
// 6600
```
## Nível 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 System.DateTime Ida;
public System.DateTime Volta;
public int QtdAdulto;
public int QtdCriancas;
public string origem;
public string destino;
}
public double Aviao (PassagemAerea Aerea)
{
System.DateTime a = System.Convert.ToDateTime(Aerea.Ida);
System.DateTime x = System.Convert.ToDateTime(Aerea.Volta);
int y = a.Day - x.Day;
int TotalDias = System.Math.Abs(y);
return TotalDias;
}
public double PrecoPorPessoa (PassagemAerea Aerea)
{
double Adulto = (Aviao(Aerea) * Aerea.QtdAdulto) * 200;
double Criança = (Aviao(Aerea) * Aerea.QtdCriancas) * 100;
double Total = Criança + Adulto;
return Total;
}
PassagemAerea a = new PassagemAerea();
a.Ida = new System.DateTime (2021, 01, 04);
a.Volta = new System.DateTime (2021, 04, 10);
a.QtdAdulto = 2;
a.QtdCriancas = 2;
a.origem = "São Paulo";
a.destino = "Acapulco";
double x = PrecoPorPessoa(a);
x
// 3600
```
## Nível 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 PassagemAerea
{
public System.DateTime Ida;
public System.DateTime Volta;
public int QtdAdulto;
public int QtdCriancas;
public string origem;
public string destino;
}
public class EstadiaHotel
{
public System.DateTime checkin;
public System.DateTime checkout;
public int QtdPessoas;
}
public class Comprovante
{
public double Total;
public double TotalHotel;
public double TotalPassagem;
public string Mensagem;
}
public double Dias (EstadiaHotel Hotel)
{
System.DateTime a = System.Convert.ToDateTime(Hotel.checkin);
System.DateTime x = System.Convert.ToDateTime(Hotel.checkout);
int y = a.Day - x.Day;
int TotalDias = System.Math.Abs(y);
return TotalDias;
}
public double TotalHotel (EstadiaHotel Hotel)
{
double x = (Dias(Hotel) * Hotel.QtdPessoas) * 120;
return x;
}
public double Aviao (PassagemAerea Aerea)
{
System.DateTime a = System.Convert.ToDateTime(Aerea.Ida);
System.DateTime x = System.Convert.ToDateTime(Aerea.Volta);
int y = a.Day - x.Day;
int TotalDias = System.Math.Abs(y);
return TotalDias;
}
public double PrecoPorPessoa (PassagemAerea Aerea)
{
double Adulto = (Aviao(Aerea) * Aerea.QtdAdulto) * 200;
double Criança = (Aviao(Aerea) * Aerea.QtdCriancas) * 100;
double Total = Criança + Adulto;
return Total;
}
public double TotalCompleto (Comprovante a)
{
double x = hotel + Passagem;
return x;
}
Comprovante c = new Comprovante();
c.Total = TotalCompleto(c);
c.TotalHotel = hotel;
c.TotalPassagem = Passagem;
c.Mensagem = x;
PassagemAerea k = new PassagemAerea();
k.Ida = new System.DateTime (2021, 01, 04);
k.Volta = new System.DateTime (2021, 04, 10);
k.QtdAdulto = 2;
k.QtdCriancas = 2;
k.origem = "São Paulo";
k.destino = "Acapulco";
EstadiaHotel a = new EstadiaHotel();
a.checkin = new System.DateTime (2021, 01, 04);
a.checkout = new System.DateTime (2021, 04, 10);
a.QtdPessoas = 5;
double hotel = TotalHotel(a);
double Passagem = PrecoPorPessoa(k);
System.Console.Write(" A compra do Pacote de ");
System.Console.Write(Dias(a));
System.Console.Write(" dias para o destino ");
System.Console.Write(k.destino);
System.Console.Write(" foi finalizado com sucesso! O total incluindo todas despesas é de R$ ");
System.Console.Write(TotalCompleto(c));
string x = " A compra do Pacote de " + Dias(a) +
" dias para o destino " + k.destino +
" foi finalizado com sucesso! O total incluindo todas despesas é de R$ " + c.Total;
// A compra do Pacote de 8 dias para o destino Acapulco foi finalizado com sucesso! O total incluindo todas despesas é de R$ 8400
```