# Session Three: Programs also choose | Fund. Lógica >[color=blue]**Autor:** Letícia Rodrigues da Silva **Turma:** IndoD **Número:** 25 [toc] ## 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= using System; public string RetangulosIguais(double b1, double a1, double b2, double a2) { double area1 = b1 * a1; double area2 = b2 * a2; string mensagem = ""; if (area1 == area2) { mensagem = "Os retangulos são iguais"; } else { mensagem = "Os retangulos são diferentes"; } return mensagem; } string x = RetangulosIguais(10, 2, 5, 4); Console.WriteLine(x); // Os retangulos são iguais ``` ## 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 double AreaRetangulo(double basee, double altura) { double area = basee * altura; return area; } public string RetangulosIguais(double b1, double a1, double b2, double a2) { double area1 = AreaRetangulo(b1, a1); double area2 = AreaRetangulo(b2, a2); string m = ""; if (area1 == area2) { m = "Os retângulos são iguais"; } if (area1 > area2) { m = "O primeiro retângulo é maior."; } if (area1 < area2) { m = "O segundo retângulo é maior."; } return m; string y = RetangulosIguais(12, 2, 15, 3); Console.WriteLine(y); // Os retangulos são iguais ``` ## 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.”** ```csharp= public class Retangulo { public double Altura { get; set;} public double Basee { get; set;} } public double AreaRetangulo(double basee, double altura) { double area = basee * altura; return area; } public string RetangulosIguais(Retangulo ret1, Retangulo ret2, Retangulo ret3) { double area1 = ret1.Basee * ret1.Altura; double area2 = ret2.Basee * ret2.Altura; double area3 = ret3.Basee * ret3.Altura; string mensagem = ""; if (area1 == area2 && area2 == area3) { mensagem = "Os retângulos são iguais"; } if (area1 > area2 && area1 > area3) { mensagem = "O primeiro retângulo é maior."; } else if (area1 < area2 && area2 > area3) { mensagem = "O segundo retângulo é maior."; } else if (area1 < area3 && area3 > area2) { mensagem = "O terceiro retângulo é maior."; } return mensagem; } Retangulo ret1 = new Retangulo(); ret1.Basee = 12; ret1.Altura = 2; Retangulo ret2 = new Retangulo(); ret2.Basee = 5; ret2.Altura = 8; Retangulo ret3 = new Retangulo(); ret3.Basee = 5; ret3.Altura = 12; string a = RetangulosIguais(ret1, ret2, ret3); Console.WriteLine(a); // O terceiro retângulo é maior. ``` ## 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 Ingresso { public bool Meia {get; set;} public double Preco {get; set;} public string Filme {get; set;} } public class Cinemark { public double CalcularTotal1(Ingresso ingresso) { double total = 0; if (ingresso.Meia == true) { total = ingresso.Preco / 2; } else if (ingresso.Meia == false) { total = ingresso.Preco; } return total; } public string CalcularTotal2(Ingresso ingresso) { double total = CalcularTotal1(ingresso); string filme = ingresso.Filme; string mensagem = $"Compra concluída! O ingresso para o filme {ingresso.Filme} é de R$ {total}"; return mensagem; } public double CalcularTotal3(Ingresso ing1, Ingresso ing2) { double total1 = 0; if (ing1.Meia == true && ing2.Meia == true) { total1 = (ing1.Preco / 2) + (ing2.Preco / 2); } else if (ing1.Meia == false && ing2.Meia == false) { total1 = ing1.Preco + ing2.Preco; } else if (ing1.Meia == true && ing2.Meia == false) { total1 = (ing1.Preco / 2) + ing2.Preco; } else { total1 = ing1.Preco + (ing2.Preco / 2); } return total1; } } Cinemark c = new Cinemark(); Ingresso ing1 = new Ingresso(); ing1.Preco = 24; ing1.Meia = true; ing1.Filme = "Godzilla vs Kong"; Ingresso ing2 = new Ingresso(); ing2.Preco = 24; ing2.Meia = false; ing2.Filme = "Godzilla vs Kong"; string t1 = c.CalcularTotal2(ing2); Console.WriteLine(t1); double t = c.CalcularTotal3(ing1, ing2); Console.WriteLine("O total de dois ingressos é R$" + t); // Compra concluída! O ingresso para o filme Godzilla vs Kong é de R$ 24 // O total de dois ingressos é R$36 ``` ## 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”** ```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 class Cinemark { public double CalcularTotal1(Ingressos ingressos) { double total = 0; if (ingressos.Meia == true) { total = ingressos.QtdIngressos * ingressos.Preco / 2; } else if (ingressos.Meia == false) { total = ingressos.QtdIngressos * ingressos.Preco; } return total; } public string CalcularTotal2 (Ingressos ingressos) { double total1 = CalcularTotal1(ingressos); string mensagem = ""; if (ingressos.Meia == true) { mensagem = $"Compra concluída! A compra de {ingressos.QtdIngressos} ingressos meia para o filme {ingressos.Filme} é de R$ {total1}"; } else if (ingressos.Meia == false) { mensagem = $"Compra concluída! A compra de {ingressos.QtdIngressos} ingressos inteira para o filme {ingressos.Filme} é de R$ {total1}"; } return mensagem; } } Cinemark c = new Cinemark(); Ingressos ingressos1 = new Ingressos(); ingressos1.QtdIngressos = 2; ingressos1.Meia = false; ingressos1.Filme = "Mulher Maravilha"; ingressos1.Preco = 24; string t = c.CalcularTotal2(ingressos1); Console.WriteLine(t); // Compra concluída! A compra de 2 ingressos inteira para o filme Mulher Maravilha é de R$ 48 ``` ## 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 Ingressos { public int QtdIngressos {get; set;} public bool Meia {get; set;} public double Preco {get; set;} public string Filme {get; set;} } public class Cinemark { public double CalcularTotal (Ingressos ingressos, double cupom) { double total; if (ingressos.Meia == true) { total = ingressos.Preco / 2 * ingressos.QtdIngressos; } else { total = ingressos.Preco * ingressos.QtdIngressos; } return total; } private double AplicarCupom (double total, double cupom) { double c = cupom / 100; return c; } } Ingressos i = new Ingressos(); i.Filme = "Os incríveis"; i.Meia = false; i.Preco = 24; i.QtdIngressos = 2; Cinemark c = new Cinemark(); double calcular = c.CalcularTotal(i, 15); Console.WriteLine(calcular); // 48 ``` ## Exercício 7 **Crie a(s) classe(s) representando a abstração defunçã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 Ingressos { public int QtdIngressos {get; set;} public bool Meia {get; set;} public double Preco {get; set;} public string Filme {get; set;} } public class Cinemark { public double CalcularTotal (Ingressos ingressos, double cupom) { double total; if (ingressos.Meia == true) { total = ingressos.Preco / 2 * ingressos.QtdIngressos; } else { total = ingressos.Preco * ingressos.QtdIngressos; } double a; if ( total > 100) { a = (cupom - cupom) + 10; a = AplicarCupom(total, a); } else { a = total; } return a; } private double AplicarCupom (double total, double cupom) { double c = cupom / 100; return c; } } Ingressos i = new Ingressos(); i.Meia = false; i.Filme = "Os incríveis"; i.Preco = 24; i.QtdIngressos = 4; Cinemark c = new Cinemark(); double t = c.CalcularTotal(i, 15); Console.WriteLine(t); // 96 ``` ## 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= ublic class Ingressos { public int QtdIngressos {get; set;} public bool Meia {get; set;} public double Preco {get; set;} public string Filme {get; set;} } public class Cinemark { public double CalcularTotal (Ingressos ingressos, double cupom) { double total; if (ingressos.Meia == true) { total = ingressos.Preco / 2 * ingressos.QtdIngressos; } else { total = ingressos.Preco * ingressos.QtdIngressos; } double a; DateTime dt = new DateTime(2021, 04, 06); if (dt.DayOfWeek == DayOfWeek.Wednesday) { a = cupom + (50 / 100); a = AplicarCupom(total, a); } else if (dt.DayOfWeek == DayOfWeek.Wednesday && ingressos.Preco > 100) { a = cupom + (10 / 100); } else { a = total; } return a; } private double AplicarCupom (double total, double cupom) { double c = cupom / 100; return c; } } Ingressos i = new Ingressos(); i.Preco = 24; i.QtdIngressos = 6; i.Meia = false; Cinemark c = new Cinemark(); double calcular = c.CalcularTotal(i, 15); Console.WriteLine(calcular); // 144 ``` ## 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= public class Ingressos { public int QtdIngressos {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 CalcularTotal (Ingressos ingressos, double cupom) { double total; if (ingressos.Genero == "Nacional") { total = ingressos.Preco = 5; total = ingressos.Preco * ingressos.QtdIngressos; return total; } else { total = ingressos.Preco; } double t = ingressos.Meia == true ? ingressos.Preco / 2 : ingressos.Preco; DateTime dt = DateTime.Now; double c = t * ingressos.QtdIngressos; double d = AplicarCupom(c, cupom); double g; if (dt.DayOfWeek == DayOfWeek.Wednesday) { g = cupom + 50; g = AplicarCupom(d, g); } else { g = d; } double h; if (g > 100) { h = cupom + 10; h = AplicarCupom(g, h); } else { h = g; } return h; } public double AplicarCupom (double total, double cupom) { double e = total * cupom / 100; double f = total - e; return f; } } Ingressos i = new Ingressos(); i.Preco = 24; i.QtdIngressos = 2; i.Meia = true; Cinemark c = new Cinemark(); double calcular = c.CalcularTotal(i, 15); Console.WriteLine(calcular); // 20,4 ``` ## 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 Partida { public int Jogador { get; set; } public string Jogada { get; set; } } public string Jokenpo(Partida j1, Partida j2) { int soma = j1.Jogador + j2.Jogador; string mensagem = " "; if (j1.Jogada == "Papel" && j2.Jogada == "Pedra" || j1.Jogada == "Tesoura" && j2.Jogada == "Papel" || j1.Jogada == "Pedra" && j2.Jogada == "Tesoura") { mensagem = "O jogador 1 ganhou"; } else if (j2.Jogada == "Papel" && j1.Jogada == "Pedra" || j2.Jogada == "Tesoura" && j1.Jogada == "Papel" || j2.Jogada == "Pedra" && j1.Jogada == "Tesoura") { mensagem = "O jogador 2 ganhou"; } else { mensagem = "Empate"; } return mensagem; } Partida p1 = new Partida(); p1.Jogada = "Papel"; p1.Jogador = 1; Partida p2 = new Partida(); p2.Jogada = "Tesoura"; p2.Jogador = 2; string final = Jokenpo(p1, p2); Console.WriteLine(final); // O jogador 2 ganhou ``` ## 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 Partida { public int Jogador { get; set; } public string Jogada { get; set; } public int Dedos { get; set; } } public string Jokenpo(Partida j1, Partida j2) { int soma = j1.Dedos + j2.Dedos; string mensagem = " "; if (soma % 2 == 0 && j1.Jogada == "Par") { mensagem = "Deu par, o jogador 1 ganhou"; } else { mensagem = "Deu ímpar, o jogador 2 ganhou"; } return mensagem; } Partida p1 = new Partida(); p1.Jogada = "Par"; p1.Jogador = 1; p1.Dedos = 4; Partida p2 = new Partida(); p2.Jogada = "Ímpar"; p2.Jogador = 2; p2.Dedos = 8; string final = Jokenpo(p1, p2); Console.WriteLine(final); // Deu par, o jogador 1 ganhou ```
{"metaMigratedAt":"2023-06-16T00:33:34.293Z","metaMigratedFrom":"Content","title":"Session Three: Programs also choose | Fund. Lógica","breaks":true,"contributors":"[{\"id\":\"f2f98191-1ff5-4afd-8e66-66ff77c4c5b1\",\"add\":19475,\"del\":1709}]"}
Expand menu