Registrácia | Prihlásiť

Počítačové zadanie: Strojovo orientované jazyky - Načítanie reťazca znakov

Zobraziť detaily | Obľúbený
Náhľady Náhľady Náhľady Náhľady
Text zadania:
Úloha č. 32: Načítajte z klávesnice reťazec znakov ukončený znakom "nového riadku". Nech slovo je postupnosť znakov medzi dvoma znakmi "medzera". Určte počet slov obsahujúcich len znaky s párnymi ASCII kódmi. Počet vytlačte osmičkovo.

Dodefinovanie zadania:
V programe uvažujeme s maximálne 65536 slovami, ktoré sú tvorené iba zo znakov s párnymi ASCII kódmi.

Analýza riešenia:
Problematikou úlohy je testovanie načítaného znaku, či načítaný znak mal párny alebo nepárny ASCII kód, či bol stlačený ENTER alebo MEDZERNÍK. Program musí riešiť to, že môže byť stlačených viac medzier za sebou alebo že reťazec začína medzerou a podobne. Po stlačení klávesy ENTER, program nastaví kurzor na začiatok nového riadku a vypíše počet slov s nepárnymi ASCII kódmi v osmičkovej sústave. Výpis v osmičkovej sústave je realizovaný cez rotačný posuv registra o 3 bity vľavo, pričom pred rotáciou sa ešte zisťuje, či je na najvyššom bite 0 alebo 1.

Návrh algoritmu:
Program sa delí na 3 hlavné časti. Časť 1 pomocou porovnávania zabezpečuje, aký znak bol stlačený ( s párnym, nepárnym ASCII kódom, ENTER, MEDZERNIK ) a zaisťuje aby sa napr. viacnásobná medzera neratala ako slovo a pod. Časť 2 pomocou porovnávania zisťuje stav registrov počas behu programu a podľa hodnôt v nich vykonáva inkrementáciu registra alebo nulovanie pomocnych registrov. Časť 3 zahŕňa konverziu výslednej hodnoty z registra do osmičkovej sústavy a jej výpis na obrazovku.
Hodnotenie (0x):