Paradygmaty programowania

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

Download "Paradygmaty programowania"

Transkrypt

1 Paradygmaty programowania Haskell Piotr Matyasik AGH-UST 2014 Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47 Historia A History of Haskell: Being Lazy With Class Paul Hudak (Yale), John Hughes (Chalmers), Simon Peyton Jones (MS Research), Philip Wadler (Edinburgh) Can programming be liberated from the von Neumann style? 1978 John Backus (nagroda Turinga) J zyki funkcyjne Miranda, Lazy ML, Orwell, Al, Id (dataow), Clean, Ponder, Daisy (Lisp, ML, Scheme) Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47

2 Dlaczego kolejny j zyk? W Javie mo»na napisa wszystko! bª dy wielko± kodu q s o r t 1 : : Ord a => [ a ] > [ a ] q s o r t 1 [ ] = [ ] q s o r t 1 ( p : x s ) = q s o r t 1 l e s s e r ++ [ p ] ++ q s o r t 1 g r e a t e r where l e s s e r = [ y y < xs, y < p ] g r e a t e r = [ y y < xs, y >= p ] Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47 Haskell Haskell is lazy, Haskell is pure, Haskell has a (type) class. Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47

3 Haskell w dziaªaniu ghci l e t a = min 5 [ ( a, b, c ) a< [ ], b < [1..100], c < [1..100], c<a+b, a a+b b == c c ] (+) 2 2 (^) 3 3 Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47 Typy Bool True, False && not and, or Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47

4 Typy Int Integer Float Double Char Int - ograniczony (zale»y od architektury, zwykle 32 lub 64 bity ze znakiem) Integer - nieograniczony Float - zmiennoprzecinkowy pojedynczej precyzji Double - zmiennoprzecinkowy podwójnej precyzji Char - znak ('a') Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47 Typy Porz dek Ordering, typ relacji,wyliczeniowy (f. compare) LT (less than - mniejszy ni») EQ (equal - równy) GT (greater than - wi kszy ni») Operatory == /= Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47

5 Typy Listy listy musz skªada si z elementów tego samego typu [] - pusta lista [el 1, el 2, el 3,...] Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47 Typy Listy enumeracje [el 1..el n ] enumeracje [el 1,..] enumeracje [el 1, el 2,.., el n ] ++ ª czenie list : konstrukcja listy!! indeksowanie.. zakres [1,2,3] == (:) 1 ((:) 2 ((:) 3 [])) (:) 0 [1,2,3] [5,3..( 1)] Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47

6 Typy Listy Tekst head, tail, last, init [el 1, el 2, el 3,...] l r [ ] = [ ] l r x s = l a s t x s : l r ( i n i t x s ) Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47 Typy Listy x S, p(x) [x x S, px] (pochodz cy z, wzi ty z) p - stra»nik [m ++ " i " ++ k m< ["Adam", "Wacek" ], k< ["Anka", " Marta " ] ] s t r = [ s++[c ] s < "" : s t r, c < [ ' a '.. ' z ' ] ] Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47

7 Typy Krotka odpowiednik struktury mo»e zawiera ró»ne typy elementów fst, snd (a trzeci?) (1,2,3) ('a ',1,[]) (([1,2,3],' a '),( sadasdad,[]),([])) Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47 Przerwa Rozrywka Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47

8 Typy Jeszcze raz od pocz tku! nazwy zawsze zaczynaj si du» liter WSZYSTKO ma swój typ! ( : ) : : a > [ a ] > [ a ] head : : [ a ] > a t a i l : : [ a ] > [ a ] length : : [ a ] > I n t co to jest a? Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47 Typy Klasy Ord - porz dek zupeªny Show - mo»liwe do wy±wietlenia jako napis Read - mo»liwe do stworzenia z napisu Enum - enumerowalne Bounded - ograniczone Num - liczbowy Eq - porównywalne Integral - caªkowite Floating - zmiennoprzecinkowe Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47

9 Currying Funkcje maj tylko jeden argument take : : I n t > [ a ] > [ a ] z i p : : [ a ] > [ b ] > [ ( a, b ) ] f o l d l : : ( a > b > a ) > a > [ b ] > a map : : ( a > b ) > [ a ] > [ b ] take : : I n t > [ a ] > [ a ] z i p : : [ a ] > [ b ] > [ ( a, b ) ] f o l d l : : ( a > b > a ) > a > ( [ b ] > a ) map : : ( a > b ) > [ a ] > [ b ] Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47 Funkcje Dopasowanie wzorca wzorce s dopasowywane od pierwszego do ostatniego (góra-dóª, lewo-prawo) tylko pierwszy pasuj cy jest wykonywany wzorce musz obejmowa caª domen Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47

10 Funkcje Dopasowanie wzorca f a c 0 = 1 f a c n = n f a c ( n 1) 1 mmax [ ] = e r r o r " p u s t a l i s t a " 2 mmax [ x ] = x 3 mmax ( x : x s ) 4 x > mmax x s = x 5 otherwise = mmax x s Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47 Funkcje Guards! Where? sqreq a b c d e l t a > 0 = [ x1, x2 ] d e l t a == 0 = [ x1 ] otherwise = [ ] where x1 = ( b s q d e l t a ) / ( 2 a ) x2 = ( b + s q d e l t a ) / ( 2 a ) s q d e l t a = s q r t d e l t a d e l t a = b b 4 a c Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47

