Prezentacja do pobranie:

Wielkość: px
Rozpocząć pokaz od strony:

Download "Prezentacja do pobranie:"

Transkrypt

1 Prezentacja do pobranie: 1 Prolog programowanie ROZDZIAŁ 1: WPROWADZENIE ROZDZIAŁ 2: PROLOG Z BLISKA NA PODSTAWIE: PROLOG. PROGRAMOWANIE- W. F. CLOCKSIN, C. S. MELLISH AUTOR OPRACOWANIA: BARTŁOMIEJ KAFTAN

2 Instalacja Prologu w środowisku Windows 2 Współcześnie jest dostępnych szereg implementacji Prologu, w tym swobodnie dostępne kompilatory Prologu: Jan Wielemaker, SWI- Prolog, Daniel Diaz, GNU- Prolog,

3 Instalacja Prologu w środowisku Windows 3 Pobieramy plik wykonywalny, i instalujemy środowisko do programowania w języku Prolog: Po zainstalowaniu mamy skrót w menu start z pozytywnie wyglądającą ikonką:

4 Uruchomienie zainstalowanego 4 środowiska: Stwórzmy pierwszą bazę danych, która posłuży nam do wykonanie pierwszych zapytań: Tworzymy plik tekstowy z rozszerzeniem *.pl W jego treści wpiszemy przykładowe dane: Skrypty z rozszerzeniem pl zapisujemy w domyślnym katalogu dla skryptów, będzie to zapewne folder Prolog w katalogu Moje dokumenty.

5 Pierwszy program w Prologu 5 Ładujemy bazę danych poleceniem: [nazwa_pliku bez rozszerzenia pl]. W naszym przypadku [fam]. Pojawi się true w przypadku poprawnego załadowania bazy danych. Następnie wywołujemy polecenie:?- kobieta(x). X = kasia pierwszy wynik, następny wywołamy naciskając średnik. X = eliza kolejny wynik. Wyniki są zgodne z zadaną bazą danych.

6 Podstawowe polecenia 6 Każdą linie kodu kończymy kropką: cd('c:/users/bk/documents/prolog'). pwd. write( Hello World ). Zakończenie pracy w powłoce: halt. Komentarz w skryptach: % treść komentarza jednolinijkowego /* komentarz wielolinijkowy */

7 Podstawowe polecenia 7 Ładowanie bazy do interpretera: [nazwa_pliku]. [ścieżka/nazwa_pliku.pl'] Domyślne miejsce przechowywania baz danych: pwd. sprawdzenie domyślnego miejsca na bazę. cd(ścieżka/do/katalogu'). zadanie nowego miejsca zaciągania baz danych. Wyświetlenie zawartości wczytanej bazy danych: listing. wyświetlenie bazy. listing(predykat). informacja na temat danego predykatu apropos(nazwa) informacje na temat predykatów zawierających zadaną nazwę

8 Podstawowe polecenia 8 Sposoby uzyskania pomocy: help. wyświetla cały manual help(predykat) np. help(write). wyświetli informacje na temat danego predykatu. Narzędzia do edycji skryptów: emasc. uruchamia edytor emacs zwykły notatnik, okno swi-prolog file/edit Operatory:, - operator and ; - operator or

9 Prolog jako język programowania logicznego 9 Programowanie logiczne: - programowanie w logice; - programowanie w języku logiki; Programowanie logiczne, jest to metoda programowania, będąca odmianą programowania deklaratywnego. Programowanie deklaratywne - programista opisuje warunki, jakie musi spełniać końcowe rozwiązanie (co chcemy osiągnąć), a nie szczegółową sekwencję kroków, które do niego prowadzą (jak to zrobić). Programowanie deklaratywne często traktuje programy jako pewne hipotezy wyrażone w logice formalnej, a wykonywanie obliczeń jako ich dowodzenie. Programowanie deklaratywne jest szczególnym przedmiotem zainteresowania naukowców, gdyż dzięki minimalizacji lub eliminacji skutków ubocznych może znacząco uprościć tworzenie programów współbieżnych. Paradygmat programowania deklaratywnego obejmuje szeroką gamę języków programowania i bardziej szczegółowych paradygmatów podrzędnych. Przykładami programowalnych języków deklaratywnych są języki funkcyjne i logiczne takie, jak Ocaml, XSLT czy Prolog.

10 Prolog początki 10 Nazwa języka Prolog pochodzi od francuskiego Programmation en Logique, można to przetłumaczyć jako programowanie w logice. Prolog powstał jako język programowania służący do automatycznej analizy języków naturalnych, jest jednak językiem ogólnego zastosowania, szczególnie dobrze sprawdzającym się w programach związanych ze sztuczną inteligencją. Prolog w przeciwieństwie do większości popularnych języków jest językiem deklaratywnym. Prolog został stworzony w 1971 roku przez Alaina Colmeraurera i Phillipe'a Roussela.

11 Zastosowanie języka Prolog 11 Relacyjne bazy danych, Logika matematyczna, Rozwiązywanie problemów abstrakcyjnych, Przetwarzanie języka naturalnego, Automatyzacja projektowania, Symboliczne rozwiązywanie równań, Analiza struktur biochemicznych, Różne zagadnienia z dziedziny sztucznej inteligencji.

12 Pisanie programów w Prologu 12 Programowanie w prologu nie polega na opisywaniu konkretnych algorytmów, tak jak w tradycyjnych językach programowania. Pisząc programy w Prologu musimy zająć się formalnymi relacjami i obiektami związanymi z zadaną problematyką, sprawdzając prawdziwość poszczególnych relacji, dla zadanego problemu. Programując w Prologu opisujemy znane fakty i relacje dotyczące problemu. Program powinien potrafić w dużej mierze wywnioskować, na podstawie istniejących faktów, o nowych faktach.

13 Obiekty i relacje 13 Przykład 1: Ala ma kota. Ala obiekt, ma relacja posiadania, kot obiekt. Mamy do czynienia z relacją uporządkowaną ponieważ, to Ala ma kota, a nie kot ma Ale. Można to zapisać następująco: posiada(ala,kot). Przykład 2: Piwo jest tanie. Relacja nie musi określać jawnie wszystkich obiektów. W przykładzie mamy relacje bycia tanim, i relacja dotyczy tutaj obiektu piwo. Można to zapisać następująco: tanie(piwo).

14 Obiekt, ale nie programowanie 14 obiektowe Programowanie obiektowe: obiekt jest strukturą danych, która może dziedziczyć pola i metody. Początek programowania obiektowego to lata 6O-te, jednak popularność to lata (języki Smalltalk, C++, Java). Prolog służy do zupełnie innych celów niż języki obiektowe. Definiując obiekt w Prologu mamy na uwadze nie strukturę danych, która może dziedziczyć pola i metody, ale obiekt rozumiemy jako byt, który możemy opisać termami. Ujednolicona struktura danych, term na jej podstawie tworzone są wszystkie dane, oraz programy w Prologu.

15 Program w Prologu 15 Program złożony jest ze zbioru klauzul. Klauzula to fakt opisujący pewną informację. Klauzula to reguła mówiąca, jak rozwiązanie można powiązać z danymi faktami. Do zapisu relacji używamy reguł. Przykład reguły: Dwoje ludzi to siostry, jeśli oboje tychże ludzi to kobiety, oraz oboje tychże ludzi mają tych samych rodziców. Reguła pokazuje jak sprawdzić czy dwie osoby są siostrami sprawdzamy czy obie osoby to kobiety, oraz czy obie osoby mają tych samych rodziców.

16 Programowanie 16 Podstawowe pojęcia: Fakt, Zapytanie, Zmienna, Połączenie, Reguła, Listy, Rekurencje

