Slovník | Vyhledávání | Mapa webu
 
Základy informatiky pro biologyAlgoritmizace a programování Návrh algoritmů II Počet výskutu znaku v souboru

Logo Matematická biologie

Počet výskutu znaku v souboru

Vytvořte algoritmus pro spočtení počtu vybraného znaku v souboru. Na vstupu od uživatele bude znak, jehož četnost chceme spočítat. Na výstupu budu počet znaků, které soubor obsahuje.

Řešení bude přes 2 vnořené cykly. Vnější bude načítat jednotlivé řádky souboru (řekněme, že to umíme). Samozřejmě nevím kolik těch řádků je, takže to vede na cyklus s podmínkou. Soubor může být i prázdný, takže tělo se nemusí vykonat ani jednou, a proto použijeme cyklus s podmínkou na začátku. Obsahem testu podmínky bude zjištění, jestli už jsme nebo nejsme na konci souboru. Pokud ještě nebudeme na konci, tak můžeme načítat další řádek.

Po načtení řádku potřebujeme projít jeho jednotlivá písmenka - znaky - ze kterých je složen. Máme v podstatě 2 možnosti, projít řádek dokud nenarazíme na znak, kterým je řádek ukončen (odřádkování) nebo si necháme zjistit délku řádku, tj. počet znaků, ze kterých je složen. Použijeme druhou možnost, takže k jednotlivým znakům budeme přistupovat v těle cyklus s daným počtem opakování.

Po získání každého jednotlivého znaku z řádku provedeme test, je-li to námi hledaný znak. V případě, že ano, tak zvýšíme hodnotu celkového počtu znaků proměnné (provedeme inkrementaci). V opačném případě neprovedeme nic. Po skončení vnějšího cyklu máme v počet znaků z v souboru. Výsledek vypíšeme a program ukončíme.

Jako každá úloha, tak i tato se dá řešit různými způsoby. Mohli bychom například načítat obsah souboru po jednom znaku a ten testovat, takže by celý program tvořil jeden cyklus. Problém takového řešení je například v tom, že obecně jsou přístupy do souboru pomalé (pomalejší než do paměti), takže je snahou omezit počet přístupů a nenačítat obsah po jednom znaku, ale spíše najednou.

 

 
vytvořil Institut biostatistiky a analýz Lékařské fakulty Masarykovy univerzity