pro kaž dého - sweb.cztoxy.sweb.cz/skola/zaloha/vb/ucebnice_vb.pdforigami nebo třeba jen...

25
pro kaž dé ho Uč ebnítexty pro krouž ek programová ní na Speciá lníš kole pro sluchově postiž ené © Jan Felger 2000 Ú vod Tento text si klade za ú kol podat naprosté mu laikovi zá kladní informace o programová ní v moderní m programovací m Jazyce Visual Basicu tak, aby byl č tená ř schopen v co nejkratší m č ase psá t svoje vlastní , byť zcela primitivní aplikace. Pro tento projekt je charakteristické , ž e obrovský potenciá l jazyka (a tedy pro začá teč ní ka č asto až obludná slož itost) je z velké čá sti ponechá n stranou, a ž e byly vybrá ny pouze ty rysy Visual Basicu, které autor považ uje za nezbytné pro dosaž ení zmí ně né ho cí le. Visual Basic prvnísezná mení Pozná mka: popis platí pro verzi programu 5.0 Při první m spuš tě ní zvolte projekt s ná zvem Standard.exe. Nahoře zá kladní menu. Pod ní m (volitelně ) panely ikon. Vlevo Panel ná strojů, spíš e snad objektů. Zapí ná / vypí ná se postupem View Toolbox. Uprostřed formulá ř programu. Obrazovka nabí dne v hlavní čá sti formulá ř vaš eho programu tedy jeho vně jší vzhled. Jednotlivé prvky, jako jsou tlačí tka, textové boxy, obrá zky atd. vklá dá me do formulá ře prostým taž ení m myší z panelu ná strojů (Toolbox) v levé čá sti obrazovky. Myší též upravujeme jejich polohu a velikost. Pokud potřebujeme nastavit další vlastnosti objektu, je třeba zapnout okno vlastností postupem View Properties Window. Algorimus Zá kladní pojem při vytvá ření programu. Jedná se o postup, kterým se dá ně co udě lat. Pří kladem algoritmu je třeba recept, ná vod na slož ení Rubikovy kostky č i jiné ho hlavolamu, origami nebo třeba jen vlaš tovky, postup na výrobu ně jaké chemiká lie, ná vod na sestavení počí tač e, popis, jak sprá vně telefonovat atd. Takovýto algoritmus můž e být vyjá dřen mnoha způsoby (na papíře, na magnetofonové kazetě , posunkovou řečí … ). Jední m ze způsobů zá pisu je programovací jazyk. Program je algoritmus zapsaný v ně jaké m programovací m jazyce . Tě ch je celá řada. Společ ným rysem vě tš iny vyšší ch programovací ch jazyků (blí ží cí ch se lidské řeč i) je, ž e jsou obvykle založ eny na anglič tině a obsahují ně které společ né konstrukce, napří klad mož nost opaková ní ně jaké ho procesu (cyklus) nebo mož nost rozhodová ní (podmí ně ný pří kaz). Visual Basic je z velké rodiny Basiců, které mají řadu ná řečí “ drobných rozdí lů v pří kazech. Nicmé ně zá kladní pří kazy jsou obvykle velmi podobné a kdo zná jednu variantu, obvykle se snadno přizpůsobí při přechodu na jinou.

Upload: others

Post on 15-Feb-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: pro kaž dého - sweb.cztoxy.sweb.cz/skola/zaloha/VB/Ucebnice_VB.pdforigami nebo třeba jen vlaštovky, postup na výrobu nějaké chemikálie, návod na sestavení počí tače, popis,

pro kaž dého

Uč ební texty pro kroužek programová ní na Speciá lní škole pro sluchově postižené

© Jan Felger 2000

Ú vod Tento text si klade za ú kol podat naprostému laikovi základní informace o programování v moderním programovacím Jazyce – Visual Basicu tak, aby byl čtenář schopen v co nejkratš ím čase psát svoje vlastní , byť zcela primitivní aplikace. Pro tento projekt je charakteristické, že obrovský potenciál jazyka (a tedy pro začátečníka často až obludná složitost) je z velké části ponechán stranou, a že byly vybrány pouze ty rysy Visual Basicu, které autor považuje za nezbytné pro dosažení zmíněného cí le.

Visual Basic – první seznámení Poznámka: popis platí pro verzi programu 5.0 Při prvním spuš tění zvolte projekt s názvem Standard.exe. Nahoře – základní menu. Pod ním (volitelně) panely ikon. Vlevo – Panel nástrojů, spí še snad objektů. Zapíná/ vypíná se postupem View – Toolbox. Uprostřed – formulář programu. Obrazovka nabídne v hlavní části formulář vašeho programu – tedy jeho vnějš í vzhled. Jednotlivé prvky, jako jsou tlačí tka, textové boxy, obrázky atd. vkládáme do formuláře prostým tažením myš í z panelu nástrojů (Toolbox) v levé části obrazovky. Myš í též upravujeme jejich polohu a velikost. Pokud potřebujeme nastavit dalš í vlastnosti objektu, je třeba zapnout okno vlastností postupem View – Properties Window.

Algorimus Základní pojem při vytváření programu. Jedná se o postup, kterým se dá něco udělat. Příkladem algoritmu je třeba recept, návod na složení Rubikovy kostky či jiného hlavolamu, origami nebo třeba jen vlaš tovky, postup na výrobu nějaké chemikálie, návod na sestavení počí tače, popis, jak správně telefonovat atd. Takovýto algoritmus může být vyjádřen mnoha způsoby (na papí ře, na magnetofonové kazetě, posunkovou řečí… ). Jedním ze způsobů zápisu je programovací jazyk. Program je algoritmus zapsaný v ně jakém programovacím jazyce. Těch je celá řada. Společným rysem větš iny vyš š ích programovacích jazyků (blížících se lidské řeči) je, že jsou obvykle založeny na angličtině a obsahují některé společné konstrukce, například možnost opakování nějakého procesu (cyklus) nebo možnost rozhodování (podmíněný příkaz). Visual Basic je z velké rodiny Basiců, které mají řadu „ nářečí “ – drobných rozdí lů v příkazech. Nicméně základní příkazy jsou obvykle velmi podobné a kdo zná jednu variantu, obvykle se snadno přizpůsobí při přechodu na jinou.

Page 2: pro kaž dého - sweb.cztoxy.sweb.cz/skola/zaloha/VB/Ucebnice_VB.pdforigami nebo třeba jen vlaštovky, postup na výrobu nějaké chemikálie, návod na sestavení počí tače, popis,

Private Sub Command1_Click() End Sub

Private Sub Command1_Click() Print "Ahoj" End Sub

Private Sub Command1_Click() End End Sub

První program Ukažme si vytvoření zcela primitivního programu ve Visual Basicu: Zapněte si okno vlastností postupem View – Properties Window. Zde si můžete zvolit, zda bude seznam voleb seřazen abecedně (Alphabetic) nebo dle kategorií (Categorized). Na plochu formuláře (Form 1) přeneste tlačí tko (Command Button) a změňte jeho název z Command1 na Start (volba Caption). Změní te-li Style na 1-Graphical, můžete pomocí Back Color – Palette změnit také barvu tlačí tka. Volba Font umožňuje nastavit vlastnosti písma. Nyní přeneste na formulář dalš í tlačí tko a přejmenujte je na Konec. V tomto okamžiku je již třeba začí t pracovat s kódem, tj říci programu, c má dělat při stisku jednotlivých tlačí tek. K tomu musíme opustit editaci objektů a zapnout editaci kókdu. To se dělá pomocí volby View – Code (View – Objekt nás naopak vrátí do původního zobrazení objektů). Zde jsou dva rozbalovací seznamy – seznam objektů a seznam událostí . Událostmi se zatím nebudeme zabývat. V seznamu objektů byste měli mí t tyto objekty: (General), Form, Command1 a Command2. Při kliknutí na příslušném objektu se zobrazí jeho kód. Vyberte objekt Command1. Měl by se zobrazit tento kód:

