RACHUNEK LAMBDA DLA POCZĄTKUJĄCYCH
|
|
- Izabela Czech
- 5 lat temu
- Przeglądów:
Transkrypt
1 Informatyka w Edukacji, XVI UMK Toruń, 2019 RACHUNEK LAMBDA DLA POCZĄTKUJĄCYCH Wydział Matematyki i Informatyki, Uniwersytet Wrocławski tdr@cs.uni.wroc.pl; ii.uni.wroc.pl/~tdr Abstract. This paper presents basics of lambda calculus as a simple programming language accessible for students of primary and secondary schools. It contains theoretical remarks and examples of computations, programs and syntax extensions. It discusses also decisions to be made when introducing the calculus to beginners. 1. Wstęp Za początek historii rachunku lambda można uznać rok 1932, w którym Alonzo Church opublikował pierwszą pracę, w której rachunek ten został wykorzystany [1]. Niedługo później okazał się on być modelem obliczeń równoważnym maszynie Turinga, a w badaniach nad językami programowania wykorzystywany jest do dziś jako język bazowy. Celem niniejszej pracy jest przedstawienie rachunku lambda jako prostego języka programowania dostępnego dla uczniów szkół podstawowych i średnich. Prezentacja jest bardzo bliska formie, w jakiej rachunek lambda był przedstawiany uczestnikom eliminacji do konkursu KOMA w 2018 roku [4]. Została ona uzupełniona o terminologię i własności teoretyczne opisane w literaturze [2] oraz dalsze przykłady programistyczne [3]. Zawiera także uwagi dotyczące różnych możliwych form, w jakich można prezentować rachunek początkującym. Systemy typów dla rachunku lambda, które mogą ułatwiać myślenie o nim, zostały jednak pominięte w celu podkreślenia jego prostoty i samodzielności jako systemu obliczeń. 2. Notacja i redukcja Działanie rachunku lambda opiera się na pojęciu funkcji jako czegoś, czego wartość można obliczyć dla konkretnej danej. Następująca składnia pozwala zapisywać funkcje zadane wzorem bez konieczności nazywania ich:
2 250 nazwa: lambda parametr kropka wzór/ przepis zapis: λ x. (x + 3) 2 czytanie: funkcja, która przyjmuje iks i zwraca iks plus trzy razy dwa Tabela 1 Składnia funkcji lambda Pozostaje przyjąć składnię oznaczającą wartość funkcji f dla argumentu x. Na lekcjach matematyki jest to zapis f(x). W tej pracy przyjmiemy notację f x, dzięki czemu później będziemy mogli zapisywać x f, kiedy wygodniej będzie podać najpierw argument, a następnie funkcję. W środowisku naukowym związanym z rachunkiem lambda zwykle pomija się symbol aplikacji zapisując jedynie f x, ale taki zapis może być nieintuicyjny dla początkujących. Możemy w ten sposób zapisać przykładowe obliczenia: ( λx. (x + 3) 2 ) 5 = (5 + 3) 2 = 8 2 = 16 (λx. λy. x + x + y) 3 4 = (λy y) 4 = = 10 (λx. x + y) 3 = 3 + y (λx. 5) 2 = 5 Rysunek 1 Schemat podstawiania argumentu do wzoru funkcji Uproszczenie wyrażenia polegające na postawieniu argumentu do wzoru funkcji, tak jak powyżej, nazywa się β-redukcją. Będzie to jedyna operacja nazywana redukcją w tej pracy. Zgodnie ze schematem procedura redukcji jest następująca: przepisać wzór funkcji (podkreślony na schemacie) zastępując każde wystąpienie parametru (na schemacie x ) argumentem (na schemacie 3 ). Działanie aplikacji funkcji do argumentu nie jest łączne, należy więc zwracać uwagę na kolejność wykonywania działań: x y z = (x y) z x (y z) x y z = z (y x) z y x Wzór funkcji obejmuje wyrażenia najdalej, jak to możliwe:
3 λx. x x = λx. (x x) (λx. x) x Rachunek lambda dla początkujących 251 Popularnym skrótem notacyjnym jest skracanie ciągów lambd. Przykładowo zapis λx. λy. λz. P mógłby być skrócony do postaci λxyz. P. Jednak w tej pracy ten skrót nie będzie stosowany. Młodszym uczniom można przedstawić funkcje jako pudełka przekształcające argument na wartość: 1 [ dodaj 3 i przemnóż przez 2 ] (1 + 3) 2 5 [ dodaj 3 i przemnóż przez 2 ] (5 + 3) 2 x [ dodaj 3 i przemnóż przez 2 ] (x + 3) 2 x [ λx. (x + 3) 2 ] (x + 3) 2 3. Postać normalna Argumentami funkcji mogą być także inne funkcje. Przykładowo: (λx. x x) λy. y = (λy. y) λy. y = λy. y (λx. λz. x) (λw. w) (λx. λy. y) = (λz. λw. w) (λx. λy. y) = λw. w (λx. λy. y x) 3 λx. x + 4 = (λy. y 3) λx. x + 4 = (λx. x + 4) 3 = = 7 Można także redukować zagnieżdżone wyrażenia: ((λx. x) 2) + ((λy. y) 5) = 2 + ((λy. y) 5) = = 7 ((λx. x) 2) + ((λy. y) 5) = ((λx. x) 2) + 5 = = 7 Wyrażenie postaci (λ_. _ ) _ można uprościć w jednym kroku redukcji. Takie wyrażenia nazywane są redeksami (ang. reducible expression). Wyrażenia, w których nie ma żadnych redeksów, nazywamy postaciami normalnymi. W powyższych pięciu przykładach wyrażenia zostały doliczone do postaci normalnej. Zupełność rachunku lambda jako języka programowania pociąga za sobą konieczność wyrażania również nieskończonych obliczeń. Przyjmijmy dwie standardowe definicje: ω = λx. x x Ω = ω ω Wyrażenie Ω jest przykładem wyrażenia, które nie ma postaci normalnej, ponieważ krok obliczeń prowadzi do jej wyjściowej postaci. Jest to przykład zapętlenia się : Ω = ω ω = (λx. x x) ω = ω ω = (λx. x x) ω = ω ω =
4 252 Z twierdzenia Churcha-Rossera wynika, że każde wyrażenie ma co najwyżej jedną postać normalną wynik, jeśli jest, jest tylko jeden. Innym wnioskiem z twierdzenia jest, że jeśli wyjściowe wyrażenie ma postać normalną, zredukowane wyrażenie ma taką samą postać normalną redukując wyrażenie nie da się wejść w ślepą uliczkę. Istnieje także tzw. normalna strategia redukcji, która ustala kolejność redukcji tak, że zawsze prowadzi do postaci normalnej, jeśli taka istnieje. 4. Konwersja Funkcja, której wartością jest to, co dostała za argument, nazywa się identycznością i może zostać zapisana jako λx. x. Jednak takie samo znaczenie mają także inne wyrażenia: identyczność = λx. x = λy. y = λz. z Taka zmiana nazw zmiennych nazywana jest α-konwersją. Może zostać wykorzystana do unikania zjawiska przesłaniania zmiennych: (λx. λy. x) (λy. y) 5 (λx. λy. x) (λy. y) 5 = (λy. λy. y) 5 = λy. y = (λx. λz. x) (λy. y) 5 = (λz. λy. y) 5 = λy. y Konwersja może być konieczna w szczególnych przypadkach, kiedy mogłoby dojść do przechwycenia zmiennej: λx. (λy. λx. y) x = λx. (λy. λz. y) x = λx. λz. x λx. λx. x Problemy związane z α-równoważnością wyrażeń można rozwiązać przez zastosowanie w zapisie indeksów de Bruijna, ale zwykle nie są one używane w piśmie ze względu na obniżenie czytelności. 5. Arytmetyka Wszystkie wyrażenia rachunku lambda budowane są za pomocą zmiennych, funkcji lambda i aplikacji jednego wyrażenia do drugiego. Te trzy reguły nie obejmują zatem wprowadzania do wyrażeń liczb. Liczby można jednak rozumieć jako ustalone wyrażenia. Jednym ze sposobów na wyrażenie arytmetyki liczb naturalnych jest kodowanie ich za pomocą liczebników Churcha: 0 = λf. λx. x 2 = λf. λx. x f f 4 = 1 = λf. λx. x f 3 = λf. λx. x f f f
5 Rachunek lambda dla początkujących 253 W takim kodowaniu liczba naturalna n kodowana jest przez funkcję, która przyjmuje inną funkcję i argument, a jej wynikiem jest ten argument z n-krotnie nałożoną przyjętą funkcją. Możemy zdefiniować funkcję obliczającą dla danego liczebnika liczebnik po niej następny (w zamierzeniu nast 1 = 2 ): nast = λn. λf. λx. (n f x) f Przykład (w dolnym indeksie znaku równości podano uzasadnienie przejścia): nast 1 = nast (λn. λf. λx. (n f x) f) 1 = β λf. λx. (1 f x) f = 1 = 1 λf. λx. ((λf. λx. x f) f x) f = β λf. λx. ((λx. x f) x) f = β = β λf. λx. (x f) f = λf. λx. x f f = 2 2 Możemy także zdefiniować funkcję dodającą dwa liczebniki: dodaj = λn. λm. (n nast m) W ten sposób możemy rozumieć zapisy n + m jako dodaj n m. Wtedy: = + dodaj 2 2 = dodaj (λn. λm. (n nast m)) 2 2 = β = β (λm. (2 nast m)) 2 = β 2 nast 2 = 2 (λf. λx. x f f) nast 2 = β = β (λx. x nast nast) 2 = β 2 nast nast = nast 3 nast = nast 4 Podobnie można wyrazić mnożenie: mnóż = λn. λm. (n (dodaj m) 0) Przykład: 3 7 = mnóż 3 7 = 3 (dodaj 7) 0 = = 0 (dodaj 7) (dodaj 7) (dodaj 7) = = 21 Kodowanie arytmetyki w rachunku lambda pociąga za sobą pewną trudność, która nie występuje w popularnych językach programowania. Dlatego należy podkreślić, że odsłanianie przed użytkownikami kodowania liczb nie jest konieczne. Wszelkie tego typu rozszerzenia rachunku można wprowadzać, nawet niejawnie, w sposób aksjomatyczny w ten sposób posługiwaliśmy się liczbami w poprzednich sekcjach. Wyrażalność rozszerzenia w rachunku lambda stanowi zaś wtedy gwarancję poprawności takiego rozszerzenia.
6 Instrukcje warunkowe Do rozważenia instrukcji warunkowych będziemy potrzebować wartości logicznych. Możemy je zdefiniować jako tak = λx. λy. x i nie = λx. λy. y (odpowiedniki angielskich true i false ). Można przetestować ich własności obliczeniowe: tak A B = (λx. λy. x) A B = (λy. A) B = A nie A B = B w analogiczny sposób. Zatem wyrażenie warunkowe jeśli warunek to A inaczej B może być rozumiane po prostu jako warunek A B. Dalej można zdefiniować operacje logiczne: zaprzecz = λb. b nie tak oraz = λb. λc. b c nie Przykłady: lub = λb. λc. b tak c zaprzecz tak = (λb. b nie tak) tak = tak nie tak = nie lub nie tak = (λb. λc. b tak c) nie tak = (λc. nie tak c) tak = = nie tak tak = tak Można także zdefiniować funkcję sprawdzającą, czy dany liczebnik jest zerem: czy_zero = λn. n (λb. nie) tak Przykładowo zapiszemy program, który zwraca liczbę 3, gdy dostanie 0, a liczbę 4, gdy dostanie inną liczbę, i przekażemy mu liczbę 5: (λn. czy_zero n 3 4) 5 = czy_zero = = 5 (λb. nie) tak 3 4 = nie 3 4 = 4 7. Struktury danych Podobnie, jak liczby i wartości logiczne, można wyrazić w rachunku lambda potrzebne struktury danych. Definicję para = λx. λy. λf. f x y można potraktować jako przykładowy konstruktor. Pozwala on na zebranie informacji z dwóch wyrażeń w jednym i korzystanie z nich przy pomocy operacji tak i nie (nawiasy dodane dla czytelności): (para A B) tak = (λx. λy. λf. f x y) A B tak = = (λf. f A B) tak = tak A B = A (para A B) nie = B
7 Rachunek lambda dla początkujących 255 W celu skrócenia zapisu można oznaczać postać normalną, do jakiej wylicza się wyrażenie para A B, przez (A, B). Większe krotki można kodować w podobny sposób lub składać je odpowiednio z zagnieżdżonych par (np. (A, (B, C)) jako trójka A, B i C). W ten sposób można konstruować nie tylko listy (patrz sekcja 10.), ale także drzewa. Zwykle pary obsługuje się jednak nie przez operacje tak i nie, a przez funkcje, które jako argument przyjmują krotkę i zwracają jej odpowiednią składową, ponieważ m.in. zapewnia to lepszą abstrakcję danych. Dla par byłyby to: pierwszy = λp. p tak drugi = λp. p nie pierwszy (A, B) = (λp. p tak) (A, B) = (A, B) tak = tak A B = A W programowaniu funkcyjnym popularną składnią, uczytelniającą kod, są dopasowania wzorca. Korzystając jedynie częściowo z ich siły wyrazu można zaproponować, aby zapis P λp. (pierwszy p) λa. (drugi p) λb. Q mógł być skracany do zapisu P λ(a, b). Q. Przykładowo: (2, 7) λ(a, b). a = 2 λa. (7 λb. a) = 2 Takie rozpakowanie pary wykorzystamy w następnej sekcji. 8. Iteracja Można powiedzieć, że liczebniki Churcha kodujące liczby naturalne odpowiadają pętli for, ponieważ powtarzają zadaną procedurę z góry ustaloną liczbę razy. Jeśli liczby są wprowadzone aksjomatycznie, można taką funkcjonalność ukryć pod nazwą powtórz : powtórz 3 nast 2 = = 2 nast nast nast = 3 nast nast = 4 nast = 5 W ten sposób można zapisać iteracyjny algorytm obliczania silni. W parze będzie przechowywany częściowo wyliczony wynik i następna liczba do domnożenia. W każdym powtórzeniu wynik jest mnożony przez drugi element pary, a druga liczba inkrementowana. W końcu z pary wyciągany jest pierwszy element wynik: silnia_iter = λn. pierwszy (powtórz n ( λ(r, i). (r i, i + 1) ) (1, 1)) Przykład: silnia_iter 5 = = pierwszy (powtórz 5 ( λ(r, i). (r i, i + 1) ) (1, 1)) =
8 256 = pierwszy (powtórz 4 ( λ(r, i). (r i, i + 1) ) (1, 2)) = = pierwszy (powtórz 3 ( λ(r, i). (r i, i + 1) ) (2, 3)) = = pierwszy (powtórz 2 ( λ(r, i). (r i, i + 1) ) (6, 4)) = = pierwszy (powtórz 1 ( λ(r, i). (r i, i + 1) ) (24, 5)) = = pierwszy (powtórz 0 ( λ(r, i). (r i, i + 1) ) (120, 6)) = = pierwszy (120, 6) = Rekurencja Jedną z najważniejszych cech języka programowania jest definiowanie funkcji rekurencyjnych. Można spróbować zdefiniować silnię w następujący sposób: silnia = λn. (czy_zero n) 1 (n (silnia (n 1))) Jednak w powyższej definicji po prawej stronie równości występuje silnia, która nie jest jeszcze zdefiniowanym wyrażeniem. Można jednak zdefiniować następujące wyrażenie: krok_silni = λs. λn. (czy_zero n) 1 (n (S (n 1))) Gdyby argumentem funkcji krok_silni zostałaby gotowa silnia, to otrzymalibyśmy również poprawną funkcję wyliczającą silnię. W pewnym sensie stanie się to dzięki wyrażeniu oznaczanemu Y : Y = λf. (λx. f (x x)) (λx. f (x x)) Jego najważniejsza własność to następująca równość: Y F = (λx. F (x x)) (λx. F (x x)) = = F ((λx. F (x x)) (λx. F (x x))) = F (Y F) Silnię można zatem zdefiniować tak, jak poniżej: silnia = Y krok_silni = Y λs. λn. (czy_zero n) 1 (n (S (n 1))) Otrzymane wyrażenie nie ma postaci normalnej, ale spełnia zamierzone na początku równanie: silnia = Y krok_silni = krok_silni (Y krok_silni) = = λn. (czy_zero n) 1 (n ((Y krok_silni) (n 1))) = = λn. (czy_zero n) 1 (n (silnia (n 1)))
9 Rachunek lambda dla początkujących 257 Zapis n! można w końcu definiować jako silnia n. Mimo tego, że funkcja silnia nie ma postaci normalnej, ma ją silnia wyliczona dla danej liczby naturalnej: 4! = (czy_zero 4) 1 (4 (4 1)!) = nie 1 (4 (4 1)!) = 4 (4 1)! = = 4 3! = 4 3 2! = 12 2! = ! = ! = 24 0! = 24 1 = 24 Podobnie, jak w przypadku liczebników Churcha, definiowanie funkcji rekurencyjnych za pomocą Y może być trudne. Ważniejsze od samego sposobu definiowania jest to, że definiowanie funkcji rekurencyjnych jest uzasadnioną operacją w rachunku lambda. Zatem, kiedy nie budzi to wątpliwości, za definicję można uznawać kluczowe równości dotyczące funkcji silnia : 0! = 1 n! = n (n 1)!, gdy n nie jest 0 Przez kluczowe równości możemy zdefiniować wykorzystywaną wcześniej funkcję powtórz dla liczb naturalnych: powtórz 0 f x = x powtórz n f x = powtórz (n 1) f (f x), gdy n nie jest Listy Rachunek lambda pozwala operować na listach, które w nauce programowania mogą odgrywać podobną rolę do tablic. Aby skonstruować dowolną listę, potrzeba listy pustej [ ] oraz możliwości tworzenia listy, której pierwszym elementem jest g, adalszą częścią listy jest lista r, co oznacza się przez g::r. Przykładowo listę elementów a, b i c (po lewej stronie równości wprowadzamy notację dla list) tworzymy następująco: [a, b, c] = a::b::c::[ ] Do operowania na listach potrzeba jeszcze funkcji sprawdzającej, czy dana lista jest pusta, oraz funkcji odtwarzających składowe listy. Ich kluczowe własności to: czy_pusta [ ] = tak głowa g::r = g czy_pusta g::r = nie ogon g::r = r Powyższe wymagania również można spełnić definiując odpowiednie wyrażenia rachunku lambda (dla [ ], g::r, czy_pusta, głowa, ogon ). Jednak zakrycie ich przed użytkownikami pozwala na lepszą abstrakcję danych. Przykładem działania na liście liczb jest obliczenie ich sumy. Zamierzamy zdefiniować funkcję o następujących własnościach: suma [ ] = 0 suma g::r = g + (suma r)
10 258 Funkcję taką można zdefiniować jako funkcję spełniającą dane równanie rekurencyjne (ponownie w nowy sposób wykorzystujemy dopasowanie wzorca): suma xs = (czy_pusta xs) 0 (xs λ(g::r). g + suma r) Przykład działania: suma [1, 2, 4, 8] = 1 + suma [2, 4, 8] = suma [4, 8] = = suma [8] = suma [ ] = = 15 Standardową operacją działającą na listach jest także podmiana jej elementów zgodnie z podaną funkcją. Funkcja podmiana (propozycja zastąpienia angielskiego map ) powinna spełniać poniższe własności: podmiana f [ ] = [ ] podmiana f (g::r) = (f g)::(podmiana f r) Podobnie jak w przypadku sumy wystarcza to do zdefiniowania funkcji podmiana. W ten sposób można zwięźle wyrażać coraz bardziej złożone obliczenia: podmiana (λn. n + 3) [1, 2] = podmiana (λn. n + 3) 1::2::[ ] = = 4::(podmiana (λn. n + 3) 2::[ ]) = 4::5::(podmiana (λn. n + 3) [ ]) = [4, 5] podmiana (λn. n n) [1, 2, 3, 4, 5] = [1, 4, 9, 16, 25] 11. Złożoność obliczeniowa W powyższych ciągach równości wiele kroków obliczeń było pomijanych jako oczywiste. Jednak dokładniejsza analiza liczby kroków obliczeń pozwala wprowadzić podstawowe intuicje dotyczące złożoności obliczeniowej. Dla przykładu zdefiniujemy iteracyjną i rekurencyjną definicję ciągu Fibonacciego: fib_iter = λn. pierwszy (powtórz n (λ(a, b). (b, a+b)) (0, 1)) fib_rek = Y λf. λn. (czy_mniejsza n 2) n ( F (n 1) + F (n 2) ) Można zauważyć, że fib_iter dochodzi do postaci normalnej wykonując liniowo wiele β-redukcji względem argumentu. Natomiast fib_rek, bez stosowania dodatkowych równości, wykonuje wykładniczo wiele β-redukcji względem argumentu. 12. Podsumowanie Przedstawione w pracy przykłady prezentują rachunek lambda jako zupełny język programowania o prostych zasadach działania. Ta prostota daje szansę na naukę
11 Rachunek lambda dla początkujących 259 programowania w ten sposób od momentu, w którym uczniowie potrafią pisać, czytać i liczyć. Liczne uproszczenia notacyjne i standardowe definicje pozwalają wygodniej prezentować bardziej zaawansowane tematy. Jednak określenie odpowiedniego momentu na ich wprowadzenie pozostaje w rękach nauczyciela. Literatura 1. F. Cardone, J. R. Hindley, History of Lambda-calculus and Combinatory Logic, H. P. Barendregt, The Lambda Calculus: Its Syntax and Semantic, North Holland, Amsterdam H. Abelson, G. J. Sussman, J. Sussman, Struktura i interpretacja programów komputerowych, WNT, Warszawa Konkurs Matematyczny KOMA, ostatni dostęp roku.
KONKURS MATEMATYCZNY KOMA 2018
ELIMINACJE SZKOLNE RACHUNEK LAMBDA NOTATKI Z WYKŁADU - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
iks plus trzy dzielone na dwa iks razy iks plus pięć
ELIMINACJE SZKOLNE RACHUNEK LAMBDA NOTATKI Z WYKŁADU - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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
Programowanie i techniki algorytmiczne
Temat 2. Programowanie i techniki algorytmiczne Realizacja podstawy programowej 1) wyjaśnia pojęcie algorytmu, podaje odpowiednie przykłady algorytmów rozwiązywania różnych 2) formułuje ścisły opis prostej
Temat 20. Techniki algorytmiczne
Realizacja podstawy programowej 5. 1) wyjaśnia pojęcie algorytmu, podaje odpowiednie przykłady algorytmów rozwiązywania różnych problemów; 2) formułuje ścisły opis prostej sytuacji problemowej, analizuje
Zapisywanie w wybranej notacji algorytmów z warunkami i iteracyjnych
Temat 2. Zapisywanie w wybranej notacji algorytmów z warunkami i iteracyjnych Cele edukacyjne Usystematyzowanie podstawowych pojęć: algorytm z warunkami, iteracja, algorytm iteracyjny, zmienna sterująca.
Ję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
Jak należy się spodziewać, mamy. Zauważmy jednak, że nie zachodzi równość
11. Wykład 11: Rachunek λ. Obliczenia i obliczalność. Rachunek λ jest systemem pozornie bardzo prostym. Abstrakcja i aplikacja wydają się trywialnymi operacjami, i może się zdawać, że niczego ciekawego
Obliczenia iteracyjne
Lekcja Strona z Obliczenia iteracyjne Zmienne iteracyjne (wyliczeniowe) Obliczenia iteracyjne wymagają zdefiniowania specjalnej zmiennej nazywanej iteracyjną lub wyliczeniową. Zmienną iteracyjną od zwykłej
Obliczenia 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
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
Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny
Klasa 2 INFORMATYKA dla szkół ponadgimnazjalnych zakres rozszerzony Założone osiągnięcia ucznia wymagania edukacyjne na poszczególne oceny Algorytmy 2 3 4 5 6 Wie, co to jest algorytm. Wymienia przykłady
Algorytmika i pseudoprogramowanie
Przedmiotowy system oceniania Zawód: Technik Informatyk Nr programu: 312[ 01] /T,SP/MENiS/ 2004.06.14 Przedmiot: Programowanie Strukturalne i Obiektowe Klasa: druga Dział Dopuszczający Dostateczny Dobry
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,
Zadanie 1. Suma silni (11 pkt)
2 Egzamin maturalny z informatyki Zadanie 1. Suma silni (11 pkt) Pojęcie silni dla liczb naturalnych większych od zera definiuje się następująco: 1 dla n = 1 n! = ( n 1! ) n dla n> 1 Rozpatrzmy funkcję
SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa
SIMR 06/07, Analiza, wykład, 07-0- Przestrzeń wektorowa Przestrzeń wektorowa (liniowa) - przestrzeń (zbiór) w której określone są działania (funkcje) dodawania elementów i mnożenia elementów przez liczbę
Algorytm - pojęcie algorytmu, sposób zapisu, poziom szczegółowości, czynności proste i strukturalne. Pojęcie procedury i funkcji.
Algorytm - pojęcie algorytmu, sposób zapisu, poziom szczegółowości, czynności proste i strukturalne. Pojęcie procedury i funkcji. Maria Górska 9 stycznia 2010 1 Spis treści 1 Pojęcie algorytmu 3 2 Sposób
5. Rozwiązywanie układów równań liniowych
5. Rozwiązywanie układów równań liniowych Wprowadzenie (5.1) Układ n równań z n niewiadomymi: a 11 +a 12 x 2 +...+a 1n x n =a 10, a 21 +a 22 x 2 +...+a 2n x n =a 20,..., a n1 +a n2 x 2 +...+a nn x n =a
Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny
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 danych
Elementy rachunku lambda. dr hab. inż. Joanna Józefowska, prof. PP 1
Elementy rachunku lambda λ 1 Notacja λ x 3x + 7 3x + 7 jest różniczkowalna 3x + 7 jest mniejsze od 2 (2,3) 5 f(2, 3) = 2 + 3 g(2) = 2 + 3 λx(3x + 7) 3x + 7 λx λy(x + y) = λxy(x + y) λx(x + 3) 2 Rachunek
Podstawy 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)
Luty 2001 Algorytmy (7) 2000/2001 s-rg@siwy.il.pw.edu.pl
System dziesiętny 7 * 10 4 + 3 * 10 3 + 0 * 10 2 + 5 *10 1 + 1 * 10 0 = 73051 Liczba 10 w tym zapisie nazywa się podstawą systemu liczenia. Jeśli liczba 73051 byłaby zapisana w systemie ósemkowym, co powinniśmy
Instrukcje dla zawodników
Płock, 21 marca 2015 r. Instrukcje dla zawodników Arkusze otwieramy na wyraźne polecenie komisji. Wszystkie poniższe instrukcje zostaną odczytane i wyjaśnione. 1. Arkusz składa się z 3 zadań. 2. Każde
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.
SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa
Autorzy scenariusza: SCENARIUSZ LEKCJI OPRACOWANY W RAMACH PROJEKTU: INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA. PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH
Przedmiotowe Zasady Oceniania III LO w Łomży. Algorytmika. Klasy II-III
Przedmiotowe Zasady Oceniania III LO w Łomży Klasy II-III Łomża, 2014-2015 2 Przedmiotowe Zasady Oceniania w III LO Łomży Ocenianie - wstęp Należy tak organizować pracę na lekcji (przygotowywać odpowiednie
ALGORYTMY. 1. Podstawowe definicje Schemat blokowy
ALGORYTMY 1. Podstawowe definicje Algorytm (definicja nieformalna) to sposób postępowania (przepis) umożliwiający rozwiązanie określonego zadania (klasy zadań), podany w postaci skończonego zestawu czynności
Programowanie - 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
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
ALGORYTMY. 1. Podstawowe definicje Schemat blokowy
ALGORYTMY 1. Podstawowe definicje Algorytm (definicja nieformalna) to sposób postępowania (przepis) umożliwiający rozwiązanie określonego zadania (klasy zadań), podany w postaci skończonego zestawu czynności
SCENARIUSZ LEKCJI. Miejsca zerowe funkcji kwadratowej i ich graficzna prezentacja
SCENARIUSZ LEKCJI OPRACOWANY W RAMACH PROJEKTU: INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA. PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH Autorzy scenariusza:
Podstawy programowania. Wykład: 13. Rekurencja. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
Podstawy programowania Wykład: 13 Rekurencja 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Rekurencja - pojęcie 2 Rekurencja - pojęcie Rekurencja (rekursja) wywołanie
Programowanie 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
Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska
1 Przykład wyliczania wyrażeń arytmetycznych Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Copyright
ECDL Podstawy programowania Sylabus - wersja 1.0
ECDL Podstawy programowania Sylabus - wersja 1.0 Przeznaczenie Sylabusa Dokument ten zawiera szczegółowy Sylabus dla modułu Podstawy programowania. Sylabus opisuje, poprzez efekty uczenia się, zakres wiedzy
2. LICZBY RZECZYWISTE Własności liczb całkowitych Liczby rzeczywiste Procenty... 24
SPIS TREŚCI WYRAŻENIA ALGEBRAICZNE RÓWNANIA I NIERÓWNOŚCI ALGEBRAICZNE 7 Wyrażenia algebraiczne 0 Równania i nierówności algebraiczne LICZBY RZECZYWISTE 4 Własności liczb całkowitych 8 Liczby rzeczywiste
11. Blok ten jest blokiem: a. decyzyjnym b. końcowym c. operacyjnym
1. Instrukcja warunkowa a. słuŝy do wprowadzania danych oraz wprowadzania wyników b. to instrukcja decyzyjna c. to sposób przedstawienia algorytmu 2. Instrukcja, która opisuje wykonanie róŝnych czynności
Wykł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:
WYRAŻ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.
Teoretyczne podstawy informatyki
Teoretyczne podstawy informatyki Wykład 8b: Algebra relacyjna http://hibiscus.if.uj.edu.pl/~erichter/dydaktyka2009/tpi-2009 Prof. dr hab. Elżbieta Richter-Wąs 1 Algebra relacyjna Algebra relacyjna (ang.
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
operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.
Problem porządkowania zwanego również sortowaniem jest jednym z najważniejszych i najpopularniejszych zagadnień informatycznych. Dane: Liczba naturalna n i ciąg n liczb x 1, x 2,, x n. Wynik: Uporządkowanie
Sposoby przedstawiania algorytmów
Temat 1. Sposoby przedstawiania algorytmów Realizacja podstawy programowej 5. 1) wyjaśnia pojęcie algorytmu, podaje odpowiednie przykłady algorytmów rozwiązywania różnych problemów; 2) formułuje ścisły
wagi cyfry 7 5 8 2 pozycje 3 2 1 0
Wartość liczby pozycyjnej System dziesiętny W rozdziale opiszemy pozycyjne systemy liczbowe. Wiedza ta znakomicie ułatwi nam zrozumienie sposobu przechowywania liczb w pamięci komputerów. Na pierwszy ogień
JAO - Wprowadzenie do Gramatyk bezkontekstowych
JAO - Wprowadzenie do Gramatyk bezkontekstowych Definicja gramatyki bezkontekstowej Podstawowymi narzędziami abstrakcyjnymi do opisu języków formalnych są gramatyki i automaty. Gramatyka bezkontekstowa
KOŁO MATEMATYCZNE LUB INFORMATYCZNE - klasa III gimnazjum, I LO
Aleksandra Nogała nauczycielka matematyki w Gimnazjum im. Macieja Rataja w Żmigrodzie olanog@poczta.onet.pl KONSPEKT ZAJĘĆ ( 2 godziny) KOŁO MATEMATYCZNE LUB INFORMATYCZNE - klasa III gimnazjum, I LO TEMAT
2. Graficzna prezentacja algorytmów
1. Uczeń: Uczeń: 2. Graficzna prezentacja algorytmów a. 1. Cele lekcji i. a) Wiadomości zna sposoby graficznego przedstawiania algorytmów, wie w jaki sposób skonstruować schemat blokowy w taki sposób aby
Zadania do Rozdziału X
Zadania do Rozdziału X 1. 2. Znajdź wszystkie σ-ciała podzbiorów X, gdy X = (i) {1, 2}, (ii){1, 2, 3}. (b) Znajdź wszystkie elementy σ-ciała generowanego przez {{1, 2}, {2, 3}} dla X = {1, 2, 3, 4}. Wykaż,
Definicje. 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
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
Wstęp do informatyki- wykład 1
MATEMATYKA 1 Wstęp do informatyki- wykład 1 Systemy liczbowe 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
Logika dla socjologów Część 3: Elementy teorii zbiorów i relacji
Logika dla socjologów Część 3: Elementy teorii zbiorów i relacji Rafał Gruszczyński Katedra Logiki Uniwersytet Mikołaja Kopernika 2011/2012 Spis treści 1 Zbiory 2 Pary uporządkowane 3 Relacje Zbiory dystrybutywne
Definicje 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
TEORETYCZNE PODSTAWY INFORMATYKI
1 TEORETYCZNE PODSTAWY INFORMATYKI 16/01/2017 WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Repetytorium złożoność obliczeniowa 2 Złożoność obliczeniowa Notacja wielkie 0 Notacja Ω i Θ Rozwiązywanie
Pętle. Dodał Administrator niedziela, 14 marzec :27
Pętlami nazywamy konstrukcje języka, które pozwalają na wielokrotne wykonywanie powtarzających się instrukcji. Przykładowo, jeśli trzeba 10 razy wyświetlić na ekranie pewien napis, to można wykorzystać
FUNKCJA KWADRATOWA. Zad 1 Przedstaw funkcję kwadratową w postaci ogólnej. Postać ogólna funkcji kwadratowej to: y = ax + bx + c;(
Zad Przedstaw funkcję kwadratową w postaci ogólnej Przykład y = ( x ) + 5 (postać kanoniczna) FUNKCJA KWADRATOWA Postać ogólna funkcji kwadratowej to: y = ax + bx + c;( a 0) Aby ją uzyskać pozbywamy się
PRÓBNA NOWA MATURA z WSiP. Matematyka dla klasy 2 Poziom podstawowy. Zasady oceniania zadań
PRÓBNA NOWA MATURA z WSiP Matematyka dla klasy Poziom podstawowy Zasady oceniania zadań Copyright by Wydawnictwa Szkolne i Pedagogiczne sp. z o.o., Warszawa 0 Matematyka dla klasy Poziom podstawowy Kartoteka
Elementy logiki. Wojciech Buszkowski Wydział Matematyki i Informatyki UAM Zakład Teorii Obliczeń
Elementy logiki Wojciech Buszkowski Wydział Matematyki i Informatyki UAM Zakład Teorii Obliczeń 1 Klasyczny Rachunek Zdań 1.1 Spójniki logiczne Zdaniem w sensie logicznym nazywamy wyrażenie, które jest
Algebra Boole a i jej zastosowania
lgebra oole a i jej zastosowania Wprowadzenie Niech dany będzie zbiór dwuelementowy, którego elementy oznaczymy symbolami 0 oraz 1, tj. {0, 1}. W zbiorze tym określamy działania sumy :, iloczynu : _ oraz
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
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
Wykład 7. Informatyka Stosowana. 21 listopada Informatyka Stosowana Wykład 7 21 listopada / 27
Wykład 7 Informatyka Stosowana 21 listopada 2016 Informatyka Stosowana Wykład 7 21 listopada 2016 1 / 27 Relacje Informatyka Stosowana Wykład 7 21 listopada 2016 2 / 27 Definicja Iloczynem kartezjańskim
Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).
Wprowadzenie do inżynierii przetwarzania informacji. Ćwiczenie 1. Systemy liczbowe Cel dydaktyczny: Poznanie zasad reprezentacji liczb w systemach pozycyjnych o różnych podstawach. Kodowanie liczb dziesiętnych
Metoda graficzna może być stosowana w przypadku gdy model zawiera dwie zmienne decyzyjne. Metoda składa się z dwóch kroków (zobacz pierwszy wykład):
może być stosowana w przypadku gdy model zawiera dwie zmienne decyzyjne. Metoda składa się z dwóch kroków (zobacz pierwszy wykład): 1 Narysuj na płaszczyźnie zbiór dopuszczalnych rozwiazań. 2 Narysuj funkcję
Temat 5. Programowanie w języku Logo
Temat 5. Programowanie w języku Logo Realizacja podstawy programowej 1) wyjaśnia pojęcie algorytmu, podaje odpowiednie przykłady algorytmów rozwiązywania różnych 2) formułuje ścisły opis prostej sytuacji
G. Plebanek, MIARA I CAŁKA Zadania do rozdziału 1 28
G. Plebanek, MIARA I CAŁKA Zadania do rozdziału 1 28 1.9 Zadania 1.9.1 Niech R będzie pierścieniem zbiorów. Zauważyć, że jeśli A, B R to A B R i A B R. Sprawdzić, że (R,, ) jest także pierścieniem w sensie
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
Programowanie w języku C++ Grażyna Koba
Programowanie w języku C++ 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 zasad
3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki.
1. Podaj definicję informatyki. 2. W jaki sposób można definiować informatykę? 3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki. 4. Co to jest algorytm? 5. Podaj neumanowską architekturę
15. Macierze. Definicja Macierzy. Definicja Delty Kroneckera. Definicja Macierzy Kwadratowej. Definicja Macierzy Jednostkowej
15. Macierze Definicja Macierzy. Dla danego ciała F i dla danych m, n IN funkcję A : {1,...,m} {1,...,n} F nazywamy macierzą m n ( macierzą o m wierszach i n kolumnach) o wyrazach z F. Wartość A(i, j)
5. OKREŚLANIE WARTOŚCI LOGICZNEJ ZDAŃ ZŁOŻONYCH
5. OKREŚLANIE WARTOŚCI LOGICZNEJ ZDAŃ ZŁOŻONYCH Temat, którym mamy się tu zająć, jest nudny i żmudny będziemy się uczyć techniki obliczania wartości logicznej zdań dowolnie złożonych. Po co? możecie zapytać.
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
Indukcja matematyczna. Zasada minimum. Zastosowania.
Indukcja matematyczna. Zasada minimum. Zastosowania. Arkadiusz Męcel Uwagi początkowe W trakcie zajęć przyjęte zostaną następujące oznaczenia: 1. Zbiory liczb: R - zbiór liczb rzeczywistych; Q - zbiór
Wstęp do informatyki- wykład 1 Systemy liczbowe
1 Wstęp do informatyki- wykład 1 Systemy liczbowe 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 Grębosz,
Scenariusz lekcji. Scenariusz lekcji 1 TEMAT LEKCJI: 2 CELE: 2.1 Wiadomości: 2.2 Umiejętności: 3 METODY NAUCZANIA 4 ŚRODKI DYDAKTYCZNE
1 TEMAT LEKCJI: Algorytmy iteracyjne - pętla For Next. 2 CELE: 2.1 Wiadomości: Uczeń potrafi: wyjaśnić pojęcie iteracji; podać podstawową składnię pętli For Next; podać rozszerzoną składnię pętli For Next
LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab
LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI Wprowadzenie do środowiska Matlab 1. Podstawowe informacje Przedstawione poniżej informacje maja wprowadzić i zapoznać ze środowiskiem
Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =
Systemy liczbowe Dla każdej liczby naturalnej x Î N oraz liczby naturalnej p >= 2 istnieją jednoznacznie wyznaczone: liczba n Î N oraz ciąg cyfr c 0, c 1,..., c n-1 (gdzie ck Î {0, 1,..., p - 1}) taki,
Matematyka dyskretna dla informatyków
Matematyka dyskretna dla informatyków Część I: Elementy kombinatoryki Jerzy Jaworski Zbigniew Palka Jerzy Szymański Uniwersytet im. Adama Mickiewicza Poznań 2007 4 Zależności rekurencyjne Wiele zależności
Algorytm. Krótka historia algorytmów
Algorytm znaczenie cybernetyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne
Zaawansowane algorytmy i struktury danych
Zaawansowane algorytmy i struktury danych u dr Barbary Marszał-Paszek Opracowanie pytań praktycznych z egzaminów. Strona 1 z 12 Pytania praktyczne z kolokwium zaliczeniowego z 19 czerwca 2014 (studia dzienne)
Algorytmy zapisywane w pseudojęzyku programowania. Klasa 2 Lekcja 6
Algorytmy zapisywane w pseudojęzyku programowania Klasa 2 Lekcja 6 Dlaczego stosujemy pseudojęzyk? Każdy język j programowania określa pewną notację,, służąs żącą do zapisywania tekstu programu. Zanim
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ń
Wykład 4. Określimy teraz pewną ważną klasę pierścieni.
Wykład 4 Określimy teraz pewną ważną klasę pierścieni. Twierdzenie 1 Niech m, n Z. Jeśli n > 0 to istnieje dokładnie jedna para licz q, r, że: m = qn + r, 0 r < n. Liczbę r nazywamy resztą z dzielenia
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ą
Liczby zespolone. x + 2 = 0.
Liczby zespolone 1 Wiadomości wstępne Rozważmy równanie wielomianowe postaci x + 2 = 0. Współczynniki wielomianu stojącego po lewej stronie są liczbami całkowitymi i jedyny pierwiastek x = 2 jest liczbą
Zadanie 2: Arytmetyka symboli
1 Cel ćwiczenia Zadanie 2: Arytmetyka symboli Wykształcenie umiejętności abstrahowania operacji arytmetycznych. Zapoznanie się i przećwiczenie mechanizmu tworzenia przeciążeń funkcji operatorowych. Utrwalenie
Metody numeryczne w przykładach
Metody numeryczne w przykładach Bartosz Ziemkiewicz Wydział Matematyki i Informatyki UMK, Toruń Regionalne Koło Matematyczne 8 kwietnia 2010 r. Bartosz Ziemkiewicz (WMiI UMK) Metody numeryczne w przykładach
Np. Olsztyn leży nad Łyną - zdanie prawdziwe, wartość logiczna 1 4 jest większe od 5 - zdanie fałszywe, wartość logiczna 0
ĆWICZENIE 1 Klasyczny Rachunek Zdań (KRZ): zdania w sensie logicznym, wartości logiczne, spójniki logiczne, zmienne zdaniowe, tabele prawdziwościowe dla spójników logicznych, formuły, wartościowanie zbioru
Macierze. Rozdział Działania na macierzach
Rozdział 5 Macierze Funkcję, która każdej parze liczb naturalnych (i, j) (i 1,..., n; j 1,..., m) przyporządkowuje dokładnie jedną liczbę a ij F, gdzie F R lub F C, nazywamy macierzą (rzeczywistą, gdy
Rekurencja (rekursja)
Rekurencja (rekursja) Rekurencja wywołanie funkcji przez nią samą wewnątrz ciała funkcji. Rekurencja może być pośrednia funkcja jest wywoływana przez inną funkcję, wywołaną (pośrednio lub bezpośrednio)
Znaleźć wzór ogólny i zbadać istnienie granicy ciągu określonego rekurencyjnie:
Ciągi rekurencyjne Zadanie 1 Znaleźć wzór ogólny i zbadać istnienie granicy ciągu określonego rekurencyjnie: w dwóch przypadkach: dla i, oraz dla i. Wskazówka Należy poszukiwać rozwiązania w postaci, gdzie
Hierarchia Chomsky ego Maszyna Turinga
Hierarchia Chomsky ego Maszyna Turinga Języki formalne i automaty Dr inż. Janusz Majewski Katedra Informatyki Gramatyka Gramatyką G nazywamy czwórkę uporządkowaną gdzie: G = V skończony zbiór
Szczegółowy program kursów szkoły programowania Halpress
Szczegółowy program kursów szkoły programowania Halpress Lekcja A - Bezpłatna lekcja pokazowa w LCB Leszno "Godzina kodowania - Hour of Code (11-16 lat) Kurs (B) - Indywidualne przygotowanie do matury
SCENARIUSZ LEKCJI. Dzielenie wielomianów z wykorzystaniem schematu Hornera
Autorzy scenariusza: SCENARIUSZ LEKCJI OPRACOWANY W RAMACH PROJEKTU: INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA. PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH
a 11 a a 1n a 21 a a 2n... a m1 a m2... a mn x 1 x 2... x m ...
Wykład 15 Układy równań liniowych Niech K będzie ciałem i niech α 1, α 2,, α n, β K. Równanie: α 1 x 1 + α 2 x 2 + + α n x n = β z niewiadomymi x 1, x 2,, x n nazywamy równaniem liniowym. Układ: a 21 x
INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227
INFORMATYKA W SZKOLE Dr inż. Grażyna KRUPIŃSKA grazyna@fis.agh.edu.pl D-10 pokój 227 Podyplomowe Studia Pedagogiczne 2 Algorytmy Nazwa algorytm wywodzi się od nazwiska perskiego matematyka Muhamed ibn
WYMAGANIA EDUKACYJNE Z MATEMATYKI DLA KLASY III
WYMAGANIA EDUKACYJNE Z MATEMATYKI DLA KLASY III Program nauczania matematyki w gimnazjum Matematyka dla przyszłości DKW 4014 162/99 Opracowała: mgr Mariola Bagińska 1. Liczby i działania Podaje rozwinięcia
Podstawy 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