You are on page 1of 21

WPROWADZENIE Algorytm uporzadkowany zbir operacji takich, e po ich wykonaniu w zdefiniowanym porzdku otrzymuje si rozwizanie zadania z okrelonej klasy

y zada. Cechy algorytmu oglno, skoczono, okrelono i efektywno. Sposoby zapisu algorytmu jzyk naturalny, schemat blokowy, jzyk formalny. Elementy schematw blokowych
Blok graniczny Blok wejcia/wyjcia Blok obliczeniowy Podprogram, fragment algorytmu opisany oddzielnie komentarz cznik wewnatrzstronicowy, midzy stronicowy Schodzenie si oblicze

Blok decyzyjny

Konwencja notacyjna pseudo-Pascal 1. Deklaracje staych, typw i zmiennych const nazwa_zmiennej = warto; var nazwa_zmiennej : typ_danych; Boolean (false, true) char integer real array[specyfikacja typu indeksu] of typ_danych, np. array[1..n] of char 2. Instrukcje a) instrukcja przypisania nazwa_zmiennej := wyraenie

b) instrukcje warunkowe if warunek then instrukcje end_if if warunek then instrukcje else instrukcje end_if c) instrukcje iteracji While warunek do instrukcje end_while

Repeat instrukcje until warunek

For i=wyr to n do instrukcje end_for

3. procedure nazwa (parametry); deklaracje lokalne instrukcje end_procedure


1

function nazwa (parametry): typ_wyniku; deklaracje lokalne instrukcje end_function

Zadanie 1. Dany jest cig a1,...,an liczb cakowitych, dla n>=2. Naley znale indeks najwikszej i najmniejszej spord nich. Cig jest reprezentowany przez tablic a[1..n]. Rozwizanie powinno obejmowa schemat blokowy i zapis algorytmu w pseudokodzie w wersji z petl while, repeat oraz for. Okreli efektywno czasow algorytmu. Zadanie 2. Napisa funkcj dla wyszukiwania pierwszego pooenia wzorca w tekcie. Przykad: wzorzec = A B C m=3 tekst =BABDEFABCD n = 10 Mamy deklaracje: var tekst : array[1..n] of char; wzorzec : array[1..m] of char; (schemat blokowy + pseudokod) Zadanie 3. Napisa funkcj zliczajc (zwracajc) ilo wierszy macierzy A[1..m, 1..n] of integer zgodnych ze wzorcem B[1..n] of integer.

wynik szuk_brut = 7

11 8 32

23 7 4 13 4

21 0 65 4 65

6 21 1 12 1

3 4 12 1 12

B 32

65

12

5 32

j
Jeeli procedura P zawiera bezporednie odwoanie do samej siebie: P = f[S,P] to P nazywa si procedur bezporednio rekurencyjn; jeeli procedura P zawiera odwoanie do innej procedury Q, ktra zawiera bezporednie lub porednie odwoanie do P: P = f[S,Q], Q = g[T,P] to P nazywa si procedur porednio rekurencyjn; Zadanie 4. Algorytm obliczania silni w wersji rekurencyjnej i nierekurencyjnej. n! := n * (n 1)! 1! := 0! := 1 Zadanie 5. Cig Fibonacciego jest okrelony nastpujcym wzorem rekurencyjnym: F0 = 0, F1 = 1, Fn = Fn 2 + Fn 1 dla n > 1 Zapisz funkcj w wersji rekurencyjnej i nierekurencyjnej, ktrej wartoci jest n-ty wyraz cigu Fibonacciego. Przyj zaoenie, e n >= 0. Narysowa drzewo wywoa dla n=4. Zadanie 6. Poda wersj rekurencyjn zad.1, okreli liczb wywoa.

Zadanie 7. Algorytm rysowania drzewa dychotomicznego Na ekranie kreli obrazy ruchomy kursor. Dane s procedury sterujce ruchem kursora: obrt() - obr kursor o kt w lewo rysuj(s) - narysuj odcinek dugoci s idc w kierunku ruchu Zadanie 8. Co jest wynikiem dziaania poniszego algorytmu: procedure p(x: real); var i: integer; begin if x > min then for i:= 1 to 3 do p(x/2); rysuj(x); obrt(120); end_for; end_if; end. Zadanie 9. Narysowa figur:
Krzew(0.8) Krzew(1)

x -> x/3 Zadanie 10. Dla podanego algorytmu narysowa drzewo wywoa i poda co zostanie wywietlone na ekranie. p(4) p(5) procedure p(n: integer); procedure p(n: integer); begin begin if n > 0 then if n > 0 then p(n-2); p(n-2); writeln(n); p(n-1); p(n-1); writeln(n); end_if; end_if; end end Zadanie 11. Napisa algorytm obliczajcy, na ile sposobw mona wyrazi liczb naturaln N w postaci sumy skadnikw naturalnych. Poda drzewo wywoa dla N=4. Przykad: N = 5; Zbir sum = {5, 4 + 1, 3 + 2, 3 + 1 + 1, 2 + 2 + 1, 2 + 1 + 1 + 1, 1 + 1 + 1 + 1 + 1} Uwaga! Sumy rnice si tylko porzdkiem skadnikw liczymy tylko raz (np.: 4 + 1 oraz 1 + 4). Zadanie 12 Poda algorytm znajdujcy tak sekwencj ruchw skoczka szachowego, aby odwiedzi on kade pole na szachownicy (zmienna globalna, tablica kwadratowa o wymiarze n) dokadnie raz.
3

You might also like