Linguaxe de programación C (e XV). Aplicacións II
1992/05/01 Alegria Loinaz, Iñaki | Maritxalar, Montse Iturria: Elhuyar aldizkaria
Neste capítulo definiremos un conxunto de funcións de uso xeral que poden ser almacenadas nunha biblioteca e utilizadas desde calquera aplicación.
O conxunto de funcións que definiremos formará un novo tipo de datos paira o manexo das pistas, e si una aplicación quere utilizar as mesmas, pode facelo a través deste novo tipo de datos coma se tratásese de funcións da biblioteca estándar C. Empecemos por tanto a definir as pistas e as súas funcións.
Unha listaxe estará definido por dúas demostradores, un paira indicar o primeiro compoñente e o outro paira o último. Cada un dos compoñentes da lista ten un punteiro paira indicar o compoñente xunto á saliva, o índice de información do compoñente e a prioridade, xa que é posible introducir os compoñentes por orde de prioridade. No programa 1 aparece o contido do ficheiro lista_def.h, onde se fai a lista e defínese o compoñente.
A continuación deseñaranse e definirán as funcións de lista que precisarán as aplicacións.
Desde o punto de vista do deseño, débese especificar que tipo de funcións serán e que parámetros terán. Paira empezar, necesitaremos a función de crear una lista baleira, que teña como único parámetro o creado, o índice da brisa. Paira saber si trátase dunha simple lista, teremos una función booleana cun único parámetro, a función baleiro. Como nas listas engádense os compoñentes e elimínanse, as funcións principais serán engadilos ao final (sen ter en conta a prioridade) ou engadilos por orde de preferencia, e eliminar o primeiro compoñente ou eliminar o primeiro compoñente dunha determinada prioridade. Asociar, inserir, primeira e saír a este catro funciones corresponderanlles os nomes e as características seguintes:
- ao ser funcións de unir e inserir, terán dous parámetros, lista e compoñente (mediante demostradores) e non devolverán valor.
- Dado que a primeira e as funcións saír eliminan da lista un compoñente, devolverán o índice de devandito compoñente, mostrando en ambos os parámetros como único.
- Na función saír hai que definir outro parámetro sobre a saliva, é dicir, a prioridade, xa que paira iso hai que quitar o primeiro compoñente da lisa.
As funcións deseñadas reflectiranse no ficheiro lista_fun.h, xa que nas aplicacións este ficheiro utilizarase paira crear funcións sobre listas.
Nos seguintes programas iniciouse a definición das funcións 3 a 8, podendo todas elas estar incluídas nun ficheiro ou en ficheiros separados. Ao comezo de cada ficheiro deberá especificarse a sentenza #include lista_def.h.
Na figura 1 reflíctese o estado normal, é dicir, o elemento que se insere non sexa o primeiro ou o último.
As inversas das funcións atar e inserir son a primeira e saír, xa que en lugar de amarrar un elemento quítano.
Una vez compiladas estas funcións, é conveniente gardalas nunha biblioteca paira facilitar o procedemento de enlace cando se referencian desde as aplicacións. As funcións do capítulo anterior non se situaban nunha biblioteca porque estaban escritas paira una aplicación concreta, pero o obxectivo das funcións deste capítulo é ofrecer un novo tipo de datos paira calquera aplicación, polo que o procedemento estándar é situarse nunha biblioteca.
Cada sistema operativo de almacenamento de módulos de obxectos nas bibliotecas ten un comando, tal e como se comentou no capítulo 11.
Se a biblioteca está completa, imos ver como se poden utilizar as funcións mencionadas gardadas na biblioteca.
Explicarémolo cun exemplo. Pensemos que na base de datos do capítulo anterior queremos listar os libros por data de publicación. Segundo o indicado no Programa 9, definiremos una lista e os compoñentes da mesma situaranse na memoria dinámica.
Cada un dos compoñentes ou elementos da Lista está composto polo demostrador adxunto, a data de publicación como prioridade e o índice paira o libro correspondente. Una vez completado a listaxe correndo todos os libros, os compoñentes sacaranse e imprimiranse en orde.
Obsérvese que a lista e os elementos, que até agora non tiñan asignada memoria, definíronse no programa principal, uno na memoria estática e outro na memoria dinámica. Doutra banda, non se realiza a xestión das funcións asociadas ás listas, xa que o ficheiro lista_fun.h está incluído.
Ao vincular o programa farase referencia á biblioteca á que pertencen as listas.
Gai honi buruzko eduki gehiago
Elhuyarrek garatutako teknologia