Algorytmy – metody ich konstruowania i etapy

Transkrypt

Algorytmy – metody ich konstruowania i etapy
Algorytmy – metody ich konstruowania i etapy rozwiązywania, Graficzna reprezentacja algorytmów.
1. Co to jest algorytm:jest to w matematyce oraz informatyce skończony, uporządkowany ciąg jasno
zdefiniowanych czynności, koniecznych do wykonania pewnego zadania. Słowo "algorytm" pochodzi od
nazwiska Muhammed ibn Musa Alchwarizmi
Np.:
Na lekcjach matematyki czy fizyki często słyszymy zdanie "rozwiąż zadanie. Większość ich rozwiązujemy
według pewnych schematów. Najpierw wypisujemy dane i zastanawiamy się do jakiego celu dążymy, a więc jaki
ma być wynik. Następnie wypisujemy wzory łączące dane z szukanymi bądź twierdzenia, które można
zastosować.
Przed koniecznością rozwiązywania zadań stajemy również poza szkołą. Robimy to w każdej innej dziedzinie
naszego życia, na przykład:
* telefonując do koleżanki i zapraszając ją na ciasto
* gotując jajko na twardo
* kupując piłkę w sklepie
* znajdując najniższego ucznia w klasie
* pisząc wypracowanie
Również przy takim typie zadań musimy określić dane i warunki, które muszą one spełniać. formułujemy także
wynik, który pragniemy uzyskać.
2. Algorytmy numeryczne -wykonują obliczenia na danych liczbowych.
3. Etapy rozwiązania algorytmu:
W procesie rozwiązywania każdego zadania możemy wyróżnić pewne etapy, które nas do niego prowadzą.
Etapy rozwiązywania problemów:
• Sformułowanie zadania - ustalamy problem jaki ma rozwiązać algorytm.
• Określenie danych wejściowych - ich typu Np liczby rzeczywiste całkowite czy inne.
• Określenie wyniku oraz sposobu jego prezentacji
• Ustalenie metody rozwiązania - uwaga metod może być wiele my wybieramy tą która jest najstosowniejsza
dla nas,
• Przedstawienie algorytmu w postaci:
 opisu słownego - stosowna metoda dla algorytmów wykonywanych przez ludzi.
 listy kroków - w kolejnym ponumerowanych wierszach wpisujemy kolejne czynności.
 schematu blokowego - wykorzystujemy specyficzne bloki konstrukcyjne.
 psełdojęzyk - podobny do zapisu w języku programowani ale mnie formalny.
 języka programowania - wykorzystujemy składnię konkretnego języka programowani.
• Analiza poprawności rozwiązania
• Testowanie rozwiązania dla różnych danych - algorytm powinien być skuteczny dla jak najszerszego
zakresu liczb.
• Ocena efektywności przyjętej metody - analizujemy znane metody i wybieramy najszybszą lub spełniającą
konkretne specyficzne wymagania.
4. Działania nie algorytmiczne.
Zastanów się: Czy wszystkie działania są algorytmiczne ? Czy rozwiązanie każdego zadania polega na
wykonywaniu jednoznacznie opisanych, ściśle określonych czynności? Oczywiście, że nie. Istnieją zadania,
których realizacji nie można ująć w ramy jakiegoś planu działania. Taki charakter ma np. każda twórczość
artystyczna. Konieczna jest do tego wyobraźnia i twórcze działanie, a na to nie ma przepisu.
5. Budowa algorytmów.
Algorytmy powinny być tak przedstawiane, aby było możliwe ich jednoznaczne odczytanie i zastosowanie.
Niektóre algorytmy można opisać w języku potocznym, zwłaszcza wtedy, gdy jego wykonawcą ma być
człowiek (w informatyce zajmujemy się opracowywaniem algorytmów, których wykonanie powierzamy
komputerom).
Rodzaje algorytmów:
Algorytm liniowy
Ma on prostą postać. Składa się z ciągu instrukcji, które są wykonywane jedna po drugiej w kolejności, jaka
wynika z ich następstwa w zapisie algorytmu. Taki algorytm nosi nazwę algorytmu liniowego ( sekwencyjnego).
Algorytm warunkowy
Występują w nim instrukcje, których wykonanie uzależnione jest od spełnienia pewnego warunku lub też
spełnienie pewnego warunku powoduje wykonanie jednej instrukcji, a niespełnienie go -innej. Taką instrukcję
nazywamy instrukcją warunkową. Działa ona według jednego z dwóch przedstawionych schematów:
 Jeśli spełniony jest warunek W, wykonaj instrukcję A.
 Jeśli spełniony jest warunek W, to wykonaj instrukcję A; w przeciwnym razie wykonaj instrukcję B.
Instrukcja A i B opisuje jedną instrukcję lub instrukcję składającą się z ciągu instrukcji wykonywanych
sekwencyjnie. Instrukcja warunkowa pozwala dokonać wyboru jednej z dwóch dalszych dróg wykonania
algorytmu.
Algorytm iteracyjny:
 ze znaną ilością powtórzeń.