17 Programowanie 17 Programowanie w Prologu składa się z następujących elementów: Deklarowanie faktów dotyczących obiektów i związków miedzy nimi. Definiowanie reguł dotyczących obiektów i związków miedzy nimi. Zadawania zapytań o obiektach i związkach między nimi. Prolog to zbiór faktów i reguł, które są używane do udzielenia odpowiedzi na zapytanie. Podajemy fakty i reguły, aby program wywnioskował nowe fakty, na podstawie istniejących.

18 Fakty 18 Przykład: Zasady: lubi(adam,ewa). Nazwy relacji i obiektów piszemy z małych liter. W nazwach relacji oraz obiektów nie używamy polskich znaków. Najpierw piszemy relacje, a następnie obiekty rozdzielone przecinkami w nawiasach okrągłych. Fakt musi się kończyć kropką nawiązanie do języka naturalnego. Ważna jest kolejność podawania argumentów, ponieważ to Adam lubi Ewę, co nie oznacza że Ewa lubi Adama, aby to określić musimy podać następny fakt lubi(ewa,adam), lub utworzyć odpowiednią regułę. Jako że nazwy obiektów mogą być wieloznaczne, to programista decyduje jak rozumień daną nazwę.

19 Nazewnictwo 19 Nazwy obiektów występujące w nawiasach nazywamy argumentami. Nazwę relacji znajdującej się przed nawiasem nazywamy predykatem. Podawane nazwy są zupełnie dowolne, ale dobrą praktyką jest przypisywanie nazw dających obraz tego, czego dana nazwa dotyczy. Predykaty mogą mieć maksymalnie 1024 argumenty. Zbiór faktów nazywamy bazą danych. Podobnie zbiór reguł również nazywamy bazą danych.

20 1024 argumenty predykatu 20

21 Zapytania 21 Po utworzeniu bazy danych, możemy zająć się pytaniami. Pytania wyglądają podobnie jak fakty, ale są poprzedzone znakiem zapytania i myślnikiem?-. Przykład zapytania:?- lubi(adam,ewa). Powyższe zapytanie zwróci true jeżeli w bazie danych istnieje fakt lubi(adam,ewa)., oczywiście jeżeli w bazie danych nie ma takiego faktu to zwrócony zostanie false. Jeżeli zapytamy o coś czego nie ma w bazie, w sensie nie ma odpowiedniego predykatu, to otrzymamy informację: ERROR: toplevel: Undefined procedure: cosczegoniema/0 (DWIM could not correct goal) Oznacza to że nasza baza nie zawiera predykatu cosczegoniema, więc nasze zapytanie nie może uzyskać sensownej odpowiedzi.

22 Przykład użycia nieistniejącego predykatu 22

23 Zmienne 23 Zmienne używamy po to, aby nie odpytywać ciągle po kolei o wszystkie interesujące nas kwestie, ale aby zapytać raz, używając właśnie zmiennej, która będzie przechodzić po poszczególnych obiektach. Zmienna może być ukonkretniona lub nieukonkretniona. Zmienna ukonkretniona, odpowiada konkretnemu obiektowi. Zmienna nieukonkretniona, gdy nie wiemy jakiemu obiektowi może odpowiadać. Weźmy zapytanie:?- lubi(x,maria). Przetłumaczymy to jako: Kto lubi Marię. Przyjmijmy, że takimi obiektami będą Piotr oraz Paweł.?- lubi(x,maria). X=piotr X=pawel no po wciśnięciu średnika otrzymamy po raz kolejny wciskamy średnik i otrzymujemy ponieważ nie ma obiektu spełniającego kryteria wyszukiwania.

24 Przykład użycia zmiennej 24 Interpretacja: 2) Pytamy kogo lubi obiekt jan. 3) Pytamy przez kogo lubiany jest obiekt jan. 4) Pytamy kto lubi kogo. Uwaga na wielkość liter, bo jan to obiekt z bazy, a Jan to zmienna, której przyporządkowane są wartości.

25 Koniunkcje, 25 Koniunkcje będą służyć do zadawania bardziej skomplikowanych zapytań. Przykład: czy Paweł i Piotr lubią się wzajemnie? W tej sytuacji należało by zadać dwa odrębne pytania: Czy Paweł lubi Piotra? Czy Piotr lubi Pawła? Gdy obydwie odpowiedzi będą twierdzące, wtedy mamy odpowiedź na pytanie podstawowe, czy Piotr i Paweł lubią się wzajemnie. Do skrócenia takich zapisów używamy koniunkcji. Zapiszemy takie zapytanie w sposób następujący:?- lubi(piotr,pawel), lubi (pawel,piotr). W Prologu spójnik łączący dwa zapytania tj. i zapisujemy za pomocą przecinka. Za pomocą przecinka możemy oddzielić dowolną liczbę zapytań. Całe zapytanie będzie prawdziwe tylko wtedy, gdy wszystkie pod odpowiedzi będą pozytywne.

26 Przykład zastosowania koniunkcji, i dowód na to, że nie wystarczy kogoś lubić, aby też być lubianym 26

