> **EXAME TEMA 1: FUNDAMENTOS DE .NET (Sintaxe, Variables e Estruturas)** # Pregunta 1: Sintaxe e Lóxica (Mezclado) Analiza o seguinte fragmento de pseudocódigo/lóxica e dime se hai algún erro ou como o optimizarías: > *"Necesito comprobar unha variable 'idade'. Se é menor de 18, imprimir 'Menor'; se é exactamente 18, imprimir 'Xusto'; e se é maior de 18, imprimir 'Adulto'."* - ¿Que estrutura de control usarías para que fose o máis eficiente posible (If...Then...Else ou Select Case)? Xustifica a túa resposta. ## Resposta No caso de .Net usaríase o `Select Case` ou `Switch`. No caso de F#, a opción ven sendo un `match` e no caso de C++ non existe esta opción polo que nun nivel óptimo acádase o `if else if else`. ```vb Public Function idade_rango(ByVal idade as Integer) As String Select Case Idade Case Is < 18: Return "Menor de idade." Case 18: Return "Ten 18 anos." End Select Return "Maior de Idade." End Function ``` ```cs public string idade_rango(int idade){ switch(idade){ case int _ when idade < 18: return "Menor de idade."; case 18: return "Ten 18 anos."; } return "Maior de Idade." } ``` ```fs let idade_rango idade:int = match idade with | < 18 -> "Menor de idade." | 18 -> "Ten 18 anos." | _ -> "Maior de Idade." ``` ```cpp string idade_rango(int idade){ switch(idade){ case < idade: return "Menor de idade."; case idade: return "Ten 18 anos."; } return "Maior de Idade"; } ``` # Pregunta 2: Tipos de Datos Específicos (Castellano) ¿Qué diferencia existe entre el tipo de datos Decimal, Double y Single? Si estuvieras desarrollando una aplicación para la gestión económica de la Xunta (contabilidad), ¿cuál de los tres elegirías para manejar importes monetarios y por qué? ## Respuesta - **Decimal**: o *decimal* Es un valor numérico de punto flotante con capacidad a poder desplazar la compa variando la proporción de la mantisa cara su parte entera o decimal. Posee una precisión de 128 bits (16 bytes). - **Double** o *double*: Es un valor numérico de punto flotante con una precisión de 64 bits (8 bytes). - **Single** o *float*: Es un valor numérico de punto flotante con una precisión de 32 bits (4 bytes). Para valores monetarios, siempre Decimal por su capacidad de precisión a 128 Bit, además de poder trabajar con un desplazamiento de la coma sobre su Parseo. ```cs public decimal coger_cantidad(string cantidad){ return decimal.Parse(cantidad.Replace(",", ".")); } ```