Karolina Supera Michał Krajewski. Struktura w formie drzewa Funktor jest węzłem Składniki struktur są gałęziami W strukturze możemy zagnieżdżać inne struktury.

Slides:



Advertisements
Podobne prezentacje
Temat 2: Podstawy programowania Algorytmy – 1 z 2 _________________________________________________________________________________________________________________.
Advertisements

1 TREŚĆ UMOWY O PRACĘ : Umowa o pracę określa strony umowy, rodzaj umowy, datę jej zawarcia oraz warunki pracy i płacy, w szczególności: 1) rodzaj pracy,
Blok I: PODSTAWY TECHNIKI Lekcja 7: Charakterystyka pojęć: energia, praca, moc, sprawność, wydajność maszyn (1 godz.) 1. Energia mechaniczna 2. Praca 3.
„Jak pomóc uczniom się uczyć i czerpać z tego radość?” opracowała: Krystyna Turska.
OBOWIĄZKI INFORMACYJNE BENEFICJENTA Zintegrowane Inwestycje Terytorialne Aglomeracji Wałbrzyskiej.
Tworzenie odwołania zewnętrznego (łącza) do zakresu komórek w innym skoroszycie Możliwości efektywnego stosowania odwołań zewnętrznych Odwołania zewnętrzne.
Pionierka ogół umiejętności związanych z budowaniem przez harcerzy.
Jak majtek Kowalski wielokąty poznawał Opracowanie: Piotr Niemczyk kl. 1e Katarzyna Romanowska 1e Gimnazjum Nr 2 w Otwocku.
Wyszukiwanie informacji w Internecie. Czym jest wyszukiwarka? INTERNET ZASOBY ZAINDEKSOWANE PRZEZ WYSZUKIWARKI Wyszukiwarka to mechanizm, który za pomocą.
ELEMENTY ZESTAWU KOMPUTEROWEGO
© Kazimierz Duzinkiewicz, dr hab. inż. Katedra Inżynierii Systemów Sterowania 1 Metody optymalizacji - Energetyka 2015/2016 Metody programowania liniowego.
Excel 2007 dla średniozaawansowanych zajęcia z dnia
Finansowanie wybranych działań w parkach narodowych przy udziale środków funduszu leśnego - zakres finansowy Warszawa, 06 kwietnia 2016r.
Wyrażenia Algebraiczne Bibliografia Znak 1Znak 2 Znak 3 Znak 4 Znak 5 Znak 6 Znak 7 Znak 8 Znak 9 Znak 10 Znak 11.
 Czasem pracy jest czas, w którym pracownik pozostaje w dyspozycji pracodawcy w zakładzie pracy lub w innym miejscu wyznaczonym do wykonywania pracy.
