λ parametry. wartość funkcji suma = λ x y. x + y kwadrat = λ x. x * x K.M. Ocetkiewicz, 2008 WETI, PG 2 K.M. Ocetkiewicz, 2008 WETI, PG 3

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

Download "λ parametry. wartość funkcji suma = λ x y. x + y kwadrat = λ x. x * x K.M. Ocetkiewicz, 2008 WETI, PG 2 K.M. Ocetkiewicz, 2008 WETI, PG 3"

Transkrypt

1 Organizacja przedmiotu Języki programowania (Programming language concepts) Krzysztof M. Ocetkiewicz pok konsultacje: czwartek 10: , 13:15-14:00 projekt: mgr inż. Krzysztof M. Ocetkiewicz mgr inż. Tomasz Dobrowolski, p. 218, K.M. Ocetkiewicz, 2008 WETI, PG 2 Treść przedmiotu Programowanie funkcjonalne Programowanie funkcjonalne. XSL, Haskell. Przekształcenia symboliczne. Rekurencja ogonowa, LISP. Programowanie w logice, PROLOG. Fakty, reguły, cele. Dopasowywanie i unifikacja. Programowanie z więzami (CLP) Metody definiowania składni. Semantyka denotacyjna Kolokwium II kładziemy nacisk na obliczanie funkcji matematycznych unikamy stanu i zmiennych danych K.M. Ocetkiewicz, 2008 WETI, PG 3 K.M. Ocetkiewicz, 2008 WETI, PG 4 Programowanie funkcjonalne Wyrażenia lambda Wyrażenia lambda Funkcje wyższego rzędu Funkcje czyste Częściowe wywołanie Currying Listy Operatory funkcjonalne Rekurencja K.M. Ocetkiewicz, 2008 WETI, PG 5 Wyrażenia lambda służą do zapisu funkcji anonimowych (bez nazwy; literały funkcyjne ) λ parametry. wartość funkcji Np.: suma = λ x y. x + y kwadrat = λ x. x * x K.M. Ocetkiewicz, 2008 WETI, PG 6

2 Funkcje wyższego rzędu Funkcje mogą być argumentem innej funkcji Wartością zwracaną może być funkcja Np.: Pochodna(F) = F Pochodna(λ x. x * x) = λ x. 2 * x Funkcje czyste Funkcje w matematycznym sensie Bez efektów ubocznych Dla tych samych parametrów zwracają zawsze to samo Czy rand() jest funkcją? czy zawsze rand(7) == rand(7)? K.M. Ocetkiewicz, 2008 WETI, PG 7 K.M. Ocetkiewicz, 2008 WETI, PG 8 Częściowe wywołanie (partial application) Nadanie wartości części argumentów funkcji Zamiast tworzyć funkcję dodajsiedem(x) = x + 7 map dodajsiedem lista Piszemy: map (+7) lista Currying Technika wywoływania funkcji, polegająca na przekazywaniu jej parametrów po jednym Każde wywołanie zwraca nową funkcję, która otrzymuje następny parametr: F(x, y, z) = ( ( F(x) )(y) )(z) K.M. Ocetkiewicz, 2008 WETI, PG 9 K.M. Ocetkiewicz, 2008 WETI, PG 10 Currying Jak, potrafiąc tworzyć wyłącznie funkcje jednoargumentowe, napisać funkcję dwuargumentową? dodaj(x) = λ y. x + y jak to działa? Listy struktura często używana w programowaniu funkcjonalnym pewna liczba elementów takiego samego typu dodaj(3)(5) = (dodaj(3))(5) = = (λ y. 3 + y)(5) = = 8 K.M. Ocetkiewicz, 2008 WETI, PG 11 K.M. Ocetkiewicz, 2008 WETI, PG 12

3 Operacje na listach head (głowa) head [1, 2, 3, 4] = 1 tail (ogon) tail [1, 2, 3, 4] = [2, 3, 4] konstrukcja listy (złożenie listy z głowy i ogona) 1 : [2, 3, 4, 5] = [1, 2, 3, 4, 5] Operacje na listach concat (konkatenacja - scalenie dwóch list) concat( [1, 2, 3], [4, 5, 6] ) = [1, 2, 3, 4, 5, 6] K.M. Ocetkiewicz, 2008 WETI, PG 13 K.M. Ocetkiewicz, 2008 WETI, PG 14 Operatory funkcjonalne Mapowanie Redukcja (zwijanie) Filtrowanie Złożenie Zip, unzip K.M. Ocetkiewicz, 2008 WETI, PG 15 Mapowanie Zastosowanie danej funkcji na wszystkich elementach listy Wynikiem jest lista zawierająca otrzymane wartości funkcji L L x 2 F F( ) F( ) K.M. Ocetkiewicz, 2008 WETI, PG 16 F( ) Mapowanie Przykłady: map( [1, 2, 3, 4, 5], kwadrat) = [1, 4, 9, 16, 25] map( [1, -1, -3, 2, 7], abs) = [1, 1, 3, 2, 7] Funkcja może zwracać wartości innego typu: map( [1, 2, 3, 4, 5], tostring) = [ 1, 4, 9, 16, 25 ] map( [ [1, 2], [], [1, 2, 3], [1] ], length) = [2, 0, 3, 1] K.M. Ocetkiewicz, 2008 WETI, PG 17 Mapowanie Wynik możemy odrzucić, a funkcja może mieć efekty uboczne: map( [1, 2, 3, 4, 5], wypisznaekran) K.M. Ocetkiewicz, 2008 WETI, PG

4 Filtracja Wybór tylko tych elementów z listy, dla których predykat jest prawdziwy Wynikiem jest lista L P L x 2 P( ) = true P(x 2 ) = false P(x 3 ) = true K.M. Ocetkiewicz, 2008 WETI, PG 19 x 3 Filtracja Przykłady: filter( [1, 2, 3, 4, 5], parzyste) = [2, 4] filter( [1, -1, -3, 2, 7], dodatnie) = [1, 2, 7] Predykat - funkcja zwracająca wartość logiczną K.M. Ocetkiewicz, 2008 WETI, PG 20 Redukcja (zwijanie) Redukcja (zwijanie) Połączenie wszystkich elementów listy w jeden przy pomocy danej funkcji Wynikiem jest skalar (pojedyncza wartość) Argumentami są: lista, funkcja dwuargumentowa i wartość początkowa wart. pocz. F L x 2 x 3 F F F wynik K.M. Ocetkiewicz, 2008 WETI, PG 21 K.M. Ocetkiewicz, 2008 WETI, PG 22 Redukcja (zwijanie) Przykłady: reduce( [1, 2, 3, 4, 5], suma, 0) = 15 reduce( [1, 2, 3, 4, 5], iloczyn, 1) = 120 reduce( [1, 2, 3, 4, 5], max, - ) = 5 reduce( [ [1], [2, 3], [4, 5, 6], [], [7] ], concat, [] ) = [1, 2, 3, 4, 5, 6, 7] Redukcja (zwijanie) Drugi argument funkcji nie musi być tego samego typu co wartość początkowa i pierwszy argument: dolacznapis(a, b) = a + + tostring(b) reduce( [1, 2, 3, 4, 5], dolacznapis, ) = K.M. Ocetkiewicz, 2008 WETI, PG 23 K.M. Ocetkiewicz, 2008 WETI, PG 24

