Algorytmy pojecia opis

background image

Jerzy Pejas: Algorytmy i struktury danych

- 1 -

ALGORYTMY

POJECIA I OPIS

background image

Jerzy Pejas: Algorytmy i struktury danych

- 2 -

WPROWADZENIE (1)

Literatura podstawowa

[1] S.Algic, M.A.Arbib

Projektowanie

programów poprawnych i dobrze
zbudowanych
, WNT, Warszawa 1982

[2] T.H.Cormen, Ch.E.Leiserson, R.I.Rivest

Wprowadzenia do algorytmów, WNT,
Warszawa 1997

[3] A. Drozdek, D.L. Simon Struktury

danych w jezyku C, WNT, Warszawa,
1996 r.

[4] David Harel Rzecz o istocie informatyki -

algorytmika, WNT, Warszawa 1992 r.

[5] D. van Tassel Praktyka programowania,

WNT, Warszawa 1982

[6] Piotr Wróblewski Algorytmy - struktury

danych i techniki programowania, Wyd.
Helion, 1996 r.

[7] Niklaus Wirth Algorytmy + dane =

program, WNT, Warszawa, 1980 r.

Literatura pomocnicza

1. L.Banachowski, A.Kreczmar, R.Rytter

Analiza algorytmów i struktur danych,
WNT, Warszawa 1987

2. J.M.Brady Informatyka teoretyczna w

ujeciu programistycznym, WNT,
Warszawa, 1983

3. W.C.Jones, Jr. Data structures using

Modula, John Wiley & Sons, New York
1988

background image

Jerzy Pejas: Algorytmy i struktury danych

- 3 -

WPROWADZENIE

O czym bedzie mowa?

Zastosowanie komputerów cechuje

obecnosc pewnych ogólnych metodologii

zawiazanych z formulowaniem problemu,

utworzeniem modelu matematycznego

zadania (

algorytmizacja zadania

),

programowaniem i rozwiazaniem zadania

przy pomocy komputera. W formulowaniu i

rozwiazywaniu zadan biora udzial zwykle

specjalisci z róznych dziedzin.

R o z w i a z a n i e

z a d a n i a

T r a n s f o r m a c j a

a l g o r y t m u n a

j e z y k

p r o g r a m o w a n i a

M e t o d a

r o z w i a z a n i a w

f o r m i e a l g o r y t m u

F o r m a l i z a c j a

s f o r m u l o w a n e g o

z a d a n i a

S f o r m u l o w a n i e

z a d a n i a

O p e r a t o r

k o m p u t e r a

P r o g r a m i s t a

S p e c j a l i s t a o d

a l g o r y t m ó w

( a l g o r y t m i k )

M a t e m a t y k a

S p e c j a l i s t a z

d a n e j d z i e d z i n y

Rys.1 Proces rozwiazywania zadan

algorytmicznych

background image

Jerzy Pejas: Algorytmy i struktury danych

- 4 -

WPROWADZENIE

O czym bedzie mowa?

Kazdy komputer moze wykonac

bezposrednio tylko niewielka

liczbe skrajnie prostych operacji,

takich jak przerzucanie,

wyzerowanie lub sprawdzenie

bitu. Dlaczego wiec przy pomocy

tak prostych rzeczy mozna

realizowac nawet bardzo zlozone

czynnosci? Jak bity to

robia? Odpowiedz

tkwi w dwóch glównych pojeciach:

proces i algorytm.

Rys.2 Operacje na bitach

background image

Jerzy Pejas: Algorytmy i struktury danych

- 5 -

WPROWADZENIE (3)

Pojecie algorytmu i algorytmiki

Pieczenie ciasta - to proces wykonywany ze
skladników, przez piekarza, za pomoca
pieca wedlug przepisu. Skladniki sa danymi
wejsciowymi tego procesu, ciasto jest
danymi wyjsciowymi, czyli wynikiem, a
przepis jest algorytmem. Innymi slowy,
algorytm definiuje czynnosci, które skladaja
sie na proces. Przepisy, a wiec algorytmy
zwiazane ze zbiorem procesów, nazywa sie
czesto oprogramowaniem, zas przybory,
piec, a takze piekarza nazywa sie zwykle
sprzetem.

