# Session seven | Fund.Logica | 2°bimestre **Nome** Kevin Ribeiro de Andrade **Número** 27 **Turma** INFO A ## Exercício 1 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: ▪ Realize a lógica para implementar uma função que recebendo uma lista de números inteiros, some apenas os números ímpares. Ex. ({2, 3, 4, 5}) => 8 ▪ Realize a lógica para implementar uma função que recebendo uma lista de números inteiros, calcule a potência ao cubo de cada item. Ex. ({2, 3, 4}) => {8, 27, 64} ▪ Realize a lógica para implementar uma função que recebendo uma lista de números decimais, calcule a raiz quadrada de cada item. Ex. ({25, 16, 9}) => {5, 4, 3} ▪ Realize a lógica para implementar uma função que recebendo uma lista de números inteiros, retorne o maior número. Ex. ({25, 16, 39}) => 39 ▪ Realize a lógica para implementar uma função que recebendo uma lista de números decimais, retorne a média dos números. Ex. ({6,7,5,6}) => 6 ▪ Realize a lógica para implementar uma função que calcule a média a partir de uma lista de notas. Ex. ({5,5,5}) => 5, ({6,8}) => 7, ({4,6,8, 10}) => 7 ▪ Realize a lógica para implementar uma função que recebendo uma lista de Retângulos, retorne uma lista com a área de cada Retângulo. Ex. ({ [2,4], [4,4], [5,4] }) => {8, 16, 20} ```csharp= using System; using System.Collections.Generic; public class Retangulo { public double Altura {get; set;} public double Base {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 SomandoImpares (List<int> valor) { int Soma = 0; foreach(int cont in valor) { //int somando = 0; if (cont % 2 != 0) { Soma = Soma += cont; } } return Soma; } public List<int> CalcularCubo (List<int> Number) { List<int> Numero = new List<int>(); foreach(int num in Number) { Numero.Add(Convert.ToInt32(Math.Pow(num, 3))); } return Numero; } public List<double> CalcularRaiz (List<double> Number) { List<double> Raiz = new List<double>(); foreach (double num in Number) { Raiz.Add(Math.Round(Math.Sqrt(num), 2)); } return Raiz; } public int MaiorNumero (List<int> Number) { int maior = 0; foreach (int num in Number) { if (num > maior) maior = num; } return maior; } public double Media (List<double> Valor) { double media = 0; foreach (double num in Valor) { media += num; } return media / Valor.Count; } public List<double> CalcularMedia (List<Notas> Nota) { List<double> Media = new List<double>(); foreach (Notas num in Nota) { Media.Add((num.Nota1 + num.Nota2 + num.Nota3) / 3); } return Media; } private double AreaRetangulo (Retangulo ret) { return ret.Base * ret.Altura; } public List<double> CalcularRetangulo (List<Retangulo> ret) { List<double> resul = new List<double>(); foreach (Retangulo retang in ret) { resul.Add(AreaRetangulo(retang)); } return resul; } } TreinoFocadoA TFA = new TreinoFocadoA(); List<int> ValorFuncao1 = new List<int>() {3,3, 4}; //List<int> SomarImpar = int x = TFA.SomandoImpares(ValorFuncao1); //Console.WriteLine(string.Join("|", SomarImpar)); Console.WriteLine(x); List<int> ValoresPraElevarCubo = new List<int>(); ValoresPraElevarCubo.Add(2); List<int> Cubo = TFA.CalcularCubo(ValoresPraElevarCubo); Console.WriteLine(string.Join("|", Cubo)); List<double> Valor2 = new List<double>(){6, 25, 7}; List<double> Raiz = TFA.CalcularRaiz(Valor2); Console.WriteLine(string.Join("|", Raiz)); List<int> Valores2 = new List<int>() {67,89,3}; int MaiorNum = TFA.MaiorNumero(Valores2); Console.WriteLine(MaiorNum); List<Notas> Nt = new List<Notas> { new Notas {Nota1 = 2, Nota2 = 2, Nota3 = 2}, new Notas {Nota1 = 3, Nota2 = 3, Nota3 = 3} }; List<double> Medias = TFA.CalcularMedia(Nt); Console.WriteLine(string.Join("|", Medias)); List<Retangulo> ret = new List<Retangulo>() { new Retangulo {Base = 2, Altura = 2}, new Retangulo {Base = 3, Altura = 3} }; List<double> CalculandoRetangulo = TFA.CalcularRetangulo(ret); Console.WriteLine(string.Join("|", CalculandoRetangulo)); ``` ## Exercício 2 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: ▪ Realize a lógica para implementar uma função que recebendo uma lista de datas, gere uma lista com o último dia do mês de cada item da lista recebida. Ex. ({ [14/04/2021], [15/05/2021] }) => { [30/04/2021], [31/05/2021] } ▪ Realize a lógica para implementar uma função que recebendo uma lista de datas, retorne qual é a maior data entre elas. Ex. ({ [14/06/2021], [16/06/2021], [10/06/2021] }) => [16/06/2021] ▪ Realize a lógica para implementar uma função que retorne uma lista com as pessoas maiores de 18 anos a partir de uma lista de pessoas. ▪ Realize a lógica para implementar uma função que retorne se todos de uma lista de pessoas são maiores de 18 anos. ```csharp= using System; using System.Collections.Generic; public class Pessoa { public string Nome {get; set;} public DateTime Nasc {get; set;} public override string ToString() { return $"{Nome}, {Nasc}"; } } public class TreinoFocadoB { public List<DateTime> LastDayInMonth (List<DateTime> Data) { List<DateTime> UltimoDia = new List<DateTime>(); foreach (DateTime dt in Data) { UltimoDia.Add(new DateTime(dt.Year, dt.Month, DateTime.DaysInMonth(dt.Year, dt.Month))); } return UltimoDia; } public DateTime MaiorData (List<DateTime> data) { DateTime Dt = DateTime.Today; foreach (DateTime dt in data) { if (dt > Dt) Dt = dt; } return Dt; } public List<Pessoa> FiltrarMaiores18 (List<Pessoa> p) { List<Pessoa> Humano = new List<Pessoa>(); foreach(Pessoa P in p) { if ((DateTime.Today - P.Nasc).TotalDays / 365 >= 18) Humano.Add(P); } return Humano; } public bool TodosMaiores18 (List<Pessoa> p) { bool DeMaior = true; foreach (Pessoa P in p) { if ((DateTime.Now - P.Nasc).TotalDays / 365 <= 18) { DeMaior = false; break; } } return DeMaior; } } TreinoFocadoB TFB = new TreinoFocadoB(); List<DateTime> Data = new List<DateTime>() { {DateTime.Today}, {new DateTime(2023, 08, 13)}, {new DateTime(1989,02, 12)} }; List<DateTime> LastDayMonth = TFB.LastDayInMonth(Data); Console.WriteLine(string.Join(" | ", LastDayMonth)); DateTime data = TFB.MaiorData(Data); Console.WriteLine(data); List<Pessoa> p = new List<Pessoa> () { new Pessoa {Nome = "Oi", Nasc = new DateTime(1980, 06, 13)}, new Pessoa {Nome = "Hi", Nasc = DateTime.Today}, new Pessoa {Nome = "Hello world", Nasc = new DateTime(1999, 02, 27)} }; List<Pessoa> FiltrandoMaiores = TFB.FiltrarMaiores18(p); Console.WriteLine(string.Join(" | ", FiltrandoMaiores)); bool Maiores18 = TFB.TodosMaiores18(p); Console.WriteLine(Maiores18); ``` ## Exercício 3 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: ▪ Realize a lógica para implementar uma função que separe cada caractere de uma frase por um hífen. Ex. ("Olá, tudo bem?") => "O-l-á- t-u-d-o- -b-e-m-?-“ ▪ Realize a lógica para implementar uma função que receba uma palavra e retorne uma lista contendo o código referente a tabela ASCII de cada caractere. Ex. (“Bruno”) => {66, 114, 117, 110, 111} ▪ Realize a lógica para implementar uma função que verifica se todos caracteres de uma frase são vogais Ex. ("Olá") => false, ("Eaee") => true ▪ Realize a lógica para implementar uma função que alterne entre maiúsculo e minúsculo cada caractere de um nome de pessoa. Ex. (["Bruno de Oliveira", [22/10/89], “SP”) => “BrUnO De oLiVeIrA“ ▪ Realize a lógica para implementar uma função que inverte os caracteres de uma frase. Ex. ("Olá, tudo bem?") => "?meb odut ,álO“ ▪ Realize a lógica para implementar uma função que recebendo uma palavra, retorne true/false, caso essa palavra seja um palíndromo. Ex. (“osso”) => true ```csharp= using System; using System.Collections.Generic; public class Pessoa { public string Nome {get; set;} public DateTime Nasc {get; set;} public string Cidade {get; set;} public override string ToString() { return $"{Nome}, {Nasc}, {Cidade}"; } } public class TreinoFocadoC { public string FraseComTracinho (string frase) { string FraseSeparada = string.Empty; foreach (char cont in frase) { FraseSeparada += cont + "-"; } return FraseSeparada; } public List<int> CodigoAscii (string frase) { List<int> Ascii = new List<int>(); foreach (char cont in frase) { Ascii.Add(Convert.ToInt32(cont)); } return Ascii; } public bool TodasVogais (string frase) { bool AllVogais = true; foreach (char cont in frase) { if (cont != 'A' && cont != 'a' && cont != 'E' && cont != 'e' && cont != 'I' && cont != 'i' && cont != 'O' && cont != 'o' && cont != 'U' && cont != 'u') { AllVogais = false; break; } } return AllVogais; } public string Alternar (Pessoa P) { string FraseAlternada = string.Empty; //char anterior = ' '; int num = 0; foreach (char cont in P.Nome) { //if (anterior == ' ') //FraseAlternada += cont.ToString().ToUpper(); if (num % 2 == 0) FraseAlternada += cont.ToString().ToLower(); else FraseAlternada += cont.ToString().ToUpper(); num += 1; } return FraseAlternada; } } public string Inverter (string frase) { string FraseInvertida = string.Empty; foreach (char cont in frase) { FraseInvertida = cont + FraseInvertida; } return FraseInvertida; } public bool Palindromo (string frase) { return Inverter(frase).ToLower() == frase.ToLower(); } } TreinoFocadoC TFC = new TreinoFocadoC (); string[] ValoresPraFuncoes = new string[10]; ValoresPraFuncoes[1] = "oi tudo bem?"; Console.WriteLine(TFC.FraseComTracinho(ValoresPraFuncoes[1])); ValoresPraFuncoes[0] = "oieeeeee"; List<int> CodificacaoAscii = TFC.CodigoAscii(ValoresPraFuncoes[0]); Console.WriteLine(string.Join(" | ", CodificacaoAscii)); ValoresPraFuncoes[2] = "oiié"; Console.WriteLine(TFC.TodasVogais(ValoresPraFuncoes[2])); Pessoa P1 = new Pessoa(); P1.Nome = "Alex pouse"; P1.Nasc = DateTime.Today; P1.Cidade = "SP"; string Alternado = TFC.Alternar(P1); Console.WriteLine(TFC.Alternar(P1)); ValoresPraFuncoes[4] = "Ana"; string Invertendo = TFC.Inverter(ValoresPraFuncoes[4]); Console.WriteLine(TFC.Inverter(ValoresPraFuncoes[4])); bool palindromo = TFC.Palindromo(ValoresPraFuncoes[4]); Console.WriteLine(TFC.Palindromo(ValoresPraFuncoes[4])); ```