Programowanie funkcyjne Wykład 13. Siła wyrazu rachunku lambda
|
|
- Alina Urbańska
- 9 lat temu
- Przeglądów:
Transkrypt
1 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
2 Wstęp Wartości logiczne Liczby naturalne jako liczebniki Churcha Kombinatory punktu stałego Reguły delta Reprezentowalność funkcji rekurencyjnych w λ-rachunku Kombinator punktu stałego w OCamlu Semantyka prostego języka imperatywnego Zadania kontrolne Zdzisław Spławski: Programowanie funkcyjne, Wykład 13. Siła wyrazu rachunku lambda 2
3 Wstęp Język funkcyjny można potraktować jak rachunek lambda (beztypowy lub z typami) z wybraną semantyką redukcyjną, dodanymi stałymi (z odpowiednimi regułami redukcji) i dużą ilością lukru syntaktyczego. Te rozszerzenia rachunku lambda stosuje się w celu ułatwienia pisania programów, polepszenia ich czytelności i zwiększenia efektywności. Logicznie nie są one koniecznie. Jako przykłady zostaną zdefiniowane wartości logiczne i liczby naturalne z odpowiednimi funkcjami jako termy rachunku lambda. Zostaną też podane najważniejsze twierdzenia świadczące o sile wyrazu rachunku lambda. Zdzisław Spławski: Programowanie funkcyjne, Wykład 13. Siła wyrazu rachunku lambda 3
4 Wartości logiczne Specyfikacja algebraiczna: if true M N = M if false M N = N Odpowiednie termy można zdefiniować na przykład tak (Church): true λxy.x false λxy.y if λbuv.buv ( η λb.b) Udowodnimy, że spełnione jest pierwsze równanie specyfikacji. if true M N (λbuv.b u v) true M N β (λuv.true u v)m N β (λv.true M v) N β true M N (λxy.x) M N β (λy.m)n β M Analogicznie wygląda dowód drugiego równania. W celu zwiększenia czytelności czasem zamiast if B M N będziemy pisali if BthenM elsen. Zdzisław Spławski: Programowanie funkcyjne, Wykład 13. Siła wyrazu rachunku lambda 4
5 Liczby naturalne jako liczebniki Churcha Specyfikacja algebraiczna: { Iter 0 M N = N Iter (suc n) M N = M(Iter n M N) Odpowiednie termy można zdefiniować na różne sposoby, np. liczebniki Churcha są zdefiniowane następująco: 0 λfx.x 1 λfx.fx 2 λfx.f(fx) itd. Możemy to uogólnić i zauważyć, że liczebnik reprezentujący liczbę n będzie miał postać λfx.f n x, czyli jest iteratorem. Wobec tego definiujemy: suc λnfx.f(nfx) Iter λnfa.nfa ( η λn.n) lub suc λnfx.nf(fx) Zdzisław Spławski: Programowanie funkcyjne, Wykład 13. Siła wyrazu rachunku lambda 5
6 Kombinatory punktu stałego Równania stałopunktowe w matematyce. Rozważmy równania algebraiczne, np. x = 5/x czy x = 6 x Problem rozwiązania tych równań można też sformułować jako problem znalezienia punktów stałych funkcji: f 1 λx.5/x i f 2 λx.6 x Punktem stałym funkcji jest wartość należąca do dziedziny funkcji, odwzorowywana przez funkcję na siebie. Poszukujemy więc takich wartości w 1 i w 2, że f 1 w 1 = w 1 i f 2 w 2 = w 2 Oczywiście w 1 = 5 i w 2 = 3. Punkt stały może być jeden, może ich być wiele (nawet nieskończenie wiele), może też nie być żadnego. Istnienie i liczba punktów stałych funkcji istotnie zależy od jej dziedziny. Zdzisław Spławski: Programowanie funkcyjne, Wykład 13. Siła wyrazu rachunku lambda 6
7 Kombinatory punktu stałego Równania stałopunktowe w programowaniu. Podobny problem pojawia się przy definicjach funkcji rekurencyjnych, np. lub inaczej: s(n) = if n = 0 then 1 else n s(n 1) s = λn.if n = 0 then 1 else n s(n 1) Z matematycznego punktu widzenia jest to równanie (wyższego rzędu) z jedną niewiadomą s. Symbol = oznacza tu β (lub βη) konwersję. Problem rozwiązania tego równania, tj. znalezienia lambda termu, spełniającego równanie, sprowadza się do znalezienia punktu stałego funkcjonału: F λfn.if n = 0 then 1 else n f(n 1) Zdzisław Spławski: Programowanie funkcyjne, Wykład 13. Siła wyrazu rachunku lambda 7
8 Kombinatory punktu stałego Kombinator punktu stałego Definicja. Kombinatorem punktu stałego nazywamy każdy term M taki, że F.MF = F (MF ). Twierdzenie o punkcie stałym. Dowód. (i) F. X.X = F X (ii) Istnieje kombinator punktu stałego Y λf.(λx.f(xx))(λx.f(xx)) taki, że YF = F (YF ). (i) Niech W λx.f (xx) i X W W. Wówczas X W W (λx.f (xx))w F (W W ) F X (ii) YF (λf.(λx.f(xx))(λx.f(xx)))f β (λx.f (xx))(λx.f (xx)) β F ((λx.f (xx))(λx.f (xx))) = β F ((λf.(λx.f(xx))(λx.f(xx)))f ) F (YF ) Zdzisław Spławski: Programowanie funkcyjne, Wykład 13. Siła wyrazu rachunku lambda 8
9 Kombinatory punktu stałego Kombinator Turinga Czasem potrzebujemy kombinatora punktu stałego M z nieco mocniejszą własnością: F.MF β F (MF ). Turing zaproponował następujący kombinator: Θ AA gdzie A λxy.y(xxy). ΘF (λxy.y(xxy))af β (λy.y(aay))f β F (AAF ) F (ΘF ) Zauważ, że dla kombinatora Y można udowodnić tylko YF = β F (YF ). Istnieje nieskończenie wiele kombinatorów punktu stałego. Zdzisław Spławski: Programowanie funkcyjne, Wykład 13. Siła wyrazu rachunku lambda 9
10 Kombinatory punktu stałego Przykład użycia kombinatora punktu stałego: silnia. Teraz możemy zdefiniować lambda term dla silni jako: s YF (lub ΘF ) gdzie F λfn.if n = 0 then 1 else n f(n 1) Uwaga. Przy ewaluacji tego termu należy stosować redukcję normalną. s n (Y F ) n = β F (Y F ) n (λfn.if n = 0 then 1 else n f(n 1))(Y F ) n β if n = 0 then 1 else n (Y F )(n 1) if n = 0 then 1 else n s(n 1) Oczywiście, możliwa jest inna definicja silni za pomocą iteratora, co odpowiadałoby rekursji ogonowej. Zdzisław Spławski: Programowanie funkcyjne, Wykład 13. Siła wyrazu rachunku lambda 10
11 Kombinatory punktu stałego Powyższy przykład możemy uogólnić. Twierdzenie. Niech C C[f, x] będzie termem ze zmiennymi wolnymi f i x. Wówczas: (i) F. N.F N = C[F, N] (ii) F. N.F N β C[F, N] Dowód. W obu przypadkach możemy wziąć F Θ(λf x.c[f, x]). Zauważ, że dla przypadku (i) wystarczy wziąć Y. Zdzisław Spławski: Programowanie funkcyjne, Wykład 13. Siła wyrazu rachunku lambda 11
12 Reguły delta Reguły delta Definicja. (i) Niech δ będzie pewną stałą. Wówczas Λδ jest zbiorem λ-termów zbudowanych ze zmiennych i stałej δ za pomocą aplikacji i abstrakcji w zwykły sposób. (ii) Analogicznie definiuje się Λ δ, gdzie δ oznacza ciąg stałych. (iii) Niech M oznacza ciąg zamkniętych λ-termów w postaci normalnej. δ-redukcja ma postać δ M δ f( M). Dla zadanej funkcji f δ-redukcja nie jest pojedynczą regułą, lecz schematem reguł. Tak wzbogacony system nazywamy rachunkiem λδ. Relacje kontrakcji i redukcji są oznaczane odpowiednio przez βδ i βδ. Zdzisław Spławski: Programowanie funkcyjne, Wykład 13. Siła wyrazu rachunku lambda 12
13 Reguły delta Reguły delta Twierdzenie. Niech f będzie funkcją na zamkniętych λ-termach w postaci normalnej. Wówczas relacja redukcji βδ spełnia twierdzenie Churcha-Rossera. Pojęcie redeksu, postaci normalnej i strategii redukcji w sposób naturalny uogólnia się na rachunek λδ. Prawdziwe jest też twierdzenie o standardyzacji. Zdzisław Spławski: Programowanie funkcyjne, Wykład 13. Siła wyrazu rachunku lambda 13
14 Reguły delta Przykład: test na zero W wielu funkcjach konieczne jest sprawdzenie, czy liczba jest równa zeru. Specyfikacja takiego predykatu wygląda następujaco: { iszero 0 = true iszero (suc n) = false Spełnia ona wymagania twierdzenia z poprzedniej strony ( przy założeniu, że n oznacza term zamknięty), więc moglibyśmy dodać do λ-termów stałą iszero oraz dwie reguły redukcji, nie troszcząc się o znalezienie termu, spełniającego powyższą specyfikację. My jednak podamy ten term. iszero λn.iter n (λb.false) true Łatwo pokazać, że spełnia on powyższą specyfikację. Analogicznie należy rozumieć następny przykład. Zdzisław Spławski: Programowanie funkcyjne, Wykład 13. Siła wyrazu rachunku lambda 14
15 Reguły delta Przykład: poprzednik { pred 0 = 0 pred (suc n) = n Ideę obliczania poprzednika wyjaśnia poniższy program. } y := 0; 0, 0 z := 0; while y n do ( z = pred y ) begin } z := y; n-krotna iteracja operacji q q y, z suc y, y y := suc y; end ( z = pred n ) Teraz ten algorytm możemy zapisać w postaci lambda-termu. pred λn.snd (Iter n (λp.pair(suc(fst p))(fst p)) (pair 0 0)) Zdzisław Spławski: Programowanie funkcyjne, Wykład 13. Siła wyrazu rachunku lambda 15
16 Reprezentowalność funkcji rekurencyjnych w λ-rachunku Definicja. Funkcja częściowo rekurencyjna f : N k N jest definiowalna w beztypowym rachunku lambda, jeśli istnieje zamknięty term F, spełniający dla dowolnych n 1... n k N następujące warunki: (i) Jeśli f(n 1... n k ) = m, to F n 1... n k = β m; (ii) Jeśli wartość f(n 1... n k ) jest nieokreślona, to F n 1... n k nie ma postaci normalnej. Zdzisław Spławski: Programowanie funkcyjne, Wykład 13. Siła wyrazu rachunku lambda 16
17 Reprezentowalność funkcji rekurencyjnych w λ-rachunku Lemat. Funkcje bazowe (początkowe) Z, S, U i n są λ-definiowalne. Dowód. Weźmy następujące kombinatory jako termy definiujące. Z λn.0 suc λnfx.f(nfx) U i n λx 1... x n.x i Lemat. Funkcje λ-definiowalne są zamknięte ze względu na operację składania funkcji. Dowód. Niech funkcje g, h 1,..., h r będą λ-definiowalne odpowiednio za pomocą termów G, H 1,..., H r. Wówczas funkcja f( x) = g(h 1 ( x),..., h r ( x)) jest λ-definiowalna za pomocą termu F λ x.g(h 1 x)... (H r x) Zdzisław Spławski: Programowanie funkcyjne, Wykład 13. Siła wyrazu rachunku lambda 17
18 Reprezentowalność funkcji rekurencyjnych w λ-rachunku Lemat. Funkcje λ-definiowalne są zamknięte ze względu na rekursję { prostą. { Rec g h 0 x = g x f(0, x) = g( x), Rec g h (suc n) x = h n (Rec g h n x) x f(s(n), x) = h(n, f(n, x), x), Ideę obliczania rekursora wyjaśnia poniższy program (porównaj z programem dla poprzednika). } y := 0; 0, g( x) z := g( x); while y n do ( z = f(y, x) ) begin } n-krotna iteracja z := h(y, z, x); q y, z suc y, h(y, z, x) operacji q y := suc y; end ( z = f(n, x) ) Teraz ten algorytm możemy zapisać w postaci λ-termu. Rec λghn x.snd (Iter n (λp.pair (suc (fst p)) (h (fst p) (snd p) x)) (pair 0 (g x)) Zdzisław Spławski: Programowanie funkcyjne, Wykład 13. Siła wyrazu rachunku lambda 18
19 Reprezentowalność funkcji rekurencyjnych w λ-rachunku Lemat. Funkcje λ-definiowalne są zamknięte ze względu na operację minimum. Dowód. Niech funkcja g będzie λ-definiowalna za pomocą termu G. Wówczas funkcja f( x) = (µm.g( x, m) = 0) jest λ-definiowalna za pomocą termu mi λ x.szukaj 0 x ( η szukaj 0) gdzie szukaj Θ λfm x.if iszero (G x m) then m else f (suc m) x. Ponieważ Θ F F (Θ F ), to szukaj m x if iszero (G x m) then m else szukaj (suc m) x Wobec tego szukaj 0 x zaczynając od zera poszukuje najmniejszej liczby m takiej, że (G x m) = 0, co jest zgodne z definicją operacji minimum. Zdzisław Spławski: Programowanie funkcyjne, Wykład 13. Siła wyrazu rachunku lambda 19
20 Reprezentowalność funkcji rekurencyjnych w λ-rachunku Twierdzenie. Wszystkie funkcje częściowo rekurencyjne są λ-definiowalne. Teza Churcha [Churcha-Turinga]. Każda funkcja obliczalna w nieformalnym sensie jest λ-definiowalna (rekurencyjna). Zdzisław Spławski: Programowanie funkcyjne, Wykład 13. Siła wyrazu rachunku lambda 20
21 Kombinator punktu stałego w OCamlu Kombinator punktu stałego w OCamlu. I Bezpośrednia definicja kombinatora Y λf.(λx.f(xx))(λx.f(xx)) w języku OCaml spowoduje błąd typu. Możemy jednak zdefiniować typ danych: type a self = Fold of ( a self -> a);; let unfold (Fold t) = t;; a następnie funkcjonał fixl : ( a -> a) -> a let fixl f = let w = fun x -> f ( unfold x x) in w (Fold w);; który działa poprawnie dla dla języków z wartościowaniem leniwym. W OCamlu, który stosuje wartościowanie gorliwie, wartościowanie fixl nie kończy się i nie uda się nam zdefiniować np. nieskończonej listy jedynek (sprawdź to!): let ones = fixl (function x -> 1::x);; Zdzisław Spławski: Programowanie funkcyjne, Wykład 13. Siła wyrazu rachunku lambda 21
22 Kombinator punktu stałego w OCamlu Kombinator punktu stałego w OCamlu. II Można jednak nieco zmodyfikować powyższy funkcjonał i otrzymać funkcjonał: let fix f = let w = fun x y-> f (unfold x x) y in w (Fold w);; val fix : (( a -> b) -> a -> b) -> a -> b = <fun> który znajduje punkty stałe funkcji (ale już nie list!). Przekonaj się o tym, definiując funkcję obliczającą silnię zadanej liczby bez jawnego użycia rekursji. Funkcjonał fix : (( a -> b) -> a -> b) -> a -> b można też zdefiniować bez użycia typu a self, np. let fix f = let rec fixf x = f fixf x in fixf;; Można go teraz użyć do zdefiniowania silni bez użycia rekursji: let fact = fix (fun f n -> if n=0 then 1 else n*f(n-1));; Przekonaj się, że jest to rzeczywiście funkcja silni. Zdzisław Spławski: Programowanie funkcyjne, Wykład 13. Siła wyrazu rachunku lambda 22
23 Semantyka prostego języka imperatywnego Składnia i semantyka prostego języka imperatywnego. I Składnia abstrakcyjna V Zmienna N Liczba B ::= true false B&&B B B not B E < E E = E E ::= N V E + E E E E E E C ::= skip C; C V := E if B then C else C fi while B do C od Semantykę denotacyjną języka zadaje się definiując funkcje semantyczne, które opisują, jak semantyka wyrażenia może być otrzymana z semantyki składowych tego wyrażenia (semantyka kompozycyjna). Zdzisław Spławski: Programowanie funkcyjne, Wykład 13. Siła wyrazu rachunku lambda 23
24 Semantyka prostego języka imperatywnego Składnia i semantyka prostego języka imperatywnego. II Funkcja semantyczna dla instrukcji C jest funkcją częściową S C [C ], zmieniającą wektor stanu programu S (pamięć operacyjną). Dziedzinę S reprezentujemy za pomocą zbioru funkcji σ : Zmienna Z. Załóżmy dla uproszczenia, że funkcje semantyczne dla wyrażeń logicznych B i arytmetycznych E są znane. Tutaj zdefiniujemy w rachunku lambda funkcję semantyczną S C [C ] : S S dla instrukcji. Na wykładzie 3 zaprogramowaliśmy ją w OCamlu. Semantyka denotacyjna S B [B ] : S {true, false} S E [E ] : S Z S C [skip]σ = σ S C [C 1 ; C 2 ]σ S C [C 2 ](S C [C 1 ]σ) S C [V := E ]σ σ[v S E [E ]σ] { SC [C S C [if B then C 1 else C 2 fi]σ 1 ]σ gdy S E [B ]σ = true S C [C 2 ]σ gdy S E [B ]σ = false Zdzisław Spławski: Programowanie funkcyjne, Wykład 13. Siła wyrazu rachunku lambda 24
25 Semantyka prostego języka imperatywnego Składnia i semantyka prostego języka imperatywnego. III Wykonując jednokrotnie pętlę while otrzymujemy poniższe równanie dla funkcji semantycznej S C [while B do C od]: { SC[[while B do C od]](s C[[C]]σ) gdy S B[[B]]σ = true S C[[while B do C od]]σ σ gdy S B[[B]]σ = false Z analogicznym problemem mieliśmy do czynienia w przypadku funkcji silnia. Należy znaleźć najmniejszy punkt stały funkcjonału: { f(sc [C ]σ) gdy S F λf.λσ. B [B ]σ = true σ gdy S B [B ]σ = false czyli, używając kombinatora punktu stałego Θ (lub Y): S C [while B do C od] ΘF Istnienie najmniejszego punktu stałego gwarantuje teoria dziedzin. Zdzisław Spławski: Programowanie funkcyjne, Wykład 13. Siła wyrazu rachunku lambda 25
26 Zadania kontrolne 1. Wykorzystując term if zdefiniuj pozostałe spójniki logiczne. 2. Udowodnij, że termy 0, suc, Iter spełniają specyfikację algebraiczną ze strony Zdefiniuj lambda wyrażenia pair, fst i snd z następującymi regułami redukcji: fst (pair M N) M snd (pair M N) N 4. Niech Y λf.(λx.f(xx))(λx.f(xx)), S λxyz.xz(yz), I λx.x. Udowodnij, że wszystkie kombinatory zdefiniowane następująco: { Y 0 Y Y n+1 Y n (SI) są kombinatorami punktu stałego. 5. Pokaż, że Y 1 β Θ. 6. Zdefiniuj kombinator Θ w OCamlu. Zdzisław Spławski: Programowanie funkcyjne, Wykład 13. Siła wyrazu rachunku lambda 26
Teoretyczne Podstawy Języków Programowania Wykład 4. Siła wyrazu rachunku λ
Teoretyczne Podstawy Języków Programowania Wykład 4. Siła wyrazu rachunku λ Zdzisław Spławski Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 4. Siła wyrazu rachunku λ 1 Wstęp Wartości
Bardziej szczegółowoProgramowanie 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ółowoIndukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak
Indukcja Materiały pomocnicze do wykładu wykładowca: dr Magdalena Kacprzak Charakteryzacja zbioru liczb naturalnych Arytmetyka liczb naturalnych Jedną z najważniejszych teorii matematycznych jest arytmetyka
Bardziej szczegółowoP. Urzyczyn: Materia ly do wyk ladu z semantyki. Uproszczony 1 j. ezyk PCF
29 kwietnia 2013, godzina 23: 56 strona 1 P. Urzyczyn: Materia ly do wyk ladu z semantyki Uproszczony 1 j ezyk PCF Sk ladnia: Poniżej Γ oznacza otoczenie typowe, czyli zbiór deklaracji postaci (x : τ).
Bardziej szczegółowoJak należy się spodziewać, mamy. Zauważmy jednak, że nie zachodzi równość
11. Wykład 11: Rachunek λ. Obliczenia i obliczalność. Rachunek λ jest systemem pozornie bardzo prostym. Abstrakcja i aplikacja wydają się trywialnymi operacjami, i może się zdawać, że niczego ciekawego
Bardziej szczegółowoProgramowanie 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ółowoProgramowanie. 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ółowoWykład 3 Funkcje wyższych rzędów
Wykład 3 Funkcje wyższych rzędów Funkcje jako dane Rozwijanie i zwijanie funkcji Składanie funkcji Funkcjonały dla list Funkcje wyższego rzędu jako struktury sterowania Semantyka denotacyjna prostego języka
Bardziej szczegółowoWstęp do Programowania potok funkcyjny
Wstęp do Programowania potok funkcyjny Marcin Kubica 2010/2011 Outline 1 Kilka podstawowych pojęć Definition Programy imperatywne zmieniają stan, czyli wartości zmiennych. Asercja = warunek logiczny, który
Bardziej szczegółowoWykład 3 Funkcje wyższych rzędów
Wykład 3 Funkcje wyższych rzędów Funkcje jako dane Rozwijanie i zwijanie funkcji Składanie funkcji Funkcjonały dla list Funkcje wyższego rzędu jako struktury sterowania Semantyka denotacyjna prostego języka
Bardziej szczegółowoLogika i teoria mnogości Wykład 14
Teoria rekursji Teoria rekursji to dział logiki matematycznej zapoczątkowany w latach trzydziestych XX w. Inicjatorzy tej dziedziny to: Alan Turing i Stephen Kleene. Teoria rekursji bada obiekty (np. funkcje,
Bardziej szczegółowoR. 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ółowoElementy rachunku lambda. dr hab. inż. Joanna Józefowska, prof. PP 1
Elementy rachunku lambda λ 1 Notacja λ x 3x + 7 3x + 7 jest różniczkowalna 3x + 7 jest mniejsze od 2 (2,3) 5 f(2, 3) = 2 + 3 g(2) = 2 + 3 λx(3x + 7) 3x + 7 λx λy(x + y) = λxy(x + y) λx(x + 3) 2 Rachunek
Bardziej szczegółowoParadygmaty 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ółowoLogika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017
Logika Stosowana Wykład 1 - Logika zdaniowa Marcin Szczuka Instytut Informatyki UW Wykład monograficzny, semestr letni 2016/2017 Marcin Szczuka (MIMUW) Logika Stosowana 2017 1 / 30 Plan wykładu 1 Język
Bardziej szczegółowoWykład 2: Rachunek lambda
Wykład 2: Rachunek lambda Systemy typów, II UWr, 2010 20 października 2010 λ-termy zmienne (Var) {x, y, z,...} nieskończony, przeliczalny zbiór zmiennych termy (Term) t ::= x λx.t t t skróty notacyjne
Bardziej szczegółowoWstę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ółowoWykł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ółowoWykład 5 Listy leniwe
Wykład 5 Listy leniwe Listy leniwe Funkcjonały dla list leniwych Przykład: generowanie liczb pierwszych metodą sita Eratostenesa Algorytmy przeszukiwania przestrzeni stanów Przykład: problem ośmiu hetmanów
Bardziej szczegółowoPoprawność semantyczna
Poprawność składniowa Poprawność semantyczna Poprawność algorytmu Wypisywanie zdań z języka poprawnych składniowo Poprawne wartościowanie zdań języka, np. w języku programowania skutki wystąpienia wyróżnionych
Bardziej szczegółowoMatematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku
Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku Rozdział 1 Poprawność programów Jeżeli projektujemy algorytmy lub piszemy programy, to ważne jest pytanie, czy nasz algorytm lub program
Bardziej szczegółowo1 Funkcje uniwersalne
1 1 Funkcje uniwersalne 1.1 Konstrukcja funkcji uniweralnej Niech P będzie najmniejszym zbiorem liczb spełniającym warunki 1) 0, 2, 0, 0, 2, 1, 0, 2, 2 P, 2) 0, n, 3, k P dla wszystkich n > 0 oraz k takich,
Bardziej szczegółowoĆ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ółowodomykanie relacji, relacja równoważności, rozkłady zbiorów
1 of 8 2012-03-28 17:45 Logika i teoria mnogości/wykład 5: Para uporządkowana iloczyn kartezjański relacje domykanie relacji relacja równoważności rozkłady zbiorów From Studia Informatyczne < Logika i
Bardziej szczegółowoAndrzej Wiśniewski Logika II. Wykład 6. Wprowadzenie do semantyki teoriomodelowej cz.6. Modele i pełność
Andrzej Wiśniewski Logika II Materiały do wykładu dla studentów kognitywistyki Wykład 6. Wprowadzenie do semantyki teoriomodelowej cz.6. Modele i pełność 1 Modele Jak zwykle zakładam, że pojęcia wprowadzone
Bardziej szczegółowoWykład 8. Rekurencja. Iterować jest rzeczą ludzką, wykonywać rekursywnie boską. L. Peter Deutsch
Wykład 8 Iterować jest rzeczą ludzką, wykonywać rekursywnie boską. Smok podsuszony zmok (patrz: Zmok). Zmok zmoczony smok (patrz: Smok). L. Peter Deutsch Stanisław Lem Wizja lokalna J. Cichoń, P. Kobylański
Bardziej szczegółowoMatematyka dyskretna dla informatyków
Matematyka dyskretna dla informatyków Część I: Elementy kombinatoryki Jerzy Jaworski Zbigniew Palka Jerzy Szymański Uniwersytet im. Adama Mickiewicza Poznań 2007 4 Zależności rekurencyjne Wiele zależności
Bardziej szczegółowoLista 3 Modele algorytmiczne
1 Wprowadzenie Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Teoretyczne Podstawy Informatyki Lista 3 Modele algorytmiczne Współczesne systemy informatyczne to skomplikowane
Bardziej szczegółowoStruktury formalne, czyli elementy Teorii Modeli
Struktury formalne, czyli elementy Teorii Modeli Szymon Wróbel, notatki z wykładu dra Szymona Żeberskiego semestr zimowy 2016/17 1 Język 1.1 Sygnatura językowa Sygnatura językowa: L = ({f i } i I, {P j
Bardziej szczegółowo//warunki początkowe m=500; T=30; c=0.4; t=linspace(0,t,m); y0=[-2.5;2.5];
4.3. Przykłady wykorzystania funkcji bibliotecznych 73 MATLAB % definiowanie funkcji function [dx]=vderpol(t,y) global c; dx=[y(2); c*(1-y(1)^2)*y(2)-y(1)]; SCILAB // definiowanie układu function [f]=vderpol(t,y,c)
Bardziej szczegółowoTwierdzenia Gödla dowody. Czy arytmetyka jest w stanie dowieść własną niesprzeczność?
Semina Nr 3 Scientiarum 2004 Twierdzenia Gödla dowody. Czy arytmetyka jest w stanie dowieść własną niesprzeczność? W tym krótkim opracowaniu chciałbym przedstawić dowody obu twierdzeń Gödla wykorzystujące
Bardziej szczegółowoLOGIKA ALGORYTMICZNA
LOGIKA ALGORYTMICZNA 0.0. Relacje. Iloczyn kartezjański: A B := (a, b) : a A i b B} (zak ladamy, że (x, y) i (u, v) s a równe wtedy i tylko wtedy gdy x = u i y = v); A n := (x 1,..., x n ) : x i A}; R
Bardziej szczegółowoO pewnych związkach teorii modeli z teorią reprezentacji
O pewnych związkach teorii modeli z teorią reprezentacji na podstawie referatu Stanisława Kasjana 5 i 12 grudnia 2000 roku 1. Elementy teorii modeli Będziemy rozważać język L składający się z przeliczalnej
Bardziej szczegółowoFinanse i Rachunkowość studia niestacjonarne Wprowadzenie do teorii ciągów liczbowych (treść wykładu z 21 grudnia 2014)
dr inż. Ryszard Rębowski DEFINICJA CIĄGU LICZBOWEGO Finanse i Rachunkowość studia niestacjonarne Wprowadzenie do teorii ciągów liczbowych (treść wykładu z grudnia 04) Definicja ciągu liczbowego Spośród
Bardziej szczegółowoWykład 6. Reguły inferencyjne systemu aksjomatycznego Klasycznego Rachunku Zdań
Andrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki Wykład 6. Reguły inferencyjne systemu aksjomatycznego Klasycznego Rachunku Zdań System aksjomatyczny logiki Budując logikę
Bardziej szczegółowoLOGIKA I TEORIA ZBIORÓW
LOGIKA I TEORIA ZBIORÓW Logika Logika jest nauką zajmującą się zdaniami Z punktu widzenia logiki istotne jest, czy dane zdanie jest prawdziwe, czy nie Nie jest natomiast istotne o czym to zdanie mówi Definicja
Bardziej szczegółowoSystem BCD z κ. Adam Slaski na podstawie wykładów, notatek i uwag Pawła Urzyczyna. Semestr letni 2009/10
System BCD z κ Adam Slaski na podstawie wykładów, notatek i uwag Pawła Urzyczyna Semestr letni 2009/10 Rozważamy system BCD ze stałą typową κ i aksjomatami ω κ κ i κ ω κ. W pierwszej części tej notatki
Bardziej szczegółowoJęzyki programowania zasady ich tworzenia
Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie
Bardziej szczegółowoDystrybucje, wiadomości wstępne (I)
Temat 8 Dystrybucje, wiadomości wstępne (I) Wielkości fizyczne opisujemy najczęściej przyporządkowując im funkcje (np. zależne od czasu). Inną drogą opisu tych wielkości jest przyporządkowanie im funkcjonałów
Bardziej szczegółowoProgramowanie - wykład 4
Programowanie - wykład 4 Filip Sośnicki Wydział Fizyki Uniwersytet Warszawski 20.03.2019 Przypomnienie Prosty program liczący i wyświeltający wartość silni dla wprowadzonej z klawiatury liczby: 1 # include
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ółowovf(c) =, vf(ft 1... t n )=vf(t 1 )... vf(t n ).
6. Wykład 6: Rachunek predykatów. Język pierwszego rzędu składa się z: symboli relacyjnych P i, i I, gdzie (P i ) oznaczać będzie ilość argumentów symbolu P i, symboli funkcyjnych f j, j J, gdzie (f j
Bardziej szczegółowoRekurencyjna przeliczalność
Rekurencyjna przeliczalność Jerzy Pogonowski Zakład Logiki Stosowanej UAM www.logic.amu.edu.pl pogon@amu.edu.pl Funkcje rekurencyjne Jerzy Pogonowski (MEG) Rekurencyjna przeliczalność Funkcje rekurencyjne
Bardziej szczegółowo2. Definicja pochodnej w R n
2. Definicja pochodnej w R n Niech będzie dana funkcja f : U R określona na zbiorze otwartym U R n. Pochodną kierunkową w punkcie a U w kierunku wektora u R n nazywamy granicę u f(a) = lim t 0 f(a + tu)
Bardziej szczegółowoElementy metod numerycznych
Wykład nr 5 i jej modyfikacje. i zera wielomianów Założenia metody Newtona Niech będzie dane równanie f (x) = 0 oraz przedział a, b taki, że w jego wnętrzu znajduje się dokładnie jeden pierwiastek α badanego
Bardziej szczegółowoSchemat rekursji. 1 Schemat rekursji dla funkcji jednej zmiennej
Schemat rekursji 1 Schemat rekursji dla funkcji jednej zmiennej Dla dowolnej liczby naturalnej a i dowolnej funkcji h: N 2 N istnieje dokładnie jedna funkcja f: N N spełniająca następujące warunki: f(0)
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ółowoWykład z równań różnicowych
Wykład z równań różnicowych 1 Wiadomości wstępne Umówmy się, że na czas tego wykładu zrezygnujemy z oznaczania n-tego wyrazu ciągu symbolem typu x n, y n itp. Zamiast tego pisać będziemy x (n), y (n) itp.
Bardziej szczegółowoWstęp do programowania
Wstęp do programowania Złożoność obliczeniowa, poprawność programów Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. XII Jesień 2013 1 / 20 Złożoność obliczeniowa Problem Ile czasu
Bardziej szczegółowoAproksymacja funkcji a regresja symboliczna
Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(x), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(x), zwaną funkcją aproksymującą
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ółowoLiczby losowe i pętla while w języku Python
Liczby losowe i pętla while w języku Python Mateusz Miotk 17 stycznia 2017 Instytut Informatyki UG 1 Generowanie liczb losowych Na ogół programy są spójne i prowadzą do przewidywanych wyników. Czasem jednak
Bardziej szczegółowoSkł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ółowoPorządek symetryczny: right(x)
Porządek symetryczny: x lef t(x) right(x) Własność drzewa BST: W drzewach BST mamy porządek symetryczny. Dla każdego węzła x spełniony jest warunek: jeżeli węzeł y leży w lewym poddrzewie x, to key(y)
Bardziej szczegółowoWstęp do programowania. Listy. Piotr Chrząstowski-Wachtel
Wstęp do programowania Listy Piotr Chrząstowski-Wachtel Do czego stosujemy listy? Listy stosuje się wszędzie tam, gdzie występuje duży rozrzut w możliwym rozmiarze danych, np. w reprezentacji grafów jeśli
Bardziej szczegółowoRozwiazywanie układów równań liniowych. Ax = b
Rozwiazywanie układów równań liniowych Ax = b 1 PLAN REFERATU: Warunki istnienia rozwiazań układu Metoda najmniejszych kwadratów Metoda najmniejszych kwadratów - algorytm rekurencyjny Rozwiazanie układu
Bardziej szczegółowoJęzyk JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,
Bardziej szczegółowoDefinicje 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ółowoOpis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].
ABAP/4 Instrukcja IF Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. [ELSEIF warunek. ] [ELSE. ] ENDIF. gdzie: warunek dowolne wyrażenie logiczne o wartości
Bardziej szczegółowoAndrzej Wiśniewski Logika II. Materiały do wykładu dla studentów kognitywistyki
Andrzej Wiśniewski Logika II Materiały do wykładu dla studentów kognitywistyki Wykład 5. Wprowadzenie do semantyki teoriomodelowej cz.5. Wynikanie logiczne 1 Na poprzednim wykładzie udowodniliśmy m.in.:
Bardziej szczegółowo25 lutego 2013, godzina 23: 57 strona 1. P. Urzyczyn: Materia ly do wyk ladu z semantyki. Logika Hoare a
25 lutego 2013, godzina 23: 57 strona 1 P. Urzyczyn: Materia ly do wyk ladu z semantyki Logika Hoare a Rozważamy najprostszy model imperatywnego jezyka programowania z jednym typem danych. Wartości tego
Bardziej szczegółowoInformatyka 1. Wyrażenia i instrukcje, złożoność obliczeniowa
Informatyka 1 Wykład III Wyrażenia i instrukcje, złożoność obliczeniowa Robert Muszyński ZPCiR ICT PWr Zagadnienia: składnia wyrażeń, drzewa rozbioru gramatycznego i wyliczenia wartości wyrażeń, operatory
Bardziej szczegółowoWstęp do programowania
Wstęp do programowania Literatura David Harel. Rzecz o istocie informatyki. Algorytmika. Wydawnictwa Naukowo-Techniczne. Wydanie trzecie. Seria: Klasyka informatyki. Warszawa 2000. Niklaus Wirth. Algorytmy
Bardziej szczegółowow analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych.
Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(), zwaną funkcją aproksymującą
Bardziej szczegółowoProgramowanie 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ółowoALGORYTMY I STRUKTURY DANYCH
KATEDRASYSTEMÓWOBLICZENIOWYCH ALGORYTMY I STRUKTURY DANYCH 1.Rekurencja Rekurencja inaczej rekursja (ang. recursion) to wywołanie z poziomu metody jej samej. Programowanie z wykorzytaniem rekurencji pozwala
Bardziej szczegółowoMaszyna Turinga. Algorytm. czy program???? Problem Hilberta: Przykłady algorytmów. Cechy algorytmu: Pojęcie algorytmu
Problem Hilberta: 9 Czy istnieje ogólna mechaniczna procedura, która w zasadzie pozwoliłaby nam po kolei rozwiązać wszystkie matematyczne problemy (należące do odpowiednio zdefiniowanej klasy)? 2 Przykłady
Bardziej szczegółowoAnaliza funkcjonalna 1.
Analiza funkcjonalna 1. Wioletta Karpińska Semestr letni 2015/2016 0 Bibliografia [1] Banaszczyk W., Analiza matematyczna 3. Wykłady. (http://math.uni.lodz.pl/ wbanasz/am3/) [2] Birkholc A., Analiza matematyczna.
Bardziej szczegółowoRekurencja, 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ółowoPARADYGMATY 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ółowoObliczenia na stosie. Wykład 9. Obliczenia na stosie. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303
Wykład 9 J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303 stos i operacje na stosie odwrotna notacja polska języki oparte na ONP przykłady programów J. Cichoń, P. Kobylański Wstęp
Bardziej szczegółowoParadygmaty dowodzenia
Paradygmaty dowodzenia Sprawdzenie, czy dana formuła rachunku zdań jest tautologią polega zwykle na obliczeniu jej wartości dla 2 n różnych wartościowań, gdzie n jest liczbą zmiennych zdaniowych tej formuły.
Bardziej szczegółowoSemantyka 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ółowoPodstawy 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ółowoRekurencja. Przygotowała: Agnieszka Reiter
Rekurencja Przygotowała: Agnieszka Reiter Definicja Charakterystyczną cechą funkcji (procedury) rekurencyjnej jest to, że wywołuje ona samą siebie. Drugą cechą rekursji jest jej dziedzina, którą mogą być
Bardziej szczegółowoW 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ółowoJAO - Wprowadzenie do Gramatyk bezkontekstowych
JAO - Wprowadzenie do Gramatyk bezkontekstowych Definicja gramatyki bezkontekstowej Podstawowymi narzędziami abstrakcyjnymi do opisu języków formalnych są gramatyki i automaty. Gramatyka bezkontekstowa
Bardziej szczegółowoTechnologie Informatyczne Wykład VII
Technologie Informatyczne Wykład VII A. Matuszak (1) 22 listopada 2007 A. Matuszak (1) Technologie Informatyczne Wykład VII A. Matuszak (2) Technologie Informatyczne Wykład VII (Rekursja) albo rekursja
Bardziej szczegółowoKONKURS MATEMATYCZNY KOMA 2018
ELIMINACJE SZKOLNE RACHUNEK LAMBDA NOTATKI Z WYKŁADU - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Bardziej szczegółowoWstęp do programowania
wykład 4 Agata Półrola Wydział Matematyki i Informatyki UŁ sem. zimowy 2017/2018 Pętle wykonujące się podaną liczbę razy Jeśli chcemy wykonać pewien fragment programu określoną liczbę razy, możemy użyć
Bardziej szczegółowoWstęp do programowania. Różne różności
Wstęp do programowania Różne różności Typy danych Typ danych określa dwie rzeczy: Jak wartości danego typu są określane w pamięci Jakie operacje są dozwolone na obiektach danego typu 2 Rodzaje typów Proste
Bardziej szczegółowoB jest globalnym pokryciem zbioru {d} wtedy i tylko wtedy, gdy {d} zależy od B i nie istnieje B T takie, że {d} zależy od B ;
Algorytm LEM1 Oznaczenia i definicje: U - uniwersum, tj. zbiór obiektów; A - zbiór atrybutów warunkowych; d - atrybut decyzyjny; IND(B) = {(x, y) U U : a B a(x) = a(y)} - relacja nierozróżnialności, tj.
Bardziej szczegółowoskłada się z m + 1 uporządkowanych niemalejąco liczb nieujemnych. Pomiędzy p, n i m zachodzi następująca zależność:
TEMATYKA: Krzywe typu Splajn (Krzywe B sklejane) Ćwiczenia nr 8 Krzywe Bezier a mają istotne ograniczenie. Aby uzyskać kształt zawierający wiele punktów przegięcia niezbędna jest krzywa wysokiego stopnia.
Bardziej szczegółowoLab 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ół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ółowoROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH
Transport, studia I stopnia Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Ewa Pabisek Adam Wosatko Postać ogólna równania nieliniowego Często występującym, ważnym problemem obliczeniowym
Bardziej szczegółowoJak napisać program obliczający pola powierzchni różnych figur płaskich?
Część IX C++ Jak napisać program obliczający pola powierzchni różnych figur płaskich? Na początku, przed stworzeniem właściwego kodu programu zaprojektujemy naszą aplikację i stworzymy schemat blokowy
Bardziej szczegół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ółowo5. Rozwiązywanie układów równań liniowych
5. Rozwiązywanie układów równań liniowych Wprowadzenie (5.1) Układ n równań z n niewiadomymi: a 11 +a 12 x 2 +...+a 1n x n =a 10, a 21 +a 22 x 2 +...+a 2n x n =a 20,..., a n1 +a n2 x 2 +...+a nn x n =a
Bardziej szczegółowoMatematyka dyskretna
Matematyka dyskretna wykład 1: Indukcja i zależności rekurencyjne Gniewomir Sarbicki Literatura Kenneth A. Ross, Charles R. B. Wright Matematyka Dyskretna PWN 005 J. Jaworski, Z. Palka, J. Szymański Matematyka
Bardziej szczegółowoProgramowanie funkcyjne Wykład 14. Rachunek λ z typami prostymi
Programowanie funkcyjne Wykład 14. Rachunek λ z typami prostymi Zdzisław Spławski Zdzisław Spławski: Programowanie funkcyjne, Wykład 14. Rachunek λ z typami prostymi 1 Dowody konstruktywne Dedukcja naturalna
Bardziej szczegółowoNp. Olsztyn leży nad Łyną - zdanie prawdziwe, wartość logiczna 1 4 jest większe od 5 - zdanie fałszywe, wartość logiczna 0
ĆWICZENIE 1 Klasyczny Rachunek Zdań (KRZ): zdania w sensie logicznym, wartości logiczne, spójniki logiczne, zmienne zdaniowe, tabele prawdziwościowe dla spójników logicznych, formuły, wartościowanie zbioru
Bardziej szczegółowoZajęcia nr. 3 notatki
Zajęcia nr. 3 notatki 22 kwietnia 2005 1 Funkcje liczbowe wprowadzenie Istnieje nieskończenie wiele funkcji w matematyce. W dodaktu nie wszystkie są liczbowe. Rozpatruje się funkcje które pobierają argumenty
Bardziej szczegółowoWstęp do informatyki
Wstęp do informatyki Algorytmy i struktury danych Piotr Fulmański Wydział Matematyki i Informatyki, Uniwersytet Łódzki, Polska 30 października 2009 Spis treści 1 Algorytm 2 Przetwarzane informacje 3 Struktury
Bardziej szczegółowoAndrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki. Wykład 10. Twierdzenie o pełności systemu aksjomatycznego KRZ
Andrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki Wykład 10. Twierdzenie o pełności systemu aksjomatycznego KRZ 1 Tezy KRZ Pewien system aksjomatyczny KRZ został przedstawiony
Bardziej szczegółowoPoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.
PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. 1. Instrukcję case t of... w przedstawionym fragmencie programu moŝna zastąpić: var t : integer; write( Podaj
Bardziej szczegółowoElementy logiki. Wojciech Buszkowski Wydział Matematyki i Informatyki UAM Zakład Teorii Obliczeń
Elementy logiki Wojciech Buszkowski Wydział Matematyki i Informatyki UAM Zakład Teorii Obliczeń 1 Klasyczny Rachunek Zdań 1.1 Spójniki logiczne Zdaniem w sensie logicznym nazywamy wyrażenie, które jest
Bardziej szczegółowoProgramowanie komputerowe. Zajęcia 3
Programowanie komputerowe Zajęcia 3 Instrukcje przypisania Poza zwykłą instrukcją przypisania, powodującą ustawienie wartości zmiennej na podane wyrażenie, istnieje wiele innych, np. += dodaj, a+=b jest
Bardziej szczegółowoWstęp do programowania
wykład 5 Agata Półrola Wydział Matematyki i Informatyki UŁ sem. zimowy 2016/2017 Zadanie o kotach z poprzedniego wykładu # include < iostream > using namespace std ; int main (){ int rozmiar_ rodzinki,
Bardziej szczegółowoUkłady równań i nierówności liniowych
Układy równań i nierówności liniowych Wiesław Krakowiak 1 grudnia 2010 1 Układy równań liniowych DEFINICJA 11 Układem równań m liniowych o n niewiadomych X 1,, X n, nazywamy układ postaci: a 11 X 1 + +
Bardziej szczegółowo