Upravte ho takto (tučné písmo naznačuje, co je třeba připsat):

Tiskni slovo“Ahoj“ Obdobně pro tlačí tko Command2 doplňte příkaz End:

Ukonči program Program je hotov. Nyní ho vyzkouš íme. Program se spustí postupem Run – Start nebo ikonou u. Při kliknutí na tlačí tku Start se vytiskne slovo „Ahoj“ , a to i opakovaně. Tlačí tko Konec program ukončí (a vrátí program do editačního módu). Na závěr bychom měli hotový program uložit na disk. To uděláme postupem File – Save Form1.frm as – Vytvořit novou složku, přejí t do ní – Uložit a ješ tě File – Save Project As – Vytvořit novou složku, přejí t do ní – Uložit .Pozor – pamatujte si že poněkud proti logice se váš program nachází v souboru Form1.frm, ten je tedy pro vás hlavní a předevš ím je nutno jej uložit. Celý program, necháme-li si vypsat všechny objekty, bude tedy vypadat nějak takto:

Page 3: pro kaž dého - sweb.cztoxy.sweb.cz/skola/zaloha/VB/Ucebnice_VB.pdforigami nebo třeba jen vlaštovky, postup na výrobu nějaké chemikálie, návod na sestavení počí tače, popis,

Private Sub Command1_Click() Text1.Text = "Ahoj" End Sub

Private Sub Command1_Click() Text1.Text = Text1.Text + „ Ahoj“ End Sub

PROGRAM 1: AHOJ Private Sub Command1_Click() Print "Ahoj" End Sub Private Sub Command2_Click() End End Sub Private Sub Form_Load() End Sub

Textové pole (Text Box) Způsob tisku slova „Ahoj“ přímo na formulář není pří liš elegantní a má řadu nevýhod. Proto náš program upravíme tak, že do něj přidáme textové pole (Text Box) v módu editace objektů (View – Objekt). Ve vlastnostech TextBoxu (Properties Window) je vhodné nastavit Multiline na True (víceřádkový výstup). Také doporučujeme vymazat vlastnost Text (standardně obsahuje nápis „Text1“ ). Dále upravíme kód pro tlačí tko Command1 takto:

Výstup tisku do textového pole

TextBox je výstup s pamětí . Tak, jak jsme zapsali kód, provede se tisk slova „Ahoj“ pouze jednou. Pokud požadujeme opět opakovaný výstup, jako v minulé verzi programu, je v tomto případě nutno zapsat kód takto:

Slovo „Ahoj“ se přidá do TextBoxu

Pokud chceme, aby opakovaná slova byla oddělena mezerami, vepí šeme mezeru nebo několik mezer do uvozovek za slovo Ahoj takto: „Ahoj “ . PROGRAM 2: AHOJ 2 Private Sub Command1_Click() Text1.Text = Text1.Text + "Ahoj " End Sub Private Sub Command2_Click() End End Sub Private Sub Form_Load() End Sub Private Sub Text1_Change() End Sub

Page 4: pro kaž dého - sweb.cztoxy.sweb.cz/skola/zaloha/VB/Ucebnice_VB.pdforigami nebo třeba jen vlaštovky, postup na výrobu nějaké chemikálie, návod na sestavení počí tače, popis,

Private Sub Command1_Click() For i = 1 To 10

Text1.Text = Text1.Text + Str(i) Next i End Sub

Využ ití cyklu FOR-NEXT Tím jsme si vysvětlili základní princip výstupu textu na obrazovku. Tento princip je možno použí t nejen pro výstup textu, ale i pro výstup číselných informací . Například výstup prvních 10 přirozených čísel zajistíme pomocí příkazu cyklu (opakovaní) FOR-NEXT takto. Protože ho budeme často používat, vysvětlíme si tento příkaz podrobněji: FOR i = 1 TO 10 Pro i od 1 (dolní hranice) do 10 (horní hranice cyklu) Tě lo cyklu Sem zapí šeme to ,co se má provádět opakovaně NEXT i Konec cyklu V našem případě se opakované provádění týká výstupu čísel do TextBoxu – proměnná Text1.Text. To je stejné jako dříve u slova „Ahoj“ s tím rozdí lem, že číslo se nejprve musí „ přeložit“ do textového tvaru pomocí funkce STR, která převádí číslo na text. (S číslem převedeným do textové formy už počí tač nedovede dělat aritmetické operce, například sčí tání , prostě ho nechápe jako číslo, ale jako řadu znaků.) Pokud bychom chtěli změnit čísla na výstupu například na sudá, stačilo by čísla skrytá v proměnné i násobit 2, tedy změnit tělo cyklu změnit takto:

Text1.Text = Text1.Text + Str(2*i)

V tomto případě se budou tisknout sudá čísla od 2 do 20 (hvězdička je operátor násobení). Počet čísel k tisku ovlivníme změnou horní hranice cyklu. Změníme-li například nyní horní hranici na 15, tedy bude-li první řádek cyklu vypadat takto:

For i = 1 To 15 budou se tisknout sudá čísla od 2 do 30.

Rolování vý stupu v textovém poli Pokud horní hranici cyklu zvětš íme tak, že se výpis čísel do TextBoxu nevejde (např. na 1000) pak je vhodné ve vlastnostech TextBoxu (Properties Window) nastavit ScrollBars (posuvníky) na hodnotu 2–Vertical. Význam jednotlivých hodnot vlastnosti ScrollBars je tento: 0–None žádný posuvník 1–Horizontal horizontální (vodorovný) posuvník 2–Vertical vertikální (svislý) posuvník 3–Both oba posuvníky Potom si můžeme posouváním š ipek prohlédnout všechna sudá čísla od 2 do 2000 například změnou horní hranice cyklu v našem příkladě na 1000 takto:

Page 5: pro kaž dého - sweb.cztoxy.sweb.cz/skola/zaloha/VB/Ucebnice_VB.pdforigami nebo třeba jen vlaštovky, postup na výrobu nějaké chemikálie, návod na sestavení počí tače, popis,

For i = 1 To 1000 Tento výpočet už může na pomalejš ích počí tačích chví li trvat. Celý program pak bude vypadat nějak takto: PROGRAM 3: SUDÁ Č ÍSLA Private Sub Command1_Click() For i = 1 To 1000

Text1.Text = Text1.Text + Str(2*i) Next i End Sub Private Sub Command2_Click() End End Sub Private Sub Form_Load() End Sub Private Sub Text1_Change() End Sub

Page 6: pro kaž dého - sweb.cztoxy.sweb.cz/skola/zaloha/VB/Ucebnice_VB.pdforigami nebo třeba jen vlaštovky, postup na výrobu nějaké chemikálie, návod na sestavení počí tače, popis,

