Luty 2001 Algorytmy (1) 2000/2001 1

Podobne dokumenty
Algorytmy i schematy blokowe

Algorytm. Krótka historia algorytmów

Definicje. Algorytm to:

Luty 2001 Algorytmy (7) 2000/2001

Podstawy Programowania Algorytmy i programowanie

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 1. Karol Tarnowski A-1 p.

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

Algorytm - pojęcie algorytmu, sposób zapisu, poziom szczegółowości, czynności proste i strukturalne. Pojęcie procedury i funkcji.

Algorytmika i programowanie. dr inż. Barbara Fryc Wyższa Szkoła Informatyki i Zarządzania w Rzeszowie

Scenariusz lekcji opartej na programie Program nauczania informatyki w gimnazjum DKW /99

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

ALGORYTMY I PROGRAMY

Temat 20. Techniki algorytmiczne

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny

Definicja algorytmu brzmi:

KOŁO MATEMATYCZNE LUB INFORMATYCZNE - klasa III gimnazjum, I LO

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Algorytmy i struktury danych. Wykład 4

Technologie informacyjne - wykład 12 -

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Efektywność algorytmów

Sposoby przedstawiania algorytmów

Algorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne.

Algorytm. Krótka historia algorytmów

Algorytm. Algorytmy Marek Pudełko

PROSTE RACHUNKI WYKONYWANE ZA POMOCĄ KOMPUTERA

Algorytmy, reprezentacja algorytmów.

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Wstęp do informatyki- wykład 2

Algorytmika i pseudoprogramowanie

Wprowadzenie do algorytmiki

Zasady budowania algorytmów z klocków Początek pracy Klocki Podstawowe

Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa).

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 1 WSTĘP DO INFORMATYKI

Wykład z Technologii Informacyjnych. Piotr Mika

Zadanie 1. Potęgi (14 pkt)

1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji.

Programowanie i techniki algorytmiczne

Wykład IV Algorytmy metody prezentacji i zapisu Rzut oka na język PASCAL

SCENARIUSZ LEKCJI. Dzielenie wielomianów z wykorzystaniem schematu Hornera

Algorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne.

POLITECHNIKA OPOLSKA

Co to jest algorytm? przepis prowadzący do rozwiązania zadania, problemu,

KONSPEKT ZAJĘĆ KOŁA INFORMATYCZNEGO LUB MATEMATYCZNEGO W KLASIE III GIMNAZJUM LUB I LICEUM ( 2 GODZ.)

2. Graficzna prezentacja algorytmów

Zapisywanie algorytmów w języku programowania

11. Blok ten jest blokiem: a. decyzyjnym b. końcowym c. operacyjnym

Rekurencja. Rekurencja zwana także rekursją jest jedną z najważniejszych metod konstruowania rozwiązań i algorytmów.

Zadanie 1. Test (6 pkt) Zaznacz znakiem X w odpowiedniej kolumnie P lub F, która odpowiedź jest prawdziwa, a która fałszywa.

TWORZENIE SCHEMATÓW BLOKOWYCH I ELEKTRYCZNYCH

5. Rozwiązywanie układów równań liniowych

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.

Wykład z Podstaw Informatyki dla I roku BO. Piotr Mika

FUNKCJA LINIOWA, RÓWNANIA I UKŁADY RÓWNAŃ LINIOWYCH

POLITECHNIKA OPOLSKA

Podstawy programowania. Wykład: 13. Rekurencja. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)

Związek między problemem, algorytmem a programem komputerowym. Klasa 2 Lekcja 3

Dział I FUNKCJE I ICH WŁASNOŚCI

Metody numeryczne w przykładach

2.1. Duszek w labiryncie

Wybrane wymagania dla informatyki w gimnazjum i liceum z podstawy programowej

INFORMATYKA. Algorytmy.

KARTA PRACY UCZNIA. Klasa II

Teraz bajty. Informatyka dla szkoły podstawowej. Klasa VI

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

Rozkład materiału do zajęć z informatyki. realizowanych według podręcznika

Uwaga: Funkcja zamień(a[j],a[j+s]) zamienia miejscami wartości A[j] oraz A[j+s].

MATeMAtyka 3. Przedmiotowy system oceniania wraz z określeniem wymagań edukacyjnych. Zakres podstawowy i rozszerzony. Zakres podstawowy i rozszerzony