11 Funkcje let (me) in case sqreq ' a b c = l e t d e l t a = b b 4 a c s q d e l t a = s q r t d e l t a x1 = ( b s q d e l t a ) / ( 2 a ) x2 = ( b + s q d e l t a ) / ( 2 a ) i n case compare d e l t a 0 of GT > [ x1, x2 ] EQ > [ x1 ] LT > [ ] Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47 Notacja Lambda Funkcja na szybko \ x y z > \ x > (\ y > (\ z >... ) ) f x y z =... f = \ x > (\ y > (\ z >... ) ) Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47

12 Pointfreee Gdzie si podziaªy nazwy parametrów!? num_of_occ e l e l i s t = length ( f i l t e r (== e l e ) l i s t ) num_of_occ = ( length. ). f i l t e r. (==) η redukcja square ' ' x = (^2) x square ' ' ' = (^2) Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47 dolar i spacja f g h x (((f g)h)x) f g $ h x f g (h x) (f g)(h x) f $ g h x f(g h x) f((g h)x) f $ g $h x f(g(h x)) (f.g)x f(g x) (f.g.h)x f(g(h x)) Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47

13 Typy danych Deniowanie typów wyliczeniowych data Mob = Chicken Cow Horse Pig Sheep V i l l a g e r S k e l e t o n C r e e p e r Zombie d e r i v i n g (Show, Eq) Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47 Typy danych Deniowanie i s H o s t i l e : : Mob > Bool i s H o s t i l e Zombie = True i s H o s t i l e S k e l e t o n = True i s H o s t i l e C r e e p e r = True i s H o s t i l e _ = False Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47

14 Typy danych Deniowanie typów z parametrami data M i n e c r a f t F i g u r e = P l a y e r String Mob String d e r i v i n g Show Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47 Typy danych Deniowanie type I d = String data M i n e c r a f t F i g u r e = P l a y e r I d Mob I d d e r i v i n g Show Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47

15 Typy danych Deniowanie data Person = Person String String I n t d e r i v i n g Show type A d d r e s s = String type Name = String type Age = I n t data Person = Person Name A d d r e s s Age Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47 Typy danych Deniowanie data MTree a = N u l l Node a ( MTree a ) ( MTree a ) d e r i v i n g (Show, Eq, Ord) data XTree a = L e a f a Branch ( XTree a ) ( XTree a ) d e r i v i n g (Eq, Ord, Show) Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47

16 Typy danych Sprytny konstruktor jak zapobiec nadawaniu bezsensownych warto±ci? data B a t e r i a p = B a t e r i a p d e r i v i n g (Show, Eq, Ord) type Poj = I n t data B a t e r i a p = B a t e r i a Poj d e r i v i n g (Show, Eq, Ord) B a t e r i a ( 10)????? Funkcja konstruuj ca makebatt p p>= 0 && p< = B a t e r i a p o t h e r w i s e = e r r o r " N i e w l a s c i w a pojemnosc " Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47 Typy danych instancja Show i n s t a n c e Show ( B a t e r i a a ) where show ( B a t e r i a p ) p>1000 = " B a t e r i a o p o j e m n o s c i " ++ ( show $ ( f r o m I n t e g r a l p ) / ) ++ "Ah" o t h e r w i s e = " B a t e r i a o p o j e m n o s c i " ++ ( show p ) ++ "mah" Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47

17 Typy danych Notacja rekordowa data Punkt p = Punkt { x : : p, y : : p} d e r i v i n g (Show, Eq, Ord) x : : Punkt p > p y : : Punkt p > p Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47 Kompozycja f :: a b f :: a (String, b) Jak poª czy funkcje typu f'? Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47

18 Rozwi zanie s k l e j ( s, a ) f = ( s++w, q ) where (w, q ) = f a s k l e j ' ( s, a ) f = ( s ++ f s t ( f a ), snd ( f a ) ) n i c f = ( "", f ) l i f t f = n i c. f f x = 2 x f ' x = ( "mnoze " ++ ( show x ) ++ " p r z e z dwa", f x ) Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47 Monada Denicja -koniec z udawaniem,»e nikt nie rozumie monad data Deb a = Deb String a d e r i v i n g (Show, Eq, Ord) instance Monad Deb where return f = Deb "" f (>>=) ( Deb s v ) f = Deb ( s++w) a where ( Deb w a ) = f v f x = Deb "Odpalam f " (2 x ) g x = Deb "Odpalam g" (2+x ) Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47

19 Monada Ale to w sumie takie niepraktyczne, jak to rozró»ni? data Deb a = Deb [ String ] a d e r i v i n g (Show, Eq,Ord) instance Monad Deb where return f = Deb [ "" ] f (>>=) ( Deb s v ) f = Deb ( s++w) a where ( Deb w a ) = f v f x = Deb [ "Odpalam f na " ++ show x ] (2 x ) g x = Deb [ " Odpalam g na " ++ show x ] (2+ x ) Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47 Monada GENIALNE!! - dziwne,»e nikt na to nie wpadª wcze±niej import Control.Monad.Writer Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47

