Praktická práce "Performer navrhovatel. Pomocné algoritmy"

Praktická práce„Exekutor navrhovatel. Použití pomocných algoritmů s argumenty"

Úkol A. Pomocný algoritmus, který potřebujeme (který kreslí čtverec určité délky), lze zapsat takto:

alg náměstí( arg věci A)
začátek
. spusťte pero
. pohybovat vektorem(0,a)
. pohybovat vektorem(a,0)
. pohybovat vektorem(0,-a)
. pohybovat vektorem(-a,0)
. zvedněte pero
ošidit

Vstup" alg náměstí( arg věci a)“ znamená, že „čtvercový“ algoritmus má jeden argument (argument) „a“, což může být libovolné reálné číslo. Aby bylo možné tento algoritmus zavolat, musíte napsat například „čtverec(2)“ – dostaneme čtverec se stranou 2 nebo „čtverec(3)“ – dostaneme čtverec se stranou 3 atd. Nějaká konkrétní hodnota „a“ se dostane pouze za běhu programu během odpovídajícího pomocného algoritmu. A všude místo „a“ toto číslo nahradí počítač.

Program pro kreslení tohoto obrázku by mohl vypadat takto:

použijte Navrhovatele
algčtverce
začátek
. přesunout do bodu(1,1)
. čtverec (2)
. přesunout do bodu(4,1)
. čtverec (3)
. přesunout do bodu(8,1)
. čtverec (4)
. přesunout do bodu(13,1)
. čtverec (5)
. přesunout do bodu(0,0)
ošidit
alg náměstí( arg věci A)
začátek
. spusťte pero
. pohybovat vektorem(0,a)
. pohybovat vektorem(a,0)
. pohybovat vektorem(0,-a)
. pohybovat vektorem(-a,0)
. zvedněte pero
ošidit

Úkol B. Naučme Navrhovatele nové příkazy. Nechť se jeden z příkazů nazývá „ řádek (argumentovat věci x1,y1,x2,y2)» – pro nakreslení čáry z bodu (x1,y1) do bodu (x2,y2).

algčára( arg věci x1, y1, x2, y2)
začátek
. přesunout do bodu(x1,y1)
. spusťte pero
. přesunout do bodu(x2,y2)
. zvedněte pero
ošidit

Úkol B. Nechť se druhý příkaz nazývá „ obdélník (argumentovat věci x1,y1,x2,y2)“ nakreslit obdélník. Bod (x1,y1) je jeden bod úhlopříčky AC obdélníku, bod (x2,y2) je opačný. Než začnete psát algoritmus, musíte pochopit, čemu se rovnají souřadnice dalších dvou bodů.

Pomocný algoritmus by mohl vypadat takto:

alg obdélník( arg věci x1, y1, x2, y2)
začátek
. přesunout do bodu(x1,y1)
. spusťte pero
. přesunout do bodu(x2,y1)
. přesunout do bodu(x2,y2)
. přesunout do bodu(x1,y2)
. přesunout do bodu(x1,y1)
. zvedněte pero
ošidit

Úkol G. Nyní pomocí těchto příkazů nakreslíme dům:

použijte Navrhovatele
alg Dům
začátek
. obdélník(2,1,8,5)
. obdélník (3,2,5,4)
. obdélník(6,1,7,4)
. řádek(1,4,5,8)
. řádek(5,8,9,4)
ošidit
algčára( arg věci x1, y1, x2, y2)
začátek
. přesunout do bodu(x1,y1)
. spusťte pero
. přesunout do bodu(x2,y2)
. zvedněte pero
ošidit
alg obdélník( arg věci x1, y1, x2, y2)
začátek
. přesunout do bodu(x1,y1)
. spusťte pero
. přesunout do bodu(x2,y1)
. přesunout do bodu(x2,y2)
. přesunout do bodu(x1,y2)
. přesunout do bodu(x1,y1)
. zvedněte pero
ošidit