Private Sub Command1_Click() For i = 1 To 100 Odm = Sqr(i) Text1.Text = Text1.Text + Str(i) + " " + Str(Odm) + Chr(13) + Chr(10) Next i End Sub

Druhá odmocnina a druhá mocnina Zkusme si náš program dále upravit tak, aby nám umožnil výpočet druhé odmocniny všech čísel například od 1 do 100. Výstup budeme požadovat přehledně do dvou sloupečků. Pro výpočet druhé odmocniny z daného čísla slouží funkce SQR. Např. Sqr (4) = 2, Sqr (3) = 1,73 atd., je to pro počí tač prostě totéž co na kalkulačce naše známé odmocní tko

. Náš program (respektive pouze část kódu pro tlačí tko Start – Command1) se změní takto PROGRAM 4: DRUHÁ ODMOCNINA Do proměnné Odm jsme si uložili vypočtenou odmocninu. Tu pak tiskneme za tiskem čísla i s příslušnou mezerou (v uvozovkách) pro oddělení . Výraz „+ Chr(13) + Chr(10)“ , který za tímto tiskem následuje, si zatím nebudeme podrobně vysvětlovat; pouze si budeme pamatovat, že způsobí přechod na další řádek. Tento program upravíme ješ tě dále pro současný výpočet druhé mocniny. Prostě ji tam přidáme podle stejných pravidel. Celý program pak bude vypadat takto: PROGRAM 5: MOCNINA A ODMOCNINA Private Sub Command1_Click() Text1.Text = Text1.Text + "Číslo" + " " + "Mocnina" + " " + "Odmocnina" + Chr(13) + Chr(10) For i = 1 To 100 Moc = i * i Odm = Sqr(i) Text1.Text = Text1.Text + Str(i) + " " + Str(Moc) + " " + Str(Odm) + Chr(13) + Chr(10) Next i End Sub Private Sub Command2_Click() End End Sub Private Sub Form_Load() End Sub Private Sub Text1_Change() End Sub

Page 7: pro kaž dého - sweb.cztoxy.sweb.cz/skola/zaloha/VB/Ucebnice_VB.pdforigami nebo třeba jen vlaštovky, postup na výrobu nějaké chemikálie, návod na sestavení počí tače, popis,

Tady jsme ješ tě před cyklus přidali informační řádek (neopakuje se), jako záhlaví sloupečků s čísly, aby každý věděl, co se vypočí talo.

Page 8: pro kaž dého - sweb.cztoxy.sweb.cz/skola/zaloha/VB/Ucebnice_VB.pdforigami nebo třeba jen vlaštovky, postup na výrobu nějaké chemikálie, návod na sestavení počí tače, popis,

Dě lení se zbytkem A teď se vrátíme asi tak do 4. třídy a zopakujeme si dělení se zbytkem. Přesněji řečeno, naučíme tomuto jednoduchému algoritmu počí tač. K tomu budeme potřebovat jednu důležitou funkci, která dokáže smazat všechno, co je u desetinného čísla vpravo od desetinné čárky, tedy to, co je menš í než jedna. K tomu slouží funkce INT – celá část čísla. Ta má jediný výsledek: z desetinného čísla uřízne všechno, co je od desetinné čárky vpravo, ponechá pouze to, co je od čárky nalevo. Čili například: Int (3.456789) = 3 Program obsahuje čtyři TextBoxy (pro zadání dělence a dělitele, pro podí l a zbytek), tři Labely (návěstí , poznámka, prostě pouhé zobrazení textu) pro lepš í pochopení výpočtu (jeden Label např. říká „ rovná se“ ) a dvě již standardní tlačí tka. U všech objektů vhodně nastavíme jejich vlastnosti (například vymažeme počáteční obsah TextBoxů). Kromě tlačí tek Command1 (Start dělení) a Command2 (Konec programu) nebude nikde potřeba psát žádný kód. Kód pro objekt Command1 může vypadat například takto: PROGRAM 6: DĚ LENÍ SE ZBYTKEM (kód pouze pro Command1) Private Sub Command1_Click() delenec = Text1.Text delitel = Text2.Text podil = Int(delenec / delitel) zbytek = delenec – delitel * podil Text3.Text = Str(podil) Text4.Text = Str(zbytek) End Sub V tomto programu nejprve zadáme do TextBoxů dělence a dělitele a potom stiskneme tlačí tko Command1 (Start), které způsobí provedení výpočtu.

Page 9: pro kaž dého - sweb.cztoxy.sweb.cz/skola/zaloha/VB/Ucebnice_VB.pdforigami nebo třeba jen vlaštovky, postup na výrobu nějaké chemikálie, návod na sestavení počí tače, popis,

Private Sub Command1_Click() Text1.Text = Text1.Text & "1" End Sub

Private Sub Command11_Click() cislo_1 = Text1.Text operace = "+" Text1.Text = "" End Sub

Kalkulačka Klasický poměrně jednoduchý program ve Visual Basicu, který najdete v kdejaké učebnici, je jednoduchá kalkulačka. Tedy jednoduchá kalkulačka to bude, ale přesto to bude zatím nejtěžš í program, který jsme dělali. Ale taky, domnívám se, zdaleka nejzábavnějš í . Takže: začneme formulářem. Vytvořte si formulář podobný jako je na obrázku – postup už známe. Nemusí být samozřejmě ú plně stejný – můžete se třeba nechat inspirovat svojí skutečnou kalkulačkou (a mí t tedy na rozdí l ode mne všechna tlačí tka stejná). Kalkulačka na obrázku obsahuje (nepočí táme-li vlastní formulář) pouze tři druhy objektů: TextBox pro displej (celkem pochopitelně jednořádkový a bez rolování), Command1 – Command17 pro jednotlivá tlačí tka; ješ tě jsem použil dvakrát obarvený rámeček (Frame) pro grafické vyjádření toho, že číslice patří k sobě a operace taky. Pokud použijete rámeček také, dejte si pozor, aby nezakryl všechna tlačí tka; pokud k tomu dojde, snadno tento problém odstraní te postupem Format – Order – Bring to front). Pokud si označí te myš í více objektů najednou, můžete měnit jejich vlastnosti společně (např. barvu tlačí tek). Nezapomeňte zvolit vhodné písmo též pro displej. Pro ten je též dobré zajistit zarovnávání textu zprava, jak jsme u kalkulaček normálně zvyklí , pomocí nastavení Alignment: 1–Right Justify (Properties Window). A nyní můžeme začí t vytvářet kód. Přepneme se do módu jeho editace (View – Code) a vybereme si objekt Command1, který na této kalkulačce reprezentuje číslici 1 (pokud máte jiné označení tlačí tek, musí te k tomu při psaní kódu přihlédnout). Při stisku klávesy 1 se má zapsat číslice 1 na displej a do paměti, což zapí šeme vzhledem k tomu, že TextBox má svoji paměť takto: Tento zápis způsobí přidání číslice 1 do TextBoxu Text1, kdykoli bude stisknuto tlačí tko Command1 (reprezentující právě číslici 1). Podobně vyplníme kód pro tlačí tka ostatních číslic 0 a 2– 9. Zatím docela jednoduché, ne? Nyní nás čeká vytvoření kódu pro tlačí tka operací . Tam to bude malinko složitějš í . Ukážeme si to u operace sčí tání :

Dokončené první číslo uloží do proměnné cislo_1

stiskem tohoto tlačí tka určujeme operaci vynuluje displej (připraví ho pro druhé číslo)