20 Monada jako pojemnik return :: (Monad m) a m a - zapakuj zwykªy element fmap :: (F unctor f) (a b) f a f b - zmie«pudeªko a na pudeªko b join :: (Monad m) m (m a) m a - przepakuj w jedno pudeªko (>>=) :: (Monad m) m a (a m b) m b - bind (posuwaj) xs >>= f = join (fmap f xs) i n s t a n c e Monad [ ] where r e t u r n x = [ x ] x s >>= f = c o n c a t (map f x s ) Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47 Monada jako proces obliczeniowy M a - proces obliczeniowy daj cy w wyniku a return :: (Monad m) a m a - proces obliczeniowy, który nic nie robi (>>) :: (Monad m) m a m b m b - dwa procesy obliczeniowe a i b, uruchamiany jest proces a, pomija si jego wynik, a nast pnie uruchamiany jest proces b, który zwraca wynik (>>=) :: (Monad m) m a (a m b) m b - proces obliczeniowy a i funkcja, która na podstawie wyników pierwszego procesu obliczeniowego okre±la kolejny proces obliczeniowy Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47

21 do notacja do do { x } = x do { x ; <stms> } = x >> do { <stms> } do { v < x ; <stms> } = x >>= \ v > do { <stms> } do { l e t <decs> ; <stms> } = l e t <decs> i n do { <stms> } Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47 Monada Prawa - nr 1 return v >>= f == f v do w < return v f w = do f v Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47

22 Monada Prawa - nr 2 x >>= return == x do = do v < x return x v Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47 Monada Prawa - nr 3 ( x >>= f ) >>= g == x >>= (\ v > f v >>= g ) do w < do g w = do v < x w < f g w v v < x f v Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47

23 Monada Prawa s k l e j ' ( s, a ) f = ( s ++ f s t ( f a ), snd ( f a ) ) s k l e j ' x f = ( f s t x ++ f s t ( f ( snd x ) ), snd ( f ( snd x ) ) ) n i c f = ( " p a k u j e f ", f ) return v >>= f == f v x >>= return == x ( x >>= f ) >>= g == x >>= (\ v > f v >>= g ) Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47 Funktor Funktor Funktor to odwzorowanie jednej kategorii w drug zachowuj ce zªo»enia i morzmy to»samo±ciowe. c l a s s Functor f where fmap : : ( a > b ) > f a > f b Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47

24 Control.Monad Po co to wzystko - odpowied¹? mapm :: Monad m (a m b) [a] m [b] sequence :: Monad m [m a] m [a] (=<<) :: Monad m (a m b) m a m b (>=>) :: Monad m (a m b) (b m c) a m c (<=<) :: Monad m (b m c) (a m b) a m c Piotr Matyasik (AGH-UST) Paradygmaty programowania / 47

Elementy języka Haskell

Elementy języka Haskell Elementy języka Haskell Cechy języka Historia języka Proste przykłady Środowisko interakcyjne Typy i klasy Definiowanie funkcji Wyrażenia listowe Deklarowanie typów, danych i klas Monady Cechy języka zwięzłe

Bardziej szczegółowo

- nawiasy kwadratowe oznaczają, że to lista

- nawiasy kwadratowe oznaczają, że to lista Haskell jest statycznym typem języka: - wszystkie typy i wyrażenia są znane w czasie kompilacji ( zwiększa to bezpieczeństwo kodu). Podawanie typów zmiennych i argumentów funkcji jest zbędne, gdyż Haskel

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

Prezentacja o Haskell u(rozdział 3 i 4)

Prezentacja o Haskell u(rozdział 3 i 4) 9 marca 2017 Spis treści 1 2 Wprowadzenie Każda wartość jak i funkcja ma w haskellu ściśle określony typ. Jawne definiowanie typów nie jest konieczne, ponieważ Haskell sam rozpoznaje typ wartości. Warto

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

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

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

1. Wprowadzenie do C/C++

1. Wprowadzenie do C/C++ Podstawy Programowania - Roman Grundkiewicz - 013Z Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub

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

1. Wprowadzenie do C/C++

1. Wprowadzenie do C/C++ Podstawy Programowania :: Roman Grundkiewicz :: 014 Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub

Bardziej szczegółowo

TWORZENIE SWOICH TYPÓW I TYPÓW KLAS HASKELL (RODZIAŁ 8) ZAJĘCIA 4

TWORZENIE SWOICH TYPÓW I TYPÓW KLAS HASKELL (RODZIAŁ 8) ZAJĘCIA 4 TWORZENIE SWOICH TYPÓW I TYPÓW KLAS HASKELL (RODZIAŁ 8) ZAJĘCIA 4 Wprowadzenie do typów algebraicznych WPROWADZENIE DO TYPÓW ALGEBRAICZNYCH Słowo data oznacza zdefiniowanie nowego typu danych Typ Bool

Bardziej szczegółowo

Programowanie i struktury danych 1 / 44

Programowanie i struktury danych 1 / 44 Programowanie i struktury danych 1 / 44 Lista dwukierunkowa Lista dwukierunkowa to liniowa struktura danych skªadaj ca si z ci gu elementów, z których ka»dy pami ta swojego nast pnika i poprzednika. Operacje

Bardziej szczegółowo

