Aplicatie metablock
Restaurant
Pentru metablock avem nevoie de un fisier Excel care sa se salveze ca fisier text.
Nume |
Adresa |
Pret |
Zgomot |
Imagine |
Gardunio's |
|
gardunio.jpg |
||
Seagull Street |
5410 Academy (821-0020) |
seagull.jpg |
||
The Cooperage |
7220 Lomas (255-1657) |
Cooperage.jpg |
||
Maria Teresa |
618 |
Theresa.jpg |
||
Samurai |
9500 |
samurai.jpg |
||
Assets 13113q164n Grille |
6910 |
assets.jpg |
||
Monte |
6 bhn7rf |
monte.jpg |
||
|
2500 Yale (243-6111) |
riogrande.jpg |
||
High Noon |
425 San Felipe (765-1455) |
highnoon.jpg |
||
Japanese Kitchen |
|
Japanesekitchen.jpg |
||
Minato |
10721 |
minato.jpg |
||
Michelle's Café |
6205 |
michelle.jpg |
||
|
3601 |
eastocean.jpg |
||
Outback Steakhouse |
Academy |
outback.jpg |
||
Le Café Miche |
1431 |
miche.jpg |
||
Los Cuates |
4901 Lomas (255-5079) |
cuates.jpg |
||
High Finance |
Sandia Tram |
highfinance.jpg |
||
Huong Thao |
1016 Juan Tabo (292-8222) |
huongthao.jpg |
||
Prarie Star |
Bernalillo - |
prariestar.jpg |
||
Ko Palace |
4208 Menaul (884-2293) |
ko.jpg |
||
Ribs |
6601 Uptown (883-7427) |
ribs.jpg |
||
Chen's |
235 Juan Tabo (298-9241) |
chen.jpg |
||
Chow's |
1950 Juan Tabo (298-3000) |
chows.jpg |
||
Black Angus |
|
blkang.jpg |
Salvam acest fisier Excel cu Save As ca si fisier text Rest.txt.:
Salvarea se face în acelasi director cu întreaga aplicatie si cu toate fisierele .jpg.
Implementare în Exsys Corvid:
Se adauga variabilele(Fig.5.1):
Variabile numerice
Variabile de confidenta
variabile de tip Collection
Fig.5.1
Se construieste Logic Block:
Din fereastra Logic Block1 se bifeaza checkbox-ul MetaBlock(Fig.5.2) si se da click pe butonul Metablock. Astfel se deschide fereastra MetaBlock. În aceasta fereastra cu ajutorul butonului Browse se deschide fisierul text salvat Rest.txt. La File To Use vom avea numele fisierului, iar o data cu aceasta Column Heading va afisa implicit câmpurile fisierului(Fig.5.2). Primul rând din tabelul Excel trebuie sa cuprinda titlurile fiecarei coloane. Acest titlu va fi folosit în Logic Block pentru a arata valorile care sunt preluate din fisierul Rest.txt. Trebuie de asemenea sa alegem o variabila care sa ne permita adugarea unor comentarii referitoare la produs, precum si o alta variabila care sa efectueze calculele.
Adaugam aceste variabile în lista:
selectam variabila Comentarii din lista
dam click Add
Fig.5.2
Pasul urmator este construirea regulilor în noul bloc logic pe care îl construim cu metablock.
Primul factor important este pretul. Acesta este o variabila numerica în cadrul sistemului Corvid [buget]. Aceasta variabila indica pretul pe care suntem dispusi sa-l platim. În fisierul Rest.txt exista coloana "Cost" care precizeaza care costul unei mese servite în cadrul restaurantului.
Daca bugetul este mai mare decât costul se adauga puncte la scor, daca bugetul este mai mic decât costul se scad puncte din scor.
Cea mai buna alegere ar fi sa pornim de la 100 de puncte. Astfel, daca costul este mai mic decât bugetul se acorda 100 de puncte. Daca bugetul este mai mic decât costul atunci se scad câte 5 puncte pentru fiecare $(RON) cu care masa costa mai mult decât este prevazut bugetul.
Nota: Variabilele Corvid apar între paranteze drepte [ ], în timp ce titlurile coloanelor preluate din fisierul Rest.txt apar între .
Pentru a adauga regulile IF alegem butonul Add din partea de jos a ferestrei. În fereastra Add to Block selectam din partea stânga variabila [buget], dam click pe butonul Metablock (Fig. 5.3) si din fereastra MetBlock Label se alege si apoi butonul OK.
Fig. 5.3
Pentru a adauga nodul se da click pe butonul Add to List si apoi butonul Done.
Se observa ca scorul porneste de la 100 de puncte în situatia în care costul restaurantului este sub buget, merge la 0 puncte pentru restaurantele care au cu 20 $(RON) peste buget si punctele devin negative pentru restaurantele mult mai scumpe. Dar sa nu uitam ca exista si alti factori care trebuie luati în considerare iar sistemul expert trebuie sa prezinte utilizatorului cele mai bune lageri bazate pe toti factorii avuti în vedere.
Daca ceilalti factori arata ca restaurantul se înscrie "la cea mai buna categorie" chiar daca costurile sunt ridicate, sistemul trebuie sa anunte utilizatorul ca cina este multe peste ceea ce si-a propus. Pentru aceasta se vor construi un set de comentarii cu ajutorul variabilei de colectie [Comentarii]. Aceste comentarii se aplica fiecarui restaurant si-l sterge din fisierul Rest.txt. (Aceasta variabila trebuie sa fie întotdeauna definita si adagata la MetaBlock ca parametru de stergere.)
Pentru a adauga o nota variabilei de colectie, se foloseste metoda .ADD. sirul care se adauga poate sa contina informatii despre datele din fisierul Rest.txt, referirea la acestea facându-se cu ajutorul notatiei .
Daca diferenta dintre pretul unei cine la restaurant si bugetul de care dispunem este cuprins între 5RON respectiv 15RON, precum si daca este mai mare decât 15RON consideram ca este "cu mult mai mult" decât am prevazut, respectiv "considerabil mai mult" decât am prevazut. În ambele situatii vom include pretul(cost) preluat din fisierul .Txt.
Observatie:
În acest caz noile noduri vor fi adaugate la acelasi nivel cu primul nod. Adaugarea nodurilor la acelasi nivel cu primul se face dând click pe butonul Same Lavel Below din grupul IF din partea de jos a ferestrei Logic Block.
În variabila [Comentarii] pot fi adaugate orice fel de explicatii.
Pasul urmator este adaugarea regulilor pentru ceilalti factori de decizie. Primul este [Zgomot]. Acestuia i se acorda între 0-5 puncte, în functie de situatie. În fisierul Rest.txt coloana cu acelasi nume indica scorul restaurantului pe aceasi scala de la 0 la 5.
Sistemul expert acorda 35 de puncte daca nivelul de zgomot al restaurantului coincide cu alegerea utilizatorului. Pentru o diferenta de 1 punct între cele 2 niveluri de zgomot(cel dorit si cel real din linia curenta Excel) se aduna 15 puncte(scorul este 15).
Pentru diferenta de 2 puncte între cele 2 niveluri nu se adauga nimic la scor(scor=0).
Pentru diferenta de 3 puncte se scad 15 puncte(scor
Pentru o diferenta de 4 puncte scor=-30, etc.
În plus daca zgomotul real - zgomotul curent >=2 se va afisa acel comentariu : "s-ar putea sa fie prea mult zgomot pentru dumneavoastra".
Acum sistemul are toate regulile necesare pentru fiecare restaurant iar variabila [Scor] va masura cît de bun va fi restaurantul în functie de preferintele utilizatorului.
Acum va trebui sa precizam variabilei de colectie [Cele mai bune alegeri] sa analizeze liniile din fisierul Excel. Nu trebuie sa alegem cele mai rele restaurante, sistemul va alege doar acele restaurante care au [Scor]>0.
În fisierul Excel avem alte informatii pe care nu le-am folosit - nume, adresa, observatii si imagine. Imaginea poate fi o fotografie a restuarantului sau orice alt semn salvate ca fisiere .jpg. Coloana "observatii" este o descriere scurta a resturantului.
Pentru a salva aceste date prima data adaugam imaginea la începutul comentariilor cu ajutorul comenzii IMG SRC, apoi nume, adresa, zgomot etc.
Metoda ADDFIRST pune comanda IMG SRC ca prima metoda în lista. Metodele ADD care urmeaza pun celelalte informatii la sfârsit. Linia urmatoare este foarte importanta. Aceasta concateneaza toate comentariile despre fiecare restaurant în parte si le adauga o singura data la variabila de colectie [Cele mai bune alegeri] sortându-le în functie de [scor].
Se va analiza fiecare rând din fisierul Rest.txt, toate informatiile fiind adaugate la cele mai bune alegeri. Din aceasta lista se aleg restaurantele care au scorul dorit. Celelalte rânduri se vor sterge automat din metablock.
Etapa urmatoare este adaugarea unui Command Block. Crearea acestui Command Block este similara cu a celorlate aplicatii:
În fereastra Commands se lage Tab-ul Block, iar din lista derulanta alegem numele metablocului rest mb(Fig.5.4):
Fig.5.4
Sistemul expert va trebui sa afiseze rezultatele. Pentru aceasta alegem Tab-ul Results.
Din fereastra Commands alegem butonul Edit. În fereastra Display Commands scriem la Text: "Restaurantele recomandate sunt:". Fiecare restaurant selectat va avea o imagine JPG si un text cu comentarii, observatii si adresa. Acest text poate varia ca lungime. Putem stabili aceste dimensiuni folosind fereastra Edit Format. Deschiderea ferestrei Edit Format se face alegând butonul Edit(Fig.5.5) din fereastra Display Commands:
Fig.5.5
Se va deschide fereastra Edit Format, unde alegem Use TextArea Box, stabilim dimensiunile asa cum se poate observa în figura 5.6 si bifam Last Screen NoOk:
Fig.5.6
Cu butonul OK se revine în fereastra Display Commands unde dam click pe butonul Add Last(Fig.5.7):
Fig.5.7
Variabila [cele mai bune alegeri] poate avea mai multe rezultate care depind de alegerea facuta. Sistemul le poate afisa pe toate dar este recomandat sa le prezinte doar pe primele utilizând proprietatea [cele_mai_bune_alegeri.TOP 5]. Pentru aceasta alegem din fereastra Commands, Tab-ul Results si butonul Edit(Fig.5.8).
Fig.5.8
În fereastra Display Commands se da click pe butonul Prop(Fig.5.9):
Fig.5.9
Se va deschide fereastra Variables. Din partea stânga a ferestrei alegem variabila cele_mai_bune_alegeri iar din partea dreapta de la proprietati alegem metoda TOP(Fig.5.10), iar în textbox scriem 5.
Fig.5.10
Se revine cu butonul OK în fereastra Display Commands. Aici click pe Add Last iar în cele din urma alegem o culoare pentru afisare de la Set Window Background. În final fereastra Commands este urmatoarea(Fig.5.11):
Fig.5.11
Lansarea în executie duce la afisarea restaurantelor care îndeplinesc conditiile cerute de catre utilizator:
|