Tlačí tka ostatních operací vyplníme analogicky.

Page 10: pro kaž dého - sweb.cztoxy.sweb.cz/skola/zaloha/VB/Ucebnice_VB.pdforigami nebo třeba jen vlaštovky, postup na výrobu nějaké chemikálie, návod na sestavení počí tače, popis,

Private Sub Command15_Click() cislo_2 = Text1.Text If operace = "+" Then vysledek = cislo_1 + cislo_2 Text1.Text = Str (vysledek) End Sub

Dále musíme zapsat kód pro tisk výsledku, tedy pro tlačí tko rovná se: Tento kód způsobí provedení následujících akcí :

• dokončené druhé číslo uloží do proměnné cislo_2 • pokud je určenou operací sčí tání , čísla se sečtou • výsledek (převedený na text) se ukáže v TextBoxu Text1

Samozřejmě, až budeme mí t kalkulačku hotovou celou, musí zde (u tlačí tka „=“ ) být rozhodovací příkaz If celkem 4x – pro každou operaci jeden. Poslední věc, kterou musíme udělat, je oznámit programu, že použité proměnné jsou globální, tj. že platí v rámci celého programu. (Pokud to neuděláme, platí proměnná jen v rámci procedury či objektu, kde byla použita, v našem případě tedy v rámci tlačí tka. Prozatím tomu tak v naš ich programech vždycky bylo.) To se provede v části kódu General (ten tedy používáme poprvé) takto: zavede globálních číselné proměnné zavede globální textovou proměnnou V tomto okamžiku by již operace sčí tání měla fungovat. Dalš í operace doděláme analogicky. Kód pro tlačí tko „C“ (vymazání displeje) je natolik jednoduchý, že ho ponecháme za domácí ú kol. Poznamenejme, že při plném pochopení tohoto programu je možno kalkulačku dále zdokonalovat a rozš iřovat – přidat desetinnou čárku, odmocninu, mocniny, faktoriál a dalš í funkce… Později dokonce nebude problémem vytvořit kalkulačku, která dokáže kreslit grafy nebo kalkulačku animovanou. Fantazii programátora se meze nekladou.

Dim cislo_1, cislo_2, vysledek As Double Dim operace As String

Page 11: pro kaž dého - sweb.cztoxy.sweb.cz/skola/zaloha/VB/Ucebnice_VB.pdforigami nebo třeba jen vlaštovky, postup na výrobu nějaké chemikálie, návod na sestavení počí tače, popis,

Náhoda v počítači Pomocí Visual Basicu je možno jednoduše simulovat předměty, které každodenně používáme pro rozhodování pomocí náhody – minci, kostku, ruletu apod. Ukažme si to na příkladu herní kostky. K tomu budeme potřebovat nový příkaz RND, který právě dokáže náhodu „ vymyslet“ . RND dává náhodná čísla z intervalu od 0 do 1, tedy např. 0,25478987. Pomocí vhodných ú prav z těchto hodnot dostaneme čísla od 1 do 6, tedy naš i kostku: RND*6 vrátí desetinná čísla od 0 do 5 INT(RND*6) vrátí celá čísla od 0 do 5 INT(RND*6)+1 vrátí celá čísla od 1 do 6 Když si to rozmyslí te, zjistí te, že skutečně musíme dostat hodnoty 1, 2, 3, 4, 5, či 6. Program bude potřebovat TextBox pro výpis čísel (čísla) a tlačí tka Start a Konec. Příkaz RANDOMIZE jsme do něj doplnili proto, aby se čísla na kostce při novém spuš tění programu neopakovala. PROGRAM 7: KOSTKA Private Sub Command1_Click() Randomize cislo_kostky = Int(Rnd * 6) + 1 Text1.Text = Text1.Text + Str(cislo_kostky) End Sub Private Sub Command2_Click() End End Sub Private Sub Form_Load() End Sub Private Sub Text1_Change() End Sub Úkoly: doplňte do své kalkulačky následující funkce:

• druhou mocninu 2x • druhou odmocninu x • třetí mocninu 3x • n-tou mocninu nx • n-tou odmocninu n x • mince (náhodné celé číslo od 1 do 2) • kostka (náhodné celé číslo od 1 do 6) • ruleta (náhodné celé číslo od 0 do 42)

• převrácené číslo

x1zlomek

Page 12: pro kaž dého - sweb.cztoxy.sweb.cz/skola/zaloha/VB/Ucebnice_VB.pdforigami nebo třeba jen vlaštovky, postup na výrobu nějaké chemikálie, návod na sestavení počí tače, popis,

• desetinnou čárku (to je už poněkud obtížnějš í problém) • výpočet přepony trojú helníka ze dvou odvěsen (Pythagorova věta) • převody jednotek času, délky, hmotnosti • faktoriál čísla. Faktoriál čísla se vypočí tá jako součin daného čísla a všech čísel

menš ích. Značí se vykřičníkem. Např. 5! = 5.4.3.2.1 = 120. Zde je nutno použí t cyklus FOR–NEXT.

• výpočet počtu procent z daného čísla

Page 13: pro kaž dého - sweb.cztoxy.sweb.cz/skola/zaloha/VB/Ucebnice_VB.pdforigami nebo třeba jen vlaštovky, postup na výrobu nějaké chemikálie, návod na sestavení počí tače, popis,

Private Sub Command1_Click() For i = 1 To 100 Prvocislo = 1 For j = 2 To i - 1 If (i / j) = Int(i / j) Then Prvocislo = 0 Next j If Prvocislo = 1 Then Text1.Text = Text1.Text + Str(i) Next i End Sub

Program na vý počet prvočísel Samozřejmě, výpočet obsažený v cyklu může být daleko složitějš í . Ukažme si to na příkladě výpočtu prvočísel do 100 podle definice. Zde je už nutno použí t cykly dva, a to vnořené do sebe: Je zde několik novinek: za prvé rozhodovací příkaz IF. Ten v našem případě říká: If (i / j) = Int(i / j) Then Prvocislo = 0

jestliže podí l i/j je roven celé části i/j pak i není prvočíslo (do proměnné Prvocislo ulož nulu)

Prvočíslo nemá žádného dělitele než 1 a sebe sama. Tyto dva triviální dělitele jsme vyřadili pomocí dolní a horní hranice j-cyklu: j probíhá od 2 do i– 1. Nyní si již můžeme vysvětlit celý program pro výpočet prvočísel po řádcích:

1) Pro každé číslo i od 1 do 100 2) Nastav proměnnou Prvocislo na 1 3) Procházej všechna čísla j od 2 do i– 1 4) Jestliže podí l i/j je roven celé části i/j pak i není prvočíslo (nastav Prvocislo na 0) 5) Ukonči cyklus j 6) Jestliže je Prvocislo = 1 (program nenašel žádného dělitele), tiskni číslo i 7) Ukonči cyklus i

Program samozřejmě pracuje také pro velká i (maximální horní hodnota je dána vlastnostmi Visual Basicu) s tou výhradou, že čím větš í zvolí te horní hranici FOR cyklus s proměnnou i, tím déle bude výpočet trvat. (Více přesnějš ích informací o maximálních hodnotách čísel ve Visual Basicu si povíme později.)

Page 14: pro kaž dého - sweb.cztoxy.sweb.cz/skola/zaloha/VB/Ucebnice_VB.pdforigami nebo třeba jen vlaštovky, postup na výrobu nějaké chemikálie, návod na sestavení počí tače, popis,