Poznámka: přirozeně současně s těmito příkazy můžeme používat i standardní příkazy kreslíře (přesunout do bodu, přesunout do vektoru...).

Úkol D. Nakreslete si, co navrhovatel nakreslí, podle následujícího algoritmu:

použijte Navrhovatele
alg spirála
začátek
. přesunout do bodu(3,3)
. spusťte pero
. turn(1); turn(3); turn(5); turn(7); zatočit (9)
. zvedněte pero
ošidit
alg otočit se( arg věci A)
začátek
. pohybovat vektorem(a, 0)
. pohybovat vektorem(0, -a)
. pohybovat vektorem(-a-1.0)
. pohybovat vektorem(0, a+1)
ošidit.

Zvažte úkol: musíte nakreslit několik, například tři, čtverce.

Algoritmus může vypadat takto (viz níže). Ale stejných čar je příliš mnoho, takže je zvýrazněme žlutě. Co když chceme nakreslit deset stejných čtverců? Sto?

použijte Navrhovatele
alg čtverce 1
začátek
. přesunout do bodu(-4,1)
. spusťte pero
. pohybovat vektorem(0,2)
. pohybovat vektorem(2,0)
. pohybovat vektorem(0,-2)
. pohybovat vektorem(-2,0)
. zvedněte pero

. přesunout do bodu(-1,1)
. spusťte pero
. pohybovat vektorem(0,2)
. pohybovat vektorem(2,0)
. pohybovat vektorem(0,-2)
. pohybovat vektorem(-2,0)
. zvedněte pero

. přesunout do bodu(2,1)
. spusťte pero
. pohybovat vektorem(0,2)
. pohybovat vektorem(2,0)
. pohybovat vektorem(0,-2)
. pohybovat vektorem(-2,0)
. zvedněte pero

. přesunout do bodu(0,0)
ošidit

Při vytváření středně velkých programů se používá strukturované programování, jehož myšlenkou je, že struktura programu by měla odrážet strukturu řešeného problému tak, aby byl algoritmus řešení jasně viditelný ze zdrojového textu. Program je rozdělen do mnoha podprogramů (pomocných algoritmů), z nichž každý provádí nějakou akci stanovenou původní úlohou.

Kombinací pomocných algoritmů je možné vytvořit finální algoritmus pomocí kódových bloků (podprogramů), které mají určitý sémantický význam. Můžete je kontaktovat jejich jménem. Velmi důležitou vlastností pomocných algoritmů je jejich znovupoužitelnost.

Bloky kódu zvýrazněné žlutě zapíšeme pomocí samostatného algoritmu. Říkejme tomu čtverec. Takže jakoby naučíme Navrhovatele nový čtvercový povel.

použijte Navrhovatele
alg čtverce
začátek
. přesunout do bodu(-4,1)
. náměstí
. přesunout do bodu(-1,1)
. náměstí
. přesunout do bodu(2,1)
. náměstí
. přesunout do bodu(0,0)
ošidit
alg čtverec
začátek
. spusťte pero
. pohybovat vektorem(0,2)
. pohybovat vektorem(2,0)
. pohybovat vektorem(0,-2)
. pohybovat vektorem(-2,0)
. zvedněte pero
ošidit

Získali jsme kompaktnější a srozumitelnější algoritmus. Tam, kde se některé části programu opakují (používají) vícekrát, je vhodné použít pomocné algoritmy.

Vezměte prosím na vědomí, že pokud potřebujeme změnit algoritmus tak, aby se kreslily čtverce o straně tři a nikoli dvě, pak při použití pomocného algoritmu se počet úprav znatelně sníží.

Poznámka: všechny algoritmy v programu KuMira jsou psány jeden po druhém, pro pohodlí je lze oddělit prázdný řádek, za hlavní algoritmus je považován ten, který je zaznamenán jako první, je to ten, který se začíná provádět po spuštění programu.

Metoda sekvenčního detailování