Ryzyko a stopa zwrotu. Standardowe narzędzia inwestowania Analiza fundamentalna – ocena kondycji i perspektyw rozwoju podmiotu emitującego papiery wartościowe.
Jeśli chcesz przejść do konkretnego zagadnienia, wybierz je z listy: Dopisanie narzędzia Modyfikacja narzędzia Usunięcia narzędzia Lokalizacja domyślna.
Projekt Regulaminu Działania Komitetu Monitorującego Regionalny Program Operacyjny Województwa Pomorskiego na lata
Bezpieczeństwo i zdrowie w pracy dotyczy każdego. Jest dobre dla ciebie. Dobre dla firmy. Partnerstwo dla prewencji Co badanie ESENER może nam powiedzieć.
Co potrafię w przyjaźni z komputerem?.  Z jakich elementów się składa? Z jakich elementów się składa?  Do czego służy? Do czego służy?  Jakie programy.
Czyli Jędrki, Emki i Zuźki. Każdy człowiek ma w sobie wielkie możliwości, musi je tylko odkryć !
Wprowadzenie Celem naszej prezentacji jest przypomnienie podstawowych informacji na temat bezpiecznego powrotu do domu i nie tylko. A więc zaczynamy…;)
Prawdy oczywiste Kiedy zarejestrować działalność? - Księgowość bez tajemnic! INFOLINIA: |
Zmienne losowe Zmienne losowe oznacza się dużymi literami alfabetu łacińskiego, na przykład X, Y, Z. Natomiast wartości jakie one przyjmują odpowiednio.
Znaki ostrzegawcze uprzedzają o miejscach na drodze, w których występuje lub może występować niebezpieczeństwo albo przeszkody. Znaki te zobowiązują uczestników.
Rozwiązywanie równań I-go stopnia z jedną niewiadomą
Wiem czego chcę!!!.  Każdy z Nas staje przed różnymi wyborami. Jednym z najważniejszych jest wybór ścieżki kształcenia.  Twoja Kariera jest w twoich.
Seminarium magisterskie/licencjackie dr Renata Karkowska Zakład Ubezpieczeń i Rynków Kapitałowych Katedra Systemów Finansowych Gospodarki (wpisać proponowany.
MODUŁ 3 TEMAT 3 POZIOM 1 Zarządzani e czasem. CZY TO JUŻ CZAS PANIKOWAĆ…? Jesteś liderem pierwszej misji na Marsa! Jesteś bliski/a zakończenia pierwszego.
Dodawania i odejmowanie sum algebraicznych. Mnożenie sumy algebraicznej przez jednomian. Opracowanie Joanna Szymańska Konsultacja Bożena Hołownia.
W KRAINIE TRAPEZÓW. W "Szkole Myślenia" stawiamy na umiejętność rozumowania, zadawania pytań badawczych, rozwiązywania problemów oraz wykorzystania wiedzy.
Algorytmy Informatyka Zakres rozszerzony
Organizacja, przepisy i procedury Na przykładzie Śląskiego OW NFZ Dr n. med. Z Klosa.
Lekcja 17 Budowanie wyrażeń algebraicznych Opracowała Joanna Szymańska Konsultacje Bożena Hołownia.
RAPORT Z BADAŃ opartych na analizie wyników testów kompetencyjnych przeprowadzonych wśród uczestników szkoleń w związku z realizacją.
Przygotowała Dominika Karpińska - psycholog. Nie każdy ból dorastania jest depresją, ale też nie każdy można zbyć wzruszeniem ramion i stwierdzeniem;
5 kwietnia 2016 r. (wtorek) część 1. – język polski i matematyka – godz. 9:00 (80 minut – arkusz standardowy lub 120 minut – czas wydłużony) część 2. –
Model Przejść Międzyoperatorskich (na podstawie uwag i rekomendacji izb oraz operatorów) Warszawa, 16 czerwca 2008 r.
Model warstwowy OSI Model OSI (Open Systems Interconnection) opisuje sposób przepływu informacji między aplikacjami programowymi w jednej stacji sieciowej.
KOMBINATORYKA.
Kryteria formalne specyficzne i kryteria premiujące w ramach konkursu nr RPLU IZ /16 Ewa Pachowska – Kurzepa Departament Wdrażania EFS.
 Internet daje morze możliwości pamiętajcie jednak, że niesie ze sobą pewne zagrożenia. Przekażemy wam kilka ważnych wskazówek jak być bezpieczny w Internecie.
TWIERDZENIE TALESA. Tales z Miletu to jeden z najwybitniejszych mędrców starożytności. Zasłynął nie tylko jako filozof ale także jako matematyk i astronom.
Działanie 321 „Podstawowe usługi dla gospodarki i ludności wiejskiej” TARGOWISKA STAŁE Europejski Fundusz Rolny na rzecz Rozwoju Obszarów Wiejskich Europejski.
Menu Jednomiany Wyrażenia algebraiczne -definicja Mnożenie i dzielenie sum algebraicznych przez jednomian Mnożenie sum algebraicznych Wzory skróconego.
Andrzej Feterowski Dyrektor Wydziału Informatyki Urząd Miasta Szczecin BEZPIECZNI RAZEM, czyli zachodniopomorski portal o bezpieczeństwie.
Instalacja nienadzorowana windows xp Jakub klafta.
Python. Języki Programistyczne Microcode Machine code Assembly Language (symboliczna reprezentacja machine code) Low-level Programming Language (FORTRAN,
I T P W ZPT 1 Realizacje funkcji boolowskich Omawiane do tej pory metody minimalizacji funkcji boolowskich związane są z reprezentacją funkcji w postaci.
Optymalna wielkość produkcji przedsiębiorstwa działającego w doskonałej konkurencji (analiza krótkookresowa) Przypomnijmy założenia modelu doskonałej.
Metody sztucznej inteligencji - Technologie rozmyte i neuronowe 2015/2016 Perceptrony proste nieliniowe i wielowarstwowe © Kazimierz Duzinkiewicz, dr hab.
Usługa ePodatki (MF) Michał Dobrzyński, Departament Informatyki MRPiPS tel
Papierosy to zła rzecz, z nim zdrowie idzie precz!!! Autor: Weronika Pączek.
Definiowanie i planowanie zadań typu P 1.  Planowanie zadań typu P  Zadania typu P to zadania unikalne służące zwykle dokonaniu jednorazowej, konkretnej.
Katarzyna Rychlicka Wielomiany. Katarzyna Rychlicka Wielomiany Przykłady Wykresy funkcji wielomianowych Równania wielomianowe Działania na wielomianach.
Zapraszam na spotkanie z wyrażeniami algebraicznymi!
Renata Maciaszczyk Kamila Kutarba. Teoria gier a ekonomia: problem duopolu  Dupol- stan w którym dwaj producenci kontrolują łącznie cały rynek jakiegoś.
Obliczanie procentu danej wielkości Radosław Hołówko.
Sześciolatek idzie do szkoły
POD - żółw przesuwa się po ekranie nie zostawiając za sobą śladu;
DEFINICJA I ZASTOSOWANIE W JĘZYKU HASKELL
Pamięci Henryka Pawłowskiego
Liczby pierwsze.
Materiały pochodzą z Platformy Edukacyjnej Portalu
Wysokości i pole trójkąta równobocznego.
Języki programowania.
A ty dla kogo żyjesz? Dla kogo są Twoje kroki i zmagania każdego dnia?
Implementacja rekurencji w języku Haskell
Andrzej Majkowski informatyka + 1.
Zapis prezentacji:

Karolina Supera Michał Krajewski

Struktura w formie drzewa Funktor jest węzłem Składniki struktur są gałęziami W strukturze możemy zagnieżdżać inne struktury Przykład : rodzice(karol, elżbieta, filip): rodzice karol elżbieta filip

Przykład: struktura: a+b*c czyli: +(a.*(b,c)) + a * b c

Listy – szczególny przypadek struktur Ciąg uporządkowanych elementów o dowolnej długości Kolejność jest ważna Elementami mogą być: stałe, zmienne, struktury, inne listy Lista pusta: [ ] Składowe listy (argumenty funktora) : głowa i ogon Ogon – koniec listy zapisywany jako pusta lista Lista zawierająca pojedynczy element a:.(a.[ ])

. a [ ]

Lista składająca się z atomów a,b,c.(a,.(b,.(c,[ ]))). a. b. c [ ]

Elementami listy mogą być dowolne wartości, w szczególności mogą być to listy.(.(a,b),.(c),d,[ ]) [["a","b"],["c"],"d", []] W powyższym przykładzie, mamy do czynienia z listą zawierającą cztery elementy – pierwszym jest dwuelementowa lista ["a","b"], drugim – jednoelementowa lista ["c"], trzecim – wartość "d", zaś czwartym – lista pusta [].

Przykładowo, predykat może zostać zdefiniowany jako: domain(X, ["maly", "duzy"]). domain(Y, ["czerwony", "zielony", "niebieski"]). domain(Z, ["kwadrat", "trojkat"]). pred(X, "czerwony", "trojkat"). pred("maly", Y, "kwadrat"). pred("maly", "niebieski", "trojkat").

Przykładowe wyświetlanie listy Definiowanie predykantów: p([1,2,3]). p([bury,kot,mruczy,[sobie,pod,nosem]]). Komenda : ?- p([X|Y]). Wynik działania programu : X = 1 Y = [2,3] ? ; X = bury Y = [kot,mruczy,[sobie,pod,nosem]] Yes

Bardziej czytelny zapis list Z poprzednich przykładów: [a] oraz [a,b,c] Głowa – pierwszy element, ogon – wszystko co pozostaje za pierwszym elementem ListaGłowaOgon [a, b, c]a[b, c] [ ](brak) [[bury, kot],mruczy]][bury, kot][mruczy]] [bury,[kot, mruczy]]bury[[kot, mruczy]] [bury, [kot, mruczy], cicho]bury[[kot, mruczy], cicho] [X+Y, x+y]X+Y[x+y]