Další příkazy Zde si zopakujeme objekty a příkazy, které už známe, a uvedeme některé dalš í , které se nám určitě dříve nebo později hodí . Zatím známe tyto objekty:

• FORM (formulář, pozadí celého programu) • COMMAND (tlačí tko) • TEXTBOX (textové pole) • LABEL (poznámka, nápis)

Známe tyto příkazy:

• FOR-NEXT (cyklus) • SQR (druhá odmocnina) • STR (převedení čísla na text) • INT (celá část čísla)

A teď novinky (příkazy):

• REM – poznámka. Sem si zapisujeme informace pro svoji potřebu, například název programu, nebo informaci o tom, k čemu některá část programu slouží . Místo slůvka REM je možno použí t i apostrof (to je tento ‘ znak).

• VAL – převedení textu na číslo. Jde o obrácenou operaci k příkazu STR. • BEEP – počí tač pípne. • IF-THEN-ELSE – podmíněný příkaz, podmínka.

A nové objekty:

• FRAME – rámeček. Další poznámky:

• Pomocí násobení snadno dokážeme umocnit na druhou, jak ale umocníme na padesátou? A jak uděláme třeba pátou odmocninu z čísla? K tomu slouží operátor umocňování ^ (stiskni zároveň levý Alt a 94 na numerické části klávesnice). Ten zajistí výpočet libovolné mocniny a odmocniny. Např. 2 ^ 5 = 52 = 32,

8 ^ (1/3) = 3 8 = 2 (odmocniny získáme pomocí zlomků, tedy například 21

aa = ,

51

5 aa = atd.).

Page 15: pro kaž dého - sweb.cztoxy.sweb.cz/skola/zaloha/VB/Ucebnice_VB.pdforigami nebo třeba jen vlaštovky, postup na výrobu nějaké chemikálie, návod na sestavení počí tače, popis,

Slideshow – předvádě ní obrázků Pomocí PictureBoxu a možností , které poskytuje, se naučíme zobrazovat ve Visual Basicu vnějš í obrázky (naskenované, stáhnuté z internetu, namalované nějakým programem… ). PictureBox je objekt sloužící k zobrazování grafiky. Vytvoříme si nový formulář Visual Basicu a v něm objekt PictureBox a uložíme jej do nějakého adresáře, např. Slideshow. Do tohoto adresáře zkopírujeme (standardním postupem z Windows) nějaké libovolné obrázky, které pojmenujeme řekněme 1.JPG až 5.JPG. (Právě tak mohou mí t formát (příponu) BMP, GIF, nebo jinou; ale pozor, ne všechny formáty jsou Visual Basicem podporovány (podrobné informace viz v nápovědě). Pro nahrání obrázku do Picture Boxu zvolíme vlastnost Picture, tedy takto: Picture1.Picture = LoadPicture(„ 1.jpg“ ). Příkaz LoadPicture nahraje zvolený obrázek, jehož název do závorek a do uvozovek zapí šeme, zde tedy obrázek 1.jpg. Předpokládáme-li automatické předvádění všech pěti obrázků, použijeme cyklus FOR takto:

Zde příkaz Format má obdobný význam jako nám již známý Str s tím rozdí lem, že nevkládá před text mezeru. Celý zde zapsaný příkaz LoadPicture (nahraj obrázek) pak způsobí opakované nahrání všech 5 obrázků (proměnná i se mění od 1 do 5 a je převedena na text a spojena s řetězcem „ .jpg“ , tedy tímto spojením vznikne postupně právě 1.jpg, 2.jpg, 3.jpg… ). Takto zapsaný program by však měnil obrázky pří liš rychle. A protože práci s časem jsme ješ tě neprobírali, použijeme ke zpomalení jednoduchý trik; vložíme do programu ješ tě jeden cyklus s velkým počtem opakování a neobsahující žádný příkaz (nebo nějaký příkaz, který nemá na nic vliv, např. sečtení dvou čísel). Na závěr nám zbývá doplnit tlačí tko pro Strat a Konec programu. Celý popsaný postup bude obsažen právě pod tlačí tkem Start (Command1) takto: PROGRAM 8: SLISHOW Private Sub Command1_Click() For i = 1 To 10 Picture1.Picture = LoadPicture(Format(i) + ".jpg") Rem cyklus pro zpomalení : For j = 1 To 1000000 Next j Next i End Sub

For i = 1 To 5 Picture1.Picture = LoadPicture(Format(i) + ".jpg")Next i

Page 16: pro kaž dého - sweb.cztoxy.sweb.cz/skola/zaloha/VB/Ucebnice_VB.pdforigami nebo třeba jen vlaštovky, postup na výrobu nějaké chemikálie, návod na sestavení počí tače, popis,

Konstanty a promě nné

Page 17: pro kaž dého - sweb.cztoxy.sweb.cz/skola/zaloha/VB/Ucebnice_VB.pdforigami nebo třeba jen vlaštovky, postup na výrobu nějaké chemikálie, návod na sestavení počí tače, popis,

Cvičení Kombinatorika

1) Napiš program, který vypí še všechny možnosti (permutace) seřazení 5 daných různých písmen (číslic).

2) Napiš program, který vypí še všechny možnosti (permutace) seřazení n daných různých písmen (číslic), n dáno na vstupu.

3) Napiš program, který určí C(k, n). 4) Napiš program, který určí C’(k, n). 5) Napiš program, který určí V(k, n). 6) Napiš program, který určí V’(k, n). 7) Napiš program, který zobrazí Pascalův trojú helník. 8) Napiš program, který pro dané a, b, n určí hodnotu binomické věty: ( )nba ±

Třídění a vyhledávání 9) Napiš program, který seřadí n slov zadaných na vstupu podle abecedy, a to vzestupně

i sestupně. 10) Napiš program na vyhledání všech čísel od 5 do 10 z množiny čísel zadaných na

vstupu. Uvedená množina končí nulou. Program vyhledaná čísla vypí še podle velikosti.

11) Je dána posloupnost přirozených čísel ukončených nulou. Počet čísel je menš í než 100. Napiš program pro určení pořadového čísla ú daje, který se nejvíce blíží aritmetickému průměru všech hodnot.

12) Napiš program, který určí maximum, minimum a aritmetický průměr z deseti přirozených čísel zadaných uživatelem z klávesnice.

13) Je dána posloupnost n celých čísel, n<100 dáno na vstupu. Napiš program, který seřadí danou posloupnost tak, že jako první budou vypsána všechna čísla kladná a potom všechna čísla záporná.

14) Napiš program, který naplní pole deseti náhodnými přirozenými čísly do 10, vytiskne je na obrazovku, poté je seřadí podle velikosti a opět je vytiskne.

15) Napiš program, který pro n náhodných přirozených čísel určí , kolikrát se mezi nimi vyskytuje poslední z nich. Číslo n zadá uživatel z klávesnice a generovaná čísla budou vytiš těna na obrazovku.

16) Napiš program, který pro n náhodných přirozených čísel určí , kolikrát se mezi nimi vyskytuje každé z nich. Číslo n zadá uživatel z klávesnice a generovaná čísla budou vytiš těna na obrazovku.

17) Napiš program, který vytiskne n přirozených čísel zadaných z klávesnice na obrazovku, poté všechna čísla menš í než 10 nahradí nulami a výsledek opět vytiskne.

