# SESSION SIX | Fundamentos da Lógica: > **Aluna:** Patricia Oliveira Paulino > **Número:** 41 > **Turma:** Info D ## 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 gere uma sequência de valores iniciando > do zero até um valor final recebido por parâmetro. Ex. (5) => {0,1,2,3,4,5}, (3) => > {0,1,2,3}, (0) => { } > > ▪ Realize a lógica para implementar uma função que gere uma sequência de valores a partir > de um número inicial e final. Ex. (2,4) => {2,3,4}, (1, 2) => {1,2}, (0,0) => { 0 } > > ▪ Realize a lógica para implementar uma função que gere uma sequência de valores pares a > partir de um número inicial e final.Ex. (2,7) => {2,4,6}, (1, 2) => { 2 }, (0,0) => { 0 } > > ▪ Realize a lógica para implementar uma função que some os números naturais de 0 até um > número final informado. Ex. (5) => 15, (3) => 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 calcule a média para cada aluno a > partir de uma lista de Notas. > > ▪ Realize a lógica para implementar uma função que calcule a potência ao quadrado para > cada número em uma lista. Ex. ({2,3,4}) => {4,9,16} > > ▪ Realize a lógica para implementar uma função que calcule a área do retângulo. > > ▪ Realize a lógica para implementar uma função que calcule a área do retângulo pra cada > Retângulo da lista. csharp= using System; using System.Collections.Generic; public class Notas { public double Nota1 {get; set;} public double Nota2 {get; set;} public double Nota3 {get; set;} } public class Retangulo { public double Base {get; set;} public double Altura {get; set;} } public class TreinoFocadoA { public List<int> GerarSequencia(int fim) { List<int> l = new List<int>(); for (int i = 0; i <= fim; i++) { l.Add(i); } return l; } public List<int> GerarSequencia(int inicio, int fim) { List<int> l = new List<int>(); for (int i = inicio; i <= fim; i++) { l.Add(i); } return l; } public List<int> GerarSequenciaPares(int inicio, int fim) { List<int> l = new List<int>(); for (int i = inicio; i <= fim; i++) { if (i % 2 == 0) l.Add(i); } return l; } public int SomarAte(int fim) { int soma = 0; for (int i = 1; i <= fim; i++) { soma += i; } return soma; } public double CalcularMedias(List<double> notas) { double soma = 0; for (int i = 0; i < notas.Count; i++) { double n = notas[i]; soma = soma + n; } double media = soma / notas.Count; return media; } public List<double> CalcularMedias(List<Notas> notas) { List<double> mediasAlunos = new List<double>(); for (int i = 0; i < notas.Count; i++) { Notas notasAluno = notas[i]; double media = (notasAluno.Nota1 + notasAluno.Nota2 + notasAluno.Nota3) / 3; mediasAlunos.Add(media); } return mediasAlunos; } public List<double> Quadrados (List<double> numeros) { List<double> quads = new List<double>(); for (int i = 0; i < numeros.Count; i++) { double n = numeros[i]; double q = Math.Pow(n, 2); quads.Add(q); } return quads; } private double AreaRetangulo(Retangulo r) { return r.Base * r.Altura; } public List<double> AreaRetangulos(List<Retangulo> retangulos) { List<double> areas = new List<double>(); for (int i = 0; i < retangulos.Count; i++) { Retangulo r = retangulos[i]; double area = AreaRetangulo(r); areas.Add(area); } return areas; } } TreinoFocadoA treinoA = new TreinoFocadoA(); List<int> x1 = treinoA.GerarSequencia(0); Console.WriteLine(string.Join("-", x1)); List<int> x2 = treinoA.GerarSequencia(2, 4); Console.WriteLine(string.Join("-", x2)); List<int> x3 = treinoA.GerarSequenciaPares(2, 4); Console.WriteLine(string.Join("-", x3)); int x4 = treinoA.SomarAte(3); Console.WriteLine(x4); List<double> lx5 = new List<double>() {4, 6, 8, 10}; double x5 = treinoA.CalcularMedias(lx5); Console.WriteLine(x5); Notas n1 = new Notas(); n1.Nota1 = 8; n1.Nota2 = 9; n1.Nota3 = 7; Notas n2 = new Notas(); n2.Nota1 = 6; n2.Nota2 = 10; n2.Nota3 = 8; Notas n3 = new Notas(); n3.Nota1 = 10; n3.Nota2 = 10; n3.Nota3 = 7; List<Notas> notas = new List<Notas>() {n1, n2, n3}; List<double> x6 = treinoA.CalcularMedias(notas); Console.WriteLine(string.Join("-", x6)); List<double> n7 = new List<double>() {2,3,4,5}; List<double> x7 = treinoA.Quadrados(n7); Console.WriteLine(string.Join("-", x7)); List<Retangulo> retangs = new List<Retangulo>() { new Retangulo() {Base = 10, Altura = 2}, new Retangulo() {Base = 5, Altura = 5}, new Retangulo() {Base = 2, Altura = 5} }; List<double> areas = treinoA.AreaRetangulos(retangs); Console.WriteLine(string.Join("-", areas)); // 0 // 2-3-4 // 2-4 // 6 // 7 // 8-8-9 // 4-9-16-25 // 20-25-10 ## 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 gere uma sequência de datas de um > tamanho informado por parâmetro, iniciando da data atual. Ex. (2) => { [14/06/2021], > [15/06/2021] } > > ▪ Realize a lógica para implementar uma função que gere uma sequência de datas de um > tamanho informado por parâmetro, iniciando de uma data também informada. Ex. (2, > [14/06/2021]) => { [14/06/2021], [15/06/2021] } > > ▪ Realize a lógica para implementar uma função que gere uma sequência de datas com dias > pares de um tamanho informado por parâmetro, iniciando de uma data também informada. Ex. > (2, [14/06/2021]) => { [14/06/2021], [16/06/2021] } > > ▪ Realize a lógica para implementar uma função que identifique o signo de uma paessoa > baseado em uma data. Ex. ([22/10/1989]) => "Libra", ([23/10/1989]) => "Escorpião" > > ▪ Realize a lógica para implementar uma função que identifique os signos para cada data de > uma lista. Ex. ({[22/10/1989], [23/10/1989]}) => { "Libra", "Escorpião“ } > > ▪ 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 Nascimento {get; set;} public override string ToString() { return Nome + "," + Nascimento.ToString("dd/MM/yyyy"); } }; public class TreinoFocadoB { public List<DateTime> GerarSequencia(int fim) { List<DateTime> listaa = new List<DateTime>(); DateTime inicio = DateTime.Now.Date; for (int i = 0; i <= fim; i++) { inicio = inicio.AddDays(1); listaa.Add(inicio); } return listaa; } public List<DateTime> GerarSequencia(int fim, DateTime data) { List<DateTime> listaa = new List<DateTime>(); DateTime inicio = data; for (int i = 0; i <= fim; i++) { inicio = inicio.AddDays(1); listaa.Add(inicio); } return listaa; } public List<DateTime> GerarSequenciaPares(int qtd, DateTime data) { List<DateTime> listaa = new List <DateTime>(); if (data.Day % 2 == 0) { for (int i= 0; i <= qtd; i++) { if (i % 2 == 0 ) { DateTime inicio = data.AddDays(i); listaa.Add(inicio); } } } else { for (int i= 0; i <= qtd; i++) { if (i % 2 != 0) { DateTime inicio = data.AddDays(i); listaa.Add(inicio); } } } return listaa; } public string Signo(DateTime nasc) { string signoo = string.Empty; if ((nasc.Day > 20 && nasc.Month == 3) || (nasc.Day < 21 && nasc.Month == 4)) { signoo = "Áries"; } else if ((nasc.Day > 20 && nasc.Month == 4) || (nasc.Day < 21 && nasc.Month == 5)) { signoo = "Touro"; } else if ((nasc.Day > 20 && nasc.Month == 5) || (nasc.Day < 21 && nasc.Month == 6)) { signoo = "Gêmeos"; } else if ((nasc.Day > 20 && nasc.Month == 6) || (nasc.Day < 23 && nasc.Month == 7)) { signoo = "Câncer"; } else if ((nasc.Day > 22 && nasc.Month == 7) || (nasc.Day < 23 && nasc.Month == 8)) { signoo = "Leão"; } else if ((nasc.Day > 22 && nasc.Month == 8) || (nasc.Day < 23 && nasc.Month == 9)) { signoo = "Virgem"; } else if ((nasc.Day > 22 && nasc.Month == 9) || (nasc.Day < 23 && nasc.Month == 10)) { signoo = "Libra"; } else if ((nasc.Day > 22 && nasc.Month == 10) || (nasc.Day < 22 && nasc.Month == 11)) { signoo = "Escorpião"; } else if ((nasc.Day > 21 && nasc.Month == 11) || (nasc.Day < 22 && nasc.Month == 12)) { signoo = "Sargitário"; } else if ((nasc.Day > 21 && nasc.Month == 12) || (nasc.Day < 21 && nasc.Month == 1)) { signoo = "Capricórnio"; } else if ((nasc.Day > 20 && nasc.Month == 1) || (nasc.Day < 19 && nasc.Month == 2)) { signoo = "Aquário"; } else if ((nasc.Day > 18 && nasc.Month == 2) || (nasc.Day < 21 && nasc.Month == 3)) { signoo = "Peixes"; } return signoo; } public List<string> Signos(List<DateTime> nasc) { List<string> signos = new List<string>(); for (int i = 0; i < nasc.Count; i++) { DateTime d = nasc [i]; string s = Signo(d); signos.Add(s); } return signos; } public List<Pessoa> FiltrarMaiores18(List<Pessoa> pessoas) { List<Pessoa> filtrados = new List<Pessoa>(); for (int i = 0; i < pessoas.Count; i++) { Pessoa p = pessoas[i]; if (p.Nascimento <= DateTime.Now.AddYears(-18)) { filtrados.Add(p); } } return filtrados; } public bool TodosMaiores18(List<Pessoa> pessoas) { bool TodosMaiores = true; for (int a = 0; a < pessoas.Count; a++) { Pessoa p = pessoas[1]; if (p.Nascimento <= DateTime.Now.AddYears(-18)) { TodosMaiores = false; } } return TodosMaiores; } } TreinoFocadoB treinoB = new TreinoFocadoB(); List<DateTime> x1 = treinoB.GerarSequencia(2); Console.WriteLine(string.Join("-", x1)); List<DateTime> x2 = treinoB.GerarSequencia(2, new DateTime(2021, 6, 10)); Console.WriteLine(string.Join("-", x2)); List<DateTime> x3 = treinoB.GerarSequenciaPares(2, new DateTime(2021, 6, 10)); Console.WriteLine(string.Join("-", x3)); DateTime data1 = new DateTime(2004, 3, 17); string x4 = treinoB.Signo(data1); Console.WriteLine(string.Join(" - ", x4)); List<DateTime> data = new List<DateTime>(); data.Add(new DateTime(2005, 04, 02)); data.Add(new DateTime(2002, 11, 15)); data.Add(new DateTime(2002, 08, 28)); data.Add(new DateTime(2002, 05, 1)); List<string> x5 = treinoB.Signos(data); Console.WriteLine(string.Join(" - ", x5)); List<Pessoa> pessoas = new List<Pessoa>(); { new Pessoa() { Nome = "Patricia", Nascimento = new DateTime(1995, 3, 17) }; new Pessoa() { Nome = "Luan", Nascimento = new DateTime(1999, 10, 27) }; new Pessoa() { Nome = "Larissa", Nascimento = new DateTime(2005, 4, 13) }; }; List<Pessoa> x6 = treinoB.FiltrarMaiores18(pessoas); Console.WriteLine(string.Join(" - ", x6)); bool x7 = treinoB.TodosMaiores18(pessoas); Console.WriteLine(string.Join("-", x7)); // 6/27/2021 12:00:00 AM-6/28/2021 12:00:00 AM-6/29/2021 12:00:00 AM // 6/11/2021 12:00:00 AM-6/12/2021 12:00:00 AM-6/13/2021 12:00:00 AM // 6/10/2021 12:00:00 AM-6/12/2021 12:00:00 AM // Peixes // Escorpião - Peixes - Virgem - Touro // // True ## 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 inverte os caracteres de uma frase. Ex. > ("Olá, tudo bem?") => "?meb odut ,álO" > > ▪ 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 retorne o último nome a partir de um > nome completo. Ex. ("Bruno de Oliveira") => "Oliveira" > > ▪ Realize a lógica para implementar uma função que retorne os últimos nomes a partir de > uma lista de nomes completos. Ex. (["Bruno de Oliveira", "João Silva"]) => ["Oliveira", > "Silva"] > > ▪ Realize a lógica para implementar uma função que verifique se todas as cores em uma > lista são primárias. Ex. (["Azul", "Amarelo", "Vermelho"]) => true > > ▪ Realize a lógica para implementar uma função que verifique se uma senha é forte. Para > ser forte, ela precisa ter pelo menos 2 caracteres especiais, 2 números e 8 digitos. Ex. > ("senha@123") => false, ("s&nha@87") => true, ("aaaa@@00") => true. 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 nova = string.Empty; for (int i = 0; i < frase.Length; i++) { char letra = frase[i]; nova = nova + letra + "-"; } return nova; } public string Inverter(string frase) { string nova = string.Empty; for (int i = 0; i < frase.Length; i++) { char letra = frase[i]; nova = letra + nova; } return nova; } public bool TodasVogais (string frase) { bool resposta = true; for (int i = 0; i < frase.Length; i ++) { char letra = frase [i]; if (letra != 'a' && letra != 'e' && letra != 'i' && letra != 'o' && letra != 'u') { resposta = false; } } return resposta; } public string UltimoNome(string nome) { int posicaoUltEspaco = nome.LastIndexOf(" "); string sobrenome = nome.Substring(posicaoUltEspaco + 1); return sobrenome; } public List<string> UltimosNomes (List<string> nome) { List<string> ultimoNome = new List<string> (); for (int i = 0; i < nome.Count; i++) { string nomes = nome[i]; string ultNome = UltimoNome(nomes); ultimoNome.Add(ultNome); } return ultimoNome; } public bool ApenasCoresPrimarias(List<string> cores) { bool todasPrimarias = true; for (int i = 0; i < cores.Count; i++) { string cor = cores[i]; if (cor != "vermelho" && cor != "amarelo" && cor != "azul") { todasPrimarias = false; } } return todasPrimarias; } public bool SenhaForte(string senha) { bool senhaforte = false; for(int i = 0; i < senha.Length; i++) { bool caracter = senha.Contains("!") || senha.Contains("@") || senha.Contains("#") || senha.Contains("$") || senha.Contains("%") || senha.Contains("&") || senha.Contains("+") || senha.Contains("-") || senha.Contains("*"); bool digitos = senha.Length >= 8; bool senhaf = caracter == digitos; if(senhaf) { senhaforte = true; } } return senhaforte; } } TreinoFocadoC treinoC = new TreinoFocadoC(); string x1 = treinoC.SepararLetras("Patricia"); Console.WriteLine(x1); string x2 = treinoC.Inverter("Patricia"); Console.WriteLine(x2); bool frase = treinoC.TodasVogais("eaee"); Console.WriteLine(frase); string a = treinoC.UltimoNome("Patricia Oliveira Paulino"); Console.WriteLine(a); List<string> n = new List<string>() {"Patricia Oliveira", "Thiago Neves", "Larissa Santos"}; List<string> nomecomp = treinoC.UltimosNomes(n); Console.WriteLine(string.Join(", ", nomecomp)); bool x3 = treinoC.ApenasCoresPrimarias(new List<string>() {"preto", "branco", "azul"}); Console.WriteLine(x3); bool senhaF = treinoC.SenhaForte("eu-amo-csarp-rs"); Console.WriteLine(senhaF); // P-A-T-R-I-C-I-A- // aicirtaP // True // Paulino // Oliveira, Neves, Santos // False // True
{"metaMigratedAt":"2023-06-16T03:24:40.300Z","metaMigratedFrom":"Content","title":"SESSION SIX | Fundamentos da Lógica:","breaks":true,"contributors":"[{\"id\":\"694aa08f-556c-44e2-bd76-36a3a1863269\",\"add\":16087,\"del\":110}]"}
Expand menu