Přístup, který jsme použili, usnadňuje programování složitých úloh. Úkol je rozdělen na jednodušší dílčí úkoly. Řešení každého z nich je prezentováno ve formě pomocného algoritmu a hlavní algoritmus organizuje spojení mezi nimi.

Metoda programování, při které se nejprve zapíše hlavní program, zapíší se v ní volání podprogramů, které ještě nebyly zkompilovány, a poté se tyto podprogramy popisují, se nazývá metoda sekvenčního (krokového) detailování. Navíc počet podrobných kroků může být mnohem větší než v našem příkladu, protože samotné podprogramy mohou obsahovat volání jiných podprogramů.

Způsob montáže

Je možný i jiný přístup ke konstrukci komplexní programy: Zpočátku je zkompilováno mnoho podprogramů, které mohou být potřebné k vyřešení problému, a poté je napsán hlavní program obsahující jejich volání. Rutiny lze kombinovat do knihovny rutin a ukládat do dlouhodobé paměti počítače. Takovou knihovnu lze postupně doplňovat o nové podprogramy.

Pokud například vytvoříte knihovnu procedur pro kreslení všech písmen a číslic pro ovládání grafika, bude program pro získávání libovolného textu sestávat z příkazů pro přístup ke knihovním procedurám.

Popsaná metoda se nazývá programování sestav.

V literatuře o programování se často používá následující terminologie: metoda sekvenčního vytváření detailů se nazývá programování shora dolů a metoda sestavení se nazývá programování zdola nahoru.

Úkol 1. Změňte výsledný algoritmus tak, aby bylo nakresleno 5, 7 nebo 10 čtverců.

Úkol 2. Vytvořte lesní program pomocí pomocného algoritmu vánočního stromku a uliční program pomocí pomocného algoritmu domu.


Úkol 3. Počty v PSČ se píší takto:

Vytvořte pomocné algoritmy pro kreslení těchto čísel. Můžete to udělat se svými spolužáky – každý s číslem, a pak je spojit dohromady.
Vytvořte program pro kreslení indexů měst Unecha (243300), Yelets (399770), Taganrog (347900), Torzhok (172011), Plyos (155555). V programu použijte pomocné algoritmy.

PŘEHLED LEKCE POČÍTAČOVÉ VĚDY

Téma lekce

"Použití pomocných algoritmů pro navrhovatele"

Věk studentů

1 2 roky (6. třída)

Typ lekce

Zvládnutí nových znalostí

Forma lekce

Modulární lekce

Účel lekce:

Vytvořit u studentů porozumění pojmu „pomocný algoritmus“ jako jedné z optimalizačních metod programový kód

Cíle lekce:

    rozvíjet představy studentů o interpretech

    upevnit myšlenku algoritmu jako modelu činnosti umělce

    zavést pomocné algoritmy

    posílit dovednosti řízení výkonného umělce

Plánované výsledky

předmět – dovednosti ve vývoji algoritmů pro ovládání výkonného umělce;

meta-subjekt – schopnost samostatně plánovat cesty k dosažení cílů; korelovat své jednání s plánovanými výsledky, sledovat své aktivity, určovat způsoby jednání v rámci navržených podmínek, upravovat své jednání v souladu s měnící se situací; hodnotit správnost učebního úkolu; schopnost rozdělit úkol na dílčí úkoly; zkušenosti s rozhodováním a řízením výkonných umělců pomocí pro ně sestavených algoritmů;

osobní – schopnost propojit vzdělávací obsah s vlastní životní zkušeností, pochopit význam rozvinutého algoritmického myšlení pro moderního člověka.

Materiálně technické vybavení (didaktické pomůcky atd.)

Učiteli: prezentace lekce; Leták

Pro studenta: kuličkové pero, tužka, pravítko, učebnice, sešit

UMK (video série)

Multimediální prezentace, podklady pro každého studenta: plán lekce, přihláška

Použité materiály

Informatika: metodická příručka pro ročníky 5-6/L.L. Bosová, A.Yu. Bosová. – M.: Binom. Vědomostní laboratoř, 2014