Lista z głową X i ogonem Y: [X|Y] Zapis jest związany z główną operacją list, czyli dzieleniem ich na głowę i ogon. X i Y jest rozdzielone pionową kreską. Np.: p([1,2,3]) X=1 Y=[2,3] Np.: p([bury, kot, mruczy, [sobie, pod, nosem]]). X=bury Y=[kot, mruczy, [sobie, pod, nosem]]

Przykład Definiowanie predykantów: lista([x,y,z]). lista([jan,lubi,ryby]). Komenda : ?- lista([X|Y]). Wynik działania programu : X = x Y = [y,z] ? ; X = jan Y = [lubi,ryby] Yes

Przykład Definiowanie predykantów: lista2([a,b,c]). lista2([2,4,6,ala,ma,kota]) Komenda : ?- lista2([X|Y]). Wynik działania programu : X = a Y = [b,c] ? ; X = 2 Y = [4,6,ala,ma,kota] Yes

Dekompozycja i strukturalizacja list jest realizowana głównie przez mechanizm unifikacji, a co za tym idzie notacja jest jej podstawą. Na przykład: Komenda : ?- [X,Y|Z]=[a,b,c,d]. Wynik działania programu : X = a Y = b Z = [c,d] Yes Komenda : ?- [X,Y,a]=[Z,b,Z]. Wynik działania programu : X = a Y = b Z = a Yes