Wprowadzenie do szablonów klas

Wprowadzenie do szablonów klas Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2008-2010 Bogdan Kreczmer Niniejszy

Bardziej szczegółowo

Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH

Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH Michał Bujacz bujaczm@p.lodz.pl B9 Lodex 207 godziny przyjęć: środy i czwartki 10:00-11:00 http://www.eletel.p.lodz.pl/bujacz/ 1 Pytania weryfikacyjne:

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

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.) Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.) przeznaczony do programowania zarówno pod ios jak i Mac OS X bazuje na logice Objective-C bez kompatybilności

Bardziej szczegółowo

FP vs OOP? Mikołaj Fejzer

FP vs OOP? Mikołaj Fejzer FP vs OOP? Mikołaj Fejzer Versus? http://roflcopter.pl/4591 Versus OOP Kapsułkowanie Hierarhia klas, dziedziczenie Zmiana stanu w czasie Polimorfizm podtypu FP Funkcje jako typy pierwszego rzędu Algebraiczne

Bardziej szczegółowo

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.) Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.) przeznaczony do programowania zarówno pod ios jak i Mac OS X bazuje na logice Objective-C bez kompatybilności

Bardziej szczegółowo

Haskell Moduły Ładowanie

Haskell Moduły Ładowanie Haskell Moduły Moduł zestaw powiązanych funkcji, typów, typeclass. Program w Haskellu często jest modułem, który ładuje inne moduły a następnie wykorzystuje zdefiniowane w nich funkcje w celu realizacji

Bardziej szczegółowo

Algorytmy i struktury danych. wykład 1

Algorytmy i struktury danych. wykład 1 Plan całego wykładu:. Pojęcie algorytmu, projektowanie wstępujące i zstępujące, rekurencja. Klasy algorytmów. Poprawność algorytmu, złożoność obliczeniowa. Wskaźniki, dynamiczne struktury danych: listy,

Bardziej szczegółowo

ROZDZIAŁ 8: KLASY TYPÓW

ROZDZIAŁ 8: KLASY TYPÓW ROZDZIAŁ 8: KLASY TYPÓW Definicja typu Bool: data Bool = False True Słowo kluczowe data oznacza, że definiujemy nowy typ danych. Część przed = określa typ jakim jest bool. Cześć po.. = są to konstruktory

Bardziej szczegółowo

Przetwarzanie sygnaªów

Przetwarzanie sygnaªów Przetwarzanie sygnaªów Laboratorium 1 - wst p do C# Dawid Poªap Przetwarzanie sygnaªów Pa¹dziernik, 2018 1 / 17 Czego mo»na oczekiwa wzgl dem programowania w C# na tych laboratoriach? Dawid Poªap Przetwarzanie

Bardziej szczegółowo

Wzorce projektowe strukturalne cz. 1

Wzorce projektowe strukturalne cz. 1 Wzorce projektowe strukturalne cz. 1 Krzysztof Ciebiera 19 pa¹dziernika 2005 1 1 Wst p 1.1 Podstawowe wzorce Podstawowe wzorce Podstawowe informacje Singleton gwarantuje,»e klasa ma jeden egzemplarz. Adapter

Bardziej szczegółowo

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1) MAS dr. Inż. Mariusz Trzaska Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1) Zagadnienia o Podstawy o Kontrolowanie sterowania o Klasy o Interfejsy o Obsługa błędów o Pojemniki o System

Bardziej szczegółowo

i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017

i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017 i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski Uniwersytet Šódzki, Wydziaª Matematyki i Informatyki UŠ piotr@fulmanski.pl http://fulmanski.pl/zajecia/prezentacje/festiwalnauki2017/festiwal_wmii_2017_

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

Informatyka 1. Przetwarzanie tekstów

Informatyka 1. Przetwarzanie tekstów Informatyka 1 Wykład IX Przetwarzanie tekstów Robert Muszyński ZPCiR ICT PWr Zagadnienia: reprezentacja napisów znakowych, zmienne napisowe w Sun Pascalu, zgodność typów, operowanie na napisach: testowanie

Bardziej szczegółowo