Takie wielokrotne powtarzanie niektórych instrukcji jest cechą charakterystyczną wielu algorytmów, jednak
nie zawsze (tak jak w tym algorytmie) możemy określić dokładnie liczbę powtórzeń. Może ona zależeć od
spełnienia pewnych warunków. Wielokrotne powtarzanie instrukcji umożliwiają instrukcje iteracyjne (pętle)
.
Wykonuj instrukcję A dokładnie n razy.
 ze spełnieniem warunku (sprawdzamy warunek na końcu)
Powtarzaj wykonywanie instrukcji A aż do spełnienia warunku W.
 ze spełnieniem warunku (sprawdzamy warunek na początku)
Dopóki warunek W jest spełniony, wykonuj instrukcję A.
Elementy schematu blokowego stosowanego w algorytmach:
Poszczególne elementy schematu łączy się za pomocą strzałek. W większości przypadków blok ma
jedną strzałkę wchodzącą i jedną wychodzącą, lecz są także wyjątki.
Ta figura oznacza początek lub koniec algorytmu. W każdym algorytmie musi się znaleźć
dokładnie jedna taka figura z napisem "Start" oznaczająca początek algorytmu oraz dokładnie jedna figura z
napisem "Stop" oznaczająca koniec algorytmu. Najczęściej popełnianym błędem w schematach blokowych jest
umieszczanie kilku stanów końcowych, zależnych od sposobu zakończenia programu. Jest to niedopuszczalne, w
programie mamy przecież dokładnie jedną instrukcję "end." Blok symbolizujący początek algorytmu ma
dokładnie jedną strzałkę wychodzącą a blok symbolizujący koniec ma co najmniej jedną strzałkę wchodzącą.
Jest to figura oznaczająca proces. W jej obrębie umieszczamy wszelkie obliczenia lub
podstawienia. Proces ma dokładnie jedną strzałkę wchodzącą i dokładnie jedną strzałkę wychodzącą.
Romb symbolizuje blok decyzyjny. Umieszcza się w nim jakiś warunek (np. "x>2"). Z
dwóch wybranych wierzchołków rombu wyprowadzamy dwie możliwe drogi: gdy warunek jest spełniony
(strzałkę wychodzącą z tego wierzchołka należy opatrzyć etykietą "Tak") oraz gdy warunek nie jest spełniony.
Każdy romb ma dokładnie jedną strzałkę wchodzącą oraz dokładnie dwie strzałki wychodzące.
Równoległobok jest stosowany do odczytu lub zapisu danych. W jego obrębie należy
umieścić stosowną instrukcję np. Read(x) lub Write(x) (można też stosować opis słowny np. "Drukuj x na
ekran"). Figura ta ma dokładnie jedną strzałkę wchodzącą i jedną wychodzącą.
Ta figura symbolizuje proces, który został już kiedyś zdefiniowany. Można ją porównać do
procedury, którą definiuje się raz w programie, by następnie móc ją wielokrotnie wywoływać. Warunkiem użycia
jest więc wcześniejsze zdefiniowanie procesu. Podobnie jak w przypadku zwykłego procesu i tu mamy jedno
wejście i jedno wyjście.
Koło symbolizuje tzw. łącznik stronicowy. Może się zdarzyć, że chcemy "przeskoczyć" z jednego
miejsca na kartce na inne (np. by nie krzyżować strzałek). Możemy w takim wypadku posłużyć się łącznikiem.
Umieszczamy w jednym miejscu łącznik z określonym symbolem w środku (np. cyfrą, literą) i doprowadzamy
do nie go strzałkę. Następnie w innym miejscu kartki umieszczamy drugi łącznik z takim samym symbolem w
środku i wyprowadzamy z niego strzałkę. Łącznik jest często porównywany do teleportacji (z jednego miejsca
na kartce do drugiego). Łączniki występują więc w parach, jeden ma tylko wejście a drugi wyjście.
Warunki Logiczne
Warunki logiczny jest wyrażeniem testującym dany warunek w wypadku spełnienia
warunku zwraca logiczną prawdę a w przeciwnym wypadku logiczny fałsz.
Różnice pomiędzy operatorami matematycznymi a informatycznymi:
Wygląd operatora
Wygląd operatora informatycznego
Opis
matematycznego
Operator sprawdzenia
A=B
A==B
równości obiektów A i B
Operator sprawdzenia
A≠B
A!=B
różności obiektów A i B
Operator sprawdzenia
A>B
A >B
czy obiekt A jest
większy lub od B
Operator sprawdzenia
A<B
A< B
czy obiekt A jest
mniejszy od B
Operator sprawdzenia
A≥B
A>=B
czy obiekt A jest
większy lub równy od B
Operator sprawdzenia
A≤B
A<=B
czy obiekt A jest
mniejszy lub równy od B
http://www.republika.pl/kasia315/index.html
http://prace.sciaga.pl/6780.html
http://www.programix.terramail.pl/alg_wpr_ctjalgorytm.htm
http://www.programix.terramail.pl/alg_wpr_historia.htm
http://www.republika.pl/kasia315/nauka.htm

Podobne dokumenty