Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
ALGORITMIZACE
2
ALGORITMUS postup vedoucí od zadání úlohy k jejímu vyřešení
Musí splňovat: hromadnost – algoritmus musí řešit úlohu pro libovolná vstupní data z předem zadaného oboru determinovanost (jednoznačnost) – v každém kroku zápisu musí být jednoznačně určen další postup. Zaručuje to, že při každém použití algoritmu pro tutéž vstupní hodnotu dostaneme stejný výsledek. rezultativnost (konečnost) – pro přípustné vstupní hodnoty musí být výpočet ukončen po konečném počtu kroků a musí dospět k požadovaným výsledkům
3
ZÁPIS ALGORITMU odborný jazyk – např. postupy v učebnicích, u složitějších úloh nepřehledné grafická forma – názorný a přehledný způsob běžně pomocí vývojových diagramů programovací jazyk – umělý jazyk vytvořený pro zápis počítačového programu
4
VÝVOJOVÝ DIAGRAM grafické znázornění algoritmu pomocí geometrických obrazců (značek) a čar (spojnic). Druhy obrazců a čar jsou standardizovány. Spojnice – čáry spojující jednotlivé značky. Mohou být orientované nebo neorientované. Neorientované spojnice vždy vedou dolů či doprava, orientované podle šipky.
5
TYPY ZNAČEK mezní značka – zobrazuje začátek nebo konec algoritmu. Do značky se obvykle zapisuje ZAČÁTEK, KONEC, START, END, nebo název programu značka zpracování – vyjadřuje provedení jakékoli operace nebo skupiny operací. Např. přiřazení = START X=88
6
TYPY ZNAČEK vstup a výstup – zde se zapisují proměnné, jejichž hodnoty se mají zadat, případně vypsat na výstupním zařízení. spojka – přechod na vzdálenější část vývojového diagramu, nebo jeho navázání při přerušení ČTI X TISK X A=A+1 1 TISK A 1
7
TYPY ZNAČEK větvení – slouží pro rozdělení algoritmu na několik případů předdefinovaná činnost, podprogram – část algoritmu popsaná již jinde poznámka – pro lepší orientaci ANO, +, 1 X>0 NE, -, 0 PODPROGRAM 1 VÝPOČET OBJEMU
8
PŘÍKLADY Program, který po zadání dvou poloměrů vytiskne obsah mezikruží. OBSAH MEZIKRUŽÍ ČTI r1; r2 S=π*(r1* r1- r2* r2) Problémy: Ověřit, zda je r1, r2 >0 Ověřit, zda je r1 > r2 (stačí použít absolutní hodnotu) TISK S KONEC
9
PŘÍKLADY Program, který vypíše větší ze dvou zadaných čísel.
POROVNÁNÍ ČÍSEL ČTI A; B A>B - + TISK B TISK A KONEC
10
PŘÍKLADY Program, který vypíše větší ze dvou zadaných čísel.
POROVNÁNÍ ČÍSEL ČTI A; B A>B - + X=A X=B TISK X KONEC
11
TISK “Čísla se rovnají.“
POROVNÁNÍ ČÍSEL ČTI A; B - A=B + - A>B + TISK “Čísla se rovnají.“ TISK A TISK B KONEC
12
TISK „čísla se rovnají“
POROVNÁNÍ ČÍSEL ČTI A; B - A>B + - A=B + TISK A TISK „čísla se rovnají“ TISK B KONEC
13
TISK „výrazy se rovnají“
POROVNÁNÍ VÝRAZŮ ČTI u; v Program, který po zadání proměnných u, v vypíše větší z výrazů (7.u.v) a (u.v+7). A=7*u*v - A>B + B=(u*v)+7 - A=B + TISK A TISK „výrazy se rovnají“ TISK B KONEC
14
Program, který podle hodnot proměnných a, b, c v rovnici ax2+bx+c=0 vytiskne „žádné řešení“, „jedno řešení“, nebo „dvě řešení“. ŘEŠENÍ DISKRIMINANTU ČTI a; b; c D=b*b-(4*a*c) - D>0 + - D=0 + TISK „dvě řešení“ TISK „jedno řešení“ TISK „žádné řešení“ KONEC
15
Program, který po zadání značky prvku vypíše, zda prvek je nebo není vzácný plyn.
VZÁCNÉ PLYNY - Značka=„He“ + ČTI značka TISK „ano“ - Značka=„Ne“ + KONEC TISK „ano“ KONEC 1
16
KONEC KONEC KONEC KONEC KONEC Značka=„Xe“ Značka=„Ar“ TISK „ano“
2 - Značka=„Xe“ + 1 - Značka=„Ar“ + TISK „ano“ KONEC TISK „ano“ KONEC - Značka=„Rn“ + - Značka=„Kr“ + TISK „ano“ KONEC TISK „ano“ KONEC TISK „ne“ 2 KONEC
17
Program, který seřadí tři zadaná čísla podle velikosti od největšího.
ŘAZENÍ TŘÍ ČÍSEL ČTI A; B; C - A>B + - A>C + - B>C + - B>C + TISK A, B, C TISK A, C, B TISK C, B, A - A>C + TISK C, A, B KONEC TISK B, C, A TISK B, A, C KONEC
18
POČÍTAČOVÉ ŘAZENÍ TŘÍ ČÍSEL
Program, který seřadí tři zadaná čísla podle velikosti. 1 POČÍTAČOVÉ ŘAZENÍ TŘÍ ČÍSEL - B>C + ČTI A; B; C P=B B=C C=P - A>B + - A>B + P=A A=B B=P P=A A=B B=P 1 TISK A, B, C KONEC
19
Program, který po zadání tří délek stran vypíše zprávu, zda trojúhelník lze sestrojit.
EXISTUJÍCÍ Δ ČTI a; b; c - b + c > a + POČÍTAČOVÉ ŘAZENÍ TŘÍ ČÍSEL TISK „Δ lze sestrojit“ TISK „Δ nelze sestrojit“ KONEC
20
START ČTI a; b; c TISK „ano“ TISK „ne“ KONEC KONEC b+c>a a+c>b
- b+c>a + - a+c>b + - a+b>c TISK „ne“ TISK „ano“ KONEC KONEC
21
Program, který po zadání tří délek stran vypíše zprávu, zda je trojúhelník pravoúhlý.
ČTI a; b; c - a2=b2+c2 + POČÍTAČOVÉ ŘAZENÍ TŘÍ ČÍSEL TISK „Δ je pravoúhlý“ TISK „Δ není pravoúhlý“ KONEC
22
START ČTI a; b; c TISK „ne“ TISK „ano“ KONEC KONEC - + a2=b2+c2 - +
b2=a2+c2 - + c2=a2+b2 TISK „ano“ TISK „ne“ KONEC KONEC
23
Program, který po zadání tří délek stran vypíše zprávu, zda je trojúhelník rovnoramenný, rovnostranný, nebo obecný. TYP Δ ČTI a; b; c + a=b - + a=c + b=c - - - b=c + TISK „rovnoramenný“ TISK „rovno-stranný“ TISK „obecný“ KONEC
24
Program, který určí, zda podat lék pacientovi v nemocnici
Program, který určí, zda podat lék pacientovi v nemocnici. Lék se podává dospělým při teplotě nad 39,5 °C a dětem při teplotě nad 38 °C. Zadaná čísla jsou věk a teplota pacienta.
25
POROVNÁNÍ TEPLOT ČTI V; T V>15 T>39,5 T>38 TISK „ano“
- V>15 + - T>39,5 + - T>38 + TISK „ano“ TISK „ano“ TISK ne TISK ne KONEC
26
TYPY ZNAČEK cyklus – určuje část programu, která se opakuje X=0 X=0
I=1 AŽ 10 X>10 + X=X+2 OPAKUJÍCÍ SE PŘÍKAZY - TISK X X=X+2 I X>10 + TISK X -
27
Program, který vytiskne postupně prvních dvacet přirozených čísel
I=1 AŽ 20 I=1 AŽ 20 X=1 I TISK I I TISK X X=X+1 KONEC KONEC
28
Program, který po zadání čísla n vypíše prvních n přirozených čísel.
PŘIROZENÁ ČÍSLA ČTI N I=1 AŽ N TISK I I KONEC
29
START A>B ČTI r1; r2 A>B TISK A KONEC S=π*(r1* r1- r2* r2) + -
I=1 AŽ 10 - A>B + TISK A KONEC S=π*(r1* r1- r2* r2) ŘAZENÍ
30
Program, který po zadání čísla n vypíše prvních n sudých přirozených čísel.
SUDÁ ČÍSLA SUDÁ ČÍSLA ČTI N ČTI N I=1 AŽ N I=1 AŽ N X=0 TISK 2*I X=X+2 TISK X I I KONEC KONEC
31
Program, který po zadání čísla n vypíše prvních n lichých přirozených čísel.
LICHÁ ČÍSLA ČTI n I=1 AŽ N TISK 2*I-1 I KONEC
32
Program, který po zadání čísla n vypíše prvních n lichých přirozených čísel.
LICHÁ ČÍSLA ČTI n I=1 AŽ 2n-1 KROK 2 TISK I I KONEC
33
Program, který po zadání čísla n zjistí hodnotu 1+2+3+4+…+(n-1)+n.
SOUČET ARITMETICKÉ ŘADY ČTI N SOUČET ARITMETICKÉ ŘADY ČTI N VÝSLEDEK=0 X=1 I=1 AŽ N I=1 AŽ N VÝSLEDEK=0 VÝSLEDEK=VÝSLEDEK + X X=X+1 VÝSLEDEK=VÝSLEDEK + I I I TISK VÝSLEDEK TISK VÝSLEDEK KONEC KONEC
34
Program, který po zadání čísla n zjistí hodnotu n!
N FAKTORIÁL ČTI N N FAKTORIÁL ČTI N VÝSLEDEK=1 X=1 I=1 AŽ N I=1 AŽ N VÝSLEDEK=1 VÝSLEDEK=VÝSLEDEK * X X=X+1 VÝSLEDEK=VÝSLEDEK * I I I TISK VÝSLEDEK TISK VÝSLEDEK KONEC KONEC
35
SOUČET HARMONICKÉ ŘADY
Program, který po zadání čísla n zjistí hodnotu …+ 1 𝑛− 𝑛 . SOUČET HARMONICKÉ ŘADY ČTI N I=1 AŽ N VÝSLEDEK=0 VÝSLEDEK=VÝSLEDEK + 1 𝐼 I TISK VÝSLEDEK KONEC
36
Program, který sčítá přirozená čísla (1+2+3+…) tak dlouho, dokud součet nepřekročí Poté vypíše poslední přičtené číslo. SOUČET > 1000 SOUČET=0 X=0 - SOUČET>1000 + X=X+1 SOUČET=SOUČET+X KONEC TISK X
37
Program, který sčítá zadávaná čísla tak dlouho, dokud není zadané číslo „0“. Poté vypíše součet všech zadaných čísel. SOUČET PO ZADANOU 0 SOUČET=0 ČTI X - X=0 + SOUČET=SOUČET+X TISK SOUČET KONEC
38
Program, který počítá zadávaná čísla tak dlouho, dokud není zadané číslo „0“. Poté vypíše celkový počet všech zadaných čísel. POČET PO ZADANOU 0 POČET=0 ČTI X - X=0 + POČET=POČET+1 TISK POČET KONEC
39
POČET SUDÝCH PO ZADANOU 0
Program, který počítá zadávaná čísla tak dlouho, dokud není zadané číslo „0“. Poté vypíše celkový počet sudých zadaných čísel. Operace MODULO je zbytek po dělení. Značí se: dělenec MOD dělitel POČET SUDÝCH PO ZADANOU 0 POČET=0 ČTI X - X=0 + - X MOD 2=0 + TISK POČET KONEC POČET=POČET+1
40
Program, který po zadání čísla n vypíše všechny jeho dělitele
ČTI N Operace MODULO je zbytek po dělení. Značí se: dělenec MOD dělitel I=1 AŽ N N MOD I=0 + TISK I I - KONEC
41
Program, který po zadání čísla n umožní zadání n hodnot proměnných.
POLE PROMĚNNÝCH ČTI N POLE PROMĚNNÝCH je skupina proměnných se stejným názvem, které se liší jen pořadovým číslem (indexem) uvedeným v závorce. Používá se pro proměnné, které mají stejný typ a používají se na stejné operace. I=1 AŽ N ČTI X(I) I KONEC
42
Program, který po zadání n čísel vypíše tato čísla v opačném pořadí.
OPAČNÝ VÝPIS POLE PROMĚNNÝCH I=1 AŽ N TISK X(N+1-I) I KONEC
43
Program, který po zadání n čísel vypíše tato čísla v opačném pořadí.
OPAČNÝ VÝPIS POLE PROMĚNNÝCH I=N AŽ 1 KROK -1 TISK X(I) I KONEC
44
Program, který po zadání n čísel určí jejich součet.
POLE PROMĚNNÝCH ČTI N SOUČET=0 I=1 AŽ N SOUČET=0 I=1 AŽ N ČTI X SOUČET=SOUČET+X SOUČET=SOUČET+X(I) I I TISK SOUČET TISK SOUČET KONEC KONEC
45
Program, který po zadání n čísel určí jejich maximum.
1 I=2 AŽ N MAXIMUM - X(I)>MAX + POLE PROMĚNNÝCH MAX=X(1) MAX=X(I) I 1 TISK MAX KONEC
46
Program, který po zadání n čísel vypíše všechny součty dvojic po sobě následujících čísel.
SOUČET NÁSLEDUJÍCÍCH POLE PROMĚNNÝCH I=1 AŽ N-1 TISK X(I)+X(I+1) I KONEC
47
Program, který po zadání n čísel vypíše všechna čísla menší než 0,5.
POLE PROMĚNNÝCH ČTI N I=1 AŽ N I=1 AŽ N - X(I)<0,5 + - X<0,5 + ČTI X TISK X(I) TISK X KONEC I KONEC I
48
Program, který po zadání n čísel vypíše počet všech čísel menších než 0,5.
1 I=1 AŽ N POČET - ČÍSLA < 0,5 - X(I)<0,5 + POLE PROMĚNNÝCH POCET=0 POCET=POČET +1 1 I TISK POCET KONEC
49
Program, který určí, zda je zadaný prvek vzácný plyn.
1 I=1 AŽ 6 VZÁCNÝ PLYN ČTI PRVEK - PRVEK= ZNACKA(I) + ZNACKA(1)=„He“ ZNACKA(2)=„Ne“ ZNACKA(3)=„Ar“ ZNACKA(4)=„Kr“ ZNACKA(5)=„Xe“ ZNACKA(6)=„Rn“ TISK „Prvek je vzácný plyn“ KONEC I TISK „Prvek není vzácný plyn“ 1 KONEC
50
Program, který po zadání n čísel určí jejich průměr.
1 I=1 AŽ N SOUČET=SOUČET + X(I) PRŮMĚR I POLE PROMĚNNÝCH PRUMER=SOUČET / n SOUČET=0 1 TISK PRUMER KONEC
51
1 Program, který po zadání n známek (mimo chování) určí, zda žák prospěl s vyznamenáním, prospěl, či neprospěl. I=1 AŽ n PROSPĚCH POLE PROMĚNNÝCH - X(I)>2 + I=1 AŽ n TISK „prospěl“ - X(I)= 5 + I KONEC TISK „Neprospěl“ PRŮMĚR I 2 KONEC 1
52
TISK „Prospěl s vyznamenáním“
2 - PRŮMĚR≤1,5 + TISK „Prospěl s vyznamenáním“ TISK „Prospěl“ KONEC KONEC
53
TŘÍDĚNÍ Program, který po zadání n čísel vypíše tato čísla ve vzestupném pořadí. POLE PROMĚNNÝCH I=1 AŽ N-1 1 I=1 AŽ N J=I+1 AŽ N TISK X(I) - X(I)>X(J) + J I P=X(I) X(I)=X(J) X(J)=P KONEC I 1
54
konkrétní postup algoritmu
Postupně se vybírá jeden prvek po druhém a srovnává se s 1. prvkem v řadě. Je-li tento prvek menší než první, vymění se. Příklad: 5, 3, 1, 8, 2, 7, 9, 0 1. krok: 3, 5, 1, 8, 2, 7, 9, 0 2. krok: 1, 5, 3, 8, 2, 7, 9, 0 3. krok: 1, 5, 3, 8, 2, 7, 9, 0 4. krok: 1, 5, 3, 8, 2, 7, 9, 0 5. krok: 1, 5, 3, 8, 2, 7, 9, 0 6. krok: 1, 5, 3, 8, 2, 7, 9, 0 7. krok: 0, 5, 3, 8, 2, 7, 9, 1 Na 1. místě je nyní nejmenší prvek.
55
konkrétní postup algoritmu
Pokračuje se s porovnáváním druhého prvku s ostatními. 1. krok: 0, 3, 5, 8, 2, 7, 9, 1 2. krok: 0, 3, 5, 8, 2, 7, 9, 1 3. krok: 0, 2, 5, 8, 3, 7, 9, 1 4. krok: 0, 2, 5, 8, 3, 7, 9, 1 5. krok: 0, 2, 5, 8, 3, 7, 9, 1 6. krok: 0, 1, 5, 8, 3, 7, 9, 2
56
konkrétní postup algoritmu
1. krok: 0, 1, 5, 8, 3, 7, 9, 2 2. krok: 0, 1, 3, 8, 5, 7, 9, 2 3. krok: 0, 1, 3, 8, 5, 7, 9, 2 4. krok: 0, 1, 3, 8, 5, 7, 9, 2 5. krok: 0, 1, 2, 8, 5, 7, 9, 3 1. krok: 0, 1, 2, 5, 8, 7, 9, 3 2. krok: 0, 1, 2, 5, 8, 7, 9, 3 3. krok: 0, 1, 2, 5, 8, 7, 9, 3 4. krok: 0, 1, 2, 3, 8, 7, 9, 5
57
konkrétní postup algoritmu
1. krok: 0, 1, 2, 3, 7, 8, 9, 5 2. krok: 0, 1, 2, 3, 7, 8, 9, 5 3. krok: 0, 1, 2, 3, 5, 8, 9, 7 1. krok: 0, 1, 2, 3, 5, 8, 9, 7 2. krok: 0, 1, 2, 3, 5, 7, 9, 8 1. krok: 0, 1, 2, 3, 5, 7, 8, 9 Setříděný seznam: 0, 1, 2, 3, 5, 7, 8, 9
58
Třídění „probubláváním“
Postupně se porovnávají dva sousední prvky. Je-li prvek větší než následující, prohodí se. Porovnává se 1. s 2., 2. se 3., 3. se 4., atd.
59
TŘÍDĚNÍ 2 Program, který po zadání n čísel vypíše tato čísla ve vzestupném pořadí. POLE PROMĚNNÝCH I=N AŽ 2 KROK -1 1 I=1 AŽ N J=1 AŽ I-1 TISK X(I) - X(J)>X(J+1) + J I P=X(J) X(J)=X(J+1) X(J+1)=P KONEC I 1
60
Program, který zapíše zbytek po celočíselném dělení (dělení se zbytkem) Funkce celočíselného dělení – značí se různě, např. \ Př. 15\4=3 START ČTI X; Y PODÍL=X\Y ZBYTEK=X-(Y*PODÍL) TISK ZBYTEK KONEC
61
Program pro převod čísla z desítkové do dvojkové soustavy.
62
Program, který určí, který tarif pro volání je výhodnější
Program, který určí, který tarif pro volání je výhodnější. Tarif A má paušál 300 Kč a cenu 5 Kč/min, tarif B má paušál 550 Kč a cenu 3,50 Kč/min. Program bude mít zadán počet provolaných minut za měsíc.
63
TISK „tarify se rovnají“
ČTI X A=300+5*X B=550+3,5*X - A<B + - A=B + TISK A TISK „tarify se rovnají“ TISK B KONEC
64
Program, který určí, kolik dárků na Vánoce budete moci koupit
Program, který určí, kolik dárků na Vánoce budete moci koupit. Zadané hodnoty jsou vaše peníze a průměrná cena jednoho dárku. Funkce INT(číslo) odsekne z čísla desetinná místa: INT(3,14159)=3
65
Program, který určí vaši šanci na úspěch u maturity z matematiky
Program, který určí vaši šanci na úspěch u maturity z matematiky. Jedničkář má šanci 95%, dvojkař 85%, trojkař 75%, čtyřkař 50%. Zadaná hodnota je známka z matematiky. Program, který určí vaši šanci na úspěch u maturity z MAT, ČJ a CJ. Zadané hodnoty jsou známky z těchto předmětů.
66
Maturita 1 ČTI X X>2 X=3 X=2 TISK 75% TISK 85% TISK 95% TISK 50%
- X>2 + - X=3 + - X=2 + TISK 75% TISK 85% TISK 95% TISK 50% KONEC
67
Maturita 2 S=1 ČTI X(1), X(2), X(3) X(I)>2 X(I) =3 X(I) =2 S=S*0,75
I=1 AŽ 3 - X(I)>2 + - X(I) =3 + - X(I) =2 + S=S*0,75 S=S*0,5 S=S*0,95 S=S*0,85 I TISK S
68
START A>B ČTI r1; r2 A>B TISK A KONEC S=π*(r1* r1- r2* r2) + -
I=1 AŽ 10 - A>B + TISK A KONEC S=π*(r1* r1- r2* r2) ŘAZENÍ
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.