# Session Four: Programs also choose! | Fund. Lógica autor: Alan Oliveira Rocha Santiago turma: InfoB número: 02 [TOC] ## Exercicio 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 string RetangulosIguais(double b1,double a1,double b2,double a2) { bool iguais = (b1 * a1) == (b2 * a2); string x; if(iguais == true) { x = "Os retângulos são iguais"; } else { x = "Os retângulos são diferentes"; } return x; } string ri1 = RetangulosIguais(2,25,2,25); Console.WriteLine (ri1); //Os retângulos são iguais ``` ## Exercicio 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 double AreaDoRetangulo(double basee,double altura) { double x = basee * altura; return x; } public string RetangulosIguais2(double b1, double a1, double b2, double a2) { double area1 = AreaDoRetangulo(b1,a1); double area2 = AreaDoRetangulo(b2,a2); bool iguais = area1 == area2; bool maior = area1 > area2; bool maior2 = area1 < area2; string x = ""; if(iguais == true) { x = "Os retangulos são iguais"; } else if(maior == true) { x ="O primeiro retângulo é maior."; } else if(maior2 == true) { x = "O segundo retângulo é maior."; } return x; } string ri2 = RetangulosIguais2 (5,09,2,25); Console.WriteLine (ri2); //O segundo retângulo é maior ``` ## Exercicio 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 Altura1{get; set;} public double Altura2{get; set;} public double Altura3{get; set;} public double Base1{get; set;} public double Base2{get; set;} public double Base3{get; set;} } public double AreaDoRetangulo2(double basee, double area) { double x = basee * area; return x; } public string RetangulosIguais3(Retangulo ret) { double r1 = (ret.Altura1 * ret.Base1); double r2 = (ret.Altura2 * ret.Base2); double r3 = (ret.Altura3 * ret.Base3); bool iguais = r1 == r2; bool iguais2 = r1 == r3; bool iguais3 = r2 == r3; string x = "error!"; if(iguais == true && iguais2 == true && iguais3 == true) { x = "Os retângulos são iguais"; } else if(r1 > r2 && r1 > r3) { x = "O primeiro retângulo é maior."; } else if(r2 > r1 && r2 > r3) { x = "O segundo retângulo é maior."; } else if(r3 > r2 && r3 > r1) { x = "O terceiro retângulo é maior."; } else { x = "existem 2 retangulos maiores"; } return x; } Retangulo retangulo = new Retangulo(); retangulo.Altura1 = 5; retangulo.Base1 = 10; retangulo.Altura2 = 5; retangulo.Base2 = 10; retangulo.Altura3 = 5; retangulo.Base3 = 15; string retigual = RetangulosIguais3(retangulo); Console.WriteLine (retigual); //O terceiro retângulo é maior. ``` ## Exercicio 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 Ingresso { public bool Meia{get; set;} public double Preco{get; set;} public string Filme{get; set;} } public class Cinemark4 { public double CalcularTotal1(Ingresso ing) { double x = 0; if(ing.Meia == true) { x = ing.Preco / 2; } else { x = ing.Preco; } return x; } public string CalcularTotal2(Ingresso ing) { double x = 0; if(ing.Meia == true) { x = ing.Preco / 2; } else { x = ing.Preco; } string text = $"Compra concluída! O ingresso para o filme {ing.Filme} é de R$ {x}"; return text; } public double CalcularTotal3(Ingresso ing1, Ingresso ing2) { double x = 0; if(ing1.Meia == true) { x = ing1.Preco / 2; } else { x = ing1.Preco; } double y = 0; if(ing2.Meia == true) { y = ing2.Preco / 2; } else { y = ing2.Preco; } return x + y; } } Ingresso ing1 = new Ingresso(); ing1.Meia = true; ing1.Preco = 20; ing1.Filme = "Liga da Justiça - Snyder cut"; Ingresso ing2 = new Ingresso(); ing2.Meia = false; ing2.Preco = 20; ing2.Filme = "Demon Slayer - Trem Infinito"; Ingresso ing3 = new Ingresso(); ing3.Meia = false; ing3.Preco = 30; ing3.Filme = "Liga da Justiça - Snyder cut"; Ingresso ing4 = new Ingresso(); ing4.Meia = false; ing4.Preco = 30; ing4.Filme = "Demon Slayer - Trem Infinito"; Cinemark4 cine4 = new Cinemark4(); double cinema1 = cine4.CalcularTotal1(ing1); string cinema2 = cine4.CalcularTotal2(ing2); double cinema3 = cine4.CalcularTotal3(ing3,ing4); Console.WriteLine(cinema1); Console.WriteLine(cinema2); Console.WriteLine(cinema3); //10 //Compra concluída! O ingresso para o filme Demon Slayer - Trem Infinito é de R$ 20 //60 ``` ## Exercicio 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 Ingressos { public int QtdIngressos{get; set;} public bool Meia{get; set;} public double Preco{get; set;} public string Filme{get; set;} } public double CalcularMedia11(Ingressos ingresso) { double x = (ingresso.QtdIngressos * ingresso.Preco) / 2; return x; } public string CalcularMedia22(Ingressos ingresso) { double total = 0; if(ingresso.Meia == false) { total = ingresso.QtdIngressos * ingresso.Preco; } else { total = CalcularMedia11(ingresso); } string meiatexto = ""; if(ingresso.Meia == false) { meiatexto = "Inteira"; } else { meiatexto = "Meia"; } string ing1 = $"Ex5: Compra concluída! A compra de {ingresso.QtdIngressos} ingressos {meiatexto} para o filme {ingresso.Filme} é de R$ {total}"; return ing1; } Ingressos ingre2 = new Ingressos(); ingre2.QtdIngressos = 3; ingre2.Meia = true; ingre2.Preco = 10; ingre2.Filme = "Midsommar - O mal não espera a noite"; string ingre1 = CalcularMedia22(ingre2); Console.WriteLine(ingre1); //Compra concluída! A compra de 3 ingressos Meia para o filme Midsommar - O mal não espera a noite é de R$ 15 ``` ## Exercicio 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 Ingressos2 { public int QtdIngresso{get; set;} public bool Meia{get; set;} public double Preco{get; set;} public string Filme{get; set;} } public class Cinemark6 { public double CalcularTotal(Ingressos2 ingresso, double c) { double ing = 0; if(ingresso.Meia == true) { ing = ingresso.QtdIngresso * ingresso.Preco / 2; } else { ing = ingresso.Preco; } double total = AplicarDados(ing, c); return total; } static double AplicarDados(double total, double cupom) { double td = total * cupom / 100; double descCupom = total - td; return descCupom; } } Ingressos2 ingresso6 = new Ingressos2(); ingresso6.QtdIngresso = 3; ingresso6.Meia = true; ingresso6.Preco = 10; ingresso6.Filme = "OldBoy"; double cupom1 = 5; Cinemark6 cine1 = new Cinemark6(); double ingre6 = cine1.CalcularTotal(ingresso6, cupom1); Console.WriteLine(ingre6); //14,25 ``` ## Exercicio 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 Ingressos3 { public int QtdIngresso{get; set;} public bool Meia{get; set;} public double Preco{get; set;} public string Filme{get; set;} } public class Cinemark7 { public double CalcularTotal22(Ingressos3 ingresso, double cupom) { double total = 0; if(ingresso.Meia == true) { total = ingresso.QtdIngresso * ingresso.Preco / 2; } else { total = ingresso.QtdIngresso * ingresso.Preco; } double descTotal = AplicarDados22(total, cupom); double x = descTotal * (10 / 100); double y = descTotal - x; double DezDesc = 0; if(descTotal > 100) { DezDesc = y; } else { DezDesc = descTotal; } return DezDesc; } static double AplicarDados22(double total, double cupom) { double x = total * (cupom / 100); double y = total - x; return y; } } Ingressos3 ing7 = new Ingressos3(); ing7.QtdIngresso = 5; ing7.Meia = false; ing7.Preco = 30; ing7.Filme = "Mortal Kombat(2021)"; Cinemark7 ingre7 = new Cinemark7(); double desc7 = 30; double ingresso7 = ingre7.CalcularTotal22(ing7, desc7); Console.WriteLine(ingresso7); //105 ``` ## Exercicio 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. ```csharp= public class Ingressos8 { public int QtdIngresso{get; set;} public bool Meia{get; set;} public double Preco{get; set;} public string Filme{get; set;} } public class Cinemark8 { public double CalcularTotal(Ingressos8 ingresso,double cupom) { double meia = 0; if(ingresso.Meia == true) { meia = ingresso.QtdIngresso * ingresso.Preco / 2; } else { meia = ingresso.QtdIngresso * ingresso.Preco; } double descTotal = AplicarDados(meia, cupom); double desc3 = meia * (50 / 100); double desc4 = meia - desc3; double desc1 = meia * (10 / 100); double desc2 = meia - desc1; if(DateTime.Now.DayOfWeek == DayOfWeek.Saturday) { descTotal = desc4; } if(descTotal > 100) { descTotal = desc2; } return descTotal; } static double AplicarDados(double total, double cupom) { double x = total * (cupom / 100); double y = total - x; return y; } } Ingressos8 ing8 = new Ingressos8(); ing8.QtdIngresso = 2; ing8.Meia = true; ing8.Preco = 15; ing8.Filme = "Liga da Justiça - Snyder Cut"; Cinemark8 cine8 = new Cinemark8(); double desc8 = 5; double ingre8 = cine8.CalcularTotal(ing8,desc8); Console.WriteLine(ingre8); //14,25 ``` ## Exercicio 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. ```csharp= public class Ingressos9 { public int 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 Cinemark9 { public double CalcularTotal(Ingressos9 ing, double cupom) { double meia = 0; if(ing.Meia == true) { meia = ing.QtdIngresso * ing.Preco / 2; } else { meia = ing.QtdIngresso * ing.Preco; } double total = AplicarDados(meia, cupom); double descQuarta = AplicarDescQuarta(meia); double desc10 = AplicarDesc10(meia); if(DateTime.Now.DayOfWeek == DayOfWeek.Saturday) { total = descQuarta; } if(total > 100) { total = desc10; } if(ing.Genero == "Nacional") { total = ing.QtdIngresso * 5; } return total; } static double AplicarDados(double total, double cupom) { double desc1 = total * (cupom / 100); double desc2 = total - desc1; return desc2; } static double AplicarDesc10(double total) { double desc1 = total * (10 / 100); double desc2 = total - desc1; return desc2; } static double AplicarDescQuarta(double total) { double desc1 = total * (50 / 100); double desc2 = total - desc1; return desc2; } } Ingressos9 ing9 = new Ingressos9(); ing9.QtdIngresso = 2; ing9.Meia = true; ing9.Preco = 15; ing9.Filme = "Hereditario"; ing9.Genero = "Terror"; Cinemark9 cine9 = new Cinemark9(); double desc9 = 10; double ingre9 = cine9.CalcularTotal(ing9, desc9); Console.WriteLine(ingre9); //13,5 ``` ## Exercicio 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 Jogadores { public string Jogador1{get; set;} public string Jogador2{get; set;} } public class Jokenpo { public string Partida(Jogadores jogador) { bool x = jogador.Jogador1 == "papel" && jogador.Jogador2 == "pedra"; bool y = jogador.Jogador1 == "pedra" && jogador.Jogador2 == "tesoura"; bool z = jogador.Jogador1 == "tesoura" && jogador.Jogador2 == "papel"; string ganhador = ""; if(x == true || y == true || z == true) { ganhador = "Jogador1 Venceu"; } else { ganhador = "Jogador2 Venceu"; } if(jogador.Jogador1 == jogador.Jogador2) { ganhador = "empate"; } return ganhador; } } Jogadores jogador = new Jogadores(); jogador.Jogador1 = "papel"; jogador.Jogador2 = "papel"; Jokenpo jogada = new Jokenpo(); string jogar = jogada.Partida(jogador); Console.WriteLine(jogar); //empate ``` ## Exercicio 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 JogadorPar { public string Jogador1{get; set;} public string Jogador2{get; set;} public int Numero1{get; set;} public int Numero2{get; set;} } public class ImparPar { public string Partida(JogadorPar jogador) { int x = jogador.Numero1 + jogador.Numero2; string ip = ImparOuPar(x); string vencedor = ""; if(jogador.Jogador1 == ip) { vencedor = "Jogador1 venceu"; } else { vencedor = "Jogador2 venceu"; } if(jogador.Jogador1 == jogador.Jogador2) { vencedor = "!error"; } return vencedor; } public string ImparOuPar(int numero) { string x = ""; if(numero % 2 == 0) { x = "par"; } else { x = "impar"; } return x; } } JogadorPar ip = new JogadorPar(); ip.Jogador1 = "impar"; ip.Numero1 = 10; ip.Jogador2 = "par"; ip.Numero2 = 8; ImparPar jogada2 = new ImparPar(); string jogar2 = jogada2.Partida(ip); Console.WriteLine(jogar2); //Jogador2 venceu ```
{"metaMigratedAt":"2023-06-16T02:04:05.101Z","metaMigratedFrom":"Content","title":"Session Four: Programs also choose! | Fund. Lógica","breaks":true,"contributors":"[{\"id\":\"1ac86fe9-aad5-49b4-b562-fee077af4a56\",\"add\":20907,\"del\":2205}]"}
Expand menu