Metodyki i techniki programowania

Wykład I Cyfrowa reprezentacja informacji Algorytmy metody prezentacji i zapisu

Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5.

Algorytm. Definicja i algorytmu METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE

Zapisywanie w wybranej notacji algorytmów z warunkami i iteracyjnych

Efektywność Procedur Obliczeniowych. wykład 5

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

EGZAMIN MATURALNY Z INFORMATYKI MAJ 2013 POZIOM PODSTAWOWY CZĘŚĆ I WYBRANE: Czas pracy: 75 minut. Liczba punktów do uzyskania: 20 WPISUJE ZDAJĄCY

Informacja w perspektywie obliczeniowej. Informacje, liczby i obliczenia

Informatyka klasa III Gimnazjum wymagania na poszczególne oceny

Wielomiany. dr Tadeusz Werbiński. Teoria

Programowanie komputerów

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer

Studia Podyplomowe INFORMATYKA DLA NAUCZYCIELI. Dorota SKRABKA

Funkcja f jest ograniczona, jeśli jest ona ograniczona z

a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10]

Projekt Era inżyniera pewna lokata na przyszłość jest współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

Wstęp do informatyki- wykład 1

SCENARIUSZ LEKCJI. Autorzy scenariusza: Krzysztof Sauter (informatyka), Marzena Wierzchowska (matematyka)

Kształcenie w zakresie podstawowym. Klasa 2

Wstę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 2017/18 semestr zimowy. Wykład 13. Karol Tarnowski A-1 p.

WYMAGANIA EGZAMINACYJNE Egzamin maturalny z INFORMATYKI

Część I. Uwaga: Akceptowane są wszystkie odpowiedzi merytorycznie poprawne i spełniające warunki zadania. Zadanie 1.1. (0 3)

KARTA MODUŁU KSZTAŁCENIA

Budowa pierwszych komputerów i ich zastosowanie w matematyce

Algorytmika i programowanie usystematyzowanie wiadomości

Zadanie 1. Algorytmika ćwiczenia

Innowacja pedagogiczna dla uczniów pierwszej klasy gimnazjum Programowanie

WYMAGANIA EDUKACYJNE Z INFORMATYKI dla klasy III gimnazjalnej, Szkoły Podstawowej w Rychtalu

Transkrypt:

Algorytm jest przepisem opisującym krok po kroku rozwiązanie problemu lub osiągnięcie jakiegoś celu. Korzystanie z gotowego rozwiązania. Próba samodzielnego rozwiązania problemu. Słowo algorytm pochodzi od brzmienia fragmentu nazwiska: Muhamad ibn Musa al-chorezmi, arabskiego matematyka i astronoma żyjącego na przełomie VIII i IX wieku. Jest on uznawany za prekursora metod obliczeniowych w matematyce. Upowszechnił stosowanie systemu dziesiętnego i posługiwanie się zerem. Algorytmika jest nazwą dziedziny zajmującej się algorytmami i ich własnościami. Po raz pierwszy użył tego terminu David Harel w swojej książce Rzecz o istocie informatyki. Budowanie algorytmów jest tak stare jak dążenie człowieka do rozwiązywania problemów lub zdobywania wyznaczonych celów: ułatwianie życia, ulepszanie metod realizacji zamierzeń. Najlepszym sposobem przyspieszania pracy komputerów jest obarczanie ich mniejszą liczbą działań. Ralph Gomory (IBM) 1

Najstarszy algorytm, algorytm Euklidesa ma ponad 2000 lat. Algorytmy były opracowywane przez matematyków bądź inżynierów na długo przed pojawieniem się komputerów. Wiele z nich wykorzystywanych jest w niezmienionej formie do dziś. Prekursorem algorytmów komputerowych jest Ada Augusta (1815-1852), hrabina Lovelace, córka Byrona. Opracowując algorytmy dla maszyny analitycznej Babbage a jej przełomowe znaczenie upatrywała w możliwości wielokrotnego wykonywania przez nią danego ciągu instrukcji z liczbą powtórzeń z góry zadaną bądź zależną od wyników obliczeń. Są to podstawowe cechy algorytmów komputerowych. Większość problemów wymaga jednak nowego spojrzenia na sposoby ich rozwiązywania. Należy uwzględniać charakter obliczeń komputerowych - działania muszą być możliwe do przełożenia na operacje wykonywane przez komputer. Przy opracowywaniu nowych algorytmów powinniśmy zwracać uwagę na: wykonywalność tworzonych algorytmów, efektywność algorytmów. 2

