Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

ALGORITMIZACE.

Podobné prezentace


Prezentace na téma: "ALGORITMIZACE."— Transkript prezentace:

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Í


Stáhnout ppt "ALGORITMIZACE."

Podobné prezentace


Reklamy Google