---
# System prepended metadata

title: 'Session Four: Programs also choose!'

---

# Session Four: Programs also choose!
**Autor**: Elias de Freitas Cavalcante
**Número**: 12
**Turma**: INFO C
[toc]

## Exercicios

### 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”

```charp=
public double AreaRetangulo( double a, double b)
{
	double area = a * b;
	return area;
}


public string RetangulosIguais(double a1, double b1, double a2, double b2)
{
    bool iguais = AreaRetangulo(a1, b1) == AreaRetangulo(a2, b2);
	
    string r;
	
	if (iguais == true)
	{
	  r = "Os retangulos são iguais";	
	}
	
	else
	{
		r = "Os retangulos são diferentes";
	}
	
	return r;
}
string resu = RetangulosIguais(11, 4, 11, 4);
// Os retangulos são iguais
```

### Ecercicio 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.”

```charp=
public double AreaRetangulo( double a, double b)
{
	double area = a * b;
	return area;
}


public string MaiorRetangulo(double a1, double b1, double a2, double b2)
{
	double area1 = AreaRetangulo(a1, b1);
	double area2 = AreaRetangulo(a2, b2);
    
	string n;
	
	if (area1 == area2)
	{
	    n = "Os retangulos são iguais";	
	}
	else if ( area1 > area2)
	{
		n = "O primeiro retangulos é o maior";
	}
	else if ( area2 > area1)
	{
		n = "O segundo retangulos é o maior";
	}
	
	 return n;
}
string resu = MaiorRetangulo(10, 9, 10, 8);
// O primeiro retangulos é o 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”

```charp=
public double AreaRetangulo( double a, double b)
{
	double area = a * b;
	return area;
}


public string MaiorRetangulo(double a1, double b1, double a2, double b2, double a3, double b3)
{
	double area1 = AreaRetangulo(a1, b1);
	double area2 = AreaRetangulo(a2, b2);
	double area3 = AreaRetangulo(a3, b3);
    
	string n;
	
	if (area1 == area2)
	{
	    n = "Os retangulos são iguais";	
	}
	else if ( area1 > area2)
	{
		n = "O primeiro retangulos é o maior";
	}
	else if ( area2 > area1)
	{
		n = "O segundo retangulos é o maior";
	}
	
	else if ( area3 > area1)
	{
		n = "O terceiro retangulos é o maior";
	}
	
	else if ( area3 > area2 && area1 > area2)
	{
	    n = "Existem 2 maiores retângulos";	
	}
	 
	 return n;
}
string resu = MaiorRetangulo(10, 9, 10, 8, 10, 10);
// Existem 2 maiores retângulos
```

### 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.

```charp=
public class Ingresso
{
 bool meia;
 double preco;
 string Filme;
}

public double Calcular(string Filme, double Preco, bool meia)
{
   	double total = 0;
	if (meia == true)
	{
		total = Preco / 2;
    }
	
	return total;
}

double resu = Calcular("Sete Homens e Um Destino", 20.0, true);
Console.WriteLine("Compra Concluida o valor é :" + resu);
// Compra Concluida o valor é : 10
```

### 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

```charp=
 public class Ingresso 
{ bool meia; 
 double preco; 
 string Filme; 
} 

public double Calcular(string Filme, double Preco, bool meia, int qtd) 
{   double total = 0; 
    if (meia == true) 
    { 
	    total = qtd * (Preco / 2); 
    }
    return total;
} 
 
 public double Calcular2(string Filme, double Preco, bool meia, int qtd) 
    string total2; 
     if (total2 == true) 
     { 
	   total2 = "Compra concluída! A compra de 2 ingressos para o filme Avengers é de R$ 40.0”;
     } 
     return total2 
} 

double resu = Calcular("Avengers", 20.0, true, 2);
double res = Calcular2("Avengers", 20.0, true, 2);


// Compra concluída! A compra de 2 ingressos para o filme Avengers é de R$ 40.0
```

### 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.

```charp=
public class Ingresso 
{ bool Meia; 
 double Preco; 
 string Filme; 
} 

public double Calcular(string Filme, double Preco, bool Meia, int qtd, double cupom) 
{   
	double total = 0; 
    if (Meia == true) 
    { 
	    total = qtd * (Preco / 2); 
    }
    else
	{
		total = qtd * Preco;
	}
	
	double Desconto = total * cupom / 100;
	total = total - Desconto;
	
	return total; 
} 
 

double resu = Calcular("Avengers", 20.0, true, 2, 10);
// 18
```

### 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.

```charp=
public class Ingresso 
{ bool Meia; 
 double Preco; 
 string Filme; 
} 

public double Calcular(string Filme, double Preco, bool Meia, int qtd, double cupom) 
{   
	double total = 0; 
    if (Meia == true) 
    { 
	    total = qtd * (Preco / 2); 
    }
    else
	{
		total = qtd * Preco;
	}
	
	double Desconto = total * cupom / 100;
	total = total - Desconto;
	
	return total; 
} 
 

double resu = Calcular("Indiana Jones", 100.0, true, 2, 10);
// 90
```

### 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.

** Você pode incluir outras funções compostas que não
estejam presentes no diagrama ao lado.

```charp=
public class Ingresso 
{ bool Meia; 
 double Preco; 
 string Filme; 
} 

public double Calcular(string Filme, double Preco, bool Meia, int qtd, double cupom) 
{   
	double total = 0; 
    if (Meia == true) 
    { 
	    total = qtd * (Preco / 2); 
    }
    else
	{
		total = qtd * Preco;
	}
	
	double Desconto = total * cupom / 100;
	total = total - Desconto;
	
	return total; 
} 
 

double resu = Calcular("Avengers", 50.0, true, 2, 10);
// 45
```

### 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.

** Você pode incluir outras funções compostas que não
estejam presentes no diagrama ao lado.

```charp=
public class Ingresso 
{ bool Meia; 
 double Preco; 
 string Filme; 
} 

public double Calcular(string Filme, string genero, double Preco, bool Meia, int qtd, double cupom) 
{   
	double total = 0; 
    
		if(genero.Contains("Nacional"))
		 {
		   total = 5.5;
		 }
	   else
		{
			if (Meia == true) 
		{ 
			total = qtd * (Preco / 2); 
		}
		else
		{
			total = qtd * Preco;
		}

		 double Desconto = total * cupom / 100;
		 total = total - Desconto;

		 if(DateTime.Now.DayOfWeek == DayOfWeek.Wednesday)
		 {
			 double descontoQuartaFeira = total * 0.5;
			 total = total - descontoQuartaFeira;
		 }
       } 
	
	 return total; 
} 
 

double resu = Calcular("Os Dez Mandamentos", "Nacional", 50.0, true, 2, 10);
```

### 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.
```charp=

```

### 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.
```charp=

```