Problem znalezienia najkrótszej drogi zamkniętej przechodzącej przez każdy punkt dokładnie jeden raz nazywa się problemem komiwojażera (TSP). Z okazji reformy samorządowej Premier ma odwiedzić Wojewodów ich siedzibach wyruszając z Warszawy, odwiedzając każde województwo dokładnie raz i powrócić do Warszawy. Liczba odwiedzanych województw: 17 zgodnie ze starym podziałem administracyjnym, 25 zgodnie z planowanym podziałem, 49 zgodnie z aktualnym podziałem. Jeśli nie dysponujemy żadnym algorytmem jedyną metodą rozwiązania zadania jest przejrzenie wszystkich możliwych kombinacji. Jeśli n jest liczbą województw to istnieje (n-1)! możliwych ich ustawień. 17!=3.55 10 14 25!=1.55 10 25 49!=6.08 10 62 Jeśli dysponujemy superkomputerem który może w ciągu sekundy przeanalizować 100 miliardów ustawień (10 11 ) to obliczenia będą trwały: 17 województw - 3.5 minuty 25 województw - 2 10 5 lat 49 województw - 4 10 12 lat 3

Specyfikacja zadania to dokładny opis zadania, które ma być wykonane lub problemu, który ma być rozwiązany. Specyfikacja ma na ogół postać wyszczególnienia, w którym są wymienione: dane dla zadania i warunki jakie one musza spełniać, wyniki i warunki jakie musza one spełniać (jaki jest związek wyników z danymi) Zadanie: oblicz wartość funkcji: f(x)=x/ x Obliczanie wartości funkcji Dane: Dowolna liczba rzeczywista x Wynik: Wartość funkcji zgodna ze wzorem, jeśli x jest różne od zera. W przeciwnym przypadku f(x)=0 Aby podać specyfikację zadania polegającego na obliczaniu wartości funkcji musimy uzupełnić jej opis o dziedzinę, czyli informację, dla jakich wartości x funkcja ta ma określone wartości. 4

Słowny opis algorytmu jest na ogół jego pierwszym i mało ścisłym opisem. Służy wyrobieniu pewnej intuicji oraz ukierunkowaniu rozważań na właściwe sposoby i techniki przydatne w rozwiązaniu. Opis algorytmu w postaci listy kroków jest jednym z najczęściej stosowanych, dokładnych sposobów opisywania obliczeń oraz ich kolejności. Poszczególne kroki zawierają opis operacji, które mają być wykonane przez algorytm. Mogą w nich również wystąpić polecenia związane ze zmianą kolejności wykonywania kroków lub polecenie zakończenia algorytmu. Algorytm oblicza wartości funkcji: f(x)=x/ x Dane: Dowolna liczba rzeczywista x Wynik: Wartość funkcji zgodna ze wzorem, jeśli x jest różne od zera. W przeciwnym przypadku f(x)=0 Krok 0 Wczytaj wartość danej x Krok 1 Jeśli x>0 to f(x)=x. Zakończ algorytm Krok 2 {x<=0} Jeśli x=0 to f(x)=0. Zakończ algorytm. Krok 3 {x<0} f(x)=-x. Zakończ algorytm. 5

Schemat blokowy algorytmu jest jednym z najbardziej popularnych graficznych sposobów przedstawiania algorytmów. Składa się on z klatek oraz połączeń między nimi. W klatkach zapisywane są operacje, które mają być wykonywane, a połączenia określają kolejność ich wykonania. Często stosuje się różne kształty klatek dla odróżnienia rodzajów operacji w nich zawartych. Schematy można budować odręcznie, można je również konstruować posługując się oprogramowaniem. Początek lub koniec pracy algorytmu Czytanie danych i wyprowadzanie wyników Instrukcje arytmetyczne Instrukcja warunkowa Instrukcja powtarzania 6