Rys.3 Proces pieczenia ciasta

background image

Jerzy Pejas: Algorytmy i struktury danych

- 6 -

WPROWADZENIE

Pojecie algorytmu i algorytmiki

Przepisy okreslamy mianem algorytmów,

zas obszar dociekan, wiedzy i doswiadczen

dotyczacych algorytmów nazwiemy

algorytmika.

Algorytmika to wiecej niz dzial informatyki.

Tkwi w centrum wszystkich dzialów

informatyki i jest wazna dla wiekszosci nauk

matematyczno-przyrodniczych, ekonomii i

techniki. Sama natura algorytmiki czyni ja

jednak szczególnie odpowiednia do

stosowania w tych dyscyplinach, które

czerpia korzysci z poslugiwania sie

komputerem.

Slowo algorytm wywodzi sie od nazwiska

perskiego matematyka Muhammeda

Alchwarizmi, który zyl w IX wieku. To

nazwisko, pisane po lacinie, przyjelo postac

Algorismus, stad do algorytmu juz bardzo

blisko.

Miedzy 400 a 300 rokiem przed Chrystusem

grecki matematyk Euklides wynalazl

algorytm znajdowania najwiekszego

wspólnego dzielnika (nwd) dwóch liczb

calkowitych. Algorytm Euklidesa, uwaza sie

za pierwszy kiedykolwiek wymyslony

niebanalny algorytm.

background image

Jerzy Pejas: Algorytmy i struktury danych

- 7 -

WPROWADZENIE

Instrukcje podstawowe

Polecenie typu domieszaj cukier puder jest

ogólnym stwierdzeniem, mniej dokladnym
od wez nieco cukru pudru, wsyp go do
rozpuszczonej czekolady, wymieszaj, wez
jeszcze troche cukru, wsyp, wymieszaj ...,
itd.
albo od precyzyjnego sformulowania
wez 150 gram cukru pudru, wsyp do
rozpuszczonej czekolady i wymieszaj przy
pomocy lyzki
.

Przyjety poziom szczególowosci wynika z

tego, ze sprzet wie, jak wymieszac cukier
puder z czekolada.

Poziom szczególowosci jest bardzo wazny i

musi byc tak dobrany, aby odpowiadal
szczególnym mozliwosciom danego
sprzetu.

Poziom ten zalezy od uzgodnionego na

samym poczatku zestawu tzw. akcji
podstawowych
(instrukcji podstawowych),
które z definicji wbudowane sa w sprzet.

Przy formulowaniu algorytmów bedziemy

przyjmowac, ze instrukcje podstawowe
musza byc okreslone jasno i precyzyjnie
oraz jasno odróznialne od nie instrukcji w
rodzaju wyjdzie z tego 6 do 8 porcji.

Jesli np. sprzet potrafi sam obliczyc

wyznacznik z macierzy, to nie ma sensu
mówic mu jak to ma zrobic. Podobnie, jesli
umie wykonac mnozenie dwóch liczb
calkowitych, to zadanie znalezienia np.
najwiekszego wspólnego mnoznika dwóch
liczb calkowitych formulujemy w oparciu o
zestaw instrukcji podstawowych wyzszego
poziomu.

background image

Jerzy Pejas: Algorytmy i struktury danych

- 8 -

WPROWADZENIE

Przyklad algorytmu

W oparciu o ankiety personalne
pracowników przedsiebiorstwa, zawierajace
nazwisko, szczególy danych osobowych i
zarobki pracowników nalezy obliczyc
miesieczne wydatki firmy na place.

Algorytm postepowania:

(1) zanotuj na boku liczbe 0
(2) przewertuj kolejno ankiety,