Informatika: Učebnice pro 6. ročník/L.L. Bosová, A.Yu. Bosová. – M.: Binom. Vědomostní laboratoř, 2013

Informatika: Pracovní sešit pro 6. ročník/L.L. Bosová, A.Yu. Bosová. – M.: Binom. Vědomostní laboratoř, 2013

Předmět: Pomocné algoritmy pro Navrhovatele

Technologická mapa (modul) lekce

Hodnocení skóre

(max. bod)

UE – 0

2 minuty.

Integrační cíl: Programátoři mají seznam pravidel dobrého stylu, jedno z těchto pravidel zní: „Neopakuj se“, což znamená, že byste se měli vyvarovat opakovaného duplikování částí programového kódu. Dnes ve třídě:

    seznámíte se s jedním ze způsobů optimalizace programového kódu

    Zdokonalíte své dovednosti v programovacím prostředí KuMir

    budete rozvíjet logické myšlení a kritický postoj k přijatým informacím

EU – 1

Aktualizace základních znalostí.

cílová : aktualizovat nabyté znalosti

Cvičení 1.

a) přejděte k bodu (5,2) __________

b) posun o vektor (3,4) ________

c) přejděte k bodu (1,4) __________

Úkol 2.

použijte Navrhovatele

alg

začátek

    přejít k bodu (2,4)

    přejít k bodu (4,1)

    přejít k bodu (0,0)

ošidit

použijte Navrhovatele

alg

začátek

    spusťte pero

    přesun po vektoru (0,3)

    přesun po vektoru (3,0)

    přesun po vektoru (0,-3)

    přesun po vektoru (-3,0)

ošidit

Přečtěte si pozorně cíl UE – 1

V modulu pracujte ve dvojicích

Otestujte se pomocí odpovědí napsaných na tabuli

Za správně splněný úkol 1 jsou hodnoceny 3 body, 1 bod za každý bod (a, b, c)

Za správně splněný úkol 2 se bodují 2 body, 1 bod za každý bod (a, b)

Maximální počet bodů za práci s UE-1 =5

____________

EU – 2

Učení nového materiálu.

13 min.

Cílová: seznámit se s konceptem pomocného algoritmu, rozšířit okruh problémů řešitelných pomocí pomocného algoritmu, naučit se sestavit hlavní a pomocný algoritmus pro kreslíře

V minulé lekci jste vytvořili algoritmus pro kreslíře, podle kterého nakreslí jednu hvězdu.

    Identifikujte nevýhody takového algoritmu:

_________________________________

_________________________________

_________________________________

_________________________________

    Jak se můžete těmto potížím vyhnout?

_________________________________

_________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

Pozorně si přečtěte cíl UE – 2

Samostatná práce s úkoly 1-3

Při práci s bodem 4 použijte látku uvedenou v odstavci 18 vaší učebnice (str. 123 – 125), prezentace učitele

Diskuse k bodům 1 - 4 – skupinová práce ve frontálním režimu

Úkoly 5 – 6 plňte samostatně

9

Hodnocení úkolů

Správně splněný úkol 1-2 1 bod

____________

Úkol 3 označuje alespoň 3 nedostatky – 1 bod

_____________

Úloha 4 ukazuje způsoby, jak problém vyřešit:

1 cesta = 1 bod, 2 cesty = 2 body

_____________

Úkol 5. Na souřadnicové rovině je 6-8 hvězd, jejichž velikost odpovídá „Hvězdě“ - 1 bod

____________

Byl sestaven hlavní algoritmus „Space“ – 3 body

____________

EU – 3

Praktická práce

Cílová: Rozvinout schopnost práce s pomocnými algoritmy v programovacím prostředí KuMir

Cvičení 1. Implementujte algoritmus, který jste vytvořili v programovacím systému KuMir

Úkol 2 (kreativní). Přemýšlejte o tom, jaký druh letadla by mohl být ve vesmíru:

