# Session Seven: Repetição FOREACH
>[color=purple]**Autor:** Letícia Rodrigues da Silva
**Turma:** IndoD
**Número:** 25
[toc]
## Exercício 1
```csharp=
using System;
using System.Collections.Generic;
public class Retangulo
{
public double Basee {get; set;}
public double Altura {get; set;}
public override string ToString()
{
return "(" + Basee + ", " + Altura + ")";
}
}
public class Notas
{
public double Nota1 {get; set;}
public double Nota2 {get; set;}
public double Nota3 {get; set;}
}
public class TreinoFocadoA
{
public int SomaImpares(List<int> numeros)
{
int soma = 0;
foreach(int item in numeros)
{
if(item % 2 >= 1)
{
soma += item;
}
}
return soma;
}
public List<int> CalcularCubo(List<int> numeros)
{
List<int> cubo = new List<int>();
foreach(int item in numeros)
{
double c = (Math.Pow(item, 3));
int calcularc = Convert.ToInt32(c);
}
return cubo;
}
public List<double> CalcularRaiz(List<int> numeros)
{
List<double> raiz = new List<double>();
foreach(int item in numeros)
{
double r = Math.Sqrt(item);
raiz.Add(r);
}
return raiz;
}
public int MaiorNumero(List<int> numeros)
{
int maior = 0;
foreach(int item in numeros)
{
if(item > maior)
{
maior = item;
}
}
return maior;
}
public double Media(List<double> numeros)
{
double media = 0;
foreach(int item in numeros)
{
media += item;
}
double mediaN = media / numeros.Count;
return mediaN;
}
public List<double> CalcularMedia(List<Notas> notasAluno)
{
List<double> media = new List<double>();
foreach(Notas item in notasAluno)
{
media.Add(item.Nota1 + item.Nota2 + item.Nota3 / 3);
}
return media;
}
private double AreaRetangulo(Retangulo retangulo)
{
double area = retangulo.Altura * retangulo.Basee;
return area;
}
public List<double> AreaRetangulos(List<Retangulo> retangulos)
{
List<double> areaR = new List<double>();
foreach (Retangulo item in retangulos)
{
double areas = AreaRetangulo(item);
areaR.Add(areas);
}
return areaR;
}
}
TreinoFocadoA treinoA = new TreinoFocadoA();
List<int> totals = new List<int>() {2, 3, 5, 6, 7};
int totalsoma = treinoA.SomaImpares(totals);
Console.WriteLine(totalsoma);
List<int> cubos = new List<int>() {2, 4, 7};
List<double> numeroscubos = treinoA.CalcularCubo(cubos);
Console.WriteLine(string.Join(", ", numeroscubos));
List<int> raizz = new List<int>() {4, 9, 144};
List<double> calcularaiz = treinoA.CalcularRaiz(raizz);
Console.WriteLine(string.Join(", ", calcularaiz));
List<int> maiorN = new List<int>() {14, 18, 10};
int numeromaior = treinoA.MaiorNumero(maiorN);
Console.WriteLine(numeromaior);
List<double> mediaaluno = new List<double>() {7, 5, 8};
double notas = treinoA.Media(mediaaluno);
Console.WriteLine(notas);
List<Notas> n = new List<Notas>()
{
new Notas() {Nota1 = 7},
new Notas() {Nota2 = 5},
new Notas() {Nota3 = 8},
};
List<double> media2 = treinoA.CalcularMedia(n);
Console.WriteLine(media2);
List<Retangulo> ret = new List<Retangulo>()
{
new Retangulo() {Basee = 6, Altura = 10},
new Retangulo() {Basee = 14, Altura = 4},
new Retangulo() {Basee = 20, Altura = 4}
};
List<double> ret1 = treinoA.AreaRetangulos(ret);
Console.WriteLine(string.Join(", ", ret1));
```
## Exercício 2
```csharp=
using System;
using System.Collections.Generic;
public class Pessoa
{
public string Nome {get; set;}
public DateTime Nascimento {get; set;}
public override string ToString()
{
return "(" + Nome + ", " + Nascimento.ToString("dd/mm/yyyy") + ")";
}
}
public class TreinoFocadoB
{
public List<DateTime> UltimoDia(List<DateTime> dias)
{
List<DateTime> ultimo = new List<DateTime>();
foreach (DateTime item in dias)
{
DateTime ult = item.AddMonths(1).AddDays(-item.Day);
ultimo.Add(ult);
}
return ultimo;
}
public DateTime MaiorData(List<DateTime> dias)
{
DateTime maior = DateTime.MinValue;
foreach (DateTime item in dias)
{
if(item > maior)
{
maior = item;
}
}
return maior;
}
public List<Pessoa> FiltrarMaiores(List<Pessoa> pessoas)
{
List<Pessoa> idade = new List<Pessoa>();
foreach (Pessoa item in pessoas)
{
if(item.Nascimento <= DateTime.Now.AddYears(-18))
{
idade.Add(item);
}
}
return idade;
}
public bool TodosMaiores18(List<Pessoa> pessoas)
{
bool maiores = false;
foreach (Pessoa item in pessoas)
{
if(item.Nascimento <= DateTime.Now.AddYears(-18))
{
maiores = true;
}
else
{
maiores = false;
}
}
return maiores;
}
}
TreinoFocadoB treinoB = new TreinoFocadoB();
List<DateTime> ultdia = new List<DateTime>()
{
new DateTime(2021, 08, 20),
new DateTime(2021, 04, 01),
};
List<DateTime> ultimoD = treinoB.UltimoDia(ultdia);
Console.WriteLine(string.Join(", ", ultimoD));
List<DateTime> maiordata = new List<DateTime>()
{
new DateTime(2021, 08, 31),
new DateTime(2021, 04, 01),
new DateTime(2021, 12, 01),
};
DateTime maiorD = treinoB.MaiorData(maiordata);
Console.WriteLine(string.Join(", ", maiorD));
List<Pessoa> maioridade = new List<Pessoa>()
{
new Pessoa() {Nome = "Letícia", Nascimento = new DateTime(2003, 08, 31)},
new Pessoa() {Nome = "Fulano", Nascimento = new DateTime(2000, 12, 20)},
new Pessoa() {Nome = "Beltrano", Nascimento = new DateTime(1999, 07, 25)},
new Pessoa() {Nome = "Ciclano", Nascimento = new DateTime(2004, 11, 12)}
};
List<Pessoa> d = treinoB.FiltrarMaiores(maioridade);
Console.WriteLine(string.Join(", ", d));
List<Pessoa> todosmaiores = new List<Pessoa>()
{
new Pessoa() {Nome = "Letícia", Nascimento = new DateTime(2003, 08, 31)},
new Pessoa() {Nome = "Fulano", Nascimento = new DateTime(2000, 12, 20)},
new Pessoa() {Nome = "Beltrano", Nascimento = new DateTime(1999, 07, 25)},
new Pessoa() {Nome = "Ciclano", Nascimento = new DateTime(2004, 11, 12)}
};
bool m = treinoB.TodosMaiores18(todosmaiores);
Console.WriteLine(string.Join(", ", m));
```
## Exercício 3
```csharp=
using System;
using System.Collections.Generic;
public class Pessoa
{
public string Nome {get; set;}
public DateTime Nascimento {get; set;}
public string Cidade {get; set;}
public override string ToString()
{
return "(" + Nome + ", " + Nascimento.ToString("dd/mm/yyyy") + Cidade + ")";
}
}
public class TreinoFocadoC
{
public List<string> SepararLetras(string frase)
{
List<string> separar = new List<string>();
foreach (char item in frase)
{
frase = item + "-";
separar.Add(frase);
}
return separar;
}
public List<int> CodigoASCII(string frase)
{
List<int> codigo = new List<int>();
foreach (char item in frase)
{
codigo.Add((int) item);
}
return codigo;
}
public bool TodasVogais(string frase)
{
bool vogais = false;
foreach (char item in frase)
{
if(frase.Contains("A") && frase.Contains("a") && frase.Contains("E") && frase.Contains("e") && frase.Contains("I") && frase.Contains("i") && frase.Contains("O") && frase.Contains("o") && frase.Contains("U") && frase.Contains("u"))
{
vogais = true;
}
else
{
vogais = false;
}
}
return vogais;
}
public string Alternar(Pessoa pessoa)
{
char carac = ' ';
string alternar = string.Empty;
foreach (char item in pessoa.Nome)
{
if(carac == ' ')
{
alternar += item.ToString().ToUpper();
}
else
{
alternar += item.ToString().ToLower();
carac = item;
}
}
return alternar;
}
public string Inverter(string frase)
{
string inverter = string.Empty;
foreach (char item in frase)
{
inverter = item + inverter;
}
return inverter;
}
public bool Palindromo(string frase)
{
bool pali = false;
string inv = string.Empty;
foreach (char item in frase)
{
inv = item + inv;
}
if(inv == frase)
{
pali = true;
}
return pali;
}
}
TreinoFocadoC treinoC = new TreinoFocadoC();
List<string> separarletras = treinoC.SepararLetras("ovelha fofinha");
Console.WriteLine(string.Join("", separarletras));
List<int> ascii = treinoC.CodigoASCII("Cavalo");
Console.WriteLine(string.Join(", ", ascii));
bool todasvogais = treinoC.TodasVogais("oie");
Console.WriteLine(todasvogais);
Pessoa p1 = new Pessoa();
p1.Nome = "Letícia";
p1.Nascimento = new DateTime(2003, 08, 31);
p1.Cidade = "São Paulo";
string a = treinoC.Alternar(p1);
Console.WriteLine(a);
string invertido = treinoC.Inverter("Letícia");
Console.WriteLine(invertido);
bool palindromo = treinoC.Palindromo("osso");
Console.WriteLine(palindromo);
```