dodajac zarobki kazdego z
pracowników do liczby na
boku,

(3) kiedy osiagniesz koniec

listy, przedstaw wartosc
liczby na boku jako wynik

Algorytm rzeczywiscie sumuje zarobki
pracowników. Tekst tego algorytmu jest i ma
ustalona dlugosc, ale proces który opisuje i
którym steruje zmienia sie wraz z liczba
ankiet i moze zabrac rózna ilosc czasu.
Algorytm ten jest jednak na tyle uniwersalny,
ze bez zadnych moze byc zastosowany w
róznych przedsiebiorstwach, o róznej liczbie
pracowników.

Rys.4 Sumowanie zarobków

background image

Jerzy Pejas: Algorytmy i struktury danych

- 9 -

ZADANIE ALGORYTMICZNE

Algorytm opisuje wiele procesów o
róznych dlugosciach i czasach trwania.

Rys.5 Zadanie algorytmiczne i jego

rozwiazanie

Dowolny algorytm powinien zachowywac
sie zadawalajaco dla dowolnejliczby
zestawów danych wejsciowych, które
musza byc dopuszczalne (przygotowane
wg specyfikacji).

Algorytmy sa

rozwiazaniami

zadan

algorytmicznych

(problemów

obliczeniowych). Zadanie to

czarna

skrzynka, okreslona dokladna specyfikacja
danych wejsciowych i definicja zadanych
wyników.

Z instrukcji podstawowych buduje sie
algorytm. Kazdy instrukcja musi byc
wykonana w skonczonym czasie, w
przeciwnym bowiem razie algorytm nigdy
nie zakonczy sie (nie spelni warunku
stopu).

background image

Jerzy Pejas: Algorytmy i struktury danych

- 10 -

DEFINICJA ALGORYTMU

Definicje nieformalne

Algorytm jest pewna scisle okreslona

procedura postepowania, która dla
wlasciwych danych wejsciowych produkuje
zadane dane wyjsciowe, zwane wynikiem
dzialania algorytmu.

Algorytm to takze sposób rozwiazania
konkretnego zadania algorytmicznego.
Problem: sprecyzowanie wymagan
dotyczacych relacji miedzy danymi
wejsciowymi i wyjsciowymi. Algorytm:
procedura obliczeniowa, zapewniajaca
osiagniecie tej relacji.

Okreslenia pomocnicze

Akcja podstawowa (instrukcja podstawo-
wa)
- posiada skonczony czas trwania i

prowadzi do pozadanego i calkowicie
okreslonego wyniku.

Dane wejsciowe - cos, na czym wykonuje
sie akcje podstawowe i przez zmiane czego
mozna sadzic o wyniku akcji.

Dane wyjsciowe (wynik) - zmiana danych
wejsciowych na skutek poddaniu ich
pewnej akcji.

Jezyk - srodek opisu danych i akcji
podstawowych.

Instrukcja - opis akcji w pewnym jezyku.

Proces - akcja, która po rozlozeniu na
czesci, jest zbiorem innych akcji
podstawowych.

Algorytm jest to zbiór instrukcji,
okreslajacych w jakiej kolejnosci, na jakich
danych wejsciowych i jakie akcje
podstawowe nalezy wykonac, aby uzyskac
wymagany wynik.

background image

Jerzy Pejas: Algorytmy i struktury danych

- 11 -

POSTACIE OPISU

ALGORYTMU

Kazdy z algorytmów mozna przedstawic w
trzech postaciach podstawowych:

postac

opisujaca

- jest opisem w jezyku naturalnym, w

szczególnosci matematycznym,

postac graficzna

- sa to specjalne znaki graficzne z zaznaczeniem
powiazan pomiedzy nimi,

postac programowa

-

algorytm zapisany jest w jezyku abstrakcyjnego
(pseudokodzie) lub konkretnego komputera.

Pseudokod: (patrz takze Cormen i in. -
Wprowadzenie do algorytmów):