Převody 18) Napiš program, který převede souřadnice bodu v kartézských souřadnicích na polární

a obráceně, dle volby uživatele. 19) Napiš program na převádění jednotek hmotnosti. 20) Napiš program na převádění jednotek délky. 21) Napiš program na převádění jednotek času. 22) Napiš program na převod ú hlu zadaného uživatelem v radiánech na stupně a

obráceně, ú hlu zadaného ve stupních na radiány. 23) Napiš program, který ú hel ve stupních převede na stupně , minuty a vteřiny a naopak,

ú hel ve stupních, minutách a vteřinách převede na stupně.

Page 18: pro kaž dého - sweb.cztoxy.sweb.cz/skola/zaloha/VB/Ucebnice_VB.pdforigami nebo třeba jen vlaštovky, postup na výrobu nějaké chemikálie, návod na sestavení počí tače, popis,

Rovnice a soustavy rovnic 24) Napiš program, který vyřeš í rovnici ax x = pro a zadané na vstupu. 25) Napiš program, který vyřeš í rovnici axx = pro a zadané na vstupu. 26) Napiš program pro řešení kvadratické rovnice v množině reálných čísel. Ošetři

všechny možnosti. 27) Napiš program pro řešení kvadratické rovnice v množině komplexních čísel. Ošetři

všechny možnosti. 28) Napiš program pro nalezení přibližného řešení kubické rovnice

023 =+++ dcxbxax . Hodnoty a, b, c, d zadá uživatel na vstupu. 29) Napiš program pro řešení rovnice 0... 01

11 =++++ −

− axaxaxa nn

nn , kde čísla

naaaa nn , , ..., , , 011− budou zadána na vstupu některou z numerických metod. 30) Napiš program pro řešení soustavy n lineárních rovnic o n neznámých pomocí

Cramerova pravidla. 31) Napiš program pro řešení soustavy n lineárních rovnic o n neznámých pomocí

Gaussovy eliminační metody.

Teorie čísel 32) Napiš program, který určí ciferný součet trojciferného čísla zadaného uživatelem z

klávesnice. 33) Napiš program, který určí ciferný součet n-ciferného čísla daného na vstupu. 34) Napiš program, který přirozené číslo zadané na vstupu rozloží na součin prvočísel. 35) Napiš program, který určí NSN a NSD dvou přirozených čísel zadaných na vstupu. 36) Napiš program, který určí NSN a NSD n přirozených čísel zadaných na vstupu. 37) Napiš program, který určí množinu dělitelů čísla zadaného na vstupu. 38) Napiš program, který vypí še strany prvních deseti pythagorejských trojú helníků. 39) Napiš program, který určí délky stran pythagorejských trojú helníků, jejichž všechny

stany jsou kratš í než dané n. 40) Napiš program, který určí všechna dokonalá čísla prvního druhu do daného n.

(Dokonalé číslo prvního druhu je rovno součtu všech svých dělitelů kromě sebe sama).

41) Napiš program, který určí všechna dokonalá čísla druhého druhu do daného n. (Dokonalé číslo druhého druhu je rovno součinu všech svých dělitelů kromě sebe sama).

42) Napiš program, který vytiskne všechna trojciferná přirozená čísla, ve kterých se žádná cifra neopakuje.

43) Napiš program, který vytiskne všechna trojciferná přirozená čísla s daným ciferným součtem.

44) Jsou dána dvě přirozená čísla k, n. Napiš program, který vytiskne všechna přirozená čísla menš í než n, jejichž ciferný součet je roven k.

45) Přirozené číslo se nazývá Armstrongovo, je-li rovno součtu třetích mocnin svých cifer (např. 333 351153 ++= ). Nalezněte všechna Armstrongova čísla menš í než dané n.

46) Přirozené číslo se nazývá Vzestupné Felgerovo, je-li rovno součtu za sebou jdoucích rostoucích n-tých mocnin svých cifer (např. 321 895598 ++= ). Nalezněte všechna Vzestupná Felgerova čísla menš í než dané n. (Domně nka: poč et tě chto č ísel je koneč ný. Poznámka: do 10 000 000 jsou to tato č ísla: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 89, 135, 175, 518, 598, 1306, 1676, 2427, 2646798. Další doposud nejsou známa.)

47) Totéž pro Sestupná Felgerova čísla. (Poznámka: žá dná víceciferná Sestupná Felgerova č ísla dosud nejsou známa.)

Page 19: pro kaž dého - sweb.cztoxy.sweb.cz/skola/zaloha/VB/Ucebnice_VB.pdforigami nebo třeba jen vlaštovky, postup na výrobu nějaké chemikálie, návod na sestavení počí tače, popis,

48) Totéž pro Pravá Felgerova čísla. Pravá Felgerova čísla jsou taková čísla, která se rovnají součtu svých cifer umocněných na sebe sama. Např. 5343 53433435 +++= (Poznámka: jsou známa pouze 2 Pravá Felgerova č ísla: 1 a prá vě 3435. Hypoté za: žá dná jiná neexistují.)

49) Napiš program, který vyhledá všechna přirozená čísla menš í než dané n dělitelná každou svou cifrou.

50) Napiš program, který určí počet cifer přirozeného čísla zadaného z klávesnice. 51) Napiš program, který pro přirozené číslo zadané z klávesnice určí , zda se jedná o

totéž číslo, budeme-li je číst odzadu. 52) Napiš program, který pro dvě přirozená čísla zadaná uživatelem z klávesnice

rozhodne, zda jsou soudělná. 53) Napiš program, který pro dvě přirozená čísla zadaná uživatelem z klávesnice určí

jejich největš í společný dělitel. 54) Napiš program, který rozhodne, zda n zadané uživatelem z klávesnice je či není

prvočíslo. 55) Napiš program, který pro n zadané uživatelem z klávesnice určí n-té prvočíslo. 56) Napiš program, který pro n zadané uživatelem z klávesnice vypí še prvních n

prvočísel. 57) Napiš program, který pro n zadané uživatelem z klávesnice vypí še všechna prvočísla

do n. 58) Napiš program na dělení se zbytkem. 59) Napiš program na ověření velké Fermatovy věty. 60) Napiš program na ověření (prozkoumání) Felgerovy domněnky. Felgerova domněnka

je zobecněním velké Fermatovy věty a říká: rovnost kkk

kkk aaaaa =++++ ...321 platí pouze pro ,3≤k kaaa ,..., , , kde 321 jsou přirozená čísla. Např. platí :

3333 6543 =++ . 61) Napiš program pro ověření Goldbachovy domněnky. Goldbachova domněnka říká, že

každé přirozené číslo větš í než 2 je možno zapsat jako součet dvou prvočísel.

Grafy funkcí 62) Napiš program, který nakreslí graf libovolné 2D funkce zadané pomocí klíčových

slov, proměnné a operátorů (využij příkaz VAL). 63) Napiš program, který nakreslí graf funkce xxy sin.= .

Polynomy 64) Napiš program, který pro n,x a koeficienty naaa ..., , , 21 zadané na vstupu určí

hodnotu polynomu 011

1 ... axaxaxa nn

nn ++++ −

− . 65) Je dáno n čísel. Napiš program, který určí hodnotu výrazu 142 2 +− xx pro každé z

nich. 66) Napiš program, který určí hodnotu polynomu dcxbxaxxP +++= 23)( Hodnoty a,

b, c, d, x zadá uživatel z klávesnice. 67) Napiš program pro výpočet hodnoty na Přirozená čísla a, n zadá uživatel z

