Bloki używane w algorytmach:
początek, koniec
blok decyzyjny
wprowadzenie lub wyprowadzenie danych
proces
Algorytm dodawania
dowolnej ilości liczb
N
T
pętla
repeat until
N
T
SUMA a 1 a 2 a 3 a 4 a 5
3 131 16 -111 7
0 SUMA = 0
1 SUMA = SUMA + a1 = a1
2 SUMA = SUMA + a2 = a1 + a2
3 SUMA = SUMA + a3 = a1 + a2 +a3
4 SUMA = SUMA + a4 = a1 + a2 +a3 + a4
5 SUMA = SUMA + a5 = a1 + a2 +a3 + a4 + a5
.
:
n SUMA = SUMA + an = a1 + a2 +a3 + a4 + a5 + an
PORZĄDKOWANIE ZBIORU LICZB
DANE: PRZYPADKOWY ZBIÓR N LICZB
a1 |
a2 |
… |
ai |
… |
aN-1 |
aN |
Zadanie: uporządkować w/w zbiór wg rosnących wartości elementów tzn. uzyskać zbiór o postaci:
ai1 |
a12 |
... |
ai J |
… |
aiN-1 |
aiN |
gdzie
Metoda: wielokrotne wykonywanie
częściowego porządkowania polega
na porządkowaniu kolejnych elementów
sąsiednich.
T
N
N
T
N
T
Algorytm programu realizującego porządkowanie zbioru liczb.
CZY
WSKAŹNIK
UPORZĄDKOWANIA T
JEST
ZMIENIONY
N
Algorytm częściowego porządkowania
Algorytm ustawienia wskaźnika uporządkowania
Rozwiązanie operacji
częściowego
porządkowania
zbiorów
Rozwiązanie operacji
porządkowania dwóch
sąsiednich elementów
zbioru
r
y
MAPA ŚLEDZENIA ALGORYTMU
KROK OBLICZEŃ |
BLOK OPERCJI |
WARTOŚĆ |
||||
|
|
x |
y |
r |
q |
r |
1 |
1 |
50 |
15 |
|
|
|
2 |
2 |
|
|
|
0 |
50 |
3 |
3 |
|
|
T |
|
|
4 |
4 |
|
|
|
1 |
35 |
5 |
3 |
|
|
T |
|
|
6 |
4 |
|
|
|
2 |
20 |
7 |
3 |
|
|
T |
|
|
8 |
4 |
|
|
|
3 |
5 |
9 |
3 |
|
|
N |
|
|
10 |
5 |
|
|
|
3 |
5 |
DEKLARACJE, INSTRUKCJE, FUNKCJE, KOMENTARZE,
deklaracje to informacje umieszczane w programie opisujące dane:
typy danych
tablice
stałe
zmienne
instrukcje to operacje do wykonywania przez komputer
proste (np. przypisanie)
złożone (np. pętla)
funkcje i procedury to przygotowane przez programistę lub wykorzystane gotowe programy
komentarze to części programu, które nie są tłumaczone na kod wewnętrzny
informacje o autorze programu
informacje o przeznaczeniu programu
informacje o danych, procedurach itp.
TYPY DANYCH
liczby:
liczby całkowite (ang. Integer, Longinteger)
liczby rzeczywiste (ang. Real, Double Precision)
kropka dziesiętna
zakres liczb
dane tekstowe (łańcuchy) (ang. string)
dane złożone:
tablice - macierze (ang. array)
rekordy (ang. record)
WPROWADZANIE DANYCH I WYPROWADZANIE WYNIKÓW
wprowadzanie danych:
z klawiatury
z plików dyskowych
formaty wprowadzanych danych:
łańcuchy
liczby (ustalony format lub format swobodny)
wyprowadzanie wyników:
w trybie tekstowym
w trybie graficznym
STRUKTURA PROGRAMÓW
Program może zawierać podprogramy (ang. subroutime, procedure) oraz funkcje (ang. function)
Zalety wydzielania podprogramów:
przejrzystość struktury (łatwość analizy i modyfikowania programów)
skrócenie kodu programu (możliwość wielokrotnego wywołania podprogramów)
URUCHAMIANIE PROGRAMÓW
Uruchamianie programów ma na celu:
doprowadzenie do jego wykonywalności (usunięcie błędów formalnych)
testowanie programów (usunięcie błędów merytorycznych, potwierdzenie poprawności działania)
specjalne narzędzia programowe (zwane debugerami) służą do:
śledzenia przebiegu programu
wykonywania programu fragmentami (nawet instrukcja po instrukcji)
odczytywania wartości zmiennych po każdym zatrzymaniu (a nawet zmiany tej wartości)
PRZYKŁAD STRUKTURY PROGRAMU W JĘZYKU PASKAL
PROGRAM (nazwa programu)
USES (lista używanych modułów)
VAR lista deklarowanych zmiennych)
CONST (lista deklarowanych stałych)
BEGIN
(treść programu)
END.
POCZĄTEK
ILOŚĆ SKŁADNIKÓW
N > 0
WARTOŚĆ POCZĄTKOWA
SUMA = 0; K = 0
KOLEJNY SKŁADNIK
K = K + 1
SUMA = SUMA + A
K= N
WYNIK OBLICZEŃ
SUMA
KONIEC
0
3
134
150
39
46
POCZĄTEK
PORZĄTKOWANIE
ELEMENTÓW
KONIEC
POCZĄTEK
PORZĄDEK=JEST
POM =
PORZĄDEK=BRAK
USTAWIENIE WSKAŹNIKA
UPORZĄDKOWANIA ZBIORU
KONIEC
PORZĄDEK = JEST
CZĘŚCIOWE PORZĄDKOWANIE ZBIORU I EWENTUALNA
ZMIANA WSKAŹNIKA
PORZĄDEK = JEST
POCZĄTEK
POCZĄTEK 2
KONIEC
KONIEC 2
POCZĄTEK 3
PORZĄDKOWANIE
DWÓCH SĄSIEDNICH
ELEMENTÓW
I EWENTUALNA
ZMIANA WSKAŹNIKA
UPORZĄDKOWANIA
KONIEC 3
POCZĄTEK 4
POM =
PORZĄDEK=BRAK
KONIEC 4
POCZĄTEK
WPROWADZANIE
DANYCH x, y,
USTAWIENIE ZMIENNYCH
POCZĄTKOWYCH
q = q+ 1
r = r - y
WYPROWADZENIE
WYNIKÓW q, r,
KONIEC