1. Slowa begin i end definiuja blok algorytmu.

2. Instrukcje iteracji while, for, do-while oraz

warunkowe if - else maja taka sama
interpretacje jak w jezyku C.

3. Symbol -- oznacza, ze reszta wiersza jest

komentarzem.

4. Wielokrotne przypisywanie w formie i

←j←e.

5. Zmienne takie jak i, j, sa lokalne w danej

procedurze. Zmienne globalne musza byc
okreslone explicite.

6. Dostep do elementu tablicy oznaczamy

poprzez podanie jej nazwy i indeksu zadanego
elementu, np. a[i]. Notacja “..” sluzy do
oznaczenia podtablicy, np.

a[1..j] jest

podtablica.

7. Dane zlozone z kilku czesci sa organizowane w

klasy, skladajace sie z atrybutów lub pól.
Odwolanie sie do pola obiektu klasy: nazwa
obiektu i nazwa pola, wystepujacej po znaku
. Np. dla wszystkich pól f obiektu x,
przypisanie y

←x oznacza y→f=x→f, a takze iz

x i y wskazuja na te same obiekty. Zmienna
odpowiadajaca obiektowi jest traktowana
jako wskaznik do danych reprezentujacych
ten obiekt
.

8. Parametry sa przekazywane do procedury

przez wartosc. Obiekty przekazywane sa przez
adres (wskazniki do nich).

background image

Jerzy Pejas: Algorytmy i struktury danych

- 12 -

ALGORYTMY I DANE

Algorytm jest zbiorem starannie dobranych

instrukcji, bedace poleceniami wykonania
akcji podstawowych.

Rys.6 Program a algorytm

Kazdy komputer wyposazony jest w procesor,
który potrafi wykonywac wbudowane w niego
instrukcje elementarne.

Akcje podstawowe kazdego algorytmu musza
byc na taki wlasnie zestaw instrukcji

elementarnych i wykonywane przez
procesor w kolejnosci, wynikajacej z
logiki danego algorytmu.

Algorytm zawiera instrukcje sterujace,
mówiace procesorowi co ma zrobic i na
jakich danych, kiedy ma sie zatrzymac i
pozostac w stanie gotowosci do
kontynuowania pracy.

Stad juz jeden krok do programu, który
stanowi skonkretyzowane
sformulowanie algorytmów na podstawie
okreslonej reprezentacji i

struktur

danych. Mozna to dobitnie zapisac za
pomoca tytulu slynnej ksiazki

Algorytm

Akcje

podstawowe

obiekty - dane

Instrukcje

Porgram

Struktury

sterujace

background image

Jerzy Pejas: Algorytmy i struktury danych

- 13 -

N.Wirth’a: algorytmy + struktury danych =
programy
.

ALGORYTMY I DANE

Struktury sterujace

Kolejnoscia wykonania steruje sie przy
pomocy zbioru instrukcji zwanych
strukturami przeplywu sterowania lub krócej
strukturami sterujacymi. Do podstawowych
struktur sterujacych naleza:

bezposrednie nastepstwo w postaci
wykonaj A, a potem B (tzw. sekwencja
instrukcji podstawienia), np. do liczby 12
dodaj 3, a potem wynik podziel przez 5
,

wybór warunkowy

(rozgalezienie

warunkowe) w postaci jesli Q, to wykonaj
A, w przeciwnym razie wykonaj B
(ang. if
Q then A else B)
, lub jesli Q, to B (ang. if
Q then A
); Q jest pewnym warunkiem,

selekcja, zwana takze wielokrotnym
wyborem warunkowym (krócej instrukcja
wyboru), w postaci przypadek C

1

z Q to

wykonaj A

1

, C

2

z Q to wykonaj A

2

, ..., C

n

z

Q to wykonaj A

n

