Está en la página 1de 32

CICLO 2014-2 Módulo: I

Unidad: III Semana: 06

SISTEMAS EXPERTOS
“DESARROLLO DE LISTAS
DINÁMICAS”

Gabriel Percy Michhue Vela


Generalidades
• No use el escritorio para grabar sus
proyectos.
• No use su puerto para guardar sus
proyectos
• Use siempre una carpeta en un disco duro
(c:\;d:\)
• Cuando coloque los controles trate de no
cambiarles el tamaño, sobretodo a los
ListButton
Objetos de Lista
• Los objetos de lista son: ListBox,
ListButton y ListEdit, todos ellos pertencen
a la clase ListBox por eso sus predicados
nativos (procedimientos definidos) se
prefijan con lbox_ en la forma:
lbox_procedimiento
• A los lbox se le añaden, eliminan, cuentan,
etc. elementos.
Predicados de lbox
lbox_Add/2
lbox_Add/3
lbox_Clear/1
lbox_CountAll/1
lbox_Delete/2
lbox_GetAll/1
lbox_GetItem/2
lbox_GetSel/3
lbox_GetSelIndex/1
lbox_IsSel/2
lbox_Resume/1
lbox_SetColumnWidth/2
lbox_SetSel/3
lbox_SetTabStops/2
lbox_SetTopIndex/2
lbox_Suspend/1
Forma de uso
• Los elementos se pueden añadir de uno en uno a
un manejador de lbox:
lbox_add(MANEJADOR, “Suma”).
• Los elementos se pueden añadir a partir de una
lista (estructura de datos):
• Sea:

L=[“Suma”,”Resta”,”Multiplicación”,División”
] lbox_add(MANEJADOR,L). Pd:
para que se vean en el orden indicado
quitar el check en SORT al definir el List
• Los elementos se pueden añadir a partir de un
conjunto de cláusulas de un predicado
empleando findall(X,Y)
Llenar Listas Dinámicamente

idc_opc1 idc_opc2

idc_elegir

En este ejercicio lo importante es que el ListButton llamado idc_opc2 se llenará


con una lista distinta de elementos en función de la elección en idc_opc1.
Idc_opc1 muestra las palabras “SI” y “NO”. Al elegir “SI” se verá en idc_opc2
“Perú”, “Argentina”, “Chile”, “Venezuela”. Al elegir “NO” se verá en idc_opc2
“Bolivia”, “Colombia”, “Brasil”, “Paraguay”.
Código
1

4
Explicación

1. Como requerimos cláusulas que hagan


referencia al contenido de un componente, la
forma del predicado respectivo será
nombre(WINDOW,dominio), como
llenar(WINDOW, string) para implementar la
cláusula llenar(_win,”SI”). Es nondeterm por
que tendremos una cláusula para SI y otra
para “NO”
2. Se implementa el predicado llenar con dos
cláusulas: una para cuando el valor que se eligió en
idc_opc1 es “SI” y otra cuando es “NO”.
Se define una lista (ListA), con 4 expresiones de
cadena, se implementa un manejador para idc_opc2
(H), limpiamos dicho manejador para que no se llene
constantemente (lbox_clear(Manejador)) y llenamos el
manejador con la lista definida
(lbox_add(Manejador,Lista)).
3. Se define una lista (L), un manejador (H), y se llena el
manejador. Este código se escribe en la sección de
creación de componentes del task_window
4. Se implementa un manejador para el ListButton
icd_opc1, una variable que contenga el texto de dicho
manejador (Opcion) y se invoca a la cláusula llenar
pasándole el valor de la variable no sin anteponer el
hecho de que dicha cláusula maneja un control
(WINDOW)
Buscar en Predicado el contenido de Listas.

id_licor

id_resultado

Idc_buscar

id_licor e idc_resultado son ListBox. En el primero se verán 2 tipos de licor


(cerveza,vino). Al elegir uno de ellos y hacer click en buscar se hará una
consulta a un predicado donde aparecen aquellos que le gusta cada uno de
los licores mencionados y se mostrarán en idc_resultado.
Código
1

4
Explicación
1. Predicado gusta con dos objetos symbol
2. Cláusula que implementa el predicado
gusta con nombres y el licor de su
agrado
3. Llenamos el ListBox superior con el tipo
de licor.
4. Manejadores para ambos ListBox,
limpiamos el ListBox de salida
(idc_resultado)
Index es una variable que captura el índice del elemento
seleccionado en idc_licor a través del predicado
getSelIndex.
Item captura el elemento de texto del manejador que se
indica en función del Index de la selección con el
predicado getItem.
Predicado findAll que busca todos los X en el predicado
gusta que coincida con el valor de Item. Cada
coincidencia se pasa a la lista L, que se añade al
ListBox idc_resultado.
Cargar predicado en Lista

Id_blanca

La idea es llenar el ListBox llamado id_blanca con el contenido de una


cláusula desde la creación de componentes de forma que cuando se ejecute
la lista se vea llena
Código
1

4
Explicación

1. Dominio de tipo symbol


2. Predicado blanca con un objeto de tipo
symbol
3. Implementación de cláusulas blanca con
artefactos de línea blanca como
contenido
4. Uso de findall en la sección de creación
de componentes.
Aplicación de Ejemplo I

• Cree un proyecto llamado DenPob.


• Cree una carpeta DenPob para
guardarlo.
• Debe ser un proyecto SDI.
• Cree el formulario que aparece en la
diapositiva siguiente.
• Los identificadores deben ser los
que se indican.
• El identificador de las etiquetas
puede ser cualquiera.
idc_pais

idc_area

idc_pob

idc_densidad

idc_mostrar

Una vez diseñado ejecute la aplicación para que se añadan los controles en el
código y puede escribir en la sección de creación de controles.
Dominios y predicados
Llenar ListButton

• Cuando escriba este código cópielo en el


block de notas por previsión. Cualquier
pequeña modificación en el tamaño o
posición de los componentes reescribirá la
sección de creación de componentes y se
borrará el código que ha añadido.
• No cambie el tamaño del ListButton.
Recuerde que esta es una versión no
comercial con restricciones.
Código

Esta es la sección de creación de controles.


La crea Prolog cuando se ejecuta la
aplicación
El código aluego
partirde
detener los controles. Lo
List mejor
que está en
colocarlo el círculo
después es lo que
de endef y escribe. Si
cambia
antes detamaño
! o posición de controles la
sección se reescribe y el código añadido se
borra
Cláusulas
Cláusula del botón mostrar
Aplicación de Ejemplo II

• Cree un proyecto llamado Operar.


• Cree una carpeta Operar para guardarlo.
• Debe ser un proyecto SDI.
• Cree el formulario que aparece en la diapositiva
siguiente.
• Los identificadores deben ser los que se
indican.
• No hay etiquetas pero puede añadirlas Ud. para
lograr más claridad.
Dominios, predicados y cláusulas
Llenar ListButton

No olvide que la posición correcta del código es donde está indicando la flecha
Código para el botón Calcular
Ejercicio
Detalles
Los ListBox muestran Entradas, platos
principales y postres de una BDC de 4
predicados: entrada, carne, pescado, postre.
Al elegir una opción de cada ListBox se verá
por debajo su precio y su valor calórico
(usamos el evento selchange).
El segundo listBox muestra carnes y
pescado.
Si hacemos click en Mostrar aparecen el
costo total y el total de calorías del “combo”
pedido.
Base de Conocimientos

tipo_plato(plato,precio,caloria)
El contenido de las cláusulas de tipo hechos es plato, precio, calorías.

También podría gustarte