Dr Michał Tanaś(http://www.amu.edu.pl/~mtanas)

Dr Michał Tanaś(http://www.amu.edu.pl/~mtanas) Dr Michał Tanaś(http://www.amu.edu.pl/~mtanas) Bazy danych podstawowe pojęcia Baza danych jest to zbiór danych zorganizowany zgodnie ze ściśle określonym modelem danych. Model danych to zbiór ścisłych

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych

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

Tworzenie własnych typów. danych oraz klas typów

Tworzenie własnych typów. danych oraz klas typów Justyna Łowicka Tworzenie własnych typów danych oraz klas typów Algebraiczne typy danych konstruktorów umieszczonych w deklaracji data. Zobaczmy, jak typ Bool jest zdefiniowany w bibliotece standardowej.

Bardziej szczegółowo

Podstawy programowania w Pythonie

Podstawy programowania w Pythonie Podstawy programowania w Pythonie Wykład 5 dr Andrzej Zbrzezny Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie 7 listopada 2012 dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania

Bardziej szczegółowo

JAVA W SUPER EXPRESOWEJ PIGUŁCE

JAVA W SUPER EXPRESOWEJ PIGUŁCE JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie

Bardziej szczegółowo

Programowanie Komputerów

Programowanie Komputerów Programowanie Komputerów Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@eti.pg.gda.pl Wykład 30 godzin, Laboratoria 30 godzin 2012/ Strona 1 z 17 1. Typy i zmienne Jak wiemy, komputer

Bardziej szczegółowo

WEJŚCIE/WYJŚCIE HASKELL ŁUKASZ PAWLAK DARIUSZ KRYSIAK

WEJŚCIE/WYJŚCIE HASKELL ŁUKASZ PAWLAK DARIUSZ KRYSIAK WEJŚCIE/WYJŚCIE HASKELL ŁUKASZ PAWLAK DARIUSZ KRYSIAK W Haskellu funkcje nie mogą zmieniać stanów (w tym np. zmieniać wartości zmiennej). Funkcja wywołana z pewnymi ustalonymi argumentami musi zwracać

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

Zatem w jaki sposób nasze programy mają komunikować się ze światem zewnętrznym?

Zatem w jaki sposób nasze programy mają komunikować się ze światem zewnętrznym? Wprowadzenie Haskell jest językiem czysto funkcyjnym. W uproszczeniu oznacza to, że w przeciwieństwie do języków imperatywnych (w których podajemy komputerowi ciąg kroków do wykonania) definiujemy co,

Bardziej szczegółowo

SWIFT. Zaawansowane Programowanie Obiektowe

SWIFT. Zaawansowane Programowanie Obiektowe SWIFT Zaawansowane Programowanie Obiektowe Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.) przeznaczony do programowania zarówno pod ios jak i Mac OS X bazuje

Bardziej szczegółowo

0.1 Hierarchia klas. 0.1.1 Diagram. 0.1.2 Krótkie wyjaśnienie

0.1 Hierarchia klas. 0.1.1 Diagram. 0.1.2 Krótkie wyjaśnienie 0.1 Hierarchia klas 0.1.1 Diagram 0.1.2 Krótkie wyjaśnienie Po pierwsze to jest tylko przykładowe rozwiązanie. Zarówno na wtorkowych i czwartkowych ćwiczeniach odbiegaliśmy od niego, ale nie wiele. Na

Bardziej szczegółowo

Programowanie i projektowanie obiektowe

Programowanie i projektowanie obiektowe Programowanie i projektowanie obiektowe Klasy i obiekty Paweł Daniluk Wydział Fizyki Jesień 2011 P. Daniluk (Wydział Fizyki) PO w. V Jesień 2011 1 / 13 Typy danych (w Javie) Typy pierwotne typ wartości

Bardziej szczegółowo

Haskell. Rozdział Ogólne informacje o języku

Haskell. Rozdział Ogólne informacje o języku Rozdział 1 Haskell 1.1. Ogólne informacje o języku Haskell 1 jest językiem funkcyjnym, charakteryzującym się silnym typowaniem, leniwym wartościowaniem oraz możliwością stosowania paradygmatu programowania

Bardziej szczegółowo

KOTLIN. Język programowania dla Androida

KOTLIN. Język programowania dla Androida KOTLIN Język programowania dla Androida Historia Kotlin został opracowany przez firmę JetBrains Prace rozpoczęto w 2011 r., od 2012 r. dostępny na licencji Apache 2. Nazwa pochodzi od wyspy koło Petersburga

Bardziej szczegółowo

Ada 95 #1/5 - typy. Typy skalarne. Hierarchia typów w Adzie. Typ znakowy. Typy dyskretne. Plan wykładu

Ada 95 #1/5 - typy. Typy skalarne. Hierarchia typów w Adzie. Typ znakowy. Typy dyskretne. Plan wykładu Plan wykładu Ada 95 #1/5 - typy Wojciech Complak, Instytut Informatyki, Politechnika Poznańska e-mail : Wojciech.Complak@cs.put.poznan.pl www : http://www.cs.put.poznan.pl/wcomplak Hierarchia typów w Adzie

Bardziej szczegółowo

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście. Typy, operatory, wyrażenia. Wejście i wyjście. Typy, operatory, wyrażenia Zmienna: [] [ '[' ']' ] ['=' ]; Zmienna to fragment pamięci o określonym

Bardziej szczegółowo

Programowanie i struktury danych

Programowanie i struktury danych Programowanie i struktury danych Wykªad 3 1 / 37 tekstowe binarne Wyró»niamy dwa rodzaje plików: pliki binarne pliki tekstowe 2 / 37 binarne tekstowe binarne Plik binarny to ci g bajtów zapami tanych w

Bardziej szczegółowo

Podziaª pracy. Cz ± II. 1 Tablica sortuj ca. Rozwi zanie

Podziaª pracy. Cz ± II. 1 Tablica sortuj ca. Rozwi zanie Cz ± II Podziaª pracy 1 Tablica sortuj ca Kolejka priorytetowa to struktura danych udost pniaj ca operacje wstawienia warto±ci i pobrania warto±ci minimalnej. Z kolejki liczb caªkowitych, za po±rednictwem

Bardziej szczegółowo

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1 Typy złożone Struktury, pola bitowe i unie. Programowanie Proceduralne 1 Typy podstawowe Typy całkowite: char short int long Typy zmiennopozycyjne float double Modyfikatory : unsigned, signed Typ wskaźnikowy

Bardziej szczegółowo

ZMIENNE. Podstawy PHP

ZMIENNE. Podstawy PHP ZMIENNE Podstawy PHP zmienna - to obiekt w programowaniu, który przechowuje różnego rodzaju dane niezbędne do działania programu. Zmienna podczas działania programu może zmieniad swoje wartości (jak wskazuje

Bardziej szczegółowo

Microsoft IT Academy kurs programowania

Microsoft IT Academy kurs programowania Microsoft IT Academy kurs programowania Podstawy języka C# Maciej Hawryluk Język C# Język zarządzany (managed language) Kompilacja do języka pośredniego (Intermediate Language) Kompilacja do kodu maszynowego

Bardziej szczegółowo

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h] 1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie

Bardziej szczegółowo

Programowanie C# mgr in. Dariusz Ku. p. 119A dkus@dune.pol.lublin.pl http://antenor.pol.lublin.pl/~dkus

Programowanie C# mgr in. Dariusz Ku. p. 119A dkus@dune.pol.lublin.pl http://antenor.pol.lublin.pl/~dkus Programowanie C# mgr in. Dariusz Ku p. 119A dkus@dune.pol.lublin.pl http://antenor.pol.lublin.pl/~dkus Translacja kodu Kod ródłowy Java, C# Kompilator Kompilator Kod poredni Interpreter Maszyna wirtualna

Bardziej szczegółowo

Programowanie I C / C++ laboratorium 03 arytmetyka, operatory

Programowanie I C / C++ laboratorium 03 arytmetyka, operatory Programowanie I C / C++ laboratorium 03 arytmetyka, operatory Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2013-02-19 Typ znakowy Typ znakowy Typ wyliczeniowy # include

Bardziej szczegółowo

λ 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

λ 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 Organizacja przedmiotu Języki programowania (Programming language concepts) Krzysztof M. Ocetkiewicz pok. 205 email: Krzysztof.Ocetkiewicz@eti.pg.gda.pl konsultacje: czwartek 10:15-11.00, 13:15-14:00 projekt:

Bardziej szczegółowo

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych Projektowanie bazy danych Jarosław Kuchta Projektowanie Aplikacji Internetowych Możliwości projektowe Relacyjna baza danych Obiektowa baza danych Relacyjno-obiektowa baza danych Inne rozwiązanie (np. XML)

Bardziej szczegółowo

Programowanie wspóªbie»ne

Programowanie wspóªbie»ne 1 Zadanie 1: Bar Programowanie wspóªbie»ne wiczenia 6 monitory cz. 2 Napisz monitor Bar synchronizuj cy prac barmana obsªuguj cego klientów przy kolistym barze z N stoªkami. Ka»dy klient realizuje nast

Bardziej szczegółowo

Mechanizmy refleksji w Javie i C# Autor: Aleksander Nałęczyński

Mechanizmy refleksji w Javie i C# Autor: Aleksander Nałęczyński Mechanizmy refleksji w Javie i C# Autor: Aleksander Nałęczyński Co to jest refleksja? [1/2] Możliwość obserwowania lub manipulowania pracą programu od wewnątrz Problem Zazwyczaj niskopoziomowa struktura

Bardziej szczegółowo

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016 Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,

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

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Opis: 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ółowo

Przegląd języka Python. Łukasz Anwajler

Przegląd języka Python. Łukasz Anwajler Przegląd języka Python Łukasz Anwajler lukasz.anwajler@pjwstk.edu.pl Nie wierzcie mi na słowo Zaraz zobaczymy: czym jest Python dlaczego warto go używać jakie ma zastosowania gdzie z niego korzystają jakzacząć

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

Java Podstawy. Michał Bereta

Java Podstawy. Michał Bereta Prezentacja współfinansowana przez Unię Europejską ze środków Europejskiego Funduszu Społecznego w ramach projektu Wzmocnienie znaczenia Politechniki Krakowskiej w kształceniu przedmiotów ścisłych i propagowaniu

Bardziej szczegółowo

Szablony funkcji i szablony klas

Szablony funkcji i szablony klas Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2011 Bogdan Kreczmer Niniejszy dokument

Bardziej szczegółowo

Modelowanie numeryczne w fizyce atmosfery Ćwiczenia 3

Modelowanie numeryczne w fizyce atmosfery Ćwiczenia 3 Modelowanie numeryczne w fizyce atmosfery Sylwester Arabas (ćwiczenia do wykładu dr. hab. inż. Lecha Łobockiego) Instytut Geofizyki, Wydział Fizyki Uniwersytetu Warszawskiego 3. listopada 2011 r. Schemat

Bardziej szczegółowo

1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy.

1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy. 1 Klasy. Klasa to inaczej mówi c typ który podobnie jak struktura skªada si z ró»nych typów danych. Tworz c klas programista tworzy nowy typ danych, który mo»e by modelem rzeczywistego obiektu. 1.1 Denicja

Bardziej szczegółowo

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u będziemy używać w taki sam sposób, jak wbudowanych funkcji

Bardziej szczegółowo

Oczywiście plik musi mieć rozszerzenie *.php

Oczywiście plik musi mieć rozszerzenie *.php Oczywiście plik musi mieć rozszerzenie *.php Znaczniki PHP komunikują serwerowi gdzie rozpoczyna się i kończy kod PHP. Tekst między nimi jest interpretowany jako kod PHP, natomiast poza nimi jako kod HTML.

Bardziej szczegółowo

Model obiektu w JavaScript

Model obiektu w JavaScript 16 marca 2009 E4X Paradygmat klasowy Klasa Deniuje wszystkie wªa±ciwo±ci charakterystyczne dla wybranego zbioru obiektów. Klasa jest poj ciem abstrakcyjnym odnosz cym si do zbioru, a nie do pojedynczego

Bardziej szczegółowo

Podstawowe części projektu w Javie

Podstawowe części projektu w Javie Podstawowe części projektu w Javie Pakiet w Javie to grupa podobnych typów klas, interfejsów i podpakietów. Pakiet w Javie może być wbudowany lub zdefiniowany przez użytkownika. Istnieje wiele wbudowanych

Bardziej szczegółowo

2 Przygotował: mgr inż. Maciej Lasota

2 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania

Bardziej szczegółowo

Python wstęp do programowania dla użytkowników WCSS

Python wstęp do programowania dla użytkowników WCSS Python wstęp do programowania dla użytkowników WCSS Dr inż. Krzysztof Berezowski Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej Wprowadzenie CHARAKTERYSTYKA JĘZYKA Filozofia języka

Bardziej szczegółowo

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.) Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.) przeznaczony do programowania zarówno pod ios jak i Mac OS X bazuje na logice Objective-C bez kompatybilności

