Počet hledaných znaků v textu
Zadání:
Vytvořte program, ve kterém uživatel zadá text a znak. Program v textu zjistí počet výskytů zadaného znaku.
Vstup programu: text, hledaný znak
Výstup programu: počet výskytů hledaného znaku
Rozbor:
Musíme mít nějaký znak, kterým uživatel ukončí posloupnost znaků (tedy cyklus). V našem příkladu jsme zvolili ꞌ.ꞌ (tečku), čímž jsme text omezili na zadání jedné věty.
Po každém načtení jednoho znaku, musíme zjistit, zda se nejedná o hledaný znak.
Proměnné použité v programu:
HLED ... zadaný hledaný znak [Char]
ZNAK ... aktuálně zadaný znak (jeden znak textu) [Char]
POC ... počet výskytů hledaného znaku v textu [Integer]
Logické sestavení programu:
Nejdříve musíme načíst hledaný znak HLED. Poté musíme do proměnné POC uložit hodnotu 0 (protože si nemůžeme být jisti, co tam bylo za hodnotu, a při prvním průchodu cyklem ji použijeme jako operand). Nyní musíme, ještě před započetím cyklu, načíst první znak textu ZNAK. Dále pokračujeme cyklem, jehož řídicí podmínka zní: „Je ZNAK různý od ꞌ.ꞌ?“.
1. Pokud ZNAK neodpovídá ꞌ.ꞌ, pokračujeme v těle cyklu.
Na začátku těla cyklu musíme rozhodnout, zda aktuálně načtený ZNAK je hledaný znak HLED.
I. Pokud ZNAK odpovídá HLED (hledanému znaku), zvýšíme POC o 1.
II. Pokud ZNAK neodpovídá HLED, nemusíme dělat nic a pokračujeme dál.
Načteme nový ZNAK a vracíme se k řídicí podmínce cyklu.
2. Pokud ZNAK odpovídá ꞌ.ꞌ, nepokračujeme v těle cyklu, ale dalším příkazem za cyklem.
Vypsání počtu výskytů hledaného znaku POC.
Upozornění: Toto je jeden z příkladů, který je záhodno si udělat v nějakém vývojovém prostředí pro Pascal a podívat se, jak funguje, když není krokován. Takhle vám totiž může připadat, že musíte zadávat každý znak zvlášť. Ovšem to jenom kvůli tomu, že postupujeme programem krok za krokem.
Bez krokování napíšete celý text a ani nepoznáte, že program si ho načítal znak po znaku.