---
# System prepended metadata

title: Super Bônus  | Csharp

---

# Super Bônus  | Csharp
autor: Guilherme Oliveira Verissimo
turma: InfoC
número: 21

[toc]


## Nível 1


### Exercício 1
Faça uma função ÚNICA que a partir da base e altura, calcule a área do triângulo.

```csharp=
public double AreaDoTriangulo (double Base, double Altura)
{
	return Base * Altura / 2;
}

double Teste = AreaDoTriangulo (10, 20);
Teste
// 100
```

### Exercício 2
Faça uma função ÚNICA que a partir do lado, calcule o perímetro do octógono.

```csharp=
public double PerimetroDoOctogono (double Lado)
{
	return Lado * 8;
}

double Teste = PerimetroDoOctogono (10);
Teste
// 80
```

### Exercício 3
Faça uma função ÚNICA que a partir da base maior, base menor e altura, calcule a área do trapézio.

```csharp=
public double AreaDoTrapezio (double BaseA, double BaseB, double Altura)
{
	return (BaseA + BaseB) * Altura / 2;
}

double Teste = AreaDoTrapezio (10, 20, 10);
Teste
// 150
```

### Exercício 4
Faça uma função ÚNICA que a partir da diagonal maior e menor, calcule a área do losango.

```csharp=
public double AreaDoLosango (double DiagonalMaior, double DiagonalMenor)
{
	return DiagonalMaior * DiagonalMenor / 2;
}

double Teste = AreaDoLosango (5, 10);
Teste
// 25
```

### Exercício 5
Faça uma função ÚNICA que a partir da base e altura, calcule a área do paralelogramo.

```csharp=
public double AreaDoParalelogramo (double Base, double Altura)
{
	return Base * Altura;
}

double Teste = AreaDoParalelogramo (10, 20);
Teste
// 200
```

## Nível 2


### Exercício 1
Faça uma função ÚNICA que a partir do cateto oposto e adjacente, calcule a hipotenusa. Arredonde a resposta para uma casa decimal.

```csharp=
using System;
					
public double Hipotenusa (double CatetoO, double CatetoA)
{
	return Math.Round (Math.Sqrt(Math.Pow(CatetoA,2) - Math.Pow(CatetoO,2)),1);
}

double Teste = Hipotenusa (10, 20);
Teste
// 17.3
```

### Exercício 2
Faça uma função ÚNICA que a partir de um peso e altura de uma pessoa, calcule o IMC. Arredonde a resposta para duas casas decimais.

```csharp=
using System;
					
public double IMC (double Peso, double Altura)
{
	return Math.Round(Peso / (Altura * Altura),2);
}

double Teste = IMC (60, 1.65);
Teste
// 22.04
```

### Exercício 4
Faça uma função ÚNICA que a partir da massa e velocidade, calcule a
energia cinética. Obrigatório o uso da função Math.Pow.

```csharp=
using System;
					
public double EnergiaCinetica (double Massa, double Velocidade)
{
	return Massa * Math.Pow(Velocidade, 2) / 2; 
}

double Teste = EnergiaCinetica (8, 9);
Teste
// 324
```

### Exercício 5


```csharp=
using System;

public double VolumeDoCilindro (double Altura, double Raio)
{
	return Altura * 3.14 * (Math.Pow(Raio,2));
}

double Teste = VolumeDoCilindro (10, 12);
Teste
// 4521.6
```

## Nível 3

### Exercício 1
Faça uma função ÚNICA que a partir de um nome completo de uma
pessoa, extraia o primeiro nome.

```csharp=
public string PrimeiroNome (string Nome)
{
	return Nome.Substring(0,Nome.IndexOf(" "));
}

string Teste = PrimeiroNome ("Guilherme Oliveira Verissimo");
Teste
// Guilherme
```

### Exercício 2
Faça uma função ÚNICA que a partir de um nome completo de uma
pessoa, extraia o último nome.

```csharp=
public string UltimoNome (string Nome)
{
	int A = Nome.LastIndexOf(" ");
	int B = Nome.Length;
	return Nome.Substring(A,B - A);
}

string Teste = UltimoNome ("Guilherme Oliveira Verissimo");
Teste
// Verissimo
```

### Exercício 3
Faça uma função ÚNICA que a partir de um e-mail de uma pessoa, extraia o domínio do e-mail.

```csharp=
public string DominioDoEmail (string Email)
{	 
	int E = Email.IndexOf("@");
	int D = Email.Length;
	return Email.Substring(E,D - E);
}

string Teste = DominioDoEmail ("ra48430534814@acaonsfatima.org.br");
Teste
// @acaonsfatima.org.br
```

### Exercício 5
Faça uma função ÚNICA que a partir de um telefone com máscara e DDD incluído ex. (11) 94343-0808, retorne apenas os números do telefone ex. 11943430808.

```csharp=
public string ApenasOsNumeros (string Numero)
{
    return Numero.Substring(1,2) + Numero.Substring(5,5) + Numero.Substring(11,4);
}

string Teste = ApenasOsNumeros ("(11) 94343-0808");
Teste
// 11943430808
```

## Nível 4

### Exercício 1
Faça uma função ÚNICA que a partir de uma data, descubra o último dia do mês a partir dessa data.

