PROGRAMA DE FORMACIÓN
PROFESIONAL Y PERSONAL
UNIVERSIDAD NACIONAL DE 2018/2019 DEPARTAMENTO DE
EDUCACIÓN A DISTANCIA INGENIERÍA DE SOFTWARE Y
SISTEMAS INFORMÁTICOS
.NET Y VISUAL STUDIO
Cuaderno de Evaluación de la
PRIMERA Unidad Didáctica.
.NET
Nombre del alumno:............................................................................................................................................................
Dirección:..................................................................................................................................................................................
Teléfono:...................................................................................................................................................................................
e-mail:........................................................................................................................................................................................
UD-I CURSO DE NET y VISUAL STUDIO
INSTRUCCIONES:
Las contestaciones a este cuadernillo se pueden realizar en el formato que
el alumno deseé.
El envío de las respuestas se realizará preferiblemente en formato
electrónico.
La evaluación del cuadernillo corresponde con APTO o NO APTO. No
existe valoración numérica.
2
UD-I CURSO DE NET y VISUAL STUDIO
PREGUNTAS DE TEST:
1.- ¿Cuáles de los siguientes tipos son tipos valor? (Elegir las ciertas)
A.- Decimal
B.- String
C.- System.Drawing.Point
D.- Integer
2.- Si se pasa una variable de tipo valor como argumento de un
procedimiento. El procedimiento realiza cambios con el argumento pero no
se cambia la variable, ¿qué ocurre?
A.- La variable debe iniciarse antes de pasarse al procedimiento
B.- Si se pasa una variable de tipo valor entonces se crea una copia del dato
C.- La variable se re-declara internamente en el procedimiento
D.- El procedimiento la maneja como si fuera por referencia
3.- ¿Cuál es la declaración correcta de un entero nulo?
A.-
' VB
Dim mi_entero As Nullable<Of Integer> = Nothing
// C#
Nullable(int) mi_entero = null;
B.-
' VB
Dim mi_entero As Nullable(Of Integer) = Nothing
// C#
Nullable<int> mi_entero = null;
3
UD-I CURSO DE NET y VISUAL STUDIO
C.-
' VB
Dim mi_entero As Integer = Nothing
// C#
int mi_entero = null;
D.-
' VB
Dim mi_entero As Integer(Nullable) = Nothing
// C#
int<Nullable> mi_entero = null;
4.- Elija cuál de las siguientes opciones elegiría si se quiere disponer de
una clase o estructura que se va a utilizar para que se pueda pasar a un
procedimiento en el que no conocemos si se realizan o no modificaciones
A. Una clase de tipo referencia
B. Una clase de tipo valor
C. Una estructura de tipo referencia
D. Una estructura de tipo valor
5.- ¿Qué acción realizaría si en una clase genérica, necesita liberar
recursos de este objeto?
A. Llamar al método: Object.Dispose
B. Implementar la interfaz IDisposable
C. Derivar la clase generic de la clase IDisposable
D. Usar restricciones para asegurar que el tipo generic implementa el interfaz
IDisposable
4
UD-I CURSO DE NET y VISUAL STUDIO
6.- ¿Cuál de las siguientes conversiones implícitas está permitida con la
opción “Strict On activada?
A. Int16 to Int32
B. Int32 to Int16
C. Int16 to Double
D. Double to Int16
7.- Elija cuál de las siguientes sentencias es verdadera:
A. La herencia define un contrato entre tipos
B. Los interfaces definen un contrato entre tipos
C. La herencia deriva un tipo de un tipo base
D. Los interfaces derivan un tipo de un tipo base
8.- ¿Cuál es el orden correcto en una sentencia Catch al manejar diferentes
tipos de excepciones?
A. El orden es del más general al más específico
B. El orden es del más específico al más general
C. El orden es del más esperado al menos esperado
D. El orden es del menos esperado al más esperado
9.- ¿Por qué se deben liberar los recursos en el bloque Finally en lugar de
en el bloque Catch en un proceso de excepción?
A. Porque así no debe repetirse la operación en el bloque Catch
B. Las sentencias del bloque Finally se ejecutan en cuaqluier caso (ocurra o no
ocurra la excepcion)
C. El compilador genera errors si no se liberan los recursos en el bloque Finally
D. No se pueden liberar recursos en el bloque Catch
5
UD-I CURSO DE NET y VISUAL STUDIO
10.- El siguiente bloque de código cambia la extensión de un fichero:
' VB
Dim ourPath As String = "c:\boot.ini"
Path.ChangeExtension(ourPath, "bak")
// C#
string ourPath = @"c:\boot.ini";
Path.ChangeExtension(ourPath, "bak");
A. Cierto porque la clase Path trabaja con el sistema de ficheros
B. Falso porque la clase Path trabaja con el sistema de ficheros
C. Cierto porque la clase Path no trabaja con el sistema de ficheros
D. Falso porque la clase Path no trabaja con el sistema de ficheros
Completar la siguiente tabla:
Respuesta A Respuesta B Respuesta C Respuesta D
Pregunta1
Pregunta2
Pregunta3
Pregunta4
Pregunta5
Pregunta6
Pregunta7
Pregunta8
Pregunta9
Pregunta10
Ejercicio 1. Creación de una estructura.
6
UD-I CURSO DE NET y VISUAL STUDIO
Paso1. Crear un nuevo proyecto en VisualStudio de tipo consola (con la
plantilla de lenguaje que se quiera C#, C++, VBasic).
Paso 2. Crear una estructura “Persona” con tres miembros: nombre,
primerapellido, edad.
Paso 3. Crear un constructor para la estructura que inicialice los tres miembros
antes definidos.
Paso 4. Reescribir el método ToString para mostrar el nombre, el primer
apellido y la edad. Con las siguientes cabeceras:
‘ VB
Public Overloads Overrides Function ToString() As String
// Código a resolver
End Function
// C#
public override string ToString()
{
// Código a resolver
}
Paso 5. Sobre el método principal de la aplicación escribir el código para crear
una instancia de la estructura y llamar al método Console.WriteLine para
mostrar el contenido, por ejemplo:
‘ VB
Dim p As Persona = New Person("Antonio", "Perez", 22)
Console.WriteLine(p)
// C#
Persona p = new Persona("Antonio", "Perez", 22);
Console.WriteLine(p);
7
UD-I CURSO DE NET y VISUAL STUDIO
Ejercicio 2. Declarar y usar un enumerado
Paso1. Usar el proyecto del ejercicio 1.
Paso2. Declarar una enumeración en la estructura Persona para incluir el sexo.
Por ejemplo, con los valores masculino y femenino. Incluir el miembro
correspondiente en la estructura.
Paso3. Modificar el constructor de la estructura para incluir el nuevo miembro.
Paso4. Modificar el método ToString para incluir el sexo en la cadena.
Paso5. Modificar el programa principal para incluir en los constructores el
nuevo miembro.
8
UD-I CURSO DE NET y VISUAL STUDIO
Ejercicio 3. Identificar los tipos por valor / por referencia
Paso1. Crear un nuevo proyecto en VisualStudio de tipo consola (con la
plantilla de lenguaje que se quiera C#, C++, VBasic). Llamarlo “ListaTipos”.
Paso2. Crear instancias de los siguientes tipos: Sbyte, Bytre, Int16, Int32, Int64,
String, Exception
‘ VB
Dim a As SByte = 0
Dim b As Byte = 0
Dim c As Int16 = 0
Dim d As Int32 = 0
Dim e As Int64 = 0
Dim s As String = ""
Dim ex As Exception = New Exception
// C#
SByte a = 0;
Byte b = 0;
Int16 c = 0;
Int32 d = 0;
Int64 e = 0;
string s = "";
Exception ex = new Exception();
Paso3. Incluir cada instancia en un nuevo objeto formación como por ejemplo
‘ VB
Dim types As Object() = {a, b, c, d, e, s, ex}Dim types As Object() = {a, b, c, d, e, s, ex}
// C
object[] types = { a, b, c, d, e, s, ex };
9
UD-I CURSO DE NET y VISUAL STUDIO
Paso4. Utilizando la sentencia foreach comprobar el valor devuelto por el
método object.GetType().IsValueType para determinar si el tipo es por valor.
Mostrar el nombre del tipo y el tipo.
‘ VB
For Each o As Object In types
Dim type As String
If o.GetType.IsValueType Then
type = "Tipo por valor"
Else
type = "Tipo por referencia "
End If
Console.WriteLine("{0}: {1}", o.GetType, type)
Next
// C#
foreach ( object o in types )
{
string type;
if (o.GetType().IsValueType)
type = "Tipo por valor";
else
type = "Tipo por referencia";
Console.WriteLine("{0}: {1}", o.GetType(), type );
}
10
UD-I CURSO DE NET y VISUAL STUDIO
Ejercicio 4. Manejar clases
Paso1. Usar el proyecto del ejercicio 1 (clase Persona)
Paso2. Cambiar la estructura Persona a una clase Persona
Paso3. Crear una nueva clase que sea Jefe que hereda de la clase Persona
‘ VB
Class Manager
End Class
// C#
class Manager : Person
{
}
Paso4. Añadir dos atributos a la clase Jefe que sean cadenas de caracteres
(String) para el número de teléfono y la ciudad donde trabaja.
Paso5. Sobrecargar el constructor de Persona para Jefe para incluir los dos
nuevos miembros.
‘ VB
Public Sub New(ByVal _nombre As String, ByVal _primerapellido As String, _
ByVal _edad As Integer, ByVal _sex As Sexo, ByVal _telefono As String, _
ByVal _ociudad As String)
MyBase.New(_nombre, _primerapellido,_edad, _sex)
telefono = _ telefono
ciudad= _ ciudad
End Sub
// C#
public Manager(string _ nombre, string _ primerapellido, int _ edad,
Sexo _sex, string _ telefono, string _ ciudad)
: base (_nombre, _ primerapellido, _ edad, _ sex)
{
telefono = _ telefono;
ciudad = _ ciudad;
11
UD-I CURSO DE NET y VISUAL STUDIO
Paso6. Sobrecargar el método ToString para incluir el teléfono y la ciudad.
‘ VB
Public Overloads Overrides Function ToString() As String
Return MyBase.ToString + ", " + telefono + ", " + ciudad
End Function
// C#
public override string ToString()
{
return base.ToString() + ", " + telefono + ", " + ciudad;
}
12
UD-I CURSO DE NET y VISUAL STUDIO
Ejercicio 5. Listar ficheros
Paso1. Crear un nuevo proyecto en VisualStudio de tipo Consola (con la
plantilla de lenguaje que se quiera C#, C++, VBasic)
Paso2. Incluir el espacio de nombres: “System.IO” y declarar un método
“MostrarDirectorio” que reciba un objeto de la clase DirectoryInfo.
Paso3. En el nuevo método y con el objeto DirectoryInfo pasar por todos los
ficheros sacando por consola uno por uno.
Paso4. En el caso de que existan subdirectorios, debe llamarse recursivamente
con el subdirectorio encontrado a MostrarDirectorio.
Paso5. En el programa principal es necesario realizar la llamada a
MostrarDirectorio con el directorio elegido a mostrar.
13