a) nakreslete jej na souřadnicovou rovinu vedle hvězd na papír

b) doplňte svůj algoritmus o kód letadla, implementujte jej do programovacího systému KuMir

Přečtěte si pozorně cíl UE – 3

Samostatná práce s úkoly

Splnění každého úkolu nahlaste učiteli ke kontrole.

Příklad je uveden v příloze 1

Maximální počet bodů za práci s UE-2 =6

Správně dokončený úkol 1 je hodnocen 2

Úkol 2 (kreativní) dokončený v plném rozsahu je hodnocen 4 body

_____________

EU – 4

Odraz

Cílová: Analyzujte své úspěchy ve třídě

Uveďte odpověď na každou otázku

1. Přečtěte si znovu cíle lekce

2. Dosáhli jste svých cílů?

__________________________________

3. Co vám bránilo dosáhnout vašich cílů?

__________________________________

4. Co ti přišlo nejtěžší?

__________________________________

5. Co nezpůsobilo obtíže?

__________________________________

6. Jak hodnotíte svou práci?

7. Získali jste méně než 20 bodů? (pokud ano, pak pracujte doma a máte šanci se nechat znovu otestovat). Hodně štěstí!

Domácí práce:

Zkontrolujte všechny poznámky pořízené během lekce.

§18 odst. 3, č. 6 na str. 128; č. 216.

Přečtěte si pozorně cíl UE – 4

Odpověz na otázky

Spočítejte si počet bodů, dejte si hodnocení (Příloha 2, Příloha 3)

APLIKACE

Příloha 1

Příklad splněného úkolu

Dodatek 2

Kontrolní list

Příjmení jméno ______________________________________________

Dodatek 3

17 -19

(85 – 99%)

vysoký

Jsi prostě skvělá!

15 - 16

(75 – 84 %)

průměrný

Ještě trochu a bude to „5“

10 - 14

(50 – 74%)

krátký

Být opatrnější

1 - 9

(0,7 – 49%)

velmi nízký

A na co ve třídě myslíš?

nula

Nezúčastnili jste se lekce?

Odpovědi

EU – 1

Cvičení 1. Výchozí pozicí navrhovatele je bod A, do kterého se může přesunout provedením příkazu:

a) přejděte k bodu (5,2) ____F ______

b) posun o vektor (3,4) __C ______

c) přejděte k bodu (1,4) ____A ______

Úkol 2. Počáteční poloha kreslíře je počátek souřadnic, pero je zvednuté. Spusťte algoritmus a určete, jaký tvar nakreslí.

a) NIC, NEBĚHEL ŽÁDNÝ PŘÍKAZ KE SPOUŠTĚNÍ PERO

použijte Navrhovatele

alg

začátek

    přejít k bodu (2,4)

    přejít k bodu (4,1)

    přejít k bodu (0,0)

ošidit

b) ČTVEREC

použijte Navrhovatele

alg

začátek

    spusťte pero

    přesun po vektoru (0,3)

    přesun po vektoru (3,0)

    přesun po vektoru (0,-3)

    přesun po vektoru (-3,0)

ošidit

EU – 2

    Jak by se měl algoritmus změnit, pokud navrhovatel potřebuje nakreslit hvězdnou oblohu s 20, 50, 1000 hvězdami?

Týmů bude víc

    Kolik řádků zabere algoritmus pro 10 hvězdiček?

    Identifikujte nevýhody takového algoritmu: těžkopádný, duplicitní, vysoká pravděpodobnost chyby

    Jak se můžete těmto potížím vyhnout: použijte pomocný algoritmus, mohou to také nazývat cyklus

    Umístěte 6 - 8 hvězd na souřadnicovou rovinu, velikost každé by měla odpovídat hvězdě, kterou jste nakreslili v minulé lekci

    Zapište si hlavní algoritmus „Space“ pomocí algoritmu „Star“ jako pomocného algoritmu

použijte Navrhovatele

alg prostor