```csharp=
using System;

public DateTime UltimoDiaDoMes (DateTime Data)
{
    return new DateTime(Data.Year, Data.Month, DateTime.DaysInMonth(Data.Year, Data.Month));
}

DateTime DataTeste = new DateTime(2017,12,10);
DateTime Teste = UltimoDiaDoMes(DataTeste);
Teste
// 12/31/2017
```

### Exercício 2
Faça uma função ÚNICA que a partir de uma data, descubra o primeiro dia do próximo mês a partir dessa data.

```csharp=
using System;

public DateTime PrimeiroDiaDoMes (DateTime Data)
{
	DateTime UltimoDia = new DateTime(Data.Year, Data.Month, DateTime.DaysInMonth(Data.Year, Data.Month));
	return UltimoDia.AddDays(1);
}

DateTime DataTeste = new DateTime(2017,12,10);
DateTime Teste = PrimeiroDiaDoMes(DataTeste);
Teste
// 1/1/2018
```

### Exercício 3
Faça uma função ÚNICA que a partir de uma data, retorne
verdadeiro/falso se a data pertence ao segundo trimestre do ano.

```csharp=
using System;

public bool SegundoTrimestre (DateTime Data)
{
     int ExtrairMes = Data.Month;
     return ExtrairMes >= 4 && ExtrairMes <= 6;
}

DateTime DataTeste = new DateTime(2017,12,10);
bool Teste = SegundoTrimestre(DataTeste);
Teste
// False
```

### Exercício 5
Faça uma função ÚNICA que a partir de uma data, retorne
verdadeiro/falso se a data pertence a primeira quinzena do mês.

```csharp=
using System;

public bool PrimeiraQuinzena (DateTime Data)
{
    return Data.Day <= 15;
}

DateTime DataTeste = new DateTime(2017,12,15);
bool Teste = PrimeiraQuinzena(DataTeste);
Teste
// True
```

## Nível 5

### Exercício 2
Faça uma função COMPOSTA que encontre um termo de uma PA (Progressão Aritmética), a partir do primeiro termo, razão e posição do termo que deseja encontrar.

```csharp=
public double PrimeiroMaisRazao (double N, double R) 
{
    return (N - 1) * R;
}

public double TermoGeralDaPA (double A, double N, double R)
{
    double B = PrimeiroMaisRazao(N, R);
	return A + B; 
}

double Teste = TermoGeralDaPA (10, 12, 15);
Teste
// 175
```

### Exercício 3


```csharp=
using System;

public double PrimeiroMenosUm (double R, double N)
{
   return Math.Pow(R, (N-1));
}

public double TermoGeralDaPG (double A, double R, double N)
{
    double B = PrimeiroMenosUm (R, N);
    return A * B;
}

double Teste = TermoGeralDaPG (10, 12, 15);
Teste
// 1.28391846454886E+16
```

### Exercício 4
Faça uma função COMPOSTA que a partir de dois nomes completos,
retorne verdadeiro/falso se as pessoas são da mesma família,
comparando o último nome das duas pessoas.

```csharp=
public int NomeDaPrimeiraPessoa (string Nome)
{
    int q = Nome.Length;
    int x = Nome.LastIndexOf(" ");
    return q - x;
}

public int NomeDaSegundaPessoa (string Nome)
{
    int q = Nome.Length;
    int x = Nome.LastIndexOf(" ");
    return q - x;
}

public bool PertencemAMesmaFamilia (string NomeDaPrimeira, string NomeDaSegunda)
{
	int Nome1 = NomeDaPrimeiraPessoa (NomeDaPrimeira);
	int Nome2 = NomeDaSegundaPessoa (NomeDaSegunda);
	int q = NomeDaPrimeira.Length;
	int t = NomeDaSegunda.Length;
	int s = NomeDaPrimeira.LastIndexOf(" ");
	int k = NomeDaSegunda.LastIndexOf(" ");
	string Primeira = NomeDaPrimeira.Substring(s,Nome1);
    string Segunda = NomeDaSegunda.Substring(k,Nome2);
	return Primeira == Segunda;
}

bool Teste = PertencemAMesmaFamilia ("João Pedro Ferreira", "José Pedro Ferreira");
Teste
// True
```

### Exercício 5
Faça uma função COMPOSTA que a partir de duas datas de nascimento, retorne verdadeiro/false se as duas pessoas forem do signo de libra.

```csharp=
using System;
					
public bool PertenceAoSigno (DateTime Data)
{
	DateTime Setembro = new DateTime(Data.Year,09,23);
	DateTime Outubro = new DateTime(Data.Year,10,22);
	return Data >= Setembro && Outubro >= Data;
}

public bool mesmosigno (DateTime DataPrimeiraPessoa, DateTime DataSegundaPessoa)
{
	bool PrimeiraPessoa = PertenceAoSigno (DataPrimeiraPessoa);
	bool SegundaPessoa = PertenceAoSigno (DataSegundaPessoa);
	return PrimeiraPessoa && SegundaPessoa;
}

DateTime DataPrimeiraPessoa = new DateTime(2005,10,12);
DateTime DataSegundaPessoa = new DateTime(2017,10,21);

bool Teste = mesmosigno (DataPrimeiraPessoa, DataSegundaPessoa);
Teste
// True
```