Wstęp do informatyki. Algorytm. Innymi słowy, czym jest algorytm?
|
|
- Kazimiera Pietrzyk
- 9 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 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 <cbolek@ki.uni.lodz.pl> 3 1
2 Rola algorytmu Dane wejściowe Algorytm Dane wyjściowe Wstęp do informatyki Cezary Bolek 4 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 2
3 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 2 b 4ac > 0, 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 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 3
4 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 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 4
5 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 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 5
6 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. zaleŝ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 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 warunek wartość2 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 6
7 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 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 7
8 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 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? Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 23 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. 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 8
9 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 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 9
10 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 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 10
11 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 Błędy... przykład nieskończone pętle: X = 0 Czy X=100? Czy X=1? X = X + 1 Co sięstanie gdy na początku cyklu X będzie równe 200 lub 10.5? X = X 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 11
12 Fragment algorytmu automatycznej analizy rachunków za energięelektryczną Błędy... przykład pobierz dane następnego klienta Odetnij prąd, skieruj sprawę do sądu Czy klient nie płaci dłuŝej niŝx miesięcy? dolicz odsetki i kolejny miesiąc opóźnienia Wyślij upomnienie kasuj dane o zaległościach czy wpłynęła opłata za ostatni miesiąc? czy zadłuŝenie klienta wynosi 0? 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? Wstęp do informatyki Cezary Bolek <cbolek@ki.uni.lodz.pl> 34 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) czy K jest kierownikiem P? drukuj dane pracownika (P) czy zarobki P > K? czy K jest ostatni na liście? czy P jest ostatni na liście? 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 12
13 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 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 13
14 Poprawna interpretacja O() O(1) or Stopnia pierwszego 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 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 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 14
15 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: 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 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 15
16 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 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 16
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,
Wstęp do informatyki. Algorytm. Algorytmika. Cezary Bolek. Uniwersytet Łódzki
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
Przepis 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:
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ę
Architektura 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,
Magistrala 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
Wykł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
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
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
1 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
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
Algorytmy 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
Algorytmy. 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
Wprowadzenie 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
Wstę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,
Informatyka 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
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
Programowanie 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
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
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
Podstawy 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
Technologie 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
Technologie 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:
Co 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.
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
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
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
METODY 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
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
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
Algorytmy. 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
Zł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ść
Adresowanie 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
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
Efektywna 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
INFORMATYKA 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
Programowanie 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
Algorytm. 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
Informatyka 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
Ję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
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
Poró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
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
PoniŜ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
Elż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,
Metodyki 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
POLITECHNIKA 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
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
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
ALGORYTMY 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
Algorytmy 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
Podstawy 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.
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
a[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ć
Wykład 2: Arkusz danych w programie STATISTICA
Wykład 2: Arkusz danych w programie STATISTICA Nazwy przypadków Numer i nazwa zmiennej Elementy arkusza danych Cechy statystyczne Zmienne (kolumny) Jednostki statystyczne Przypadki (wiersze) Tworzenie
Wstę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
Programowanie. 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
Teraz 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
POLITECHNIKA 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
Podstawy 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
Poprawność 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
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
Programowanie 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
Algorytmy 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,
ALGORYTMY 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
Definicja 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
Podstawy 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
Podstawy 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,
Algorytm. 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
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
ZARZĄDZANIE PROJEKTAMI I PROCESAMI. Mapowanie procesów AUTOR: ADAM KOLIŃSKI ZARZĄDZANIE PROJEKTAMI I PROCESAMI. Mapowanie procesów
1 ZARZĄDZANIE PROJEKTAMI I PROCESAMI MAPOWANIE PROCESÓW 2 Tworzenie szczegółowego schematu przebiegu procesu, obejmujące wejścia, wyjścia oraz działania i zadania w kolejności ich występowania. Wymaga
Podstawy i języki programowania
Podstawy i języki programowania Laboratorium 1 - wprowadzenie do przedmiotu mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 16 października 2017 1 / 25 mgr inż. Krzysztof Szwarc Podstawy i
WYKŁ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
Scenariusz zajęć z wykorzystaniem programu edukacyjnego ELI 2.0
mgr inż. Jan Lange Gimnazjum nr 12 w Poznaniu Scenariusz zajęć z wykorzystaniem programu edukacyjnego ELI 2.0 Poziom nauczania: klasa II Zagadnienie: Techniki algorytmiczne Temat: Tworzenie schematów blokowych
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
Ję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
Algorytmy 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
Podstawy Informatyki. Inżynieria Ciepła, I rok. Iteracja warunkowadopóki(while) Blok instrukcji. Pascal: begin instrukcja1; C: { end;
Podstawy Informatyki Inżyria Ciepła, I rok Wykład 8 Algorytmy, cd Instrukcja decyzyjna wybierz Zda wybierz służy do wyboru jednej z kilku możliwości Ma ono postać: wybierz przełącznik z wartość_1: zda_1
Podstawy 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
Wstę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
Algorytmy i struktury danych
1 Cel ćwiczenia Algorytmy i struktury danych Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet Zielonogórski Schematy blokowe Ćwiczenie ma
Algorytmy 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
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
Metodyki 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
Zapis 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
Za 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
Podstawy 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
Podstawy 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
Podstawy 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
Technologia 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.
PRZEWODNIK PO PRZEDMIOCIE
Nazwa przedmiotu: Kierunek: Informatyka Rodzaj przedmiotu: obowiązkowy w ramach treści wspólnych z kierunkiem Matematyka, moduł kierunku obowiązkowy PODSTAWY INFORMATYKI Fundamentals of computer science
Zasady 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
Algorytmy i złożoność obliczeniowa. Wojciech Horzelski
Algorytmy i złożoność obliczeniowa Wojciech Horzelski 1 Tematyka wykładu Ø Ø Ø Ø Ø Wprowadzenie Poprawność algorytmów (elementy analizy algorytmów) Wyszukiwanie Sortowanie Elementarne i abstrakcyjne struktury
Przeglad podstawowych pojęć (3) Podstawy informatyki (3) dr inż. Sebastian Pluta. Instytut Informatyki Teoretycznej i Stosowanej
Przeglad podstawowych pojęć (1) Podstawy informatyki (3) dr inż. Sebastian Pluta pluta@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Program komputerowy to sekwencja instrukcji wykonywanych
Algorytmy. dr Dariusz Banaś (UJK) Seminarium w ramach projektu Fascynujący Świat Nauki dla uczniów gimnazjów. wersja 0.9. Start.
Seminarium w ramach projektu Fascynujący Świat Nauki dla uczniów gimnazjów dr Dariusz Banaś (UJK) read a,b,c read r Tak a>b Nie max:=a max:=b pole:=3.14*r*r obwod:=2*3.14*r read a Nie a==0 Tak Tak c>max
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
Algorytmy 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
Wstę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
Ć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
Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to
Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to wprowadzili J. Hartmanis i R. Stearns. Najczęściej przez zasób rozumie się czas oraz pamięć dlatego