# 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));
```