# Session four | Fund.Logica | 2° bimestre **Nome** Kevin Ribeiro de Andrade **Número** 27 **Turma** INFO A ## Exercício 1 Crie uma função simples que verifique se dois retângulos são iguais baseado em suas áreas. - Se forem iguais, retorne: “Os retângulos são iguais” - Se forem diferentes, retorne: “Os retângulos são diferentes” ```csharp= public bool AreasIguais(double a1, double b1, double a2, double b2) { double ret1 = a1 * b1; double ret2 = a2 * b2; bool comparando = ret1 == ret2; if (comparando == true) { Console.WriteLine("São iguais"); } else  { Console.WriteLine("Não são iguais"); }   return comparando; } bool resulAreasiguais = AreasIguais(2, 2, 2, 2); Console.WriteLine(resulAreasiguais); ``` ## Exercício 2 Crie uma função compostas que verifique se dois retângulos são iguais baseado em suas áreas. - Se forem iguais, retorne: “Os retângulos são iguais” - Se o primeiro for maior, retorne: “O primeiro retângulo é maior.” - Se o segundo for maior, retorne: “O segundo retângulo é maior.” ```csharp= public string AreasIguais(double a1, double b1, double a2, double b2) { double ret1 = AreaRetangulo(a1, b1); double ret2 = AreaRetangulo(a2, b2); bool comparacao = ret1 == ret2;     string texto = ""; if (comparacao == true) { texto = "Retângulos são iguais"; } else if (ret1 > ret2) { texto = "Retângulo1 é maior que o retângulo 2"; }     else  { texto = "Retângulo 2 é maior que o retângulo 1"; }     return texto; } public double AreaRetangulo(double a, double b) { return a * b; } string resulAreasIguais = AreasIguais(2, 2, 4, 4); Console.WriteLine(resulAreasIguais); ``` ## Exercício 3 Crie uma função compostas que verifique se três retângulos são iguais baseado em suas áreas. - Se forem iguais, retorne: “Os retângulos são iguais” - Se o primeiro for o maior, retorne: “O primeiro retângulo é maior.” - Se o segundo for o maior, retorne: “O segundo retângulo é maior.” - Se o terceiro for o maior, retorne: “O terceiro retângulo é maior.” - Se todos testes acima forem falsos, retorne: “Existem 2 maiores retângulos” ```csharp= public class Retangulo {    public double Basee {get; set;}    public double Altura {get; set;} } public string AreasIguais(Retangulo ret1, Retangulo ret2, Retangulo ret3) { double retangulo1 = AreaRetangulo(ret1.Basee, ret1.Altura); double retangulo2 = AreaRetangulo(ret2.Basee, ret2.Altura);     double retangulo3 = AreaRetangulo(ret3.Basee, ret3.Altura); bool comparacao = retangulo1 == retangulo2 && retangulo2 == retangulo3 && retangulo1 == retangulo3;     string texto = ""; if (comparacao == true) { texto = "Retângulos são iguais"; } else if (retangulo1 > retangulo2 && retangulo1 > retangulo3) { texto = "Retângulo1 é maior que o retângulo 2"; } else if (retangulo3 > retangulo2 && retangulo3 > retangulo1) { texto = "Retangulo 3 é maior"; }     else  { texto = "Retângulo 2 é maior que o retângulo 1"; }     return texto; } public double AreaRetangulo(double a, double b) { return a * b; } Retangulo ret1 = new Retangulo (); ret1.Basee = 2; ret1.Altura = 2; Retangulo ret2 = new Retangulo(); ret2.Basee = 2; ret2.Altura = 2; Retangulo ret3 = new Retangulo(); ret3.Basee = 10; ret3.Altura = 10; string resulAreasIguais = AreasIguais(ret1, ret2, ret3); Console.WriteLine(resulAreasIguais); ``` ## Exercício 4 Crie a(s) classe(s) representando a abstração de função e/ou dados ao lado. Abaixo a especificação das situações a serem resolvidas: ▪ Calcular o valor total a pagar referente a compra de um ingresso do Cinemark considerando se o ingresso é meia ou inteira. ▪ Realize a lógica acima, mas no retorno você deve seguir o padrão abaixo: “Compra concluída! O ingresso para o filme XXX é de R$ XXXX” ▪ Realize a lógica da primeira função, mas considerando a compra de dois ingressos. ```csharp= public class Retangulo {    public double Basee {get; set;}    public double Altura {get; set;} } public string AreasIguais(Retangulo ret1, Retangulo ret2, Retangulo ret3) { double retangulo1 = AreaRetangulo(ret1.Basee, ret1.Altura); double retangulo2 = AreaRetangulo(ret2.Basee, ret2.Altura);     double retangulo3 = AreaRetangulo(ret3.Basee, ret3.Altura); bool comparacao = retangulo1 == retangulo2 && retangulo2 == retangulo3 && retangulo1 == retangulo3;     string texto = ""; if (comparacao == true) { texto = "Retângulos são iguais"; } else if (retangulo1 > retangulo2 && retangulo1 > retangulo3) { texto = "Retângulo1 é maior que o retângulo 2"; } else if (retangulo3 > retangulo2 && retangulo3 > retangulo1) { texto = "Retangulo 3 é maior"; }     else  { texto = "Retângulo 2 é maior que o retângulo 1"; }     return texto; } public double AreaRetangulo(double a, double b) { return a * b; } Retangulo ret1 = new Retangulo (); ret1.Basee = 2; ret1.Altura = 2; Retangulo ret2 = new Retangulo(); ret2.Basee = 2; ret2.Altura = 2; Retangulo ret3 = new Retangulo(); ret3.Basee = 10; ret3.Altura = 10; string resulAreasIguais = AreasIguais(ret1, ret2, ret3); Console.WriteLine(resulAreasIguais); ``` ## Exercício 5 Crie a(s) classe(s) representando a abstração de função e/ou dados ao lado. Abaixo a especificação das situações a serem resolvidas: ▪ Calcular o valor total a pagar referente a compra de ingressos do Cinemark considerando se os ingressos são meia ou inteira. ▪ Realize a lógica acima, mas no retorno você deve seguir o padrão abaixo: “Compra concluída! A compra de XXXX ingressos XXXX para o filme XXX é de R$ XXXX” Ex1. Compra concluída! A compra de 2 ingressos INTEIRA para o filme Avengers é de R$ 50,00 Ex2. Compra concluída! A compra de 2 ingressos MEIA para o filme Avengers é de R$ 25,00 ```csharp= public class Ingresso { public long QtdIngresso {get; set;} public bool Meia {get; set;} public double Preco {get; set;} public string Filme {get; set;} } public class Cinemark { public double calcTotal1(Ingresso ingresso) { double ing = ingresso.Preco * ingresso.QtdIngresso; bool meia = ingresso.Meia; if (meia == true)     { ing = (ingresso.Preco / 2) * ingresso.QtdIngresso; } return ing; } public string calcTotal2(Ingresso ingresso) { bool meia = ingresso.Meia;        string meiaounao = ""; if (meia == true)     { meiaounao = $"Compra concluída! A compra de {ingresso.QtdIngresso} ingressos meia para o filme {ingresso.Filme} é de R${calcTotal1(ingresso)}"; } else  { meiaounao = $"Compra concluída! A compra de {ingresso.QtdIngresso} ingressos Inteira para o filme {ingresso.Filme} é de R${calcTotal1(ingresso)}"; } return meiaounao; } } Ingresso ingresso = new Ingresso (); ingresso.QtdIngresso = 2; ingresso.Meia = false; ingresso.Preco = 35; ingresso.Filme = "Seishun buta yarou"; Ingresso ingresso2 = new Ingresso (); ingresso2.QtdIngresso = 3; ingresso2.Meia = true; ingresso2.Preco = 35; ingresso2.Filme= "Viúva Negra"; Ingresso ingresso3 = new Ingresso (); ingresso3.QtdIngresso = 3; ingresso3.Meia = true; ingresso3.Preco = 35; ingresso3.Filme = "Jujutsu kaisen"; Cinemark Cine = new Cinemark (); Console.WriteLine(); Console.WriteLine(Cine.calcTotal1(ingresso2)); Console.WriteLine(); Console.WriteLine(Cine.calcTotal2(ingresso)); ``` ## Exercício 6 Crie a(s) classe(s) representando a abstração de função e/ou dados ao lado. Abaixo a especificação das situações a serem resolvidas: ▪ Calcular o valor total a pagar referente a compra de ingressos do Cinemark considerando se os ingressos são meia ou inteira e o cupom de desconto. ▪ Aplicar o cupom de desconto que vem em porcentagem em cima do valor total dos ingressos. A função deve retornar o valor já com o desconto aplicado. ```csharp= public class Ingresso { public long QtdIngresso {get; set;} public bool Meia {get; set;} public double Preco {get; set;} public string Filme {get; set;} } Ingresso k = new Ingresso (); public class Cinemark { public double calcTotal(Ingresso ingresso, double Cupom) { double ing = ingresso.Preco * ingresso.QtdIngresso; bool meia = ingresso.Meia; if (meia == true)     { ing = (ingresso.Preco / 2) * ingresso.QtdIngresso; } return AplicarCupom(ing, Cupom); } public double AplicarCupom(double Total, double Cupom) { return  Total - ((Cupom) * (Total) / 100); } } Ingresso ingresso = new Ingresso (); ingresso.QtdIngresso = 2; ingresso.Meia = false; ingresso.Preco = 35; ingresso.Filme = "Seishun buta yarou"; Ingresso ingresso2 = new Ingresso (); ingresso2.QtdIngresso = 3; ingresso2.Meia = true; ingresso2.Preco = 35; ingresso2.Filme= "Viúva Negra"; Ingresso ingresso3 = new Ingresso (); ingresso3.QtdIngresso = 3; ingresso3.Meia = true; ingresso3.Preco = 35; ingresso3.Filme = "Jujutsu kaisen"; Cinemark Cine = new Cinemark (); Console.WriteLine(); Console.WriteLine(Cine.calcTotal(ingresso2, 10)); Console.WriteLine(); //Console.WriteLine(Cine.calcTotal2(ingresso)); ``` ## Exercício 7 Crie a(s) classe(s) representando a abstração de função e/ou dados ao lado. Abaixo a especificação das situações a serem resolvidas: ▪ Calcular o valor total a pagar referente a compra de ingressos do Cinemark considerando se os ingressos são meia ou inteira e o cupom de desconto. Além do cupom de desconto você deve aplicar as seguintes regras: ➢ Se o total da compra de ingressos for maior que R$ 100,00 após a aplicação do desconto, aplicar mais 10% de desconto. ▪ Aplicar o cupom de desconto que vem em porcentagem em cima do valor total dos ingressos. A função deve retornar o valor já com o desconto aplicado. ```csharp= public class Ingresso { public long QtdIngresso {get; set;} public bool Meia {get; set;} public double Preco {get; set;} public string Filme {get; set;} } Ingresso k = new Ingresso (); public class Cinemark { public double calcTotal(Ingresso ingresso, double Cupom) { double ing = ingresso.Preco * ingresso.QtdIngresso; bool meia = ingresso.Meia; if (meia == true)     { ing = (ingresso.Preco / 2) * ingresso.QtdIngresso; } double aplic = AplicarCupom(ing, Cupom); if (aplic > 100) { double calc = aplic; double desc = AplicarCupom(calc, Cupom); return desc; } return aplic; } public double AplicarCupom(double Total, double Cupom) { return  Total - ((Cupom) * (Total) / 100); } } Ingresso ingresso = new Ingresso (); ingresso.QtdIngresso = 2; ingresso.Meia = false; ingresso.Preco = 35; ingresso.Filme = "Seishun buta yarou"; Ingresso ingresso2 = new Ingresso (); ingresso2.QtdIngresso = 1; ingresso2.Meia = true; ingresso2.Preco = 500; ingresso2.Filme= "Viúva Negra"; Ingresso ingresso3 = new Ingresso (); ingresso3.QtdIngresso = 1; ingresso3.Meia = true; ingresso3.Preco = 203; ingresso3.Filme = "Jujutsu kaisen"; Cinemark Cine = new Cinemark (); Console.WriteLine(); Console.WriteLine(Cine.calcTotal(ingresso2, 10)); Console.WriteLine(); //Console.WriteLine(Cine.calcTotal2(ingresso)); ``` ## Exercício 8 Crie a(s) classe(s) representando a abstração de função e/ou dados ao lado. Abaixo a especificação das situações a serem resolvidas: ▪ Calcular o valor total a pagar referente a compra de ingressos do Cinemark considerando se os ingressos são meia ou inteira e o cupom de desconto. Além do cupom de desconto você deve aplicar as seguintes regras: ➢ Se o dia atual for uma quarta-feira aplicar desconto de 50% no valor da compra após aplicar o desconto. ➢ Se o total da compra de ingressos for maior que R$ 100,00 após a verificação de quarta-feira, aplicar mais 10% de desconto. ▪ Aplicar o cupom de desconto que vem em porcentagem em cima do valor total dos ingressos. A função deve retornar o valor já com o desconto aplicado. ** Você pode incluir outras funções compostas que não estejam presentes no diagrama ao lado. ```csharp= public class Ingresso { public long QtdIngresso {get; set;} public bool Meia {get; set;} public double Preco {get; set;} public string Filme {get; set;} } public class Cinemark { public double calcTotal(Ingresso ingresso, double Cupom) { DateTime atual = DateTime.Today; String Atual = atual.DayOfWeek.ToString(); double ing = ingresso.Preco * ingresso.QtdIngresso; bool meia = ingresso.Meia; if (meia == true)     { ing = (ingresso.Preco / 2) * ingresso.QtdIngresso; } double aplic = AplicarCupom(ing, Cupom); if (Atual == "Wednesday") if (aplic > 100) { double aplicando = AplicarCupom(aplic, 50); double desc = AplicarCupom(aplicando, 10);             aplic = desc; return aplic; } if (aplic > 100) { double desct = AplicarCupom(aplic, 10); return desct; } return aplic; } private double AplicarCupom(double Total, double Cupom) { return  Total - ((Cupom) * (Total) / 100); } } Ingresso ingresso = new Ingresso (); ingresso.QtdIngresso = 2; ingresso.Meia = false; ingresso.Preco = 35; ingresso.Filme = "Seishun buta yarou"; Ingresso ingresso2 = new Ingresso (); ingresso2.QtdIngresso = 1; ingresso2.Meia = true; ingresso2.Preco = 500; ingresso2.Filme= "Viúva Negra"; Ingresso ingresso3 = new Ingresso (); ingresso3.QtdIngresso = 1; ingresso3.Meia = true; ingresso3.Preco = 203; ingresso3.Filme = "Jujutsu kaisen"; Cinemark Cine = new Cinemark (); Console.WriteLine(); Console.WriteLine(Cine.calcTotal(ingresso2, 10)); Console.WriteLine(); //Console.WriteLine(Cine.calcTotal2(ingresso)); ``` ## Exercício 9 Crie a(s) classe(s) representando a abstração de função e/ou dados ao lado. Abaixo a especificação das situações a serem resolvidas: ▪ Calcular o valor total a pagar referente a compra de ingressos do Cinemark considerando se os ingressos são meia ou inteira e o cupom de desconto. Além do cupom de desconto você deve aplicar as seguintes regras: ➢ Se o gênero for ‘NACIONAL’ o valor de cada ingresso será R$ 5,00 independente de qualquer valor e todas as regras abaixo serão desconsideradas. ➢ Se o dia atual for uma quarta-feira aplicar desconto de 50% no valor da compra após aplicar o desconto. ➢ Se o total da compra de ingressos for maior que R$ 100,00 após a verificação de quarta-feira, aplicar mais 10% de desconto. ▪ Aplicar o cupom de desconto que vem em porcentagem em cima do valor total dos ingressos. A função deve retornar o valor já com o desconto aplicado. ** Você pode incluir outras funções compostas que não estejam presentes no diagrama ao lado. ```csharp= using System; public class Ingresso { public long QtdIngresso {get; set;} public bool Meia {get; set;} public double Preco {get; set;} public string Filme {get; set;} public string Genero {get; set;} } public class Cinemark { public double calcTotal(Ingresso ingresso, double Cupom) { double aplic; if (ingresso.Genero.Contains("Nacional")) { aplic = 5 * ingresso.QtdIngresso; } else { if (ingresso.Meia == true) { aplic = (ingresso.Preco / 2) * ingresso.QtdIngresso; } else { aplic = ingresso.Preco * ingresso.QtdIngresso; } aplic = AplicarCupom (aplic, 10); if (DateTime.Today.DayOfWeek == DayOfWeek.Wednesday) { aplic = AplicarCupom (aplic, 50); } if (aplic > 100) { aplic = AplicarCupom (aplic, 10); } } return aplic; } private double AplicarCupom(double Total, double Cupom) { return Total - ((Cupom) * (Total) / 100); } } Ingresso ingresso = new Ingresso (); ingresso.QtdIngresso = 2; ingresso.Meia = false; ingresso.Preco = 35; ingresso.Filme = "Seishun buta yarou"; Ingresso ingresso2 = new Ingresso (); ingresso2.QtdIngresso = 1; ingresso2.Meia = true; ingresso2.Preco = 500; ingresso2.Filme= "Viúva Negra"; ingresso2.Genero = "acional"; Ingresso ingresso3 = new Ingresso (); ingresso3.QtdIngresso = 1; ingresso3.Meia = true; ingresso3.Preco = 203; ingresso3.Filme = "Jujutsu kaisen"; Cinemark Cine = new Cinemark (); Console.WriteLine(); Console.WriteLine(Cine.calcTotal(ingresso2, 10)); Console.WriteLine(); //Console.WriteLine(Cine.calcTotal2(ingresso)); ``` ## Exercício 10 Faça uma função que implemente a lógica que identifique o vencedor de uma partida de Jokenpo dizendo se quem ganhou foi o jogador1, jogador2 ou empate. ```csharp= public class Jokenpo { public string Jogador1 {get; set;} public string Jogador2 {get; set;} } public class Partida { public string Vencedor(Jokenpo Jk) {       string vencedores;      if (Jk.Jogador2 == "Pedra" && Jk.Jogador1 == "Tesoura"                             ||   Jk.Jogador2 == "Papel" && Jk.Jogador1 == "Pedra"                             ||   Jk.Jogador2 == "Tesoura" && Jk.Jogador1 == "Papel") { vencedores = "O segundo saiu como vencedor"; return vencedores; } else if (Jk.Jogador2 == "Pedra" && Jk.Jogador1 == "Papel"                           ||   Jk.Jogador2 == "Papel" && Jk.Jogador1 == "Tesoura"                          ||   Jk.Jogador2 == "Tesoura" && Jk.Jogador1 == "Pedra") { vencedores = "O Primeiro jogador saiu como vencedor";             return vencedores; } else { vencedores = "Ambos jogadores saíram empatados"; return vencedores; } return vencedores; } } Jokenpo Jk =new Jokenpo (); Jk.Jogador1 = "Pedra"; Jk.Jogador2 = "Tesoura"; Partida Part = new Partida(); Console.WriteLine(Part.Vencedor(Jk)); ``` ## exercício 11 Faça uma função que implemente a lógica que identifique o vencedor de uma partida de Par ou Ímpar dizendo se quem ganhou foi o jogador1, jogador2 ou empate. ```csharp= public class ParImpar { public string Jogador {get; set;} //public string Jogador2 {get; set;} public bool Par        {get; set;} public double Numero   {get; set;} } public class Vencedores { public string Vencedor(ParImpar J1, ParImpar J2) { double somar = J1.Numero + J2.Numero; string venc; if (somar % 2 == 0) {   if (J1.Par)   { venc = $"O resultado foi par {J1.Jogador} venceu";      } else  { venc = $"O resultado foi par {J2.Jogador} venceu"; } } else { if (J1.Par == false) { venc = $"O resultado deu impar {J1.Jogador} venceu"; } else { venc = $"O resultado deu impar {J2.Jogador} venceu"; } } return venc; } } ParImpar Partida = new ParImpar(); Partida.Jogador = "Cleytin";     Partida.Par = true;     Partida.Numero = 2; ParImpar Partida2 = new ParImpar(); Partida2.Jogador = "Gabeil"; Partida2.Par = false; Partida2.Numero = 5; Vencedores Vencer = new Vencedores(); Console.WriteLine(Vencer.Vencedor(Partida, Partida2)); ```