Algorytmika, podstawowe pojęcia

Transkrypt

Algorytmika, podstawowe pojęcia
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 do
rozwiązania danego problemu
• przepis opisujący krok po kroku rozwiązanie
problemu lub osiągnięcie jakiegoś celu
Rodzaje algorytmów
• Algorytm algebraiczny - przepis (zbiór
instrukcji przekształcania) przetwarzania tzw.
danych wejściowych krok po kroku według
wskazanej instrukcji (reguły) przetwarzania
w celu uzyskania wyników przetwarzania,
tzw. danych wyjściowych. Dane, które uzyskuje
się w kolejnych krokach przetwarzania nazywane
są danymi pośrednimi.
Rodzaje algorytmów
• Algorytm niealgebraiczny - ciąg prostych
zdań lub pytań uporządkowanych w logicznej
kolejności (od najbardziej ogólnych
do najbardziej szczegółowych) w taki sposób,
aby trzeba było czytać tylko te zdania,
które odnoszą się do danego przypadku.
[L. Jung, Podstawy użytkowania komputerów algorytmy i komputery, WAT 1981]
Algorytmika
• podstawowy dział informatyki poświęcony
poszukiwaniom, konstruowaniu i badaniom
algorytmów, zwłaszcza w kontekście ich
przydatności do rozwiązywania problemów za
pomocą komputerów.
• autorem nazwy dziedziny jest D. Haral
(Spirit of Computing).
Algorytmy wokół nas
Przykłady z życia codziennego:
• przepisy kulinarne
• instrukcje dotyczące podłączeń określonych
urządzeń
• włączanie komputera
• uruchamianie samochodu
Algorytm w informatyce
• schemat postępowania podczas rozwiązania
zadania określonego typu
• zbiór reguł postępowania dzięki, któremu na
podstawie informacji wejściowych uzyskujemy
efekt w postaci wyników
• sposób rozwiązania zadania z wykorzystaniem
narzędzi informatycznych
Algorytm, jako element procesu
programowania
Programowanie to zespół czynności
umożliwiających rozwiązanie określonego
problemu przy pomocy komputera.
Obejmuje ono:
▫ opracowanie algorytmu
▫ zapis algorytmu w postaci zrozumiałej dla
komputera - w języku programowania
▫ kontrolę poprawności działania programu,
testowanie i usuwanie błędów
problem
algorytm
program
komputer
Język programowania
• Język przeznaczony do zapisu algorytmów
realizowanych przez komputer
• Języki programowania dzielimy na dwie grupy:
▫ niskiego poziomu (asemblerowe) - instrukcje języka
maszynowego są zapisywane za pomocą symboli:
jednemu rozkazowi odpowiada jeden symbol;
programowanie jest żmudne, ale programy są bardzo
szybkie
▫ wysokiego poziomu - instrukcje zapisywane są
w formie zbliżonej do języka naturalnego (znaki
matematyczne+ język angielski); jednej instrukcji
odpowiada ciąg rozkazów języka maszynowego, np.
Pascal, Logo, C++
Cechy algorytmu
•
•
•
•
•
Poprawność
Skończoność
Określoność
Efektywność
Ogólność
Sposoby zapisu algorytmów
• Każdy algorytm powinien posiadać specyfikację,
w której określamy:
▫ dane, z których korzysta algorytm,
▫ wyniki, które powinien dawać,
▫ zmienne pomocnicze niezbędne do realizacji algorytmu
• Uniwersalny algorytm operuje na zmiennych. Zmienna to pojemnik
na dane, może być oznaczana dowolną literą lub łańcuchem znaków,
np. a, bok_a
• Wyrażenia składają się ze stałych, zmiennych, operatorów (+, - , *, /)
i funkcji matematycznych.
• Budując wyrażenie warunkowe korzystamy z operatorów
relacyjnych: =, >, <, <=, >=, <>
• Instrukcja przypisania (:=), np. a:=b+7 oznacza podstawienie pod
zmienną a wartości zmiennej b zwiększonej o 7,
jeśli b=5, a=12
Rodzaje sieci działań:
• proste (sekwencyjne) - nie używa się w nich bloków
warunkowych. W takiej sieci działań kolejność realizacji
poszczególnych operacji jest ściśle określona i żadna
z nich nie może być pominięta ani powtórzona
• z rozwidleniem - zawiera w sobie wybór jednej z kilku
możliwych dróg realizacji danego zadania. Istnieje w nim
przynajmniej jeden blok warunkowy
• z pętlą, często w trakcie realizacji danego zadania
konieczne jest powtórzenie niektórych operacji
różniących się jedynie zestawem danych. Pętla obejmuje
tą część bloków, która ma być powtarzana
• złożone - będące kombinacją powyższych sieci
Sposoby zapisu
Algorytmy można przedstawiać stosując:
• opis słowny (np. przepisy kulinarne w książce
kucharskiej)
• lista kroków
• pseudokod
• schemat blokowy (sieć działań, flow chart,
flow diagram)
• umowny język programowania
• język programowania wysokiego
poziomu, np. Pascal lub C++
Opis słowny
• polega na logicznym i zrozumiałym dla odbiorcy
przedstawieniu kolejnych czynności (akcji), jakie
należy wykonać, aby osiągnąć zamierzony efekt
• przykładami takiego opisu algorytmu mogą być:
przepis kulinarny, recepta wykonania leku,
metoda rozwiązania zadania
Lista kroków
•
•
•
•
Wczytaj wartość pierwszego boku, zmienna a
Wczytaj wartość drugiego boku, zmienna b
Oblicz p jako iloczyn a*b
Wyświetl p
Pseudokod
program kwadrat {nagłówek programu}
zmienne
a, b: rzeczywiste {deklaracje zmiennych}
początek {początek programu właściwego}
czytaj (a) {wczytanie danych}
czytaj (b)
p:=a*b {instrukcja przypisania}
pisz (p) {wyświetlenie wyniku}
koniec {koniec programu właściwego}
Schemat blokowy
• Początek sieci działań (schematu).
W schemacie może występować tylko jeden taki
element.
• Blok wejścia-wyjścia - oznacza czynność
wprowadzania danych i przyporządkowywania
ich zmiennym używanym w dalszej części
programu albo czynność wyprowadzania
wyników obliczeń. Napis wewnątrz określa
rodzaj czynności (np. czytaj, pisz) oraz nazwy
zmiennych i stałych.
• Element (blok) przetwarzania
(obliczeniowy) oznacza wykonanie operacji
(lub zbioru operacji). Wewnątrz bloku określa
się rodzaj czynności przetwarzania i ich
argumenty.
• Blok decyzyjny (warunkowy, alternatywny,
przełącznik) - oznacza element wyboru jednego
z dwóch wariantów dalszego wykonywania
programu. Wybór jest dokonywany na podstawie
wyniku sprawdzenia warunku (będącego
wyrażeniem logicznym) umieszczonego
wewnątrz. Blok ten powinien zawsze posiadać
dwa wyjścia opisane "T" (Tak, True) i "N" (Nie,
False).
• Łącznik wewnątrzstronicowy –
służy do łączenia odrębnych części schematu
znajdujących się na tym samym arkuszu.
Ułatwia zachowanie przejrzystości schematu.
• Zakończenie wykonywania czynności.
Reguły, wg których budujemy
schematy blokowe
• Każdy algorytm ma tylko jeden początek
• Wszystkie drogi muszą kończyć się na bloku
Stop (Koniec)
• Wszystkie bloki muszą mieć zgodną z ich
budową liczbę wejść i wyjść
• Każda linia musi być opatrzona strzałką
informacyjną o kierunku przepływu informacji
Przykład 1
• Sformułuj algorytm obliczający pole prostokąta
o długościach boków podanych przez użytkownika
Specyfikacja algorytmu:
Dane:
a – pierwszy bok prostokąta, liczba rzeczywista
większa od 0
b – drugi bok prostokąta, liczba rzeczywista większa
od 0
Wynik:
- p- pole prostokąta
start
Wczytaj a
Wczytaj b
P:=a*b
Pisz p
koniec
Zadania do samodzielnego wykonania
• Napisz algorytm (opis słowny), wg którego
sporządzisz swoją ulubioną potrawę.
• Napisz algorytm w postaci schematu blokowego
i pseudokodu zwracający wartość bezwzględną
liczby podanej przez użytkownika.
• Napisz algorytm w postaci listy kroków
i schematu blokowego informujący, czy liczba
podana przez użytkownika jest większa, mniejsza
czy równa 0

Podobne dokumenty