Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

A closer look.

Podobne prezentacje


Prezentacja na temat: "A closer look."— Zapis prezentacji:

1 A closer look

2 Podsumowanie poprzedniej części
W tej części spróbujemy popatrzyć bliżej na to, co było omówione w poprzedniej części. Prolog pozwala strukturyzować dane, również rząd wykonania operacji

3 Składnia W tej części spróbujemy uzupełnić wszystko to, co poznaliśmy wcześniej Prolog jest pobudowany na warunkach, warunkiem może być zmienna, stała albo struktura. Każdy warunek jest zapisywany jako ciąg znaków. Znaki są rozdzielone na kilka podgrup, takie znaki są wiadome, jako „Znaki ASCII”

4 Stałe W prologu są 2 typy stałych: atomy i numery.
Specjalne symbole, które prolog używa, żeby oznaczać pytania ?- lub reguły :- są też atomami. Są 2 typy atomów: zrobione z liter i liczb albo z symboli. Pierwszy zwykle zaczyna się z małych liter. Atomy zrobione z symboli zwykle zawierają tylko symboli. Czasami jest potrzebne tworzenie atomów, które się zaczynają z wielkiej litery albo z cyfry. Jeżeli atom zamknięty w cudzysłowie ’ , to atom może zawierać wszystkie litery w swojej nazwie. I na koniec podkreślenie _ może być wstawione w centrum nazwy atomu, żeby zwiększyć czytelność.

5 Przykłady Co nie jest atomem?

6 Numery Numery to inny rodzaj stałych Przykład numerów
Litera e w tym ciągu oznacza mnożenie na 10 do potęgi 2, jak w przypadku liczby -2.67e2

7 Składnia.Zmienne Następny element używany w prologu – zmienna. Nazwa zmiennych zaczyna się z wielkiej litery albo podkreślenia. Długość nazw zmiennych może być dowolna, naprzykład Istnieje też zmienna, która się nazywa anonymous variable. Zapisuje się podkreśleniem. Taką zmienną możemy użyć, kiedy chcemy się dowiedzieć, jaki parametr pasuje do naszej funkcji.

8 Struktury Trzecim typem określeń są struktury. Struktura to pojedynczy obiekt, który składa się z kilku innych obiektów, nazywanych komponentami, które są pogrupowane razem we wnętrzu jednej struktury. Przykładem struktury w życiu jest zakładka do książki z biblioteki, data kiedy książka została wyprodukowana, gdzie ją można znaleźć w bibliotece i tak dalej. Struktury są przydatne, kiedy jest wspólny obiekt, z którego wszyscy korzystają. Na przykład oznaczamy, że John ma książkę

9 A teraz widzimy, że mary również ma tę samą książkę, którą ma John, bo ona ma taką samą nazwę
Obiekty określane są tylko za pomocą ich imion. Na przykład Dodaliśmy więcej informacji na temat książek, które mają John i Mary za pomocą innych stałych, ale przy napisaniu większej programy może okazać się, że po prostu nie będzie wiadomo co oznaczają te lub inne stałe. W takim przypadku powinniśmy użyć struktury. Do struktury jest wpisywany funktor i jego komponenty. Komponenty znajdują się w nawiasach i są rozdzielone przycinkiem. Biorąc pod uwagę ten fakt, że John ma książkę z nazwą Wuthering Heights, autorstwa Emily Bronte mamy

10 Wewnątrz owns mamy strukturę z tytułem książki i autorem
Wewnątrz owns mamy strukturę z tytułem książki i autorem. Tak, jak struktura znajduje się wewnątrz faktu, jak jeden z jego argumentów, to ona zachowuje siebie jako objekt, biorąc udział w związku. Jeżeli chcemy, to możemy również dodać kolejną strukturę z nazwą i nazwiskiem autora Struktury mogą uczestniczyć w procesie pytań-odpowiedzi, za pomocą zmiennych. Na przykład, jeśli chcemy się dowiedzieć czy John ma jaką kolwiek książkę Bronte

11 Jeśli okaże się, że w kodzie istnieje podobny zapis to jako X prolog wyświetli tytuł książki a jako Y imię pisarza. Albo możemy po prostu użyć anonimowe zmienne Możemy też modernizować strukturę, dodając kolejny argument, który pokazuje jaką kopię książki mamy. Teraz wiemy, że mamy 3129 kopii książki

12 Symbole Nazwy stałych i zmiennych są budowane za pomocą ciągów znaków.
W prologu wszystkie typy nazw(atom,integer albo variable) mają reguły odnośnie wykorzystanych symbolów. Ale również jeden symbol może być tak samo rozpoznany jako przedmiot z danymi Prolog rozróżnia dwa typy symbolów: drukowane i nie drukowane Drukowane pojawiają się na konsoli komputera, nie drukowane – nie ale wykonują jakąś funkcję odnośnie redagowania tekstu, jak początek nowego wiersza albo uruchamianie sygnału. Drukowane symbole już były omówione jako ASCII ciąg Symbole mogą brać udział w drukowaniu, odczytaniu z klawiatury, porównywaniu i matematycznych operacjach

