Paradygmaty programowania
|
|
- Zuzanna Romanowska
- 7 lat temu
- Przeglądów:
Transkrypt
1 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 architekturą von Neumanna. WiąŜe się to z pojęciem stanu maszyny, któremu w językach tych odpowiadają zmienne i dane w obiektach. Jedno z podejść do programowania wiąŝe się z opinią, Ŝe związek z architekturą von Neumanna narzuca niepotrzebne ograniczenia na proces tworzenia oprogramowania. W zamian za to moŝna przyjąć paradygmat oparty na pojęciu funkcji w znaczeniu takim, jakie od lat przyjmuje się w matematyce. Paradygmaty programowania Cezary Bolek 2 Popularność programowania funkcyjnego W środowisku komercyjnych twórców oprogramowania języki funkcyjne nie są zbytnio rozpowszechnione z pewnymi wyjątkami. Istnieje przykładowo Lisp. Jest to jeden z języków funkcyjnych, który doczekał się sporej popularności. Uproszczonym i uporządkowanym dialektem Lispu jest Scheme. W środowiskach akademickich znane i cenione są takŝe np. języki ML wraz z pochodnymi i Haskell. Słyną m.in. ze swojego silnego typowania. Oprócz tego dość silną pozycję mają pewne języki niszowe, np. Erlang (w telekomunikacji i K (w obliczeniach finansowych. Paradygmaty programowania Cezary Bolek 3
2 Cechy charakterystyczne Nie ma pamięci, a zatem nie ma zmiennych modelujących komórki pamięci. Nie ma teŝ więc stanu funkcji. A więc nie ma efektów ubocznych... Nie ma ciągów instrukcji i iteracji, a jedynie rekurencja i wyraŝenia warunkowe. Innymi słowy, funkcja (w sensie matematycznym definiuje wartość, ale nie określa ciągu działań na wartościach w pamięci, które mogłyby ją wytworzyć. Parametr funkcji reprezentuje dowolny element z dziedziny, lecz w trakcie obliczania jest ustalony Paradygmaty programowania Cezary Bolek 4 Rachunek Lambda WaŜnym elementem podstaw matematycznych dla programowania funkcyjnego jest rachunek lambda. Wymyślony przez Alonsa Churcha w roku 1941, Pozwala m.in. zdefiniować funkcję bez nadawania jej nazwy. W klasycznym zapisie matematycznym definiując funkcję, nadaje się jej z konieczności nazwę, np.: f ( n = n f ( n 1 Natomiast wyraŝenie lambda ( λ -wyraŝenie utoŝsamiane jest z samą funkcją, np.: λ x. x - funkcja obliczająca kwadrat danego parametru. 2 Paradygmaty programowania Cezary Bolek 5 Rachunek Lambda λ -wyraŝenie zawiera: symbol λ, parametry funkcji, kropkę i wyraŝenie opisujące wartość funkcji; Niekiedy zamiast kropki stosuje się nawiasy obejmujące parametry, np. 2 λ( x x WyraŜenie takie moŝna zastosować do parametru, pisząc parametr za owym wyraŝeniem, np.: (λ x. x 2 2 (3 = 3 = 9 Paradygmaty programowania Cezary Bolek 6
3 Cel stosowania języków funkcyjnych Naśladowanie funkcji matematycznych (Czysty język funkcyjny nie ma zmiennych programista nie musi się więc martwić o pamięć. Ponadto: Konstrukcje iteracyjne (np. pętla while nie są moŝliwe bez zmiennych, trzeba stosować rekurencję Wykonanie programu funkcyjnego nie ma stanu w sensie semantyki operacyjnej lub denotacyjnej. Dla tych samych parametrów wykonanie funkcji zawsze daje ten samy wynik. Określane jest to mianem przeźroczystością odniesień Paradygmaty programowania Cezary Bolek 7 Składniki języka funkcyjnego Zbiór funkcji pierwotnych. Zbiór funkcjonałów pozwalających konstruować złoŝone funkcje z funkcji pierwotnych. Operacja aplikowania funkcji do argumentu. Pewne struktury do reprezentowania parametrów i obliczonych wyników. Paradygmaty programowania Cezary Bolek 8 Przegląd języków funkcyjnych Paradygmaty programowania Cezary Bolek 9
4 Lisp Najstarszy język funkcyjny. Prace projektowe rozpoczęły się pod koniec lat 50-tych XX wieku. Pierwotnie jego nazwę pisano duŝymi literami: LISP. Ewoluował, choć obecne koncepcje języków funkcyjnych są nieco inne. W historii istniało wiele dialektów Lispu obecnie do najpopularniejszych naleŝą dwa: Common Lisp i Scheme Paradygmaty programowania Cezary Bolek 10 Lisp obiekty danych W oryginalnym Lispie są tylko dwa moŝliwe obiekty: atomy i listy Nie są to typy w sensie języka imperatywnego Atomy to symbole (w postaci identyfikatorów lub stałe liczbowe Listy określa się przez wyszczególnienie elementów w nawiasach Listy mogą być zagnieŝdŝane Listę pustą zapisuje się jako ( Paradygmaty programowania Cezary Bolek 11 Lisp: S-wyraŜenia (Symbolic Expression Wywołania funkcji zapisywane są w Odwrotnej Notacji Polskiej, w postaci: (nazwafunkcji arg 1... arg n Definicje funkcji zapisuje się w notacji lambda, w postaci: (nazwafunkcji (LAMBDA (arg 1... arg n wyraŝenie Pierwotnie S-wyraŜeniami nazywano określone w powyŝszy sposób funkcje. Później nazwą tą objęto wszystkie struktury w Lispie dane i kod. WaŜna cecha Lispu: dane (listy i kod (wywołania funkcji mają taką samą postać. Daje to m.in. moŝliwość dynamicznego tworzenia kodu. Paradygmaty programowania Cezary Bolek 12
5 Lisp - nawiasy S-wyraŜenia implikują stosowanie wielu zagnieŝdŝonych konstrukcji opartych na nawiasach Sposób uŝycia nawiasów jest najlepiej widocznym na pierwszy rzut oka faktem pozwalający odróŝnić Lisp od innych rodzin języków Z tego powodu Lisp był często krytykowany, głównie przez programistów innych języków JednakŜe składnia oparta na S-wyraŜeniach leŝy u podstaw moŝliwości Lispu; jest niezwykle regularna, co ułatwia jej przetwarzanie przez komputer Paradygmaty programowania Cezary Bolek 13 Scheme Scheme jest odmianą Lispu. Pojawił się w połowie lat 70-tych XX wieku Jest niewielki w porównaniu z oryginalnym Lispem. Stosuje zakresy statyczne Funkcje mogą być wartościami wyraŝeń i elementami list; mogą być przekazywane jako parametry Interpreter Scheme u Ma postać nieskończonej pętli, która czyta wyraŝenie, interpretuje je i wyświetla wynik WyraŜenia są interpretowane przez funkcję EVAL Paradygmaty programowania Cezary Bolek 14 Scheme pierwotne funkcje liczbowe Są wśród nich podstawowe działania arytmetyczne Biorą dowolną liczbę argumentów, np. + dodaje wszystkie argumenty do siebie, od pierwszego argumentu odejmuje pozostałe Przy wywołaniu bez argumentów zwracają odpowiedni element neutralny 0 dla dodawania, 1 dla mnoŝenia. itp. Oprócz tego są istnieją: ABS (wartość bezwzględna, SQRT (pierwiastkowanie, REMAINDER (reszta z dzielenia, MIN, MAX inne... Paradygmaty programowania Cezary Bolek 15
6 Scheme definiowanie funkcji Program to zbiór definicji funkcji MoŜna uŝywać funkcji bez nazw, np. (LAMBDA (x (* x x Zatem poniŝsze wywołanie wyświetli wynik 36: ((LAMBDA (x (* x x 6 W powyŝszym λ-wyraŝeniu x jest zmienną związaną MoŜna związać nazwę z wartością lub z λ-wyraŝeniem za pomocą specjalnej funkcji DEFINE. W pierwszym przypadku powstają nazwane stałe (nie zmienne!, np. (DEFINE pi W drugim przypadku, jako parametry potrzebne są dwie listy: prototyp funkcji i wyraŝenie (lub wyraŝenia, z którymi nazwa jest wiązana. W tym przypadku pomija się słowo LAMBDA, np. (DEFINE (square x (* x x Parametry przekazywane są przez wartość. Paradygmaty programowania Cezary Bolek 16 Scheme funkcje do obsługi wyjścia Typowy sposób wyprowadzenia wyników programu to po prostu wyjście z interpretera, czyli wynik aplikacji funkcji EVAL do funkcji w programie Istnieje takŝe imperatywna funkcja wyjściowa, która wyświetla podane wyraŝenie (jest to właściwie jej efekt uboczny... (DISPLAY wyraŝenie Druga funkcja imperatywna to (NEWLINE Paradygmaty programowania Cezary Bolek 17 Scheme - predykaty działające na liczbach Predykaty to wyraŝenia, które mają za zadanie zwracać logiczną wartość zapytania które reprezentują w zaleŝności od podanych parametrów Dostępne są predykaty: =, <>, >, <, >=, <= EVEN? sprawdza, czy podana wartość liczbowa jest parzysta ODD? sprawdza, czy nieparzysta ZERO? sprawdza, czy wartość jest zerem NEGETIVE? sprawdza, czy podana wartość jest ujemna Wartości logiczne są zapisywane jako #F i #T Lista pusta ( interpretowana jest jako #F, a dowolna lista niepusta jako #T. Paradygmaty programowania Cezary Bolek 18
7 Scheme struktury sterujące Dwie struktury słuŝące do sterowania. Wybór jeden z dwóch zapisuje się w postaci: (IF predykat wyraŝeniet wyraŝenief Wybór jeden z wielu zapisuje się w postaci: (COND (predykat1 wyraŝenie1 (predykat2 wyraŝenie2... (predykatn wyraŝenien (ELSE wyraŝeniee Przykład: Definicja funkcji obliczającej silnię: (DEFINE (silnia n (IF (= n 0 1 (* n (silnia ( n 1 Paradygmaty programowania Cezary Bolek 19 Scheme funkcje listowe QUOTE zwraca swój parametr bez jakichkolwiek zmian (czyli bez obliczania go jako funkcji; w tej roli moŝna teŝ uŝyć jednego apostrofu, np. (QUOTE (A B C jest równowaŝne z (A B C, czyli lista (A B C Funkcja ta jest potrzebna, gdy istnieje potrzeba np. potraktowania listy jako czystych danych, a nie jako wywołanie funkcji z parametrami. UŜycie nie zacytowanej listy (A B C skutkowałoby próbą policzenia funkcji A na argumentach B i C. CAR zwraca pierwszy element (głowę podanej listy, np. (CAR (A B C zwraca A. Wywołanie CAR dla pustej listy lub atomu jest błędem. CDR zwraca część listy pozostałą po usunięciu głowy (ogon, np. (CDR (A B C zwraca (B C. Paradygmaty programowania Cezary Bolek 20 Scheme inne funkcje listowe i predykaty CONS tworzy listę z podanej głowy i ogona, tzn. wstawia pierwszy parametr jako nową głowę w liście będącej drugim parametrem, np (CONS A (B C zwraca (A B C (CONS (A B (C D zwraca ((A B C D LIST tworzy listę z dowolnej liczby parametrów. Jest to skrótowa forma o takim samym znaczeniu jak zagnieŝdŝone wywołania CONS Predykaty EQ? zwraca #T, jeśli obydwa parametry są atomami i są równe LIST? zwraca #T, jeśli parametr jest listą NULL? zwraca #T, jeśli parametr jest listą pustą Paradygmaty programowania Cezary Bolek 21
8 Lisp - przykład Funkcja sprawdzająca, czy atom (podany jak pierwszy parametr jest elementem listy (podanej jako drugi parametr. (DEFINE (member atm lst (COND ((NULL? lst ( ((EQ? atm (CAR lst #T (ELSE (member atm (CDR lst #;> (member 'a '(a b c Paradygmaty programowania Cezary Bolek 22 Scheme składanie funkcji Był to jedyny pierwotny funkcjonał w pierwotnym Lispie. Działanie: Wszelkie listy (nie cytowane za pomocą QUOTE bądź apostrofu są traktowane jako wywołania funkcji Najpierw są wyliczane ich parametry Odnosi się to rekurencyjnie do list zagnieŝdŝonych w listach Jest to w istocie właśnie składanie funkcji Przykład: CDR (CDR (A B C zwraca (C Paradygmaty programowania Cezary Bolek 23 Scheme składanie funkcji (przykład Operator aplikacji (zastosowania funkcji do wszystkich elementów listy zbiorowej moŝna zdefiniować następująco: (DEFINE (mapcar fun lst (COND ((NULL? lst ( (ELSE (CONS (fun (CAR lst (mapcar fun (CDR lst #;> (mapcar sin '( ( Paradygmaty programowania Cezary Bolek 24
9 Scheme funkcje tworzące kod Program i dane w Scheme mają taką samą strukturę To powoduje, Ŝe moŝna z łatwością dynamicznie budować kod Przykład: Przypuśćmy, Ŝe mamy listę atomów liczbowych i chcemy policzyć ich sumę. ZauwaŜmy, Ŝe operatora + nie moŝna zastosować bezpośrednio, gdyŝ wymaga on jako parametrów atomów, a nie listy. Istnieją dwie istotnie róŝne moŝliwości. Paradygmaty programowania Cezary Bolek 25 Scheme funkcje tworzące kod (przykład Wariant 1: funkcja, która dodaje po kolei wszystkie atomy (DEFINE (sumator lst (COND ((NULL? lst 0 (ELSE (+ (CAR lst (sumator (CDR lst Wariant 2: zbudowanie odpowiedniego wywołania dla operatora + za pomocą CONS i policzenie go poprzez wywołanie funkcji EVAL: (DEFINE (sumator lst (COND ((NULL? lst 0 (ELSE (EVAL (CONS + lst #;> (sumator1 '( Scheme wiązanie nazwy a wartością Funkcja LET Składnia wywołania jest następująca: (LET ( (nazwa1 wyraŝenie1 (nazwa2 wyraŝenie2... (nazwan wyraŝenien ciało Wywołanie powoduje związanie podanych nazw z odpowiednimi wyraŝeniami oraz obliczenie ciała Funkcja LET jest przydatna jako pewien sposób modularyzacji obliczeń Paradygmaty programowania Cezary Bolek 27
10 Scheme funkcja LET (przykład Funkcja obliczająca iloraz sum dwóch list. Zwraca 0, jeśli druga suma (dzielnik jest zerem (DEFINE (iloraz x y (LET ( (licznik (sumator x (mianownik (sumator y (IF (ZERO? mianownik 0 (/ licznik mianownik #;> (iloraz '( '( /5 Paradygmaty programowania Cezary Bolek 28 Język ML ML to język, który w swoim czasie był typowym akademickim przykładem języka funkcyjnego Stosuje zakresy statyczne. Jest silnie typowany, bez niejawnych konwersji, za to stosuje niejawne nadawanie typów. WyraŜenia arytmetyczne zapisywane w tradycyjnej postaci infiksowej. Zawiera obsługę wyjątków. Paradygmaty programowania Cezary Bolek 29 ML funkcje Deklaracje mają postać fun nazwa (parametry = ciało; Przykładowo: fun square (x: int: int = x * x; Funkcje zawierające działania arytmetyczne nie mogą być polimorficzne Funkcje zawierające tylko operacje na listach, operatory n-tek i porównania (= oraz <> mogą być polimorficzne Paradygmaty programowania Cezary Bolek 30
11 ML funkcje MoŜna stosować konstrukcję if-then-else, np. fun fact(n: int: int = if n = 0 then 1 else n * fact(n 1; Alternatywą jest stosowane często dopasowywanie do wzorca, np. fun fact(0 = 1 fact(n: int: int = n * fact(n 1; Paradygmaty programowania Cezary Bolek 31 ML listy Listy zapisywane są w nawiasach kwadratowych, np. [3, 2, 7] Lista pusta zapisywana jest jako [] lub nil Konstruktor listowy (odpowiednik CONS ::, np. 1 :: [3, 2, 7] daje [1, 3, 2, 7] Elementy listy muszą być tego samego typu Funkcje wydzielające głowę i ogon (odpowiedniki CAR i CDR: to hd oraz tl Operator :: moŝe być uŝywany w dopasowaniach do wzorca, np.: fun length([] = 0 length(h :: t = 1 + length(t; Paradygmaty programowania Cezary Bolek 32 ML przykład Funkcja łącząca dwie listy. Zrealizowana jako rekurencyjna, z dopasowywaniem za pomocą operatora :: fun append([], lst = lst append(h :: t, lst = h :: append(t, lst; Paradygmaty programowania Cezary Bolek 33
12 Haskell Podobnie jak ML, stosuje zakresy statyczne Jest silnie typowany Stosuje obliczanie leniwe, tzn. nie oblicza podwyraŝeń, dopóki nie jest to konieczne Zawiera ciekawe operacje listotwórcze Czysto funkcyjny, bez efektów ubocznych. Paradygmaty programowania Cezary Bolek 34 Haskell funkcje Definicje funkcji są postaci np. fact 0 = 1 fact n = n * fact (n 1 W powyŝszym przykładzie stosowane jest dopasowywanie. Alternatywnie moŝna uŝyć dozorów, np. fact n n == 0 = 1 n > 0 = n * fact (n 1 PowyŜsza forma to wyraŝenie warunkowe. MoŜe zawierać część opatrzoną klauzulą otherwise, obliczaną wówczas, gdy wszystkie dozory są fałszywe. Paradygmaty programowania Cezary Bolek 35 Haskell listy Listy zapisywane są w nawiasach kwadratowych, np. [3, 2, 7] Lista pusta zapisywana jest jako [] Listy moŝna łączyć za pomocą operatora ++, np. [1, 3] ++ [2,7] daje [1, 3, 2, 7] Operator # podaje długość listy Za pomocą operatora.. moŝna określać ciągi arytmetyczne, np. [1..5] daje [1, 2, 3, 4, 5] [3, 6..15] daje [3, 6, 9, 12, 15] Paradygmaty programowania Cezary Bolek 36
13 Haskell listy Konstruktor listowy (odpowiednik CONS - : np. 1 : [3, 2, 7] daje [1, 3, 2, 7] Operator : moŝe być uŝywany w dopasowaniach, np.: iloczyn [] = 1 iloczyn (a : x = a * iloczyn x Paradygmaty programowania Cezary Bolek 37 Haskell operacje listotwórcze Jest to metoda opisu list, które reprezentują zbiory. Ogólna postać: [ wyraŝenie kwalifikator ] Przykładowo: [ n * n n [1..20] ] definiuje listę kwadratów liczb od 1 do 20. Innymi słowy lista wszystkich n*n po n z zakresu od 1 do 20 Kwalifikatorem moŝe być generator (jak w powyŝszym przykładzie lub warunek, np.: dzielniki n = [ i i <- [1..n div 2], n mod i == 0] Przykład implementacja sortowania szybkiego: sort [] = [] sort (h:t = sort [b b<-t, b<=h] ++ [h] ++ sort [b b<-t, b>h] Paradygmaty programowania Cezary Bolek 38 Haskell obliczanie leniwe Parametry funkcji obliczane są tylko wtedy, gdy jest to potrzebne do obliczenia owej funkcji Jeśli funkcja ma np. dwa parametry, a w konkretnym wywołaniu pierwszy parametr nie jest potrzebny w obliczeniach, odpowiedni parametr aktualny nie będzie obliczany Jeśli potrzebna jest tylko część parametru, tylko ta część zostanie obliczona Pozwala to definiować i stosować struktury nieskończone Struktury takie nie są faktycznie tworzone, lecz mogą być wykorzystane w leniwych obliczeniach Trzeba oczywiście uwaŝać, by nie zmusić Haskella do nieskończonych obliczeń Paradygmaty programowania Cezary Bolek 39
Paradygmaty programowania
Paradygmaty programowania Jacek Michałowski, Piotr Latanowicz 15 kwietnia 2014 Jacek Michałowski, Piotr Latanowicz () Paradygmaty programowania 15 kwietnia 2014 1 / 12 Zadanie 1 Zadanie 1 Rachunek predykatów
Bardziej szczegół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ółowoElementy języka Scheme
Elementy języka Scheme Historia języka Lisp Historia języka Lisp Wyrażenia i ewaluacja wyrażeń Identyfikatory i wyrażenie let Wyrażenia lambda Definicje globalne Wyrażenia warunkowe Przypisanie Kontynuacje
Bardziej szczegół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ół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ółowoJęzyki programowania deklaratywnego
Katedra Inżynierii Wiedzy laborki 14 Języki deklaratywne Główne różnice między paradygmatem deklaratywnym a imperatywnym Omów główne cechy paradygmatu programowania w logice na przykładzie Prologa Główne
Bardziej szczegółowoElementy języka Scheme
Elementy języka Scheme Historia języka Lisp Wyrażenia i ewaluacja wyrażeń Identyfikatory i wyrażenie let Wyrażenia lambda Definicje globalne Wyrażenia warunkowe Przypisanie Kontynuacje Historia języka
Bardziej szczegół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ółowoAlgorytm. a programowanie -
Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik
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ółowoWstęp do Programowania Obiektowego. Wykład 13 Paradygmaty. Składnia i semantyka.
Wstęp do Programowania Obiektowego Wykład 13 Paradygmaty. Składnia i semantyka. 1 PRZEGLĄD PODSTAWOWYCH PARADYGMATÓW 2 Cztery podstawowe paradygmaty 1. Programowanie imperatywne. 2. Programowanie funkcyjne.
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ółowoForPascal Interpreter języka Pascal
Akademia Podlaska w Siedlcach Wydział Nauk Ścisłych Instytut Informatyki ForPascal Interpreter języka Pascal Przedmiot: Sieci i Systemy Wirtualne Informatyka IV Prowadzący: dr Krzysztof Trojanowski Grupa:
Bardziej szczegółowoMyśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści
Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop. 2017 Spis treści Przedmowa 11 1. Jak w programie 21 Czym jest program? 21 Uruchamianie interpretera języka Python 22 Pierwszy
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ółowoREKURENCJA W JĘZYKU HASKELL. Autor: Walczak Michał
REKURENCJA W JĘZYKU HASKELL Autor: Walczak Michał CZYM JEST REKURENCJA? Rekurencja zwana rekursją, polega na wywołaniu przez funkcję samej siebie. Algorytmy rekurencyjne zastępują w pewnym sensie iteracje.
Bardziej szczegółowoJęzyki i paradygmaty programowania. I. Wprowadzenie
Języki i paradygmaty programowania I. Wprowadzenie O źródłach wykład został przygotowany w ogromnej części w oparciu o serwis http://wazniak.mimuw.edu.pl/ (zgodnie z licencją serwisu) inne źródła: Wikipedia:
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ółowoLaboratorium nr 5. Temat: Funkcje agregujące, klauzule GROUP BY, HAVING
Laboratorium nr 5 Temat: Funkcje agregujące, klauzule GROUP BY, HAVING Celem ćwiczenia jest zaprezentowanie zagadnień dotyczących stosowania w zapytaniach języka SQL predefiniowanych funkcji agregujących.
Bardziej szczegółowoProgramowanie 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ół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ółowoProgramowanie obiektowo zorientowane. Mirosław Głowacki Wykład w języku C++
Programowanie obiektowo zorientowane Mirosław Głowacki Wykład w języku C++ Literatura B. Meyer, Programowanie zorientowane obiektowo, Helion Gliwice, 2005 J. Grębosz, Symfonia C++ Standard, Oficyna Kallimach,
Bardziej szczegółowoProgramowanie w języku C++ Podstawowe paradygmaty programowania
Programowanie w języku C++ Podstawowe paradygmaty programowania Mirosław Głowacki 1 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej Katedra
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ółowoJęzyk programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści
Język programowania DELPHI / Andrzej Marciniak. Poznań, 2012 Spis treści Przedmowa 11 Przyjęta notacja 13 Rozdział 1. Wprowadzenie 15 1.1. Ogólne zasady programowania zorientowanego obiektowo 15 1.2. Historia
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ółowoInstrukcja warunkowa i złoŝona.
Instrukcja warunkowa i złoŝona. Budowa pętli warunkowej. JeŜeli mielibyśmy przetłumaczyć instrukcję warunkową to brzmiałoby to mniej więcej tak: jeŝeli warunek jest spełniony, to wykonaj jakąś operację
Bardziej szczegółowoPodstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
programowania Wykład: 4 Instrukcje sterujące, operatory 1 programowania w C++ Instrukcje sterujące 2 Pętla for for ( instrukcja_ini ; wyrazenie_warunkowe ; instrukcja_krok ) tresc_petli ; instrukcja_ini
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ół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ół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ół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ółowoJęzyki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.
Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Typy c.d. 2 Typy zmiennych Instrukcja typedef -
Bardziej szczegół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ół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ółowoProgramowanie deklaratywne
Programowanie deklaratywne Artur Michalski Informatyka II rok Plan wykładu Wprowadzenie do języka Prolog Budowa składniowa i interpretacja programów prologowych Listy, operatory i operacje arytmetyczne
Bardziej szczegółowoDefinicje. Algorytm to:
Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi
Bardziej szczegółowoPodstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk
Podstawy informatyki Informatyka stosowana - studia niestacjonarne Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w Krakowie, Materiał
Bardziej szczegółowoProgramowanie w Logice Przykłady programów. Przemysław Kobylański
Programowanie w Logice Przykłady programów Przemysław Kobylański Język Imperator 1 jest prostym językiem imperatywnym. Jego składnię opisuje poniższa gramatyka BNF: PROGRAM ::= PROGRAM ::= INSTRUKCJA ;
Bardziej szczegółowoJęzyki skryptowe w programie Plans
Języki skryptowe w programie Plans Warsztaty uŝytkowników programu PLANS Kościelisko 2010 Zalety skryptów Automatyzacja powtarzających się czynności Rozszerzenie moŝliwości programu Budowa własnych algorytmów
Bardziej szczegółowoWYRAŻENIA ALGEBRAICZNE
WYRAŻENIA ALGEBRAICZNE Wyrażeniem algebraicznym nazywamy wyrażenie zbudowane z liczb, liter, nawiasów oraz znaków działań, na przykład: Symbole literowe występujące w wyrażeniu algebraicznym nazywamy zmiennymi.
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ółowoMETODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH
METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH ĆWICZENIE NR 9 WYRAŻENIA LOGICZNE, INSTRUKCJE WARUNKOWE I INSTRUKCJE ITERACYJNE W PROGRAMIE KOMPUTEROWYM MATLAB Dr inż. Sergiusz Sienkowski ĆWICZENIE NR
Bardziej szczegółowoLaboratorium Programowanie Obrabiarek CNC. Nr H7
1 Politechnika Poznańska Instytut Technologii Mechanicznej Laboratorium Programowanie Obrabiarek CNC Nr H7 Programowanie z wykorzystaniem parametrów i funkcji matematycznych Opracował: Dr inŝ. Wojciech
Bardziej szczegółowoWstę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ół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ół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ółowoInstrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.
Instrukcje warunkowe i skoku. Spotkanie 2 Dr inż. Dariusz JĘDRZEJCZYK Wyrażenia i operatory logiczne Instrukcje warunkowe: if else, switch Przykłady 11/3/2016 AGH, Katedra Informatyki Stosowanej i Modelowania
Bardziej szczegółowoPodstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1 Tablice wielowymiarowe C umożliwia definiowanie tablic wielowymiarowych najczęściej stosowane
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 2016/2017 Outline Moduły i bariery abstrakcji 1 Moduły i bariery abstrakcji Moduły co to jest i po co to jest? Duży system dzielimy na mniejsze, łatwiejsze
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ółowoPodstawy Programowania Algorytmy i programowanie
Podstawy Programowania Algorytmy i programowanie Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Algorytm Algorytm w matematyce, informatyce, fizyce, itp. lub innej dziedzinie życia,
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ółowoPodstawy programowania 2. Temat: Funkcje i procedury rekurencyjne. Przygotował: mgr inż. Tomasz Michno
Instrukcja laboratoryjna 6 Podstawy programowania 2 Temat: Funkcje i procedury rekurencyjne Przygotował: mgr inż. Tomasz Michno Wstęp teoretyczny Rekurencja (inaczej nazywana rekursją, ang. recursion)
Bardziej szczegółowoMETODY OPISU ALGORYTMÓW KOMPUTEROWYCH
Wydział Elektryczny Katedra Elektrotechniki Teoretycznej i Metrologii Instrukcja do pracowni z przedmiotu Podstawy Informatyki Kod przedmiotu: TS1C 100 003 Ćwiczenie pt. METODY OPISU ALGORYTMÓW KOMPUTEROWYCH
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ółowoPodstawy Programowania C++
Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:
Bardziej szczegółowoDariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego
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ółowoInformacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char
Programowanie C++ Informacje wstępne #include - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char = -128 do 127, unsigned char = od
Bardziej szczegółowoJĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 6 1 SPECYFIKATOR static Specyfikator static: Specyfikator ten powoduje, że zmienna lokalna definiowana w obrębie danej funkcji nie jest niszczona
Bardziej szczegółowoJęzyk C, tablice i funkcje (laboratorium, EE1-DI)
Język C, tablice i funkcje (laboratorium, EE1-DI) Opracował: Tomasz Mączka (tmaczka@kia.prz.edu.pl) Wstęp (tablice) Tablica to uporządkowany ciąg elementów tego samego typu, zajmujących ciągły obszar pamięci.
Bardziej szczegółowoWHILE (wyrażenie) instrukcja;
INSTRUKCJE ITERACYJNE WHILE, DO WHILE, FOR Instrukcje iteracyjne pozwalają powtarzać daną instrukcję programu określoną liczbę razy lub do momentu osiągnięcia określonego skutku. Pętla iteracyjna while
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ółowoProjekt 4: Programowanie w logice
Języki Programowania Projekt 4: Programowanie w logice Środowisko ECL i PS e W projekcie wykorzystane będzie środowisko ECL i PS e. Dostępne jest ono pod adresem http://eclipseclp.org/. Po zainstalowaniu
Bardziej szczegółowoI. KARTA PRZEDMIOTU CEL PRZEDMIOTU WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI EFEKTY KSZTAŁCENIA
I. KARTA PRZEDMIOTU 1. Nazwa przedmiotu: PODSTAWY PROGRAMOWANIA. Kod przedmiotu: Ovi1 3. Jednostka prowadząca: Wydział Mechaniczno-Elektryczny 4. Kierunek: Mechatronika 5. Specjalność: Eksploatacja Systemów
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ółowo1 Wprowadzenie do algorytmiki
Teoretyczne podstawy informatyki - ćwiczenia: Prowadzący: dr inż. Dariusz W Brzeziński 1 Wprowadzenie do algorytmiki 1.1 Algorytm 1. Skończony, uporządkowany ciąg precyzyjnie i zrozumiale opisanych czynności
Bardziej szczegółowoJAVAScript w dokumentach HTML - przypomnienie
Programowanie obiektowe ćw.1 JAVAScript w dokumentach HTML - przypomnienie JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript są zagnieżdżane w
Bardziej szczegółowoPODSTAWY SZTUCZNEJ INTELIGENCJI
Katedra Informatyki Stosowanej Politechnika Łódzka PODSTAWY SZTUCZNEJ INTELIGENCJI Laboratorium PROGRAMOWANIE SYSTEMÓW EKSPERTOWYCH Opracowanie: Dr hab. inŝ. Jacek Kucharski Dr inŝ. Piotr Urbanek Cel ćwiczenia
Bardziej szczegół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ółowoALGORYTMY Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny
ALGORYMY Algorytm to przepis; zestawienie kolejnych kroków prowadzących do wykonania określonego zadania; to uporządkowany sposób postępowania przy rozwiązywaniu zadania, problemu, z uwzględnieniem opisu
Bardziej szczegółowoTechnologie informacyjne - wykład 12 -
Zakład Fizyki Budowli i Komputerowych Metod Projektowania Instytut Budownictwa Wydział Budownictwa Lądowego i Wodnego Politechnika Wrocławska Technologie informacyjne - wykład 12 - Prowadzący: Dmochowski
Bardziej szczegółowoProgramowanie funkcyjne Wykład 13. Siła wyrazu rachunku lambda
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ół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ółowoOperacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5.
Operatory w Javie W Javie występują następujące typy operatorów: Arytmetyczne. Inkrementacji/Dekrementacji Przypisania. Porównania. Bitowe. Logiczne. Pozostałe. Operacje wykonywane są na operandach (argumentach
Bardziej szczegółowoLaboratorium nr 8. Temat: Podstawy języka zapytań SQL (część 2)
Laboratorium nr 8 Temat: Podstawy języka zapytań SQL (część 2) PLAN LABORATORIUM: 1. Sortowanie. 2. Warunek WHERE 3. Eliminacja powtórzeń - DISTINCT. 4. WyraŜenia: BETWEEN...AND, IN, LIKE, IS NULL. 5.
Bardziej szczegółowo- 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ół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ółowoPython wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA
Python wprowadzenie Warszawa, 24 marca 2017 Python to język: nowoczesny łatwy w użyciu silny można pisać aplikacje Obiektowy klejący może być zintegrowany z innymi językami np. C, C++, Java działający
Bardziej szczegółowo1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji.
Temat: Technologia informacyjna a informatyka 1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji. Technologia informacyjna (ang.) Information Technology, IT jedna
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ółowoZmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc.
Zmienne powłoki Zmienne powłoki (shell variables) to tymczasowe zmienne, które mogą przechowywać wartości liczbowe lub ciągi znaków. Związane są z powłoką, Przypisania wartości do zmiennej następuje poprzez
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ółowoRedis, skrypty w języku Lua
edis, skrypty w języku Lua 1/15 Redis, skrypty w języku Lua Technologie Zarządzania Treścią dr inż. Robert Perliński rperlinski@icis.pcz.pl Politechnika Częstochowska Instytut Informatyki Teoretycznej
Bardziej szczegółowoJęzyki formalne i techniki translacji
Języki formalne i techniki translacji Laboratorium - Projekt Termin oddania: ostatnie zajęcia przed 17 stycznia 2016 Wysłanie do wykładowcy: przed 23:59 28 stycznia 2016 Używając BISON-a i FLEX-a napisz
Bardziej szczegółowoInformacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;
Klasy w C++ są bardzo ważnym narzędziem w rękach programisty. Klasy są fundamentem programowania obiektowego. Z pomocą klas będziesz mógł tworzyć lepszy kod, a co najważniejsze będzie on bardzo dobrze
Bardziej szczegółowoZapis algorytmów: schematy blokowe i pseudokod 1
Zapis algorytmów: schematy blokowe i pseudokod 1 Przed przystąpieniem do napisania kodu programu należy ten program najpierw zaprojektować. Projekt tworzącego go algorytmu może być zapisany w formie schematu
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ółowoPARADYGMATY PROGRAMOWANIA Wykład 4
PARADYGMATY PROGRAMOWANIA Wykład 4 Metody wirtualne i polimorfizm Metoda wirualna - metoda używana w identyczny sposób w całej hierarchii klas. Wybór funkcji, którą należy wykonać po wywołaniu metody wirtualnej
Bardziej szczegółowoPodstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń.
Podstawy programowania Programowanie wyrażeń 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń. W językach programowania są wykorzystywane
Bardziej szczegółowoKOTLIN. 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ółowoGramatyki atrybutywne
Gramatyki atrybutywne, część 1 (gramatyki S-atrybutywne Teoria kompilacji Dr inŝ. Janusz Majewski Katedra Informatyki Gramatyki atrybutywne Do przeprowadzenia poprawnego tłumaczenia, oprócz informacji
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ółowoProgramowanie w Baltie klasa VII
Programowanie w Baltie klasa VII Zadania z podręcznika strona 127 i 128 Zadanie 1/127 Zadanie 2/127 Zadanie 3/127 Zadanie 4/127 Zadanie 5/127 Zadanie 6/127 Ten sposób pisania programu nie ma sensu!!!.
Bardziej szczegółowoWykresy i interfejsy użytkownika
Wrocław, 07.11.2017 Wstęp do informatyki i programowania: Wykresy i interfejsy użytkownika Wydział Matematyki Politechniki Wrocławskiej Andrzej Giniewicz Dzisiaj na zajęciach... Instrukcje sterujące Biblioteka
Bardziej szczegółowoProgramowanie w języku Swift : Big Nerd Ranch guide / Matthew Mathias, John Gallagher. Gliwice, cop Spis treści
Programowanie w języku Swift : Big Nerd Ranch guide / Matthew Mathias, John Gallagher. Gliwice, cop. 2017 Spis treści Wprowadzenie 13 Poznawanie języka Swift 13 Dokąd zmierza Objective-C? 13 Przygotowania
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ółowo