---
# System prepended metadata

title: 'Session Two: Getting Better | Fund. de Lógica'

---

# Session Two: Getting Better | Fund. de Lógica

Nome:Pedro Henrique Gomes De Oliveira Sardinha 
INFO B 
Numero:41
[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
```