Przeszukiwania rekurencyjne Przykładowa lista imion: [adam, kamil, paweł, sylwia, anna, magda] Chcemy sprawdzić czy dane imię znajduje się w liście: W Prologu najpierw sprawdzamy czy interesujące nas imię znajduje się w głowie listy. Jeśli tak, mamy już odpowiedź. Jeśli nie, sprawdzamy czy imię występuje w ogonie listy. Za każdym razem sprawdzamy głowę ogona listy. Gdy dojdziemy do listy pustej – przeszukiwanie kończy się negatywnie.

Jak zapisać to w prologu? Związek obiektu i listy: przynależność. Predykat (funktor) : member(X,Y), jest spełniony wtedy, gdy X należy do listy Y. Musimy sprawdzić dwa warunki : -X naeży do listy, jeśli jest jej głową: member(X,[X|_]). - X należy do listy, jeśli należy do jej ogona: member(X,[_|Y]) :- member(X,Y). _ (podłoga) – zmienna anonimowa (nie potrzebna)

Przykład Komenda : ?- nalezy(X,a). Wynik działania programu : No Komenda : ?- nalezy(X,[a,b,c,d]). Wynik działania programu : X = a ? ; X = b ? ; X = c ? ; X = d ? yes

Przykład Komenda : ?- nalezy(d,[a,b,c,d,e,f,g]). Wynik działania programu : Yes Komenda : ?- nalezy(2, [3,a,4,f]). Wynik działania programu : No

Odwzorowania Przechodzimy przez kolejne składniki starej struktury tworząc jednocześnie składniki struktury nowej. Ty jesteś komputerem Ja nie jestem komputerem Aby wygenerować taki dialog należy : 1. Wczytać zdanie podane przez użytkownika 2. Zmienić wszystkie formy drugiej osoby na pierwszą 3. zmienić Ty na Ja nie Przykład

Odwzorowania Zdefiniowanie predykatu : zmien(X,Y) gdzie X i Y to listy Wywołanie: ?- zmien([czy, mowisz, po, francusku],X) Wynik: X=[nie, mowie, po, niemiecku]. Zmiana pustej listy daje listę pustą: zmien([ ],[ ]).

Liczenie elementów listy Zdefiniowanie : dlugosc([],0). dlugosc([_|Ogon],Dlug) :- dlugosc(Ogon,X), Dlug is X+1. Wywołanie: ?- dlugosc([a,b,c,d],X). Wynik: X = 4 Yes

Łączenie struktur Wywołanie: ?- append([a,b,c],[1,2,3],L3). Wynik: L3 = [a,b,c,1,2,3] yes

Łączenie list Zdefiniowanie sklej([],X,X). sklej([X|L1],L2,[X|L3]) :-sklej(L1,L2,L3). Wywołanie: ?- sklej([a,b],[c,d],X). Wynik: X = [a,b,c,d] yes