27 Bardziej skomplikowane zapytania 27 Przykład: chcemy się dowiedzieć, czy jest coś wspólnego co lubią dwa zadane obiekty.?- lubi(obiekt1,x), lubi(obiekt2,x). Jako rezultat tego zapytania otrzymamy X= (przy założeniu że oba obiekty lubią coś wspólnego. Program najpierw sprawdzi czy jest coś, co lubi obiekt1, a następnie sprawdzi czy to konkretne coś jest lubiane także przez obiekt2. Koniunkcje celów sprawdzamy od strony lewej do prawej.

28 Przykład bardziej skomplikowanego zapytania 28 Przy pierwszym załadowaniu bazy, w bazie nie znajdował się fakt: lubi(piotr,maria).

29 Mechanizm nawracania 29

30 Czy naprawdę Jan i Maria razem 30 lubią wino?

31 Reguły 31 Załóżmy, ze chcemy zapisać fakt, że Piotr lubi wszystkich. Można by tego dokonać wpisując wszystkie fakty po kolej, ale przy zastosowaniu tego sposobu np. do wszystkich ludzi w Polsce byłoby to dość pracochłonne oraz czasochłonne. W Prologu reguł używa się do zapisania, że pewien fakt zależy od grupy innych faktów. Zapiszmy to w języku potocznym: Jan kupuje wino, jeśli jest ono tańsze od piwa. Piotr lubi obiekt, jeśli obiekt jest człowiekiem narodowości polskiej. Kolejny przykład w języku potocznym: X jest siostrą Y, jeśli: X jest kobietą oraz X i Y mają tych samych rodziców. Jest oczywiste, że zmienne X oraz Y w całym zdaniu muszą mieć tę samą wartość, jeśli by tak nie było moglibyśmy dojść do bezsensownych zapisów np.: Anna jest siostrą Marii, jeśli Karolina jest kobietą oraz Monika i Paulina mają tych samych rodziców. Reguła to ogólne stwierdzenie dotyczące obiektów i ich powiązań. Możemy pozwolić, aby miała różne wartości w przypadkach użycia, ale w samej regule musi być interpretowana jednolicie.

32 Reguły 32 W języku Prolog reguła składa się z głowy i treści, połączonych symbolami dwukropka oraz myślnika --> głowa :- treść, oczywiście zakończone kropką: lubi(jan,x) :- lubi(x,wino). Przetłumaczmy tę regułę: Jan lubi X, jeśli X lubi wino. Głową reguły będzie: lubi(jan,x) Treścią reguły będzie: lubi(x,wino) Głowa i treść połączone są za pomocą :- Reguła kończy się kropką. Możemy dodać Janowi bardziej sprecyzowane kryteria poszukiwania sympatii poprzez dodanie kolejnych warunków: lubi(jan,x) :- lubi(x,wino), lubi(x,piwo), lubi(x,ciastka). Reguły zapisujemy w pliku z rozszerzenie.pl w bazie danych.

33 Przykład użycia reguły 33

34 Reguły, przykłady 34 Weźmy zapis o siostrach, przyjmijmy: Dwuargumentowy predykat siostra(x,y) mówiący, że X jest siostrą Y jeżeli: X jest kobietą, Matką X jest M, a ojcem X jest O, Y ma takich samych: matkę i ojca, jak X. Zapiszmy to w postaci reguły: siostra(x,y) :- kobieta(x), rodzice(x,m,o), rodzice(t,m,o). To samo możemy zapisać w jednym wierszu.

35 Reguły, przykłady 35 Rozważmy przykład złodzieja: dana osoba może coś ukraść, jeśli jest złodziejem, i coś lubi bo np. to coś jest wartościowe. Zapiszmy to w Prologu: moze_ukrasc(p,t) :- zlodziej(p), lubi(p,t). P potencjalny złodziej. T kradziona rzecz. /*1*/ zlodziej(jan). /*2*/ lubi(maria, czekolada). /*3*/ lubi(maria,wino). /*4*/ lubi(jan,x) :- lubi(x,wino). /*5*/ moze_ukrasc(x,y) :- zlodziej(x), lubi(x,y). Definicja lubi składa się z 3 klauzul: Dwóch faktów. Jednej reguły.

36 Jan kradnie Marie? 36 Sposób myślenia języka Prolog:?- moze_ukrasc(jan,x). /*1*/ zlodziej(jan). /*2*/ lubi(maria, czekolada). /*3*/ lubi(maria,wino). /*4*/ lubi(jan,x) :- lubi(x,wino). /*5*/ moze_ukrasc(x,y) :- zlodziej(x), lubi(x,y). Aby ukraść cokolwiek, Jan musi być przede wszystkim złodziejem z klauzuli nr 1 wynika że warunek ten jest spełniony, Jan musi lubić to co ma ukraść, bo po co kraść coś czego się nie lubi. Klauzula 4: Jan lubi wszystko to, co lubi wino. Klauzula 3: Maria lubi wino, a więc z klauzuli 4 wiemy, że Jan lubi Marie. Spełnione są obydwa warunki: Jan jest złodziejem oraz Jan lubi Marię. Wynika z tego, że Jan może ukraść Marię.

37 Jan kradnie Marie. 37

38 Prolog z bliska 38 Programy składają się z termów. Term to stała, zmienna lub struktura. Składnia języka Term zapisywany jest jako ciąg znaków, możemy używać następujących znaków: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ! # $ % & ( ) = - ^ \ { } [ ] _ + : * ; < >.,? / Każdy rodzaj termu: stałe, zmienne oraz struktury rządzą się innymi zasadami ich tworzenia.

39 Stałe pierwszy rodzaj termów. 39 Stałe nazywają konkretne obiekty i konkretne relacje. Rodzaje stałych: atom: np. lubi, maria, ksiazka, moze_ukrasc, `?-` symbol pytań, `:-` symbol reguł. liczby np. -17, -2e2, 33.33, , 3.33e-20 Atomy dzielimy na: Składające się z liter i liczb, Składające się z symboli. Jeśli atom ujęty zostanie w pojedynczy apostrof może zawierać dowolne znaki, może się także zaczynać z dużej litery np. `jan_kowalski`, `jan-kowalski, `Jan_Kowalski`

40 Zmienne drugi rodzaj termów. 40 Zmienne mają postać atomów, ale zaczynają się wielką literą, albo podkreśleniem. Zmienna to inaczej zastępstwo dla danych obiektów. Przykłady nazewnictwa zmiennych: X,Y,Z Odpowiedz, Imie, Nazwisko Bardzo_opisowa_nazwa_zmiennej _zmienna Zmienna anonimowa: oznaczana pojedynczym podkreśleniem _?- lubi(_,piotr). Zmiennych anonimowych używamy wtedy, gdy nazwa zmiennej nie ma znaczenia. Stosuje się je po to, aby nie wymyślać nazw dla zmiennych, które i tak nie zostaną nigdzie dalej wykorzystane.

41 Przykład użycia zmiennych 41

42 Struktury trzeci rodzaj termów. Struktury nazywamy termami złożonymi. Struktura to pojedynczy obiekt, składający się z zestawu innych obiektów. Te inne obiekty nazywamy składnikami struktury. Składniki struktury są pogrupowane w strukturę. W prologu strukturę zapisujemy podając funktor oraz jego składniki. posiada(piotr,ksiazka(pan_tadeusz,mickiewicz)). Wewnątrz faktu posiada mamy strukturę książka, mającą dwa składniki: tytuł i autora. posiada(piotr,ksiazka(pan_tadeusz,autor(adam,mickiewicz))). 42 Jak widać elementem struktury, może był kolejna struktura, w tym przypadku struktura autor. posiada(piotr,ksiazka(x,autor(adam,y))). Struktury mogą być wykorzystywane w zapytaniach i zawierać zmienne. Gdy odpowiedź będzie twierdząca zmienna X zostanie skonkretyzowana tytułem książki, a zmienna Y przyjmie wartość nazwiska autora, przy założeniu że ma on na imię adam. Składnia struktur i faktów jest taka sama. Predykat (w faktach i regułach) jest funktorem struktury. Argumenty (w faktach i regułach) są składnikami struktury

43 Przykład użycia struktury 43

44 Operatory 44 Funktory możemy zapisywać jako operatory, dla zwiększenia czytelnmości programów. Łatwiej jest zapisać * 2 niżli: +(2, *(2,2)), choć obydwa zapisy znaczą zupełnie to samo. Operatory nie powodują wykonanie obliczeń, dla Prologu nie oznacza 2, lecz oznacza +(1,1). O operatorach musimy znać: Ich położenie. Priorytet. Łączność.

45 Operatory +, -, *, / 45 Są to operatory infiksowe (zapisywane są między swoimi argumentami). Aby używać operatorów, trzeba ustalić reguły dotyczące kolejności wykonywania operacji tzw. priorytety. Operatory w prologu mają klasę priorytetu. Klasa priorytety to odpowiednia liczba całkowita, im ta liczba mniejsza, tym priorytet większy. Łączność operatorów: Łączność lewostronna. Łączność prawostronna. Operatory arytmetyczne posiadają łączność lewostronną, dlatego 4/4/2 jest interpretowane jako (4/4)/2 Aby wymusić obliczenie możemy zastosować zapis: X is wyrażenie do wyliczenia.?- X is 2+2*2.

46 Równość i unifikacja 46 Predykat równości, infiksowy operator zapisywany jako =?- X = Y. Unifikacja to próba uczynniania X i Y równymi. Predykat równości jest wbudowany (jest z góry zdefiniowany w Prologu). Struktury są sobie równe, gdy mają taki sam funktor, taką samą liczbę składników, a odpowiadające sobie składniki są sobie równe.

47 Arytmetyka Predykaty do porównywania liczb: 47

48 Arytmetyka a obliczenie 48

49 Operator infiksowy is 49 Jego prawy argument jest termem, który jest zinterpretowany jako wyrażenie arytmetyczne. Wynik wyrażenia arytmetycznego po prawej jest dopasowywany do lewego argumentu. Wszystkie wartości wyrażenia po prawej muszą być znane. P/A to zwykła struktura, natomiast jest traktowana jako wyrażenie arytmetyczne, dlatego że stoi po prawej stronie operatora is. Wartość wyrażenia zostaje przyporządkowana do zmiennej Y.

50 Prawa strona wyrażenia is 50 Po prawej stronie możemy użyć następujących wyrażeń. X + Y X Y X * Y X / Y X // Y całkowity iloraz X przez Y X mod Y reszta z dzielenia X przez Y oraz najróżniejszych ich kombinacji.

51 Podsumowanie 51 Programista w języku Prolog zadaje pytania, na które zgodnie z załączoną bazą wiedzy uzyskuje odpowiedź. Zapytanie to koniunkcja celów jakie mają być spełnione. Zgodność z faktem spełnia zapytanie od razu. Reguła pozwala zadania spełniać stopniowo, poprzez spełnienie koniunkcji jej składowych celów. Gdy nie można spełnić klauzuli uruchamiany jest proces nawracania. Nawracanie to przeglądanie dotąd zrealizowanego programu i próba ponownego spełnienia celu przez znalezienie alternatywnego rozwiązania. Po udzieleniu odpowiedzi możemy ponownie wymusić proces nawracania poprzez wciśnięcie średnika.

52 Zadanie 1. Napisz bazę zad1.pl w taki sposób, aby poniższe zapytania zwróciły następujące wyniki. 52

53 Zadanie Napisz bazę zad2.pl w taki sposób, aby poniższe zapytania zwróciły następujące wyniki. Podczas pisania bazy zdecydowany zakaz używania faktów typu: Można użyć: lubi(imie,imie). lubi(imie,imie). lubi(imie,imie).

54 Zadanie 3. Dane jest drzewo obrazujące relacje ojciec syn: 54 Zdefiniuj fakty ojciec(a, b) oraz reguły: dziadek (X,Y), syn(x,y), brat(x,y) bazujące na faktach ojciec(x,y). Fakty i reguły zapisz do pliku zad3.pl ojciec(x,y) oznacza X jest ojcem Y. dziadek(x,y) oznacza X jest dziadkiem Y. syn(x,y) oznacza X jest synem Y. brat(x,y) oznacza X jest bratem Y.

55 Zadanie Utwórz plik zad4.pl zawierający regułę oblicz zawierającą 5 argumentów z czego ostatni pomniejszony o połowę powinien być równy sumie pierwszego i drugiego argumentu, wymnożonej przez trzeci argument, podzielonej przez czwarty argument. oblicz(10,2,3,2,9). ma zwrócić true. oblicz(15,2,3,2,12.75). ma zwrócić true. oblicz(11,2,3,0,9). ma zwrócić: ERROR: //2: Arithmetic: evaluation error: `zero_divisor' oblicz(10,10,10,10,10). ma zwrócić true. oblicz(17,10,10,10,10). ma zwrócić false.

56 Zadanie 5. Baza => baza5.pl Napisz reguły: a(x) Wypisz imiona wszystkich kierowców, którzy poruszają się samochodami o mocy powyżej 180 koni mechanicznych. b(x) Wypisz imiona wszystkich kierowców, którzy poruszają się samochodami o mocy powyżej 180 koni mechanicznych, i poniżej 205 koni mechanicznych, o nadwoziu sedan. c Wypisz imię kierowcy, rozmiar opony, moc, rodzaj nadwozia w następującym formacie: Kierowca = Kolor = Opona = Moc = Nadwozie = Ale nie wypisuj pojazdów w nadwoziu sedan, oraz o mocy od 170 do 210 koni mechanicznych. Rozmiar opony niech będzie nie większy niż 16 cali. 56

57 Baza do zadania nr 5 57 kierowca(piotr,samochod(silnik(100,benzyna),nadwozie(hatchback,zielony),ogumienie(14,zimowe))). kierowca(adam,samochod(silnik(110,diesel),nadwozie(kombi,zielony),ogumienie(16,letnie))). kierowca(piotr,samochod(silnik(120,benzyna),nadwozie(sedan,zielony),ogumienie(17,letnie))). kierowca(michal,samochod(silnik(130,diesel),nadwozie(hatchback,zielony),ogumienie(18,zimowe))). kierowca(karol,samochod(silnik(140,benzyna),nadwozie(kombi,zielony),ogumienie(19,letnie))). kierowca(karolina,samochod(silnik(150,diesel),nadwozie(sedan,zielony),ogumienie(20,zimowe))). kierowca(pawel,samochod(silnik(160,benzyna),nadwozie(hatchback,zielony),ogumienie(13,letnie))). kierowca(teresa,samochod(silnik(170,diesel),nadwozie(sedan,zielony),ogumienie(16,zimowe))). kierowca(aleksandra,samochod(silnik(180,benzyna),nadwozie(kombi,zielony),ogumienie(18,zimowe))). kierowca(beata,samochod(silnik(190,diesel),nadwozie(hatchback,zielony),ogumienie(15,letnie))). kierowca(agnieszka,samochod(silnik(200,benzyna),nadwozie(sedan,zielony),ogumienie(16,letnie))). kierowca(anna,samochod(silnik(300,diesel),nadwozie(kombi,zielony),ogumienie(17,zimowe))). kierowca(karina,samochod(silnik(400,diesel),nadwozie(hatchback,zielony),ogumienie(18,letnie))). kierowca(zbigniew,samochod(silnik(500,benzyna),nadwozie(sedan,zielony),ogumienie(19,zimowe))).

58 Dziękuj 58

Programowanie w logice

Programowanie w logice Programowanie w logice PROLOG cz.1 PROLOG język wysokiego poziomu Powstał w 1972 na Uniwersytecie w Marsylii (Francja) w zespole A.Colmerauer a i F.Roussel a PROgrammation en LOGique, PROgramming in LOGic,

Bardziej szczegółowo

PROLOG. Prolog. Programowanie, W.F. Clocksin, C.S. Mellish, HELION Prolog, język sztucznej inteligencji, Eugeniusz Gatnar, Katarzyna Stąpor, Wyd.

PROLOG. Prolog. Programowanie, W.F. Clocksin, C.S. Mellish, HELION Prolog, język sztucznej inteligencji, Eugeniusz Gatnar, Katarzyna Stąpor, Wyd. PROLOG 1. Informacje wstępne Podczas zajęć korzystamy z darmowej wersji interpretera Prologu SWI-Prolog dostępnego ze strony: www.swi-prolog.org 2. Literatura i materiały Prolog. Programowanie, W.F. Clocksin,

Bardziej szczegółowo

Programowanie w Logice

Programowanie w Logice Programowanie w Logice Działanie Prologu Przemysław Kobylański na podstawie [CM2003] Składnia Programy Prologu składają się z termów. Term to stała, zmienna lub struktura (term złożony). Term zapisuje

Bardziej szczegółowo

Wprowadzenie do Prologa

Wprowadzenie do Prologa Wprowadzenie do Prologa Rozdział 1 Tutorial Introduction Maciej Gapiński Dominika Wałęga Spis treści 1. Podstawowe informacje 2. Obiekty i relacje 3. Reguły 4. Fakty 5. Zapytania 6. Zmienne i stałe Podstawowe

Bardziej szczegółowo

Laboratorium przedmiotu Paradygmaty Programowania

Laboratorium przedmiotu Paradygmaty Programowania Laboratorium przedmiotu Paradygmaty Programowania Laboratorium 9 Prolog podstawy 1. Podstawy Prologu Programowanie w Prologu polega na deklarowaniu: Faktów dotyczących pewnych obiektów z analizowanego

Bardziej szczegółowo

PODSTAWY SZTUCZNEJ INTELIGENCJI

PODSTAWY SZTUCZNEJ INTELIGENCJI Katedra Informatyki Stosowanej Politechnika Łódzka PODSTAWY SZTUCZNEJ INTELIGENCJI Laboratorium PROGRAMOWANIE SYSTEMÓW EKSPERTOWYCH Opracowanie: Dr hab. inŝ. Jacek Kucharski Dr inŝ. Piotr Urbanek Cel ćwiczenia

Bardziej szczegółowo

Prolog (Pro-Logic) Programowanie w Logice. Dr inż. Piotr Urbanek

Prolog (Pro-Logic) Programowanie w Logice. Dr inż. Piotr Urbanek Prolog (Pro-Logic) Programowanie w Logice Dr inż. Piotr Urbanek Do czego służy ProLog? Używany w wielu systemach informatycznych związanych z: logiką matematyczną (automatyczne dowodzenie twierdzeń); przetwarzaniem

Bardziej szczegółowo

Celem ćwiczenia jest zapoznanie się z podstawowymi możliwościami języka Prolog w zakresie definiowania faktów i reguł oraz wykonywania zapytań.

Celem ćwiczenia jest zapoznanie się z podstawowymi możliwościami języka Prolog w zakresie definiowania faktów i reguł oraz wykonywania zapytań. Paradygmaty Programowania Język Prolog Celem ćwiczenia jest zapoznanie się z podstawowymi możliwościami języka Prolog w zakresie definiowania faktów i reguł oraz wykonywania zapytań. Wstęp Prolog (od francuskiego

Bardziej szczegółowo

Deklarowania faktów dotyczących obiektów i związków między nimi. Definiowania reguł dotyczących obiektów i związków między nimi.

Deklarowania faktów dotyczących obiektów i związków między nimi. Definiowania reguł dotyczących obiektów i związków między nimi. Prolog Prolog Programowanie w Prologu składa się z: Deklarowania faktów dotyczących obiektów i związków między nimi. Definiowania reguł dotyczących obiektów i związków między nimi. Zadawania zapytao o

Bardziej szczegółowo

Projekt 4: Programowanie w logice

Projekt 4: Programowanie w logice Języki Programowania Projekt 4: Programowanie w logice Środowisko ECL i PS e W projekcie wykorzystane będzie środowisko ECL i PS e. Dostępne jest ono pod adresem http://eclipseclp.org/. Po zainstalowaniu

Bardziej szczegółowo

Programowanie w logice

Programowanie w logice Wydział Matematyki UŁ 14 marca 2007 Plan prezentacji 1 Składnia Termy Stałe Zmienne Struktury 2 Własny operator Przeciążanie operatorów 3 Arytmetyczne i logiczne predykaty systemowe 4 Do zapamiętania Termy

Bardziej szczegółowo

Języki programowania deklaratywnego

Języki programowania deklaratywnego Katedra Inżynierii Wiedzy laborki 1 e-mail: przemyslaw.juszczuk@ue.katowice.pl Konsultacje: na stronie katedry + na stronie domowej Pokój 202c budynek A pjuszczuk.pl Języki deklaratywne - laborki Wprowadzenie

Bardziej szczegółowo

Programowanie w logice Prolog 1

Programowanie w logice Prolog 1 Programowanie w logice Prolog 1 Prolog - zastosowania Zastosowania: relacyjne bazy danych. przetwarzanie języka naturalnego. logistyka. analiza struktur biochemicznych. wspomaganie projektowania. sztuczna

Bardziej szczegółowo

Języki programowania deklaratywnego

Języki programowania deklaratywnego Katedra Inżynierii Wiedzy laborki 14 Języki deklaratywne Główne różnice między paradygmatem deklaratywnym a imperatywnym Omów główne cechy paradygmatu programowania w logice na przykładzie Prologa Główne

Bardziej szczegółowo

Programowanie deklaratywne

Programowanie deklaratywne Programowanie deklaratywne Artur Michalski Informatyka II rok Plan wykładu Wprowadzenie do języka Prolog Budowa składniowa i interpretacja programów prologowych Listy, operatory i operacje arytmetyczne

Bardziej szczegółowo

Paradygmaty programowania

Paradygmaty programowania Paradygmaty programowania Jacek Michałowski, Piotr Latanowicz 15 kwietnia 2014 Jacek Michałowski, Piotr Latanowicz () Paradygmaty programowania 15 kwietnia 2014 1 / 12 Zadanie 1 Zadanie 1 Rachunek predykatów

Bardziej szczegółowo

Programowanie deklaratywne

Programowanie deklaratywne Programowanie deklaratywne Artur Michalski Informatyka II rok Plan wykładu Wprowadzenie do języka Prolog Budowa składniowa i interpretacja programów prologowych Listy, operatory i operacje arytmetyczne

Bardziej szczegółowo

Programowanie w Logice Środowisko programowania i dialog z systemem (Lista 0)

Programowanie w Logice Środowisko programowania i dialog z systemem (Lista 0) Programowanie w Logice Środowisko programowania i dialog z systemem (Lista 0) Przemysław Kobylański Wstęp Podczas laboratorium będziemy korzystać z systemu SWI-Prolog. Należy go ściągnąć i zainstalować

Bardziej szczegółowo

Programowanie w języku Python. Grażyna Koba

Programowanie w języku Python. Grażyna Koba Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i

Bardziej szczegółowo

Programowanie w logice Prolog 2

Programowanie w logice Prolog 2 Programowanie w logice Prolog 2 Listy Lista to uporządkowany ciąg elementów. Elementami listy mogą być dowolne terminy: stałe, zmienne i struktury W Prologu listę zapisujemy następująco: Przykłady [element1,element2,,elementn]

Bardziej szczegółowo

Prolog 2 (Filip Wroński, Łukasz Betkowski, Paweł Świerblewski, Konrad Kosmatka)

Prolog 2 (Filip Wroński, Łukasz Betkowski, Paweł Świerblewski, Konrad Kosmatka) Prolog 2 (Filip Wroński, Łukasz Betkowski, Paweł Świerblewski, Konrad Kosmatka) Rozdział 2 Constructing Prolog Programs z książki Prolog Programming in Depth autorstwa Michael A. Covington, Donald Nute,

Bardziej szczegółowo

5.2. Pierwsze kroki z bazami danych

5.2. Pierwsze kroki z bazami danych 5.2. Pierwsze kroki z bazami danych Uruchamianie programu Podobnie jak inne programy, OO Base uruchamiamy z Menu Start, poprzez zakładkę Wszystkie programy, gdzie znajduje się folder OpenOffice.org 2.2,

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

Programowanie w Logice Struktury danych (Lista 2)

Programowanie w Logice Struktury danych (Lista 2) Programowanie w Logice Struktury danych (Lista 2) Przemysław Kobylański Wstęp Struktury danych wyraża się w Prologu w postaci termów, tj. symbolicznych wyrażeń. Dotychczas poznaliśmy proste termy takie

Bardziej szczegółowo

4. Funkcje. Przykłady

4. Funkcje. Przykłady 4. Funkcje Przykłady 4.1. Napisz funkcję kwadrat, która przyjmuje jeden argument: długość boku kwadratu i zwraca pole jego powierzchni. Używając tej funkcji napisz program, który obliczy pole powierzchni

Bardziej szczegółowo

Cw.12 JAVAScript w dokumentach HTML

Cw.12 JAVAScript w dokumentach HTML Cw.12 JAVAScript w dokumentach HTML Wstawienie skryptu do dokumentu HTML JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.skrypty Java- Script mogą być zagnieżdżane

Bardziej szczegółowo

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Turbo Pascal jest językiem wysokiego poziomu, czyli nie jest rozumiany bezpośrednio dla komputera, ale jednocześnie jest wygodny dla programisty,

Bardziej szczegółowo

Języki programowania zasady ich tworzenia

Języki programowania zasady ich tworzenia Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie

Bardziej szczegółowo

Definicje. Algorytm to:

Definicje. Algorytm to: Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi

Bardziej szczegółowo

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. IŚ ćw.8 JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript są zagnieżdżane w dokumentach HTML. Skrypt JavaScript

Bardziej szczegółowo

Programowanie deklaratywne

Programowanie deklaratywne Programowanie deklaratywne Artur Michalski Informatyka II rok Plan wykładu Wprowadzenie do języka Prolog Budowa składniowa i interpretacja programów prologowych Listy, operatory i operacje arytmetyczne

Bardziej szczegółowo

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie Część X C++ Typ znakowy służy do reprezentacji pojedynczych znaków ASCII, czyli liter, cyfr, znaków przestankowych i innych specjalnych znaków widocznych na naszej klawiaturze (oraz wielu innych, których

Bardziej szczegółowo

JAVAScript w dokumentach HTML (1)

JAVAScript w dokumentach HTML (1) JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript mogą być zagnieżdżane w dokumentach HTML. Instrukcje JavaScript

Bardziej szczegółowo

Programowanie w logice Wykład z baz danych dla

Programowanie w logice Wykład z baz danych dla Programowanie w logice Wykład z baz danych dla studentów matematyki 18 maja 2015 Programowanie w logice Programowanie w logice to podejście do programowania, w którym na program patrzymy nie jak na opis

Bardziej szczegółowo

Wprowadzenie do Sztucznej Inteligencji Laboratorium lista 0.1 Elementy języka Prolog: fakty i zapytania. Przemysław Kobylański

Wprowadzenie do Sztucznej Inteligencji Laboratorium lista 0.1 Elementy języka Prolog: fakty i zapytania. Przemysław Kobylański Wprowadzenie do Sztucznej Inteligencji Laboratorium lista 0.1 Elementy języka Prolog: fakty i zapytania Przemysław Kobylański Część I Wprowadzenie 1 Stałe i zmienne Jedynym dostępnym w języku Prolog rodzajem

Bardziej szczegółowo

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch. Instrukcje warunkowe i skoku. Spotkanie 2 Dr inż. Dariusz JĘDRZEJCZYK Wyrażenia i operatory logiczne Instrukcje warunkowe: if else, switch Przykłady 11/3/2016 AGH, Katedra Informatyki Stosowanej i Modelowania

Bardziej szczegółowo

Języki programowania Prolog

Języki programowania Prolog 1. Środowisko ECL i PS e Języki programowania Prolog zadanie projektowe nr. 3 (2016/17) T. Goluch W projekcie wykorzystane będzie środowisko ECL i PS e. Dostępne jest ono pod adresem: http://eclipseclp.org/.

Bardziej szczegółowo

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy)

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy) Zapytania SQL. Polecenie SELECT jest używane do pobierania danych z bazy danych (z tabel lub widoków). Struktura polecenia SELECT SELECT FROM WHERE opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje

Bardziej szczegółowo

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Część XXII C++ w Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na

Bardziej szczegółowo

Wykład 11a. Składnia języka Klasycznego Rachunku Predykatów. Języki pierwszego rzędu.

Wykład 11a. Składnia języka Klasycznego Rachunku Predykatów. Języki pierwszego rzędu. Andrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki Wykład 11a. Składnia języka Klasycznego Rachunku Predykatów. Języki pierwszego rzędu. 1 Logika Klasyczna obejmuje dwie teorie:

Bardziej szczegółowo

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL Wprowadzenie do SQL SQL - Structured Query Language -strukturalny język zapytań Światowy standard przeznaczony do definiowania, operowania i sterowania danymi w relacyjnych bazach danych Powstał w firmie

Bardziej szczegółowo

C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów

C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów Operatory są elementami języka C++. Istnieje zasada, że z elementami języka, takimi jak np. słowa kluczowe, nie można dokonywać żadnych zmian, przeciążeń, itp. PRZECIĄŻANIE OPERATORÓW Ale dla operatorów

Bardziej szczegółowo

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost; Klasy w C++ są bardzo ważnym narzędziem w rękach programisty. Klasy są fundamentem programowania obiektowego. Z pomocą klas będziesz mógł tworzyć lepszy kod, a co najważniejsze będzie on bardzo dobrze

Bardziej szczegółowo

Tablice (jedno i wielowymiarowe), łańcuchy znaków

Tablice (jedno i wielowymiarowe), łańcuchy znaków Tablice (jedno i wielowymiarowe), łańcuchy znaków wer. 8 z drobnymi modyfikacjami! Wojciech Myszka Katedra Mechaniki i Inżynierii Materiałowej 2017-04-07 09:35:32 +0200 Zmienne Przypomnienie/podsumowanie

Bardziej szczegółowo

Klasy abstrakcyjne i interfejsy

Klasy abstrakcyjne i interfejsy Klasy abstrakcyjne i interfejsy Streszczenie Celem wykładu jest omówienie klas abstrakcyjnych i interfejsów w Javie. Czas wykładu 45 minut. Rozwiązanie w miarę standardowego zadania matematycznego (i nie

Bardziej szczegółowo

Powtórka algorytmów. Wprowadzenie do języka Java.

Powtórka algorytmów. Wprowadzenie do języka Java. Powtórka algorytmów. Wprowadzenie do języka Java. BEGIN Readln(a); Readln(b); Suma := 0; IF Suma < 10 THEN Writeln( Suma wynosi:, Suma); ELSE Writeln( Suma większa niż 10! ) END. 1. Narysować schemat blokowy

Bardziej szczegółowo

PROLOG INNE PRZYKŁADY MACIEJ KELM

PROLOG INNE PRZYKŁADY MACIEJ KELM PROLOG INNE PRZYKŁADY MACIEJ KELM PREDYKAT RANDOM Funkcja random zwraca losową liczbę całkowitą w przedziale od 1 do X. Gdzie X jest parametrem funkcji random. Przed użyciem random należy zainicjować tak

Bardziej szczegółowo

Podstawy programowania skrót z wykładów:

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

Programowanie w logice

Programowanie w logice Programowanie w logice PROLOG cz.3 Predykat sprawdzający, czy podana lista stanowi początek innej listy: poczatek([],[_ _]). poczatek([h1 T1], [H2 T2]) :- H1 = H2, poczatek(t1,t2). ------------------------------------------------------------------------

Bardziej szczegółowo

Algorytmika i Programowanie VBA 1 - podstawy

Algorytmika i Programowanie VBA 1 - podstawy Algorytmika i Programowanie VBA 1 - podstawy Tomasz Sokół ZZI, IL, PW Czas START uruchamianie środowiska VBA w Excelu Alt-F11 lub Narzędzia / Makra / Edytor Visual Basic konfiguracja środowiska VBA przy

Bardziej szczegółowo

Odczyt danych z klawiatury Operatory w Javie

Odczyt danych z klawiatury Operatory w Javie Odczyt danych z klawiatury Operatory w Javie Operatory W Javie występują następujące typy operatorów: Arytmetyczne. Inkrementacji/Dekrementacji Przypisania. Porównania. Bitowe. Logiczne. Pozostałe. Operacje

Bardziej szczegółowo

WYRAŻENIA ALGEBRAICZNE

WYRAŻENIA ALGEBRAICZNE WYRAŻENIA ALGEBRAICZNE Wyrażeniem algebraicznym nazywamy wyrażenie zbudowane z liczb, liter, nawiasów oraz znaków działań, na przykład: Symbole literowe występujące w wyrażeniu algebraicznym nazywamy zmiennymi.

Bardziej szczegółowo

Rozdział 4 KLASY, OBIEKTY, METODY

Rozdział 4 KLASY, OBIEKTY, METODY Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej

Bardziej szczegółowo

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6 Zawartość Wstęp... 1 Instalacja... 2 Konfiguracja... 2 Uruchomienie i praca z raportem... 6 Wstęp Rozwiązanie przygotowane z myślą o użytkownikach którzy potrzebują narzędzie do podziału, rozkładu, rozbiórki

Bardziej szczegółowo

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++ Programowanie Wstęp p do programowania Klasa 3 Lekcja 9 PASCAL & C++ Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany w postaci programu

Bardziej szczegółowo

Nazwa implementacji: Nauka języka Python wyrażenia warunkowe. Autor: Piotr Fiorek. Opis implementacji: Poznanie wyrażeń warunkowych if elif - else.

Nazwa implementacji: Nauka języka Python wyrażenia warunkowe. Autor: Piotr Fiorek. Opis implementacji: Poznanie wyrażeń warunkowych if elif - else. Nazwa implementacji: Nauka języka Python wyrażenia warunkowe Autor: Piotr Fiorek Opis implementacji: Poznanie wyrażeń warunkowych if elif - else. Nasz kalkulator umie już liczyć, ale potrafi przeprowadzać

Bardziej szczegółowo

Kwerendy (zapytania) wybierające

Kwerendy (zapytania) wybierające Access 2. Kwerendy (zapytania) wybierające Kwerendy wybierające (nazywane też zapytaniami wybierającymi) są podstawowymi obiektami w MS Access służącymi do wyszukiwania danych w tabelach. W wyniku uruchomienia

Bardziej szczegółowo

Układy VLSI Bramki 1.0

Układy VLSI Bramki 1.0 Spis treści: 1. Wstęp... 2 2. Opis edytora schematów... 2 2.1 Dodawanie bramek do schematu:... 3 2.2 Łączenie bramek... 3 2.3 Usuwanie bramek... 3 2.4 Usuwanie pojedynczych połączeń... 4 2.5 Dodawanie

Bardziej szczegółowo

Java jako język programowania

Java jako język programowania Java jako język programowania Interpretowany programy wykonują się na wirtualnej maszynie (JVM Java Virtual Machine) Składnia oparta o język C++ W pełni zorientowany obiektowo (wszystko jest obiektem)

Bardziej szczegółowo

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD Dr inż. Jacek WARCHULSKI Dr inż. Marcin WARCHULSKI Mgr inż. Witold BUŻANTOWICZ Wojskowa Akademia Techniczna SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD Streszczenie: W referacie przedstawiono możliwości

Bardziej szczegółowo

Makropolecenia w Excelu

Makropolecenia w Excelu Makropolecenia w Excelu Trochę teorii Makropolecenie w skrócie nazywane makro ma za zadanie automatyczne wykonanie powtarzających się po sobie określonych czynności. Na przykładzie arkusza kalkulacyjnego

Bardziej szczegółowo

Wykład 0 Informacje Podstawowe

Wykład 0 Informacje Podstawowe Paradygmaty Programowania Wykład 0 Informacje Podstawowe Nieliniowej, WMiI UŁ 1 Informacje Ogólne (22 luty 2013) Wykłady: piątek, 10.00-12.00, D103 Wykłady: 1 wprowadzający +10 wykładów głównych Zaliczenie

Bardziej szczegółowo

LOGIKA I TEORIA ZBIORÓW

LOGIKA I TEORIA ZBIORÓW LOGIKA I TEORIA ZBIORÓW Logika Logika jest nauką zajmującą się zdaniami Z punktu widzenia logiki istotne jest, czy dane zdanie jest prawdziwe, czy nie Nie jest natomiast istotne o czym to zdanie mówi Definicja

Bardziej szczegółowo

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć,

Bardziej szczegółowo

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

Jak napisać program obliczający pola powierzchni różnych figur płaskich? Część IX C++ Jak napisać program obliczający pola powierzchni różnych figur płaskich? Na początku, przed stworzeniem właściwego kodu programu zaprojektujemy naszą aplikację i stworzymy schemat blokowy

Bardziej szczegółowo

Przestrzenne bazy danych Podstawy języka SQL

Przestrzenne bazy danych Podstawy języka SQL Przestrzenne bazy danych Podstawy języka SQL Stanisława Porzycka-Strzelczyk porzycka@agh.edu.pl home.agh.edu.pl/~porzycka Konsultacje: wtorek godzina 16-17, p. 350 A (budynek A0) 1 SQL Język SQL (ang.structured

Bardziej szczegółowo

Pracownia Informatyczna Instytut Technologii Mechanicznej Wydział Inżynierii Mechanicznej i Mechatroniki. Podstawy Informatyki i algorytmizacji

Pracownia Informatyczna Instytut Technologii Mechanicznej Wydział Inżynierii Mechanicznej i Mechatroniki. Podstawy Informatyki i algorytmizacji Pracownia Informatyczna Instytut Technologii Mechanicznej Wydział Inżynierii Mechanicznej i Mechatroniki Podstawy Informatyki i algorytmizacji wykład 1 dr inż. Maria Lachowicz Wprowadzenie Dlaczego arkusz

Bardziej szczegółowo

Temat : SBQL 1 obiektowy język zapytań.

Temat : SBQL 1 obiektowy język zapytań. Laboratorium Języki i środowiska przetwarzania danych rozproszonych Temat : SBQL 1 obiektowy język zapytań. Historia zmian Data Wersja Autor Opis zmian 23.4.2012 1.0 Tomasz Kowalski Utworzenie dokumentu

Bardziej szczegółowo

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Część XVIII C++ Funkcje Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Umiemy już podzielić nasz

Bardziej szczegółowo

Polcode Code Contest PHP-10.09

Polcode Code Contest PHP-10.09 Polcode Code Contest PHP-10.09 Przedmiotem konkursu jest napisanie w języku PHP programu, którego wykonanie spowoduje rozwiązanie zadanego problemu i wyświetlenie rezultatu. Zadanie konkursowe Celem zadania

Bardziej szczegółowo

Algorytm. Algorytmy Marek Pudełko

Algorytm. Algorytmy Marek Pudełko Algorytm Algorytmy Marek Pudełko Definicja Algorytm to skończony, uporządkowany ciąg jasno zdefiniowanych czynności, koniecznych do wykonania pewnego zadania. Algorytm ma przeprowadzić system z pewnego

Bardziej szczegółowo

5.4. Tworzymy formularze

5.4. Tworzymy formularze 5.4. Tworzymy formularze Zastosowanie formularzy Formularz to obiekt bazy danych, który daje możliwość tworzenia i modyfikacji danych w tabeli lub kwerendzie. Jego wielką zaletą jest umiejętność zautomatyzowania

Bardziej szczegółowo

Przeszukiwanie z nawrotami. Wykład 8. Przeszukiwanie z nawrotami. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 238 / 279

Przeszukiwanie z nawrotami. Wykład 8. Przeszukiwanie z nawrotami. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 238 / 279 Wykład 8 J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 238 / 279 sformułowanie problemu przegląd drzewa poszukiwań przykłady problemów wybrane narzędzia programistyczne J. Cichoń, P. Kobylański

Bardziej szczegółowo

Warto też w tym miejscu powiedzieć, że w C zero jest rozpoznawane jako fałsz, a wszystkie pozostałe wartości jako prawda.

Warto też w tym miejscu powiedzieć, że w C zero jest rozpoznawane jako fałsz, a wszystkie pozostałe wartości jako prawda. Nazwa implementacji: Nauka języka C wyrażenia warunkowe if- Autor: Piotr Fiorek Opis implementacji: Poznanie struktury oraz zastosowania wyrażeń warunkowych if- w języku C. W programie realizującym jakiś

Bardziej szczegółowo

Dariusz Banasiak. Instytut Informatyki, Automatyki i Robotyki. Politechniki Wrocławskiej

Dariusz Banasiak. Instytut Informatyki, Automatyki i Robotyki. Politechniki Wrocławskiej Dariusz Banasiak Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej PROLOG akronim od PROgramming in LOGic Prolog został stworzony w 1971 przez Alaina Colmeraurera i Philipa Roussela.

Bardziej szczegółowo

Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5.

Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5. Operatory w Javie W Javie występują następujące typy operatorów: Arytmetyczne. Inkrementacji/Dekrementacji Przypisania. Porównania. Bitowe. Logiczne. Pozostałe. Operacje wykonywane są na operandach (argumentach

Bardziej szczegółowo

System operacyjny UNIX Ćwiczenie 1. Podstawowe polecenia systemu Unix

System operacyjny UNIX Ćwiczenie 1. Podstawowe polecenia systemu Unix Wydział Mechatroniki i Budowy Maszyn Specjalność: Automatyka i Robotyka Rok II Semestr IV 1. Logowanie w systemie Unix. System operacyjny UNIX Ćwiczenie 1. Podstawowe polecenia systemu Unix Do zalogowania

Bardziej szczegółowo

1. Wypisywanie danych

1. Wypisywanie danych 1. Wypisywanie danych Przykłady 1.1. Napisz program, który wypisze na ekran słowa Hello, world!. 1 // Przyklad 1: Hello, world! 3 using namespace std; 5 int main() { 6 cout

Bardziej szczegółowo

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

Bardziej szczegółowo

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux Administracja sieciowymi systemami operacyjnymi III Klasa - Linux SKRYPTY POWŁOKI mgr inż. Tomasz Borowiec SKRYPTY POWŁOKI - PODSTAWY W Linuksie skrypt jest plikiem tekstowym zawierającym polecenia systemowe

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Przykłady zastosowań funkcji tekstowych w arkuszu kalkulacyjnym

Przykłady zastosowań funkcji tekstowych w arkuszu kalkulacyjnym S t r o n a 1 Bożena Ignatowska Przykłady zastosowań funkcji tekstowych w arkuszu kalkulacyjnym Wprowadzenie W artykule zostaną omówione zagadnienia związane z wykorzystaniem funkcji tekstowych w arkuszu

Bardziej szczegółowo

Prolog. Programowanie

Prolog. Programowanie IDZ DO PRZYK ADOWY ROZDZIA SPIS TRE CI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG Prolog. Programowanie Autorzy: W. F. Clocksin, C. S. Mellish T³umaczenie: Tomasz mijewski ISBN: 83-7197-918-5

Bardziej szczegółowo

Laboratorium 1 - Programowanie proceduralne i obiektowe

Laboratorium 1 - Programowanie proceduralne i obiektowe Laboratorium 1 - Programowanie proceduralne i obiektowe mgr inż. Kajetan Kurus 4 marca 2014 1 Podstawy teoretyczne 1. Programowanie proceduralne (powtórzenie z poprzedniego semestru) (a) Czym się charakteryzuje?

Bardziej szczegółowo

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Temat 1: Podstawowe pojęcia: program, kompilacja, kod Temat 1: Podstawowe pojęcia: program, kompilacja, kod wynikowy. Przykłady najprostszych programów. Definiowanie zmiennych. Typy proste. Operatory: arytmetyczne, przypisania, inkrementacji, dekrementacji,

Bardziej szczegółowo

Bazy danych TERMINOLOGIA

Bazy danych TERMINOLOGIA Bazy danych TERMINOLOGIA Dane Dane są wartościami przechowywanymi w bazie danych. Dane są statyczne w tym sensie, że zachowują swój stan aż do zmodyfikowania ich ręcznie lub przez jakiś automatyczny proces.

Bardziej szczegółowo

Integracja sklepu internetowego z serwisem aukcyjnym Swistak.pl

Integracja sklepu internetowego z serwisem aukcyjnym Swistak.pl Integracja sklepu internetowego z serwisem aukcyjnym Swistak.pl email: swistak@swistak.pl Spis treści 1. Wstęp...2 2. Import oferty...2 3. Plik CSV...3 4. Przykład pliku...7 5. Aktualizacja oferty...7

Bardziej szczegółowo

Język skryptowy: Laboratorium 1. Wprowadzenie do języka Python

Język skryptowy: Laboratorium 1. Wprowadzenie do języka Python Język skryptowy: Laboratorium 1. Wprowadzenie do języka Python Język PYTHON Podstawowe informacje Python to język skryptowy, interpretowany - co oznacza, że piszemy skrypt, a następnie wykonujemy go za

Bardziej szczegółowo

Przykład 1: Funkcja jest obiektem, przypisanie funkcji o nazwie function() do zmiennej o nazwie funkcja1

Przykład 1: Funkcja jest obiektem, przypisanie funkcji o nazwie function() do zmiennej o nazwie funkcja1 Rachunek Prawdopodobieństwa i Statystyka lab 3. Kaja Gutowska (Kaja.Gutowska@cs.put.poznan.pl) 1. Funkcje: - Funkcje nie powinny korzystać ze zmiennych globalnych. - Funkcje powinny być możliwie krótkie.

Bardziej szczegółowo

Wprowadzania liczb. Aby uniknąć wprowadzania ułamka jako daty, należy poprzedzać ułamki cyfrą 0 (zero); np.: wpisać 0 1/2

Wprowadzania liczb. Aby uniknąć wprowadzania ułamka jako daty, należy poprzedzać ułamki cyfrą 0 (zero); np.: wpisać 0 1/2 Wprowadzania liczb Liczby wpisywane w komórce są wartościami stałymi. W Excel'u liczba może zawierać tylko następujące znaki: 0 1 2 3 4 5 6 7 8 9 + - ( ), / $ %. E e Excel ignoruje znaki plus (+) umieszczone

Bardziej szczegółowo

Podstawy języka PROLOG

Podstawy języka PROLOG Dariusz Banasiak Katedra Informatyki Technicznej Wydział Elektroniki PROLOG akronim od PROgramming in LOGic Prolog został stworzony w 1971 przez Alaina Colmeraurera i Philipa Roussela. Podstawy teoretyczne

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Dana jest baza: kobieta(katarzyna). kobieta(anna). kobieta(maria). kobieta(marianna). kobieta(marta). Zdefiniujemy predykat kobiety/0 następująco:

Dana jest baza: kobieta(katarzyna). kobieta(anna). kobieta(maria). kobieta(marianna). kobieta(marta). Zdefiniujemy predykat kobiety/0 następująco: STEROWANIE PROCESEM WNIOSKOWANIA. Predykat true/0 fail/0 cut/0 lub! not( W) lub \+W repeat/0 Objaśnienie zawsze spełniony, deterministyczny zawsze zawodzi, deterministyczny odcięcie; zawsze spełniony spełniony,

Bardziej szczegółowo

Technologie informacyjne - wykład 12 -

Technologie informacyjne - wykład 12 - Zakład Fizyki Budowli i Komputerowych Metod Projektowania Instytut Budownictwa Wydział Budownictwa Lądowego i Wodnego Politechnika Wrocławska Technologie informacyjne - wykład 12 - Prowadzący: Dmochowski

Bardziej szczegółowo

Systemy ekspertowe i ich zastosowania. Katarzyna Karp Marek Grabowski

Systemy ekspertowe i ich zastosowania. Katarzyna Karp Marek Grabowski Systemy ekspertowe i ich zastosowania Katarzyna Karp Marek Grabowski Plan prezentacji Wstęp Własności systemów ekspertowych Rodzaje baz wiedzy Metody reprezentacji wiedzy Metody wnioskowania Języki do

Bardziej szczegółowo

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018 Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy

Bardziej szczegółowo

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem. Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Typy c.d. 2 Typy zmiennych Instrukcja typedef -

Bardziej szczegółowo