(odpowiednik w jezyku

Pascal case Q of C

1

: A

1

; C

2

: A

2

; ..., C

n

: A

n

end), bedaca uogólnieniem wyboru
warunkowego z zagniezdzonymi innymi
warunkami wyboru.

iteracja ograniczona w postaci ogólnej
wykonaj A dokladnie N razy (np.
przykladem jest tu konstrukcja jezyka
Pascal for i:=1 to N do A;), gdzie N jest
pewna liczba,

iteracja warunkowa, zwana czasem
nieograniczona, w postaci wykonuj A az
do Q
- iteracja z warunkiem koncowym
(odpowiednik w jezyku Pascal repeat A
until Q
) lub dopóki Q, wykonuj A - iteracja

background image

Jerzy Pejas: Algorytmy i struktury danych

- 14 -

z warunkiem poczatkowym (odpowiednik
w Pascalu while Q do A).

background image

Jerzy Pejas: Algorytmy i struktury danych

- 15 -

ALGORYTMY I DANE

Przyklad: Algorytm sortowania
babelkowego

Rys.7 Glówne stadia sortowania babelkowego

Opis w jezyku naturalnym:

(1) wykonaj co nastepuje N-1 razy:

(2.1) wskaz na pierwszy element;
(2.2) wykonaj co nastepuje N-1 razy:






(2.2.1) porównaj wskazany element z

nastepnym

(2.2.2) jesli porównywane elementy sa w

niewlasciwej kolejnosci, zamien je
miejscami;

(2.2.3) wskaz na nastepny element

Pseudokod:

for i

1 to N-1

for j

← 1 to N-i

begin

key

← a[j]

if (a[j+1] < key)
begin
a[j]

←a[j+1]; a[j+1]←key

end

end

background image

Jerzy Pejas: Algorytmy i struktury danych

- 16 -

PODPROGRAMY, CZYLI

PROCEDURY

W jakims dlugim tekscie zliczamy zdania
zawierajace slowo pieniadze.

W petli zewnetrznej realizowane sa dwa

poszukiwania: najpierw slowa pieniadze,
a nastepnie znaku konca zdania, czyli
kombinacji ‘. ‘.

background image

Jerzy Pejas: Algorytmy i struktury danych

- 17 -

PODPROGRAMY, CZYLI

PROCEDURY

Ulepszenie algorytmu: napisanie
fragmentu algorytmu, zwanego
podprogramem lub

procedura z

parametrem.

Stosowanie podprogramów skraca
opis algorytmu.

Podprogram jest nowa akcja
podstawowa.

Procedury czynia algorytm czytelnym
o przejrzystej strukturze.

Zwykle obmysla sie wpierw algorytm
wysokiego poziomu z akcjami
podstawowymi, które moga byc
jeszcze nieznane. Takie podejscie
oznacza projektowanie od ogólu do
szczególu i nazywane jest

metoda

zstepujaca (inne podejscie, to metoda
wstepujaca).

background image

Jerzy Pejas: Algorytmy i struktury danych

- 18 -

TYPY DANYCH I STRUKTURY

DANYCH

background image

Jerzy Pejas: Algorytmy i struktury danych

- 19 -

TYPY DANYCH I STRUKTURY

DANYCH

Kolejki i stosy

Stos jest kolekcja danych, które sa
uporzadkowane wedlug
kolejnosci ich otrzymywania.
Kazdy nowy element danych jest
umieszczany na szczycie stosu.
Dane sa zdejmowane ze stosu,
poczawszy od elementu, który
znajduje sie na szczycie. Dynamike
umieszczania elementów na stosie oraz ich
zdejmowania okresla sie skrótem LIFO (ang.
Last-In First-Out, czyli ostatni na wejsciu -
pierwszy na wyjsciu). Na stosie mozna, obok
umieszczania oraz zdejmowania elementów,
wykonywac takze inne operacje, np. usuwac

wszystkie elementy oraz przesuwac elementy
w góre lub w dól.

