Poprawność semantyczna
|
|
- Witold Żurek
- 4 lat temu
- Przeglądów:
Transkrypt
1 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 części programu, jak definicje typów, deklaracje stałych i zmiennych, zmian wartościowania zmiennych będących instrukcjami programu.
2 Algorytm jako napis może być poprawny składniowo, ale niepoprawny semantycznie, co jest równoznaczne z niemożnością poprawnego deklarowania i wartościowania zmiennych. Powody: w wyrażeniu występuje argument nie należący do typu związanego z tym wyrażeniem (np. w wyniku działania funkcji otrzymujemy liczbę rzeczywistą, a funkcja miała zwracać wartości całkowite); wystąpienie w algorytmie pętli o wyrażeniu logicznym stale wartościowanym jako prawdziwe (pętla będzie wykonywana bez końca); końcowe wartościowanie zmiennych nie odpowiada oczekiwaniom (program poprawnie kończy obliczenia, ale wyniki nie rozwiązują postawionego zadania).
3 Niech A oznacza algorytm-program, -warunek (warunki), jakie powinny spełniać dane wejściowe (początkowe wartościowania zmiennych) algorytmu A, -warunek, jaki powinny spełniać końcowe wartościowania zmiennych (własności danych wyjściowych i ich związek z danymi wejściowymi)
4 Semantyczna poprawność nazywana jest też inaczej pełną poprawnością. Dowodzenie jest trudne. Niekiedy zadowalamy się sprawdzeniem elementów tej definicji. Częściowa semantyczna poprawność Własność określoności dla warunku początkowego Własność stopu Semantyczna poprawność
5 Definicje elementów:
6 Dowodzenie Indukcja Definicja 1 Metoda niezmienników Częściowa poprawność Własność stopu
7 W dowodzeniu indukcyjnym semantycznej poprawności algorytmu przeprowadza się zwykle indukcję względem liczby powtórzeń instrukcji iteracyjnej lub poziomu zagnieżdżenia realizacji procedury rekurencyjnej. Przykład. Rozważmy algorytm przeszukiwania drzewa binarnego DB zadanego przez wskaźnik na korzeń DB określonego przez zmienną typu el_drzewa zdefiniowanego następująco: struct element { int wartosc; element *pien; element *konar_lewy; element *konar_prawy; } typedef element, *el_drzewa;
8 struct element { int wartosc; element *pien; element *konar_lewy; element *konar_prawy; } typedef element, *el_drzewa; int preorder (el_drzewa korzen, int x) { //{ : korzen!=null} int pom=0; if ((*korzen).wartosc==x) return 1; if ((*korzen).konar_lewy!=null) //2 pom=preorder((*korzen).konar_lewy,x); if (pom) return 1; //3 else if ((*korzen).konar_prawy!=null) //4 pom=preorder((*korzen).konar_prawy,x); if (pom) return 1; //5 else return 0; //{ : funkcja zwraca 1, gdy "x jest elementem drzewa"}, // zwraca 0, gdy "x nie jest elementem drzewa".} } Rozważmy następujący algorytm przeszukiwania drzewa binarnego:
9 Dowód przeprowadzimy indukcyjnie względem parametru określającego wysokość drzewa. Oznaczmy wysokość drzewa przez wd. Dla dowodu poprawności semantycznej algorytmu preorder sformułujmy własność: Własność. Dla dowolnego drzewa binarnego o wysokości wd będącej liczbą naturalną wd>0, algorytm preorder dla danych spełniających w skończonej liczbie kroków dochodzi do wartościowania końcowego i to wartościowanie spełnia.
10 Dowód: Przeprowadzimy go metodą indukcji matematycznej. Krok 1 sprawdzenie poprawności algorytmu dla początkowej wartości. Należy pokazać, że preorder(korzen) poprawnie określa wynik końcowy dla dowolnego drzewa binarnego o określonym adresie korzenia i wysokości wd=1. Istotnie, jeśli (*korzen).wartosc==x, to nastąpi koniec wartościowania funkcji i wartością funkcji będzie 1, co będzie oznaczać zajście. Jeśli (*korzen).wartosc!=x, to wobec i założenia, że wd=1 mamy (*korzen).konar_lewy==null oraz (*korzen).konar_prawy==null. Zatem wobec początkowego wartościowania zmiennej pom=0, nie wykona się żadna z pięciu instrukcji warunkowych i funkcja zwróci 0, co będzie oznaczało zajście. Ponieważ jedynym miejscem elementem w drzewie, gdzie może znajdować się pole wartościujące równe x jest pole korzenia, zatem dla wd=1 program jest semantycznie poprawny.
11 Krok2 założenie i teza indukcyjna z dowodem. Zał. ind. Załóżmy, że algorytm preorder jest poprawnie określony dla drzew binarnych o wysokości wd<=n. Teza. ind. Udowodnimy, że jest wtedy poprawnie określony dla drzew binarnych o wysokości wd=n+1.
12 Istotnie. Rozważmy drzewo binarne o wysokości wd=n+1. Jeśli (*korzen).wartosc==x, to nastąpi koniec wartościowania funkcji i wartością będzie 1, co oznacza zajście. Jeśli (*korzen).wartosc!=x, to nastąpi ewentualne wykonanie kolejnych instrukcji programu (2,3,4,5). Wobec założenia indukcyjnego, ponieważ lewe i prawe poddrzewo drzewa o wysokości n+1, będą drzewami o wysokościach mniejszych lub równych n, więc instrukcje 2,3,4 zostaną wykonane poprawnie i spowodują wartościowanie funkcji spełniające. Instrukcja 5 dokona wartościowania funkcji jako 0, jeśli x nie będzie elementem lewego i prawego poddrzewa, czyli nie będzie elementem drzewa. Zatem wartością funkcji będzie 1, gdy x jest elementem drzewa, 0 gdy nie jest elementem drzewa, co oznacza zajście.
13 Zatem na mocy zasady indukcji matematycznej ma miejsce teza własności dla drzew binarnych o dowolnej wysokości wd, co jest równoważne całkowitej poprawności semantycznej algorytmu preorder wobec definicji 1.
14 Przykład. Algorytm obliczający wartość wyrażenia 2 n +1 int POTEGA_2(int n) { // : n>=0 if((n==0) (n==1)) return n+2; return 3*POTEGA_2(n-1)-2*POTEGA_2(n-2); } // : wartością funkcji jest 2 n +1. Przykład algorytmu rekurencyjnego (poprzedni też taki był)
15 Dowód przeprowadzimy indukcyjnie względem parametru n określającego wykładnik potęgi 2. Dla dowodu poprawności semantycznej algorytmu POTEGA_2 sformułujmy własność: Własność. Dla dowolnego wykładnika potęgi o podstawie 2 będącego liczbą naturalną n>=0, algorytm POTEGA_2 dla danych spełniających w skończonej liczbie kroków dochodzi do wartościowania końcowego i to wartościowanie spełnia.
16 Dowód: Przeprowadzimy go metodą indukcji matematycznej. Krok 1 sprawdzenie poprawności algorytmu dla początkowej wartości. Należy pokazać, że POTEGA_2(n) poprawnie określa wynik końcowy dla potęgi o podstawie 2 i wykładniku n=0 lub n=1. Istotnie, jeśli n=0, to zachodzi warunek if((n==0) (n==1)) i nastąpi koniec wartościowania funkcji i wartością funkcji będzie n+2, czyli 2, co będzie oznaczać zajście. Jeśli natomiast n=1, to również zachodzi warunek if((n==0) (n==1)) i nastąpi koniec wartościowania funkcji i wartością funkcji będzie również n+2, czyli 3, co także będzie oznaczać zajście. Zatem dla n=0 lub n=1 program jest semantycznie poprawny.
17 Krok2 założenie i teza indukcyjna z dowodem. Zał. ind. Załóżmy, że algorytm POTEGA_2 jest poprawnie określony dla potęgi o podstawie 2 i wykładniku k<=n, n=1,2,3. Teza. ind. Udowodnimy, że jest wtedy poprawnie określony dla potęgi o wykładniku n+1.
18 Istotnie. Rozważmy potęgę o podstawie 2 i wykładniku n+1. Ponieważ n+1>1, to POTEGA_2(n+1) zwróci wartościowanie funkcji spełniające 3*POTEGA_2 ((n+1)-1)-2*potega_2((n+1)-2). Policzmy: 3*POTEGA_2((n+1)-1)-2*POTEGA_2((n+1)-2)=3*POTEGA_2(n)-2*POTEGA_2(n-1). Wobec założenia indukcyjnego, ponieważ POTEGA_2(n) i POTEGA_2 (n-1) będą funkcjami obliczającymi wartość potęgi dla wykładników mniejszych lub równych n, więc zostaną wykonane poprawnie i spowodują wartościowanie funkcji spełniające. Zatem POTEGA_2(n) zwróci 2 n +1, a POTEGA_2(n-1) zwróci 2 n Możemy więc napisać: 3*POTEGA_2 ((n+1)-1)-2*potega_2 ((n+1)-2)= =3*POTEGA_2 (n)-2*potega_2 (n-1) = =3*(2 n +1)-2*(2 n-1 +1) =3*2 n +3-2 n -2=2*2 n +1=2 n+1 +1, co oznacza zajście.
19 Zatem na mocy zasady indukcji matematycznej ma miejsce teza własności dla algorytmu POTEGA_2 dla dowolnego wykładnika potęgi n, co jest równoważne całkowitej poprawności semantycznej algorytmu POTEGA_2 wobec definicji 1.
20 Wprowadzimy teraz pojęcie niezmiennika pętli, które jest często wykorzystywane do projektowania algorytmów i dowodzenia ich poprawności. Rozważmy pętlę while, która ma postać:
21
22
23 Ostatnie stwierdzenie dotyczące prawdziwości zdania g po zakończeniu pętli jest tak oczywistym, że często się o nim zapomina. Jednak dostarcza ono ważnych informacji pozwalających uzasadnić semantyczną poprawność algorytmów. Dlatego zostało umieszczone w treści twierdzenia.
24 k=4; while(k>=4) k=k+1;
25 Przykład 1. Algorytm NWD Euklidesa. Zapis w pseudokodzie Jak znaleźć niezmiennik pętli?
26 Najpierw należy pokazać, że
27
28
29
30
31
32 Ćwiczenie
33
34
35 Przykład 2. Rozważmy algorytm dzielenia całkowitego liczb naturalnych. void dzielenie (int x,y) { // : 0<=x i 0<=y int q,r; q=0; r=x; while(y<=r) //p: x=q*y+r i 0<=r i 0<=y { q=q+1; r=r-y; }; } // : x=q*y+r i 0<=r<y. Pokażemy, że algorytm ten jest częściowo poprawny względem warunku początkowego i końcowego.
36 Należy udowodnić pewną własność obliczeń algorytmu, która łączy zachodzenie warunku początkowego z warunkiem końcowym. Jaki warunek spełniają x, y, q, r w pętli while w chwili sprawdzenia warunku y<=r sterującego iteracją? Określamy niezmiennik p. Wykażemy, że za każdym razem, gdy obliczenie algorytmu rozpoczyna się stanem spełniającym warunek początkowy oraz dochodzi do warunku iteracji, to spełniony jest warunek p.
37 void dzielenie (int x,y) { // : 0<=x i 0<=y int q,r; q=0; r=x; while(y<=r) //p: x=q*y+r i 0<=r i 0<=y { q=q+1; z pętli r=r-y; }; } // : x=q*y+r i 0<=r<y. bezpośrednio z początku algorytmu Możemy dojść do p dwiema drogami:
38 void dzielenie (int x,y) { // : 0<=x i 0<=y int q,r; q=0; r=x; while(y<=r) //p: x=q*y+r i 0<=r i 0<=y { q=q+1; r=r-y; }; } // : x=q*y+r i 0<=r<y. Wtedy zostaje wykonana instrukcja złożona: q =q+1;r =r-y. Trzeba sprawdzić, czy dla q i r zachodzi warunek p: p: x=q *y+r i 0<=r i 0<=y. Jeśli dojdziemy do p z początku algorytmu, to q=0, r=x i p jest spełniony, bo zachodzi. Jeśli już przejdziemy przez pętlę while i dojdziemy do p, to wiemy, że y<=r i zaszedł już warunek p: x=q*y+r i 0<=r i 0<=y. Ale x=(q+1)*y+(r-y)=q*y+r 0<=r =r-y, bo y<=r i 0<=y.
39 void dzielenie (int x,y) { // : 0<=x i 0<=y int q,r; q=0; r=x; while(y<=r) //p: x=q*y+r i 0<=r i 0<=y { q=q+1; r=r-y; }; } // : x=q*y+r i 0<=r<y. Stosując teraz indukcję względem liczby wykonanych sprawdzeń warunku iteracji y<=r, wnioskujemy, że przy każdym sprawdzeniu warunku iteracji zachodzi p. Zatem, albo cały czas zachodzi y<=r i wtedy nie dochodzimy do, albo w pewnej chwili y>r i wtedy dochodzimy do, ale ponieważ p był spełniony, więc musi być spełniony. Zwróćmy uwagę, że jeśli x=0 i y=0, to obliczenie algorytmu jest nieskończone, a więc według podanych warunków algorytm jest tylko częściowo poprawny i ma własność określoności obliczeń, ale nie ma własności stopu!
Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak
Indukcja Materiały pomocnicze do wykładu wykładowca: dr Magdalena Kacprzak Charakteryzacja zbioru liczb naturalnych Arytmetyka liczb naturalnych Jedną z najważniejszych teorii matematycznych jest arytmetyka
Bardziej szczegółowoPodstawy Informatyki. Algorytmy i ich poprawność
Podstawy Informatyki Algorytmy i ich poprawność Błędy Błędy: językowe logiczne Błędy językowe Związane ze składnią języka Wykrywane automatycznie przez kompilator lub interpreter Prosty sposób usuwania
Bardziej szczegółowoMatematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku
Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku Rozdział 1 Poprawność programów Jeżeli projektujemy algorytmy lub piszemy programy, to ważne jest pytanie, czy nasz algorytm lub program
Bardziej szczegółowoWykład 2. Poprawność algorytmów
Wykład 2 Poprawność algorytmów 1 Przegląd Ø Poprawność algorytmów Ø Podstawy matematyczne: Przyrost funkcji i notacje asymptotyczne Sumowanie szeregów Indukcja matematyczna 2 Poprawność algorytmów Ø Algorytm
Bardziej szczegółowoWykład X. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2016 Janusz Słupik
Wykład X Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2016 c Copyright 2016 Janusz Słupik Drzewa binarne Drzewa binarne Drzewo binarne - to drzewo (graf spójny bez cykli) z korzeniem (wyróżnionym
Bardziej szczegółowoMatematyka dyskretna
Matematyka dyskretna Wykład 4: Podzielność liczb całkowitych Gniewomir Sarbicki Dzielenie całkowitoliczbowe Twierdzenie: Dla każdej pary liczb całkowitych (a, b) istnieje dokładnie jedna para liczb całkowitych
Bardziej szczegółowoLogika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017
Logika Stosowana Wykład 1 - Logika zdaniowa Marcin Szczuka Instytut Informatyki UW Wykład monograficzny, semestr letni 2016/2017 Marcin Szczuka (MIMUW) Logika Stosowana 2017 1 / 30 Plan wykładu 1 Język
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ółowoTEORETYCZNE PODSTAWY INFORMATYKI
1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 14c 2 Definicje indukcyjne Twierdzenia dowodzone przez indukcje Definicje indukcyjne Definicja drzewa
Bardziej szczegółowoWielomiany jednej zmiennej rzeczywistej algorytmy
Rozdział 15 Wielomiany jednej zmiennej rzeczywistej algorytmy 15.1 Algorytm dzielenia Definicja 15.1 Niech dany będzie niezerowy wielomian f K[x] (K jest ciałem) f = a 0 x m + a 1 x m 1 +... + a m, gdzie
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ółowoIndukcja matematyczna
Indukcja matematyczna 1 Zasada indukcji Rozpatrzmy najpierw następujący przykład. Przykład 1 Oblicz sumę 1 + + 5 +... + (n 1). Dyskusja. Widzimy że dla n = 1 ostatnim składnikiem powyższej sumy jest n
Bardziej szczegółowoWyszukiwanie. Wyszukiwanie binarne
Wyszukiwanie Wejście: posortowana, n-elementowa tablica liczbowa T oraz liczba p. Wyjście: liczba naturalna, określająca pozycję elementu p w tablicy T, bądź 1, jeŝeli element w tablicy nie występuje.
Bardziej szczegółowoRekurencja (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)
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ół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ółowoPoprawność algorytmów
Poprawność algorytmów Jeśli uważasz, że jakiś program komputerowy jest bezbłędny, to się mylisz - po prostu nie zauważyłeś jeszcze skutków błędu, który jest w nim zawarty. Jakie błędy można popełnić? Błędy
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ółowoWstęp do Programowania potok funkcyjny
Wstęp do Programowania potok funkcyjny Marcin Kubica 2010/2011 Outline 1 Kilka podstawowych pojęć Definition Programy imperatywne zmieniają stan, czyli wartości zmiennych. Asercja = warunek logiczny, który
Bardziej szczegółowoDrzewa poszukiwań binarnych
1 Cel ćwiczenia Algorytmy i struktury danych Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet ielonogórski Drzewa poszukiwań binarnych Ćwiczenie
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ółowoUniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium 7. 2 Drzewa poszukiwań binarnych
Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Algorytmy i struktury danych Laboratorium Drzewa poszukiwań binarnych 1 Cel ćwiczenia Ćwiczenie ma na celu zapoznanie studentów
Bardziej szczegółowoMatematyka Dyskretna 2/2008 rozwiązania. x 2 = 5x 6 (1) s 1 = Aα 1 + Bβ 1. A + B = c 2 A + 3 B = d
C. Bagiński Materiały dydaktyczne 1 Matematyka Dyskretna /008 rozwiązania 1. W każdym z następujących przypadków podać jawny wzór na s n i udowodnić indukcyjnie jego poprawność: (a) s 0 3, s 1 6, oraz
Bardziej szczegółowoPorządek symetryczny: right(x)
Porządek symetryczny: x lef t(x) right(x) Własność drzewa BST: W drzewach BST mamy porządek symetryczny. Dla każdego węzła x spełniony jest warunek: jeżeli węzeł y leży w lewym poddrzewie x, to key(y)
Bardziej szczegółowoMatematyka Dyskretna Zestaw 2
Materiały dydaktyczne Matematyka Dyskretna (Zestaw ) Matematyka Dyskretna Zestaw 1. Wykazać, że nie istnieje liczba naturalna, która przy dzieleniu przez 18 daje resztę 13, a przy dzieleniu przez 1 daje
Bardziej szczegółowoIndukcja matematyczna, zasada minimum i maksimum. 17 lutego 2017
Indukcja matematyczna, zasada minimum i maksimum 17 lutego 2017 Liczby naturalne - Aksjomatyka Peano (bez zera) Aksjomatyka liczb naturalnych N jest nazwą zbioru liczb naturalnych, 1 jest nazwą elementu
Bardziej szczegółowo(1) Poprawność Algorytmów
(1) Algorytmów Kontakt dr hab. Marcin, Katedra SIAM, PJATK Polecane Podręczniki: Ogólne: T.Cormen, C.Leiserson, R.Rivest et al. do Algorytmów, PWN 2018 (lub wydanie anglojęzyczne) G.Mirkowska et al. -
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ół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ółowoAnaliza Algorytmów - Moduł 2- Ćwiczenia
Analiza Algorytmów - Moduł 2- Ćwiczenia Aleksandra Orpel 1 Niezmienniki pętli Ćwiczenie 1. Wykaż, że podany warunek "k 4 > 2m 6 " jest niezmiennikiem pętli 1while 1 mdo 2 3 m := 2m; 4 k := 3k; 5 end: Rozwiazanie:
Bardziej szczegółowoALGORYTMY. 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
Bardziej szczegółowoWyszukiwanie w BST Minimalny i maksymalny klucz. Wyszukiwanie w BST Minimalny klucz. Wyszukiwanie w BST - minimalny klucz Wersja rekurencyjna
Podstawy Programowania 2 Drzewa bst - część druga Arkadiusz Chrobot Zakład Informatyki 12 maja 2016 1 / 8 Plan Wstęp Wyszukiwanie w BST Minimalny i maksymalny klucz Wskazany klucz Zmiany w funkcji main()
Bardziej szczegółowoWskazówki dotyczące zmiennych, tablic i procedur 1
Wskazówki dotyczące zmiennych, tablic i procedur 1 Spis treści 1. Tworzenie zmiennych i tablic 1 2. Procedury i zmienne, przekazywanie zmiennych do procedur 5 3. Zakończenie działania procedury 9 1. Tworzenie
Bardziej szczegółowoALGORYTMY. 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
Bardziej szczegółowoWykład 1_2 Algorytmy sortowania tablic Sortowanie bąbelkowe
I. Struktury sterujące.bezpośrednie następstwo (A,B-czynności) Wykład _2 Algorytmy sortowania tablic Sortowanie bąbelkowe Elementy języka stosowanego do opisu algorytmu Elementy Poziom koncepcji Poziom
Bardziej szczegółowo3. 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ę
Bardziej szczegółowoAlgorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek
Algorytmy i str ruktury danych Metody algorytmiczne Bartman Jacek jbartman@univ.rzeszow.pl Metody algorytmiczne - wprowadzenia Znamy strukturę algorytmów Trudność tkwi natomiast w podaniu metod służących
Bardziej szczegółowoMetoda Tablic Semantycznych
Procedura Plan Reguły Algorytm Logika obliczeniowa Instytut Informatyki Plan Procedura Reguły 1 Procedura decyzyjna Logiczna równoważność formuł Logiczna konsekwencja Procedura decyzyjna 2 Reguły α, β,
Bardziej szczegółowon=0 (n + r)a n x n+r 1 (n + r)(n + r 1)a n x n+r 2. Wykorzystując te obliczenia otrzymujemy, że lewa strona równania (1) jest równa
Równanie Bessela Będziemy rozważać następujące równanie Bessela x y xy x ν )y 0 ) gdzie ν 0 jest pewnym parametrem Rozwiązania równania ) nazywamy funkcjami Bessela rzędu ν Sprawdzamy, że x 0 jest regularnym
Bardziej szczegółowoWstęp do programowania
Wstęp do programowania Złożoność obliczeniowa, poprawność programów Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. XII Jesień 2013 1 / 20 Złożoność obliczeniowa Problem Ile czasu
Bardziej szczegółowoALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH Temat : Drzewa zrównoważone, sortowanie drzewiaste Wykładowca: dr inż. Zbigniew TARAPATA e-mail: Zbigniew.Tarapata@isi.wat.edu.pl http://www.tarapata.strefa.pl/p_algorytmy_i_struktury_danych/
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ółowoSchemat rekursji. 1 Schemat rekursji dla funkcji jednej zmiennej
Schemat rekursji 1 Schemat rekursji dla funkcji jednej zmiennej Dla dowolnej liczby naturalnej a i dowolnej funkcji h: N 2 N istnieje dokładnie jedna funkcja f: N N spełniająca następujące warunki: f(0)
Bardziej szczegółowoIndukcja 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
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ółowo. Podstawy Programowania 2. Drzewa bst - część druga. Arkadiusz Chrobot. 12 maja 2019
.. Podstawy Programowania 2 Drzewa bst - część druga Arkadiusz Chrobot Zakład Informatyki 12 maja 2019 1 / 39 Plan.1 Wstęp.2 Wyszukiwanie w BST Minimalny i maksymalny klucz Wskazany klucz.3.4 Zmiany w
Bardziej szczegółowoPrzykładami ciągów, które Czytelnik dobrze zna (a jeśli nie, to niniejszym poznaje), jest ciąg arytmetyczny:
Podstawowe definicje Definicja ciągu Ciągiem nazywamy funkcję na zbiorze liczb naturalnych, tzn. przyporządkowanie każdej liczbie naturalnej jakiejś liczby rzeczywistej. (Mówimy wtedy o ciągu o wyrazach
Bardziej szczegółowoInformatyka 1. Wyrażenia i instrukcje, złożoność obliczeniowa
Informatyka 1 Wykład III Wyrażenia i instrukcje, złożoność obliczeniowa Robert Muszyński ZPCiR ICT PWr Zagadnienia: składnia wyrażeń, drzewa rozbioru gramatycznego i wyliczenia wartości wyrażeń, operatory
Bardziej szczegółowoAlgorytm 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
Bardziej szczegółowoPodstawowe elementy programu. patrz: następne 2 slajdy. Podstawowe elementy programu. Komendy proste:
Podstawowe elementy programu Zestaw komend stojący do dyspozycji programisty zależy od języka programowania; jest ograniczony; jestnatylebogaty,żedajesięznichzłożyć(jakzklocków)sensowne programy Umiejętność
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ółowoAlgorytmika i programowanie. dr inż. Barbara Fryc Wyższa Szkoła Informatyki i Zarządzania w Rzeszowie
Algorytmika i programowanie dr inż. Barbara Fryc Wyższa Szkoła Informatyki i Zarządzania w Rzeszowie Algorytmy i sposoby ich przedstawiania Algorytm - informatyczny opis planu rozwiązania zadania Sposoby
Bardziej szczegółowoGrafy (3): drzewa. Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków. UTP Bydgoszcz
Grafy (3): drzewa Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków UTP Bydgoszcz 13 (Wykłady z matematyki dyskretnej) Grafy (3): drzewa 13 1 / 107 Drzewo Definicja. Drzewo to graf acykliczny
Bardziej szczegółowoZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce.
POLITECHNIKA WARSZAWSKA Instytut Automatyki i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 204/205 Język programowania: Środowisko programistyczne: C/C++ Qt Wykład 2 : Drzewa BST c.d., równoważenie
Bardziej szczegółowoProgramowanie strukturalne i obiektowe. Funkcje
Funkcje Często w programach spotykamy się z sytuacją, kiedy chcemy wykonać określoną czynność kilka razy np. dodać dwie liczby w trzech miejscach w programie. Oczywiście moglibyśmy to zrobić pisząc trzy
Bardziej szczegółowo3. Wykład 3: Dowody indukcyjne, strategie dowodowe Dowody indukcyjne. Dotychczas zobaczyliśmy w jaki sposób można specyfikować definicje
3. Wykład 3: Dowody indukcyjne, strategie dowodowe. 3.1. Dowody indukcyjne. Dotychczas zobaczyliśmy w jaki sposób można specyfikować definicje indukcyjne kategorii syntaktycznych lub osądów, czy też w
Bardziej szczegółowoMetoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa.
Plan Procedura decyzyjna Reguły α i β - algorytm Plan Procedura decyzyjna Reguły α i β - algorytm Logika obliczeniowa Instytut Informatyki 1 Procedura decyzyjna Logiczna konsekwencja Teoria aksjomatyzowalna
Bardziej szczegółowo... [a n,b n ] kn [M 1,M 2 ], gdzie a i M 1, b i M 2, dla i {1,..., n}. Wówczas: [a 1,b 1 ] k 1. ... [a n,b n ] kn =(a 1 b 1 a 1
4. Wykład 4: Grupy rozwiązalne i nilpotentne. Definicja 4.1. Niech (G, ) będzie grupą. Wówczas (1) ciąg podgrup grupy G zdefiniowany indukcyjnie wzorami G (0) = G, G (i) =[G (i 1),G (i 1) ], dla i N nazywamy
Bardziej szczegółowoInstrukcje sterujące
Podstawy programowania w C++ Bibliografia: Instrukcje sterujące Nauka programowania dla początkujących; A. Struzińska-Walczak / K. Walczak CPA: PROGRAMMING ESSENTIALS IN C++ https://www.netacad.com Opracował:
Bardziej szczegółowoZa pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa).
Algorytmy definicja, cechy, złożoność. Algorytmy napotykamy wszędzie, gdziekolwiek się zwrócimy. Rządzą one wieloma codziennymi czynnościami, jak np. wymiana przedziurawionej dętki, montowanie szafy z
Bardziej szczegółowoObóz Naukowy Olimpiady Matematycznej Gimnazjalistów
Obóz Naukowy Olimpiady Matematycznej Gimnazjalistów Liga zadaniowa 202/203 Seria VI (grudzień 202) rozwiązania zadań 26. Udowodnij, że istnieje 0 00 kolejnych liczb całkowitych dodatnich nie większych
Bardziej szczegółowoPętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady
Pętle i tablice. Spotkanie 3 Dr inż. Dariusz JĘDRZEJCZYK Pętle: for, while, do while Tablice Przykłady 11/26/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Pętla w największym uproszczeniu służy
Bardziej szczegółowoPODSTAWY 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ą
Bardziej szczegółowoDrzewa wyszukiwań binarnych (BST)
Drzewa wyszukiwań binarnych (BST) Krzysztof Grządziel 12 czerwca 2007 roku 1 Drzewa Binarne Drzewa wyszukiwań binarnych, w skrócie BST (od ang. binary search trees), to szczególny przypadek drzew binarnych.
Bardziej szczegółowoProgramowanie 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
Bardziej szczegółowoLX Olimpiada Matematyczna
LX Olimpiada Matematyczna Rozwiązania zadań konkursowych zawodów stopnia drugiego 13 lutego 2009 r. (pierwszy dzień zawodów) Zadanie 1. Liczby rzeczywiste a 1, a 2,..., a n (n 2) spełniają warunek a 1
Bardziej szczegółowoMatematyka dyskretna. Andrzej Łachwa, UJ, a/15
Matematyka dyskretna Andrzej Łachwa, UJ, 2017 andrzej.lachwa@uj.edu.pl 3a/15 Indukcja matematyczna Zasada Minimum Dowolny niepusty podzbiór S zbioru liczb naturalnych ma w sobie liczbę najmniejszą. Zasada
Bardziej szczegółowoAlgorytmy i struktury danych. Wykład 4
Wykład 4 Różne algorytmy - obliczenia 1. Obliczanie wartości wielomianu 2. Szybkie potęgowanie 3. Algorytm Euklidesa, liczby pierwsze, faktoryzacja liczby naturalnej 2017-11-24 Algorytmy i struktury danych
Bardziej szczegółowoZasada indukcji matematycznej
Zasada indukcji matematycznej Twierdzenie 1 (Zasada indukcji matematycznej). Niech ϕ(n) będzie formą zdaniową zmiennej n N 0. Załóżmy, że istnieje n 0 N 0 takie, że 1. ϕ(n 0 ) jest zdaniem prawdziwym,.
Bardziej szczegółowoAlgorytm. 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
Bardziej szczegółowoAlgorytmika i programowanie. Wykład 2 inż. Barbara Fryc Wyższa Szkoła Informatyki i Zarządzania w Rzeszowie
Algorytmika i programowanie Wykład 2 inż. Barbara Fryc Wyższa Szkoła Informatyki i Zarządzania w Rzeszowie Tablice Tablica jest zbiorem elementów tego samego typu. Każdy element jest identyfikowany (numer
Bardziej szczegółowoTEORETYCZNE 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
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ółowoWysokość drzewa Głębokość węzła
Drzewa Drzewa Drzewo (ang. tree) zbiór węzłów powiązanych wskaźnikami, spójny i bez cykli. Drzewo posiada wyróżniony węzeł początkowy nazywany korzeniem (ang. root). Drzewo ukorzenione jest strukturą hierarchiczną.
Bardziej szczegółowoMatematyka dyskretna. Andrzej Łachwa, UJ, /15
Matematyka dyskretna Andrzej Łachwa, UJ, 2015 andrzej.lachwa@uj.edu.pl 3/15 Indukcja matematyczna Poprawność indukcji matematycznej wynika z dobrego uporządkowania liczb naturalnych, czyli z następującej
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ół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ółowoTeoretyczne podstawy informatyki
Teoretyczne podstawy informatyki Wykład 4a: Rozwiązywanie rekurencji http://kiwi.if.uj.edu.pl/~erichter/dydaktyka2010/tpi-2010 Prof. dr hab. Elżbieta Richter-Wąs 1 Czas działania programu Dla konkretnych
Bardziej szczegółowoPodstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno
Instrukcja laboratoryjna 5 Podstawy programowania 2 Temat: Drzewa binarne Przygotował: mgr inż. Tomasz Michno 1 Wstęp teoretyczny Drzewa są jedną z częściej wykorzystywanych struktur danych. Reprezentują
Bardziej szczegółowoWstęp do programowania. Drzewa podstawowe techniki. Piotr Chrząstowski-Wachtel
Wstęp do programowania Drzewa podstawowe techniki Piotr Chrząstowski-Wachtel Drzewa wyszukiwań Drzewa często służą do przechowywania informacji. Jeśli uda sie nam stworzyć drzewo o niewielkiej wysokości
Bardziej szczegółowoPodstawy 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
Bardziej szczegółowoPodstawy Programowania
Podstawy Programowania Monika Wrzosek Instytut Matematyki Uniwersytet Gdański Matematyka 2017/18 Monika Wrzosek (IM UG) Podstawy Programowania 1 / 119 Sprawy organizacyjne E-mail: mwrzosek@mat.ug.edu.pl
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ółowoProgramowanie komputerowe. Zajęcia 2
Programowanie komputerowe Zajęcia 2 Funkcje Funkcje są podstawowym składnikiem programów w C++. Każda funkcja jest fragmentem programu, który można używać wielokrotnie i niezależnie od pozostałych funkcji.
Bardziej szczegółowoAnatomia definicji rekursywnej. Anatomia definicji rekursywnej. int silnia(intn){ if(n==0) return 1; else return n*silnia(n-1); }
Anatomia definicji rekursywnej int silnia(intn){ if(n==0) return 1; else return n*silnia(n-1); PRZYPADEK BAZOWY PRZYPADEK REKURSYWNY Definicja rekursywna musi zawierać przypadek bazowy, czyli kod bez wywołania
Bardziej szczegółowoFUNKCJA REKURENCYJNA. function s(n:integer):integer; begin if (n>1) then s:=n*s(n-1); else s:=1; end;
Rekurencja Wykład: rekursja, funkcje rekurencyjne, wywołanie samej siebie, wyznaczanie poszczególnych liczb Fibonacciego, potęgowanie, algorytm Euklidesa REKURENCJA Rekurencja (z łac. recurrere), zwana
Bardziej szczegółowo4 Klasyczny rachunek zdań
4 Klasyczny rachunek zdań Elementy Logiki i Teorii Mnogości 2015/2016 Spis najważniejszych tautologii: (a) p p prawo wyłączonego środka (b) ( p) p prawo podwójnej negacji (c) p q q p (d) p q q p prawo
Bardziej szczegółowoF t+ := s>t. F s = F t.
M. Beśka, Całka Stochastyczna, wykład 1 1 1 Wiadomości wstępne 1.1 Przestrzeń probabilistyczna z filtracją Niech (Ω, F, P ) będzie ustaloną przestrzenią probabilistyczną i niech F = {F t } t 0 będzie rodziną
Bardziej szczegółowoIndukcja matematyczna. Matematyka dyskretna
Indukcja matematyczna Matematyka dyskretna Indukcja matematyczna Indukcja matematyczna będzie przez nas używana jako metoda dowodzenia twierdzeń. Zazwyczaj są to twierdzenia dotyczące liczb naturalnych,
Bardziej szczegółowoZnaleźć 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
Bardziej szczegółowoStrategia "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
Bardziej szczegółowoAndrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki. Wykład 10. Twierdzenie o pełności systemu aksjomatycznego KRZ
Andrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki Wykład 10. Twierdzenie o pełności systemu aksjomatycznego KRZ 1 Tezy KRZ Pewien system aksjomatyczny KRZ został przedstawiony
Bardziej szczegółowoJęzyk C zajęcia nr 5
Język C zajęcia nr 5 Instrukcja wyboru switch switch ( wyr ) inst Głównym przeznaczeniem instrukcji switch jest rozgałęzianie wykonania programu na wiele różnych ścieżek w zależności od wartości pewnego
Bardziej szczegółowoWprowadzenie do algorytmiki
Wprowadzenie do algorytmiki Pojecie algorytmu Powszechnie przyjmuje się, że algorytm jest opisem krok po kroku rozwiązania postawionego problemu lub sposób osiągnięcia jakiegoś celu. Wywodzi się z matematyki
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ółowoE-learning - matematyka - poziom rozszerzony. Funkcja wykładnicza. Materiały merytoryczne do kursu
E-learning - matematyka - poziom rozszerzony Funkcja wykładnicza Materiały merytoryczne do kursu Definicję i własności funkcji wykładniczej poprzedzimy definicją potęgi o wykładniku rzeczywistym. Poprawna
Bardziej szczegółowoKlasa 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
Bardziej szczegółowoMatematyka dyskretna - 7.Drzewa
Matematyka dyskretna - 7.Drzewa W tym rozdziale zajmiemy się drzewami: specjalnym przypadkiem grafów. Są one szczególnie przydatne do przechowywania informacji, umożliwiającego szybki dostęp do nich. Definicja
Bardziej szczegółowoMatematyka dyskretna. Andrzej Łachwa, UJ, /14
Matematyka dyskretna Andrzej Łachwa, UJ, 2019 andrzej.lachwa@uj.edu.pl 4/14 Indukcja matematyczna Poprawność indukcji matematycznej wynika z dobrego uporządkowania liczb naturalnych, czyli z następującej
Bardziej szczegółowo