Bardziej szczegółowo

HASKELL 2 R O Z D Z I A Ł 4 SKŁADNIA W FUNKCJACH R O Z D Z I A Ł 5 REKURENCJA. Learn You a Haskell for Great Good! Miran Lipovac

HASKELL 2 R O Z D Z I A Ł 4 SKŁADNIA W FUNKCJACH R O Z D Z I A Ł 5 REKURENCJA. Learn You a Haskell for Great Good! Miran Lipovac HASKELL 2 R O Z D Z I A Ł 4 SKŁADNIA W FUNKCJACH R O Z D Z I A Ł 5 REKURENCJA Learn You a Haskell for Great Good! Miran Lipovac ROZDZIAŁ 4 ODNAJDYWANIE WZORCA (P ATTERN MATCHING) CZYM JEST PATTERN MATCHING?

Bardziej szczegółowo

C++ wprowadzanie zmiennych

C++ wprowadzanie zmiennych C++ wprowadzanie zmiennych Każda zmienna musi być zadeklarowana, należy określić jej nazwę (identyfikator) oraz typ. Opis_typu lista zmiennych Dla każdej zmiennej rezerwowany jest fragment pamięci o określonym

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

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

Bardziej szczegółowo

wiczenie 1 Podstawy j zyka Java. Instrukcje warunkowe

