Programowanie funkcyjne (Haskell Wprowadzenie) Kowalik Adrian
|
|
- Arkadiusz Sikorski
- 6 lat temu
- Przeglądów:
Transkrypt
1 Programowanie funkcyjne (Haskell Wprowadzenie) Kowalik Adrian
2 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
3 Programowanie Funkcyjne Odmiana programowania deklaratywnego, Program tworzy prosta bądź złożona funkcja (w sensie matematycznym), Wykonanie programu polega na obliczaniu wartości funkcji matematycznych, W czystym programowaniu funkcyjnym, raz zdefiniowana funkcja dla tych samych danych wejściowych zawsze zwróci ten sam wynik, Przykład: Fun_kolo r = 2*3.14*r
4
5 Podstawą do programowania funkcyjnego był opracowany przez Alonzo Church a Rachunek Lambda z Typami (lata 30-te XX wieku), Pierwszy język funkcyjny: Information Processing Language (IPL) (połowa lat 50-tych), Lisp (1958), Scheme (połowa lat 70-tych) ML (1973), Miranda (początek lat 80-tych), Haskell (początek lat 90-tych). F # (Microsoft) jeden z najnowszych języków funkcyjnych.
6 Mieszany język funkcyjny, Lisp Jako pierwszy przypominał dzisiejsze języki programowania, Najpopularniejsze dialekty : Common Lisp, Scheme i Clojure. (print "Hello world") (defun factorial (n) (if (<= n 1) 1 (* n (factorial (- n 1)))))
7 Scheme Powstał z Lisp u miał za zadanie go uprościć Minimalistyczny język (define hello-world (lambda () (begin (write Hello-World) (newline) (hello-world)))) (define fib (lambda (n) (cond ((= n 0) 0) ((= n 1) 1) (else (+ (fib (- n 1)) (fib (- n 2)))))))
8 ML (Meta Language) Rodzina języków o silnym statycznym typowaniu Jako jeden z pierwszych udostępniał typy polimorficzne print "Hello world!\n"; fun ins (n, [ ]) = [n] ins (n, ns as h::t) = if (n<h) then n::ns else h::(ins (n, t)) val insertionsort = List.foldr ins [ ]
9 Ocaml Wielo-paradagmatowy język programowania Wspiera dobrze programowanie funkcyjne obiektowe jak i programowanie imperatywne. print_string "Hello, world!\n";; (* komentarz *) let rec fib n = if n < 2 then n else fib (n-1) + fib (n-2) ;;
10 Miranda Pierwszy czysto funkcyjny język programowania Podobny do Haskella fib 0 = 1 fib 1 = 1 fib (n+2) = flist!(n+1) + flist!n where flist = map fib [ 0.. ] 7 Porównanie wielu języków
11 Lambda Expressions Nawet języki obiektowe takie jak C# czy Java wykorzystują wstawki programowania funkcyjnego tzw. wyrażenia lambda których celem jest wsparcie programowania wielordzeniowego oraz domknięć.
12 Haskell Język nazwany na cześć Haskella Curry ego Początkowo intensywnie rozwijany wokół ośrodka University of Glasgow (1998r). Najbardziej popularna dystrybucja : GHC (Glasgow Haskell Compiler). GHC (kompilator) + GHCi (interpreter) Haskell Platform -
13 Haskell cd. nowoczesny język czysto funkcyjny ogólnego przeznaczenia stworzony po to, aby połączyć wszystkie atuty programowania funkcyjnego w jednym eleganckim, silnym i ogólnie dostępnym języku programowania. Czysto funkcyjny nie występują zmienne ani efekty uboczne: Zmiana zmiennej Wyświetlanie na ekranie Zapis do pliku.
14 Leniwe wartościowanie wyznacza wartości argumentów funkcji co najwyżej raz i tylko wtedy, kiedy są potrzebne brak wykonywania niepotrzebnych obliczeń wydajność większa
15 przykład ax 2 + bx + c = 0 pierw(a, b, c) = if d<0 then putstrln pierwiastki urojone else (r1,r2) where r1 = e - sqrt d/ (2 * a) r2 = e + sqrt d/ (2 * a) d = b * b 4 * a * c e = - b / (2 * a)
16 przykład 2 Funkcje : cycle, repeat, listy nieskończone. Funkcja take wykorzystuje leniwe wartościowanie
17 Silne typowanie Niemożliwa niejawna konwersja brak błędów automatyczne rozpoznawanie typów
18 Sesja Haskell pozwala nam na interaktywną prace z poziomu linii poleceń interpretera. Język nie ogranicza nam wielkości liczb jedynie może być ograniczenie sprzętowe.
19 Plik zapisany w odpowiedniej składni zrozumiałej dla Haskella, zwany jest skryptem. Typowy skrypt zapisuje się w pliku z rozszerzeniem.hs. Przykład: fun1 :: Integer -> Integer fun1 x = x * (x 1) fun2 :: Integer -> Bool fun2 y = if (x>0) Then True else False Definicja składa się z dwóch części: Opisu typu funkcji - funkcja bierze jako argument liczbę całkowitą i zwraca również liczbę całkowitą (opis typu można pominąć, jeśli nie prowadzi to do niejednoznaczności). Sposobu wyliczenia wartości funkcji W wielu sytuacjach składnia Haskella pozwala obejść się bez znaków takich jak średniki czy przecinki - ich rolę spełnia odpowiedni układ tekstu.
20
21 Operatory Operatory działające na liczbach oraz operatory listowe
22 Kolejność wykonania operatorów jest określona przez priorytet operatora Dodatkowa właściwość "fixity" decyduje czy operator wiąże w lewo ("left-associative"), w prawo ("right-associative") czy równorzędnie w obu kierunkach ("non-associative"). Użycie Funkcji ma najwyższy priorytet.
23
24 Priorytety operatorów Left-associative Non-associative Right-associative 9!!. 8 ^, ^^, ** 7 *, /, `div`,`mod`, `rem`, `quot` 6 +, - 5 :, ++ 4 ==, /=, <, <=, >, >=, `elem`, `notelem` 3 && 2 1 >>, >>= 0 $, $!, `seq`
25 Definiowanie operatorów Haskell umożliwia tworzenie własnych operatorów oraz określanie sposobu w jaki mają się zachowywać. Sposób definiowania i używania operatorów dwuargumentowych opiera się na sygnaturze: a -> a -> a gdzie a jest pewnym typem, polimorficznym lub zwykłym. Przykład: Integer -> Integer -> Integer Num a => a -> a -> a
26 Obowiązuje następująca konwencja notacyjna: Jeśli nazwa funkcji jest zwykła (tzn. składa się z liter, cyfr i ewentualnie znaków podkreślenia), to funkcji tej można używać w zwykły sposób, np. div 7 4 a po ujęciu jej nazwy w odwrócone apostrofy - w notacji infiksowej, np. 7 `div` 4 Jeśli nazwa funkcji składa się z symboli, to w definicji należy ująć ją w nawiasy okrągłe np. (+). Wówczas funkcji (+) używa się w notacji infiksowej, np a po ujęciu w nawiasy - w zwykłej, np. (+)7 4
27 Podobnie jak z operatorami od zastosowanej notacji zależy tez wynik, np.: Prelude> 3 `add` 4 * 2 11 Zastosowanie add jako funkcji da jednak inny wynik: Prelude> add 3 4 * 2 14! Użycie funkcji zawsze ma najwyższy priorytet.
28 Funkcje wyższego rzędu Funkcje to podstawa Haskella. Funkcje wyższego rzędu przyjmują jako argumenty inne funkcje bądź zwracają inną funkcje. np. map funkcja [lista]
29 Składanie Funkcji Typy składanych funkcji muszą się odpowiednio zgadzać, tzn. żeby można było złożyć g.f, wynik f musi być zgodny z typem argumentu funkcji g. Złożenia funkcji możemy dokonać za pomocą operatora kropki (. ) W wielu przypadkach nie ma potrzeby jawnego zapisywania składania funkcji, mimo że w języku funkcyjnym to przecież fundamentalna operacja
30 Składanie Funkcji iter :: (Integer, Integer -> Integer) -> (Integer -> Integer) iter (0, f) x = x iter (n, f) x = f (iter (n - 1, f) x) iter :: (Integer, Integer -> Integer) -> (Integer -> Integer) iter (0, f) = id iter (n, f) = f. iter (n - 1, f)
31 Where ObliczBmi :: (RealFloat a) => a -> a -> String ObliczBmi wzrost waga wzrost / waga ^ 2 <= 18.5 = " niedowaga!" wzrost / waga ^ 2 <= 25.0 = " OK!" wzrost / waga ^ 2 <= 30.0 = " nadwaga!" otherwise = brak skali!"
32 ObliczBmi :: (RealFloat a) => a -> a -> String ObliczBmi wzrost waga bmi <= 18.5 = " niedowaga!" bmi <= 25.0 = " OK!" bmi <= 30.0 = " nadwaga!" otherwise = "brak skali! " where bmi = wzrost / waga ^ 2
33 Guard - strażnicy Odpowiednik instrukcji if else liczba a a>0 = "dodatnia" a==0 = "zero" a<0 = "ujemna duzaczymala c c >= 'a' && c <= 'z' = "Mała" c >= 'A' && c <= 'Z' = "Duża" otherwise = "to nie litera!"
34
35 Typy danych Haskell jest językiem silnie typowanym. Podstawowe typy języka Haskell, to: Int - liczby całkowite z ograniczonego zakresu [-2^29.. 2^29-1], Integer - liczby całkowite o dowolnej precyzji, Float - liczby zmiennoprzecinkowe o pojedynczej precyzji, Double - liczby zmiennoprzecinkowe o podwójnej precyzji, Char - typ znakowy (Unicode), Bool - zmienne logiczne.!! Typ każdego wyrażenia w języku Haskell możemy sprawdzić używając komendy :t lub :type.
36 Typy polimorficzne Sztywne przyporządkowanie typów funkcjom jest często nadmiernym ograniczeniem. Rozważmy przykład funkcji podnoszącej liczbę x do kwadratu: kw :: Integer -> Integer kw x = x * x Jest oczywiste, że chcielibyśmy od tej funkcji aby była polimorficzna (tj. dla każdego typu liczbowego wyglądała tak samo). Można to zrobić używając następującej definicji. kw :: Num a => a -> a kw x = x * x Polimorficzna może być nawet stała: sto :: Num a => a sto = 100 Są funkcje, gdzie ograniczanie zakresu zmiennej typowej w ogóle nie jest potrzebne, gdyż mogą działać dla dowolnego typu. Taka jest np. z funkcją iter zdefiniowaną już wcześniej: iter :: (Integer, a -> a) -> (a -> a) iter (0, f) = id iter (n, f) = f. iter (n - 1, f)
37 Klasy typów Operując typami polimorficznymi, często potrzebujemy zawęzić klasę typów, które dopuszczamy w danym kontekście. Przy definicji funkcji np. kw, podnoszącą liczbę do kwadratu, korzystaliśmy z definicji polimorficznej, w której typ argumentu i wyniku musiał pochodzić z klasy Num. Sygnatura: kw :: Num a => a -> a dopuszcza w miejscu a dowolny typ liczbowy (tzn. z klasy Num), ale musi to być ten sam typ po obydwu stronach - nie może być np. sytuacji: Float -> Integer Predefiniowane klasy typów do wykorzystania, to: Num - klasa typów liczbowych, Eq - klasa typów, dla których zdefiniowane jest porównywanie (operatory == i /=), Show - klasa typów, których wartości można wypisywać na ekranie, Enum - klasa typów wyliczeniowych (dla których muszą istnieć m.in. operacje brania poprzednika i następnika).
38 Klasa Num zdefiniowana w standardowej bibliotece Prelude ma postać: class (Eq a, Show a) => Num a where (+), (-), (*) :: a -> a -> a negate :: a -> a abs, signum :: a -> a frominteger :: Integer -> a Definicja ta mówi, że typy z klasy Num muszą spełniać założenia klas Eq i Show (w świetle języka programowania obiektowego powiedzielibyśmy, że Num jest podklasą klas Eq i Show) oraz muszą posiadać wymienione tu operacje. Konkretne instancje typów wprowadza się teraz za pomocą słowa kluczowego instance. Przykład poniżej pokazuje deklarację, która zgłasza typ Int jako instancję klasy Eq, w której do porównania służy wbudowana funkcja primeqint: instance Eq Int where (==) = primeqint
39 Klasy typów oraz ich wybrane operatory i funkcje
40 Listy Homogeniczne struktury danych. Lista pozwala na przechowywanie dowolnej liczby elementów tego samego typu. Listy są otoczone nawiasami kwadratowymi, a ich elementy oddzielone przecinkami. Przykład: Prelude> let imiona = [ Zosia, Kasia, Małgosia ] Prelude> let liczby = [3,4,5] Prelude> 2 : liczby [2,3,4,5] Prelude> 0 : 1 : 2 : liczby [0,1,2,3,4,5]
41 Język Haskell oferuje wiele funkcji operujących na listach. Dwie chyba najważniejsze z nich to head i tail, zwracające odpowiednio głowę (pierwszy element) i ogon listy (to co zostanie po usunięciu głowy). Prelude> head [1,2,3,4] 1 Prelude> tail [1,2,3,4] [2,3,4]
42 Łączenie i odwracanie list Do łączenia (konkatenacji) list służy operator ++, np. [0, 1] ++ [2, 3, 4] daje [0, 1, 2, 3, 4], [ a, b ] ++ [] ++ [ c ] daje [ a, b, c ] - co interpreter zapewne wyświetli jako abc, ab c Łączone listy muszą być oczywiście tego samego typu. Z kolei definicja prostej funkcji służącej do odwracania dowolnej listy mogłaby mieć postać: odwroc :: [a] -> [a] odwroc [] = [] odwroc (x:xs) = odwroc xs ++ [x]
43 Aplikacja zbiorowa do list Bardzo przydatną rzeczą jest operator map, który otrzymawszy funkcję i listę argumentów, aplikuje tą funkcję do poszczególnych elementów listy. Jest on zdefiniowany w następujący sposób: map :: (a -> b) -> [a] -> [b] map f [] = [] map f (x:xs) = f x : map f xs Przykładowo, możemy napisać: map (+1) [0, 1, 2] - w wyniku otrzymujemy listę: [1, 2, 3]
44 Filtrowanie Wybranie z listy tylko tych elementów, które spełniają podane kryterium, i zwrócenie ich jako nowej listy. Do filtrowania służy standardowa funkcja filter i jest ona zdefiniowana w następujący sposób: filter :: (a -> Bool) -> [a] -> [a] filter p [ ] = [ ] filter p (x:xs) = if p x then x : filter p xs else filter p xs Przykładowo: filter (>0) [ 1, 0, 1, 2] - w wyniku otrzymujemy listę: [1, 2] filter even [3, 4, 1, 6, 7, 9, 0] - w wyniku otrzymujemy listę: [4, 6, 0
45 Tworzenie list z użyciem kwantyfikatorów [ wyrażenie kwalifikator ] Kwalifikator może być generatorem lub strażnikiem (czyli warunkiem). Całość opisuje listę w podobny sposób, jak często opisuje się zbiory w matematyce, np. {x^2 x in {0, 1,, 99}, x-parzyste} w Haskellu zapisać możemy: [x*x x <- [0..99], even x] Generator ma postać x <- y, gdzie x jest zmienną lub n-tką zmiennych, a y jest wyrażeniem listowym. Dozór to po prostu wyrażenie logiczne. Przykłady kilku wyrażeń z kwalifikatorami: [(x, y) x <- [1..4], y <- [1..5]] [(x, y) x <- [1..4], y <- [1..5 x]] Zauważmy, że operację filtrowania moglibyśmy teraz zdefiniować również w następujący sposób: filter p l = [ x x <- l, p x ]
46 Listy nieskończone Jeżeli ostatni element listy nie zostanie podany, Haskell utworzy listę o "nieskończonej" długości. Jest to możliwe dzięki leniwemu wartościowaniu. Wyznaczony zostanie tylko ten element listy, który będzie w danej chwili potrzebny. Prelude>[1,2..]
47 Krotki (Tuples) Krotki to heterogeniczne struktury danych. Są wykorzystywane wtedy, kiedy wiadomo dokładnie ile elementów i jakiego typu chcemy przechować. Zmienne wewnątrz jednej krotki nie muszą (w przeciwieństwie do list) być tego samego typu. Krotkę zapisujemy podobnie jak listę, jednak zamiast nawiasów kwadratowych używamy nawiasów okrągłych. Prelude> ( Michał,17) Prelude> ( Jan, Kowalski,1980, Częstochowa, False) Krotki mają ściśle określoną liczbę elementów. Nie możliwe jest więc dołączenie czegokolwiek do krotki. Krotki zawierające dwa elementy są nazywane parami.
48 Podobnie jak listy, krotki można łączyć w struktury wielowymiarowe. Prelude> (("Jan","Kowalski",35),("Opel","Tigra",1999), 10, 1, 2008) Jest możliwość również takiego połączenia: Prelude> ( "Jaś","Kowalski",[4,4,5],[],[3,2,4],[5,5,5,4],[3,3,2],[2])
49 Dziękuje za uwagę.
- 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ół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ółowoTypy, 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ół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ółowoNazwa pochodzi od imienia znanego logika Haskell a Brooks a Curry ego ( )
PROGRAMOWANIE FUNKCYJNE HASKELL WPROWADZENIE HASKELL Nazwa pochodzi od imienia znanego logika Haskell a Brooks a Curry ego (1900-1982) Jest jednym z wielu funkcyjnych języków programowania, do których
Bardziej szczegółowoJę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ółowoElementy 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ółowoJę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ółowoWprowadzenie 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ółowo1 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ół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ółowo1 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ółowoPrezentacja 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ółowo4. Funkcje. Przykłady
4. Funkcje Przykłady 4.1. Napisz funkcję kwadrat, która przyjmuje jeden argument: długość boku kwadratu i zwraca pole jego powierzchni. Używając tej funkcji napisz program, który obliczy pole powierzchni
Bardziej szczegółowoPARADYGMATY 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ółowoProgramowanie 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ółowoPascal - wprowadzenie
Pascal - wprowadzenie Ogólne informacje o specyfice języka i budowaniu programów Filip Jarmuszczak kl. III c Historia Pascal dawniej jeden z najpopularniejszych języków programowania, uniwersalny, wysokiego
Bardziej szczegółowoMETODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się
Bardziej szczegółowoProgramowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki
Wykład 2 - podstawy języka C++ Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu. Zmienne i ich nazwy, podstawowe typy: całkowite, rzeczywiste, znakowe i napisowe. Instrukcje:
Bardziej szczegółowoProgramowanie 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λ 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ół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ółowoWEJŚ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ółowoCw.12 JAVAScript w dokumentach HTML
Cw.12 JAVAScript w dokumentach HTML Wstawienie skryptu do dokumentu HTML JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.skrypty Java- Script mogą być zagnieżdżane
Bardziej szczegółowoWstę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ółowoLibreOffice 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ół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ółowoInstytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska
Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny Technologiczny Politechnika Śląska Języki programowania z programowaniem obiektowym Laboratorium
Bardziej szczegółowoNaukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem
Moduł 1 1. Wprowadzenie do języka Python Python jest dynamicznym językiem interpretowanym. Interpretowany tzn. że kod, który napiszemy możemy natychmiast wykonać bez potrzeby tłumaczenia kodu programistycznego
Bardziej szczegółowoSwift (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ółowoJę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ółowoWstęp do programowania
Wstęp do programowania wykład 2 Piotr Cybula Wydział Matematyki i Informatyki UŁ 2012/2013 http://www.math.uni.lodz.pl/~cybula Język programowania Każdy język ma swoją składnię: słowa kluczowe instrukcje
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ółowoParadygmaty 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ółowoSwift (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ółowoInformatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018
Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy
Bardziej szczegółowoLaboratorium 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ółowoPodstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.
M. Trzebiński C++ 1/14 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IVedycja,2016r. IFJ PAN Przygotowanie środowiska pracy Niniejsza
Bardziej szczegółowoBash - wprowadzenie. Bash - wprowadzenie 1/39
Bash - wprowadzenie Bash - wprowadzenie 1/39 Bash - wprowadzenie 2/39 Czym jest bash? Rysunek : Zadanie powłoki to ukrycie wywołań systemowych Bash - wprowadzenie 3/39 Czym jest bash? Przykład polecenia:
Bardziej szczegół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ół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ółowoPrzyszł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ółowoPodstawy 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ółowoWydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 2. Programowanie komputerowe
Wydział Zarządzania AGH Katedra Informatyki Stosowanej Podstawy VBA cz. 2 Programowanie 1 Program wykładu Typy danych Wyrażenia Operatory 2 VBA Visual Basic dla aplikacji (VBA) firmy Microsoft jest językiem
Bardziej szczegółowoWstę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ółowoProgramowanie 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ółowoJAVAScript w dokumentach HTML (1)
JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript mogą być zagnieżdżane w dokumentach HTML. Instrukcje JavaScript
Bardziej szczegółowoAlgorytmika 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ółowoMATERIAŁ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ółowoProgramowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++
Programowanie Wstęp p do programowania Klasa 3 Lekcja 9 PASCAL & C++ Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany w postaci programu
Bardziej szczegółowoPodstawy 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ółowoPodstawy programowania skrót z wykładów:
Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace
Bardziej szczegółowoPodstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Bardziej szczegółowoKLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany
KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie
Bardziej szczegółowoJę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ółowoPodstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16
M. Trzebiński C++ 1/16 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IFJ PAN 6lipca2015 Uruchomienie maszyny w CC1 M. Trzebiński C++ 2/16
Bardziej szczegółowoKLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany
KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie
Bardziej szczegółowoProgramowanie 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ółowoTablice (jedno i wielowymiarowe), łańcuchy znaków
Tablice (jedno i wielowymiarowe), łańcuchy znaków wer. 8 z drobnymi modyfikacjami! Wojciech Myszka Katedra Mechaniki i Inżynierii Materiałowej 2017-04-07 09:35:32 +0200 Zmienne Przypomnienie/podsumowanie
Bardziej szczegółowoWiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java
Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java Cechy C++ Język ogólnego przeznaczenia Można programować obiektowo i strukturalnie Bardzo wysoka wydajność kodu wynikowego
Bardziej szczegółowoInformacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.
Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice. Język PHP Język interpretowalny, a nie kompilowany Powstał w celu programowania
Bardziej szczegółowoJava 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ółowoJęzyk programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program.
PYTHON Język programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program. Aby program napisany w danym języku mógł być wykonany, niezbędne
Bardziej szczegółowoMicrosoft 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ółowoHaskell 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#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }
OPERACJE WEJŚCIA / WYJŚCIA Funkcja: printf() biblioteka: wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) int printf ( tekst_sterujący, argument_1, argument_2,... ) ;
Bardziej szczegółowoInformatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki
Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu
Bardziej szczegółowoCzęść 4 życie programu
1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część
Bardziej szczegółowo2 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ół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ółowoSemantyka 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ółowoZatem 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ółowoInformatyka- wykład. Podstawy programowania w Pythonie. dr Marcin Ziółkowski
Informatyka- wykład Podstawy programowania w Pythonie dr Marcin Ziółkowski Instytut Matematyki i Informatyki Akademia im. Jana Długosza w Częstochowie 23 listopada 2015 r. JĘZYK PYTHON Język Python jest
Bardziej szczegółowoPodstawy algorytmiki i programowania - wykład 4 C-struktury
1 Podstawy algorytmiki i programowania - wykład 4 C-struktury Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy
Bardziej szczegółowoSWIFT. 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ółowoPodstawy programowania
Podstawy programowania Część piąta Proste typy danych w języku Pascal Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura
Bardziej szczegółowoWstęp do programowania
wykład 8 Agata Półrola Wydział Matematyki i Informatyki UŁ semestr zimowy 2018/2019 Podprogramy Czasami wygodnie jest wyodrębnić jakiś fragment programu jako pewną odrębną całość umożliwiają to podprogramy.
Bardziej szczegółowoHaskell. 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ółowoPascal 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ółowoWstęp do programowania
Wstęp do programowania Podstawowe konstrukcje programistyczne Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk (Wydział Fizyki) WP w. II Jesień 2014 1 / 38 Przypomnienie Programowanie imperatywne Program
Bardziej szczegółowoWstęp do programowania
Wstęp do programowania Podstawowe konstrukcje programistyczne Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk (Wydział Fizyki) WP w. II Jesień 2013 1 / 34 Przypomnienie Programowanie imperatywne Program
Bardziej szczegółowoInterpreter - EasyCompile
Akademia Podlaska w Siedlcach Siedlce, dn. 20.V.2006r. Wydział Nauk Ścisłych Instytut Informatyki Interpreter - EasyCompile Projekt z SISW Wykonali: Paweł Sawczuk Edwin Tomczuk Krzysztof Pietraszek I Inf.
Bardziej szczegółowoWstęp do Programowania, laboratorium 02
Wstęp do Programowania, laboratorium 02 Zadanie 1. Napisać program pobierający dwie liczby całkowite i wypisujący na ekran największą z nich. Zadanie 2. Napisać program pobierający trzy liczby całkowite
Bardziej szczegółowoDr 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ółowo3. Instrukcje warunkowe
. Instrukcje warunkowe Przykłady.1. Napisz program, który pobierze od użytkownika liczbę i wypisze na ekran słowo ujemna lub nieujemna, w zależności od tego czy dana liczba jest ujemna czy nie. 1 #include
Bardziej szczegółowoPowtórka algorytmów. Wprowadzenie do języka Java.
Powtórka algorytmów. Wprowadzenie do języka Java. BEGIN Readln(a); Readln(b); Suma := 0; IF Suma < 10 THEN Writeln( Suma wynosi:, Suma); ELSE Writeln( Suma większa niż 10! ) END. 1. Narysować schemat blokowy
Bardziej szczegółowoTyp użyty w deklaracji zmiennej decyduje o rodzaju informacji, a nazwa zmiennej symbolicznie opisuje wartość.
Typy danych Aby zapisać w komputerze jakąś daną, trzeba zapamiętać trzy jej podstawowe cechy: miejsce przechowywania informacji, przechowywaną wartość, rodzaj przechowywanej wartości. Typ użyty w deklaracji
Bardziej szczegółowoObiektowy 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ółowoJęzyki formalne i automaty Ćwiczenia 6
Języki formalne i automaty Ćwiczenia 6 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Wyrażenia regularne... 2 Standardy IEEE POSIX Basic Regular Expressions (BRE) oraz Extended
Bardziej szczegółowoTemat 1: Podstawowe pojęcia: program, kompilacja, kod
Temat 1: Podstawowe pojęcia: program, kompilacja, kod wynikowy. Przykłady najprostszych programów. Definiowanie zmiennych. Typy proste. Operatory: arytmetyczne, przypisania, inkrementacji, dekrementacji,
Bardziej szczegółowoJę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ółowoPodstawy i języki programowania
Podstawy i języki programowania Laboratorium 2 - wprowadzenie do zmiennych mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 23 października 2017 1 / 26 mgr inż. Krzysztof Szwarc Podstawy i
Bardziej szczegółowoImię i Nazwisko Data Ocena. Laboratorium 7
Imię i Nazwisko Data Ocena Laboratorium 7 Celem tego ćwiczenia jest pokazanie, że w MoscowML można pisać aplikacje użytkowe, np. prosty interpreter języka SQL (MLSQL) Listy i krotki Różnica pomiędzy krotkami
Bardziej szczegółowoSwift (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ółowoWykład 2 Składnia języka C# (cz. 1)
Wizualne systemy programowania Wykład 2 Składnia języka C# (cz. 1) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Budowa projektu 2 Struktura programu
Bardziej szczegółowoJAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.
IŚ ćw.8 JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript są zagnieżdżane w dokumentach HTML. Skrypt JavaScript
Bardziej szczegółowodr 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ół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ół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ółowo