---
# System prepended metadata

title: Tipo Composto 2 | Fund. Lógica

---

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