wiczenie 1 Podstawy j zyka Java. Instrukcje warunkowe wiczenie 1 Podstawy j zyka Java. Instrukcje warunkowe 1 Wprowadzenie 1.1 rodowisko programistyczne NetBeans https://netbeans.org/ 1.2 Dokumentacja j zyka Java https://docs.oracle.com/javase/8/docs/api/

Bardziej szczegółowo

Programowanie komputerowe. Zajęcia 4

Programowanie komputerowe. Zajęcia 4 Programowanie komputerowe Zajęcia 4 Typ logiczny Wartości logiczne są reprezentowane przez typ bool. Typ bool posiada tylko dwie wartości: true i false. Zamiast wartości logicznych można używać wartości

Bardziej szczegółowo

Wstęp do Programowania potok funkcyjny

Wstęp do Programowania potok funkcyjny Wstęp do Programowania potok funkcyjny Marcin Kubica 2016/2017 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

Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1

Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1 PODSTAWOWE ELEMENTY JĘZYKA JAVA WYRAŻENIA, OPERATORY, INSTRUKCJE 1. Operatory arytmetyczne +, -, /,*, % Przykład 1 programu z interfejsem konsolowym public class Lab2_1 // Tworzy generator liczb losowych,

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

PARADYGMATY I JĘZYKI PROGRAMOWANIA

PARADYGMATY I JĘZYKI PROGRAMOWANIA 1 PARADYGMATY I JĘZYKI PROGRAMOWANIA Zmienne. Typy danych. cd. Treść 2 Zmienne nazwa, zakresy,... Typy danych wstęp n definicje n klasyfikacja Sprawdzanie typów n równoważność n wnioskowanie typów Tablice

Bardziej szczegółowo

Technologie cyfrowe semestr letni 2018/2019

Technologie cyfrowe semestr letni 2018/2019 Technologie cyfrowe semestr letni 2018/2019 Tomasz Kazimierczuk Wykład 8 (15.04.2019) Kompilacja Kompilacja programu (kodu): proces tłumaczenia kodu napisanego w wybranym języku na kod maszynowy, zrozumiały

Bardziej szczegółowo

