Documente Academic
Documente Profesional
Documente Cultură
1. Hacer una versin de la unidad Listas1.pas llamada Listas2.pas que en vez de hacer una
priorizacin incremental por bsquedas, haga una priorizacin absoluta: si se encuentra un
elemento, su componente se pasa a la primera posicin de la lista. Luego hacer una versin del
programa proglistas1.pas llamada proglistas2.pas que utilice la unidad Listas2.
2. Hacer una versin de la unidad Listas1.pas llamada Listas3.pas que realice la carga y agregue
elementos ordenados alfabticamente. Luego hacer una versin del programa proglistas1.pas
llamada proglistas2.pas que utilice la unidad Listas3.
Las pruebas deben efectuarse a partir del archivo nombres.txt provisto como ejemplo.
3. Cuando la cantidad de elementos a cargar en memoria es muy grande, si se enlazan en una nica
lista las bsquedas pueden resultar muy costosas en tiempo de procesamiento. Para reducir los
tiempos de bsqueda, se pueden dispersar los elementos en un nmero fijo de listas, por ejemplo
4, en un array[0..3] of tLista, agregndolos o buscndolos en la lista cuyo nmero
resulte de aplicar una funcin al elemento que retorne un nmero entre 0 y 3.
Hacer una versin de la unidad Listas2.pas llamada Listas4.pas que trabaje con un arreglo de 4
listas de elementos de tipo LongWord y en la que las primitivas determinen la lista donde
agregar o buscar un elemento calculando su mdulo 4.
Hacer tambin una versin del programa proglistas2.pas llamada proglistas4.pas que utilice la
unidad Listas4.
Para poder hacer pruebas con muchos elementos, versionar la primitiva Cargar de manera que en
vez de obtener elementos de un archivo de texto, pida al usuario una cantidad de elementos a
generar pseudoaleatoriamente con Random(high(tElemento)). Versionar tambin la
primitiva Reportar para que encabece el listado de los elementos de cada lista indicando el nmero
de lista, y a continuacin los liste agrupndolos de a 6 por lnea y en columnas de 12 caracteres.
4. Hacer una versin de la unidad Listas3.pas llamada Listas5.pas que trabaje con
tElemento = Record
id: LongWord;
nom: String[25]
end;
1
tComponente = Record
elem: tElemento;
subl: tLista
end;
Como puede verse, la lista es doble y sus componentes deben estar enlazados tanto por orden de
id como por orden de nom. Adems, debe observarse que no puede haber elementos con id
duplicado (antes de agregar un elemento debe comprobarse que no exista uno con el mismo id)
aunque s puede haber ms de uno con igual nom, y en tal caso, los elementos con igual nombre
deben estar ordenados por identificador.
Modificar la primitiva Reportar de manera que en cada lnea del archivo de reporte incluya dos
elementos y las lneas estn ordenadas por identificador del primer elemento y por nombre e
identificador del segundo, simultneamente.
Hacer tambin una versin del programa proglistas3.pas llamada proglistas5.pas que utilice la
unidad Listas3 y confeccionar un archivo de texto con datos de carga adecuados (los elementos no
deben estar ordenados ni por identificador ni por nombre).