Pascal/Turbo Pascal - Array de punteros

 
Vista:
sin imagen de perfil

Array de punteros

Publicado por iueiue (1 intervención) el 09/02/2017 18:40:00
Tengo una duda acerca de la creación de arrays de punteros. El problema en cuestión me pide crear un registro de empleados de los que se quiere guardar su nombre, su edad y su salario.

Para ello me piden crear una unidad (uEmpleado) para definir el TEmpleado (representa a cada empleado de la empresa). Y otra unidad (uRegEmpleados) para definir el TEmpleados (representa el registro de empleados de la empresa). Por ultimo en el programa principal se deberá crear los diferentes empleados pidiendo los datos por teclado y mostrar por pantalla el listado de empleados de la empresa.

Estas son las unidades que he creado:

uEmpleado:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
UNIT uEmpleado;
 
INTERFACE
	CONST
		MaxEmpleados = 5;
	TYPE
		Empleado = RECORD
			nombre: STRING;
			edad: INTEGER;
			sueldo: REAL;
		END;
	PtrEmpleado = ^Empleado;
	tEmpleado = ARRAY [1..MaxEmpleados] OF PtrEmpleado;
 
	VAR
		i: INTEGER;
 
	PROCEDURE CrearEmpleado(VAR n: Empleado);
 
IMPLEMENTATION
	PROCEDURE CrearEmpleado(VAR n: Empleado);
	BEGIN
		FOR i:=1 TO MaxEmpleados DO
		BEGIN
			writeln('Introducir el nombre del empleado:');
			readln(n.nombre);
			writeln('Introducir el sueldo del empleado');
			readln(n.sueldo);
			writeln('Introduce la edad del empleado');
			readln(n.edad);
		END;
	END;
END.

uRegEmpleados:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
UNIT uRegEmpleados;
 
INTERFACE
	USES
	uEmpleado;
 
	CONST
		MaxEmpleados = 5;
	TYPE
		tPtrEmpleados = ARRAY [1..MaxEmpleados] OF ^Empleado;
 
	PROCEDURE CrearEmpleados(VAR n: tPtrEmpleados);
 
IMPLEMENTATION
	PROCEDURE CrearEmpleados(VAR n: tPtrEmpleados);
		VAR i: INTEGER;
		BEGIN
			FOR i:=1 TO MaxEmpleados DO
				BEGIN
					NEW(n[i]);
					CrearEmpleado(n[i]^);
				END;
		END;
END.

Ahora tendría que venir el programa principal pero no sé como crear los diferentes empleados ni mostrarlos por pantalla espero que me puedan ayudar, gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder