Wstęp do informatyki. Algorytm. Algorytmika. Cezary Bolek. Uniwersytet Łódzki
|
|
- Dagmara Leśniak
- 7 lat temu
- Przeglądów:
Transkrypt
1 Wstęp do informatyki Algorytmika Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki Algorytm Przepis na rozwiązanie określonego problemu za pomocą prostych czynności wykonywanych w ściśle określonej kolejności. Czynności: 1. muszą być znacznie prostsze od realizowanego algorytmu 2. muszą być wykonywalne dla danego sprzętu (prostota czynności jest sprawą względną) Kolejność: 1. określenie kolejności wykonywania czynności jest krytyczne dla osiągnięcia celu algorytmu; 2. musi istnieć mechanizm rozgałęziania algorytmu, tj. decydowania o kolejności w trakcie wykonywania algorytmu na podstawie zaistniałych warunków. Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 2 1
2 Innymi słowy, czym jest algorytm? Zbiór logicznie powiązanych kroków prowadzących do określonego celu Sposób rozwiązania problemu "Przepis" Sposób opisu zachowania Algorytm zawiera: Dane Instrukcje Wstęp do informatyki Cezary Bolek 3 Rola algorytmu Dane wejściowe Algorytm Dane wyjściowe Wstęp do informatyki Cezary Bolek 4 2
3 Algorytm Przepis Ciasteczka czekoladowe DANE (składniki) 2 1/4 szklanki mąki 1 łyŝeczka soli 1 łyŝeczki proszku do pieczenia 2 jajka 3/4 szklanki brązowego cukru 1 łyŝeczki wanilii 3/4 szklanki cukru 1 paczka masła 30 dag startej na tarce czekolady INSTRUKCJE (czynności) Rozgrzać piekarnik do temperatury 375 C. W misie zmieszać mąkę, sól, proszek do pieczenia. Utrzeć razem cukier, masło i wanilię aŝ do uzyskania jednolitej konsystencji. Dodać jajka i utrzeć. Dodać zmieszaną wcześniej mąkę, sól itd., utrzeć. Dodać kawałki czekolady NałoŜyć łyŝeczką niewielkie porcje ciasta na blachę przykrytą papierem do pieczenia. Piec 8 do 10 minut. Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 5 Cechy dobrego algorytmu Dobry algorytm musi być: Skończony Kompletny Jednoznaczny Poprawny Prosty Zawierać poziomy abstrakcji Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 6 3
4 Cechy algorytmu Skończoność: algorytm musi zapewnić osiągnięcie do rozwiązania w skończonej liczbie kroków (a więc teŝ w skończonym czasie). Skończona liczba kroków nie oznacza, ze z góry wiadomo po ilu krokach algorytm się zakończy. Komunikat o błędzie lub braku rozwiązania teŝ jest jednym z moŝliwych poprawnych zakończeń realizacji algorytmu. np. Obliczanie wartości sin(x) moŝna wykonać numerycznie za pomocą sumowania kolejnych wyrazów szeregu: x x x x sin x = x + + K 3! 5! 7! 9! Algorytm taki musi posiadać warunek zakończenie tej operacji (np. kryterium dokładności) aby nie wykonywał się, mimo Ŝe poprawnie, w nieskończoność. Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 7 Cechy algorytmu Kompletność: algorytm musi uwzględniać wszystkie moŝliwe przypadki, które mogą pojawić się podczas jego realizacji. Uwzględnienie róŝnych przypadków oznacza zapewnienie dalszej realizacji algorytmu, zgodnie z przewidzianymi na taką okoliczność instrukcjami. W praktyce programistycznej oznacza to przewidzenie wystąpienia błędów numerycznych i logicznych oraz opracowanie systemu reakcji (komunikaty o błędach, odpowiednie zakończenie działania). np. Obliczanie rozwiązań równania kwadratowego wymaga uwzględnienia przypadków: 2 b 4ac > 0, 2 b 4ac < 0 Brak sprawdzenia trzeciego warunku (=0) i wartości parametru a jest przypadkiem niekompletności algorytmu i moŝe spowodować jego błędne działanie. Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 8 4
5 Cechy algorytmu Jednoznaczność: dla tych samych danych wejściowych algorytm musi zawsze dawać te same wyniki. Jednoznaczność w praktyce oznacza niezaleŝność działania programu od momentu jego wykonania, wpływu innych programów realizowanych równocześnie przez system operacyjny oraz, co najtrudniejsze, od sprzętu realizującego dany algorytm. np. Algorytmy wykonujące obliczenia arytmetyczne powinny dawać dokładnie takie same wyniki na róŝnych komputerach i systemach operacyjnych - jest to bardzo trudne do spełnienia (róŝne kodowanie liczb, róŝne algorytmy ich przetwarzania) Algorytmy formatujące tekst (procesory tekstu) powinny dawać taki sam wygląd strony (układ tekstu, łamanie wyrazów, etc.) zgodny z informacją zapisaną w pliku, niezaleŝnie od typu komputera i wersji systemu operacyjnego Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 9 Co jest złego w tym algorytmie? (Z etykiety szamponu) Sposób uŝycia: Zmoczyć włosy NałoŜyć niewielką ilość szamponu na włosy Wetrzeć Spłukać Czynności powtórzyć Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 10 5
6 Terminologia Algorytm moŝe być wykonany przez kaŝdego (człowieka lub maszynę), kto zna język, w którym zapisano algorytm. Wykonawca algorytmu musi umieć wykonywać jego instrukcje, ale nie musi znać jego istoty algorytmu lub jego przeznaczenia, aby osiągnąć poŝądany wynik. Języki przeznaczone do zapisu algorytmów w postaci instrukcji zrozumiałych przez maszynę cyfrową noszą nazwę języków programowania. Algorytm zapisany w języku programowania nosi nazwę: programu. Języki programowania (wysokiego poziomu) są kompromisem pomiędzy językiem naturalnym (zrozumiałym dla człowieka) a pojęciami bliskimi konstrukcji maszyny cyfrowej (bity, bajty, etc.) Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 11 Dane algorytmu KaŜdy algorytm wykonuje operacje na obiektach: liczbach i ich bardziej złoŝonych strukturach. liczby, wektory, tablice, rekordy, struktury, unie, stosy kolejki, listy, drzewa, grafy... Liczby są zwykle modelami obiektów rzeczywistych, w aspekcie tych cech, którymi zajmuje się algorytm. wartość pojedynczej liczby moŝe być modelem wysokości zarobku w programie finansowym, wektor trzech liczb moŝe być modelem punktu w przestrzeni w programie grafiki trójwymiarowej, kolejka moŝe być modelem zgłoszeń zapytań w programie bazy danych, etc. Konstrukcja kaŝdego algorytmu stoi na dwóch nogach : - algorytmizacji problemu (rozbiciu na elementarne operacje), - doborze właściwych struktur danych, stosownych do zadania, którego dotyczy algorytm. Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 12 6
7 Problem Program Algorytm Problem Struktury danych Program Algorytmizacja Kodowanie Programowanie Wstęp do informatyki Cezary Bolek 13 Sposoby opisu algorytmu Język naturalny (np. angielski) Opis graficzny (np. sieć działań) Pseudokod lub język programowania Wstęp do informatyki Cezary Bolek 14 7
8 Algorytm: Średnie zuŝycie paliwa w l/km 1. Pobierz wartości: zuŝyte paliwo w litrach, początkowy i końcowy stan licznika w kilometrach 2. Ustaw wartość: przejechany dystans na wartość (końcowy stan licznika - początkowy stan licznika) 3. Ustaw wartość: średnie zuŝycie paliwa na wartość (zuŝyte paliwo / przejechany dystans) 4. Wydrukuj wartość: średnie zuŝycie paliwa 5. Koniec Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 15 Zapis algorytmu - sieć działań Zwięzłość, czytelność i wysoki poziom abstrakcji Sieć działań (schemat blokowy): 1. Elementarne czynności oznaczone są blokami (węzły sieci), a kolejność wyznaczona jest poprzez gałęzie sieci, łączące węzły. 2. Kształt bloków odpowiada rodzajowi operacji, a strzałki gałęzi identyfikują jednoznacznie ich kolejność. 3. NiezaleŜność struktury algorytmu od architektury konkretnej maszyny i rodzaju kodowania liczb. Za pomocą sieci działań moŝliwe jest zapisanie kaŝdego poprawnego algorytmu! KaŜdy algorytm moŝna zapisać za pomocą wielu róŝnych sieci działań! Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 16 8
9 Sieć działań: przykład Start Stwórz listę zajęć w których chcesz uczestniczyć Liczba Godzin = 0 Wybierz przedmiot o najwyŝszym priorytecie tak Czy są wolne miejsca? nie tak Czy konflikt czasowy? nie Dodaj przedmiot do rozkładu zajęć. Dodaj czas przedmiotu do Liczba Godzin Usuń przedmiot z listy tak Liczba Godzin >= 15? tak nie Są jakieś przedmioty na liście? nie Koniec Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 17 Sieć działań operacja blok operacyjny (obliczeniowy) dokładnie jedno wejście i jedno wyjście realizacja elementarnej czynności wartość 1 wartość 2 warunek blok decyzyjny (warunkowy) dokładnie jedno wejście, dwa lub więcej wyjść warunek jest zdaniem (wyraŝeniem arytmetycznym), które w danej sytuacji moŝe przyjmować róŝne wartości wartość 1 warunek wartość 2... wartość n blok warunkowy jest miejscem rozgałęziania programu: kolejna instrukcja do wykonania jest wyznaczana przez gałąź z opisem wartości równym wartości testowanego wyraŝenia Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 18 9
10 Sieć działań dane blok wejścia-wyjścia (we/wy) dokładnie jedno wejście i jedno wyjście oznaczenia miejsca wymiany danych pomiędzy algorytmem a światem zewnętrznym, bez konkretyzowania źródła danych i metody tej operacji Start blok startu dokładnie jedno wyjście oznaczenia początku algorytmu Stop blok startu dokładnie jedno wejście oznaczenia końca algorytmu Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 19 Zmienne Liczby (i struktury danych) występują w algorytmach i programach komputerowych w postaci zmiennych. Zmienna jest obiektem, który posiada dwa atrybuty: - nazwę, czyli symbol poprzez który odwołujemy się do zmiennej, - wartość, czyli liczbę przypisaną do danego symbolu. Podstawowe operacje wykonywane na zmiennych: arytmetyczne : a+4 b-a a+d*5 przypisanie : a 5 b a c a+b porównanie : a=5 b>a c<=a+b Symbole operatorów przypisania i porównania zaleŝą od języka programowania, ale zawsze operator przypisania zmienia wartość zmiennej, a operatory porównania nie. WyraŜenie zawierające operatory porównania moŝna oceniać w sensie logiki matematycznej (prawda lub fałsz). Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 20 10
11 Przykład A Znajdowanie największej z trzech liczb: max(a,b,c) Start a,b,c T a>b N T a>c N T c>b N drukuj a drukuj c drukuj b Stop Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 21 Przykład B Start a,b,c m a Znajdowanie największej z trzech liczb: max(a,b,c) m<b N m<c N drukuj m Stop T T m b m c Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 22 11
12 A max(a,b,c) rozmiar: 4 we/wy 3 dec. 0 op. szybkość: 2 we/wy 2 dec. 0 op. rozbudowa: trudna Sieci A vs B? B max(a,b,c) rozmiar: 2 we/wy 2 dec. 3 op. szybkość: 2 we/wy 2 dec op. rozbudowa: łatwa Rozwiązanie problemu moŝliwe jest za pomocą róŝnych sieci działań. Optymalizacja algorytmu polega na znalezieniu sieci najlepszej według określonego kryterium: np. rozmiaru, szybkości, rozbudowy. Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 23 Analiza algorytmów we wy??? Analiza poprawności sieci działań jest zadaniem skomplikowanym. Prześledzenie wszystkich ścieŝek przejścia przez sieć dla wszystkich moŝliwych danych jest zwykle niemoŝliwe. W praktyce testowanie algorytmów dotyczy sytuacji: typowych krytycznych Techniki konstrukcji sieci wspomagające analizę poprawności to: podział na moduły (podprogramy) tworzenie sieci strukturalnych (programowanie strukturalne) Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 24 12
13 Sieci strukturalne Podstawowe rodzaje konstrukcji strukturalnych: sekwencja selekcja s1 c s2 s1 s2 sn c selekcja wielokrotna s1 s2 sn Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 25 Sieci strukturalne Podstawowe rodzaje konstrukcji strukturalnych: cykl (pętla) s T c N N s c pre-check T post-check Instrukcja s będzie wykonana 0 lub więcej razy. Cykl jest powtarzany dopóki spełniony jest warunek c. Instrukcja s będzie wykonana 1 lub więcej razy. Cykl jest powtarzany aŝ do spełnienia warunku c. Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 26 13
14 Algorytmy strukturalne KaŜda konstrukcja strukturalna (sekwencja, selekcja, cykl) posiada dokładnie jedno wejście i jedno wyjście. Sekwencja składa się z instrukcji, które są wykonywane w danej konstrukcji tylko jedne raz w ściśle określonej kolejności. Selekcja musi uwzględniać wszystkie moŝliwe wartości, które moŝe przyjmować warunek selekcji (kompletność). Cykl nie moŝe być nieskończony (skończoność), a zmienna występująca w warunku (zmienna sterująca cyklu) musi być modyfikowana wewnątrz cyklu. Za pomocą sekwencji, selekcji i cykli moŝna zapisać kaŝdy algorytm. Algorytmy zapisane jedynie za pomocą sekwencji, selekcji i cykli nazywają się algorytmami strukturalnymi (sieci strukturalne) Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 27 Struktura modułowa Algorytmy strukturalne moŝna redukować, zastępując złoŝone fragmenty blokami o wyŝszym stopniu funkcjonalności. Podział na moduły ułatwia testowanie całego programu, gdyŝ moŝna zapewnić oddzielnie poprawność modułów (black box), a następnie całej, zredukowanej sieci. Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 28 14
15 Zalety stosowania struktury modularnej Szczegóły algorytmu są ukryte w "pod-algorytmach" co poprawia czytelność całości poprzez "ukrycie" mało czytelnych fragmentów Ułatwia tworzenie algorytmu poprzez podział problemu na części o prostszej konstrukcji (pozwala pracować zespołom nad jednym projektem) Oszczędzanie czasu, nakładu pracy ale takŝe rozmiaru algorytmu - moduły mogą być "wywoływane" z dowolnego miejsca wewnątrz algorytmu UmoŜliwia ponowne wykorzystanie raz utworzonych modułów w innych, nowo tworzonych algorytmach - reusing Ułatwia wyszukiwanie błędów i późniejsze "utrzymanie" kodu Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 29 Programowanie strukturalne Konstrukcja strukturalne (sekwencje, selekcje, cykle) są realizowane w językach programowania jako tzw. instrukcje sterujące. Programowanie strukturalne polega na konstruowaniu programów wykorzystując jedynie struktur sekwencji, selekcji i cykli. Zalety programowania strukturalnego: hierarchiczna i modułowa struktura programu moŝliwość tworzenia programu w stylu top-down lub bottom-up moŝliwość analizy poprawności programu łatwość modyfikacji, redukcja błędów i czasu pisania programu moŝliwość wykorzystania modułów do innych programów Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 30 15
16 Programowanie strukturalne Języki strukturalne Pascal, C, Java... Języki niestrukturalne Fortran, Basic... (goto) siec strukturalna siec niestrukturalna (spaghetti programing) Wstęp do informatyki Cezary Bolek 31 Błędy w algorytmach Systemowe polegające na nieporozumieniu pomiędzy załoŝonymi zadaniami algorytmu a sposobem ich realizacji, lub błędnej ich interpretacji. Logiczne polegające na błędnej interpretacji analizowanej w algorytmie sytuacji lub nie uwzględnieniu moŝliwości zaistnienia sytuacji dodatkowych. np. a (x,y) a<x i a>y czy a<x lub a>y Składniowe polegają na niewłaściwym uŝyciu składni danego języka, w taki sposób, Ŝe nie powoduje to błędu składniowego, tylko inne znaczenie zapisu (poprawne językowo, ale niezgodne z intencją autora). x/y/z x/(y*z) czy x/(y/z) Komputery są nieomylne! błędy tkwią w danych wejściowych lub konstrukcji algorytmu. Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 32 16
17 Błędy... przykład nieskończone pętle: X = 0 Nie Czy X=100? Tak Nie Czy X=1? Tak X = X + 1 X = X Co się stanie gdy na początku cyklu X będzie równe 200 lub 10.5? Co się stanie przy załoŝeniu, Ŝe zmienna X liczbą zmiennopozycyjną (IEEE754)? Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 33 Błędy... przykład Fragment algorytmu automatycznej analizy rachunków za energię elektryczną pobierz dane następnego klienta Tak Czy klient nie płaci dłuŝej niŝ x miesięcy? dolicz odsetki i kolejny miesiąc opóźnienia Nie Nie Tak czy wpłynęła opłata za ostatni miesiąc? Tak czy zadłuŝenie klienta wynosi 0? Nie Odetnij prąd, skieruj sprawę do sądu Wyślij upomnienie kasuj dane o zaległościach Jaka będzie reakcja na nieterminowe spłaty rachunku? Jaka będzie reakcja na częściową spłatę zadłuŝenia? Jaka będzie reakcja na brak zapłaty rachunku zerowego? czy to ostatni klient? Tak Nie Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 34 17
18 Błędy... przykład Algorytm wykrywający pracowników, których zarobki są większe od ich kierowników pobierz dane pierwszego pracownika (P) pobierz dane pierwszego pracownika (K) Tak czy K jest kierownikiem P? Tak drukuj dane pracownika (P) czy zarobki P > K? Nie Nie czy K jest ostatni na liście? Tak czy P jest ostatni na liście? Tak Nie Nie pobierz dane następnego pracownika (K) pobierz dane następnego pracownika (P) Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 35 ZłoŜoność obliczeniowa ZłoŜoność obliczeniowa miara efektywności algorytmu Podawana jako liczba operacji potrzebnych do wykonania algorytmu, wyraŝona w stosunku do liczby elementów zbioru (n), na którym działa dany algorytm. PoniewaŜ dokładna liczba operacji zaleŝy od konkretnych danych wejściowych, złoŝoność obliczeniową podaje się dla najgorszego moŝliwego przypadku ZłoŜoność obliczeniową wyraŝa się za pomocą tzw. notacji O( ), która określa dominującą tendencję zaleŝności liczby operacji od n. np. algorytm sortowania bąbelkowego zbioru n-elementowego: liczba porównań = 0.5(n 2 -n) liczba przesunięć = 0.75(n 2 -n) złoŝoność obliczeniowa = O(n 2 ) np. 100n, 2n+4, 0.5n+n -1, 0.01n O(n) Big-Oh Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 36 18
19 ZłoŜoność... Realne ulepszenie algorytmu następuje tylko wówczas, gdy uda się osiągnąć mniejszą złoŝoność w notacji O( ) Wpływ złoŝoności obliczeniowej uwidacznia się dla odpowiednio duŝych wartości n operacje (czas) O(n 2 ) O(n) O(log(n)) n i n j n k n Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 37 ZłoŜoność... przykład Sortowanie zbioru n=1,000,000 (słowniki, ksiąŝki telefoniczne, bazy danych) Proste metody sortowania O(n 2 ) (wstawianie, wybieranie, bąbelkowe) Sprzęt Czas 1mln op/s 6 dni 100,000 op/s 2 miesiące 10,000 op/s 2 lata Zaawansowane metody sortowania O(n*log(n)) (Shell a, przez podział,... ) Sprzęt Czas 1mln op/s 012s 100,000 op/s 2min 10,000 op/s 20min (op/s dotyczy operacji na elementach sortowanego zbioru, które mogą być złoŝone, a nie elementarnych operacji procesora. Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 38 19
20 ZłoŜoność... przykład Sortowanie zbioru n=1,000,000,000 (symulacje fizyczne, astronomiczne, biologiczne) Proste metody sortowania O(n 2 ) (wstawianie, wybieranie, bąbelkowe) Sprzęt 1mln op/s Czas 160 lat Zaawansowane metody sortowania O(n*log(n)) (Shell a, przez podział,... ) Sprzęt Czas 1mln op/s 0.5h 100,000 op/s 4.5h 10,000 op/s 2 dni (op/s dotyczy operacji na elementach sortowanego zbioru, które mogą być złoŝone, a nie elementarnych operacji procesora. Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 39 Poprawna interpretacja O() O(1) or Stopnia pierwszego Nie znaczy, Ŝe algorytm wykona tylko jedną operację Znaczy, Ŝe nakład pracy nie zmienia się gdy zmienia się N Oznaczenie stałych nakładów pracy O(n) or Stopnia n Nie znaczy, Ŝe algorytm wykona n operacji Znaczy, Ŝe nakłady pracy zmieniają się w sposób proporcjonalny do n Oznaczenie "liniowo rosnących nakładów pracy" Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 40 20
21 Klasy złoŝoności obliczeniowej log n logarytmiczna n liniowa n*log n liniowo-logarytmiczna n 2 kwadratowa n k wielomianowa 2 n wykładnicza n! silnia n n... Hierarchia funkcji: log n << n << n*log n << n 2 << n 3 << 2 n << n! Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 41 Ograniczenia złoŝoności np. O(n 5 ) O(n 3 ) Ograniczenie górne związane jest z najlepszym znanym algorytmem rozwiązania danego problemu. luka algorytmiczna problem otwarty ogr.górne > ogr. dolne problem zamknięty ogr.górne = ogr. dolne O(n) O(n*log n) Ograniczenie dolne związane jest z matematycznym dowodem niemoŝliwości rozwiązania problemu za pomocą mniejszej niŝ wykazana liczby operacji Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 42 21
22 Przykład - WieŜe Hanoi A B C Cel: Przenieść wszystkie krąŝki z jednego drąŝka na inny Zasada 1: Wolno przenosić tylko jeden krąŝek za kaŝdym razem Zasada 2: Nie wolno połoŝyć większego krąŝka na mniejszym Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 43 WieŜe Hanoi: Rozwiązanie Stan początkowy Ruch 1 Ruch 2 Ruch 3 Ruch 4 Ruch 5 Ruch 6 Ruch 7 Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 44 22
23 WieŜe Hanoi - ZłoŜoność Dla trzech pierścieni naleŝy wykonać 7 operacji. W ogólnym przypadku: koszt wynosi 2 N 1 = O(2 N ) Przy kaŝdym zwiększeniu N o jeden, nakłady pracy zwiększają się dwukrotnie. Przyrost pracy rośnie bardzo szybko! Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 45 WieŜe Hanoi (2 N ) Dla N = 64 2 N = 2 64 = 18,450,000,000,000,000,000 Dysponując komputerem mogącym wykonywać milion instrukcji na sekundę Wykonanie zajęłoby 584,000 lat! Ale moŝe być jeszcze gorzej Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 46 23
24 ZłoŜoność rozsądna i nierozsądna Algorytmy o rozsądnej złoŝoności obliczeniowej mają złoŝoność najwyŝej wielomianową : O (Log N) O (N) O (N K ) gdzie K jest stałą Algorytmy o nierozsądnej złoŝoności obliczeniowej mają złoŝoność wykładniczą i wyŝszą O (2 N ) O (N!) O (N N ) O( ) n log n n ,000 90,000 1,000,000 n ,000,000 27mln 1mld (10-cyfr) 2 n cyfr 31-cyfr 91-cyfr n! 3,6mld 65-cyfr 161-cyfr n n 10mld 85-cyfr 201-cyfr dla porównania: liczba protonów we wszechświecie 126-cyfr liczba mikrosekund od powstania wszechświata 24 cyfry Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 47 24
Algorytmy i struktury danych
Algorytmy i struktury danych Definicja i cechy algorytmów Sieci działań Programowanie strukturalne Witold Marańda maranda@dmcs.p.lodz.pl 1 Literatura 1. iklaus Wirth, Algorytmy + Struktury danych = Programy,
Bardziej szczegółowoPrzepis na rozwiązanie określonego problemu za pomocą prostych czynności wykonywanych w ściśle określonej kolejności.
Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki Przepis na rozwiązanie określonego problemu za pomocą prostych czynności wykonywanych w ściśle określonej kolejności. Czynności:
Bardziej szczegółowoWstęp do informatyki. Algorytm. Innymi słowy, czym jest algorytm?
Wstęp do informatyki Algorytmika Cezary Bolek cbolek@ki.uni.lodz.pl Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki Algorytm Przepis na rozwiązanie określonego problemu za pomocą prostych czynności
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ółowoWykład z Technologii Informacyjnych. Piotr Mika
Wykład z Technologii Informacyjnych Piotr Mika Uniwersalna forma graficznego zapisu algorytmów Schemat blokowy zbiór bloków, powiązanych ze sobą liniami zorientowanymi. Jest to rodzaj grafu, którego węzły
Bardziej szczegółowoArchitektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy
Wstęp do informatyki Architektura komputera Cezary Bolek cbolek@ki.uni.lodz.pl Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki System komputerowy systemowa (System Bus) Pamięć operacyjna ROM,
Bardziej szczegółowoMagistrala systemowa (System Bus)
Cezary Bolek cbolek@ki.uni.lodz.pl Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki systemowa (System Bus) Pamięć operacyjna ROM, RAM Jednostka centralna Układy we/wy In/Out Wstęp do Informatyki
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ółowo11. 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
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ół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ółowoAlgorytmy i struktury danych
Algorytmy i struktury danych Funkcje i procedury Zasięg zmiennych Rekurencja Witold Marańda maranda@dmcs.p.lodz.pl 1 Modularyzacja programu Algorytmy strukturalne moŝna redukować, zastępując złoŝone fragmenty
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ółowoWstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek
Wstęp do informatyki Architektura komputera Cezary Bolek cbolek@ki.uni.lodz.pl Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki System komputerowy systemowa (System Bus) Pamięć operacyjna ROM,
Bardziej szczegółowoEfektywna metoda sortowania sortowanie przez scalanie
Efektywna metoda sortowania sortowanie przez scalanie Rekurencja Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Metoda dziel i zwycięŝaj Dzielimy
Bardziej szczegółowoTechnologie informacyjne - wykład 12 -
Zakład Fizyki Budowli i Komputerowych Metod Projektowania Instytut Budownictwa Wydział Budownictwa Lądowego i Wodnego Politechnika Wrocławska Technologie informacyjne - wykład 12 - Prowadzący: Dmochowski
Bardziej szczegółowoInformatyka wprowadzenie do algorytmów (II) dr hab. inż. Mikołaj Morzy
Informatyka wprowadze do algorytmów (II) dr hab. inż. Mikołaj Morzy plan wykładu cechy algorytmów sposoby zapisu algorytmów klasyfikacja algorytmów przykłady algorytmów sumowa przeszukiwa ciągu liczb sortowa
Bardziej szczegółowoTechnologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15
Technologie cyfrowe Artur Kalinowski Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Artur.Kalinowski@fuw.edu.pl Semestr letni 2014/2015 Zadanie algorytmiczne: wyszukiwanie dane wejściowe:
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ółowoECDL 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
Bardziej szczegółowoAlgorytmika 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
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ółowoAlgorytmy. Programowanie Proceduralne 1
Algorytmy Programowanie Proceduralne 1 Przepis Warzenie piwa Brunświckiego Programowanie Proceduralne 2 Przepis Warzenie piwa Brunświckiego składniki (dane wejściowe): woda, słód, itd. wynik: beczka piwa
Bardziej szczegółowoAlgorytmy. Programowanie Proceduralne 1
Algorytmy Programowanie Proceduralne 1 Przepis Warzenie piwa Brunświckiego Programowanie Proceduralne 2 Przepis Warzenie piwa Brunświckiego składniki (dane wejściowe): woda, słód, itd. wynik: beczka piwa
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ółowoINFORMATYKA 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
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ółowoProgramowanie komputerów
Programowanie komputerów Wykład 1-2. Podstawowe pojęcia Plan wykładu Omówienie programu wykładów, laboratoriów oraz egzaminu Etapy rozwiązywania problemów dr Helena Dudycz Katedra Technologii Informacyjnych
Bardziej szczegółowoMETODY OPISU ALGORYTMÓW KOMPUTEROWYCH
Wydział Elektryczny Katedra Elektrotechniki Teoretycznej i Metrologii Instrukcja do pracowni z przedmiotu Podstawy Informatyki Kod przedmiotu: TS1C 100 003 Ćwiczenie pt. METODY OPISU ALGORYTMÓW KOMPUTEROWYCH
Bardziej szczegółowoPorównanie czasów działania algorytmów sortowania przez wstawianie i scalanie
Więcej o sprawności algorytmów Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie Załóżmy, że możemy wykonać dane zadanie przy użyciu dwóch algorytmów: jednego o złożoności czasowej
Bardziej szczegółowoZłożoność algorytmów. Wstęp do Informatyki
Złożoność algorytmów Złożoność pamięciowa - liczba i rozmiar struktur danych wykorzystywanych w algorytmie Złożoność czasowa - liczba operacji elementarnych wykonywanych w trakcie przebiegu algorytmu Złożoność
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ółowoInformatyka 1. Złożoność obliczeniowa
Informatyka 1 Wykład XI Złożoność obliczeniowa Robert Muszyński ZPCiR ICT PWr Zagadnienia: efektywność programów/algorytmów, sposoby zwiększania efektywności algorytmów, zasada 80 20, ocena efektywności
Bardziej szczegółowoZapisywanie 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
Bardziej szczegółowoCo to jest algorytm? przepis prowadzący do rozwiązania zadania, problemu,
wprowadzenie Co to jest algorytm? przepis prowadzący do rozwiązania zadania, problemu, w przepisie tym podaje się opis czynności, które trzeba wykonać, oraz dane, dla których algorytm będzie określony.
Bardziej szczegółowoProgramowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat
Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie
Bardziej szczegółowoINFORMATYKA SORTOWANIE DANYCH.
INFORMATYKA SORTOWANIE DANYCH http://www.infoceram.agh.edu.pl SORTOWANIE Jest to proces ustawiania zbioru obiektów w określonym porządku. Sortowanie stosowane jest w celu ułatwienia późniejszego wyszukania
Bardziej szczegółowoAlgorytm - 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
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ółowoAdresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów
Adresowanie obiektów Bit - stan pojedynczego sygnału - wejście lub wyjście dyskretne, bit pamięci Bajt - 8 bitów - wartość od -128 do +127 Słowo - 16 bitów - wartość od -32768 do 32767 -wejście lub wyjście
Bardziej szczegółowoAlgorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne.
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ółowoElżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki
Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Turbo Pascal jest językiem wysokiego poziomu, czyli nie jest rozumiany bezpośrednio dla komputera, ale jednocześnie jest wygodny dla programisty,
Bardziej szczegółowoPodstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 7 Algorytmy
Podstawy Informatyki Inżynieria Ciepła, I rok Wykład 7 Algorytmy Programowanie Sformułowanie problemu. Opracowanie metodyki rozwiązania. Opracowanie algorytmu. Napisanie kodu źródłowego (zakodowanie) w
Bardziej szczegółowoJęzyk ludzki kod maszynowy
Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza
Bardziej szczegółowoAlgorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne.
Algorytm znaczenie informatyczne 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ółowoALGORYTMY I PROGRAMY
ALGORYTMY I PROGRAMY Program to ciąg instrukcji, zapisanych w języku zrozumiałym dla komputera. Ten ciąg instrukcji realizuje jakiś algorytm. Algorytm jest opisem krok po kroku jak rozwiązać problem, czy
Bardziej szczegółowoa[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10] 3-2 5 8 12-4 -26 12 45-76
. p. 1 Algorytmem nazywa się poddający się interpretacji skończony zbiór instrukcji wykonania zadania mającego określony stan końcowy dla każdego zestawu danych wejściowych W algorytmach mogą występować
Bardziej szczegółowoWstęp do informatyki. Pojęcie liczebności. Zapis liczb. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek
Pojęcie liczebności Wstęp do informatyki Podstawy arytmetyki komputerowej Cezary Bolek cbolek@ki.uni.lodz.pl Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki Naturalna zdolność człowieka do postrzegania
Bardziej szczegółowoProgramowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++
Programowanie Wstęp p do programowania Klasa 3 Lekcja 9 PASCAL & C++ Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany w postaci programu
Bardziej szczegółowoAlgorytmy i struktury danych
Algorytmy i struktury danych ZłoŜoność obliczeniowa algorytmów Techniki projektowania algorytmów Witold Marańda maranda@dmcs.p.lodz.pl 1 ZłoŜoność obliczeniowa miara efektywności algorytmu ZłoŜoność obliczeniowa
Bardziej szczegółowoAlgorytmy i struktury danych
Algorytmy i struktury danych Proste algorytmy sortowania Witold Marańda maranda@dmcs.p.lodz.pl 1 Pojęcie sortowania Sortowaniem nazywa się proces ustawiania zbioru obiektów w określonym porządku Sortowanie
Bardziej szczegółowoProgramowanie w języku Python. Grażyna Koba
Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i
Bardziej szczegółowoALGORYTMY Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny
ALGORYMY Algorytm to przepis; zestawienie kolejnych kroków prowadzących do wykonania określonego zadania; to uporządkowany sposób postępowania przy rozwiązywaniu zadania, problemu, z uwzględnieniem opisu
Bardziej szczegółowoMetodyki i techniki programowania
Metodyki i techniki programowania dr inż. Maciej Kusy Katedra Podstaw Elektroniki Wydział Elektrotechniki i Informatyki Politechnika Rzeszowska Elektronika i Telekomunikacja, sem. 2 Plan wykładu Sprawy
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ół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ółowoSCENARIUSZ 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
Bardziej szczegółowoPodstawy Informatyki. Sprawność algorytmów
Podstawy Informatyki Sprawność algorytmów Sprawność algorytmów Kryteria oceny oszczędności Miara złożoności rozmiaru pamięci (złożoność pamięciowa): Liczba zmiennych + liczba i rozmiar struktur danych
Bardziej szczegółowoPodstawy Programowania. Złożoność obliczeniowa
Podstawy Programowania Wykład X Złożoność obliczeniowa Robert Muszyński Katedra Cybernetyki i Robotyki, PWr Zagadnienia: efektywność programów/algorytmów, sposoby zwiększania efektywności algorytmów, zasada
Bardziej szczegółowoProgramowanie 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
Bardziej szczegółowoWstęp do informatyki. Pojęcie liczebności. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek
Wstęp do informatyki Podstawy arytmetyki komputerowej Cezary Bolek cbolek@ki.uni.lodz.pl Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki Pojęcie liczebności Naturalna zdolność człowieka do postrzegania
Bardziej szczegółowoTeraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.
Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1. Grażyna Koba MIGRA 2019 Spis treści (propozycja na 2*32 = 64 godziny lekcyjne) Moduł A. Wokół komputera i sieci komputerowych
Bardziej szczegółowoAlgorytmy i struktury danych Matematyka III sem.
Algorytmy i struktury danych Matematyka III sem. 30 godz. wykł. / 15 godz. ćw. / 15 godz. projekt dr inŝ. Paweł Syty, 413GB, sylas@mif.pg.gda.pl, http://sylas.info Literatura T.H. Cormen i inni, Wprowadzenie
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ółowoPoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.
PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. 1. Instrukcję case t of... w przedstawionym fragmencie programu moŝna zastąpić: var t : integer; write( Podaj
Bardziej szczegółowoAlgorytmy i schematy blokowe
Algorytmy i schematy blokowe Algorytm dokładny przepis podający sposób rozwiązania określonego zadania w skończonej liczbie kroków; zbiór poleceń odnoszących się do pewnych obiektów, ze wskazaniem porządku,
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ółowoWYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA
WYŻSZA SZKOŁA IFORMATYKI STOSOWAEJ I ZARZĄDZAIA Złożoność algorytmów Złożoność pamięciowa algorytmu wynika z liczby i rozmiaru struktur danych wykorzystywanych w algorytmie. Złożoność czasowa algorytmu
Bardziej szczegółowoPOLITECHNIKA OPOLSKA
POLITECHNIKA OPOLSKA WYDZIAŁ MECHANICZNY Katedra Technologii Maszyn i Automatyzacji Produkcji Laboratorium Podstaw Inżynierii Jakości Ćwiczenie nr 2 Temat: Schemat blokowy (algorytm) procesu selekcji wymiarowej
Bardziej szczegółowoPodstawy Programowania Algorytmy i programowanie
Podstawy Programowania Algorytmy i programowanie Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Algorytm Algorytm w matematyce, informatyce, fizyce, itp. lub innej dziedzinie życia,
Bardziej szczegółowoPodstawy Programowania
Podstawy Programowania Wykład X Złożoność obliczeniowa Robert Muszyński ZPCiR ICT PWr Zagadnienia: efektywność programów/algorytmów, sposoby zwiększania efektywności algorytmów, zasada 80 20, ocena efektywności
Bardziej szczegółowoPodstawy Programowania. Złożoność obliczeniowa
Podstawy Programowania Wykład X Złożoność obliczeniowa Robert Muszyński Katedra Cybernetyki i Robotyki, PWr Zagadnienia: efektywność programów/algorytmów, sposoby zwiększania efektywności algorytmów, zasada
Bardziej szczegółowoWYKŁAD. Jednostka prowadząca: Wydział Techniczny. Kierunek studiów: Elektronika i telekomunikacja. Nazwa przedmiotu: Język programowania C++
Jednostka prowadząca: Wydział Techniczny Kierunek studiów: Elektronika i telekomunikacja Nazwa przedmiotu: Język programowania C++ Charakter przedmiotu: podstawowy, obowiązkowy Typ studiów: inŝynierskie
Bardziej szczegółowoPodstawy programowania
Podstawy programowania Elementy algorytmiki C w środowisku.e (C#) dr inż. Grzegorz Zych Copernicanum, pok. 3 lub 206a 1 Minimum programowe reści kształcenia: Pojęcie algorytmu. Podstawowe konstrukcje programistyczne.
Bardziej szczegółowoJęzyki programowania zasady ich tworzenia
Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie
Bardziej szczegółowoPodstawy Programowania 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ół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ółowoWstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 13. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 13 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Złożoność algorytmów czy to istotne, skoro
Bardziej szczegółowoWstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 13. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy Wykład 13 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Złożoność algorytmów czy to istotne, skoro
Bardziej szczegółowoAlgorytmy, reprezentacja algorytmów.
Algorytmy, reprezentacja algorytmów. Wprowadzenie do algorytmów Najważniejszym pojęciem algorytmiki jest algorytm (ang. algorithm). Nazwa pochodzi od nazwiska perskiego astronoma, astrologa, matematyka
Bardziej szczegółowoZasady analizy algorytmów
Zasady analizy algorytmów A więc dziś w programie: - Kilka ważnych definicji i opisów formalnych - Złożoność: czasowa i pamięciowa - Kategorie problemów - Jakieś przykłady Problem: Zadanie możliwe do rozwiązania
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ółowoPodstawy Informatyki Systemy sterowane przepływem argumentów
Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Komputer i jego architektura Taksonomia Flynna 2 Komputer i jego architektura Taksonomia Flynna Komputer Komputer
Bardziej szczegółowoWstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer
Realizacja algorytmu przez komputer Wstęp do informatyki Wykład UniwersytetWrocławski 0 Tydzień temu: opis algorytmu w języku zrozumiałym dla człowieka: schemat blokowy, pseudokod. Dziś: schemat logiczny
Bardziej szczegółowoMetody Programowania
POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI i TECHNIK INFORMACYJNYCH Metody Programowania www.pk.edu.pl/~zk/mp_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład 15: Klasyczne techniki
Bardziej szczegółowoKodowanie informacji. Kody liczbowe
Wykład 2 2-1 Kodowanie informacji PoniewaŜ komputer jest urządzeniem zbudowanym z układów cyfrowych, informacja przetwarzana przez niego musi być reprezentowana przy pomocy dwóch stanów - wysokiego i niskiego,
Bardziej szczegółowoProgramowanie strukturalne
Programowanie strukturalne Semestr I Technik Informatyk - Prowadzący: Elżbieta Majka Plan pracy semestrze I podstawy algorytmizacji programowanie strukturalne na przykładzie języka j Pascal podstawowe
Bardziej szczegółowoĆwiczenie 14. Maria Bełtowska-Brzezinska KINETYKA REAKCJI ENZYMATYCZNYCH
Ćwiczenie 14 aria Bełtowska-Brzezinska KINETYKA REAKCJI ENZYATYCZNYCH Zagadnienia: Podstawowe pojęcia kinetyki chemicznej (szybkość reakcji, reakcje elementarne, rząd reakcji). Równania kinetyczne prostych
Bardziej szczegółowoJęzyk programowania C C Programming Language. ogólnoakademicki
Załącznik nr 7 do Zarządzenia Rektora nr 10/12 z dnia 21 lutego 2012r. KARTA MODUŁU / KARTA PRZEDMIOTU Kod modułu Nazwa modułu Nazwa modułu w języku angielskim Obowiązuje od roku akademickiego 2013/2014
Bardziej szczegółowoPOLITECHNIKA OPOLSKA
POLITECHNIKA OPOLSKA WYDZIAŁ MECHANICZNY Katedra Technologii Maszyn i Automatyzacji Produkcji Laboratorium Podstaw Inżynierii Jakości Ćwiczenie nr 2 Temat: Schemat blokowy (algorytm) procesu selekcji wymiarowej
Bardziej szczegółowoProgramowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści
Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop. 2017 Spis treści O autorach 11 Podziękowania 12 Wprowadzenie 13 CZĘŚĆ I ZACZNIJ PROGRAMOWAĆ JUŻ DZIŚ Godzina 1. Praktyczne
Bardziej szczegółowoTechnologia informacyjna Algorytm Janusz Uriasz
Technologia informacyjna Algorytm Janusz Uriasz Algorytm Algorytm - (łac. algorithmus); ścisły przepis realizacji działań w określonym porządku, system operacji, reguła komponowania operacji, sposób postępowania.
Bardziej szczegółowoDefinicja algorytmu brzmi:
1.1. Definicja algorytmu Często w życiu stajesz przed koniecznością rozwiązania jakiegoś zadania. Na lekcji matematyki musisz na przykład rozwiązać równanie i w tym celu wykonujesz szereg czynności: od
Bardziej szczegółowoWprowadzenie do złożoności obliczeniowej
problemów Katedra Informatyki Politechniki Świętokrzyskiej Kielce, 16 stycznia 2007 problemów Plan wykładu 1 2 algorytmów 3 4 5 6 problemów problemów Plan wykładu 1 2 algorytmów 3 4 5 6 problemów problemów
Bardziej szczegółowoRekurencje. Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie:
Rekurencje Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie: T(n) = Θ(1) (dla n = 1) T(n) = 2 T(n/2) + Θ(n) (dla n
Bardziej szczegółowoSzczegół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
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ółowoPę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ń
Bardziej szczegółowoSchematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.
Schematy blokowe I Jeżeli po schematach blokowych będzie używany język C, to należy używać operatorów: '&&', ' ', '!=', '%' natomiast jeśli Ruby to 'and', 'or', '%', '!='. 1. Dostępne bloki: a) początek:
Bardziej szczegółowoAlgorytmy od problemu do wyniku
Algorytmy Etapy tworzenia programu: 1) Sformułowanie zadania analiza problemu. 2) Opracowanie algorytmu sposób rozwiązania. 3) Zapisanie algorytmu w języku programowania kodowanie programu. 4) Kompilowanie
Bardziej szczegółowo