klávesnice.

Grafika 68) Napiš program, který v kartézské soustavě souřadnic pro dva body zadané na vstupu

nakreslí ú sečku, která je spojuje. 69) Naprogramuj Conwayovu hru Život. 70) Naprogramuj nějaký fraktál.

Page 20: pro kaž dého - sweb.cztoxy.sweb.cz/skola/zaloha/VB/Ucebnice_VB.pdforigami nebo třeba jen vlaštovky, postup na výrobu nějaké chemikálie, návod na sestavení počí tače, popis,

71) Napiš program, který bude simulovat střelbu z vodorovného děla. Počáteční rychlost volí uživatel na vstupu.

72) Napiš program, který bude simulovat střelbu z š ikmého děla. Počáteční rychlost a ú hel hlavně volí uživatel na vstupu.

73) Napiš program, který nakreslí obdélník. Ten se bude po stisku vybraných tlačí tek zvětšovat či zmenšovat horizontálně nebo vertikálně.

74) Napiš program, který nakreslí vyplněnou půlkružnici. 75) Napiš program, který na šachovnici za zadaného počátečního políčka provede skoky

koněm bez vracení tak dlouho, dokud může. 76) Napiš zobecnění programu 20 pro šachovnici nxn.

Posloupnosti a řady 77) Napiš program na výpočet faktoriálů všech čísel do n, které zadá uživatel z

klávesnice.

78) Napiš program, který vypočí tá n členů řady n1...

31

21

11

++++ .

79) Napiš program, který vypočí tá n!. 80) Napiš program, který rozhodne, kolikátý člen posloupnosti

2121 ,2 ,1 −− +=== nnn aaaaa překročí jako první hodnotu 610 a vypí še všechny předchozí členy.

81) Napiš program, který určí aritmetický průměr, součet a součet druhých mocnin posloupnosti čísel zadávaných z klávesnice a ukončených nulou.

82) Je dána posloupnost celých kladných čísel ukončených nulou. Napiš program, který určí , kolik je v ní lichých čísel dělitelných třemi.

83) Napiš program, který určí druhou odmocninu z a zadaného na vstupu pomocí

Heronova rekurentního vztahu: 1,2,3,4...n 2, x,1 x,5,0 102

1 ===

−=

−−

nnn x

axx

Zvol vhodnou ukončovací podmínku.

84) Napiš program pro výpočet součtu řady ...

1111

11

1

1111

111

1 1 +

++

++

++

++

+ , kde

počet členů řady ke sčí tání je dán na vstupu. 85) Napiš program, který vypočte statistické ú daje ∑ ∑ , , , 2xxx kde nxx ...1 je

posloupnost přirozených čísel zadávaná uživatelem z klávesnice a ukončená 0. (Počet čísel není předem znám).

86) Napiš program, který pro přirozené n zadané z klávesnice určí součet n členů řady

...3

12

11

11+

++

++

++

nnnn

87) Napiš program, který určí součet n členů řady zadané rekurentně takto: nnn aaaaa +=== ++ 1221 ,2 ,1 .

88) Napiš program, který sečte prvních n členů řady ...11114321 ++++

xxxx Čísla x a n

zadá uživatel z klávesnice.

89) Napiš program, který určí součet n členů řady: ...!4!3!2

++++xxxx Čísla x, n zadá

uživatel z klávesnice.

Page 21: pro kaž dého - sweb.cztoxy.sweb.cz/skola/zaloha/VB/Ucebnice_VB.pdforigami nebo třeba jen vlaštovky, postup na výrobu nějaké chemikálie, návod na sestavení počí tače, popis,

90) Napiš program, který vypí še prvních 10 členů posloupnosti čísel určených jako součet řad ( ) ( ) 012321 12...3210 nnnnnnn +−+−+++++ −−− pro postupně rostoucí n.

91) Napiš program, který pro n přirozených čísel naa ,...1 zadaných z klávesnice určí jejich aritmetický, geometrický a harmonický průměr.

naaaap n

a++++

=...321 aritmetický

nng aaaap ...... 321= geometrický

n

h

aaaa

np1...111

321

++++= harmonický

Práce s textem 92) Napiš program, který pro ke každému kódu znakové ASCII tabulky 32-255 zobrazí

příslušný znak. 93) Napiš program, který způsobí , že zadaný krátký text přeběhne na prvním řádku zleva

doprava . 94) Napiš program, který v zadaném textu vyhledá určené slovo (pokud tam je) a zapí še,

na které je pozici. 95) Napiš program na lexikální analýzu textu. 96) Napiš program, který v zadaném textu určí četnost samohlásek. 97) Je dána věta ukončená tečkou. Napiš program, který určí , kolik je v ní velkých

písmen. 98) Napiš program, který určí počet samohlásek ve větě dané na vstupu. 99) Na vstupu je dána věta, jejíž slova jsou oddělena mezerami a ukončena je tečkou.

Napiš program, který určí počet slov v této větě. 100) Napiš program, který vypí še přehledně tabulku kódů písmen a číslic. 101) Napiš program, který v textu zadaném uživatelem z klávesnice určí četnost výskytu

znaku "a". Text je psán pouze malými písmeny a není delš í než 100 znaků. 102) Napiš program, který seřadí 5 slov zadaných z klávesnice podle abecedy. Všechna

slova jsou zapsána malými písmeny. 103) Napiš program, který zapí še všechna možná uspořádání znaků A, B, C, D, E, jestliže

se znaky ve slovech neopakují .

Matice 104) Napiš program, který v matici typu 5x6 vymění dva sloupečky. 105) Napiš program, který naplní matici mxn náhodnými přirozenými čísly od 0 do 9 a

vytiskne ji na obrazovku. Čísla m a n (rozměry matice) zadá uživatel z klávesnice. 106) Napiš program, který sečte dvě matice typu 3x4 naplněné náhodnými přirozenými

čísly od 0 do 9. Původní i výslednou matici vytiskni na obrazovku. 107) Napiš program, který převrátí čtvercovou matici dimenze 5 naplněnou náhodnými

přirozenými čísly od 0 do 9 podle hlavní diagonály. Původní i výslednou matici vytiskni na obrazovku.

108) Čtvercovou matici 6x6 naplň náhodnými přirozenými čísly do 9. Vytiskni ji na obrazovku a poté vytiskni všechny prvky matice obsahující číslo 5 nebo 7 ve tvaru a(2,3)=5.

109) Napiš program , který v matici 5x6 naplněné náhodnými přirozenými čísly do 9 umožní výměnu dvou řádků. Čísla řádků k výměně zadá uživatel z klávesnice. Program vytiskne na obrazovku původní i výslednou matici.

Page 22: pro kaž dého - sweb.cztoxy.sweb.cz/skola/zaloha/VB/Ucebnice_VB.pdforigami nebo třeba jen vlaštovky, postup na výrobu nějaké chemikálie, návod na sestavení počí tače, popis,

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 atd až 91 92 93 94 95 96 97 98 99 100

| 1 2 3 4 5 6 7 8 9 10 ---------------------------------- 1 | 1 2 3 4 5 6 7 8 9 10 2 | 2 4 6 8 10 12 14 16 18 20 3 | 3 6 9 12 16 18 21 24 27 30 4 | 4 8 12 16 20 24 28 32 36 40 5 | 5 10 15 20 25 30 35 40 45 50 6 | 6 12 18 24 30 36 42 48 56 60 7 | 7 14 21 28 35 42 49 56 63 70 8 | 8 16 24 32 40 48 56 64 72 80 9 | 9 18 37 36 45 54 63 72 81 90

