Visual Basic for Applications - UNREGISTERED VERSION

Idź do spisu treści

Menu główne

Moduł 2 - Algorytmy

Wiedza

2.1. Algorytmy - wstęp:
Większość wykonywanych zadań w życiu nie wymaga od nas myślenia kreatywnego, lecz schematycznego działania. Tak jest na przykład podczas wykonywania czynności dnia codziennego: mycia zębów, kąpieli, ubierania i rozbierania się, przygotowywania żywności, a nawet kasowania biletu w tramwaju. Taki schemat działania prowadzący do określonego celu nazywamy algorytmem.

Definicje algorytmu (wszystkie definicje i pojęcia dostępne także w dziale "Słownik pojęć")

2.2. Sposoby przedstawiania algorytmów:
Istnieje wiele sposobów przedstawiania algorytmów. Najprostszą formą zapisu algorytmu jest opis słowny. Historycznie jest to pierwszy i stosowany do dzisiaj, lecz nie zawsze precyzyjny opis postępowania. Wyróżnia się także różnorodne graficzne oraz informatyczne sposoby prezentacji. Poniżej przedstawiony został podstawowy podział metod zapisywania algorytmów:

 
 
 

słowny opis algorytmu

opis algorytmu w postaci listy kroków

schemat blokowy algorytmu

drzewo algorytmiczne (drzewo decyzyjne)

język algorytmiczny (język programowania)

 

Powyższe metody przedstawiania algorytmów opisano także w dziale "Słownik pojęć" jak również w notatce do wydrukowania w PDF-ie.

2.3. Cechy algorytmu:
- jednoznaczność (określoność) - wykonanie wszystkich procesów prowadzi do uzyskania poprawnego wyniku końcowego; dobry algorytm zawiera zabezpieczenia, nie dopuszczające do jego przerwania w trakcie realizacji z powodu zaistnienia nieprzewidzianych okoliczności; wiąże się ze skończonością liczby operacji
- uniwersalność (masowość) - algorytm ma rozwiązywać wszystkie problemy danego typu
- szczegółowość - polega na tym aby tak rozpisać czynności (na czynności elementarne), aby mogły być odczytane i wykonane przez realizatora algorytmu (czyli użytkownika)
- sekwencyjność - dotyczy kolejności wykonania operacji
- złożoność (czasowa i pamięciowa) - algorytm "zabiera" zasoby niezbędne do wykonania czynności (pamięć komputera, czas, ilość włożonej energii etc.)

2.4. "Słownik" algorytmu, a operatory:
Niezwykle ważnym aspektem, który należy brać pod uwagę podczas tworzenia i realizowania algorytmu jest znajomość odpowiedniego "języka". Musi być on znany i zrozumiały zarówno dla twórcy, jak i odbiorcy algorytmu. Jak podaje Wikipedia (o tym dlaczego twórcy tej strony lubią Wikipedię, opowiemy na zajęciach ;-)) typowym algorytmem przedstawianym jako przykład stosowanego
w życiu codziennym jest przepis kulinarny. Cyt. "Dla przykładu, aby ugotować bigos należy w określonej kolejności oraz odstępach czasowych (...) dodawać właściwe rodzaje kapusty i innych składników. (...) Przykład ten ma wyłącznie charakter poglądowy, ponieważ język przepisów kulinarnych nie został jasno zdefiniowany. Algorytmy zwykle formułowane są w sposób ścisły w oparciu o język matematyki."
Dodać należy, że aby poprawnie wykonać ten algorytm (ugotować bigos) konieczna jest właśnie znajomość wyrażeń z tzw. "słownika". Gotujący tą potrawę musi wiedzieć czym jest obieranie, krojenie i gotowanie na wolnym ogniu. Musi także znać podstawowe jednostki czasu: minuty, godziny etc. Niestety, w kuchni nawet perfekcyjne wykonanie algorytmu nie zawsze skutkuje ugotowaniem pysznego obiadu ;-)
Na naszych zajęciach będziemy korzystać z jednolitego, standardowego słownika opartego o tzw. operatory. Zarówno w tworzeniu schematów blokowych, jak i później podczas pracy w Visual Basic for Applications.

2.5. Podstawowy podział algorytmów:
- algorytm liniowy - składa się z operacji wykonywanych kolejno jedna po drugiej (sekwencyjnie). Tak ustalony porządek wykonywania działań określa tylko jeden sposób postępowania
- algorytm złożony (z rozgałęzieniami) - sposób postępowania, w którym wyróżniamy miejsce, gdzie wybór dalszej drogi działania uzależniony jest od spełnienia lub nie pewnego warunku albo wielu warunków.

Notatka do modułu 2 - Algorytmy

Programy i linki - polecamy program - SDP Simulation fo Dining Philosophers Problem oraz stronę algorytm.org z rewelacyjnymi przykładami i generatorem schematów blokowych

Ciekawostki - bardzo interesujące zagadki logiczne - Problem 5-ciu filozofów i Wieże Hanoi (gra przez przeglądarkę!). A tak na marginesie - my już znaleźliźmy rozwiązanie problemu ucztujących filozofów ;-)

Źródła/literatura:
-
http://webszok.net
- http://www.wikipedia.org
-
http://www.kwestiasmaku.com/
- http://www.ikea.com/pl/pl/
- Piotr Wróblewski; Algorytmy, struktury danych i techniki programowania. Wydanie III; Helion; 2003

Szukaj
Wróć do spisu treści | Wróć do menu głównego