Uporzadkowanie elementów w kolejce jest
takie samo jak na stosie, czyli zgodne z
kolejnoscia ich otrzymywania. Teraz jednak

kazda nowa dana jest umieszczana na koncu
kolejki, a pobierana z jej poczatku. Ten
sposób umieszczania oraz pobierania
elementów z kolejki okresla sie skrótem FIFO
(ang. First-In First-Out, czyli pierwszy na
wejsciu - pierwszy na wyjsciu).

background image

Jerzy Pejas: Algorytmy i struktury danych

- 20 -

DIAGRAMY ALGORYTMÓW -

SCHEMATY BLOKOWE

Rysunek przedstawia trzy podstawowe
wzorce (konstrukcje strukturalne),
odpowiadajace wprowadzonym wczesniej
instrukcjom sterujacym:

Bezposrednie nastepstwo (sekwencja)

Wybór warunkowy (w skrócie warunek),

zwany takze if-then-else

Iteracja warunkowa z warunkiem

poczatkowym do-while (odpowiednik w
Pascalu while-do).

Konstrukcja z warunkiem koncowym

repeat-until.

Konstrukcja selekcji (lub wybór-

przypadku) jest rozszerzeniem instrukcji if-
then-else
. Parametr decyzyjny,
wystepujacy w kazdym bloku decyzyjnym,
jest testowany kolejno, az do momentu
spelnienia warunku. Po spelnieniu

warunku wykonywana jest odpowiadajaca mu czesc
przypadku case.

background image

Jerzy Pejas: Algorytmy i struktury danych

- 21 -

DIAGRAMY ALGORYTMÓW -

DIAGRAMY BLOKOWE

Diagramy te zostaly opracowane przez Nassi i
Shneidrman’a i rozbudowane przez Chapin’a
(zwane sa wykresami Nassi-
Shneiderman’a, wykresami N-S lub
wykresami Chapin’a).

Cechy:

zakres funkcjonalny (zasieg
powtórzen lub instrukcji if-then-
else
) jest dobrze zdefiniowany oraz
dobrze widoczny,

dowolne przekazywanie sterowania
przeplywani w ramach diagramu jest
niemozliwe,

zasieg widocznosci zmiennych
(lokalnych i globalnych) jest latwy
do okreslenia,

w sposób prosty mozna przedstawiac
konstrukcje rekurencyjne.

First task

Next task

Next task

Condition

F

T

F

T

Case condition

Else

part

Then

part

Loop condition

Loop condition

Do - while

part

Repeat - until

part

Value

Value

Value

…..

Else

part

Case

part

Case

part

Case

part

….

background image

Jerzy Pejas: Algorytmy i struktury danych

- 22 -

DIAGRAMY ALGORYTMÓW -
DIAGRAMY STRUKTURALNE

Jezyk projektowania programów
stosowany jest czesto w sprzezeniu z
narzedziami projektowania typu CASE

1

-

Komputerowo Wspomagana Inzynieria
Oprogramowania (ang. Computer-Aided
Software Engineering
), które w
niektórych przypadkach tlumacza wrecz
komponenty graficzne algorytmu na
odpowiadajaca im reprezentacje
proceduralna. Stad np. diagramy struktur
sterowania moga byc tlumaczone na kod
zródlowy jezyka programowania.

1

CASE mozna uwazac za srodek automatyzacji programowania strukturalnego

background image

Jerzy Pejas: Algorytmy i struktury danych

- 23 -

DIAGRAMY ALGORYTMÓW

- PORÓWNANIE

Schemat blokowy - przyklad

x2

x3

x4

x5

c

d

e

a

b

x1

x8

j

f

g

x6

i

h

x7

background image

Jerzy Pejas: Algorytmy i struktury danych

- 24 -

DIAGRAMY ALGORYTMÓW

- PORÓWNANIE

Diagram blokowy - przyklad

a

b

x1

case xi, i=2,3,4

x2

x3

x4

f

x6

g

x5

c

d

e

h

i

