Sie sind auf Seite 1von 3

Universidad Católica del Norte

Facultad de Ingeniería y Ciencias Geológicas


Departamento de Ingeniería de Sistemas y Computación

ESTRUCTURA DE DATOS – CONTROL 1 (I-2017)


-Total: 55 puntos (escala 60%)-

Nombre - RUT:
Fecha: 22 de marzo del 2017.

Competencias a evaluar: Aspectos generales de C++, modelo de programación en C, y abstracción de datos


(tipos concretos y abstractos).

De acuerdo al artículo «An Overview of the C++ Programming Language» de Bjarne Stroustrup:

1. Defina los siguientes conceptos : (8 pts)


 Memoria: Secuencia de palabras o bytes, indexado por enteros llamados direcciones. (2 pts)
 Arreglo: Secuencia de espacios de memoria. (2 pts)
 Puntero: Variable que puede contener una dirección a una posición de memoria. (2 pts)
 Clase: Término usado para los tipos de datos definidos por el usuario. (2 pts)

2. Indique si las siguientes afirmaciones son verdaderas (V) o falsas (F). Justifique las falsas. (14 pts)
 __F__ C++ es un lenguaje de programación de propósito específico. (1 pt)
Es un lenguaje de programación de propósito general. (1 pt)

 __F__ C y C++ son lenguajes de programación de bajo nivel porque pueden manipular directamente
los recursos de hardware. (1 pt)
Son lenguajes de alto nivel. (1 pt)

 __V__ El almacenamiento automático aplica a parámetros de funciones y variables locales. (2 pts)

 __V__ Los archivos de extensión .h contienen las interfaces. (2 pts)

 __F__ La mayoría de las reglas del lenguaje son revisadas durante la ejecución del programa. (1 pt)
Son revisadas antes que el programa se ejecute (compilación). (1 pt)

 __F__ Los tipos de datos definidos por los usuarios son concretos. (1 pt)
Se pueden crear tipos de datos abstractos. (1 pt)

 __V__ La declaración friend otorga acceso completo a la representación de la clase. (2 pts)

3. Encierre en un círculo la letra de la alternativa correcta: (4 pts)


 C++ está basado en: (1 pt)
a) C y Java.
b) Java y C#.
c) Simula y C.
d) Sólo C.
e) C, Java, C#, y Simula.
 ¿Para qué se usa el símbolo *? (1 pt)
a) Para obtener la dirección de una variable en memoria.
b) Para indicar cuándo una variable es un puntero.
c) Para acceder al contenido de una dirección de memoria.
d) Letras a y b.
e) Letras b y c.

 ¿Cuál de las siguientes afirmaciones es falsa? (1 pt)


a) Los tipos concretos definen su representación en la declaración.
b) Los tipos abstractos no incluyen la representación en su declaración.
c) En los tipos concretos no se puede cambiar la representación de un objeto sin recompilar el
código.
d) Los atributos virtuales en una clase abstracta son siempre definidos luego en una clase
derivada.
e) Las funciones de las clases derivadas sobrescriben las de la clase base.

 La función principal de un destructor es: (1 pt)


a) Complementar al constructor.
b) Eliminar la referencia mayor.
c) Eliminar los punteros de una clase.
d) Liberar los recursos.
e) Ocultar el objeto creado para que no sea accesible.

4. Responda las siguientes preguntas : (15 pts)


 ¿Qué conserva C++ de los lenguajes de programación en que se basa? (2 pts)
R: De C, su flexibilidad y eficiencia. De Simula, su capacidad de abstracción (POO, organización de
programas).

 Mencione los objetivos de diseño de C++: (3 pts)


R:

 Mencione 4 reglas generales del diseño de C++: (4 pts)


R: 4 reglas tomadas de:
 ¿Cuáles son las 3 formas fundamentales para el uso de memoria en C++? (sólo menciónelas). (3 pts)
R: Memoria estática, memoria automática, y almacenamiento libre.

 ¿Cuáles son los beneficios de utilizar interfaces? (3 pts)


R: Son simples, eficientes, robustas, permite distintas implementaciones del mismo concepto, y
aísla al usuario de los cambios en las implementaciones.

5. Dado el siguiente código:

 Comente qué hace en las líneas: (10 pts)


a) 11: Crea un puntero “a” que apunta a la posición [2] del vector. (1 pt)
b) 12: El contenido en “a” (= vect[2]) es 4. (1 pt)
c) 13: El contenido en “a+2” (= vect[4]) es el contenido en “a” (= 4) más 1, es decir, 5. (3 pts)
d) 14: El puntero “a” avanza una posición, quedando así sobre vect[3]. (1 pt)
e) 15: El contenido en “a+3” (= vect[6]) es la suma del contenido en la dirección donde se encuentra
vect[2] (= 4) más 3, es decir, 7. (4 pts)

 Indique cuál es la salida del programa. (4 pts: 0.5 por posición del vector)

Das könnte Ihnen auch gefallen