13 Operatory Czasami jest wygodnie napisać jakieś funkcji jako operatory. Operatory są formą składni, która pomoga w przeczytaniu struktur. Naprzykład arytmetyczne operatory często są używane jako operatory. Jak piszemy wyrażenie „x+y * z” wywołujemy operatory sumowania i mnożenia. Jakby chcielibyśmy napisać wyrażenie za pomocą struktur, to musielibyśmy napisać +(x,*(y,z)) . Arytmetyczne operatory są łatwiejsze do korzystania ale tylko dlatego, że używamy ich z dzieciństwa

14 Trzeba też rozumieć, że w prologu 3+4 nie oznacza to samo, co i 7.
3+4 jest innym sposobem na napisanie struktury +(3,4) Teraz spróbujemy zrozumieć, jak czytać arytmetyczne wyrażenia, które mają operatory wewnątrz. Żeby to zrobić potrzebujemy 3 rzeczy: pozycja, precedens, asocjatywność. Głównie będziemy używać atomy +,-,* i / Operatory +,-,* i / są zapisywane przed ich argumentami, ich nazywamy infix operatorami. Również możliwe napisanie operatorów jako „-x + y”

15 Jeśli chcemy zapisać silnię, to piszemy tak „x
Jeśli chcemy zapisać silnię, to piszemy tak „x!”, operator wykorzystany tu nazywamy postfix operatorem W następnej części prezentacji będą omówione infix operatory Kiedy widzimy wyrażenie „x+y*z”, to my znamy, że najpierw robimy operację mnożenia a potem sumowania. Znamy, bo dowiedzieliśmy się o tym w szkole Z innej strony żeby być pewnym można użyć strukturę +(x,*(y,z)) Czyli, jak wykorzystamy operatory potrzebujemy reguły, które zadają kolejność wykonania operacji. Innymi słowy precedens

16 Precedens operatora pokazuje, jaka operacja powinna odbywać się pierwszą. Każdy operator, używany w Prologu ma klasę precedensu związaną z nim Jak widzimy wyrażenie „8/2/2” nie wiemy czy oznacza ono (8/2)/2 czy 8/(2/2) W naszym przypadku wyrażenie będzie wyliczone jako (8/2)/2, bo operator / ma lewą asocjację, również 5+8/2/2 będzie przeczytane jako 5+((8/2)/2)

17 Równość i Unifikacja Operator równości w prologu wygląda tak, jak i w innych językach Jeżeli wcześniej nie zdefiniowaliśmy nigdzie x i y to x zawsze będzie równy y Również za pomocą operatora można przydzielić wartość do zmiennej X Liczby i atomy są zawsze równe siebie

18 Taki przykład też jest poprawny i jego wynikiem będzie to, że X będzie mieć wartość bicycle
Struktury mogą być zagnieżdżone jedna wewnątrz drugiej. Naprzykład Skończy się z napisem TRUE, B otrzyma wartość b, C wartość c i tak dalej.

19 W następnym przykładzie cel X=Y skończy się pomyślnie, jeżeli argument nie był utworzony
Można zrobić następujące zadania jako ćwiczenia

20 Arytmetyka W prologu istnieją następujące arytmetyczne operatory
Zauważcie, że w prologu operator less than or equal to różni się od tego, co mamy w innych językach. Atom <= jest wykorzystany w innych celach.

21 Przypuśmy, że mamy bazę danych, która zawiera nazwiska książąt i lata ich panowania
I teraz chcielibyśmy się dowiedzieć kto z książąt panował w jakimś określonym roku

22 Sformujemy warunek Tłumacząc na język prologa otrzymujemy I teraz możemy sprawdzić następujące zapytania

23 Następujący przykład pokazuje jak można wyliczyć gęstość państwa znając rozmiar populacji i zależność ludności do powierzchni. Struktura pop zawiera nazwę kraju i ilość ludzi w milionach Teraz spróbujemy zdefiniować problem za pomocą prologu Operator is przypisuje wartość po wykonaniu wyrażenia

24 Teraz spróbujemy sprawdzić działanie napisanej funkcji
W pierwszym przypadku otrzymaliśmy 200, co oznacza, że gęstość w Chinach to 200 ludzi na milę kwadratową, w przypadku Turcji nie otrzymaliśmy wyników, bo Turcji niema w naszej bazie danych Zresztą najczęściej używanymi są następujące operatory

25 Podsumowanie Prolog zawsze próbuje spełnić cel liniowo, czyli z lewa w prawo.

26 Na obrazku widać jak prolog procesuje wpisane wiersze

27 Na obrazku niżej cały proces jest pokazywany dokładniej

28 Jeżeli jeden z warunków był nieudany, to prolog wraca się do poprzedniego wyrazu

29 Podsumując wrócimy do sumowania
Wpisując nie otrzymamy 5 a tylko zmienimy wartości X i Y na 2 i 3, jeżeli na prawdę chcemy otrzymać sumę, to musimy wykorzystać „is”


Pobierz ppt "A closer look."

Podobne prezentacje


Reklamy Google