Programowanie w logice Prolog 3
|
|
- Wacław Świątek
- 6 lat temu
- Przeglądów:
Transkrypt
1 Programowanie w logice Prolog 3
2 Predykaty wbudowane Predykaty wbudowane to predykaty, których definicje są z góry znane systemowi a zatem nie ma konieczności ich definiowania. Predykaty wbudowane mogą realizować zadania, których nie da się zaprogramować w czystym Prologu. mogą też ułatwiać pracę programiście.
3 Predykaty wbudowane var(x) Predykat var(x) jest spełniony jeżeli X jest zmienną nieukonkretnioną. Przykład:?- var(x). true.?- X=3,var(X). false.?- var(x). true.?- var(x),x=4. X = 4.
4 Predykaty wbudowane nonvar(x) Predykat nonvar(x) jest spełniony jeżeli X jest zmienną ukonkretnioną. Przykład:?- nonvar(x). false.?- X=3,nonvar(X). X = 3.?- nonvar(4). true.?- nonvar(abc). true.?- nonvar(abc),fail. false.
5 Predykaty wbudowane atom(x) Predykat atom(x) jest spełniony jeżeli X jest atomem. Przykład:?- atom(x). false.?- atom(23). false.?- atom(mama). true.?- atom('mama i tata'). true.?- atom("mama i tata"). false.?- X=24,atom(X). false.
6 Predykaty wbudowane number(x) Predykat number(x) jest spełniony jeżeli X jest liczbą. Przykład:?- number(x). false.?- X=1,number(X). X = 1.?- number(3). true.?- number(a). false.?- number('3'). false.?- atom('3'). true.
7 Predykaty wbudowane atomic(x) Cel atomic(x) nie zawodzi jeżeli X jest liczbą lub atomem. Przykład:?- atomic('3'). true.?- atomic(3). true.?- atomic('a b c'). true.?- atomic(x). false.?- X=3,atomic(X). X = 3.
8 Predykaty wbudowane atomic(x) Zauważmy, że predykat atomic(x) można zdefiniować wykorzystują atom i number: podobnie: atomic(x):-atom(x). atomic(x):-number(x). nonvar(x):-var(x),!,fail. nonvar(_).
9 Predykaty wbudowane listing(a) Predykat listing(a) służy do wypisania wszystkich klauzul predykatu o nazwie A. Przykład: lubi(tomek,ryby). lubi(tomek,ala). lubi(ala,x):-lubi(x,ksiazka).?- listing(lubi). lubi(tomek,ryby). lubi(tomek,ala). lubi(ala,a):-lubi(a,ksiazka). true.
10 Predykaty wbudowane asserta(x),assertz(x) Predykat asserta(x) służy do dodania klauzul na początku bazy danych. Zmienna X musi być ukonkretniona. Predykat assertz(x) służy do dodania klauzul na końcu bazy danych. Zmienna X musi być ukonkretniona. Przykład:?- ojciec(x,y). ERROR: toplevel: Undefined procedure: ojciec/2 (DWIM could not correct goal)
11 Predykaty wbudowane asserta(x),assertz(x) Przykład:?- asserta(ojciec(marek,pawel)). true.?- listing(ojciec). :- dynamic ojciec/2. ojciec(marek, pawel). true.?- asserta(ojciec(marek,kasia)). true.?- listing(ojciec). :- dynamic ojciec/2. ojciec(marek, kasia). ojciec(marek, pawel). true.
12 Predykaty wbudowane asserta(x),assertz(x) Przykład:?- assertz(ojciec(marek,julia)). true.?- listing(ojciec). :- dynamic ojciec/2. ojciec(marek, kasia). ojciec(marek, pawel). ojciec(marek, julia). true.
13 Predykaty wbudowane retract(x) Predykat retract(x) służy do usunięcia klauzul z bazy danych odpowiadających termowi X. Przykład:?- ojciec(x,y). X = pawel, Y = marek ; X = pawel, Y = kasia.?- retract(ojciec(pawel,kasia)). true.?- ojciec(x,y). X = pawel, Y = marek.
14 Predykaty wbudowane retract(x) Przykład:?- ojciec(x,y). X = pawel, Y = kasia ; X = pawel, Y = marek.?- retract(ojciec(x,y)). X = pawel, Y = kasia ; X = pawel, Y = marek.?- ojciec(x,y). false.
15 Czytanie i pisanie termów Do czytania termu służy predykat read. Jeżeli zmienna X jest nieukonkretniona wówczas cel read(x). odczyta następny term i ukonkretni nim zmienną X. Przykład:?- read(x). : marek. X = marek.?- read(x). : pawel. X = pawel.
16 Czytanie i pisanie termów Przykład: zdarzenie(1410,'bitwa pd Grunwaldem'). zdarzenie(1772,'pierwszy rozbiór Polski'). zdarzenie(1939,'wybuch II wojny swiatowej'). pytanie(y):-read(x),zdarzenie(x,y). Wówczas:?- pytanie(x). : X = 'Wybuch II wojny swiatowej'.
17 Czytanie i pisanie termów Do pisania termu służy predykat write. Jeżeli zmienna X jest ukonkretniona termem wówczas cel write(x). spowoduje wypisanie termu na ekranie. W przeciwnym razie (zmienna X nie jest ukonkretniona termem) wyświetlona zostanie zmienna z niepowtarzalnym numerem. Przykład:?- write(x). _G235 true.
18 Czytanie i pisanie termów Przykład: zdarzenie(1410,'bitwa pd Grunwaldem'). zdarzenie(1772,'pierwszy rozbiór Polski'). zdarzenie(1939,'wybuch II wojny swiatowej'). pytanie:- write('podaj rok:'), read(x), zdarzenie(x,y), write(y). Wówczas:?- pytanie. Podaj rok: Pierwszy rozbiór Polski true.
19 Wypisanie listy Klauzula wypiszliste(l) wypisuje listę L na ekranie w taki sposób, że każdy term pojawia się w innym wierszu: wypiszliste([]):-!. wypiszliste([x Y]):-write(X), nl,wypiszliste(y). Przykład:?-wypiszListe([1,3,'Sobota']). 1 3 Sobota true.
20 Czytanie i pisanie termów Przykład zdarzenie(1410,['bitwa pd Grunwaldem','Zmarl antypapiez Aleksander V']). zdarzenie(1772,['pierwszy rozbiór Polski','Bitwa morska pod Patras']). zdarzenie(1939,['wybuch II wojny swiatowej','powstala firma Hewlett- Packard','Podpisano pakt stalowy']). wypiszliste([]):-!. wypiszliste([x Y]):-write(X), nl,wypiszliste(y),!.
21 Czytanie i pisanie termów Przykład (cd) rok(x):- zdarzenie(x,y), wypiszliste(y). pytanie:- write('podaj rok: '), read(d), rok(d).
22 Czytanie i pisanie termów Przykład:?- pytanie. Podaj rok: Pierwszy rozbiór Polski Bitwa morska pod Patras true.?- pytanie. Podaj rok: false.?- pytanie. Podaj rok: 1939 Wybuch II wojny swiatowej Powstala firma Hewlett-Packard Podpisano pakt stalowy true.
23 Operacje na plikach W języku Prolog operacje na plikach opierają się na koncepcji strumienia. Strumieniem może być dowolny plik o zapisie sekwencyjnym (tekstowy). Terminal użytkownika też jest strumieniem. Dane są czytane ze strumienia wejściowego (domyślnie terminal użytkownika) i zapisywane w strumieniu wyjściowym (domyślnie terminal użytkownika).
24 Operacje na plikach W danej chwili realizowana może być operacja odczytu i zapisu odpowiednio z/do jednego strumienia wejściowego i jednego strumienia wyjściowego. strumień wejściowy terminal użytkownika strumień wyjściowy plik A program plik B
25 Czytanie i pisanie z/do plików W dotychczasowych przykładach wykorzystywany był domyślny strumień wejścia/wyjścia tzw. user_input oraz user_output. Prolog pozwala nam też czytać z plików i zapisywać do plików. Praca z plikami możliwa jest dzięki predykatom: open powiązanie strumienia z plikiem. close odłącznie strumienia od pliku.
26 Czytanie i pisanie z/do plików Argumenty predykatu open: nazwa pliku. tryb otwarcia - możliwe wartości: read otwarcie do odczytu istniejącego pliku; write utworzenie nowego pliku do zapisu (jeśli plik istnieje, zostanie usunięty); readwrite tryb zapisu i odczytu (jeśli plik istnieje to zostanie otworzony plik istniejący w przeciwnym razie plik zostanie utworzony); append istniejący plik zostanie otworzony do dopisywania.
27 Czytanie z plików Przykładowa struktura programu pracującego w plikiem: czytajplik :- open('dane.txt',read,x), kododczytujacy, close(x). X to zmienna, która zostanie związana ze strumieniem Aby w predykacie kododczytujacy móc odczytać (zapisać) dane z (do) pliku musimy wcześniej zmienić strumień wejściowy (wyjściowy). Zmiana bieżącego strumienia wejściowego i wyjściowego odbywa się za pomocą predykatów set_input oraz set_output.
28 Czytanie z plików Zmodyfikujmy nasz program: czytajplik :- open('dane.txt',read,x), current_input(ci), set_input(x), kododczytujacy, close(x), set_input(ci). CI to zmienna której wartością jest strumień związany z klawiaturą (linia numer 3). Jej wartość ustalona jest za pomocą predykatu current_input.
29 Czytanie z plików Brakujący predykat: kododczytujacy:- read(term), obsluz(term). obsluz(end_of_file):-!. obsluz(term):- write(term),nl, kododczytujacy. Predykat obsluz kończy działanie programu po napotkaniu końca pliku. W przeciwnym razie wypisuje term i wywołuje predykat kododczytujacy.
30 Czytanie z plików Ostatecznie nasz program ma postać: czytajplik :- open('dane.txt',read,x), current_input(ci), set_input(x), kododczytujacy, close(x), set_input(ci). kododczytujacy :- read(term), obsluz(term). obsluz(end_of_file):-!. obsluz(term) :- write(term),nl,kododczytujacy.
31 Czytanie z plików Przetestujmy nasz program na pliku: Wówczas: 1. abc. 2. def. 3. ghi. 4. jkl.?- czytajplik. 1 abc 2 def 3 ghi 4 jkl true.
32 Czytanie z plików Kropka musi się pojawić po każdym wyrazie: Wówczas: 1. abc. 2. def. 3. ghi 4. jkl.?- czytajplik. 1 abc 2 def 3 ERROR: dane.txt:3: Syntax error: Operator expected Brak kropki!
33 Czytanie z plików Jeszcze jedna modyfikacja: Wówczas:?- czytajplik. 1 abc 2 def 3 ghi 4 jkl true. 1. abc. 2. def. '3 ghi'. 4. jkl. Apostrofy!
34 Czytanie z plików No i ostatnia modyfikacja: Wówczas:?- czytajplik. 1 abc 2 def [51,32,103,104,105] 4 jkl true. 1. abc. 2. def. "3 ghi". 4. jkl. Cudzysłów!
35 Pisanie do pliku Program zapisujący do pliku: zapiszplik:- open('out.txt',write,x), current_output(co), set_output(x), kodzapisujacy, close(x), set_output(co). CO to zmienna której wartością jest strumień związany z ekranem (linia numer 3). Jej wartość ustalona jest za pomocą predykatu current_output.
36 Pisanie do pliku Brakujący predykat: kodzapisujacy:- read(x),\+(x='k'), write(x),nl, flush_output, kodzapisujacy. Predykat flush_output czyści strumień wyjściowy, w szczególności umożliwia pisanie od początku nowej linii. Wpisanie k. powoduje zakończenie pracy programu.
37 Pisanie do pliku Ostatecznie nasz program ma postać: zapiszplik:- open('out.txt',write,x), current_output(co), set_output(x), kodzapisujacy, close(x), set_output(co). kodzapisujacy:- read(x),\+(x='k'), write(x),nl, flush_output, kodzapisujacy.
38 Pisanie do pliku Przetestujmy nasz program:?- zapiszplik. : abc. : def. : ghj. : k. Zawartość pliku out.txt: abc def ghj
39 Pisanie do pliku Jeszcze jeden test: zapiszplik. : Pierwsza linijka. ERROR: Stream user_input:65:12 Syntax error: Operator expected UWAGA: Po każdym termie musi się pojawić kropka.
40 Pisanie do pliku No i ostatni test naszego programu:?- zapiszplik. : 'Pierwsza linijka'. : 'Druga linijka'. : 'Ostatnia linijka'. : k. false. Apostrofy! Zawartość pliku out.txt: Pierwsza linijka Druga linijka Ostatnia linijka
41 Pisanie do pliku Rozważmy teraz następujący program: zapiszdopliku(dane,gdzie) :- open(gdzie,append,x), current_output(co), set_output(x), kodzapisujacy(dane), close(x), set_output(co). kodzapisujacy(dane) :- write(dane),nl.
42 Czytanie z plików Test programu:?- zapiszdopliku('dane do pliku','jakisplik.txt'). true.?- zapiszdopliku('dane do pliku 2','jakisplik.txt'). true. Zawartość pliku out.txt: dane do pliku dane do pliku 2
43 Kryptarytmy Kryptarytm - zadanie szaradziarskie, w którym litery należy zastąpić cyframi tak, aby liczby, które w ten sposób powstaną, tworzyły poprawne działania. Każdej literze odpowiada jedna cyfra, różnym literom różne cyfry. Kryptarytmy można rozwiązać za pomocą odpowiedniego rozumowania bez rozważania wielu przykładów. Kryptarytm może posiadać więcej niż jedno rozwiązanie.
44 Kryptarytmy Przykłady:
45 Kryptarytmy Przykłady:
46 Kryptarytmy Katarzyna Lipszyc Kryptarytmy czyli arytmetyka słów
47 Kryptarytmy Chcemy w Prologu rozwiązać następujący kryptarytm: Przypomnijmy sobie jak działa system Prologu.
48 Powtórzenie Rozważmy zapytanie:?- lubi(tomek,ryby). Jeżeli zadajemy zapytanie Prolog przeszukuje bazę danych i szuka faktów pasujących do faktu podanego w zapytaniu. Dwa fakty pasują do siebie jeżeli mają te same predykaty (tak samo pisane) i te same argumenty. Jeżeli poszukiwanie zakończy się sukcesem Prolog odpowiada YES (TRUE), w przeciwnym razie NO (FALSE).
49 Powtórzenie Zapytanie może się składać z kilku celów np.:?- lubi(tomek,sport),lubi(ania,ksiazki). Prolog przeszukuje bazę danych i stara się osiągnąć cele w kolejności od lewej do prawej. Jeśli któryś z celów nie może zostać osiągnięty, wówczas następuje niepowodzenie. Prolog nawraca do poprzednio osiągniętego celu i próbuje osiągnąć go w inny sposób, który być może pozwoli osiągnąć także następne cele.
50 Kryptarytmy Wracamy do naszego problemu: Litery S,E,N,D,M,O,R,Y onaczają wybrane cyfry ze zbioru 0,1,2,3,4,5,6,7,8,9. Zatem lista [S,E,N,D,M,O,R,Y,A,B] musi być permutacją listy [0,1,2,3,4,5,6,7,8,9]. Zatem musi być osiągnięty następujący cel: permut([s,e,n,d,m,o,r,y,a,b],[0,1,2,3,4,5,6, 7,8,9]).
51 Permutacja listy Chcemy zdefiniować predykat: permut(l1,l2). Powyższa klauzula jest prawdziwa, jeśli lista L2 jest permutacją listy L1. Definicja : Jeżeli pierwsza lista (L1) jest pusta, to druga lista (L2) również jest pusta. Najpierw usuwamy element X, na pozostałej reszcie L1 dokonujemy permutacji i wstawiamy element X na początek poddanej już permutacji reszcie listy (czyli P).
52 Permutacja listy Formalna definicja: permut([],[]). permut(l,[x P]):-usun(X,L,L1),permut(L1,P). Przykład:?- permut([a,b,c],[a,c,b]). true.?- permut([a,b,c],[a,c,d]). false.?- permut([a,b,c],x). X = [a, b, c] ; X = [a, c, b] ; X = [b, a, c] ; X = [b, c, a] ; X = [c, a, b] ; X = [c, b, a] ; false.
53 Kryptarytmy Dowolną liczbę będziemy reprezentować za pomocą listy zawierającej kolejne cyfry liczby: 0 [] 3456 [3,4,5,6] [6,8,5,3,2,9,9] Musimy mieć predykat pozwalający konwertować listę reprezentującą liczbę na wartość tej liczby.
54 Kryptarytmy Jak taką wartość wyliczyć? Inaczej: Formalna definicja: [3,4,5,6] = 3*1000+4*100+5*10+6 [3,4,5,6] = ((10*3+4)*10+5)*10+6 wartosc([],0). wartosc([n],n). wartosc([h1,h2 T],N):-H3 is 10*H1+H2, wartosc([h3 T],N).
55 Kryptarytmy Przetestujmy:?- wartosc([1,2,3],121). false.?- wartosc([1,2,3],123). true.?- wartosc([],x). X = 0.?- wartosc([1,2,3,4,5],x). X = ?- wartosc([1,2,3,4,5,2,3,4],x). X =
56 Kryptarytmy Potrzebujemy jeszcze predykat suma/3, który pozwoli dodać kilka liczb (reprezentowanych listami i umieszczonych na liście będącej pierwszym argumentem) do liczby będącej drugim argumentem tzn.:?- suma([[1,2,3]],5,x). X = 128.?- suma([[1,2,3],[4,5,1]],5,x). X = 579.?- suma([[1,2,3],[4,5,1],[5,6,9,6]],4,x). X = 6274.
57 Kryptarytmy Formalna definicja: suma([],x,x).? Propozycja rozwiązania: Pobieramy pierwszą liczbę z listy (czyli głowę listy) Obliczamy wartość tej liczby Dodajemy tę wartość do drugiej liczby i zapisujemy w drugim argumencie.
58 Kryptarytmy Otrzymujemy zatem następujące cele: perm([s,e,n,d,m,o,r,y,a,b],[0,1,2,3,4,5,6,7,8,9]), suma([[s,e,n,d], [M,O,R,E]],Z), wartosc([m,o,n,e,y],z)
59 Kryptarytmy Nasz docelowy predykat możemy zdefiniować następująco: kryptarytm([s,e,n,d,m,o,r,y,a,b]):- perm([s,e,n,d,m,o,r,y,a,b],[0,1,2,3,4,5,6,7,8,9]), suma([[s,e,n,d], [M,O,R,E]],Z), wartosc([m,o,n,e,y],z). kryptarytm([s,e,n,d,m,o,r,y]):- kryptarytm([s,e,n,d,m,o,r,y,_,_]).
60 Kryptarytmy Sprawdzamy:?- kryptarytm([s,e,n,d,m,o,r,y]). S = 6, E = 4, N = 1, D = 9, M = 0, O = 7, R = 2, Y = 3. SEND MORE MONEY 07143
61 Grafy Rozważmy następujący graf: Chcemy napisać program, który dla dwóch zadanych wierzchołków wypisze nam możliwe ścieżki między nimi.
62 Grafy Graf opisujemy następująco: krawedz(1,2). krawedz(2,3). krawedz(1,5). krawedz(4,5). krawedz(5,2). krawedz(2,4). krawedz(3,1) Wierzchołki są połączone jeżeli istnieje między nimi krawędź: polacz(x,y):-krawedz(x,y);krawedz(y,x). alternatywa
63 Akumulatory Często zdarza się, że w celu uzyskania wyniku konieczne jest przeglądanie struktur prologowych. Podczas analizy takich struktur mogą pojawić się wyniki pośrednie. Wyniki te możemy zapisać w dodatkowym argumencie predykatu, który nazywamy akumulatorem.
64 Grafy Wykorzystamy następujące predykaty: odwroc odwrócenie listy akumulator odwroc([x Y],Z,W):-odwroc(Y,[X Z],W). odwroc([],x,x). odwroc(a,r):-odwroc(a,[],r). Przykład:?- odwroc([2,5,7],[],a). A = [7,5,2].?- odwroc([2,5,7],a). A = [7,5,2]. odwroc([2,5,7],[],a). odwroc([5,7],[2],a). odwroc([7],[5,2],a). odwroc([],[7,5,2],a).
65 Grafy Wykorzystamy następujące predykaty: nalezy sprawdzenie czy element należy do listy nalezy(x,[x _]). nalezy(x,[_ R]):-nalezy(X,R). Przykład:?- nalezy(1,[1,4,5]). true ; false.?- nalezy(7,[1,4,5]). false.?- nalezy(x,[1,5]). X = 1 ; X = 5 ; false.
66 Grafy Wykorzystamy następujące predykaty: travel akumulator travel(a,b,p,[b P]):-polacz(A,B). travel(a,b,odwiedzone,path):- polacz(a,c), C \== B, not(nalezy(c,odwiedzone)), travel(c,b,[c Odwiedzone],Path). Przykład:?- travel(1,2,a,b). B = [2 A] ; false. krawedz(1,2). krawedz(2,3). krawedz(3,4).
67 Grafy - przykład Przykład: travel(a,b,p,[b P]):-polacz(A,B). travel(a,b,odwiedzone,path):- polacz(a,c), C \== B, not(nalezy(c,odwiedzone)), travel(c,b,[c Odwiedzone],Path) ?- travel(1,4,[],a). A = [4, 3, 2]?- travel(1,4,[1],a). A = [4, 3, 2, 1] ; false. 4?- travel(2,4,[1,2],a). A = [4, 3, 1, 2] ; false.
68 Grafy - przykład Ostatnim wykorzystanym predykatem jest: sciezka sciezka(a,b,sciezka) :- travel(a,b,[a],q), odwroc(q,sciezka). Przykład:?- sciezka(1,3,a). A = [1, 2, 3] ; false.?- sciezka(1,5,a). false
69 Grafy - przykład Przykład:?- sciezka(4,3,x). X = [4, 5, 2, 3] ; X = [4, 5, 2, 1, 3] ; X = [4, 5, 1, 3] ; X = [4, 5, 1, 2, 3] ; X = [4, 2, 3] ; X = [4, 2, 1, 3] ; X = [4, 2, 5, 1, 3] ; false
70 Grafy - przykład Przykład:?- sciezka(4,2,x). X = [4, 5, 1, 2] ; X = [4, 3, 2] ; false ?- sciezka(4,2,x). X = [4, 5, 2] ; X = [4, 5, 1, 2] ; X = [4, 3, 2] ; false
71 Koniec
Prolog Wejście / wyjście r
Prolog Wejście / wyjście 16.06.2016r Najprostszym sposobem pobierania danych od użytkownika jest odczytywanie informacji wprowadzonych za pomocą urządzenia standardowego wejścia jakim zwykle jest klawiatura.
Bardziej szczegółowoProgramowanie w logice
Wejście i wyjście Wydział Matematyki UŁ 30 marca 2007 Plan prezentacji Czytanie i pisanie termów 1 Czytanie i pisanie termów Czytanie termów Pisanie termów 2 Czytanie znaków Pisanie znaków 3 Czytanie z
Bardziej szczegółowoProgramowanie 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ółowoProgramowanie 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ółowoDeklarowania 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ółowoProgramowanie 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ółowoStatyczne i dynamiczne predykaty
Statyczne i dynamiczne predykaty Dynamiczne dowodzą lub odwołują pewne reguły, Statyczne nie potrafią tego co dynamiczne, ponieważ ich punkty zostały zebrane w całość, która działa szybciej, ale nie jest
Bardziej szczegółowoPROLOG: WEJŚCIE/WYJŚCIE I FUNKCJE WBUDOWANE. Autor: Mateusz Chojnacki
PROLOG: WEJŚCIE/WYJŚCIE I FUNKCJE WBUDOWANE Autor: Mateusz Chojnacki WEJŚCIE/WYJŚCIE Do tej pory jedynym sposobem na dostarczenie informacji do programu Prolog a było zadawanie pytań w zakresie określonej
Bardziej szczegółowoProgramowanie 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ółowoProgramowanie w Logice
Programowanie w Logice Wejście i wyjście Przemysław Kobylański na podstawie [CM2003] Term czyta się ze standardowego wejścia predykatem read/1. Każdy wczytywany term powinien być zakończony kropką. Predykat
Bardziej szczegółowoProjekt 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ółowoDana 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ółowoProlog 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ółowoProgramowanie 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ółowoProgram dopisujący gwiazdkę na końcu pliku tekstowego o nazwie podanej przez uŝytkownika oraz wypisujący zawartość tego pliku.
Program 7 Program dopisujący gwiazdkę na końcu pliku tekstowego o nazwie podanej przez uŝytkownika oraz wypisujący zawartość tego pliku. #include #include using namespace std; int main()
Bardziej szczegółowoPROLOG 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ółowoPROLOG. 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ółowoPliki. Operacje na plikach w Pascalu
Pliki. Operacje na plikach w Pascalu ścieżka zapisu, pliki elementowe, tekstowe, operacja plikowa, etapy, assign, zmienna plikowa, skojarzenie, tryby otwarcia, reset, rewrite, append, read, write, buforowanie
Bardziej szczegółowoPASCAL. Etapy pisania programu. Analiza potrzeb i wymagań (treści zadania) Opracowanie algorytmu Kodowanie Kompilacja Testowanie Stosowanie
PASCAL Język programowania wysokiego poziomu Opracowany przez Mikołaja Wirtha na początku lat 70 XX wieku Prosty, z silną kontrolą poprawności Stosowany prawie wyłącznie na uczelniach do nauki programowania
Bardziej szczegółowoProgramowanie 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ółowoPrzedrostkowa i przyrostkowa inkrementacja i dekrementacja
Część VIII C++ Przedrostkowa i przyrostkowa inkrementacja i dekrementacja W poprzednim ćwiczeniu operatory inkrementacji i dekrementacji występowały w wersji przyrostkowej. Istnieje inny sposób zapisu
Bardziej szczegółowoNazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek
Nazwa implementacji: Nauka języka Python pętla for Autor: Piotr Fiorek Opis implementacji: Poznanie innego rodzaju pętli, jaką jest pętla for w języku Python. Składnia pętli for jest następująca: for
Bardziej szczegółowoWykład PASCAL - Pliki tekstowe
Podstawy programowania Wykład PASCAL - Pliki tekstowe 1 dr Artur Bartoszewski - Podstawy prograowania, sem. 1- WYKŁAD Rodzaje plików Dane przechowywane w pliku mogą mieć reprezentację binarną (taką samą,
Bardziej szczegółowoPodstawy i języki programowania
Podstawy i języki programowania Laboratorium 8 - wprowadzenie do obsługi plików tekstowych i wyjątków mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 11 grudnia 2017 1 / 34 mgr inż. Krzysztof
Bardziej szczegółowoLaboratorium 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ółowoProgramowanie w Logice Przykłady programów. Przemysław Kobylański
Programowanie w Logice Przykłady programów Przemysław Kobylański Język Imperator 1 jest prostym językiem imperatywnym. Jego składnię opisuje poniższa gramatyka BNF: PROGRAM ::= PROGRAM ::= INSTRUKCJA ;
Bardziej szczegółowoSchematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.
Schematy blokowe I Jeżeli po schematach blokowych będzie używany język C, to należy używać operatorów: '&&', ' ', '!=', '%' natomiast jeśli Ruby to 'and', 'or', '%', '!='. 1. Dostępne bloki: a) początek:
Bardziej szczegółowoPODSTAWY 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ółowoPliki wykład 2. Dorota Pylak
Pliki wykład 2 Dorota Pylak Struktura programu działającego na plikach 1) Dyrektywa preprocesora #include //zapewnia dostęp do strumieni ifstream i ofstream 2) deklaracja zmiennej (strumienia)
Bardziej szczegółowoĆwiczenie 4. Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1.
Laboratorium Podstaw Informatyki Strona 1 Laboratorium Podstaw Informatyki Kierunek Elektrotechnika Ćwiczenie 4 Obsługa plików Kraków 2010 Laboratorium Podstaw Informatyki Strona 2 Obsługa plików Zanim
Bardziej szczegółowoProgramowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.
Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Wskaźnik do pliku Dostęp do pliku: zapis, odczyt,
Bardziej szczegółowoPliki. Informacje ogólne. Obsługa plików w języku C
Pliki Informacje ogólne Plik jest pewnym zbiorem danych, zapisanym w systemie plików na nośniku danych (np. dysku twardym, pendrive, płycie DVD itp.). Może posiadać określone atrybuty, a odwołanie do niego
Bardziej szczegółowoPodstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
Podstawy programowania Wykład: 9 Łańcuchy znaków 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Rodzaje plików Dane przechowywane w pliku mogą mieć reprezentację binarną (taką samą, jak
Bardziej szczegółowoProlog (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ółowoProgramowanie w Logice
Programowanie w Logice Przeszukiwanie rozwiązań Przemysław Kobylański Generowanie wszystkich rozwiązań Prolog nie tylko potrafi sprawdzić czy dana spełnia warunek ale również potrafi wygenerować wszystkie
Bardziej szczegółowoPrzeszukiwanie 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ółowoZadanie nr 3: Sprawdzanie testu z arytmetyki
Zadanie nr 3: Sprawdzanie testu z arytmetyki 1 Cel zadania Zadanie wymusza praktyczne przećwiczenia dostosowania formatu i formy wyświetlania informacji dla własnych typów danych. Ma ono pokazać potencjalne
Bardziej szczegółowoPo 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ółowoZnaki globalne w Linuxie
Znaki globalne w Linuxie * reprezentuje jeden lub wiele znaków (wild-card character)? reprezentuje dokładnie jeden znak (wild-card character) [abcde] reprezentuje dokładnie jeden znak z wymienionych [a-e]
Bardziej szczegółowoINFORMATYKA Studia Niestacjonarne Elektrotechnika
INFORMATYKA Studia Niestacjonarne Elektrotechnika Wydział Elektrotechniki i Informatyki dr inż. Michał Łanczont Wydział Elektrotechniki i Informatyki p. E419 tel. 81-538-42-93 m.lanczont@pollub.pl http://lanczont.pollub.pl
Bardziej szczegółowoCelem ć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ółowoSQL - 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ółowo1 Automaty niedeterministyczne
Szymon Toruńczyk 1 Automaty niedeterministyczne Automat niedeterministyczny A jest wyznaczony przez następujące składniki: Alfabet skończony A Zbiór stanów Q Zbiór stanów początkowych Q I Zbiór stanów
Bardziej szczegółowoPętla for. Matematyka dla ciekawych świata -19- Scilab. for i=1:10... end. for k=4:-1:1... end. k=3 k=4. k=1. k=2
Pętle wielokrotne wykonywanie ciągu instrukcji. Bardzo często w programowaniu wykorzystuje się wielokrotne powtarzanie określonego ciągu czynności (instrukcji). Rozróżniamy sytuacje, gdy liczba powtórzeń
Bardziej szczegółowoWstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 12 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Obsługa łańcuchów znakowych getchar(), putchar()
Bardziej szczegółowo4. 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ółowoCw.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ółowoInstrukcja do laboratorium Systemów Operacyjnych. (semestr drugi)
Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi) Ćwiczenie trzecie (jedne zajęcia) Temat: Potoki i łącza nazwane w Linuksie. Opracowanie: dr in ż. Arkadiusz Chrobot Wprowadzenie 1. Komunikacja
Bardziej szczegółowoRekurencja (rekursja)
Rekurencja (rekursja) Rekurencja wywołanie funkcji przez nią samą wewnątrz ciała funkcji. Rekurencja może być pośrednia funkcja jest wywoływana przez inną funkcję, wywołaną (pośrednio lub bezpośrednio)
Bardziej szczegółowoBASH - LINIA POLECEŃ. Bioinformatyka 2018/2019
BASH - LINIA POLECEŃ Bioinformatyka 2018/2019 PODSTAWOWE DEFINICJE Linux system operacyjny, które oferuje kompletne środowisko programistyczne Powłoka interfejs wiersza poleceń zapewniający komunikację
Bardziej szczegółowoZasady programowania Dokumentacja
Marcin Kędzierski gr. 14 Zasady programowania Dokumentacja Wstęp 1) Temat: Przeszukiwanie pliku za pomocą drzewa. 2) Założenia projektu: a) Program ma pobierać dane z pliku wskazanego przez użytkownika
Bardziej szczegółowoPodstawy Pythona. Krzysztof Gdawiec. Instytut Informatyki Uniwersytet Śląski
Podstawy Pythona Krzysztof Gdawiec Instytut Informatyki Uniwersytet Śląski Słownik jest typem mutowalnym. Każdy element to para: klucz wartość. W celu stworzenia słownika pary klucz wartość umieszczamy
Bardziej szczegółowoPracownia Informatyczna I ORGANIZACJA ZAJĘĆ, ZASADY ZALICZENIA
Pracownia Informatyczna I ORGANIZACJA ZAJĘĆ, ZASADY ZALICZENIA 1 Organizacja zajęć ½ semestru mgr Magda Mielczarek Katedra Genetyki, pokój nr 14 e-mail: magda.mielczarek@up.wroc.pl tel: 71-320-57-51 Slajdy
Bardziej szczegółowoPRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE
PRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE Magda Mielczarek Pracownia Informatyczna 2015/2016 1 Podstawowe definicje Linux system operacyjny, które oferuje kompletne środowisko programistyczne
Bardziej szczegółowoProgramowanie w Logice Gramatyki metamorficzne. Przemysław Kobylański na podstawie [CM2003] i [SS1994]
Programowanie w Logice Gramatyki metamorficzne Przemysław Kobylański na podstawie [CM2003] i [SS1994] Gramatyki bezkontekstowe Gramatyką bezkontekstową jest uporządkowana czwórka G = Σ, N, S, P, gdzie
Bardziej szczegółowoProjekty zaliczeniowe Podstawy Programowania 2012/2013
Projekty zaliczeniowe Podstawy Programowania 2012/2013 0. Zasady ogólne W skład projektu wchodzą następujące elementy: dokładny opis rozwiązywanego problemu opis słowny rozwiązania problemu wraz z pseudokodami
Bardziej szczegółowoLekcja 10. Uprawnienia. Dołączanie plików przy pomocy funkcji include() Sprawdzanie, czy plik istnieje przy pmocy funkcji file_exists()
Paweł Gmys PHP strona 1 Lekcja 10 Uprawnienia Aby skrypt PHP mógł odwołać się do pliku, musi mieć odpowiednie uprawnienia. Szczegóły są zależne od serwera. Najczęściej chyba skrypt ma uprawnienia takie,
Bardziej szczegółowoProgramowanie w językach
Programowanie w językach wysokiego poziomu Obsługa plików za pomocą strumieni Elektronika i Telekomunikacja, semestr III rok akademicki 2013/2014 dr inż. Paweł Myszkowski Plan zajęć a) otwieranie i zamykanie
Bardziej szczegółowoALGORYTMY. 1. Podstawowe definicje Schemat blokowy
ALGORYTMY 1. Podstawowe definicje Algorytm (definicja nieformalna) to sposób postępowania (przepis) umożliwiający rozwiązanie określonego zadania (klasy zadań), podany w postaci skończonego zestawu czynności
Bardziej szczegółowoWprowadzenie 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ółowoZad. 5: Układ równań liniowych liczb zespolonych
Zad. 5: Układ równań liniowych liczb zespolonych 1 Cel ćwiczenia Wykształcenie zdolności abstrahowania operacji arytmetycznych od konkretnych typów. Unaocznienie problemów związanych z programowaniem uogólnionym
Bardziej szczegółowoPliki. Informacje ogólne. Obsługa plików w języku C
Pliki Informacje ogólne Plik jest pewnym zbiorem danych, zapisanym w systemie plików na nośniku danych. Może posiadać określone atrybuty, a odwołanie do niego odbywa się poprzez nazwę. Każdy plik ma skończoną
Bardziej szczegółowoProgram, który się uczy.
Program, który się uczy. Korzystając z omówionych poleceń, jesteśmy w stanie zaprojektować program, który nauczy się nowych informacji do swojej bazy wiedzy, a także zapisze je w taki sposób, aby mogły
Bardziej szczegółowoAutor: Joanna Karwowska
Autor: Joanna Karwowska Jeśli pobieramy dane z więcej niż jednej tabeli, w rzeczywistości wykonujemy tak zwane złączenie. W SQL istnieją instrukcje pozwalające na formalne wykonanie złączenia tabel - istnieje
Bardziej szczegółowoWyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w
Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w obrębie skryptu. Wyrażenia include() i require() są niemal
Bardziej szczegółowoBASH - WPROWADZENIE Bioinformatyka 4
BASH - WPROWADZENIE Bioinformatyka 4 DLACZEGO BASH? Praca na klastrach obliczeniowych Brak GUI Środowisko programistyczne Szybkie przetwarzanie danych Pisanie własnych skryptów W praktyce przetwarzanie
Bardziej szczegółowoArytmetyka liczb binarnych
Wartość dwójkowej liczby stałoprzecinkowej Wartość dziesiętna stałoprzecinkowej liczby binarnej Arytmetyka liczb binarnych b n-1...b 1 b 0,b -1 b -2...b -m = b n-1 2 n-1 +... + b 1 2 1 + b 0 2 0 + b -1
Bardziej szczegółowoObsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1. Kraków 2013
Laboratorium Podstaw Informatyki Strona 1 Laboratorium Podstaw Informatyki Kierunek Elektrotechnika Obsługa plików Kraków 2013 Laboratorium Podstaw Informatyki Strona 2 Obsługa plików Zanim będziemy mogli
Bardziej szczegółowoUwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)
Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie
Bardziej szczegółowoJAVAScript 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ółowoPomorski Czarodziej 2016 Zadania. Kategoria C
Pomorski Czarodziej 2016 Zadania. Kategoria C Poniżej znajduje się 5 zadań. Za poprawne rozwiązanie każdego z nich możesz otrzymać 10 punktów. Jeżeli otrzymasz za zadanie maksymalną liczbę punktów, możesz
Bardziej szczegółowoMATLAB tworzenie własnych funkcji
MATLAB tworzenie własnych funkcji Definiowanie funkcji anonimowych Własne definicje funkcji możemy tworzyć bezpośrednio w Command Window, są to tzw. funkcje anonimowe; dla funkcji jednej zmiennej składnia
Bardziej szczegółowoCzęść 4 życie programu
1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część
Bardziej szczegółowoBash - wprowadzenie. Bash - wprowadzenie 1/39
Bash - wprowadzenie Bash - wprowadzenie 1/39 Bash - wprowadzenie 2/39 Czym jest bash? Rysunek : Zadanie powłoki to ukrycie wywołań systemowych Bash - wprowadzenie 3/39 Czym jest bash? Przykład polecenia:
Bardziej szczegółowoALGORYTMY. 1. Podstawowe definicje Schemat blokowy
ALGORYTMY 1. Podstawowe definicje Algorytm (definicja nieformalna) to sposób postępowania (przepis) umożliwiający rozwiązanie określonego zadania (klasy zadań), podany w postaci skończonego zestawu czynności
Bardziej szczegółowoWprowadzenie do Sztucznej Inteligencji Laboratorium lista 0.2 Elementy języka Prolog: reguły i rekurencja. Przemysław Kobylański
Wprowadzenie do Sztucznej Inteligencji Laboratorium lista 0.2 Elementy języka Prolog: reguły i rekurencja Przemysław Kobylański Część I Wprowadzenie 1 Reguły Przypomnijmy z poprzedniej listy zadań fakty
Bardziej szczegółowoPrezentacja do pobranie:
Prezentacja do pobranie: www.barkaf.cba.pl/prezentacja.rar 1 Prolog programowanie ROZDZIAŁ 1: WPROWADZENIE ROZDZIAŁ 2: PROLOG Z BLISKA NA PODSTAWIE: PROLOG. PROGRAMOWANIE- W. F. CLOCKSIN, C. S. MELLISH
Bardziej szczegółowoWstęp do informatyki. stęp do informatyki Polecenia (cz.2)
Wstęp do informatyki stęp do informatyki Polecenia (cz.2) Lista procesów top Pokaż listę procesów polecenie interaktywne Procesy Uruchamianie w tle. shell nie czeka na zakończenie procesu, można wydawać
Bardziej szczegółowoStrumienie, pliki. Sortowanie. Wyjątki.
Strumienie, pliki. Sortowanie. Wyjątki. Serializacja Zapisuje całą klasę Plik binarny Delimiter nieokreślony Nie da się podglądać Pliki tekstowe Zapisuje wybrane informacje Plik tekstowy Delimiter ustawiamy
Bardziej szczegółowoZadanie 1. Suma silni (11 pkt)
2 Egzamin maturalny z informatyki Zadanie 1. Suma silni (11 pkt) Pojęcie silni dla liczb naturalnych większych od zera definiuje się następująco: 1 dla n = 1 n! = ( n 1! ) n dla n> 1 Rozpatrzmy funkcję
Bardziej szczegółowo1 Powtórzenie wiadomości
1 Powtórzenie wiadomości Zadanie 1 Napisać program, który w trybie dialogu z użytkownikiem przyjmie liczbę całkowitą, a następnie wyświetli informację czy jest to liczba parzysta czy nieparzysta oraz czy
Bardziej szczegółowo2. Łańcuchy tekstowe w PHP
2. Łańcuchy tekstowe w PHP 2.1 Apostrofy i cudzysłowy Łańcuch tekstowy w języku PHP to ciąg znaków ograniczony apostrofami (') lub cudzysłowami ("). Te znaki ograniczające nie powinny być traktowane wymiennie,
Bardziej szczegółowoDedukcyjne bazy danych i rekursja
Dedukcyjne bazy danych i rekursja Wykład z baz danych dla studentów matematyki 27 maja 2017 Bazy danych z perspektywy logiki Spojrzenie na bazy danych oczami logika pozwala jednolicie opisać szereg pojęć.
Bardziej szczegółowoKolejki FIFO (łącza nazwane)
Kolejki FIFO (łącza nazwane) Systemy Operacyjne 2 laboratorium Mateusz Hołenko 6 listopada 2011 Plan zajęć 1 Łącza w systemie Linux kolejki FIFO vs. potoki specyfika łączy nazwanych schemat komunikacji
Bardziej szczegółowo*W uproszczeniu: jest dziewięciu sędziów przyznających po dwie noty: za wartość techniczną i artystyczną (skala od 0.0 do 6.0)
Tablice Mamy napisać program obliczający średnią ocenę w łyżwiarstwie figurowym W uproszczeniu: jest dziewięciu sędziów przyznających po dwie noty: za wartość techniczną i artystyczną (skala od 0.0 do
Bardziej szczegółowoMetoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa.
Plan Procedura decyzyjna Reguły α i β - algorytm Plan Procedura decyzyjna Reguły α i β - algorytm Logika obliczeniowa Instytut Informatyki 1 Procedura decyzyjna Logiczna konsekwencja Teoria aksjomatyzowalna
Bardziej szczegółowoPliki wykład 2. Dorota Pylak
Pliki wykład 2 Dorota Pylak Struktura programu działającego na plikach 1) Dyrektywa preprocesora #include //zapewnia dostęp do strumieni ifstream i ofstream 2) deklaracja zmiennej (strumienia)
Bardziej szczegółowoBloki anonimowe w PL/SQL
Język PL/SQL PL/SQL to specjalny język proceduralny stosowany w bazach danych Oracle. Język ten stanowi rozszerzenie SQL o szereg instrukcji, znanych w proceduralnych językach programowania. Umożliwia
Bardziej szczegółowo1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb.
1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb. Algorytmy przeszukiwania w głąb i wszerz są najczęściej stosowanymi algorytmami przeszukiwania. Wykorzystuje się je do zbadania istnienia połączenie
Bardziej szczegółowoWykład 4. Tablice. Pliki
Informatyka I Wykład 4. Tablice. Pliki Dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Tablice Tablica uporządkowany zbiór elementów określonego typu Każdy element tablicy posiada
Bardziej szczegółowoPodstawowe I/O Liczby
Podstawowe I/O Liczby Informatyka Jolanta Bachan Implementacja algorytmów, cd. I/O: Keyboard in, screen out, no loops Jolanta Bachan 2 Implementacja algorytmów, cd. I/O: Keyboard in, screen out, no loops
Bardziej szczegółowoĆwiczenie 2 Wczytywanie i zapisywanie do plików tekstowych
Ćwiczenie 2 Wczytywanie i zapisywanie do plików tekstowych 1. Wczytywanie z plików tekstowych. Wczytywanie z pliku tekstowego wymaga: a) skojarzenia zmiennej plikowej z plikiem procedura assignfile b)
Bardziej szczegółowoProgram wykonujący operację na plikach powinien zachować schemat działania zapewniający poprawną pracę:
Rozdział 1 Obsługa plików W językach C pliki powiązane są ze strumieniami i pracuje się na nich podobnie jak na innych strumieniach. W języku C do operacji na plikach służą funkcje z biblioteki stdio.h,
Bardziej szczegółowoJę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ółowoProgramowanie 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ółowoZakład Systemów Rozproszonych
Zakład Systemów Rozproszonych Politechnika Rzeszowska Moduł 5: Wybrane programy użytkowe Edytor Vi Edytor Vi uruchamiany jest w oknie terminala. Przy jego pomocy możemy dokonywać następujących operacji:
Bardziej szczegółowoTemat 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