x8

x7

j

background image

Jerzy Pejas: Algorytmy i struktury danych

- 25 -

TRANSLATORY

Zlózmy ze dany jest programowania, tzn.
jego skladnia, semantyka i inne potrzebne
elementy, oraz oprogramowalismy
opracowany wlasnie algorytm A rozwiazujacy
pewne zadanie algorytmiczne i chcemy
przedstawic powstaly program o nazwie A

P

komputerowi. Jak to zrobic, aby komputer
zrozumial nasz program?

Wyjscie pierwsze. Program A

P

mozemy

wprowadzic do pamieci komputera z
klawiatury lub wczytujac go z
zewnetrznego nosnika pamieciowego
(dyskietka, dysk, itp.). W trakcie
wczytywania program

A

P

ulega

przeksztalceniom, które stopniowo
sprowadzaja go do poziomu zrozumialego
przez komputer.

Wyjscie drugie. Programu A

P

nie musimy

w calosci tlumaczyc na jezyk nizszego
poziomu. To raczej kazda z instrukcji
wysokiego poziomu zostaje
przetlumaczona na instrukcje jezyka
maszynowego natychmiast po jej
napotkaniu, a te z kolei od razu sa
wykonywane. Mechanizm odpowiedzialny
za tego rodzaju tlumaczenie i
natychmiastowe wykonanie jest
fragmentem oprogramowania
systemowego, nazywanym interpreterem.

Czesto kompilatory oraz interpretery
okreslane sa wspólnym mianem translatora
(doslownie - tlumacz). Translatory oprócz
zadania przelozenia programu na jezyk
maszynowy, musza wykrywac ewentualne
bledy w skladni programu i diagnozowac ich
przyczyny.

background image

Jerzy Pejas: Algorytmy i struktury danych

- 26 -

TRANSLATORY

background image

Jerzy Pejas: Algorytmy i struktury danych

- 27 -

JEZYKI PROGRAMOWANIA

Skladnia typowego jezyka zawiera:

warianty kilku struktur sterujacych

sposoby definiowania rozmaitych struktur

danych

wzorce podstawowych instrukcji

Algorytm sumowania liczb od 1 do N w
hipotetycznym jezyku JP:

definiuj N, X, Y liczby
calkowite
wczytaj
N;

X := 0;
dla Y od 1 do N wykonaj

X := X + Y
koniec; wypisz X.

Slowa kluczowe: definiuj, wczytaj, dla itd.
Instrukcje:

przypisania

- X := 0

iteracji

- dla ...

wykonaj ... koniec

ALGORYTM

Jezyk programowania

PROGRAM

symbole

slowa kluczowe

skladnia

semantyka

background image

Jerzy Pejas: Algorytmy i struktury danych

- 28 -

JEZYKI PROGRAMOWANIA

Definiowanie skladni jezyka w notacji
BNF (Backus-Naur Form) („|” oznacza
„lub”):

<instrukcja> : <instrukcja-dla> |

<instrukcja-
przypisania
> | ...

<instrukcja-dla> : dla <naglówek-
dla
> wykonaj <instrukcja> koniec
<naglówek-dla> : <zmienna> od

<wartosc> do
<wartosc>

<wartosc> : <zmienna> | <liczba> |
...

Diagramy skladniowe:

instrukcja-dla

instrukcja-przypisania

instrukcja

naglówek-dla

instrukcja

instrukcja-dla

dla

wykonaj

koniec

zmienna

wartosc

naglówek-dla

od

z krokiem

do

wartosc

wartosc

zmienna

cyfra

wartosc

cyfra

litera

zmienna

litera

Definiowanie struktur danych:

definiuj TA tablica
[1..50,8..107] w niej
liczby calkowite

i odwolanie do elementu tablicy:

TA[wartosc,wartosc]

background image

Jerzy Pejas: Algorytmy i struktury danych

- 29 -

JEZYKI PROGRAMOWANIA

