Ahojky lidičky! Tak tady budou postupem času přibývat další a další moje výtvory, doufám že se vám budou líbit a některé z nich možná shledáte i užitečnými... Většina z nich je napsaná v C++, některé, zejména ty, které vyžadují práci s grafikou, jsou v Borland Delphi 5.0. Některé jsou taktéž v JavaScriptu, chci tady ukázat i nějaká "kouzla" s HTML. No nic, žádné zbytečné okecávání, pojďte se na to kouknout!
| Název prográmku | Popis | ||||||
| Hello world! | Nemyslíte si o mně snad, že bych mohl začít něčím jiným, že ne?! K prográmku záměrně nedodávám zdroják, je totiž
primitivní pouze na první pohled. Na ten druhý, až se na něj kouknete v hexavieweru, zjistíte, že těch plno pičovinek,
které program vypisuje na obrazovku, v něm nejsou nikde viditelně uložené... Nic, řeknete si určitě, prostě jsou jen
nějakým jednoduchoučkým algoritmem zakódovány... tak to mi pak určitě snadno napíšete e-mailem offset začátku
zakódovaných dat v souboru, ne?
Je ke stažení tady.
Prvočísla
| Každý studentík, který se učí programovat, udělá hned jako svůj druhý výtvor prográmek na prvočísla. Umí zjišťovat, jestli zadané číslo je prvočíslo. Taky umí vypsat všechna prvočísla v zadaném intervalu... a to celkem (ale ne zas moc :-) ) rychle, všechna prvočísla do 1 000 000 spočítá na mém Athlonu 1GHz během 1.2 vteřiny. Umí si čas výpočtu sám změřit, kteroužto možnost je možné buď zapnout nebo vypnout, vypočítaná prvočísla se mohou, ale taky nemusejí vypisovat na obrazovku. Navíc umí funkci Next-Prime, tedy nejbližší prvočíslo větší než dané číslo. Dále rozkládá dané číslo na součin prvočísel, nebo může rozložit na součin všechna čísla v daném intervalu... | Algoritmus je ten nejjednodušší myslitelný, totiž, postupné dělení všemi čísly až do druhé odmocniny. No, ne úplně všemi :-) Pouze 2, 3, a dál všemi, které dávají po dělení 6 zbytek 1 nebo 5. Složitost výpočtu všech prvočísel až do n je zřejmě n sqrt(n), což je pochopitelně slabé. Ještě dodávám, že jde o konzolovou aplikaci zkompilovanou Dev-C++ 4.0, plně ovládanou z příkazové řádky. Nápovědu vypíše po "primes -help". Celková doba mé práce nad touhle hračkou je cca 45 minut, tak prosím omluvte milion nedostatků, které má... Nemá věru ambice být něčím víc, než právě jen hračkou. Zkuste si ho tady stáhnout.
Prvočísla II
| Tady to už začíná být malinko (ale je malinko :-) ) zajímavější. Zase hledáme všechna prvočísla v intervalu <a, b> ale tentokrát metodou starou dost přes 2.000 let, a přesto stále prakticky nejlepší, která existuje. Totiž Erathostenovým sítem. Její složitost je n log(n), což se obávám, že už ani moc zlepšovat nejde. Není potřeba alokovat n-bytů paměti, použil jsem posuvné okno. Dosažené výsledky jsou ovšem signifikantně lepší, než u předchozího prográmku. Schválně, zkuste ty časy někdo zlepšit o více, než o pár procent... Navíc jsem to nijak neoptimalizoval, taky by tu šlo ledacos zlepšit, ale nikoliv tak, aby to stálo za tu práci.
| Ke stáhnutí zde
Vyhodnocování výrazů
| Tak tohle udělátko funguje jako středně složitá kalkulačka. Vyhodnocuje zadaný algebraický výraz, přičemž upřednostňuje prioritu početních operací až po mocniny. Zvládá všechny elementární funkce, výpočty integrálů Simpsonovým pravidlem a řeší rovnice metodou půlení intervalů. Mezivýsledky lze ukládat do proměnných a ty pak dále používat ve výrazech. Obsahuje řadu předdefinovaných konstant, které lze nicméně v průběhu programu změnit. Patří mezi ně číslo pi, e, hmotnost protonu, avogadrova konstanta, délka světelného roku v metrech, parseku v metrech, atd. Všechno funguje na principu zadávání jednoduchých, snadno pochopitelných příkazů. | Na rozdíl od předchozích prográmků je napsán v C++ a nikoliv v čistém C. Obsahuje třídu výraz, která zprostředkovává veškeré výpočty a hlavní program ji pak využívá jako knihovnu. Docela užitečná, i když jednoduchá věcička, nemyslíte? Vzykoušejte ho tady.
|