Definicje wyższego poziomu
|
|
- Michał Skrzypczak
- 6 lat temu
- Przeglądów:
Transkrypt
1 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 błędzie (define proc1 (lambda (x y) (proc2 y x)) LISP 1
2 Definicje wyższego poziomu Próba zastosowania proc1 przed definicją proc2 spowoduje wystąpienie błędu Przykładowe utworzenie proc2 i wywołanie funkcji proc1 (define proc2 cons) (proc1 'a 'b) (b. a) LISP 2
3 Definicje wyższego poziomu Scheme akceptuje założenie o zdefiniowaniu proc2 w innym miejscu kodu programu Nie uruchamianie proc1 przed zdefiniowaniem proc2 nie generuje błędu Definicje funkcji mogą byd umieszczane w dowolnej kolejności Użyteczny mechanizm do bardziej czytelnego pisania programów i organizacji w pliku definicji funkcji LISP 3
4 Wyrażenie if ma postad: (if test consequent alternative) gdzie: consequent wyznaczane wyrażenie jeżeli test jest prawdą alternative oceniane wyrażenie jeżeli test jest fałszem LISP 4
5 Rozważmy funkcje modulus Jeżeli argument n jest ujemny, modulus zwraca n, w przeciwnym przypadku zwracane jest n (define modulus (lambda (n) (if (< n 0) (- 0 n) n))) (modulus 77) 77 (modulus -77) 77 LISP 5
6 Inne sposoby definicji funkcji modulus (define modulus (lambda (n) (if (>= n 0) n (- 0 n)))) (define modulus (lambda (n) (if (not (< n 0)) n (- 0 n)))) LISP 6
7 (define modulus (lambda (n) (if (or (> n 0) (= n 0)) n (- 0 n)))) (define modulus (lambda (n) (if (= n 0) 0 (if (< n 0)(- 0 n) n)))) (define modulus (lambda (n) ((if (>= n 0) + -)0 n))) LISP 7
8 if jest formą składniową nie procedurą Rozważmy funkcję reciprocal (define reciprocal (lambda (n) (if (= n 0) "oops!" (/ 1 n)))) LISP 8
9 Forma składniowa or działa podobnie jak if Ogólna postad wyrażenia or (or exp...) Wartośd wyrażenia (or)jest fałszem Każde exp jest oceniane do jednej z wartości: a) jedno z wyrażeo jest prawdą (#t) b) brak wyrażeo w ciele formy if (#f) LISP 9
10 Wartośd wyrażenia or jest wartością ostatniego podwyrażenia - (a) Wiele możliwych obiektów dla wartości prawdy Zwykle, wartośd wyrażenia testowanego jest jedną z dwóch obiektów #t dla prawdy lub #f dla fałszu (< -1 0) #t (> -1 0) #f LISP 10
11 Obiekty Scheme-a mogą przyjmowad wartośd prawdy lub fałszu: w wyrażeniach warunkowych w przypadku stosowania procedury not Tylko obiekt #f posiada wartośd fałszu Pozostałe obiektu mają wartośd prawdy (if #t 'true 'false) true (if #f 'true 'false) false LISP 11
12 (if '() 'true 'false) true (if 1 'true 'false) true (if '(a b c) 'true 'false) true (not #t) #f (not "false") #f (not #f) #t (or) #f (or #f) #f (or #f #t) #t (or #f 'a #f) a LISP 12
13 and forma składniowa podobna do formy or Wyrażenie and jest prawdą jeżeli wszystkie podwyrażenia mają wartośd #t Wyrażenie (and) jest zawsze prawdziwe Podwyrażenia są oceniane do jednej z wartości: brak podwyrażeo w ciele formy - #t wartośd podwyrażenia jest fałszem Wartośd wyrażenia and jest wartością ostatniego ocenianego podwyrażenia LISP 13
14 Przykład. Użycie and w funkcji reciprocal (define reciprocal (lambda (n) (and (not (= n 0)) (/ 1 n)))) (reciprocal 3) 1/3 (reciprocal 0.5) 2.0 (reciprocal 0) #f Wartość - #f jeżeli n jest zerem w przeciwnym wypadku 1/n LISP 14
15 Predykaty =, <, >, <=, >= Predykat jest procedurą, która odpowiada na specyficzne pytania dotyczące argumentu i zwraca jedną z dwóch wartości #t or #f Nazwy predykatów zakooczone są znakiem (? ) Zwykłe predykaty relacji są wyjątkiem od powyższej reguły LISP 15
16 Nie wszystkie predykaty wymagają argumentów w postaci liczb Predykat null? jest prawdą jeżeli jego argument jest listą pustą () Przykładowo: (null? '()) #t (null? 'abc) #f (null? '(x y z)) #f (null? (cdddr '(x y z))) #t LISP 16
17 Problem z wyrażeniem(cdr '()) Interpreter Scheme-z informuje o błędzie Definicja lisp-cdr rozwiązuje ów problem (define lisp-cdr (lambda (x) (if (null? x) '() (cdr x)))) (lisp-cdr '(a b c)) (b c) (lisp-cdr '(c)) () (lisp-cdr '()) () LISP 17
18 Predykat eqv? wymaga dwóch argumentów Jeżeli dwa argumenty są równoważne prawda W przeciwnym wypadku eqv? zwraca fałsz Przykładowo: (eqv? 'a 'a) #t (eqv? 'a 'b) #f (eqv? #f #f) #t (eqv? #t #t) #t (eqv? #f #t) #f (eqv? 3 3) #t (eqv? 3 2) #f LISP 18
19 Inne przykłady (let ((x "Hi Mom!")) (eqv? x x)) #t (let ((x (cons 'a 'b))) (eqv? x x)) #t (eqv? (cons 'a 'b) (cons 'a 'b)) #f LISP 19
20 Predykaty typu zwracające prawdę lub fałsz: pair?, symbol?, number?, string? Predykat pair? zwraca prawdę tylko jeżeli jego argument jest parą (pair? '(a. c)) #t (pair? '(a b c)) #t (pair? '()) #f (pair? 'abc) #f (pair? "Hi Mom!") #f (pair? ) #f LISP 20
21 Predykat typu jest użyteczny do określania czy stosowany argument jest odpowiedniego typu Przykładowo: (define reciprocal (lambda (n) (if (and (number? n) (not (= n 0))) (/ 1 n) "oops!"))) (reciprocal 2/3) 3/2 (reciprocal 'a) "oops!" LISP 21
22 Rozważmy inne wyrażenie warunkowe cond często stosowane zamiast if cond (podobne do if) pozwala na użycie wielu testów i alternatywnych wyrażeo Wyrażenie cond posiada ogólną formę: (cond (test exp)... (else exp)) LISP 22
23 Rozważmy definicje funkcji sign zwracającej: -1 dla ujemnych argumentów +1 dla dodatnich argumentów 0 dla zera (define sign (lambda (n) (if (< n 0) -1 (if (> n 0) +1 0)))) LISP 23
24 Dwa wyrażenia if mogą byd zastąpione przez pojedyncze wyrażenie cond: (define sign (lambda (n) (cond ((< n 0) -1) ((> n 0) +1) (else 0)))) LISP 24
25 Pominięcie else zwiększa przejrzystośd kodu Nowa wersja funkcji sign (define sign (lambda (n) (cond ((< n 0) -1) ((> n 0) +1) ((= n 0) 0)))) Definicja sign nie zależy od kolejności testowanych warunków LISP 25
26 Przykładowa procedura obliczająca podatek dla danych dochodów w skali progresywnej z progami 10000, 20000, and euro (define income-tax (lambda (income) (cond ((<= income 10000) (* income.05)) ((<= income 20000) (+ (* (- income 10000).08) )) ((<= income 30000) (+ (* (- income 20000).13) )) (else (+ (* (- income 30000).21) ))))) LISP 26
27 Przykładowe wywołania: (income-tax 5000) (income-tax 15000) (income-tax 25000) (income-tax 50000) Ważny kierunek przeprowadzania testu od lewej do prawej i od góry do dołu LISP 27
28 Prosta rekurencja Q: Jak wykonad powtórnie wyrażenie: dla wszystkich elementów listy dla liczb np. od 1 do 10? A: Realizacja za pomocą rekurencji Rekurencja jest prostą koncepcją zastosowania procedury w procedurze LISP 28
29 Prosta rekurencja Rekurencyjna procedura jest procedurą zastosowaną do samej siebie Najprostsza rekurencyjna procedura: (define goodbye (lambda () (goodbye))) (goodbye) Procedura nie zwraca wyniku ze względu na nieskooczone wywołanie LISP 29
30 Prosta rekurencja Rekurencyjne procedury powinny mied co najmniej dwa podstawowe elementy: przypadek bazowy krok rekurencyjny Przypadek bazowy kooczy rekurencję dając procedurze wartośd Krok rekurencyjny daje wartośd pod względem wartości zastosowanej procedury do innego argumentu LISP 30
31 Prosta rekurencja Problem: znalezienie funkcji wyznaczającej długośd listy w sposób rekurencyjny Argument bazowy rekursji to lista pusta Długośd pustej listy wynosi zero Przypadek bazowy powinien zwrócid zerową wartośd dla listy pustej W celu zbliżania się do listy pustej krok rekurencji dotyczy ogona listy (cdr) LISP 31
32 Prosta rekurencja Krok rekurencji daje wartośd o jeden więcej niż długośd ogona listy (cdr) (define length (lambda (ls) (if (null? ls) 0 (+ (length (cdr ls)) 1)))) (length '()) 0 (length '(a)) 1 (length '(a b)) 2 LISP 32
33 Prosta rekurencja Śledzenie kolejnych kroków procedury rekurencyjnej length '(a b c d)) (length (a b c d)) (length (b c d)) (length (c d)) (length (d)) (length ()) LISP 33
34 Prosta rekurencja Wcięcia reprezentują poziom zagnieżdżenia procedury Linie pionowe odpowiadają graficznie wartościom wywołao rekurencyjnych Każde wywołanie funkcji długośd powoduje zmniejszenie listy aż do listy pustej Wartośd dla listy pustej wynosi 0 a następnie każdy zewnętrzny poziom dodaje 1 do otrzymania ostatecznej wartości LISP 34
35 Prosta rekurencja Rozważmy procerdurę list-copy zwracająca kopie listy będącej jej argumentem list-copy zwraca nową listę zawierającą elementy (nie pary) starej listy Tworzenie kopi listy ma na celu zachowanie oryginału, który może podlegad dalej zmianie (list-copy '()) () (list-copy '(a b c)) (a b c) LISP 35
36 Definicja list-copy Prosta rekurencja (define list-copy (lambda (ls) (if (null? ls) '() (cons (car ls) (list-copy (cdr ls)))))) list-copy łączy głowę listy z wartościami rekurencyjnego wywołania LISP 36
37 Prosta rekurencja Możliwośd zdefiniowania więcej niż jednego przypadku bazowego Procedura memv ma 2 argumenty - obiekt i lista memv zwraca: podlistę (ogon) którego pierwszy element jest równy obiektowi #f jeżeli obiekt nie został znaleziony Wartości memv - używane jako lista lub jako wartośd prawdy w wyrażeniach warunkowych LISP 37
38 Prosta rekurencja (define memv (lambda (x ls) (cond ((null? ls) #f) ((eqv? (car ls) x) ls) (else (memv x (cdr ls)))))) Pierwszy cond testuje bazowy przypadek () Obiekt nie jest elementem listy #f Drugi cond pyta czy głowa listy jest obiektem Krok rekurencji kontynuuje sprawdzanie dla pozostałych elementów LISP 38
39 Prosta rekurencja Przykładowe wywołanie: (memv 'a '(a b b d)) (memv 'b '(a b b d)) (memv 'c '(a b b d)) (memv 'd '(a b b d)) (a b b d) (b b d) #f (d) (if (memv 'b '(a b b d)) "yes" no") "yes" LISP 39
40 Prosta rekurencja Procedura remv posiada dwa argumenty - obiekt i listę remv zwraca nową listę obiektów bez ich powtórzeo (define remv (lambda (x ls) (cond ((null? ls) '()) ((eqv? (car ls) x) (remv x (cdr ls))) (else (cons (car ls) (remv x (cdr ls) )))))) LISP 40
41 Prosta rekurencja (remv 'a '(a b b d)) (b b d) (remv 'b '(a b b d)) (a d) (remv 'c '(a b b d)) (a b b d) (remv 'd '(a b b d)) (a b b) remv nie zatrzymuje się tylko na elementach głowy listy kontynuuje rekurencję poprzez zignorowanie obiektów pojedynczych Jeżeli obiekt nie został znaleziony jako car listy, remv łączy ten element z rekurencyjną wartością LISP 41
42 Prosta rekurencja Inna wersja procedury tree-copy traktującej strukturę drzewa argumentu jako parę (define tree-copy (lambda (tr) (if (not (pair? tr)) tr (cons (tree-copy (car tr)) (tree-copy (cdr tr)))))) (tree-copy '((a. b). c)) ((a. b). c) LISP 42
43 Prosta rekurencja Lewe podrzewo jest głową pary Prawe podrzewo jest ogonem pary Podobna operacja do list-copy budująca nowe pary pozostawiając tylko liście Przypadek bazowy sprawdza czy elementem drzewa jest wszystko poza parą Krok rekurencyjny jest podwójnie rekursywny znajdujący wartośd rekurencyjnie dla głowy jak i ogona argumentu LISP 43
44 Prosta rekurencja Iteracje w Scheme-a wyrażone za pomocą rekurencji są bardziej czytelne i treściwe Rekurencja jest eliminuje dodatkowe zmienne i przypisania wymagane w innych językach zawierające struktury iteracyjne W rezultacie kod programu jest bardziej niezawodny i łatwiejszy do śledzenia Niektóre rekurencje są w istocie iteracją LISP 44
45 Prosta rekurencja Rozważmy specjalną formę składniową powtórzeo zwanych odwzorowaniem Procedura modulus-all posiada argument będący listą liczb całkowitych i zwraca ich moduł (define modulus-all (lambda (ls) (if (null? ls) '() (cons (modulus (car ls)) (modulus-all (cdr ls)))))) (abs-all '( )) ( ) LISP 45
46 Przypisanie Przypisanie nie tworzy nowego związania jak wyrażenia let lub lambda Przypisanie zmienia wartośd istniejącego związania Przypisanie realizowane wyrażeniem set! (define abcde '(a b c d e)) abcde (a b c d e) (set! abcde (cdr abcde)) abcde (b c d e) LISP 46
Elementy języka Scheme
Elementy języka Scheme Historia języka Lisp Historia języka Lisp Wyrażenia i ewaluacja wyrażeń Identyfikatory i wyrażenie let Wyrażenia lambda Definicje globalne Wyrażenia warunkowe Przypisanie Kontynuacje
Elementy języka Scheme
Elementy języka Scheme Historia języka Lisp Wyrażenia i ewaluacja wyrażeń Identyfikatory i wyrażenie let Wyrażenia lambda Definicje globalne Wyrażenia warunkowe Przypisanie Kontynuacje Historia języka
Liczby 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
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
REKURENCJA W JĘZYKU HASKELL. Autor: Walczak Michał
REKURENCJA W JĘZYKU HASKELL Autor: Walczak Michał CZYM JEST REKURENCJA? Rekurencja zwana rekursją, polega na wywołaniu przez funkcję samej siebie. Algorytmy rekurencyjne zastępują w pewnym sensie iteracje.
Programowanie w Turbo Pascal
Skróty: ALT + F9 Kompilacja CTRL + F9 Uruchomienie Struktura programu: Programowanie w Turbo Pascal Program nazwa; - nagłówek programu - blok deklaracji (tu znajduje się VAR lub CONST) - blok instrukcji
Języki i metody programowania
Języki i metody programowania Wykład 3 dr hab. Bożena Woźna-Szcześniak bwozna@gmail.com Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie hab. Andrzeja Zbrzezngo Wartości boolowskie
Podstawy 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
4. 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
Cw.12 JAVAScript w dokumentach HTML
Cw.12 JAVAScript w dokumentach HTML Wstawienie skryptu do dokumentu HTML JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.skrypty Java- Script mogą być zagnieżdżane
Programowanie Funkcyjne. Marcin Kubica Świder,
Programowanie Funkcyjne Marcin Kubica Świder, 28-04-2015 Czym jest programowanie funkcyjne? Obliczalne pojęcia matematyczne. Definicje stałych i funkcji i relacji. Wszystkie definicje są konstruktywne,
WHILE (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
Bash - 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:
Prolog struktury danych oraz obliczenia. 1. Arytmetyka?- Y is 2+2. Y = 4. ?- 5 is 3+3. false. ?- Z is (3.9 / 2.1). Z =
Prolog struktury danych oraz obliczenia 1. Arytmetyka?- Y is 2+2. Y = 4?- 5 is 3+3. false.?- Z is 4.5 + (3.9 / 2.1). Z = 6.357142857142857. Wbudowany predykat is bierze wyrażenie po prawej, oblicza je
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
Poprawność semantyczna
Poprawność składniowa Poprawność semantyczna Poprawność algorytmu Wypisywanie zdań z języka poprawnych składniowo Poprawne wartościowanie zdań języka, np. w języku programowania skutki wystąpienia wyróżnionych
Projekt 4: Programowanie w logice
Języki Programowania Projekt 4: Programowanie w logice Środowisko ECL i PS e W projekcie wykorzystane będzie środowisko ECL i PS e. Dostępne jest ono pod adresem http://eclipseclp.org/. Po zainstalowaniu
Programowanie w logice Prolog 2
Programowanie w logice Prolog 2 Listy Lista to uporządkowany ciąg elementów. Elementami listy mogą być dowolne terminy: stałe, zmienne i struktury W Prologu listę zapisujemy następująco: Przykłady [element1,element2,,elementn]
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
Zmienne 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
Bash - instrukcje warunkowe, pętle i funkcje
Bash - instrukcje warunkowe, pętle i funkcje 5 grudnia 2018 1 Instrukcje warunkowe Wewnątrz skryptu może powstać potrzeba wykonania fragmentu kodu pod pewnym warunkiem. Np. chcemy wykonać inne fragmenty
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
Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.
Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Typy c.d. 2 Typy zmiennych Instrukcja typedef -
Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody
Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć,
LISP - "LISt Processing"
- "LISt Processing" dr inż. Tomasz Białaszewski Katedra Systemów Decyzyjnych Email: bialas@eti.pg.gda.pl http://www.eti.pg.gda.pl/katedry/ksd/pracownicy/tomasz.bialaszewski/ 1 Wprowadzenie Rodzaje języków
Podstawy Programowania Podstawowa składnia języka C++
Podstawy Programowania Podstawowa składnia języka C++ Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Szablon programu w C++ Najprostszy program w C++ ma postać: #include #include
Przykład 1: Funkcja jest obiektem, przypisanie funkcji o nazwie function() do zmiennej o nazwie funkcja1
Rachunek Prawdopodobieństwa i Statystyka lab 3. Kaja Gutowska (Kaja.Gutowska@cs.put.poznan.pl) 1. Funkcje: - Funkcje nie powinny korzystać ze zmiennych globalnych. - Funkcje powinny być możliwie krótkie.
Podstawy i języki programowania
Podstawy i języki programowania Laboratorium 3 - operatory oraz instrukcje warunkowe i wyboru mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 19 października 2018 1 / 35 mgr inż. Krzysztof
Funkcje są prawdopodobnie najważniejszą częścią każdego poważnego programu (w każdym języku programowania).
Funkcje w Pythonie Funkcje to części programu wielokrotnego użytku. Pozwalają nam nadad nazwę blokowi wyrażeo, a następnie uruchamiad ten blok używając tej nazwy gdziekolwiek w programie, dowolną ilośd
Zapisywanie algorytmów w języku programowania
Temat C5 Zapisywanie algorytmów w języku programowania Cele edukacyjne Zrozumienie, na czym polega programowanie. Poznanie sposobu zapisu algorytmu w postaci programu komputerowego. Zrozumienie, na czym
Opis zagadnieo 1-3. Iteracja, rekurencja i ich realizacja
Opis zagadnieo 1-3 Iteracja, rekurencja i ich realizacja Iteracja Iteracja to czynnośd powtarzania (najczęściej wielokrotnego) tej samej instrukcji (albo wielu instrukcji) w pętli. Mianem iteracji określa
Paradygmaty programowania
Paradygmaty programowania Paradygmat funkcyjny Cezary Bolek Katedra Informatyki UŁ 1 Dlaczego programowanie funkcyjne? Języki imperatywne, a w duŝym stopniu takŝe obiektowe, są bardzo silnie związane z
Naukę 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
Wstęp do Programowania potok funkcyjny
Wstęp do Programowania potok funkcyjny Marcin Kubica 2010/2011 Outline Procedury wyższych rzędów 1 Procedury wyższych rzędów jako abstrakcje konstrukcji programistycznych Intuicje Procedury wyższych rzędów
Informatyka 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
Układy VLSI Bramki 1.0
Spis treści: 1. Wstęp... 2 2. Opis edytora schematów... 2 2.1 Dodawanie bramek do schematu:... 3 2.2 Łączenie bramek... 3 2.3 Usuwanie bramek... 3 2.4 Usuwanie pojedynczych połączeń... 4 2.5 Dodawanie
Programowanie w języku Python. Grażyna Koba
Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i
Arytmetyka liczb binarnych
Wartość dwójkowej liczby stałoprzecinkowej Wartość dziesiętna stałoprzecinkowej liczby binarnej Arytmetyka liczb binarnych b n-1...b 1 b 0,b -1 b -2...b -m = b n-1 2 n-1 +... + b 1 2 1 + b 0 2 0 + b -1
ALGORYTMY 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
Operacje 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
Języki programowania deklaratywnego
Katedra Inżynierii Wiedzy laborki 14 Języki deklaratywne Główne różnice między paradygmatem deklaratywnym a imperatywnym Omów główne cechy paradygmatu programowania w logice na przykładzie Prologa Główne
Kiedy i czy konieczne?
Bazy Danych Kiedy i czy konieczne? Zastanów się: czy często wykonujesz te same czynności? czy wielokrotnie musisz tworzyć i wypełniać dokumenty do siebie podobne (faktury, oferty, raporty itp.) czy ciągle
Myś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
Podstawy 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:
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
Programowanie obiektowe
Programowanie obiektowe Język programowania Ruby Marcin Młotkowski 12 kwietnia 2018 Plan wykładu 1 Wstęp 2 Typy numeryczne Łańcuchy znaków (klasa String) Przedziały Tablice i tablice asocjacyjne Nazwy
WHILE (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
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
Rozwiązanie. #include <cstdlib> #include <iostream> using namespace std;
Programowanie C++ Zadanie 1 Napisz program do obliczenia sumy i iloczynu ciągu liczb zakooczonego liczbą zero. Zakładamy, że ciąg zawiera co najmniej jedną liczbę (założenie to jest konieczne przy obliczeniu
Testowanie i walidacja oprogramowania
Testowanie i walidacja oprogramowania Inżynieria oprogramowania, sem.5 cz. 5 Rok akademicki 2010/2011 Dr inż. Wojciech Koziński Przykład Obliczmy sumę: 0+1+2+...+i, i є [0,100] read(i); if((i < 0)(i >
Ję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,
Instrukcje wyboru. Tworzenie programu, Schematy blokowe, Instrukcje wyboru, Operatory logiczne
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Instrukcje wyboru Tworzenie programu, Schematy blokowe, Instrukcje wyboru, Operatory logiczne Być, czy nie być?
Python dla początkujących. Małgorzata Niewiem AGH, GGiOŚ, Katedra Geoinformatyki i Informatyki Stosowanej SATIM Satelitarny Monitoring
Python dla początkujących Małgorzata Niewiem AGH, GGiOŚ, Katedra Geoinformatyki i Informatyki Stosowanej SATIM Satelitarny Monitoring Wstęp Stworzony w latach 90 przez Guido van Rossum Nazwa pochodzi od
Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych
1. Wstawianie skryptu na stroną: Laboratorium 1 Do umieszczenia skryptów na stronie służy znacznik: //dla HTML5 ...instrukcje skryptu //dla HTML4 ...instrukcje
Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu
Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji
Wstęp do Programowania potok funkcyjny
Wstęp do Programowania potok funkcyjny Marcin Kubica 2010/2011 Outline Programowanie imperatywne 1 Programowanie imperatywne Intuicje Programowanie imperatywne Paradygmat programowania imperatywnego: program
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
Procedura rekurencyjna to taka procedura, która wywołuje samą siebie.
P r o c e d u r y r e k u r e n c y j n e S t r o n a 1 Procedury rekurencyjne Procedura rekurencyjna to taka procedura, która wywołuje samą siebie. Schemat procedury rekurencyjnej: oto nazwa_procedury
Metody Kompilacji Wykład 8 Analiza Syntaktyczna cd. Włodzimierz Bielecki WI ZUT
Metody Kompilacji Wykład 8 Analiza Syntaktyczna cd Analiza Syntaktyczna Wstęp Parser dostaje na wejściu ciąg tokenów od analizatora leksykalnego i sprawdza: czy ciąg ten może być generowany przez gramatykę.
Instrukcje 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
Bloki 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
Strategia "dziel i zwyciężaj"
Strategia "dziel i zwyciężaj" W tej metodzie problem dzielony jest na kilka mniejszych podproblemów podobnych do początkowego problemu. Problemy te rozwiązywane są rekurencyjnie, a następnie rozwiązania
Dynamiczne struktury danych
Listy Zbiór dynamiczny Zbiór dynamiczny to zbiór wartości pochodzących z pewnego określonego uniwersum, którego zawartość zmienia się w trakcie działania programu. Elementy zbioru dynamicznego musimy co
METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH
METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH ĆWICZENIE NR 9 WYRAŻENIA LOGICZNE, INSTRUKCJE WARUNKOWE I INSTRUKCJE ITERACYJNE W PROGRAMIE KOMPUTEROWYM MATLAB Dr inż. Sergiusz Sienkowski ĆWICZENIE NR
Blockly Kodowanie pomoc.
1 Blockly Kodowanie pomoc. Słowniczek: Zmienna posiada nazwę wywoływaną w programie oraz miejsce na przechowywanie wartości. Instrukcja warunkowa pozwala na wykonanie instrukcji w zależności od warunku
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
PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:
PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł mysqli ma dwa interfejsy: proceduralny i obiektowy) PostgreSQL Oracle MS
Systemy ekspertowe i ich zastosowania. Katarzyna Karp Marek Grabowski
Systemy ekspertowe i ich zastosowania Katarzyna Karp Marek Grabowski Plan prezentacji Wstęp Własności systemów ekspertowych Rodzaje baz wiedzy Metody reprezentacji wiedzy Metody wnioskowania Języki do
PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6
PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6 TEMAT: Programowanie w języku C/C++: instrukcje iteracyjne for, while, do while Ogólna postać instrukcji for for (wyr1; wyr2; wyr3) Instrukcja for twory pętlę działającą
Podstawy programowania. Podstawy C# Tablice
Podstawy programowania Podstawy C# Tablice Tablica to indeksowany zbiór elementów Tablica jest typem referencyjnym (deklaracja tworzy tylko referencję, sama tablica musi być utworzona oddzielnie, najprościej
Odczyt danych z klawiatury Operatory w Javie
Odczyt danych z klawiatury Operatory w Javie Operatory W Javie występują następujące typy operatorów: Arytmetyczne. Inkrementacji/Dekrementacji Przypisania. Porównania. Bitowe. Logiczne. Pozostałe. Operacje
Informatyka 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
Stuck in the loop. Sterowanie. Marcin Makowski. 29 października Zak lad Chemii Teoretycznej UJ
Sterowanie Zak lad Chemii Teoretycznej UJ 29 października 2007 1 2 3 4 arytmetyczne +, -, *, / % (dzielenie modulo) operatory sa lewostronnie l aczne priorytety: (*, /, %), (+, -) nie istnieje operator
Deklarowania faktów dotyczących obiektów i związków między nimi. Definiowania reguł dotyczących obiektów i związków między nimi.
Prolog Prolog Programowanie w Prologu składa się z: Deklarowania faktów dotyczących obiektów i związków między nimi. Definiowania reguł dotyczących obiektów i związków między nimi. Zadawania zapytao o
W naukach technicznych większość rozpatrywanych wielkości możemy zapisać w jednej z trzech postaci: skalara, wektora oraz tensora.
1. Podstawy matematyki 1.1. Geometria analityczna W naukach technicznych większość rozpatrywanych wielkości możemy zapisać w jednej z trzech postaci: skalara, wektora oraz tensora. Skalarem w fizyce nazywamy
GRUPA ĆWICZENIOWA (ZAKREŚL ODPOWIEDNIĄ): MG8 MG13 MB13 MD13 BT13
Nazwisko i imię: Nr indeksu: 1 2 3 4 Σ MiNI/MatLic/AiPP/2014 2015/Kolokwium-IIA (30) GRUPA ĆWICZENIOWA (ZAKREŚL ODPOWIEDNIĄ): MG8 MG13 MB13 MD13 BT13 Uwaga: Za każde zadanie można uzyskać tę samą liczbę
Przy dużej wielkości głębokości uzyskamy wrażenie nieskończoności: Dla głębokości zerowej uzyskamy tekst płaski:
Temat 6: Tekst w przestrzeni trójwymiarowej. Podstawy tworzenia animacji. Instrukcja warunkowa if. Program pozwala umieszczać na scenie nie tylko bryły, czy figury płaskie, ale też tekst. Polecenie tworzące
JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.
IŚ ćw.8 JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript są zagnieżdżane w dokumentach HTML. Skrypt JavaScript
Algorytmy i struktury danych
Algorytmy i struktury danych 4. Łódź 2018 Suma szeregu harmonicznego - Wpisz kod programu w oknie edycyjnym - Zapisz kod w pliku harmonic.py - Uruchom skrypt (In[1]: run harmonic.py) - Ten program wykorzystuje
Algorytm. 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
Instrukcje wyboru. Tworzenie programu, Schematy blokowe, Instrukcje wyboru, Operatory logiczne
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Instrukcje wyboru Tworzenie programu, Schematy blokowe, Instrukcje wyboru, Operatory logiczne Być, czy nie być?
Pętla for. Matematyka dla ciekawych świata -19- Scilab. for i=1:10... end. for k=4:-1:1... end. k=3 k=4. k=1. k=2
Pętle wielokrotne wykonywanie ciągu instrukcji. Bardzo często w programowaniu wykorzystuje się wielokrotne powtarzanie określonego ciągu czynności (instrukcji). Rozróżniamy sytuacje, gdy liczba powtórzeń
PARADYGMATY I JĘZYKI PROGRAMOWANIA. Programowanie funkcyjne (w- 9)
PARADYGMATY I JĘZYKI PROGRAMOWANIA Programowanie funkcyjne () Zagadnienia 2 Wstęp Rachunek lambda i programowanie funkcjonalne (Podstawa: An introduc/on to func/onal programming through lambda calculus.
Wprowadzenie do programowania w języku C
Wprowadzenie do programowania w języku C Część druga Instrukcje sterujące przebiegiem programu Autor Roman Simiński Kontakt siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót
Funkcje wbudowane PHP
Funkcje wbudowane PHP Funkcje daty i czasu Funkcja time() zwraca informacje na temat bieżącej daty i czasu. Nie posiada żadnych argumentów. Informacje o czasie dacie zwraca w formie liczby Liczba odpowiada
3. 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
Podstawy programowania w języku C++
Podstawy programowania w języku C++ Część dziewiąta Tablice a zmienne wskaźnikowe Wersja skrócona, tylko C++ Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie
λ 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:
Pętle instrukcje powtórzeo
Pętle instrukcje powtórzeo Pętle - zbiór instrukcji, które należy wykonad wielokrotnie. Program dyktuje: - ile razy pętla ta wykona zawarty w niej blok instrukcji - jakie mają byd warunki zakooczenia jej
LibreOffice Calc VBA
LibreOffice Calc VBA LibreOffice Calc umożliwia tworzenie własnych funkcji i procedur przy użyciu składni języka VBA. Dostęp do edytora makr: Narzędzia->Makra->Zarządaj makrami->libreoffice Calc Aby rozpocząć
Visual Basic for Application (VBA)
Visual Basic for Application (VBA) http://dzono4.w.interia.pl Książka Visual Basic dla aplikacji w Office XP PL, autorzy: Edward C. Willett i Steve Cummings, Wyd. Helion Typy zmiennych Różne dane różnie
Jak tworzyd filtry? W jaki sposób odbywa się filtrowanie w systemie pokaż/ukryj pytania?
Jak tworzyd filtry? Spis treści O czym warto pamiętad przed stworzeniem pytania filtrującego:... 1 Warunki badawcze... 2 Definicja elementów filtru... 3 Tworzenie filtrów dla pytao prostych... 4 Tworzenie
Funkcje. Deklaracja funkcji. Definicja funkcji. Wykorzystanie funkcji w programie.
Funkcje Deklaracja funkcji typ funkcji identyfikator_funkcji(lista parametrów formalnych); Typ funkcji określa typ wartości zwracanej przez funkcję (typ zdefiniowany pierwotnie jak int, typ zdefiniowany
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
Instrukcje sterujące. wer. 11 z drobnymi modyfikacjami! Wojciech Myszka :53:
Instrukcje sterujące wer. 11 z drobnymi modyfikacjami! Wojciech Myszka 2017-07-05 10:53:09 +0200 Ala ma kota Część I Prosty przykład Problem 1. Zadanie polega na tym, żeby opracować algorytm który dla
Podstawy programowania w języku C
Podstawy programowania w języku C WYKŁAD 1 Proces tworzenia i uruchamiania programów Algorytm, program Algorytm przepis postępowania prowadzący do rozwiązania określonego zadania. Program zapis algorytmu
Po 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
JAVAScript 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