A closer look.

Slides:



Advertisements
Podobne prezentacje
Opracowała: Iwona Bieniek
Advertisements

Tablice 1. Deklaracja tablicy
Języki programowania C++
PROGRAMOWANIE STRUKTURALNE
WEKTORY Każdy wektor ma trzy zasadnicze cechy: wartość (moduł), kierunek i zwrot. Wartością wektora nazywamy długość odcinka AB przedstawiającego ten wektor.
Materiały pochodzą z Platformy Edukacyjnej Portalu
Pisemne mnożenie liczb naturalnych
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Macierze Maria Guzik.
Podstawy informatyki Wirtotechnologia – Funkcje Grupa: 1A
SO – LAB3 Wojciech Pieprzyca
Zapis informacji Dr Anna Kwiatkowska.
Matematyka wokół nas Równania i nierówności
wyrażenia algebraiczne
Podstawy programowania
Podstawy programowania
Programowanie strukturalne i obiektowe
Turbo Pascal Turbo Pascal - jedna z popularniejszych implementacji kompilatorów języka PASCAL, zintegrowane srodowisko programistyczne, produkt firmy Borland.
szczególnych Granice ciągów. Postaraj się przewidzieć
Elementy Rachunku Prawdopodobieństwa i Statystyki
Programowanie w logice
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
Wprowadzenie do edytorów tekstu.
Poznaj bliżej program Microsoft Office Word 2007
Wyrażenia algebraiczne
BIBLIOTEKI GŁÓWNEJ AMW
T Zsuwanie się bez tarcia Zsuwanie się z tarciem powrót.
Podstawy informatyki Struktury, operatory, wyjątki
Microsoft Office Excel
Instrukcja USOSweb Wersja: Opracował: Sebastian Sieńko Moduł sprawdzianów.
Zastosowania ciągów.
Systemy liczbowe.
Farseer Physics Engine. Farseer Physics Engine jest silnikiem fizycznym napisanym dla platformy.NET. Został on zainspirowany przez silnik Box2D znany.
Systemy Liczenia - I Przez system liczbowy rozumiemy sposób zapisywania i nazywania liczb. Rozróżniamy: pozycyjne systemy liczbowe i addytywne systemy.
Proste obliczenia w arkuszu
Przekazywanie parametrów do funkcji oraz zmienne globalne i lokalne
Materiały pochodzą z Platformy Edukacyjnej Portalu
Matematyka i system dwójkowy
Podstawy języka Instrukcje - wprowadzenie
E XCEL INACZEJ Przygotował: Przemysław Kacperski.
Moja pierwsza strona internetowa Created by Marta Guba
WYKŁAD 3 Temat: Arytmetyka binarna 1. Arytmetyka binarna 1.1. Nadmiar
1. Tak wygląda strona forum. Wchodząc pierwszy raz zaczynamy od kliknięcia na słowo "rejestracja".
Excel Filtrowanie Funkcje bazodanowe
Krakowski Piotr, Woliński Radosław, Kowalski Piotr, Machowski Michał.
Komendy SQL do pracy z danymi
Działania na ułamkach dziesiętnych
Zasady arytmetyki dwójkowej
Tablice Zajęcia 8. Definicja Tablica (z ang. array) jest zmienną złożoną, która składa się z ciągu elementów tego samego typu. W pamięci komputera tablica.
BAZY DANYCH Microsoft Access Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Katedra Automatyki i.
1. Adres względny 2. Adres bezwzględny 3. Adres mieszany.
Łączenie php z formularzami. Na początek uruchamiamy Xampp.
„Filtry i funkcje bazodanowe w EXCELU”
Do czego służy arkusz kalkulacyjny, jego budowa
P ASCAL Definicje, deklaracje, podstawowe instrukcje 1.
LICZBY NATURALNE I CAŁKOWITE Gimnazjum w Blachowni Hej, mam na imię Zbigniew! Jestem nauczycielem matematyki. Dziś wprowadzę was w cudowny świat liczb.
 Formuła to wyrażenie algebraiczne (wzór) określające jakie operacje ma wykonać program na danych. Może ona zawierać liczby, łańcuchy znaków, funkcje,
Liczby 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, …(i tak dalej) nazywamy liczbami naturalnymi. Tak jak z liter tworzy się słowa, tak z cyfr tworzymy liczby. Dowolną.
Liczbami naturalnymi nazywamy liczby 0,1,2,3,..., 127,... Liczby naturalne poznaliśmy już wcześniej; służą one do liczenia przedmiotów. Zbiór liczb.
Piotr Kawałek , Mateusz Śliwowski
Strumienie, Wczytywanie, Zapisywanie, Operacje na plikach
Typy wyliczeniowe, kolekcje
PROLOG z BLISKA Przygotowali: Konrad Daniszewski, Adam Kuliński, Konrad Poszwiński, Arkadiusz Trzciński.
Jednomany.
Wprowadzenie do edytorów tekstu.
Wskaźniki Elżbieta Labocha.
Patryk Kłys Aleksandra dąbrowska
Przycisk uruchamiający napisany przez nas program
Haskell Składnia funkcji.
PGO Porównywanie obiektów
Zapis prezentacji:

A closer look

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

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”

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ść.

Przykłady Co nie jest atomem?

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

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.

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ę

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

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

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

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

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

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”

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

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)

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

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.

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

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.

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

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

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

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

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

Na obrazku widać jak prolog procesuje wpisane wiersze

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

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

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”