Imi i nazwisko... Egzamin - Programowanie Obiektowe II rok informatyki, studia pierwszego stopnia, niestacjonarne Termin zerowy

Imi i nazwisko... Egzamin - Programowanie Obiektowe II rok informatyki, studia pierwszego stopnia, niestacjonarne Termin zerowy Imi i nazwisko....................................................... Egzamin - Programowanie Obiektowe II rok informatyki, studia pierwszego stopnia, niestacjonarne Termin zerowy 21.01.2017 Instrukcja:

Bardziej szczegółowo

Obiektowy Caml. Paweł Boguszewski

Obiektowy Caml. Paweł Boguszewski Obiektowy Caml Paweł Boguszewski Plan prezentacji Charakterystyka języka Składnia Obiektowość w OCamlu Wyjątki Standardowe Moduły Narzędzia wspomagające Bibliografia OCaml OCaml jest obiektowym, funkcyjnym

Bardziej szczegółowo

Dokªadna arytmetyka liczb rzeczywistych w j zyku Python

Dokªadna arytmetyka liczb rzeczywistych w j zyku Python Dokªadna arytmetyka liczb rzeczywistych w j zyku Python Marcin Ciura Zakªad Oprogramowania 28 marca 2007 Marcin Ciura (Zakªad Oprogramowania) Dokªadna arytmetyka liczb rzeczywistych 28 marca 2007 1 / 24

Bardziej szczegółowo

Wartości domyślne, szablony funkcji i klas

Wartości domyślne, szablony funkcji i klas Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2012 Bogdan Kreczmer Niniejszy dokument

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

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

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

Bardziej szczegółowo

Ć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

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

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

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

Leży u podstaw programowania funkcyjnego. Napisy. 1 Zastapienie dowolnego wyrażenia innym wyrażeniem o tej samej. wartości daje równoważny program.

Leży u podstaw programowania funkcyjnego. Napisy. 1 Zastapienie dowolnego wyrażenia innym wyrażeniem o tej samej. wartości daje równoważny program. Haskell Nazwa Haskell Brooks Curry (1900 1982) Czysty język funkcyjny Bez efektów ubocznych Ułatwia wnioskowanie o programach Leniwy Wyrażenia nie sa obliczane wcześniej niz potrzeba Umożliwia programowanie

Bardziej szczegółowo

Programowanie Funkcyjne WPPT Lista zadań

Programowanie Funkcyjne WPPT Lista zadań Programowanie Funkcyjne WPPT Lista zadań Jacek Cichoń, WPPT, PWr, 2018/19 Zadania oznaczone * są nieco trudniejsze od zadań bez gwiazdki. Zadania oznaczone ** są jeszcze trudniejsze. 1 Wstęp 1.1 Wprowadzenie

Bardziej szczegółowo

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych: Zmienna i typ Pascal typy danych Zmienna to obiekt, który może przybierać różne wartości. Typ zmiennej to zakres wartości, które może przybierać zmienna. Deklarujemy je w nagłówku poprzedzając słowem kluczowym

Bardziej szczegółowo

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1 J zyki formalne i operacje na j zykach J zyki formalne s abstrakcyjnie zbiorami sªów nad alfabetem sko«czonym Σ. J zyk formalny L to opis pewnego problemu decyzyjnego: sªowa to kody instancji (wej±cia)

Bardziej szczegółowo

Technologie Informacyjne

Technologie Informacyjne Technologie Informacyjne Wykªad 5 Paweª Witkowski MIM UW Wiosna 2012 P. Witkowski (MIM UW) Technologie Informacyjne Wiosna 2012 1 / 1 WYSZUKAJ.PIONOWO WYSZUKAJ.PIONOWO(kryterium wyszukiwania; macierz;

Bardziej szczegółowo

CREATE TABLE logika (p BOOLEAN); INSERT INTO logika VALUES(true); INSERT INTO logika VALUES(false); INSERT INTO logika VALUES(NULL);

CREATE TABLE logika (p BOOLEAN); INSERT INTO logika VALUES(true); INSERT INTO logika VALUES(false); INSERT INTO logika VALUES(NULL); 1. Zaªó» tabel logika o trzech atrybutach p,q,r typu BOOLEAN. Uzupeªnij j wszystkimi mo»liwymi waluacjami logiki SQL (oczywi±cie nie rób tego r cznie). Nast pnie przy u»yciu komend SQLa sprawd¹, dla jakich

Bardziej szczegółowo

Platformy Programistyczne Podstawy języka Java

Platformy Programistyczne Podstawy języka Java Platformy Programistyczne Podstawy języka Java Agata Migalska 6 maja 2014 Plan wykładu 1 Sztuka wysławiania się w języku Java 2 Cały świat jest obiektem 3 Kolekcje 4 Zmienne i metody statyczne 5 Słowo

Bardziej szczegółowo

Wprowadzenie do języka Java

Wprowadzenie do języka Java WSNHiD, Programowanie 2 Lab. 1 [ część 1 ] Wprowadzenie do języka Java Wprowadzenie Język programowania Java jest obiektowym językiem programowania. Powstał w 1995 i od tej pory był intensywnie rozwijany.

Bardziej szczegółowo