algorytmy_10.pdf

(105 KB) Pobierz
(Microsoft PowerPoint - algorytmy_10.ppt [tryb zgodno\234ci])
Rozwiązywanie problemów z uŜyciem komputera:
1. Zdefiniowanie i opis problemu
2. Znalezienie rozwiązania
3. Napisanie algorytmu
4. Napisanie programu (zakodowanie algorytmu)
5. Uruchomienie programu
6. Testowanie programu
II PWr
EB
1
II PWr
EB
2
Algorytm - definicje
Własności algorytmów:
1) poprawność – algorytm musi być poprawny
Algorytm – skończony system reguł określających kolejność działań
wykonywanych na określonych obiektach (danych) w celu uzyskania rozwiązania
problemu.
2) skończoność – algorytm musi umoŜliwić rozwiązanie problemu w
skończonym czasie
Algorytm – ściśle określona procedura obliczeniowa, która dla właściwych
danych wejściowych wytworzy Ŝądane dane wyjściowe zwane wynikiem
działania algorytmu.
3) złoŜoność – mierzy się czasem wykonania i zajętością pamięci odniesionych
do wielkości danych
4) uniwersalność – nie powinien być zawęŜany do wąskiego problemu
ALGORYTM
Dane wej.
Dane wyj.
Pochodzenie wyrazu: od nazwiska matematyka arabskiego „Al-Khowarizmi”
z IX w. Na łacinę zostało przetłumaczone jako Algorismus.
II PWr
EB
3
II PWr
EB
4
6. Testowanie programu
ALGORYTM
709929107.017.png
Przykłady problemów algorytmicznych
Algorytm – sposoby zapisu
• Zbadanie czy dana liczba naturalna jest pierwsza
• Znalezienie największego wspólnego dzielnika dwóch liczb
• Rozkład liczby na czynniki pierwsze
1) opis słowny
Musi być zrozumiały i jednoznaczny.
2) opis w postaci listy kroków
Poszczególne kroki zawierają opis operacji, które mają być wykonane przez
algorytm. Mogą równieŜ wystąpić polecenia zmiany kolejności wykonywania
kroków.
3) schemat blokowy
• Uporządkowanie (posortowanie) ciągu liczb od najmniejszej do największej
• Rozwiązanie układu równań liniowych
• Przydział pracowników do zadań
• Optymalizacja gospodarki materiałowej
• Zagadnienia transportowe
4) program komputerowy
Jest najbardziej ścisłym zapisem algorytmu.
II PWr
EB
5
II PWr
EB
6
Algorytm - przykłady
Algorytm - przykłady
Algorytm Euklidesa – znajdowanie największego wspólnego podzielnika 2 liczb.
Algorytm Euklidesa – znajdowanie największego wspólnego podzielnika 2 liczb.
Dane są dwie liczby naturalne a, b (a > b).
Dane są dwie liczby naturalne a, b (a > b).
NWD(a,b):
Dopóki(a != b) Wykonaj
JeŜeli (a>b)
a = a – b
NWD(a,b):
1. JeŜeli b = 0
2. to Wynik = a
a = a – b
JeŜeli (b>a)
b = b – a
Wynik = a
3. w przeciwnym razie Wynik = NWD(b, a mod b)
NWD(30,21) =
NWD(21, 30 mod 21) = NWD(21,9) =
NWD(9, 21 mod 9) = NWD(9, 3) =
NWD(3, 9 mod 3) = NWD(3, 0) = 3
NWD(30,21) = NWD(9,21) = NWD(9,12) = NWD(9,3)= NWD(6,3) =NWD(3,3) = 3
II PWr
EB
7
II PWr
EB
8
709929107.018.png
Algorytm - przykłady
Algorytm - przykłady
1. Algorytm rozwiązania równania liniowego ax + b = 0
2. Algorytm obliczania n!
n! = 1*2*3* ... *n
1. Wprowadź wartości a, b;
P
2. JeŜeli a<>0 to x=-b/a; Wyprowadź x;
W przeciwnym razie Wyprowadź „Złe dane”;
3! = 1*2*3 = 6 4! = 1*2*3*4 = 3!*4 =
24
Czytaj n
3. Koniec;
P
n! = (n-1)!*n
silnia=1
Czytaj a, b
Czytaj a, b
1. Czytaj n;
i=2
N
T
2. silnia =1;
3. Dla i = 2 do n wykonaj
a<>0
x= -b/a
N
T
i<=n
Wypisz: Złe dane
Wypisz x
silnia = silnia*i;
4. Wyprowadź silnia;
5. Koniec;
Wyświetl silnia
silnia=silnia*i
K
K
i = i+1
II PWr
EB
9
II PWr
EB
10
Algorytm - przykłady
Algorytm - przykłady
Obliczyć sumę ciągu n liczb:
a 1 , a 2 , a 3 , ..., a n
P
Obliczyć sumę liczb czytanych z klawiatury.
Czytanie kończy liczba 0.
P
Czytaj dane
Czytaj dane
Suma=0
Suma=0
Suma = 0;
Dla i = 1 Do n Wykonaj
Suma = Suma +a i
i=1
Suma = 0;
Czytaj a
Czytaj a:
Suma = Suma +a i
Drukuj Suma;
Koniec
N
T
i<=n
Dopóki a<>0 Wykonaj
Suma = Suma + a;
N
T
a<>0
Drukuj: Suma
Suma=Suma+a i
Czytaj a;
Drukuj Suma;
Drukuj Suma
Suma=Suma+a
i=i+1
Czytaj a
K
K
II PWr
EB
11
II PWr
EB
12
N
T
709929107.019.png 709929107.020.png 709929107.001.png 709929107.002.png 709929107.003.png 709929107.004.png 709929107.005.png 709929107.006.png 709929107.007.png 709929107.008.png 709929107.009.png
Algorytm – rozwiązanie równania kwadratowego
P
ax 2 + bx +c = 0
ax 2 + bx +c = 0
Wprowadź
a,b,c
1. Czytaj a, b, c
2. JeŜeli a = 0 to
JeŜeli b = 0 to Wyprowadź „Złe dane”
N
a=0
T
delta=b 2 -4ac
N
b= 0
T
W przeciwnym razie x = -c/b; Wyprowadź x
W przeciwnym razie
x=-c/b
Złe dane
N
delta>=0
T
x=-c/b
Złe dane
delta = b 2 – 4ac
JeŜeli delta >= 0 to
Brak
pierwiastków
X
=
B
DELTA
Wyprowadź x
1
2
A
B
+
DELTA
B
+
DELTA
B
DELTA
X
=
X
=
2
X
=
1
2
A
2
A
2
2
A
Wyprowadź x 1 , x 2
W przeciwnym razie Wyprowadź „Brak pierwiastków”
Wyprowadź
x 1 , x 2
K
3. Koniec
II PWr
EB
13
II PWr
EB
14
Algorytm – schemat blokowy
Algorytm – sekwencja czynności
Konwencje dotyczące schematów blokowych
początek/koniec
Czynność 1
operacja we/wy
Czynność 2
blok wykonawczy
blok warunkowy
Czynność 3
blok złoŜony
II PWr
EB
15
II PWr
EB
16
N
T
709929107.010.png
Algorytm – warunek „jeŜeli”
Algorytm – wybór czynności
Wej
N
T
JeŜeli <warunek> To
Czynność
Warunek
Czynność
Przełącznik
Czynność1
Czynność2
Czynność3
Czynność4
JeŜeli <warunek> To
Czynność1
W przeciwnym razie
Czynność2
N
Warunek
T
Czynność2
Czynność1
Wyj
II PWr
EB
17
II PWr
EB
18
Algorytm – iteracje „dopóki” i „powtarzaj”
Algorytm – iteracje „dla”
Dopóki <warunek> Wykonaj
Czynność
N
Warunek
T
Dla i=1 Do n Wykonaj
Czynność
i=1
N
T
Czynność
i<=n
Czynność
Powtarzaj
Czynność
<warunek>
i=i+1
Czynność
N
Warunek
T
II PWr
EB
19
II PWr
EB
20
709929107.011.png 709929107.012.png 709929107.013.png 709929107.014.png 709929107.015.png 709929107.016.png
Zgłoś jeśli naruszono regulamin