Unidad 4 vid Flashcards
¿Qué es un puntero en Pascal?
Un puntero es una variable que contiene la dirección de memoria donde se encuentra almacenado un dato.
¿Cómo se define y manipula en Pascal una variable puntero?
Se debe definir el tipo de dato al que se apunta en la sección TYPE.
Declarar las variables punteros necesarias en la sección VAR.
¿Cuál es la ventaja de utilizar estructuras dinámicas en lugar de estáticas en Pascal?
La flexibilidad, ya que las estructuras dinámicas pueden adoptar diversas formas como árboles, listas, redes, etc.
¿Qué tamaño de memoria ocupa una variable de tipo puntero en Pascal?
Una variable de tipo puntero ocupa una cantidad fija de memoria, independiente del tipo de dato al que apunta.
¿Qué procedimientos se utilizan en Pascal para la creación y destrucción de variables dinámicas?
Creación: New(puntero)
Destrucción: Dispose(puntero)
¿Cómo se realiza la creación de una variable dinámica en Pascal?
Utilizando la instrucción New(puntero), que reserva memoria y asigna la dirección de memoria al puntero.
¿Cómo se lleva a cabo la destrucción de una variable dinámica en Pascal?
Utilizando la instrucción Dispose(puntero), que libera la memoria asociada a la variable y deja indefinido el valor del puntero.
¿Cuáles son las operaciones básicas con variables referenciadas por punteros?
Las operaciones son:
Asignación
Lectura
Escritura
Todas las operaciones legales que se puedan realizar con el tipo referenciado.
¿Cómo se denota el contenido de la variable referenciada por un puntero en Pascal?
Se denota con puntero^.
¿Cuáles son las operaciones válidas e inválidas con punteros en Pascal?
- Operaciones válidas: Apnum1:=Apnum1, Apnum1=Apnum2
- Operaciones no válidas: Apnum1:=Apchar, el valor nil.
Ejemplo:
TYPE
VAR
tApcar=^char;
Apcar:tApcar;
BEGIN
New(Apcar);
ReadIn(Apcar^); {Por ejemplo ‘B’}
Apcar^:=Pred(Apcar^);
Writeln(Apcar^);
END
¿Cómo se realiza la comparación entre punteros en Pascal y cuál sería el resultado en un caso específico?
La comparación se realiza comparando las direcciones, no los contenidos. Ejemplo: Apnum1=Apnum2 daría como resultado ‘false’ si apuntan a direcciones diferentes.
¿Qué constante predefinida se utiliza para asignar ningún valor a un puntero en Pascal?
La constante predefinida nil. Ejemplo: apCar:= nil.
¿Podrías proporcionar un ejemplo de implementación de punteros en Pascal, incluyendo la creación, manipulación y destrucción de variables dinámicas?
Ver el código del programa punteros_01 que incluye la inicialización, añadir elementos, recorrer y liberar una lista enlazada utilizando punteros.