[ Foro de Pascal ]

Manejo de registros Pascal

26-Jan-2014 19:06
Invitado (Carlitos)
3 Respuestas

Buenas tardes, estoy iniciandome en la programacion y tengo un ejercicio que me parece muy complicado, debo guardar una lista de diferentes datos (nombres, cedulas, fechas, y eventos ) y luego ordenarlos segun la consulta que se quiera hacer, por ejemplo eventos de una fecha XXXx o nombres y cedulas....ahora bien use un record para la informacion y todo bien, pero estoy super complicado para la parte de las consultas, no se como ordenar esos registros, no tengo idea donde me podría documentar, por favor aceptaria cualquier ayuda.


26-Jan-2014 20:21
Nacho Cabanes (+32)

Da más detalles sobre lo que sí sabes hacer.

Por ejemplo, sabrías ordenar una lista si fuera  de cadenas de texto (strings)?

También ayudaría si incluyes un fragmento de tu programa para ver cómo es exactamente tu registro.


26-Jan-2014 23:13
Invitado (Carlitos)

Bueno la verdad, no se como ordenar una lista, solo intente hacer una ordenación de un array con el método burbuja, pero fue guiándome de otro ejercicio, ...y era una lista de números. anexo el ejercicio que estoy haciendo..

Una escuela desea realizar un informe de estadísticas sobre las puntuaciones de sus alumnos en un lapso determinado, se debe presentar un menú de mantenimiento con las siguiente opciones ; Incluir, Consultar, Modificar, Eliminar, Reportes y Salida.
Debe registrar con la opción incluir los siguientes datos :

Nombre del alumno, numero de cedula, notas, fechas de evaluaciones y promedio de notas y las estadísticas que debe reportar el registro son ;

Lista ordenada de registro por fechas  y alumno.

Lista ordenada de alumno por números de cédula

y una lista ordenada por promedios y alumnos..

actualmente solo llevo esto

 
program alumnos;
 
uses crt;
    type
	registro 	= record
	fecha	      	: string;
	notas	      	: integer ;
	nombre     	: string ;
	cedula	: integer;
end;
	var
	datos : array[0..20] of registro
	cont : integer;
 
procedure entrada_datos;
 
	var
	d : integer;
	k : char;
 
	begin
		writeln('***** informacion del estudiante *****');
		writeln;
		write(' numero de cedula : ');
		readln(datos[cont].cedula);
		for d := 1 to length(datos[cont].cedula) do
			datos[cont].cedula[d] := upcase(datos[cont].cedula[d]);
			write(' nombre del alumno: ');
			readln(datos[cont].nombre);
			write(' nota  : ');
			readln(datos[cont].nota);
			write(' fecha de evaluacion d/m/a : ');	
			readln(datos[cont].fecha);
			repeat
				readln(k);	
			until  cont := 20;
	end;
 


y mas abajo debo colocar el proceso que llame a los otros, eso es lo que entendi hasta ahora.... espero te sirva lo que te envie.


27-Jan-2014 21:20
Nacho Cabanes (+32)

Si sabes ordenar un array de strings mediante el método de burbuja, puedes usar exactamente la misma idea para ordenar un array de records a partir del valor de uno de sus campos. En vez de comparar "nombre[i]", mirarías el valor de "datos[i].nombre", e intercambiarías todo un registro por otro (datos[i] por datos[j]).






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)