# Session Seven: Repetição FOREACH Cauê Freitas Barreto INFOB 05 [toc] ## Exercício 1 ````csharp= using System; using System.Collections.Generic; public class Retangulo { public double Base { get; set; } public double Altura { get; set; } } public class Notas { public double Nota1 { get; set; } public double Nota2 { get; set; } public double Nota3 { get; set; } } public class TreinoFocadoA { public int SomarImpares (List<int> numeros) { int soma = 0; foreach (int item in numeros) { if (item % 2 == 1) soma = soma + item; } return soma; } public List<int> CalcularCubos (List<int> numeros) { List<int> cubos = new List<int> (); foreach (int item in numeros) { cubos.Add(Convert.ToInt32(Math.Pow(item, 3))); } return cubos; } public List<int> CalcularRaiz (List<int> numeros) { List<int> raizes = new List<int> (); foreach (int item in numeros) { raizes.Add(Convert.ToInt32(Math.Sqrt(item))); } return raizes; } 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 soma = 0; foreach (int item in numeros) { soma += item; } double media = soma / numeros.Count; return media; } public List<double> CalcularMedias (List<Notas> notas) { List<double> media = new List<double>(); foreach (Notas item in notas) { media.Add( Math.Round((item.Nota1 + item.Nota3 + item.Nota3) / 3)); } return media; } private double AreaRetangulo (Retangulo retangulo) { return retangulo.Base * retangulo.Altura; } public List<double> AreaRetangulos (List<Retangulo> retangulos) { List<double> areas = new List<double>(); foreach (Retangulo areass in retangulos) { areas.Add(AreaRetangulo(areass)); } return areas; } } TreinoFocadoA TFA = new TreinoFocadoA(); List<int> num = new List<int>() {2, 4, 5, 3, 7, 10}; int a = TFA.SomarImpares(num); Console.WriteLine("Soma dos números ímpares na lista: " + a); List<int> b = TFA.CalcularCubos(num); Console.WriteLine("Cubo de cada número da lista: " + string.Join(" - ", b)); List<int> num2 = new List<int>() {49, 25, 81, 100, 36}; List<int> c = TFA.CalcularRaiz(num2); Console.WriteLine("Raiz de cada número da lista: " + string.Join(" - ", c)); int d = TFA.MaiorNumero(num2); Console.WriteLine("Maior número da lista: " + d); List<double> notas = new List<double> () { 5, 5, 5, 3 }; double e = TFA.Media(notas); Console.WriteLine("Média: " + e); List<Notas> notasalunos = new List<Notas> () { new Notas() { Nota1 = 5, Nota2 = 5, Nota3 = 5 }, new Notas() { Nota1 = 8, Nota2 = 10, Nota3 = 9 }, new Notas() { Nota1 = 4, Nota2 = 3, Nota3 = 2 } }; List<double> f = TFA.CalcularMedias(notasalunos); Console.WriteLine("Médias: " + string.Join(" - ", f)); List<Retangulo> retangulos = new List<Retangulo> { new Retangulo() {Base = 10, Altura = 5}, new Retangulo() {Base = 5, Altura = 4}, new Retangulo() {Base = 8, Altura = 3} }; List<double> g = TFA.AreaRetangulos(retangulos); Console.WriteLine("Área de cada retângulo da lista: " + string.Join(" - ", g)); // Soma dos números ímpares na lista: 15 // Cubo de cada número da lista: 8 - 64 - 125 - 27 - 343 - 1000 // Raiz de cada número da lista: 7 - 5 - 9 - 10 - 6 // Maior número da lista: 100 // Média: 4.5 // Médias: 5 - 9 - 3 // Área de cada retângulo da lista: 50 - 20 - 24 ```` ## 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/yyy")})"; } } public class TreinoFocadoB { public List<DateTime> Ultimodia (List<DateTime> datas) { List<DateTime> ultimosdias = new List<DateTime>(); foreach (DateTime data in datas) { ultimosdias.Add(data.AddMonths(1).AddDays(-data.Day)); } return ultimosdias; } public DateTime MaiorData (List<DateTime> datas) { DateTime maior = DateTime.MinValue; foreach (DateTime data in datas) { if (data > maior) maior = data; } return maior; } public List<Pessoa> Filtrar18 (List<Pessoa> pessoas) { List<Pessoa> filtradas = new List<Pessoa>(); foreach(Pessoa item in pessoas) { if (item.Nascimento < DateTime.Now.AddYears(-18)) filtradas.Add(item); } return filtradas; } public bool TodosMaiores18 (List<Pessoa> pessoas) { List<Pessoa> nivers = new List<Pessoa>(); bool todosMaiores = true; foreach (Pessoa item in pessoas) { if(item.Nascimento > DateTime.Now.AddYears(-18)) todosMaiores = false; } return todosMaiores; } } TreinoFocadoB TFB = new TreinoFocadoB(); List<DateTime> dias = new List<DateTime>() { new DateTime (1999,1,5), new DateTime (2003,11,6), new DateTime (2001,7,15) }; List<DateTime> a = TFB.Ultimodia(dias); Console.WriteLine("Último dia do mês de cada data na lista: " + string.Join(" - ", a)); DateTime b = TFB.MaiorData(dias); Console.WriteLine("Maior data entre as datas na lista: " + string.Join(" - ", b)); List<Pessoa> pessoas = new List<Pessoa> { new Pessoa() { Nome = "Maria Clara", Nascimento = new DateTime (2005,10,27) }, new Pessoa() { Nome = "Erivaldo", Nascimento = new DateTime (1973,09,19) }, new Pessoa() { Nome = "Selma", Nascimento = new DateTime (1971,11,17) } }; List<Pessoa> c = TFB.Filtrar18(pessoas); Console.WriteLine("Maiores de 18 anos na lista: " + string.Join(" - ", c)); bool d = TFB.TodosMaiores18(pessoas); Console.WriteLine("Todos na lista são maiores de idade?: " + string.Join(" - ", d)); // Último dia do mês de cada data na lista: 1/31/1999 12:00:00 AM - 11/30/2003 12:00:00 AM - 7/31/2001 12:00:00 AM // Maior data entre as datas na lista: 11/6/2003 12:00:00 AM // Maiores de 18 anos na lista: (Erivaldo, 19/09/1973 e Selma 17/11/1971) // Todos na lista são maiores de idade?: False ```` ## 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 class TreinoFocadoC { public string SepararLetras (string frase) { string fraseSeparada = string.Empty; foreach(char letra in frase) { fraseSeparada = fraseSeparada + letra + " - "; } return fraseSeparada; } public List<int> CodigoASCII (string frase) { List<int> codigo = new List<int>(); foreach(char letra in frase) { codigo.Add(Convert.ToInt32(letra)); } return codigo; } public bool TodasVogais(string frase) { bool todasVogais = true; foreach(char letra in frase) { if (letra != 'a' && letra != 'e' && letra != 'i' && letra != 'o' && letra != 'u' && letra != 'A' && letra != 'E' && letra != 'I' && letra != 'O' && letra != 'U') todasVogais = false; } return todasVogais; } public string Alternar (Pessoa pessoa) { string alternada = string.Empty; foreach(char item in pessoa.Nome) { if (Convert.ToInt16(item) % 2 == 0) alternada += item.ToString().ToUpper(); else alternada += item.ToString().ToLower(); } return alternada; } public string Inverter (string frase) { string fraseInvertida = string.Empty; foreach(char letra in frase) { fraseInvertida = letra + fraseInvertida; } return fraseInvertida; } public bool Palindromo (string frase) { frase = frase.ToLower(); return frase == Inverter(frase); } } TreinoFocadoC TFC = new TreinoFocadoC(); string a = TFC.SepararLetras("Maria Clara Linda!"); Console.WriteLine("Frase Separada por caracteres: " + a); List<int> b = TFC.CodigoASCII("Maria Clara"); Console.WriteLine("Frase em código ASCII: " + string.Join("-", b)); bool c = TFC.TodasVogais("Oie"); Console.WriteLine("Todas as letras da frase são vogais?: " + c); Pessoa p = new Pessoa () { Nome= "Maria Clara" }; string d = TFC.Alternar(p); Console.WriteLine("Frase alternada: " + d); string e = TFC.Inverter("Maria Clara Perfeita!"); Console.WriteLine("Frase invertida: " + e); Console.WriteLine("Maria Clara é palindromo?: " + TFC.Palindromo("Maria Clara")); Console.WriteLine("Pato é palindromo?: " + TFC.Palindromo("Pato")); Console.WriteLine("Reviver é palindromo?: " +TFC.Palindromo("Reviver")); // /Frase Separada por caracteres: L - e - t - í - c - i - a - - L - i - n - d - a - ! - // Frase em código ASCII: 76-101-116-237-99-105-97 // Todas as letras da frase são vogais?: True // Frase alternada: Maria Clara // Frase invertida: !asohlivaraM aicítel // Leticia é palindromo?: False // Arara é palindromo?: True // Reviver é palindromo?: True ````
{"metaMigratedAt":"2023-06-16T03:47:17.292Z","metaMigratedFrom":"Content","title":"Session Seven: Repetição FOREACH","breaks":true,"contributors":"[{\"id\":\"4197b53a-4db5-46d1-a826-1e82b9d77550\",\"add\":8713,\"del\":0}]"}
Expand menu