Zlomky 110) Napiš program, který umožní krátit zlomky zadané z klávesnice na základní tvar. 111) Napiš program, který umožní provádět sčí tání zlomků. (Výsledek bude zapsán ve

tvaru zlomku). 112) Napiš program, který umožní provádět násobení a dělení zlomků. 113) Napiš program, který umožní převádět zlomky na smí šená čísla a naopak.

Náhodná čísla 114) Napiš program, který bude simulovat ruletu. 115) Napiš program, který bude simulovat házení kostkou 116) Napiš program, který bude simulovat házení mincí . 117) Napiš program, který bude simulovat házení dvěma kostkami zároveň. Program

zapí še do sloupečků číslo hodu, hodnoty, které padnou na obou kostkách a jejich součet.

118) Napiš program, který bude simulovat Gaussovo normální rozdělení nějakého jevu a zobrazí je graficky.

Různé 119) Napiš program, který zaokrouhlí dané přirozené číslo na desí tky. 120) Napiš program, který zaokrouhlí dané přirozené číslo na desí tky, stovky či tisíce

podle volby uživatele. 121) Napiš program, který bude průběžně tisknout, kolikrát se na vstupu objeví hodnota 1-

5 (známka z nějakého předmětu). 122) Napiš program, který dle volby uživatele spočí tá obvody nebo obsahy zvoleného

rovinného obrazce 123) Napiš program, který napí še čísla od 1 do 1000 pod sebe. 124) Napiš program, který napí še čísla od 1 do 1000 vedle sebe. 125) Napiš program, který napí še čísla od 1 do 1000 do dvou sloupečků tak,že v levém

budou lichá a v pravém sudá čísla. 126) Napiš program, který napí še vytiskne čtverec ze samých pětek. 127) Napiš program, který do tří sloupečků vypí še čísla 22 , , nnn , kde n je číslo od 1 do

10. 128) Napiš program, který do tří sloupečků pro a zadané na vstupu vypí še čísla n , , aaa n ,

kde n je číslo od 1 do 10. 129) Napiš program, který na obrazovku vytiskne toto schéma čísel:

Snaž se o co nejkratš í program. Návod: použij font Courier nebo Courier New.

130) Napiš program, který na obrazovku vypí še tabulku malé násobilky podle vzoru:

Page 23: pro kaž dého - sweb.cztoxy.sweb.cz/skola/zaloha/VB/Ucebnice_VB.pdforigami nebo třeba jen vlaštovky, postup na výrobu nějaké chemikálie, návod na sestavení počí tače, popis,

1 + 2 + 3 = 6 + + + + 4 + 5 + 6 = 15 + + + + 7 + 8 + 9 = 24 = = = = 12 +15 +18 = 45

Návod: použij font Courier nebo Courier New. 131) Napiš program, který vypočte vodorovné i svislé součty 9 čísel zadaných na vstupu

ve tvaru: 1 + 2 + 3 = 6 (v následujícím příkladě byla zadána čísla 1 až 9)

132) Napiš program, který rozhodne, zda je trojú helník daný délkami stran pravoú hlý. 133) Napiš program, který soubor deseti libovolně zvolených přirozených čísel zadaných

uživatelem z klávesnice zapí še na disk i na obrazovku a poté obsah tohoto souboru vytiskne na obrazovku v obráceném pořadí .

134) Napiš program, který vytvoří ukazatel na pole a[1..5], naplňte jej přirozenými čísly z klávesnice, vypiš te jeho obsah na obrazovku a nakonec dynamickou proměnnou zruš te.

135) Napiš program, který vytvoří na disku soubor 10 náhodných přirozených čísel a kopii tohoto souboru.

136) Napiš program, který pro n a a zadané z klávesnice určí obvod a obsah pravidelného n-ú helníku o straně a.

137) Napiš program, který na základě známého poloměru a středového ú hlu určí délku kruhového oblouku a obsah kruhové výseče.

138) Archimedes dokázal, že pro objemy koule. Vepsané do kužele, vepsaného do válce platí poměr 1 : 2 : 3. Ukaž pomocí programu, že tento poměr skutečně platí . Hodnotu poloměru koule zadá uživatel.

139) Pomocí programu porovnej hodnoty druhých odmocnin z čísla vypočtené pomocí funkce SQR, pomocí operátoru ^ a pomocí Heronova vzorce (viz výše).

140) Napiš program, který pro dané délky odvěsen určí přeponu pravoú hlého trojú helníka. Řadu dalš ích ú loh najdeš ve výborné sbírce Pavla Töpfera: Sbírka ú loh z programování

Další příkazy Občas se nám mohou hodit některé dalš í příkazy. Větš inou mají jednoduchou syntaxi: CLS Vymaže obrazovku BEEP Pípnutí REM Poznámka. To, co následuje za tímto slovem počí tač nechápe jako příkaz STOP PAUSE LIST GOTO

Page 24: pro kaž dého - sweb.cztoxy.sweb.cz/skola/zaloha/VB/Ucebnice_VB.pdforigami nebo třeba jen vlaštovky, postup na výrobu nějaké chemikálie, návod na sestavení počí tače, popis,

Procedury GOSUB

Práce s čísly Deklarace a typy INT a SQR už známe Zaokrouhlování Umocňování RND–RANDOMIZE ABS Goniometrické funkce

Práce s textem VAL STR LEN CHR CODE Podřetězec Sčí tání řetězců

Grafika

Seznam probraný ch objektů

Seznam probraný ch příkazů

Osnova (stará pro Sinclair) I. díl

1) Úvod 2) Základní příkazy 3) Strukturované příkazy 4) Dalš í příkazy 5) Práce s čísly 6) Práce s textem 7) Barvy 8) Hrubá grafika 9) Animace 10) Uživatelská grafika 11) Jemná grafika 12) Pole 13) Funkce 14) Procedury 15) Vnějš í paměť 16) Strukturované programování

Page 25: pro kaž dého - sweb.cztoxy.sweb.cz/skola/zaloha/VB/Ucebnice_VB.pdforigami nebo třeba jen vlaštovky, postup na výrobu nějaké chemikálie, návod na sestavení počí tače, popis,

II. díl 1) Úvod 2) Rovnice a soustavy rovnic 3) Třídění 4) Vyhledávání 5) Matice 6) Aproximační (numerické) metody 7) Fyzikální modely 8) Statistika a pravděpodobnost 9) Diferenciální a integrální počet 10) Databázové modely 11) Tabulkové procesory 12) Posloupnosti a řady 13) Rekurze 14) Hry 15) Aplikační ú lohy

Literatura použ itá a doporučená Dana Töpferová, Pavel Töpfer: Sbírka ú loh z programování Pavel Töpfer: Algoritmy a programovací techniky Niklaus Wirth: Algoritmy a š truktú ry ú dajov Jan Felger: Učební texty pro výuku Sinclair Basicu Ivan Kopeček, Jan Kučera: Programátorské poklesky Jiří Beck, Stanislav Vejmola: Dialog s počí tačem Petr Kroha, Pavel Slavík: Basic pro začátečníky Ivo Machačka, Jan Pavlů: Programování v jazyku Basic A dalš í