5 Redukcja (zwijanie) W niektórych językach istnieją dwa warianty redukcji od lewej do prawej od prawej do lewej Różnica - gdy funkcja nie jest łączna: Złożenie Złożenie funkcji (w sensie matematycznym) (F G)(x) = F(G(x)) Norma(x) = sqrt(reduce(map(x, kwadrat), suma, 0)) reduceltor( [1, 2, 3], minus, 0) = ((0-1) - 2) - 3 = -6 reducertol( [1, 2, 3], minus, 0) = 1 - (2 - (3-0)) = 2 K.M. Ocetkiewicz, 2008 WETI, PG 25 K.M. Ocetkiewicz, 2008 WETI, PG 26 Zip Zip - połączenie dwóch list w jedną listę par elementów L 1 L x 2 L 2 y 1 y 2 y n (, y 1 ) (x 2, y 2 ) K.M. Ocetkiewicz, 2008 WETI, PG 27 (, y n ) Zip Przykład: iloczyn( (a, b) ) = a * b x iloczynskalarny(x, y) = x 2 y y 1 y 2 y n zip = reduce(map(zip(x, y), iloczyn), suma, 0) (, y 1 ) (x 2, y 2 ) (, y n ) map * y 1 x 2 * y 2 K.M. Ocetkiewicz, 2008 WETI, PG 28 * y n reduce iloczyn skalarny Unzip Unzip - operacja odwrotna do zip - rozłożenie listy par na parę list L (, y 1 ) (x 2, y 2 ) (, y n ) unzip( [ (1, 2), (3, 4), (5, 6) ] ) = ( [1, 3, 5], [2, 4, 6] ) L 1 x 2 L 2 y 1 y 2 y n Rekurencja Najczęstsza metoda wykonywania iteracji map([], F) = [] map(l, F) = F(head(L)) : map(tail(l), F) reduceltor([], F, Z) = Z reduceltor(l, F, Z) = reduce(tail(l), F, F(Z, head(l)) reducertol([], F, Z) = Z reducertol(l, F, Z) = F(head(L), reduce(tail(l), F, Z)) K.M. Ocetkiewicz, 2008 WETI, PG 29 K.M. Ocetkiewicz, 2008 WETI, PG 30

6 Programowanie funkcjonalne a XSL Argument funkcjonalny Listy Operatory funkcjonalne Złożenie funkcji Argument funkcjonalny Najbliżej funkcji w XSL jest szablon Ale: <xsl:call-template name= $fn /> BŁĄD K.M. Ocetkiewicz, 2008 WETI, PG 31 K.M. Ocetkiewicz, 2008 WETI, PG 32 Argument funkcjonalny Argument funkcjonalny Rozwiązanie:referencje do szablonów: <xsl:stylesheet version="1.0" xmlns:xsl=" xmlns:f1="f:mul2-template"> <xsl:template match= "*[namespace-uri()=" f:mul2-template ]"> <xsl:param name="arg1"/> <xsl:value-of select="2*$arg1"/> <xsl:variable name="times2" select="document( )/*/f1:*[1]" /> <f1:f1/> </xsl:stylesheet> K.M. Ocetkiewicz, 2008 WETI, PG 33 Wywołanie: <xsl:template name="apply"> <xsl:param name="pfun"/> <xsl:param name="pvalue"/> <xsl:apply-templates select="$pfun"> <xsl:with-param name="arg1" select="$pvalue"/> <xsl:call-template name="apply"> <xsl:with-param name="pfun" select="$times2"/> <xsl:with-param name="pvalue" select="4"/> </xsl:call-template> K.M. Ocetkiewicz, 2008 WETI, PG 34 Jak to działa? Przestrzeń nazw o unikalnej nazwie (f:mul2_template) Szablon (tylko jeden) przetwarzający tę przestrzeń nazw (nasza funkcja) W momencie wywołania stosujemy szablony na stworzonej przestrzeni nazw Listy Jako XML-owe drzewa: <lista> <el>element_1</el> <el>element_2</el> <el>element_n</el> </lista> K.M. Ocetkiewicz, 2008 WETI, PG 35 K.M. Ocetkiewicz, 2008 WETI, PG 36

7 Mapowanie Mapowanie <xsl:template name="map"> <xsl:param name="pfun"/> <xsl:param name="plist"/> <xsl:for-each select="$plist"> <xsl:copy> <xsl:apply-templates select="$pfun"> <xsl:with-param name="arg1" select="."/> </xsl:copy> </xsl:for-each> <lista> <el>1</el> <el>2</el> <el>3</el> <el>4</el> </lista> <xsl:call-template name="map"> <xsl:with-param name="pfun select="$times2"/> <xsl:with-param name="plist select="/lista/el"/> </xsl:call-template> 2468 K.M. Ocetkiewicz, 2008 WETI, PG 37 K.M. Ocetkiewicz, 2008 WETI, PG 38 Redukcja Redukcja <xsl:template name="reduce"> <xsl:param name="pfun"/> <xsl:param name="pzero"/> <xsl:param name="plist"/> <xsl:choose> <xsl:when test="not($plist)"> <xsl:copy-of select="$pzero"/> </xsl:when> <xsl:otherwise> <xsl:variable name="funresult"> <xsl:apply-templates select="$pfun"> <xsl:with-param name="arg1" select="$pzero"/> <xsl:with-param name="arg2" select="$plist[1]"/> </xsl:variable> <xsl:call-template name="reduce"> <xsl:with-param name="pfun" select="$pfun"/> <xsl:with-param name="pzero" select="$funresult"/> <xsl:with-param name="plist" select="$plist[position() > 1]"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> K.M. Ocetkiewicz, 2008 WETI, PG 39 <lista> <el>1</el> <el>2</el> <el>3</el> <el>4</el> </lista> <xsl:template match="*[]"> <xsl:param name = "arg1" /> <xsl:param name = "arg2" /> <xsl:value-of select = $arg1+$arg2" /> <xsl:variable name = add" select = "" /> <xsl:call-template name= reduce"> <xsl:with-param name="pfun select="$add"/> <xsl:with-param name="plist select="/lista/el"/> <xsl:with-param name="pzero select="0"/> </xsl:call-template> K.M. Ocetkiewicz, 2008 WETI, PG Filtrowanie Filtrowanie <xsl:template name="filter"> <xsl:param name="pfun" select="/.."/> <xsl:param name="plist"/> <xsl:for-each select="$plist"> <xsl:variable name="test"> <xsl:apply-templates select="$pfun"> <xsl:with-param name="arg1" select="."/> </xsl:variable> <xsl:if test="string($test)='true'"> <xsl:copy-of select="."/> </xsl:if> </xsl:for-each> <lista> <el>1</el> <el>2</el> <el>3</el> <el>4</el> </lista> <xsl:template match="*[]"> <xsl:param name = "arg1" /> <xsl:value-of select = "number($arg1)!=3" /> <xsl:variable name = "ne3" select = "" /> <xsl:call-template name= filter"> <xsl:with-param name="pfun select="$ne3"/> <xsl:with-param name="plist select="/lista/el"/> </xsl:call-template> 124 K.M. Ocetkiewicz, 2008 WETI, PG 41 K.M. Ocetkiewicz, 2008 WETI, PG 42

8 Złożenie funkcji <!-- xmlns:ext=" --> <xsl:template name="compose"> <xsl:param name="pfun1"/> <xsl:param name="pfun2"/> <xsl:param name="par"/> <xsl:variable name= iv"> <xsl:apply-templates select="$pfun1"> <xsl:with-param name="arg1" select="$par"/> </xsl:variable> <xsl:apply-templates select="$pfun2"> <xsl:with-param name="parg1" select="ext:node-set($iv)/node()" /> K.M. Ocetkiewicz, 2008 WETI, PG 43 Źródła Dimitre Novatchev: Functional programming in XSLT using FXSL library (Extreme Markup Languages 2003) Dimitre Novatchev: Higher-Order Functional Programming with XSLT 2.0 and FXSL (Extreme Markup Languages 2006) K.M. Ocetkiewicz, 2008 WETI, PG 44 Język Haskell Język czysto funkcjonalny Bardzo blisko matematycznego formalizmu Zmienne Operator przypisania = nadaje wartość symbolowi Raz nadana wartość nie zmienia się przez cały czas życia symbolu Jak w matematyce: pi = Brak zmiennej jako pudełka na wartość K.M. Ocetkiewicz, 2008 WETI, PG 45 K.M. Ocetkiewicz, 2008 WETI, PG 46 Listy Lista ma postać: [elem1, elem2,, elemn] Wszystkie elementy muszą być tego samego typu Łańcuch znakowy jest jednocześnie listą znaków Listy Głowa listy: head np.: head [1, 2, 3, 4] = 1 Ogon listy: tail np.: tail [1, 2, 3, 4] = [2, 3, 4] Konstrukcja listy: dwukropek np.: 1 : [2, 3, 4] = [1, 2, 3, 4] 1 : 2 : 3 : [4] = [1, 2, 3, 4] K.M. Ocetkiewicz, 2008 WETI, PG 47 K.M. Ocetkiewicz, 2008 WETI, PG 48

9 Listy Konkatenacja: ++ np.: [1, 2] ++ [3, 4] = [1, 2, 3, 4] np.: abc ++ def = abcdef Funkcje Definicja ma postać: nazwa parametry = wyrażenie np.: add x y = x + y Złożone wyrażenia: hypot x y = let x2 = x * x in sqrt (x2 + y2) where y2 = y * y K.M. Ocetkiewicz, 2008 WETI, PG 49 K.M. Ocetkiewicz, 2008 WETI, PG 50 Funkcje Pattern matching: potega _ 0 = 1 potega a 1 = a potega a b = a * potega a (b - 1) sign x x > 0 = 1 x < 0 = -1 otherwise = 0 mapuj _ [] = [] mapuj f x:xs = (f x) : mapuj (f xs) Funkcje lambda Funkcje anonimowe mają postać: np. \ argumenty -> wyrażenie \ x y -> x*x + y*y K.M. Ocetkiewicz, 2008 WETI, PG 51 K.M. Ocetkiewicz, 2008 WETI, PG 52 Currying Wszystkie funkcje wołane są za pomocą curryingu: f x y z = ( (f x) y) z Przez co: listadokwadratu = map (\ x -> x*x) Operatory Potęgowanie: ^ (np. 2^32) Złożenie funkcji:. (np. h = g. f) Wywołanie funkcji: $ (np. f $ par) dodaj 3 sin 4 =( (dodaj 3) sin) 4 dodaj 3 $ sin 4 = dodaj 3 (sin 4) K.M. Ocetkiewicz, 2008 WETI, PG 53 K.M. Ocetkiewicz, 2008 WETI, PG 54

10 Operatory Operatory infiksowe możemy traktować jak funkcje: np.: (+) 3 2 = 5 Funkcji dwuargumentowych możemy używać jak operatorów np.: add x y = x + y 3 `add` 2 = 5 Operatory funkcjonalne map funkcja lista np.: map (+2) [1, 2, 3] = [3, 4, 5] filter predykat lista np. filter (>0) [1, -2, -3, 4] = [1, 4] foldl/foldr funkcja zero lista np.: foldl (+) 0 [1, 2, 3] = 6 K.M. Ocetkiewicz, 2008 WETI, PG 55 K.M. Ocetkiewicz, 2008 WETI, PG 56 Częściowe wywołanie Programowanie funkcjonalne np.: dodaj a b = a + b odejmij a b = a - b (dodaj 3) (odejmij 2) (`odejmij` 2) (2 `odejmij`) (3 + ) (2 - ) ( / 4) kładziemy nacisk na obliczanie funkcji matematycznych unikamy stanu i zmiennych danych norma = sqrt. foldl (+) 0. map (\x -> x*x) norma [3, 4] = 5 K.M. Ocetkiewicz, 2008 WETI, PG 57 K.M. Ocetkiewicz, 2008 WETI, PG 58

Język XSLT. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

Język XSLT. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz Język XSLT Po zrealizowaniu materiału student będzie w stanie Dokonać przekształcenia zawartości dokumentu XML do formatu HTML oraz TXT Realizować przetwarzanie warunkowe dokumentu XML Formatować wartości

Bardziej szczegółowo

Programowanie funkcyjne wprowadzenie Specyfikacje formalne i programy funkcyjne

Programowanie funkcyjne wprowadzenie Specyfikacje formalne i programy funkcyjne Programowanie funkcyjne wprowadzenie Specyfikacje formalne i programy funkcyjne dr inż. Marcin Szlenk Politechnika Warszawska Wydział Elektroniki i Technik Informacyjnych m.szlenk@elka.pw.edu.pl Paradygmaty

Bardziej szczegółowo

Programowanie Funkcyjne. Marcin Kubica Świder,

Programowanie Funkcyjne. Marcin Kubica Świder, Programowanie Funkcyjne Marcin Kubica Świder, 28-04-2015 Czym jest programowanie funkcyjne? Obliczalne pojęcia matematyczne. Definicje stałych i funkcji i relacji. Wszystkie definicje są konstruktywne,

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

Rodzaje przetwarzania XSLT (1)

Rodzaje przetwarzania XSLT (1) XSLT część 2 Rodzaje przetwarzania XSLT (1) Przetwarzanie sterowane strukturą dokumentu źródłowego (ang. push): przechodzimy po strukturze dokumentu źródłowego, generujemy fragmenty struktury dokumentu

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Programowanie funkcyjne Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. XIV Jesień 2013 1 / 25 Paradygmaty programowania Programowanie imperatywne Program

Bardziej szczegółowo

Definicje wyższego poziomu

Definicje wyższego poziomu Definicje wyższego poziomu Interpreter Scheme-a nie będzie narzekad w przypadku wystąpienia niezdefionowanej zmiennej w ciele wyrażenia lambda dopóki nie będzie zastosowana Przykład braku informacji o

Bardziej szczegółowo

XML extensible Markup Language. część 8

XML extensible Markup Language. część 8 XML extensible Markup Language część 8 XSL transformations (XSLT) XSLT (ang. extensible Stylesheet Language Transformations) jest opartym na XML językiem transformacji dokumentów XML XSLT umożliwia przetłumaczenie

Bardziej szczegółowo

Składnia funkcji i Rekurencja w języku Haskell

Składnia funkcji i Rekurencja w języku Haskell Składnia funkcji i w języku Haskell Tomasz Ostrowski, Adrian Niechciał, Michał Workiewicz, Marcin Wilk 26 marca 2015 Składnia funkcji i w języku Haskell Spis treści Składnia funkcji Tomasz Ostrowski Adrian

Bardziej szczegółowo

Języki formatowania dokumentów strukturalnych. XSL przekształcenia XML-a. XSL a XSLT. XSL części składowe. Zasada działania przekształcenia XSLT

Języki formatowania dokumentów strukturalnych. XSL przekształcenia XML-a. XSL a XSLT. XSL części składowe. Zasada działania przekształcenia XSLT Języki formatowania dokumentów strukturalnych XSL przekształcenia XML-a SGML: FOSI (Formatting Output Specification Instance): specyfikacja MIL-PRF-28001, zbyt małe możliwości dla ogólnych zastosowań.

Bardziej szczegółowo

Wprowadzenie do XSLT

Wprowadzenie do XSLT Tomasz Przechlewski Spis treści 1. Struktura arkusza XSLT... 1 2. Działanie arkusza XSLT... 2 3. Polecenia języka XSLT... 3 4. Zmienne... 5 5. Tworzenie dokumentu wynikowego... 5 6. Wbudowane funkcje...

Bardziej szczegółowo

REKURENCJA W JĘZYKU HASKELL. Autor: Walczak Michał

REKURENCJA W JĘZYKU HASKELL. Autor: Walczak Michał REKURENCJA W JĘZYKU HASKELL Autor: Walczak Michał CZYM JEST REKURENCJA? Rekurencja zwana rekursją, polega na wywołaniu przez funkcję samej siebie. Algorytmy rekurencyjne zastępują w pewnym sensie iteracje.

Bardziej szczegółowo

Plan prezentacji. Krótko o XML Arkusze stylów XSLT XSL XSL Path Przegląd konstrukcji języka i przykłady Narzędzia Podsumowanie Literatura

Plan prezentacji. Krótko o XML Arkusze stylów XSLT XSL XSL Path Przegląd konstrukcji języka i przykłady Narzędzia Podsumowanie Literatura XSLT Dariusz Dudek Plan prezentacji Krótko o XML Arkusze stylów XSLT XSL XSL Path Przegląd konstrukcji języka i przykłady Narzędzia Podsumowanie Literatura Cechy XML a Rozszerzalny język znaczników Stworzony

Bardziej szczegółowo

Semantyka rachunku predykatów

Semantyka rachunku predykatów Relacje Interpretacja Wartość Spełnialność Logika obliczeniowa Instytut Informatyki Relacje Interpretacja Wartość Plan Plan Relacje O co chodzi? Znaczenie w logice Relacje 3 Interpretacja i wartościowanie

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

XSL, tj. XSLT i XSL-FO czyli jak przekształcać i ładnie wyświetlać XML-e. Kuba Pochrybniak

XSL, tj. XSLT i XSL-FO czyli jak przekształcać i ładnie wyświetlać XML-e. Kuba Pochrybniak XSL, tj. XSLT i XSL-FO czyli jak przekształcać i ładnie wyświetlać XML-e Kuba Pochrybniak 1. XML PDF Jak? Jak? L A TEX Jak? L A TEX XSL-FO Jak? L A TEX XSL-FO rzeźbienie ręczne (np. w php) Jak? L A TEX

Bardziej szczegółowo

Programowanie funkcyjne (Haskell Wprowadzenie) Kowalik Adrian

Programowanie funkcyjne (Haskell Wprowadzenie) Kowalik Adrian Programowanie funkcyjne (Haskell Wprowadzenie) Kowalik Adrian Programowanie funkcyjne Krótka geneza języka Haskell Polecenia i składnia języka Funkcje i wyrażenia Typy i typy klasowe Listy i krotki Programowanie

Bardziej szczegółowo

Elementy języka Scheme

Elementy języka Scheme Elementy języka Scheme Historia języka Lisp Historia języka Lisp Wyrażenia i ewaluacja wyrażeń Identyfikatory i wyrażenie let Wyrażenia lambda Definicje globalne Wyrażenia warunkowe Przypisanie Kontynuacje

Bardziej szczegółowo

LABORATORIUM 5 WSTĘP DO SIECI TELEINFORMATYCZNYCH WPROWADZENIE DO XML I XSLT

LABORATORIUM 5 WSTĘP DO SIECI TELEINFORMATYCZNYCH WPROWADZENIE DO XML I XSLT LABORATORIUM 5 WSTĘP DO SIECI TELEINFORMATYCZNYCH WPROWADZENIE DO XML I XSLT 1. Wstęp XML (Extensible Markup Language Rozszerzalny Język Znaczników) to język formalny przeznaczony do reprezentowania danych

Bardziej szczegółowo

XML Path Language (XPath)

XML Path Language (XPath) XML Path Language (XPath) 1 Cel adresowanie elementów /częś ci dokumentu XML składnia podobna do URI wyszukiwanie elementów bądź grup elementów dokument jako drzewo typy węzłów: element, attribute, text

Bardziej szczegółowo

METAJĘZYKI. Politechnika Koszalińska Wydział Elektroniki i Informatyki Katedra Inżynierii Komputerowej

METAJĘZYKI. Politechnika Koszalińska Wydział Elektroniki i Informatyki Katedra Inżynierii Komputerowej 5 dr inż. Robert Berezowski e-mail: robert.berezowski@ie.tu.koszalin.pl Ul. Śniadeckich 2 Pokój 223A Politechnika Koszalińska Wydział Elektroniki i Informatyki Katedra Inżynierii Komputerowej 1 Dokument

Bardziej szczegółowo

XML extensible Markup Language. część 4

XML extensible Markup Language. część 4 XML extensible Markup Language część 4 XSL transformations (XSLT) XSLT (ang. extensible Stylesheet Language Transformations) jest opartym na XML językiem transformacji dokumentów XML XSLT umożliwia przetłumaczenie

Bardziej szczegółowo

XML extensible Markup Language 3

XML extensible Markup Language 3 XML extensible Markup Language 3 XSL transformations (XSLT) XSLT (ang. extensible Stylesheet Language Transformations) jest opartym na XML językiem transformacji dokumentów XML XSLT umożliwia przetłumaczenie

Bardziej szczegółowo

Języki i Paradygmaty Programowania

Języki i Paradygmaty Programowania Języki i Paradygmaty Programowania Odkrywamy Haskell Marcin Benke 24 lutego 2014 Odkrywamy Haskell Haskell zasadniczo kompilowany, ale też interpreter: ghci $ ghci GHCi, version 7.6.2: http://www.haskell.org/ghc/

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

Python i programowanie funkcyjne. Python i programowanie funkcyjne czyli nie tylko obiektowość rządzi. OSEC Funkcyjnie w języku Python 1 z 40

Python i programowanie funkcyjne. Python i programowanie funkcyjne czyli nie tylko obiektowość rządzi. OSEC Funkcyjnie w języku Python 1 z 40 czyli nie tylko obiektowość rządzi 1 z 40 O czym będę mówił... Jak najmniej teorii bo nie czas i miejsce... Próba odpowiedzi na pythanie: Czy warto programować nie tylko obiektowo? Jak język Python wspiera

Bardziej szczegółowo

Języki programowania Haskell

Języki programowania Haskell Języki programowania Haskell zadanie projektowe nr. 4 2014/15 K. Turowski, T. Goluch 1. Kompilacja, uruchamianie i Hello world Kompilacja i uruchamianie: ghc --make hello.hs./hello Interaktywny interpreter:

Bardziej szczegółowo

Extensible Markup Language III

Extensible Markup Language III KIiMK 2010 Plan XSLT-transformacje dokumentów 1 XSLT-transformacjedokumentów Informacje o XSLT Przykład transformacji 2 3 Informacje o XSLT Przykład transformacji Informacje o XSLT Przykład transformacji

Bardziej szczegółowo

Wstęp do Programowania potok funkcyjny

Wstęp do Programowania potok funkcyjny Wstęp do Programowania potok funkcyjny Marcin Kubica 2010/2011 Outline Procedury wyższych rzędów 1 Procedury wyższych rzędów jako abstrakcje konstrukcji programistycznych Intuicje Procedury wyższych rzędów

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Podstawowe cechy i możliwości języka Scala mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 2017 1 / 32 mgr inż. Krzysztof Szwarc Programowanie obiektowe Informacje

Bardziej szczegółowo

Prolog struktury danych oraz obliczenia. 1. Arytmetyka?- Y is 2+2. Y = 4. ?- 5 is 3+3. false. ?- Z is (3.9 / 2.1). Z =

Prolog struktury danych oraz obliczenia. 1. Arytmetyka?- Y is 2+2. Y = 4. ?- 5 is 3+3. false. ?- Z is (3.9 / 2.1). Z = Prolog struktury danych oraz obliczenia 1. Arytmetyka?- Y is 2+2. Y = 4?- 5 is 3+3. false.?- Z is 4.5 + (3.9 / 2.1). Z = 6.357142857142857. Wbudowany predykat is bierze wyrażenie po prawej, oblicza je

Bardziej szczegółowo

Język programowania Scala / Grzegorz Balcerek. Wyd. 2. Poznań, cop Spis treści

Język programowania Scala / Grzegorz Balcerek. Wyd. 2. Poznań, cop Spis treści Język programowania Scala / Grzegorz Balcerek. Wyd. 2. Poznań, cop. 2016 Spis treści Przedmowa 1 Stosowana notacja 1 1. Wprowadzenie 3 1.1. Konsola interaktywna języka Scala 3 1.2. Zmienne 5 1.3. Wartości

Bardziej szczegółowo

Podstawy programowania. Podstawy C# Tablice

Podstawy programowania. Podstawy C# Tablice Podstawy programowania Podstawy C# Tablice Tablica to indeksowany zbiór elementów Tablica jest typem referencyjnym (deklaracja tworzy tylko referencję, sama tablica musi być utworzona oddzielnie, najprościej

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

Podstawy programowania funkcjonalnego

Podstawy programowania funkcjonalnego Podstawy programowania funkcjonalnego haskell.mariuszrozycki.pl Mariusz Różycki Churchill College, University of Cambridge rev. 2014.03.27.1 Wprowadzenie Materiały haskell.mariuszrozycki.pl Slajdy (w tym

Bardziej szczegółowo

Semantyka i Weryfikacja Programów - Laboratorium 3

Semantyka i Weryfikacja Programów - Laboratorium 3 Semantyka i Weryfikacja Programów - Laboratorium 3 Modelowanie układów mikroprocesorowych - część II Wykonywanie całego programu Cały program wykonywany jest przez funkcję intpprog. Jedynym argumentem

Bardziej szczegółowo

XML materiały dydaktyczne - Kurs Podstawowy XSL - wprowadzenie. XSL warstwa przekształcania (XSLT) oraz prezentacji informacji (XSL FO).

XML materiały dydaktyczne - Kurs Podstawowy XSL - wprowadzenie. XSL warstwa przekształcania (XSLT) oraz prezentacji informacji (XSL FO). XSL (XSLT) Transformacja dokumentów XML. XML warstwa przechowująca informacje XSL warstwa przekształcania (XSLT) oraz prezentacji informacji (XSL FO). Transformacja XSLT utworzenie nowego dokumentu wynikowego

Bardziej szczegółowo

Ćwiczenia z wyliczania wartości funkcji

Ćwiczenia z wyliczania wartości funkcji Ćwiczenia z wyliczania wartości funkcji 4 października 2011 1 Wprowadzenie Wyliczanie wartości wyrażenia nie jest sprawą oczywistą, szczególnie jeżeli chodzi o aplikację funkcji. Poniższy tekst nie jest

Bardziej szczegółowo

Języki i paradygmaty programowania

Języki i paradygmaty programowania Języki i paradygmaty programowania Instytut Teleinformatyki ITI PK Kraków marzec 2012 Spis rzeczy 1 Operatory w C/C++ Operatory Operatory w C/C++ operator - rodzaj funkcji wbudowanej w język; różnica notacja

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

PARADYGMATY I JĘZYKI PROGRAMOWANIA. Haskell. (w11)

PARADYGMATY I JĘZYKI PROGRAMOWANIA. Haskell. (w11) PARADYGMATY I JĘZYKI PROGRAMOWANIA Haskell. (w11) !!! 2 Brian Beckman o Monadach 3 Brian Beckman: Don't fear the Monad - YouTube Plan wykładu 4 Typy Funkcje Preludium take, cycle zip, unzip, zipwith filter,

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

Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur.

Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur. Języki i paradygmaty programowania 1 studia stacjonarne 2018/19 Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur. 1. Identyfikator funkcji,

Bardziej szczegółowo

Przyszłość programowania Języki funkcyjne na przykładzie Clojure

Przyszłość programowania Języki funkcyjne na przykładzie Clojure Wstęp Przyszłość programowania Języki funkcyjne na przykładzie Clojure inż. Daniel Harbuz 23 maja 2012 Przyszłość programowaniajęzyki funkcyjne na przykładzie Clojure 23 maja 2012 1 / 31 Wstęp Ageda Agenda

Bardziej szczegółowo

Elementy języka Scheme

Elementy języka Scheme Elementy języka Scheme Historia języka Lisp Wyrażenia i ewaluacja wyrażeń Identyfikatory i wyrażenie let Wyrażenia lambda Definicje globalne Wyrażenia warunkowe Przypisanie Kontynuacje Historia języka

Bardziej szczegółowo

Paradygmaty programowania

Paradygmaty programowania Paradygmaty programowania Paradygmat funkcyjny Cezary Bolek Katedra Informatyki UŁ 1 Dlaczego programowanie funkcyjne? Języki imperatywne, a w duŝym stopniu takŝe obiektowe, są bardzo silnie związane z

Bardziej szczegółowo

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL Celem ćwiczenia jest stworzenie dokumentu XML, wyposażenie dokumentu w specyfikację struktury (przy użyciu DTD i XML Schema), oraz transformacja

Bardziej szczegółowo

Podstawy Programowania Podstawowa składnia języka C++

Podstawy Programowania Podstawowa składnia języka C++ Podstawy Programowania Podstawowa składnia języka C++ Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Szablon programu w C++ Najprostszy program w C++ ma postać: #include #include

Bardziej szczegółowo

Typy, klasy typów, składnie w funkcji

Typy, klasy typów, składnie w funkcji Typy, klasy typów, składnie w funkcji Typy w Haskell Każde wyrażenie w Haskell posiada zdefiniowany typ. Dzięki temu już na etapie kompilacji kodu następuje sprawdzenie poprawności kodu i zabezpiecza nas

Bardziej szczegółowo

Jest to zasadniczo powtórka ze szkoły średniej, być może z niektórymi rzeczami nowymi.

Jest to zasadniczo powtórka ze szkoły średniej, być może z niektórymi rzeczami nowymi. Logika Jest to zasadniczo powtórka ze szkoły średniej, być może z niektórymi rzeczami nowymi. Często słowu "logika" nadaje się szersze znaczenie niż temu o czym będzie poniżej: np. mówi się "logiczne myślenie"

Bardziej szczegółowo

Obliczenia iteracyjne

Obliczenia iteracyjne Lekcja Strona z Obliczenia iteracyjne Zmienne iteracyjne (wyliczeniowe) Obliczenia iteracyjne wymagają zdefiniowania specjalnej zmiennej nazywanej iteracyjną lub wyliczeniową. Zmienną iteracyjną od zwykłej

Bardziej szczegółowo

Metody numeryczne Laboratorium 2

Metody numeryczne Laboratorium 2 Metody numeryczne Laboratorium 2 1. Tworzenie i uruchamianie skryptów Środowisko MATLAB/GNU Octave daje nam możliwość tworzenia skryptów czyli zapisywania grup poleceń czy funkcji w osobnym pliku i uruchamiania

Bardziej szczegółowo

Składnia rachunku predykatów pierwszego rzędu

Składnia rachunku predykatów pierwszego rzędu Początek Gramatyka Kwantyfikatory Poprawność Logika obliczeniowa Instytut Informatyki Początek Gramatyka Kwantyfikatory Poprawność Plan wykładu 1 Na (dobry) początek Zrozumieć słowa Oswoić znaki 2 Gramatyka

Bardziej szczegółowo

Aplikacje internetowe laboratorium XML, DTD, XSL

Aplikacje internetowe laboratorium XML, DTD, XSL Aplikacje internetowe laboratorium XML, DTD, XSL Celem ćwiczenia jest stworzenie dokumentu XML, wyposażenie dokumentu w specyfikację struktury (przy użyciu DTD), oraz transformacja dokumentu XML do postaci

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

UKŁAD INFORMACJI I POWIĄZAŃ MIĘDZY NIMI W INFORMACJI W SPRAWIE PODATKU LEŚNEGO (IL-1) W FORMACIE DANYCH XML

UKŁAD INFORMACJI I POWIĄZAŃ MIĘDZY NIMI W INFORMACJI W SPRAWIE PODATKU LEŚNEGO (IL-1) W FORMACIE DANYCH XML UKŁAD INFORMACJI I POWIĄZAŃ MIĘDZY NIMI W INFORMACJI W SPRAWIE PODATKU LEŚNEGO (IL-1) W FORMACIE DANYCH XML

Bardziej szczegółowo

Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT

Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT Marek Wojciechowski marek@cs.put.poznan.pl http://www.cs.put.poznan.pl/~marek/ Formatowanie dokumentów XML Język XML opisuje strukturę i

Bardziej szczegółowo

SQL, LIKE, IN, CASE, EXISTS. Marcin Orchel

SQL, LIKE, IN, CASE, EXISTS. Marcin Orchel SQL, LIKE, IN, CASE, EXISTS Marcin Orchel Spis treści 1 LIKE 2 2 BETWEEN 4 3 IN 5 4 EXISTS 6 5 WYRAŻENIA CASE 7 6 Zadania 9 1 Rozdział 1 LIKE Predykat LIKE jest testem dopasowującym wzorzec łańcucha. Składnia

Bardziej szczegółowo

Programowanie Delphi obliczenia, schematy blokowe

Programowanie Delphi obliczenia, schematy blokowe Informatyka II MPZI2 ćw.2 Programowanie Delphi obliczenia, schematy blokowe Zastosowania obliczeń numerycznych Wyrażenia arytmetyczne służą do zapisu wykonywania operacji obliczeniowych w trakcie przebiegu

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

UCHWAŁA NR II/17/2014 RADY GMINY PRZODKOWO. z dnia 30 grudnia 2014 r.

UCHWAŁA NR II/17/2014 RADY GMINY PRZODKOWO. z dnia 30 grudnia 2014 r. UCHWAŁA NR II/17/2014 RADY GMINY PRZODKOWO z dnia 30 grudnia 2014 r. w sprawie elektronicznego wzoru deklaracji o wysokości opłaty za gospodarowanie odpadami komunalnymi oraz warunków i trybu składania

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

XML extensible Markup Language. część 6

XML extensible Markup Language. część 6 XML extensible Markup Language część 6 XSL transformations (XSLT) XSLT (ang. extensible Stylesheet Language Transformations) jest opartym na XML językiem transformacji dokumentów XML XSLT umożliwia przetłumaczenie

Bardziej szczegółowo

METAJĘZYKI. Politechnika Koszalińska Wydział Elektroniki i Informatyki Katedra Inżynierii Komputerowej

METAJĘZYKI. Politechnika Koszalińska Wydział Elektroniki i Informatyki Katedra Inżynierii Komputerowej 4 dr inż. Robert Berezowski e-mail: beny@ie.tu.koszalin.pl Ul. Śniadeckich 2 Pokój 223A Politechnika Koszalińska Wydział Elektroniki i Informatyki Katedra Inżynierii Komputerowej 1 XPath nawigacja i wyszukiwanie

Bardziej szczegółowo

Logika Matematyczna (1)

Logika Matematyczna (1) Logika Matematyczna (1) Jerzy Pogonowski Zakład Logiki Stosowanej UAM www.logic.amu.edu.pl pogon@amu.edu.pl Wprowadzenie Jerzy Pogonowski (MEG) Logika Matematyczna (1) Wprowadzenie 1 / 20 Plan konwersatorium

Bardziej szczegółowo

Projekt Era inżyniera pewna lokata na przyszłość jest współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

Projekt Era inżyniera pewna lokata na przyszłość jest współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Materiały dydaktyczne na zajęcia wyrównawcze z matematyki dla studentów pierwszego roku kierunku zamawianego Inżynieria i Gospodarka Wodna w ramach projektu Era inżyniera pewna lokata na przyszłość Projekt

Bardziej szczegółowo

Wstęp do Programowania potok funkcyjny

Wstęp do Programowania potok funkcyjny Wstęp do Programowania potok funkcyjny Marcin Kubica 2010/2011 Outline 1 Pojęcie typu Definition (Typ danych) Typ danych to zbiór wartości wraz z zestawem podstawowych operacji na tych wartościach. Typy

Bardziej szczegółowo

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH ĆWICZENIE NR 9 WYRAŻENIA LOGICZNE, INSTRUKCJE WARUNKOWE I INSTRUKCJE ITERACYJNE W PROGRAMIE KOMPUTEROWYM MATLAB Dr inż. Sergiusz Sienkowski ĆWICZENIE NR

Bardziej szczegółowo

Logika Matematyczna (1)

Logika Matematyczna (1) Logika Matematyczna (1) Jerzy Pogonowski Zakład Logiki Stosowanej UAM www.logic.amu.edu.pl pogon@amu.edu.pl 4 X 2007 Jerzy Pogonowski (MEG) Logika Matematyczna (1) 4 X 2007 1 / 18 Plan konwersatorium Dzisiaj:

Bardziej szczegółowo

W naukach technicznych większość rozpatrywanych wielkości możemy zapisać w jednej z trzech postaci: skalara, wektora oraz tensora.

W naukach technicznych większość rozpatrywanych wielkości możemy zapisać w jednej z trzech postaci: skalara, wektora oraz tensora. 1. Podstawy matematyki 1.1. Geometria analityczna W naukach technicznych większość rozpatrywanych wielkości możemy zapisać w jednej z trzech postaci: skalara, wektora oraz tensora. Skalarem w fizyce nazywamy

Bardziej szczegółowo

RBD Relacyjne Bazy Danych

RBD Relacyjne Bazy Danych Wykład 7 RBD Relacyjne Bazy Danych Bazy Danych - A. Dawid 2011 1 Selekcja σ C (R) W wyniku zastosowania operatora selekcji do relacji R powstaje nowa relacja T do której należy pewien podzbiór krotek relacji

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 strukturalne. dr inż. Tadeusz Jeleniewski

Programowanie strukturalne. dr inż. Tadeusz Jeleniewski Wykład 2 Wejście i wyjście - funkcje scanf i printf Operator przypisania prostego Operatory arytmetyczne Kolejność wykonywania operacji Operatory przypisania arytmetycznego Operatory inkrementacji/dekrementacji

Bardziej szczegółowo

Kurs WWW Język XML, część II

Kurs WWW Język XML, część II Język XML, część II Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Zawartość modułu Wprowadzenie do XSL XPath XSLT XSL-FO Na podstawie kursów ze stron: http://www.w3schools.com/xpath/default.asp

Bardziej szczegółowo

Dlaczego Python jest lepszy od XSLT?

Dlaczego Python jest lepszy od XSLT? Dlaczego Python jest lepszy od XSLT? Jarek Miszczak 10 lutego 2005 roku Streszczenie Celem artykułu jest przyjrzenie się językowi XSLT jako uniwersalnemu językowi programowania i porówananie go z językiem

Bardziej szczegółowo

Programowanie. Lista zadań nr 15. Na ćwiczenia 11, 19 i 23 czerwca 2008

Programowanie. Lista zadań nr 15. Na ćwiczenia 11, 19 i 23 czerwca 2008 Programowanie Lista zadań nr 15 Na ćwiczenia 11, 19 i 23 czerwca 2008 Zadanie 1. Pokaż, że w systemie z polimorfizmem parametrycznym można napisać program P n rozmiaru O(n), którego typ ma rozmiar 2 2Ω(n).

Bardziej szczegółowo

XPath XML Path Language. XPath. XSLT część 1. XPath data model. Wyrażenia XPath. Osie (axes) Location paths

XPath XML Path Language. XPath. XSLT część 1. XPath data model. Wyrażenia XPath. Osie (axes) Location paths XPath XML Path Language XPath. XSLT część 1 Problem: jednoznaczne adresowanie fragmentów struktury dokumentu XML. Rozwiązanie: abstrakcyjny drzewiasty model struktury dokumentu, normalizacja zawartości

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

MATEMATYKA DYSKRETNA, PODSTAWY LOGIKI I TEORII MNOGOŚCI

MATEMATYKA DYSKRETNA, PODSTAWY LOGIKI I TEORII MNOGOŚCI MATEMATYKA DYSKRETNA, PODSTAWY LOGIKI I TEORII MNOGOŚCI Program wykładów: dr inż. Barbara GŁUT Wstęp do logiki klasycznej: rachunek zdań, rachunek predykatów. Elementy semantyki. Podstawy teorii mnogości

Bardziej szczegółowo

Projekt Era inżyniera pewna lokata na przyszłość jest współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

Projekt Era inżyniera pewna lokata na przyszłość jest współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Materiały dydaktyczne na zajęcia wyrównawcze z matematyki dla studentów pierwszego roku kierunku zamawianego Inżynieria Środowiska w ramach projektu Era inżyniera pewna lokata na przyszłość Projekt Era

Bardziej szczegółowo

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji

Bardziej szczegółowo

PARADYGMATY I JĘZYKI PROGRAMOWANIA. Programowanie funkcyjne (w- 9)

PARADYGMATY I JĘZYKI PROGRAMOWANIA. Programowanie funkcyjne (w- 9) PARADYGMATY I JĘZYKI PROGRAMOWANIA Programowanie funkcyjne () Zagadnienia 2 Wstęp Rachunek lambda i programowanie funkcjonalne (Podstawa: An introduc/on to func/onal programming through lambda calculus.

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

Egzamin z przedmiotu Projektowanie języków XML 18.06.2013.... imię i nazwisko. Zadanie 1 2 3 4 5 6 7 Suma Punkty Max 6 5 5 6 6 6 6 40 Punkty

Egzamin z przedmiotu Projektowanie języków XML 18.06.2013.... imię i nazwisko. Zadanie 1 2 3 4 5 6 7 Suma Punkty Max 6 5 5 6 6 6 6 40 Punkty Egzamin z przedmiotu Projektowanie języków XML 18.06.2013 Grupa A... imię i nazwisko. indeks Zadanie 1 2 3 4 5 6 7 Suma Punkty Max 6 5 5 6 6 6 6 40 Punkty Zadanie 1. Przyjrzyj się podanym dokumentom XML.

Bardziej szczegółowo

Rekurencja, schemat rekursji i funkcje pierwotnie rekurencyjne

Rekurencja, schemat rekursji i funkcje pierwotnie rekurencyjne Rekurencja, schemat rekursji i funkcje pierwotnie rekurencyjne Elementy Logiki i Teorii Mnogości 2015/2016 Zadanie 1. Oblicz iteracyjnie i rekurencyjnie f(4), gdzie f jest funkcją określoną na zbiorze

Bardziej szczegółowo

Programowanie funkcyjne w Pythonie

Programowanie funkcyjne w Pythonie Programowanie funkcyjne w Pythonie Koªo DSG 2013 Konrad Siek konrad.siek@cs.put.edu.pl dsg.cs.put.poznan.pl Paradygmat funkcyjny Paradygmat = sposób my±lenia o problemach Paradygmat funkcyjny Paradygmat

Bardziej szczegółowo

Programowanie funkcyjne. Wykªad 13

Programowanie funkcyjne. Wykªad 13 Programowanie funkcyjne. Wykªad 13 Siªa wyrazu rachunku lambda Zdzisªaw Spªawski Zdzisªaw Spªawski: Programowanie funkcyjne. Wykªad 13, Siªa wyrazu rachunku lambda 1 Wst p Warto±ci logiczne Liczby naturalne

Bardziej szczegółowo

1 Funkcje dwóch zmiennych podstawowe pojęcia

1 Funkcje dwóch zmiennych podstawowe pojęcia 1 Funkcje dwóch zmiennych podstawowe pojęcia Definicja 1 Funkcją dwóch zmiennych określoną na zbiorze A R 2 o wartościach w zbiorze R nazywamy przyporządkowanie każdemu punktowi ze zbioru A dokładnie jednej

Bardziej szczegółowo

MATERIAŁY DO ZAJĘĆ II

MATERIAŁY DO ZAJĘĆ II MATERIAŁY DO ZAJĘĆ II Zmienne w C# Spis treści I. Definicja zmiennej II. Hierarchia typów (CTS) III. Typy wbudowane IV. Deklaracja zmiennych V. Literały VI. Pobieranie i wypisywanie wartości zmiennych

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

R. D. Tennent, The Denotational Semantics of Programming Languages [1976]

R. D. Tennent, The Denotational Semantics of Programming Languages [1976] R. D. Tennent, The Denotational Semantics of Programming Languages [1976] Programowanie 2009 - seminarium grupy zaawansowanej Instytut Informatyki Uniwersytetu Wrocławskiego 1 lipca 2009 1 Motywacja Funkcje

Bardziej szczegółowo

Programowanie w CLIPS

Programowanie w CLIPS Programowanie w CLIPS Wiedza początkowa Reguły oraz fakty początkowe dodane na początku programu za pomocą deffacts. (deffacts people "Znajomi" (person (name "Adam Kowalski") (age 24) (eye-color blue)

Bardziej szczegółowo

Wprowadzenie do standardu XSL

Wprowadzenie do standardu XSL Wprowadzenie do standardu XSL Tomasz Przechlewski 2002 Spis treści 1 Wprowadzenie 1 2 XPath 2 2.1 Wstęp................................. 2 2.2 Ścieżki dostępu............................ 4 2.2.1 Osie..............................

Bardziej szczegółowo

operator zmiany znaku operatory mnożenia, dzielenia, dzielenia modulo operatory dodawania, odejmowania

operator zmiany znaku operatory mnożenia, dzielenia, dzielenia modulo operatory dodawania, odejmowania http://torus.uck.pk.edu.pl/~fialko Operatory, wyrażenia, instrukcja przypisania Operatory arytmetyczne * / + - % operator zmiany znaku operatory mnożenia, dzielenia, dzielenia modulo operatory dodawania,

Bardziej szczegółowo

Model relacyjny. Wykład II

Model relacyjny. Wykład II Model relacyjny został zaproponowany do strukturyzacji danych przez brytyjskiego matematyka Edgarda Franka Codda w 1970 r. Baza danych według definicji Codda to zbiór zmieniających się w czasie relacji

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

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

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Informatyka Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia stacjonarne I stopnia Rok akademicki 8/9 Wykład nr 4 (.3.9) Rok akademicki 8/9, Wykład nr 4 /33 Plan wykładu

Bardziej szczegółowo

LibreOffice Calc VBA

LibreOffice Calc VBA LibreOffice Calc VBA LibreOffice Calc umożliwia tworzenie własnych funkcji i procedur przy użyciu składni języka VBA. Dostęp do edytora makr: Narzędzia->Makra->Zarządaj makrami->libreoffice Calc Aby rozpocząć

Bardziej szczegółowo

Odwrotna Notacja Polska

Odwrotna Notacja Polska Odwrotna Notacja Polska Odwrotna Notacja Polska w skrócie ONP) jest sposobem zapisu wyrażeń arytmetycznych. Znak wykonywanej operacji umieszczany jest po operandach, argumentach tzw. zapis postfiksowy).

Bardziej szczegółowo