Drzewo algorytmu nazywane również drzewem obliczeń jest szczególnym rodzajem schematu blokowego, który przyjmuje postać drzewa. Drzewo rysowane jest na ogół do góry nogami, z korzeniem u góry. Stosowane nazewnictwo elementów drzewa jest wzięte z dendrologii. Korzeń, wierzchołki końcowe nazywają się liśćmi, a krawędzie, czyli połączenia w drzewie gałęziami. Każde dwie drogi w takim schemacie obliczeń mogą mieć tylko początkowe fragmenty wspólne, ale po rozejściu już się nie spotykają. Najczęściej drzewa algorytmów przedstawia się upraszczając nieco ich postać graficzną. Drzewo wyrażenia ma ograniczone zastosowania jako reprezentacja algorytmów. Jest ono wykorzystywane przede wszystkim do obliczania wartości wyrażeń. W drzewie można zapisać dowolne wyrażenie. Argumenty wyrażeń znajdują się w liściach Działania znajdują się w wierzchołkach pośrednich. Obliczanie wartości wyrażenia zapisanego w drzewie spływa od liści, gałęziami ku korzeniowi. 7

Algorytm liniowy ma postać ciągu (listy) kroków, które bezwarunkowo mają być wszystkie wykonane zgodnie z kolejnością, w jakiej występują. Taki algorytm nie może zawierać sprawdzania warunków, od spełnienia których zależy wykonanie kroków. Częstym zadaniem jest obliczanie wartości wielomianów dla zadanej wartości argumentu. w(x)=ax 2 + bx + c Aby obliczyć jego wartość najczęściej: podnosimy x do kwadratu (mnożymy x przez siebie), dwa razy mnożymy przez współczynniki a i b dwa razy wykonujemy dodawanie. wykonujemy w ten sposób trzy mnożenia i dwa dodawania. Po zgrupowaniu dwóch pierwszych wyrazów i wyłączeniu czynnika x w(x)=(ax + b)x + c wykonywać będziemy tylko dwa mnożenia i dwa dodawania. 8

Przekształćmy w podobny sposób wielomian trzeciego stopnia: v(x)=ax 3 + bx 2 + cx + d = ((ax +b)x +c)x + d W pierwszej postaci należy wykonać pięć mnożeń i trzy dodawania, w drugiej jedynie trzy mnożenia i trzy dodawania. Przytoczone postacie wielomianów drugiego i trzeciego stopnia oraz wynikające z nich sposoby obliczania wartości tych wielomianów są szczególnymi przypadkami tzw. schematu Hornera. 9

rozwiązanie każdego problemu ma cechy odkrycia. Wasz problem może być skromny; jeżeli jednak zaciekawi on Was i pobudzi do czynu Wasze zdolności twórcze i jeśli rozwiążecie go własnymi siłami to możecie doznać emocji towarzyszącej napięciu umysłu i triumfowi dokonanego odkrycia. George Polya, Jak to rozwiązać, PWN 1993 10

Program ELI jest programem edukacyjnym służącym do konstruowania i analizowania algorytmów. W odróżnieniu od klasycznych schematów blokowych w programie tym można budować algorytmy zawierające podprogramy, w tym również podprogramy rekurencyjne. W programie ELI algorytmy konstruowane są z gotowych klocków, które odpowiadają podstawowym krokom wykonywanym w algorytmach: początek i zakończenie algorytmu, wprowadzanie danych i wyprowadzanie wyników, instrukcja warunkowa (czyli rozgałęzienie w algorytmie) czytanie danych z tablicy bądź taśmy (czyli z pliku) zapisywanie danych w tablicy lub na taśmie, wywołanie procedury czyli podprogramu. W schemacie algorytmu musza również występować klocki z liniami, które służą do łączenia innych klocków. Klocki pobiera się z palety znajdującej się po lewej stronie ekranu. 11

Klocki służą jedynie do oznaczenia wybranych fragmentów algorytmów. Właściwe funkcje wykonywane przez nie w algorytmie należy wpisać w oknie dialogowym (wskazanie klocka i kliknięcie prawym klawiszem myszy). Każdy z klocków może być dodatkowo opatrzony komentarzem (otwarcie okna dialogowego - wskazanie i kliknięcie prawym klawiszem myszy przy naciśniętym klawiszu <Shift>). Algorytm buduje się na planszy. Dodatkową częścią algorytmu mogą być tablica i taśma, które służą do zapisywania danych i wyników działania algorytmów. Wymienione elementy tworzą projekt, który stanowi realizację algorytmu w tym programie. Algorytmy budowane w programie ELI mogą być w nim również wykonywane klocek po klocku lub w sposób ciągły. 12