začátek

přejít na bod (1,1)

hvězda

přesun po vektoru (2, 2)

hvězda

posunout o vektor (-2, 2)

hvězda

přesun po vektoru (2, 2)

hvězda

raketa

přejít k bodu (13,1)

hvězda

posunout o vektor (-2, 2)

hvězda

přesun po vektoru (2, 2)

hvězda

posunout o vektor (-2, 2)

hvězda

ošidit

alg hvězdička

začátek

spusťte pero

nastavit barvu ("žlutá")

posunout o vektor(1,2)

posunout o vektor(1,-2)

posunout o vektor(-2,1)

posunout o vektor(2,0)

posunout o vektor(-2,-1)

zvedněte pero

ošidit

alg raketa

začátek

přejít k bodu (6,1)

spusťte pero

nastavit barvu ("červená")

posunout o vektor(0,1)

posunout o vektor(1,1)

posunout o vektor(0,4)

posunout o vektor(1,1)

posunout o vektor(1,-1)

posunout o vektor(0,-4)

posunout o vektor(1,-1)

posunout o vektor(0,-1)

posunout o vektor(-1,1)

posunout o vektor(-1,-1)

posunout o vektor(-1,1)

posunout o vektor(-1,-1)

zvedněte pero

Performer Robot. Pomocné algoritmy(2h)

Cílová: představit koncept hlavního a pomocného algoritmu; vysvětlit pravidla pro použití pomocného algoritmu; analyzovat příklady algoritmů pomocí pomocných. Rozvinout praktické dovednosti při konstrukci algoritmů metodou sekvenčního zpřesňování.

Plán lekce

1.Zavedení nových pojmů (hlavní a pomocné algoritmy, volání) a vysvětlení nových pojmů.

2. Analýza příkladů řešení úloh pomocí pomocného algoritmu.

3. Praktická práce

Při řešení některých problémů je vhodné je rozdělit na menší dílčí úkoly, z nichž každý může být formulován jako samostatný algoritmus. V tomto případě je nejprve zkompilován tzv. hlavní algoritmus, ve kterém se volání pomocných algoritmů používají k řešení dílčích úloh, které se přidávají později. Toto řešení se nazývá metoda sekvenčního zpřesňování. Umožňuje skupině programátorů pracovat na projektu, přičemž každý řeší svůj vlastní dílčí úkol.

V procesu řešení problému lze každý pomocný algoritmus v případě potřeby rozdělit na menší pomocné algoritmy.

Zavolá se příkaz k provedení pomocného algoritmu výzva a je zapsán v těle hlavního algoritmu.

Stejný algoritmus lze považovat za hlavní a pomocný ve vztahu k ostatním algoritmům. V algoritmickém jazyce se nejprve zapisuje hlavní algoritmus a pomocné se zapisují v řadě.

Úkol 1:

Robot je v levém horním rohu pole. Nejsou zde žádné stěny ani malované cely. Vytvořte algoritmus pomocí pomocného algoritmu, který nakreslí čtyři křížky na jednu vodorovnou čáru. Konečná pozice robota může být libovolná.

Řešení

Analýza na desce:

Úkol 2. Robot je v levém horním rohu pole. Nejsou zde žádné stěny ani malované cely. Vytvořte algoritmus, který nakreslí čtverec 8 x 8 do šachovnicového vzoru. Konečná pozice robota může být libovolná.

Praktická práce na PC „Řešení problému pomocí pomocných algoritmů“

Problém 1 . Robot je v levém dolním rohu pole. Nejsou zde žádné stěny ani malované cely. Napište algoritmus, který vykreslí 6 svislé pruhy stejně dlouhých 6 buněk. Konečná pozice robota může být libovolná.

Problém 2 . Pomocí pomocných vytvořte algoritmus pro malování buněk, které tvoří číslo 1212.

Domácí práce : Vymyslete algoritmus, který nakreslí následující obrázek: K vyřešení problému použijte dva pomocné algoritmy.