virtualword
Te invitamos a registrarte para poder acceder a todo el contenido gratuito que esta comunidad provee.

Saludos Wink

Lección 023: El tipo Puntero

Ir abajo

Lección 023: El tipo Puntero

Mensaje  Kyshuo Ayame el Mar Nov 05, 2013 10:41 am

Ejercicio1:
a) Determinen cuáles de las siguientes proposiciones son válidas:

Código:
• new(apun1)
• new(apun1^)
• apun1 := apun3
• apun2^ := apun2^ + apun1^
• apun1 := NIL
• apun4^ := NIL
• writeln(apun2, apun3)
• read(apun1^, apun4^)
b) Determinen cuáles de las siguientes proposiciones son válidas:

Código:
1.apun1 := NIL
2.apun2 := new(apun1)
3.dispose(apun3)
4.apun3^ := NIL
5.apun3 := apun4 AND (apun3 = NIL)
6.apun4^ := NIL
======================================================================

Ejercicio 2:

1. Consideren las declaraciones que se hicieron en el Ejercicio 1. Determinen la salida que produce el siguiente código:

Código:
new(apun1);
new(apun2);
new(apun3);
apun2 := apun1;
apun1^ := 2;
apun2^ := 3;
apun3^ := ’A’;
writeln(apun1^, apun2^, apun3^)
2. ¿Tiene algún error el siguiente código? Supongan que apun1 es una variable de apuntador que hace referencia a una variable entera.
Código:
new(apun1);
read(apun1^);
writeln(apun1^);
dispose(apun1);
writeln(apun1^)
======================================================================

Ejercicio 3: Consideren las declaraciones realizadas en el Ejercicio 1, determinen la salida del siguiente código:
Código:
new(apun3);
new(apun1);
apun3^ := ’Z’;
apun2 := NIL;
apun4 := NIL;

IF (apun3 <> NIL) AND (apun2 = NIL) THEN
  writeln (‘Código A’);

IF apun3^ = ‘Z’ THEN
  writeln (‘Código Z’)
ELSE
  writeln (‘Código X’)
======================================================================

Ejercicio 4: Dado el siguiente código en Pascal
Código:
Type
  TipoVehiculo = (barco, camion);
  Transporte = record
      capacidad : INTEGER;
      case vehiculo : TipoVehiculo of
        barco : (habitaciones : INTEGER);
        camion : ();
  end;

var a, b, c : ^Transporte;

begin
new(a);
a^.capacidad := 30;
a^.vehiculo := barco;
a^.habitaciones := 4;
new(b);
b^.capacidad := 4;
b^.vehiculo := camion;
new(c);
c^.capacidad := 5;
c^.vehiculo := camion;
end.
1- ¿Cuál de las siguientes figuras representa el estado de la memoria? (tengan en cuenta que se omiten los nombres y valores de algunos campos para no recargar el dibujo).


2- Dada la instrucción:
Código:
b := c
2.1 ¿Cuál de las siguientes figuras representa el estado de la memoria posterior a la instrucción? (tengan en cuenta que en las figuras se omiten los nombres y valores de algunos campos para no recargar el dibujo).



2.2 ¿Sería correcto hacer dispose(b) antes de la instrucción? Justifiquen.

3- Dada la instrucción
Código:
b^ := c^
3.1 Dibujen el estado de la memoria posterior a la instrucción.
3.2 ¿Qué valor tiene b^.capacidad?
3.3 Teniendo en cuenta que se quiere mantener las referencias a los componentes referenciados ¿sería correcto hacer dispose(c ) después de la instrucción? Justifiquen.


=========================================================================

Navegación:
avatar
Kyshuo Ayame
Admin

Mensajes : 105
Fecha de inscripción : 14/11/2012
Edad : 29

Ver perfil de usuario http://virtualworld.foroargentina.net

Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.