# Session Two: Getting Better | Fund. de Lógica Erik Alexandre da Silva INFO B N°10 [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 ```