# session one: Check-out | Fund.logica | 2° bimestre **Nome** Kevin Ribeiro de Andrade **número** 27 **Turma** INFO A ## Mapa mental ![](https://i.imgur.com/i8gBaR9.png) ## Tipo composto e os aprendizados da semana Bom sobre o tipo composto foi bem interessante a gente aprender ele pois estávamos estagnados em C# vendo sempre funções únicas ou compostas sem nenhum conceito novo. Mas com esse tipo composto minhas funções podem começar a ficar mais robustas aumentando minha capacidade como programador de c#. Falando sobre como funciona o tipo composto é mais ou menos assim lá você cria sua própria variável( ou função, não sei explicar muito bem), que dentro dela pode ter diversos Valores como string, double, long e DateTime. Nós estamos usando esses valores em nossas funções para que fiquem mais robustas para colocarmos o valor da classe dentro de uma função precisamos colocar essa classe como parâmetro para função dar um nome pra ela(nos parâmetros da função), e usar o ponto para chamar as variáveis de dentro da classe. Ex: ### Tipo composto - função única ```csharp= using System; //açaí pequeno- 10,00 //açaí médio- 12,00 //açaí grande- 14,00 public class qtdacais { public long acai_pequeno; public long acai_medio; public long acai_grande; } public double calc_pedido(qtdacais qtd) { double pequeno = 10.00; double medio = 12.00; double grande = 14.00; return (qtd.acai_pequeno * pequeno) + (qtd.acai_medio * medio) + (qtd.acai_grande * grande); } qtdacais vl = new qtdacais(); vl.acai_pequeno = 1; vl.acai_medio = 2; vl.acai_grande = 2; double x = calc_pedido(vl); x ``` ### Tipo composto - função composta ```csharp= using System; public class casal { public DateTime nascPessoa1; public DateTime nascPessoa2; } public bool libra(DateTime nasc) { bool res = nasc.Month == 9 && nasc.Day > 22; bool res2 = nasc.Month == 10 && nasc.Day < 23; return res == true || res2 == true; } public bool menor_maior18(DateTime nasc) { DateTime agora = DateTime.Now; TimeSpan calc = agora - nasc; double calc2 = calc.TotalDays / 365; return calc2 >= 18; } public bool permitir_entrada(casal cs) { bool comp = libra(cs.nascPessoa1) == true && menor_maior18(cs.nascPessoa1) == true; bool comp2 = libra(cs.nascPessoa2) == true && menor_maior18(cs.nascPessoa2) == true; return comp == true && comp2 == true; } casal dt = new casal(); dt.nascPessoa1 = new DateTime (2002,09,25); dt.nascPessoa2 = new DateTime (2003,10,21); bool x = permitir_entrada(dt); x ``` Ai vemos como funciona o tipo composto na práticas o tipo composto pode fazer com que sua função retorne dois valores diferentes, eu só não mostrei nesse código mas quando o professor fez a correção ele usou Console.WriteLine para ler duas Variáveis, eu irei mostrar um código que eu fiz segue a msm idéia do código do professor, ambos estão corretos única diferença são alguns nomes ou valores ou até formas de montagem de código também ex: ```csharp= using System; public class equacao { public long a; public long b; public long c; } public class resultado { public double x1; public double x2; } public double delta(equacao eq) { return Math.Pow(eq.b,2) - 4 * eq.a * eq.c; } public resultado segundo_grau(equacao eq) { double res = (-eq.b + Math.Sqrt(delta(eq))) / 2 * eq.a; double res2 = (-eq.b - Math.Sqrt(delta(eq))) / 2 * eq.a; resultado resul = new resultado (); resul.x1 = res; resul.x2 = res2; return resul; } equacao result = new equacao(); result.a = 2; result.b = -2; result.c = -2; resultado x = segundo_grau(result); Console.WriteLine("res1 é igual a:" + x.x1); Console.WriteLine("res2 é igual a:" + x.x2); ``` **Todos esses códigos foram tirados da minha session prática de Fund.logica e foi feito totalmente sozinho** ## Dúvidas eu não tenho dúvidas, consegui absorver o conteúdo tranquilamente.