# Condição 2 | Fund. Lógica **Author:** Matheus Rafael Morato Rocha **Turma:** InfoC **Número:** 40 [TOC] ## Nível 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 Calculadora, a partir de dois valores e a operação que deve ser realizada (soma, subtração, multiplicação, divisão ou potência). ▪ Realize a lógica para implementar uma função que informe se uma pessoa está com febre, febre alta, hiportemia ou normal. ▪ Realize a lógica para implementar uma função que a partir dos lucros e prejuízos de uma empresa, informe se ela ficou positiva ou negativa no fim do mês. Caso ela fique negativa, você não deve exibir o sinal de menos (-) na resposta. “Muito bem, você está R$ XXX positivo” “Poxa, você ficou R$ XXX negativo.” ▪ Realize a lógica para implementar uma função que arredone uma nota de meio em meio. Se a nota for entre (a) .00 e .25 arredondar para 0.0, (b) entre .26 e .74 arredondar para 0.5, e (c) .75 e .99 arredondar para cima. ▪ Realize a lógica para implementar uma função que verifique se um aluno passou ou está de recuperação, se a nota for maior que 5. ▪ Realize a lógica para implementar uma função que verifique se um aluno passou ou está de recuperação, se a nota for maior que 5 e a quantidade de falta for menor que 25. Se ele ficar de recuperação retorne o motivo: “Recuperação por Falta”, “Recuperação por Nota” ou “Recuperação por Nota e Falta”. ▪ Realize a lógica para implementar uma função que descubra o tipo de um triângulo: Equilátero, Isósceles ou Escaleno. ▪ Realize a lógica para implementar uma função que retorne o Índice de Massa Corporal (IMC) de uma pessoa: Abaixo do Peso, Peso Normal ou Sobrepeso, no seguinte formato: “XXXX você está XXXX” ```csharp= public class Calculo { public double valor1 { get; set; } public double valor2 { get; set; } public string Operacao { get; set; } } public class Triangulo { public double LadoA { get; set; } public double LadoB { get; set; } public double LadoC { get; set; } } public class Pessoa { public string Nome { get; set; } public double Altura { get; set; } public double Peso { get; set; } } public class Notas { public double Nota1 { get; set; } public double Nota2 { get; set; } public double Nota3 { get; set; } } Calculo calcular = new Calculo(); calcular.valor1 = 10; calcular.valor2 = 2; calcular.Operacao = "Adição"; Notas escola = new Notas (); escola.Nota1 = 5.76; escola.Nota2 = 5.76; escola.Nota3 = 5.76; int faltas = 28; Triangulo tri = new Triangulo(); tri.LadoA = 10; tri.LadoB = 3; tri.LadoC = 1; Pessoa pessoa = new Pessoa(); pessoa.Nome = "Matheus"; pessoa.Altura = 1.75; pessoa.Peso = 60; double temperatura = 41; double gastos = 1500; double lucro = 1000; double nota = 8.70; TreinoFocadoA x = new TreinoFocadoA(); double b = x.Calculadora(calcular); string c = x.Termometro(temperatura); string d = x.LucroOuPrejuizo(gastos,lucro); string e = x.Passou(escola); string f = x.Passou(escola,faltas); string g = x.TipoTriangulo(tri); string h = x.IMC(pessoa); double i = x.ArredondarMeioEmMeio(nota); Console.WriteLine(b); Console.WriteLine(c); Console.WriteLine(d); Console.WriteLine(i); Console.WriteLine(e); Console.WriteLine(f); Console.WriteLine(g); Console.WriteLine(h); public class TreinoFocadoA { public double Calculadora (Calculo a) { double x = 0; if (a.Operacao == "Adição") { x = a.valor1 + a.valor2; } if (a.Operacao == "Divisão") { x = a.valor1 / a.valor2; } if (a.Operacao == "Multiplicação") { x = a.valor1 * a.valor2; } if (a.Operacao == "Substração") { x = a.valor1 / a.valor2; } if (a.Operacao == "Potencia") { x = Math.Pow(a.valor1,a.valor2); } return x; } public string Termometro (double grau) { string z = ""; if((grau > 39.6) && (grau >= 41)) { z = $"Você esta com febre alta, sua temperatura é: {grau}"; } if ((grau > 35.6) && (grau < 37.5)) { z = $"Você não esta com febre,sua temperatura é: {grau}"; } if ((grau > 37.6) && (grau < 39.5)) { z = $"Você esta com febre,sua temperatura é: {grau}"; } if (grau > 41) { z = $"Você esta com Hipertemia,sua temperatura é: {grau}"; } return z; } public string LucroOuPrejuizo (double gastos,double lucro) { double a = lucro - gastos; string x = ""; if (a >= 0) { x = $"Muito bem, você está R$ {a} positivo"; } else { x = $"Poxa, você ficou R$ {Math.Abs(a)} negativo."; } return x; } public double ArredondarMeioEmMeio (double nota) { double a = nota - Math.Truncate(nota); double x = Math.Round(a,2); double b = 0; if (a <= 0.25) { b = Math.Floor(nota); } if ((x >= 0.26) && (x <= 0.75)) { b = Math.Truncate(nota) + 0.5; } else { b = Math.Ceiling(nota); } return b; } public string Passou (Notas nota) { double Total = (nota.Nota1 + nota.Nota2 + nota.Nota3) / 3; string a = ""; if (Total >= 5) { a = $"Passou!"; } else { a = $"Recuperação!"; } return a; } public string Passou (Notas nota,int falta) { double Total = (nota.Nota1 + nota.Nota2 + nota.Nota3) / 3; string a = ""; if ((Total >= 5) && (falta <= 25)) { a = $"Passou!"; } if ((Total < 5 ) && (falta > 25)) { a = $"Recuperação por Nota e Falta!"; } if ((Total >= 5) && (falta > 25)) { a = $"Recuperação por Falta!"; } if ((Total < 5) && (falta <= 25)) { a = $"Recuperação por Nota!"; } return a; } public string TipoTriangulo(Triangulo tri) { string x = ""; if ((tri.LadoA == tri.LadoB) && (tri.LadoC == tri.LadoA) && (tri.LadoC == tri.LadoB)) { x = $"Seu triangulo e um: Equilátero"; } else if ((tri.LadoA != tri.LadoB) && (tri.LadoC != tri.LadoA) && (tri.LadoC != tri.LadoB)) { x = $"Seu triangulo e um: Escaleno"; } else { x = $"Seu triangulo e um: Isósceles"; } return x; } public string IMC(Pessoa pessoa) { double imc = pessoa.Peso / (pessoa.Altura * pessoa.Altura) ; string x = ""; if ((imc > 18.5) && (imc < 24.9)) { x = $"{pessoa.Nome} Você esta Normal"; } if (imc < 18.5) { x = $"{pessoa.Nome} Você esta Abaixo do Peso"; } if ((imc > 25) && (imc < 29.9)) { x = $"{pessoa.Nome} Você esta Acima do Peso"; } if (imc > 30) { x = $"{pessoa.Nome} Você esta Sobrepeso"; } return x; } } // 12 // Você esta com febre alta, sua temperatura é: 41 // Poxa, você ficou R$ 500 negativo. // 8,5 // Passou! // Recuperação por Falta! // triangulo e um: Escaleno //Matheus Você esta Normal ``` ## Nível 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 descubra se uma cor é uma cor primária. ▪ Realize a lógica para implementar uma função que retorne a cor resultante da combinação de duas cores primárias. Você deve realizar todas combinações. ▪ Realize a lógica para implementar uma função que retorne o primeiro nome de uma pessoa a partir de um nome completo, no entando, se a função receber apenas o primeiro nome não deve resultar em um erro, mas no mesmo primeiro nome. ▪ Realize a lógica para implementar uma função que a partir de uma peça de dominó e verifique se a peça é um dobre. ▪ Realize a lógica para implementar uma função que a partir de duas peças de dominó, verifique se a primeira peça “encaixa” na segunda, ou seja, se seria um jogada válida. ▪ Realize a lógica para implementar uma função que mostre ao usuário uma mensagem de recuperação de senha a partir de um e-mail e senha. A mensagem deve ser no formato: “Você receberá um e-mail do XXX para resetar a senha. Um código também foi enviado para o número YYY.” Sendo XXX o domínio (ex: GMAIL) e YYY apenas o final do telefone (ex: xxxx-5764) ▪ Realize a lógica para implementar uma função que inicialize um controlador de semáforo. O semáforo deve iniciar em vermelho aceso e o resto apagado. ▪ Realize a lógica para implementar uma função que a partir de um estado de um semáforo, avance para o próximo estado, ou seja, de vermelho para verde, de verde para amarelo e amarelo para vermelho. ```csharp= using System; public class PecaDomino { public double LadoA { get; set; } public double LadoB { get; set; } } public class Semaforo { public bool LuzVermelhaAcesa { get; set; } public bool LuzAmarelaAcesa { get; set; } public bool LuzVerdeAcesa { get; set; } } public class Recuperacao { public string Email; public string Telefone; } string nome = "Matheus Rafael"; string cor1 = "Azul"; string cor2 = "Amarelo"; PecaDomino lados1 = new PecaDomino(); lados1.LadoA = 6; lados1.LadoB = 6; PecaDomino lados2 = new PecaDomino(); lados2.LadoA = 6; lados2.LadoB = 5; Semaforo s = new Semaforo(); s.LuzVerdeAcesa = true; s.LuzVermelhaAcesa = false; s.LuzAmarelaAcesa = false; Recuperacao EmailRec = new Recuperacao(); EmailRec.Email = "matheuszap@gmail.com"; EmailRec.Telefone = "5978-7210"; TreinoFocadoB treino = new TreinoFocadoB(); bool CorTeste1 = treino.CorPrimaria(cor1); string CorTeste2 = treino.CombinacaoCorPrimaria(cor1,cor2); string Nome = treino.PrimeiroNome(nome); bool Domino = treino.DobreDomino(lados1); bool Domino2 = treino.JogadaValida(lados1,lados2); string Email1 = treino.RecuperacaoSenha(EmailRec); Semaforo semaforo2 = treino.IniciarSemaforo(); Console.WriteLine(CorTeste1); Console.WriteLine(CorTeste2); Console.WriteLine(Nome); Console.WriteLine(Domino); Console.WriteLine(Domino2); Console.WriteLine(Email1); Console.WriteLine($"Vermelho: {s.LuzVermelhaAcesa} - Amarelo : {s.LuzAmarelaAcesa} - Verde: {s.LuzVerdeAcesa}"); public class TreinoFocadoB { public bool CorPrimaria (string cor) { bool Resultado = true; if ((cor == "Amarelo") || (cor == "Azul") || (cor == "Vermelho")) { Resultado = true; } else { Resultado = false; } return Resultado; } public string CombinacaoCorPrimaria (string cor1,string cor2) { string Mensagem = ""; if ((cor1 == "Amarelo") && (cor2 == "Vermelho") || (cor1 == "Vermelho") && (cor2 == "Amarelo")) { Mensagem = "Laranja"; } else if ((cor1 == "Amarelo") && (cor2 == "Azul") || (cor1 == "Azul") && (cor2 == "Amarelo")) { Mensagem = "Verde"; } else if ((cor1 == "Vermelho") && (cor2 == "Azul") || (cor1 =="Azul") && (cor2 == "Vermelho")) { Mensagem = "Roxo"; } else { Mensagem = "Nenhuma cor foi encontrada"; } return Mensagem; } public string PrimeiroNome (string nome) { bool verificar = nome.Contains(" "); string NomeFinal = "oi"; int numero = 0; if (verificar == true) { numero = nome.IndexOf(" "); NomeFinal = nome.Substring(0,numero); } else { NomeFinal = nome; } return NomeFinal; } public bool DobreDomino (PecaDomino peca) { bool Resultado = true; if (peca.LadoA == peca.LadoB) { Resultado = true; } else { Resultado = false; } return Resultado; } public bool JogadaValida(PecaDomino peca1, PecaDomino peca2) { bool Resultado = true; if((peca1.LadoA == peca2.LadoA) || (peca1.LadoB == peca2.LadoB) || (peca1.LadoB == peca2.LadoA)) { Resultado = true; } else { Resultado = false; } return Resultado; } public string RecuperacaoSenha(Recuperacao rec) { int corte = rec.Telefone.IndexOf("-"); string corte2 = rec.Telefone.Substring(corte +1); if (rec.Email.Contains("@")) { string corte3 = rec.Email.Substring(rec.Email.LastIndexOf("@")); string corte4 = corte3.Substring(0,corte3.IndexOf(".")); string CorteFinal = corte4.Replace("@",""); return $"Você receberá um e-mail do {CorteFinal} para resetar a senha. Um código também foi enviado para o número {corte2}."; } else { return $"Algo esta errado no seu email ou telefone, tente rescrevelos"; } } public Semaforo IniciarSemaforo() { Semaforo s = new Semaforo(); s.LuzVerdeAcesa = true; s.LuzVermelhaAcesa = false; s.LuzAmarelaAcesa = false; return s; } public Semaforo ProximoSinal (Semaforo s) { if (s.LuzVermelhaAcesa) { s.LuzVermelhaAcesa = true; s.LuzAmarelaAcesa = false; s.LuzVerdeAcesa = false; } else if (s.LuzAmarelaAcesa) { s.LuzVermelhaAcesa = false; s.LuzAmarelaAcesa = true; s.LuzVerdeAcesa = false; } else if (s.LuzVerdeAcesa) { s.LuzVermelhaAcesa = false; s.LuzAmarelaAcesa = false; s.LuzVerdeAcesa = true; } return s; } } // True // Verde // Matheus // True // True //Você receberá um e-mail do gmail para resetar a senha. Um código também foi enviado para o número 7210. // Vermelho: False - Amarelo : False - Verde: True ``` ## Nível 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 descubra o trimestre a partir de uma data. ▪ Realize a lógica para implementar uma função que retorne o nome do mês por extenso. ▪ Realize a lógica para implementar uma função que retorne o período do dia a partir de uma data. Os períodos são: Manhã, Tarde, Noite, Madrugada. ▪ Realize a lógica para implementar uma função que retorne quantos dias de vida uma pessoa possui a partir da data de seu nascimento. ▪ Realize a lógica para implementar uma função que verifique qual o signo de uma pessoa a partir de seu nascimento. A função deve considerar todos os signos. ▪ Realize a lógica para implementar uma função que escreva uma data por extenso no seguinte formato: “XXX você nasceu há XXX dias, em uma XXX do dia XXX de XXX (Xo trimestre) de XXX. Seu signo é XXX.” Ex.: “Bruno você nasceu há 11680 dias, em uma noite do dia 22 de Outubro (4o trimestre) de 1989. Seu signo é Libra.” ```csharp= using System; public class Pessoa { public string Nome { get; set; } public DateTime Nascimento { get; set; } public string cidade { get; set; } } public class TreinoFocadoC { public int Trimestre(DateTime data) { int numero = 0; if (data.Month == 1 || data.Month <= 3) { numero = 1; } else if (data.Month == 4 || data.Month < 6) { numero = 2; } else if (data.Month == 7 || data.Month < 9) { numero = 3; } else if (data.Month == 10 || data.Month < 12) { numero = 4; } return numero; } public string Mes(int mes) { string extenso = ""; if (mes == 1) { extenso = "Janeiro"; } else if (mes == 2) { extenso = "Fevereiro"; } else if (mes == 3) { extenso = "Março"; } else if (mes == 4) { extenso = "Abril"; } else if (mes == 5) { extenso = "Maio"; } else if (mes == 6) { extenso = "Junho"; } else if (mes == 7) { extenso = "Julho"; } else if (mes == 8) { extenso = "Agosto"; } else if (mes == 9) { extenso = "Setembro"; } else if (mes == 10) { extenso = "Outubro"; } else if (mes == 11) { extenso = "Novvembro"; } else if (mes == 12) { extenso = "Dezembro"; } return extenso; } public string PeriodoDia(DateTime data) { string HoraDoDia = ""; if (data.Hour >= 6 && data.Hour < 12) { HoraDoDia = "Manhã"; } else if (data.Hour >= 12 && data.Hour < 18) { HoraDoDia = "Tarde"; } else if (data.Hour >= 18 && data.Hour < 24) { HoraDoDia = "Noite"; } else if (data.Hour >= 24 && data.Hour < 6) { HoraDoDia = "Madrugada"; } return HoraDoDia; } public double DiasVida(DateTime Nascimento) { TimeSpan dias = DateTime.Now - Nascimento; double Total = dias.TotalDays; double Total2 = Math.Truncate(Total); return Total2; } public string QualSigno(DateTime nascimento) { string Signo = ""; if (nascimento.Day >=21 && nascimento.Month == 1 || nascimento.Day <= 18 && nascimento.Month == 2) { Signo = "Aquário"; } else if (nascimento.Day >= 19 && nascimento.Month == 2 || nascimento.Day <= 20 && nascimento.Month == 3) { Signo = "Peixes"; } else if (nascimento.Day >=21 && nascimento.Month == 3 || nascimento.Day <= 20 && nascimento.Month == 4) { Signo = "Áries"; } else if (nascimento.Day >=21 && nascimento.Month == 4 || nascimento.Day <= 20 && nascimento.Month == 5) { Signo = "Touro"; } else if (nascimento.Day >=21 && nascimento.Month == 5 || nascimento.Day <= 20 && nascimento.Month == 6) { Signo = "Gêmeos"; } else if (nascimento.Day >=21 && nascimento.Month == 6 || nascimento.Day <= 22 && nascimento.Month == 7) { Signo = "Câncer"; } else if (nascimento.Day >=23 && nascimento.Month == 7 || nascimento.Day <= 22 && nascimento.Month == 8) { Signo = "Leão"; } else if (nascimento.Day >=23 && nascimento.Month == 8 || nascimento.Day <= 22 && nascimento.Month == 9) { Signo = "Virgem"; } else if (nascimento.Day >=23 && nascimento.Month == 9 || nascimento.Day <= 22 && nascimento.Month == 10) { Signo = "Libra"; } else if (nascimento.Day >=23 && nascimento.Month == 10 || nascimento.Day <= 21 && nascimento.Month == 11) { Signo = "Escorpião"; } else if (nascimento.Day >=22 && nascimento.Month == 11 || nascimento.Day <= 21 && nascimento.Month == 12) { Signo = "Sagitário"; } else if (nascimento.Day >=22 && nascimento.Month == 12 || nascimento.Day <= 20 && nascimento.Month == 1) { Signo = "Capricórnio"; } else { Signo = "Se chegou aqui, seu signo é Alienígina"; } return Signo; } public string DataPorExtenso(Pessoa pessoa) { string MesExtenso = Mes(pessoa.Nascimento.Month); int tri = Trimestre(pessoa.Nascimento); string HoraDoDia = PeriodoDia(pessoa.Nascimento); double DiasDeLife = DiasVida(pessoa.Nascimento); string SignoGay = QualSigno(pessoa.Nascimento); return $"{pessoa.Nome} você nasceu há {DiasDeLife} dias, em uma {HoraDoDia} do dia {pessoa.Nascimento.Day} de {MesExtenso} ({tri}o trimestre) de {pessoa.Nascimento.Year}. Seu signo é {SignoGay}."; } } Pessoa eu = new Pessoa(); eu.Nome = "Matheus Rafael"; eu.Nascimento = new DateTime (2004, 09, 10, 13, 30, 0); eu.cidade = "São Paulo"; DateTime data = new DateTime (2004,11,05); DateTime data2 = new DateTime(2021, 4, 10, 6, 30, 0); DateTime Dias = new DateTime(2004,09,10); int mes = 6; TreinoFocadoC a = new TreinoFocadoC(); int tri = a.Trimestre(data); string MesExtenso = a.Mes(mes); string HoraDoDia = a.PeriodoDia(data2); double DiasDeLife = a.DiasVida(Dias); string SignoGay = a.QualSigno(Dias); string DataExtenso = a.DataPorExtenso(eu); Console.WriteLine(tri); Console.WriteLine(MesExtenso); Console.WriteLine(HoraDoDia); Console.WriteLine(DiasDeLife); Console.WriteLine(SignoGay); Console.WriteLine(DataExtenso); // 4 // Junho // Manhã // 6106 // Virgem // Matheus Rafael você nasceu há 6105 dias, em uma Tarde do dia 10 de Setembro (4o trimestre) de 2004. Seu signo é Virgem. ```
{"metaMigratedAt":"2023-06-16T01:02:49.568Z","metaMigratedFrom":"Content","title":"Condição 2 | Fund. Lógica","breaks":true,"contributors":"[{\"id\":\"0ba297e4-eafa-413a-9b17-c3ef1702e693\",\"add\":32195,\"del\":10707}]"}
Expand menu