Definicja, opracowana w 1989 roku przez ACM, mówi:

Slides:



Advertisements
Podobne prezentacje
Instrukcje - wprowadzenie
Advertisements

Informatyka jako dziedzina wiedzy
Techniki konstrukcji algorytmów
PROGRAMOWANIE STRUKTURALNE
ALGORYTM Co to jest algorytm?
algorytm znajdowania największego wspólnego dzielnika (NWD)
ZŁOŻONOŚĆ OBLICZENIOWA
Opracowała: Elżbieta Fedko
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Informatyka jako dziedzina wiedzy Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie.
Praktyka Programowania Semestr I: –wykład - 1 godz. –laboratorium - 1 godz. –projekt - 1 godz.
JAK ZBUDOWANY JEST KOMPUTER?
Algorytmy.
Algorytmy i struktury danych
Matura z informatyki Arkusz I.
Algorytmika w drugim arkuszu maturalnym. Standardy wymagań I. WIADOMOŚCI I ROZUMIENIE I. WIADOMOŚCI I ROZUMIENIE II.KORZYSTANIE Z INFORMACJI II.KORZYSTANIE.
JAKO CZĘŚĆ NASZEGO ŻYCIA
Kinga Kołodziej, Marta Trębicka
Algorytmy i algorytmika Opracowanie: Teresa Szczygieł
Wstęp do interpretacji algorytmów
Zapis informacji Dr Anna Kwiatkowska.
Algorytmy Marek Pudełko
Algorytmy i algorytmika Opracowanie: Maciej Karanowski
ALGORYTMY Opracowała: ELŻBIETA SARKOWICZ
Gimnazjum w Leśnej Historia komputerów Wyk. Ewelina Męcina Leśna 2006.
Teoretyczne podstawy informatyki
Budowa algorytmów Algorytm: skończony ciąg operacji wraz z ściśle sprecyzowanym porządkowaniem ich wykonywania, które po realizacji dają rozwiązanie dowolnego.
ALGORYTMY.
Agata Łysakowska Klasa III „n”
Algorytmy Opracowanie: Maria Skalska na podstawie „Informatyka 2000” wydawnictwa Czarny Kruk.
ALGORYTMY Martyna K. Luiza K..
POJĘCIE ALGORYTMU Pojęcie algorytmu Etapy rozwiązywania zadań
Algorytmy.
20 września 2003r. Centrum Kształcenia Ustawicznego im. St. Staszica w Koszalinie Wstęp do algorytmiki Autor: Marek Magiera.
Prowadzący: Dr inż. Jerzy Szczygieł
Historia Informatyki..
ALGORYTMY.
Informatyka jako dziedzina wiedzy
Algorytmy.
Lekcja organizacyjna Klasa III.
Warsztaty dla nauczycieli przedmiotów informatycznych
ZAPIS BLOKOWY ALGORYTMÓW
Algorytmika.
Wprowadzenie do programowania
Wprowadzenie do algorytmiki
ALGORYTMY Co to jest algorytm ? Cechy algorytmu Budowa algorytmów
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Obliczalność czyli co da się policzyć i jak Model obliczeń maszyna licznikowa dr Kamila Barylska.
Algorytmy i struktury danych
Obliczanie NWD- algorytm Euklidesa
opracowała: Anna Mikuć
ALGORYTMY-WPROWADZENIE. ALGORYTMY W ŻYCIU CODZIENNYM
Algorytm to przepis prowadzący do osiągnięcia celu lub rozwiązania problemu, opisujący każdy krok. Algorytmika to dziedzina zajmująca się algorytmami (własnościami,
Materiały pochodzą z Platformy Edukacyjnej Portalu Wszelkie treści i zasoby edukacyjne publikowane na łamach Portalu
Informatyki szkolnej dzieje w pięciu aktach według Grażyny Koby.
Algorytmy.
Algorytmy – wprowadzenie
Wstęp do interpretacji algorytmów
Algorytmy. Co to jest algorytm? Przepis prowadzący do rozwiązania zadania.
Co to jest algorytm? Uporządkowany i uściślony sposób rozwiązania danego problemu, zawierzający szczegółowy opis wykonywanych czynności w skończonej.
Algorytmy, sposoby ich zapisu.1 Algorytm to uporządkowany opis postępowania przy rozwiązywaniu problemu z uwzględnieniem opisu danych oraz opisu kolejnych.
Programowanie strukturalne i obiektowe Klasa I. Podstawowe pojęcia dotyczące programowania 1. Problem 2. Algorytm 3. Komputer 4. Program komputerowy 5.
Algorytmy i algorytmika Opracowanie: Teresa Szczygieł
Algorytm to przepis prowadzący do osiągnięcia celu lub rozwiązania problemu, opisujący każdy krok. Algorytmika to dziedzina zajmująca się algorytmami (własnościami,
Efektywność algorytmów
Zrozumieć, przeanalizować i rozwiązać
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
Wyniki egzaminu próbnego
Zapis prezentacji:

Definicja, opracowana w 1989 roku przez ACM, mówi: „Informatyka zajmuje się całokształtem przechowywania, przesyłania, przetwarzania i interpretowania informacji. Wyróżnia się w niej dwa działy, dotyczące sprzętu i programowania”. Definicja, opracowana w 1989 roku przez ACM, mówi: „Informatyka to systematyczne badanie procesów algorytmicznych, które charakteryzują i przetwarzają informację, teoria, analiza, projektowanie, badanie efektywności, implementacja i zastosowania procesów algorytmicznych. Podstawowe pytanie informatyki to: co można (efektywnie) zalgorytmizować”. W celu rozwiązania dowolnego zadania przy wykorzystaniu komputera należy określić skończoną liczbę czynności, które należy wykonać na określonych danych, tj. skonstruować odpowiedni algorytm. Algorytmizacja jest to działanie pozwalające otrzymać algorytm. Algorytm zapisany w języku programowania nazywa się programem, w którym czynności opisane są za pomocą odpowiednich instrukcji języka. Każdy algorytm: - posiada dane wejściowe i produkuje pewien wynik, - jest precyzyjnie zdefiniowany (za pomocą określonych instrukcji), - jest skończony, - powinien być efektywny.

Rys. Szybkość zmian w informatyce Poznanie zasad algorytmizacji oznacza nabycie umiejętności konstruowania i zapisywania algorytmów w taki sposób by mogły one być wykonywane przez komputer. Czy można powiedzieć, że nabyta umiejętność poddaje się jakimś stałym regułom skoro możliwości wykonywania algorytmów przez komputery zmieniają się tak szybko? Odpowiedzią może być cytat: „Mimo oszałamiającej szybkości z jaką niektóre z innowacji technicznych stają się bezużyteczne i są zastępowane następnymi” podstawy informatyki „zmieniają się powoli”. Charakter zmian w informatyce ilustruje rysunek   Rys. Szybkość zmian w informatyce Z rysunku wynika, że zmiany w wytwarzaniu algorytmów są dużo wolniejsze niż postęp technologiczny i nabyte umiejętności algorytmizacji nie tracą tak szybko na wartości jak mogło by to wynikać z postępu technologicznego.

Czy w takim razie postęp technologiczny nie ma wpływu na rozwój zasad wytwarzania algorytmów? Postęp technologiczny ma wpływ na rozwój zasad wytwarzania algorytmów poprzez: ·   skrócenie czasu realizacji algorytmów, ·   umożliwienie realizowania algorytmów dla dużej liczby przetwarzanych danych, ·   umożliwienie prezentacji wyników działania algorytmów o złożonej postaci wyników (obraz, dźwięk) oraz ·  umożliwienie udostępniania wyników szerokiemu gronu ich odbiorców w dowolnym miejscu i czasie. Rozwój technologii wpływa na rozwój algorytmów, których stosowanie było uwarunkowane ograniczeniami technologicznymi.

Ważniejsze fakty z historii algorytmiki i rozwoju maszyn liczących Abak(us) – liczydło w Mezopotamii X w. pne Euklides IV w. pne – algorytm znajdowania największego wspólnego podzielnika Muhammed ibn Musa al Chorezmi (Algorismus) VIII / IX w., matematyk, astronom (algorytm, algebra, zero, system dziesiętny) John Neper (XVII w.) – logarytmy, pałeczki Nepera Blaise Pascal (1623-1662) – Pascalina, maszyna mechaniczna (50 szt.) wykorzystywana przy poborze podatków i pomiarach geodezyjnych. Wykonywała dodawanie i odejmowanie Leibnic Gotfried (1646-1716) system binarny, maszyna mnożąca Joseph Jacquard (1801) krosno tkackie sterowane otworami w kartach perforowanych Charles Babbage (1791-1871) twórca maszyny różnicowej (np. kwadrat kolejnej liczby naturalnej jest sumą kwadratu poprzedniej liczby naturalnej i kolejnej nieparzystej liczby naturalnej) oraz projekt maszyny analitycznej sterowanej programem Ada Augusta hrabina Lovelance, córka Byrona – algorytmy dla maszyny Babbage’a Herman Hollerith (1860-1929) - karty perforowane i czytniki elektryczne (1890), IBM (1924) Alan Turing (1912-1954) – maszyna Turinga (1936) ENIAC (1946) – pierwszy komputer elektroniczny John von Neuman (1903-1957) komputer z zapamiętanym programem

Zasady algorytmizacji. Czym jest algorytmizacja? Algorytmizacja jest to działanie pozwalające otrzymać algorytm. W literaturze najczęściej spotykanym nieformalnym określeniem algorytmu jest zdefiniowanie go jako przepisu na otrzymywanie pożądanych wyników na podstawie posiadanych danych. Na algorytm musi składać się zatem opis trzech elementów: 1. pożądanych wyników działania algorytmu 2. danych wejściowych 3. sposobu otrzymania wyników na podstawie danych wejściowych. Pojęcie to chętnie jest ilustrowane za pomocą przykładów „z życia” oraz najstarszego opisanego algorytmu matematycznego: algorytmu Euklidesa. Przykłady 1 i 2 ilustrują rolę danych wejściowych w definicji algorytmu. Ten sam wynik (rozwiązanie problemu) można uzyskać dwoma różnymi sposobami w zależności od rodzaju posiadanych danych wejściowych.

Przykład 1: Obliczanie pola trójkąta: ad 1. pole ad 2. podstawa i wysokość ad 3. pole= podstawa*wysokość/2 Przykład 2:Obliczanie pola trójkąta: ad 2. trzy boki trójkąta ad 3. wzór Herona Przykład 3: Wyznaczanie podatku dochodowego od osób fizycznych: ad 1. wysokość podatku do dopłacenia ad 2. przychody, koszty uzyskania, wpłacona zaliczka na podatek dochodowy, odpisy od podstawy opodatkowania ad 3. Urząd Skarbowy (najbezpieczniej zadawać pytania o sposób obliczania podatku na piśmie)   Przykład 4: Zupa dla smakoszy z nadwagą: ad 1. schudnąć i nie przestawać jeść ad 2. 6 dużych zielonych cebul, 1 lub 2 puszki pomidorów (mogą być świeże pomidory), duża główka kapusty, 2 zielone papryki, pęczek zielonego selera, 1 torebka przyprawy do zup. ad 3. Pokroić jarzyny w małe lub średnie kawałki i zalać wodą. Gotować na dużym ogniu 10 min. Zmniejszyć gaz i gotować powoli aż do czasu gdy jarzyny będą miękkie. (Wieczór Wybrzeża, 20.07.98 s.3) Przykład 5: Algorytm Euklidesa (wiek algo­rytmu: 2300 lat) ad 1. największy wspólny podzielnik c ad 2. dwie liczby całkowite a i b ad 3.

Algorytmy charakteryzują się pewnymi mierzalnymi cechami. Są nimi np.: ·  dokładność obliczeń, ·  złożoność obliczeniowa, ·  złożoność pamięciowa. Algorytmy posiadają pewne, najczęściej pożądane, właściwości (cechy). Są nimi: · poprawność - posiadanie tej cechy przez algorytm oznacza, że algorytm rzeczywiście wytwarza żądane wyniki, · określoność - cecha ta oznacza możliwość działania algorytmu niezależnie od wartości danych wejściowych, ·  wykonalność - algorytmu składa z kroków wykonalnych dla wykonawcy algorytmu, · testowalność - właściwość ta oznacza możliwość dokonania testów pozwalających rozstrzygnąć czy algorytm posiada wyżej wymieniowych cech. Algorytmy klasyfikuje się często ze względu na przeznaczenie wyników ich działania. Przykładowo wyróżnia się algorytmy numeryczne, graficzne, sterowania, komunikacyjne itp. Czasami podstawą klasyfikacji jest rodzaj użytej metody rozwiązania zadania otrzymania wyniku. Przykładami mogą być tu określenia: deterministyczne, losowe, heurystyczne, genetyczne. Zadanie otrzymania wyniku na podstawie danych może być rozwiązywane różnymi sposobami, a jeśli da się je doprowadzić do postaci algorytmu to mówimy o algorytmizacji problemu. Konstruując algorytm trzeba posiadać metodę jego zapisania. Spośród wielu znanych, nas będzie interesowała metoda polegająca na zastosowaniu opisu słownego, schematów blokowych i języka programowania. Zapis algorytmu w postaci programu komputerowego umożliwia jego realizację przez komputer.

Elementy schematów blokowych   START KONIEC A>0     czytaj A, B pisz NWD A1 P := A*B sortuj dane

Konstrukcje sterujące   Konstrukcje sterujące   A=0 P:=A*B P:=A/B Rozgałęzienie T N P:=A*B OB:=2*(A+B) Sekwencja Iteracja A>0 A:=A-B N T A:=A+B licz > WK licz := WP instrukcja licz:=licz+1

Rozwiązywanie równania kwadratowego ax2 + bx + c =0   Dane: Współczynniki a, b, c równania. Wyniki: Pierwiastki równania, jeśli dane współczynniki rzeczywiście określają równanie kwadratowe i równanie ma pierwiastki. Jeśli równanie nie ma pierwiastków, to wypisz odpowiedni komunikat. Krok 1: Jeśli a = 0, to wypisz komunikat, że nie jest to równanie kwadratowe i zakończ algorytm. Krok 2: Oblicz wartość wyróżnika  = b2 – 4ac Krok 3: Jeśli <0 , to wypisz komunikat, że równanie kwadratowe nie ma pierwiastków i zakończ algorytm. Krok 4: Jeśli =0 , to oblicz oba pierwiastki z tego samego wzoru: x1 = x2 = -b/(2a), wypisz ich wartości i zakończ algorytm. Krok 5: {W tym przypadku >0} Oblicz pierwiastki według wzorów: wypisz ich wartości i zakończ algorytm.

START czytaj a, b, c a=0 pisz „To nie RK” =b2 - 4ac <0 pisz „Brak pierw.” =0 oblicz x1=x2 oblicz x1 x2 pisz „x1=x2” pisz „x1 oraz x2” KONIEC

Algorytm szukania NWD dwóch liczb całkowitych (prosty)   Dane: niezerowe liczby naturalne a i b. Wynik: NWD(a,b) Czytaj liczby a i b Ustal wartość zmiennej d na mniejszą z liczb a i b. Dopóki wartość d nie jest podzielnikiem a i b powtarzaj krok 4, a następnie przejdź do kroku 5. Zmniejsz wartość zmiennej d o jeden. Drukuj wartość NWD=d. function NWD(a, b: integer) : integer; var d, N: integer; begin if a<b then d:=a else d:=b; while (a mod d <> 0) or (b mod d <> 0) do d:=d+1; NWD:=d; end;

Algorytm Euklidesa znajdowania NWD Dane: niezerowe liczby naturalne a i b. Wynik: NWD(a,b) Czytaj liczby a i b. Dopóki a i b są większe od zera, powtarzaj krok 3, a następnie przejdź do kroku 4. Jeśli a jest większe od b to weź za a resztę z dzielenia a przez b, w przeciwnym razie weź za b resztę z dzielenia b przez a. Przyjmij jako największy wspólny dzielnik tę z liczb a i b, która pozostała większa od zera. Drukuj NWD(a, b).   function NWD(a, b: integer): integer; begin while (a>0) and (b>0) do if a>b then a := a MOD b else b := b MOD a; NWD := a+b; end; NWD(a,b)=NWD(a modb, b) dla a>b>0 Dowód: a = q*b+r 0≤r<b r = a-q*b a i b są podzielne przez NWD(a,b), a zatem i r = a mod b jest podzielne