Wyświetlanie elementów przed i po Zdefiniowanie sklej([],X,X). sklej([X|L1],L2,[X|L3]) :-sklej(L1,L2,L3). Wywołanie: ?- sklej(Przed,[5|Po],[1,2,3,4,5,6,7,8,9]). Wynik: Po = [6,7,8,9] Przed = [1,2,3,4] ? Yes

Dodawanie elementów Zdefiniowanie dodaj(X,L,[X|L]). Wywołanie: ?- dodaj(a,[c,d],X). Wynik: X = [a,c,d] Yes

Usuwanie elementów Zdefiniowanie usun(X,[X|Reszta],Reszta). usun(X,[Y|Ogon],[Y|Reszta]) :-usun(X,Ogon,Reszta). Wywołanie: ?- usun(c,[a,b,c,d],X). Wynik: X = [a,b,d] ? Yes

Odwracanie list Zdefiniowanie odwroc([],[]). odwroc([H|T],L) :- odwroc(T,R), sklej(R,[H],L) Wywołanie: ?- odwroc([a,b,c,d],X). Wynik: X = [d,c,b,a] Yes

Porównanie rekurencyjne Zdefiniowanie zuzycie_nie_gorsze(Dobre,Zle) :- Progowa is (Dobre + Zle) / 40, Najgorsze is Zle + Progowa, Dobre < Najgorsze. Wywołanie: ?- zuzycie_nie_gorsze(10.5, 10.7). Wynik: Yes Wywołanie: ?- zuzycie_nie_gorsze(10.7, 10.1) Wynik: No

Karolina Supera Michał Krajewski

Generowanie wielu rozwiązań Generowanie wielu rozwiązań zapytania na podstawie zbioru faktów, gdy wiele faktów pasuje do tego zapytania. Prolog nie zapamiętuje zwracanych wyników i ich nie zapamiętuje. Fakty: ojciec(X,Y) oznaczające że Y jest ojcem X: ojciec(maria, jerzy). ojciec(jan, jerzy). ojciec(zuzanna, henryk). ojciec(jerzy, edward). Zapytanie: ?- ojciec(X,Y).

Istnieje wiele odpowiedzi, na żądanie średnikiem kolejnych rozwiązań otrzymamy: Wynik: X=maria, Y=jerzy; X=jan, Y=jerzy X=zuzanna, Y=henryk X=jerzy, Y=edward Kto jest ojcem: ?- ojciec(_,X). Wynik: X=jerzy; X=jerzy; X=henryk; X=edward;

Jednym z dzieci X jest Y, definicja: dziecko(X,Y) :- ojciec(Y,X) Zapytanie: ?- dziecko(X,Y) X jest ojcem: ojciec(X) :-ojciec(_,X). Zapytanie: ?- ojciec(X).

Jeśli mieszamy fakty i reguły, możliwe rozwiązania pojawiają się w takiej kolejności, w jakiej prezentowane są dane. Tak więc możemy zapisać, ze adam jest osobą, że osobą jest wszytsko posiadajace matkę, i że ewa jest osobą. Poza tym różni ludzie mogą mieć różne matki: osoba(adam). osoba(X) :- matka(X,Y). osoba(ewa). matka(kain,ewa). matka(abel,ewa). matka(jabal,ada). matka(tubilkain,sybilla).

Zapytanie: ?- osoba(X). Wynik: X=adam; X=kain; X=abel; X=jabl; X=tubilkain; X=ewa;

Odcięcia Pozwala nakazać interpreterowi Prologu, by nie uwzględniał wcześniejszych możliwości wyboru podczas nawracania. Program działa szybciej, gdyż nie musi niepotrzebnie spełniać celów, których wynik jest już znany, i który nie wnosi do rozwiązania nic nowego. Program zajmuje mniej pamięci komputera, gdyż pamięć jest zużywana oszczędniej z uwagi na to, ze nie trzeba na później zapisywać punktów nawracania.

Przykład Definicja: suma_do(1,1) :- !. suma_do(N,Razem) :- N1 is N - 1, suma_do(N1,Razem1), Razem is Razem1 + N. Zapytanie: ?- suma_do(5,X). Wynik: X = 15 Yes Zapytanie ?- suma_do(4,X). Wynik: X = 10 ? ; X = 10 ? ; X = 10 ? ; X = 10 ? yes

Zapytanie: ?- suma_do(5,X). Wynik: X = 15 ? Yes Zapytanie: ?- suma_do(1,X). Wynik: X = 1 ? yes