Skladnia jezyka programowania okresla:

jak opisywac struktury sterujace

jak opisywac struktury danych

jak tworzyc poprawne ciagi symboli dla

nazywania zmiennych i struktur danych

jak stosowac interpunkcje (np. spacje,

sredniki, kropki, nawiasy)

Semantyka okresla znaczenie poprawnych

skladniowo wyrazen

Przyklad problemów semantycznych - zmienne
procedurowe:

Jesli skladnia dopuszcza zmienne, których
wartosciami sa nazwy procedur, to procedura
Proc(V) moze byc wywolywana z róznymi
wartosciami parametru np. Proc(Rand) lub
Proc(Quick). Jaki wynik uzyskamy gdy
wywolamy Proc(Proc) dla:

procedura Proc(V):
1. wywolaj V
(V), umieszczajac

wynik dzialania w zmiennej
X
;

2. jesli X = 1, wróc i podaj

wynik 0; w przeciwnym razie
wróc i podaj wynik 1

Przyklad kompilacji na jezyk nizszego rzedu
(asembler):

Jezyk wysokiego

poziomu

Asembler

dla Y od 1 do N
wykonaj
(tresc iteracji)
koniec

LDS 0,Y

(zaladuj 0 pod adres
Y)

PETLA POR N,Y

(porównaj wart. pod
adr.)

SKR DALEJ (jesli równe, to

skocz)

DDS 1,Y

(dodaj 1 do wart. pod
adr. Y)

(tlumaczenie tresci iteracji)

SKO PETLA (skocz z powrotem)

DALEJ ...

background image

Jerzy Pejas: Algorytmy i struktury danych

- 30 -

JEZYKI PROGRAMOWANIA

Definicja pojec:

q

Kompilacja - przekladanie calego
programu napisanego w jezyku
wysokiego poziomu na program w
jezyku nizszego poziomu

q

Interpretacja - przekladanie kolejno
instrukcji jezyka wysokiego poziomu na
instrukcje poziomu maszynowego

Elementy komputera:

PROCESOR

Pamiec operacyjna

Pamieci zewnetrzne

Urzadzenia

wejsciowe

Urzadzenia

wyjsciowe

Uruchomienie programu

PROCESOR

Pamiec operacyjna

Pamiec zewnetrzna

Program

1. krok

background image

Jerzy Pejas: Algorytmy i struktury danych

- 31 -

JEZYKI PROGRAMOWANIA

Uruchomienie programu

PROCESOR

Pamiec operacyjna

Pamiec zewnetrzna

Program

2. krok

Dane

Urz. wejsciowe




PROCESOR

Pamiec operacyjna

Program

3. krok

Dane

Wyniki



PROCESOR

Pamiec operacyjna

Program

4. krok

Dane

Wyniki

Urz. wyjsciowe


Wyszukiwarka

Podobne podstrony:
19 Pojecie i opis ruchu falowego (2)
19 Pojecie i opis ruchu falowego (2)
OPIS POJĘCIA I ODMIANY
Pojęcie algorytmu, wykłady i notatki, dydaktyka matematyki, matematyka przedszkole i 1-3
opis algorytmu do l100 BT6YWRU2YMH3VC7JYF5ZRO452DOIDYTSOLA6JFI
Opis istniejących algorytmów upraszczania
Pojęcia algorytmy, Studia Informatyka 2011, Semestr 2, Algorytmy i struktury danych, algorytmy sciag
IV - 22 Opis algorytmu analizy statycznej konstrukcji prętow, IV - 22
instrukcja i opis algorytmów, algorytm losowy:
Opis istniejcych algorytmw upraszczania, Kartografia tematyczna
Pojęcie algorytmu
Algorytm sposobem pisemnym, pojęcie i tok metodyczny (ze schematem) dodawanie i odejmowanie lub mnoż
Układy Napędowe oraz algorytmy sterowania w bioprotezach
5 Algorytmy

więcej podobnych podstron