[ Foro de Pascal ]
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.
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.
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.
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.)