# 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}]"}