Jmeno: Martin Kot Studijni cislo: kot119 Uzivatelska dokumentace k programu PREVOD Program prevod slouzi k prevodu arabskych cisel na rimske a opacne. Arabska cisla jsou omezena rozsahem typu INTEGER a rimska cisla 511-ti znaky. Syntaxe spusteni programu je nasledujici: prevod [prepinace] [argument] Prevod na rimska cisla: Vysledne rimske cislo je zapsano ve tvaru tisice_stovky_desitky_jednotky (napr.: cislo 3799 je zapsano ve tvaru MMMDCCXCIX, kde MMM jsou tisice, DCC stovky, XC desitky a IX jednotky). Jina definice rimskych cisel umoznuje psat cisla i bez rozliseni radu (napr.: cislo 3799 je zapsano ve tvaru MMMDCCIC). Tuto definici program standardne nepodporuje. Prevod na arabska cisla: Pri prevodu se kontroluje rimske cislo na tyto chyby: - Pouziti vice nez jednoho znaku V (respektive L, D). (LL, DID) - Pouziti vice nez 3 stejnych znaku za sebou - neplati pro M. (MXXXX, CCCCXI) - neni ale chybou napr. MMMMXXXIX = 4039 - Pouziti kombinace znaku, ktere by se navzajem odecetly. (MIMI, IXI) - neni ale chybou napr. XIX = 19 - Pouziti znaku s nizsi hodnotou o vice nez 1 pozici pred znakem s vetsi hodnotou. (MCMM, IXC, IIX) - Pouziti retezcu VX, LC, DM, ktere lze zapsat jednim znakem. Pri takovychto chybach se vypisuje hlaseni o neregulernim cisle. Interaktivni verze: Pokud je program spusten bez prepinacu a argumentu, spusti se interaktivni verze. Zde muze uzivatel zadavat arabska i rimska cisla, ktera se ihned prevadeji. Pokud je zadan retezec, ktery neni ani arabskym ani rimskym cislem, vypise se chybove hlaseni: Retezec ... nelze prevest! Pokud je zadan retezec, ktery je rimskym cislem, ale neodpovida presne definici, vypise se hlaseni: Cislo ... neni regulerne zadane. Vzhledem k tomu, ze v rimskych cislech neni definovana nula, pri jejim zadani se vypise hlaseni: Rimane nulu neznali. Rimska cisla nemohou byt zaporna, proto pri zadani zaporneho arabskeho cisla se take vypise hlaseni: Retezec ... nelze prevest! V ostatnich pripadech se vypise prevedene cislo ve hlaseni: Cislo ... je v arabskych cislech: ... nebo Cislo ... je v rimskych cislech: ... Ukonceni teto verze programu je mozne zadanim retezce konec Prevod jednoho cisla: Pokud je na prikazove radce uveden argument (bez prepinacu), bude preveden za stejnych podminek jako v interaktivni verzi a po prevedeni se program ukonci. Jen v pripade zaporneho arabskeho cisla se vypise hlaseni: Zaporna cisla nelze prevadet. Pokud bude argumentu uvedeno vic, prevede se pouze prvni z nich, na ostatni se nebere ohled. Pri prevodu jednoho cisla je mozno pouzit prepinac -m. Po jeho pouziti dojde pred prevodem k zameneni malych pismen v argumentu na odpovidajici velka, ostatni znaky budou ponechany beze zmeny. Proto bude arabske cislo prevedeno stejne jako bez tohoto prepinace. Rimske cislo je mozno napsat standardne velkymi pismeny, lze vsak pouzivat i mala. (napr. retezec MmdCcLXi se prevede stejne jako retezec MMDCCLXI na arabske cislo 2761) Pokud za prepinacem neni uveden argument, vypise se hlaseni: Nebylo zadano cislo na prevedeni Pouziti programu jako filtru: Pri pouziti programu jako filtru je dobre pouzit prepinace -a pro prevod na arabska cisla nebo -r pro prevod na rimska cisla. V techto pripadech program nebere ohled na argumenty. Ze standardniho vstupu jsou nacitany retezce, ktere se, pokud to lze, prevadeji a posilaji na standardni vystup. Retezce, ktere nelze prevest se posilaji v puvodnim tvaru. Take bile znaky jsou zachovany. Prevadeni konci nactenim znaku EOF. Nasledne se vypise na standardni chybovy vystup pocet neprevedenych retezcu (pokud tento pocet nebyl roven 0) v hlaseni: Pocet nepreveditelnych retezcu: ... Napoveda: Pokud je prepinacem -h, vypise se strucna uzivatelska napoveda k programu. Je-li za timto prepinacem uveden i argument, bude po vypsani napovedy preveden stejne jako bez tohoto prepinace. Spatny prepinac: Pokud je za nazvem programu pri spusteni uveden retezec zacinajici pomlckou a neni to zaporne arabske cislo nebo jeden z vyse uvedenych prepinacu (-m -a -r -h) zobrazi se chybove hlaseni: ... je neznamy prepinac. Je-li za takovymto chybnym prepinacem navic uveden i argument, bude nasledne preveden stejne jako bez tohoto prepinace.