Matematika Gymnázium, Praha 6, Arabská 16 předmět Programování, vyučující Tomáš Obdržálek dokumentace ročníkového projektu
Albert Šerák, 1E květen 2014
Prohlašuji, že jsem jediným autorem tohoto projektu, všechny citace jsou řádně označené a všechna použitá literatura a další zdroje jsou v práci uvedené. Tímto dle zákona 121/2000 Sb. (tzv. Autorský zákon) ve znění pozdějších předpisů uděluji bezúplatně škole Gymnázium, Praha 6, Arabská 14 oprávnění k výkonu práva na rozmno-žování díla (§ 13) a práva na sdělování díla veřejnosti (§ 18) na dobu časově neomezenou a bez omezení územního rozsahu. V Praze dne 18.května 2014
Obsah 1.Anotace....................................................................2 2.Zadaní......................................................................2 3.Matematika..............................................................2 1.Pravidla........................................................................2 2.Instalace a ovládání.....................................................3 3.Princip náhodných čísel..............................................3 4.Časový limit................................................................3 5.Problémy.....................................................................3
4.Závěr........................................................................4
-1-
1. Anotace Matematika je program, který pomáhá trénovat počítání matematických příkladů. Je určený pro žáky základních škol a pouze pro jednoho uživatele. Uživatel si zadá kategorii, která je dána(vybere si z nabídky kategorií), a potom program sám vybírá náhodné příklady a rozezná zdali byl příklad vypočítán správně a nebo špatně. Po uplynutí daného časového limitu jsou výsledky vypsány. Program běží v příkazovém řádku a je vyvinut pro osobní počítače. Mathematics is a program that helps to train counting mathematical examples. It is intended for the pupils of primary schools, and only for one user. The user enters the category, which is given by (choose from a menu of categories), and then the program chooses a random examples and recognizes that the example was calculated correctly and or bad. After the time limit, the results are listed. The Program runs on the command line and is developed for personal computers.
2. Zadaní PROGRAM: - Bude zadávat příklady z matematiky. - Bude mít možnost výběru různých početních kategorii (kategorie: do 10,20,50,100). - Bude mít textový vzhled.
PŘÍKLADY: - Budou na sčítání, odčítaní, násobení, dělení. - Na dělení budou beze zbytku.(tzv. celočíselné dělení) - Při odčítání budou výsledky nezáporné.
BONUS: - Grafický vzhled
3. Matematika 1. Pravidla - Uživatel si vybere kategorii ze které chce počítat přiklady - Po vybrání kategorie je dotázán na start nebo návrat do nabídky
-2-
- Při startu se zapne časový limit, který je 60 vteřin - Po skončení limitu je vypsán počet správně a špatně vypočítaných příkladů
2. Instalace a ovládání Program se ovládá klávesnicí(pouze čísla). Program se spustí přes start.bat, který najdete rocnikovy_projekt_serak/matematika/dist/start.bat. V případě, že nejde zapnout, klikněte pravým na start.bat a dejte upravit. Kód , který je v textovém dokumentu nahraďte java -jar
matematika.jar
3. Princip náhodných čísel V práci jsem používal hodně náhodných čísel. Vezmeme si například sčítání a odčítání do 10. Program vybírá 2 náhodná čísla. Když je součet těchto dvou čísel větší než 10, program vybere znova další 2 čísla. Na těchto prvních 2 čísel zavisí i známenko v příkladu. Když je první číslo menší než to druhé tak se příklad sčítá. Když je větší nebo rovno tak se odčítá. Při dělění bych tyto 2 čísla, která vyjdou beze zbytku, hledal hodně dlouho. Takže jsem to vyřešil pomocí opaku dělění tzn. Násobení. Program vybere 2 čísla, které mezi sebou vynásobí. Pak jen otočí příklad a výsledek vydělí druhým číslem.
4. Časový limit Časový limit byl pro mě nejtěžší částí programu. Využil jsem třídy Calendar. Calendar umí zjistit systémový čas. Tak si na začátku počítání zapamatuje čas. Calendar casStartu = Calendar.getInstance(); A než program vypíše další příklad, tak si vypočte dobu, kterou už uživatel počítá. doba = Calendar.getInstance().getTimeInMillis()casStartu.getTimeInMillis(); Pak zkontroluje podmínku. (oba < 60000) Celé metody jsou v do-while.
5. Problémy Ke každé práci patří problémy. Já jich moc neměl. Ale jeden bych tu rozvedl. Chtěl jsem aby můj program byl "interaktivní". Tím jsem měl na mysli, že v
-3-
jednom spuštění může počítat příklady různého typu. Chtěl jsem vždy, aby byla nabídka na "návrat do nabídky". A aby uživatel mohl ukončit program až bude chtít. Řešení bylo velice jednoduché, stačilo přidat pár cyklů do-while.
4. Závěr Tato práce dopadla úspěšně a jsem s ní velice spokojen. Programování jako samotné mi moc nových věcí nepřineslo. Samozřejmě zkušenost s třídou Calendar se hodí. Více zkušeností mi přinesla dokumentace. Je to má první dokumentace. A také jedna z větších prací. Rozhodně si příště dám nějaké těžší zadání nebo budu pokračovat v rozvoji tohoto programu. Matematiku bych mohl rozšířit o velkou násobilku atp. Je mi docela líto, že jsem neudělal bonus. Těším se na další ročníkové práce.
-4-