74 lines
2.6 KiB
Markdown
74 lines
2.6 KiB
Markdown
> **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(",", "."));
|
|
}
|
|
``` |